пятница, 30 марта 2018 г.

Электронные публикации с применением цифровых подписей: особенности реализации и перспективы развития

Трунов Д.Н.
ЭЛЕКТРОННЫЕ ПУБЛИКАЦИИ С ПРИМЕНЕНИЕМ ЦИФРОВЫХ ПОДПИСЕЙ: ОСОБЕННОСТИ РЕАЛИЗАЦИИ И ПЕРСПЕКТИВЫ РАЗВИТИЯ

Копия статьи, опубликованной 13.11.2013 на сайте https://sites.google.com/site/publicworkstrunov

В работе рассмотрены отличительные особенности электронных публикаций с применением цифровых подписей, раскрыты принципы функционирования цифровых подписей, обоснована их надёжность и обеспечение достоверности электронных публикаций, оценены перспективы публикации в интернете.

Введение
В настоящее время публикациями в интернете трудно кого-либо удивить. Множество периодических изданий имеют собственные сайты, на которых размещается не только актуальная информация и новости, но часто и электронные версии статей. В этом есть свои преимущества, ведь так читательская аудитория может быть значительно расширена за счёт пользователей интернета. Кроме того, можно сократить расход бумаги для печати изданий, размещая на привычных бумажных страницах сокращённые версии статей, а на сайте – полные.

Для личных публикаций тоже есть масса возможностей. Собственные сайты, странички в социальных сетях, блоги – всё это позволяет делиться информацией (текст, фото, видео и прочее) с множеством других пользователей интернета. Конечно, аудитория у таких публикаций не сравнится с аудиторией заслуженных издателей. К тому же сразу возникает вопрос о защите прав интеллектуальной собственности. Чем более популярным становится материал, размещённый в интернете, тем больше может появиться желающих переразместить этот материал от своего имени, часто без упоминания первоисточника.

Тем не менее, издания на бумажных носителях всё ещё занимают доминирующие позиции в сфере публикаций и документооборота. Причин для этого можно выделить несколько. Во-первых, до сих пор бумажные носители оказываются удобнее и надёжнее в пользовании. Далеко не все имеют постоянный доступ к компьютерам или иным цифровым устройствам, годным для работы с электронными документами. Не все из таких устройств достаточно мобильны, чтобы быть под рукой везде, где бы то ни было. Дороговизна и сложность в управлении практически исключают возможность пользоваться такими цифровыми устройствами некоторыми слоями населения, особенно людьми преклонного возраста.

Во-вторых, бумажное издание дешевле приобрести, чем скопировать. Поэтому все коммерческие издания продаются преимущественно на бумажных носителях. Ради возможности прочитать понравившуюся газету, журнал или книгу, покупатель вынужден платить за бумажный экземпляр этой газеты, журнала или книги. И это хорошо, поскольку покупатель платит не только издателю, но и автору.

В-третьих, к бумажным носителям больше доверия, опять же из-за сложностей их подделки на пути от издателя к покупателю. Автор несёт ответственность за содержимое своей публикации, а издатель несёт ответственность за качество и полноту передачи материала публикации от автора к читателям. Это если речь идёт о бумажных изданиях, поскольку внести изменения в уже напечатанный и проданный тираж газеты, журнала или книги, и отказаться от ответственности за ранее напечатанное, уже невозможно. В то же время, содержимое сайта или выложенного в свободный доступ электронного документа может быть изменено в любое время, а найти потом исходное содержимое и доказать его достоверность будет намного сложнее. По этим причинам может обоснованно проявляться недоверие к достоверности электронных публикаций.

Достоверность публикаций в интернете
Итак, на третьей проблеме мы и остановимся поподробнее. Начнём с того, что рассмотрим, для чего нам это нужно. Прежде всего, сама по себе публикация в интернете (электронная публикация) нужна затем, чтобы расширить аудиторию потенциальных читателей публикации – раз, и сократить расходы на выпуск бумажных изданий – два. Мы не будем рассматривать, как это должно происходить с платными публикациями, рассмотрим только лишь бесплатные. И самая важная категория бесплатных публикаций – это научные статьи, исследовательские отчёты и т.д. Материалы, не слишком интересные широкой публике, чтобы продавать их с коммерческой целью, но ценные в собственной (научной) среде.

Принятые традиции подсказывают, что серьёзные научные работы должны публиковаться в специализированных периодических изданиях или в сборниках трудов. Ведь эти работы могут цитироваться другими учёными и будет весьма неприятно в серьёзной публикации сослаться на чью-то статью, опубликованную в интернете, а позднее не найти её по указанной ссылке или найти в изменённом виде. Поэтому выход один – никаких серьёзных публикаций в интернете. 

Можно, конечно, применить и комбинированную публикацию, где основная работа будет опубликована в журнале или сборнике, а её электронная версия может быть выложена в интернете (если это не противоречит правилам издателя журнала или сборника). Можно опубликовать традиционным путём тезисы или сокращённый вариант работы, в а интернете – полную версию.

Однако нужно идти в ногу со временем и публиковать в интернете настолько же достоверные работы, как и в традиционных изданиях. Для этого предлагается применять сигнатуры файлов статей (или других публикуемых в интернете работ), которые представляют собой вычисленные по заданному алгоритму цифровые подписи для этих файлов с добавлением некоторых дополнительных сведений.

Опираясь на работы [1, 2], следует отметить, что основа для достоверных публикаций в интернете уже заложена. Предложенный автором собственный алгоритм для вычисления электронной подписи (сигнатуры) AFS-1, работающие на его основе компьютерные программы FileSignature и FSConsole выложены в соответствующих разделах на сайте автора https://sites.google.com/site/publicworkstrunov и находятся в свободном доступе. Ссылки и полезные материалы по данным вопросам можно также найти на другой авторской страничке [страница удалена автором, потому ссылка не приводится].

Публикация с сигнатурами осуществляется очень просто. Работа, которую нужно опубликовать в интернете, оформляется в виде файла одного из распространённых для документов формата, например DOCX или PDF. Для этого файла вычисляется сигнатура с помощью одной из упомянутых выше программ и снабжается необходимыми сведениями. Вот эта сигнатура вместе с сопутствующими сведениями должна быть достоверно опубликована либо в газете, либо в журнале, либо в сборнике, либо заверена нотариусом, либо что угодно, что позволит подтвердить, что на определённую дату сигнатура в определённом виде уже существовала. А файл может быть свободно размещён в интернете, на странице, где к нему будет доступ заинтересованной аудитории.

Почему такая публикация достоверна? Любой желающий может убедиться в достоверности выложенного файла, вычислив для него цифровую подпись и сравнив с той, которая достоверно опубликована или подтверждена иными способами. Если в файле изменений не было, цифровая подпись будет вычислена абсолютно идентично той, которая опубликована. Если же опубликованная и вычисленная подписи (сигнатуры) отличаются, можно говорить о том, что в файле были изменения, и он отличается от того, для которого вычислялась достоверная подпись. Если автор несёт ответственность за содержимое своих электронных публикаций, то он не должен нести ответственности за изменения, которые могут быть случайно или специально допущены в его файлах третьими лицами. При этом цифровая подпись не исключает возможность внесения изменений, она лишь позволяет легко выявить факт наличия таких изменений и снять ответственность с автора за материалы, которые ему не принадлежат.

Теперь другая сторона – плагиат. Допустим, автор выложил файл с некоторой научной работой в интернете, предварительно заверив его цифровую подпись у нотариуса. Некое лицо, приняв эту публикацию за лёгкую добычу, решило опубликовать её уже от своего имени в серьёзном издании. Узнав об этом, истинный автор публикации подаёт в суд, предъявляя в качестве подтверждения своего авторства заверенную намного раньше цифровую подпись для файла и сам файл с публикацией. Если вычисленная для файла цифровая подпись будет идентична заверенной, то истинное авторство будет доказано.

Обеспечение функционирования цифровых подписей
Всё, что нужно для правильного вычисления цифровой подписи – запустить соответствующую программу, ввести имя файла, для которого она вычисляется, указать количество циклов и длину подписи (сигнатуры). Если производится проверочное вычисление существующей сигнатуры, то в ней уже указаны длина и количество циклов, которые нужно ввести без изменений в программу. Если же сигнатура вычисляется в первый раз для последующей своей публикации, то количество циклов и длину нужно выбрать самостоятельно.

Программы FileSignature и FSConsole написаны для работы в операционных системах семейства Microsoft Windows, поэтому могут беспрепятственно запускаться на большинстве персональных компьютеров. Алгоритм AFS-1 опубликован в работе [2], а наиболее простая его реализация в виде компьютерной программы FSConsole доступна в виде исходных текстов на сайте автора https://sites.google.com/site/publicworkstrunov. Эту программу при необходимости можно переписать в другом языке программирования и реализовать под другую платформу. Файл с исходным текстом программы FSConsole в виде проекта Delphi Console Application называется FSConsole.dpr, вычисленная для него сигнатура в окне самой же программы FSConsole приведена на рисунке 1.

Рисунок 1 – Окно программы FSConsole с вычисленной сигнатурой

Примечание. Если сигнатура, вычисленная для файла FSConsole.dpr с параметрами 300000 циклов и длиной 64 байта выглядит иначе, то это либо более поздняя версия файла и новая его сигнатура опубликована отдельно, либо это подделка и за её содержимое автор ответственности не несёт.

Надёжность цифровых подписей
Теперь рассмотрим, как опубликованная цифровая подпись гарантирует достоверность содержимого электронного документа. Сама по себе цифровая подпись в виде набора чисел заданной длины вычисляется таким образом, что на её значение влияет значение каждого байта из подписываемого файла. Изменения хотя бы в одном байте файла приведут к тому, что весь набор чисел подписи будет иметь совершенно иной вид. Что уже говорить о попытках выдать за один файл (оригинальный) другой (поддельный).

Но подделки всё-таки возможны. Если цифровая подпись имеет длину 1 байт (8 бит), то существует всего 2^8 = 256 вариантов подписи. Каждый 256-й произвольный файл будет иметь одинаковую подпись с файлом, взятым для сравнения. Можно взять произвольный файл и изменением всего одного байта добиться того, чтобы вычисленная цифровая подпись была идентична требуемой. Просто перебирая значения этого байта, для этого нужно не более 256 возможных значений.

Если цифровая подпись имеет длину 2 байта (16 бит), то вариантов подписи будет уже 2^16 = 65536. Для подписи длиной 4 байта (32 бита) потребуется уже до 4294967296 возможных переборов, хотя для современных компьютеров это не является нерешаемой проблемой.

Однако даже при возможной подделке документа и получении идентичной с оригинальным документом цифровой подписи, обнаружить подделку возможно. Приведём простой пример. Есть файл с важным текстовым сообщением некоторой фиксированной длины. Для этого файла по некоторому алгоритму вычисляется цифровая подпись из 4 байт. Длина сообщения и подпись для файла опубликованы, поэтому достоверны. Сам же файл взят из недостоверного источника и должен быть проверен. Получатель сообщения имеет такой набор сведений:

Сообщение (проверяется): Начало в 09:30. Опоздание не допускается!
Сигнатура (достоверно): Длина: 41 символ. Цифровая подпись: A7 15 91 8F

Если получатель видит, что сообщение действительно имеет длину 41 символ, а вычисленная для него цифровая подпись соответствует заявленной (достоверной), то может считать и само сообщение достоверным.

Но можно предположить и так, что некий злоумышленник решил подделать сообщение, заменив оригинальный файл собственным. Тогда он должен создать сообщение такой же длины 41 символ и включить в него собственное содержимое. Однако он понимает, что цифровая подпись для нового файла будет отличаться. Поэтому злоумышленник решает вместить собственное сообщение в 37 символов, а вместо остальных 4 символов дописать такой набор байт, который позволит при вычислении получить цифровую подпись такую же, как и в оригинальном сообщении.

Допустим, злоумышленнику удалось подделать файл так, что его длина и цифровая подпись полностью соответствуют оригиналу. Тогда получатель будет иметь, к примеру, такой набор сведений:

Сообщение (проверяется): Начало переносится. Можно не спешить. gШ%f
Сигнатура (достоверно): Длина: 41 символ. Цифровая подпись: A7 15 91 8F

Традиционно, исправления на бумаге легко обнаружить, а электронные документы исправляются без следов. Однако на примере выше набор бессмысленных символов в конце сообщения – следы подделки. С применением цифровых подписей подделать электронный документ незаметно уже не получится.

Несмотря на то, что теоретическая возможность подделки документа с достоверной цифровой подписью всё же существует, её вероятность можно снизить практически до нуля. Если увеличить длину цифровой подписи до 16 байт, получим приблизительно 3,4∙10^38 различных вариантов подписи. Для подписи длиной 32 байта – около 1,16∙10^77 . Столько же вариантов перебора потребуется злоумышленнику, чтобы для произвольного документа цифровая подпись приняла требуемый ему вид. Добавить к этому повышенное время на вычисление подписи для каждого варианта, и сама возможность подделки документа на практике станет технически невозможной.

Рекомендации по вычислению цифровых подписей
В новой версии программы FileSignature (равно как и FSConsole), в отличие от предыдущей версии, упомянутой в работах [1, 2], кроме изменённого интерфейса значительно увеличен верхний предел количества циклов. Если предыдущая версия могла вычислять сигнатуру с количеством циклов от 1 до 10, то новая версия – от 1 до 2^32 -1 = 4294967295. Возможная длина сигнатуры, как и прежде, может принимать одно из следующих значений: 16, 32, 64, 128, 256, 512 или 1024 байта.

Чтобы не запутаться в таком разнообразии, приведём ниже несколько основных рекомендаций по выбору параметров для вычисления цифровых подписей.
1. Рекомендуемая длина сигнатуры не менее 32, оптимально 64 байта. Более длинные сигнатуры являются и более надёжными, но не всегда удобными для визуального сравнения.
2. Количество циклов следует принимать не менее 3. Однако для файлов небольшого объёма можно существенно увеличить количество циклов, чтобы обеспечить время вычисления хотя бы 3-5 секунд. Для этого количество циклов может измеряться тысячами, иногда десятками и даже сотнями тысяч.
3. Оптимальное количество циклов можно также подобрать вручную, вычисляя сигнатуру для файла с разными значениями. Если вычисляется слишком быстро – стоит увеличить количество циклов. Если процесс, наоборот, затягивается, стоит прервать вычисление (доступно только в программе FileSignature) и попробовать заново с меньшим количеством циклов.

И дополнительная мера предосторожности. Какими бы надёжными ни были цифровые подписи, следует также иметь готовые инструменты для поиска возможных следов подделки в электронных документах, имеющих достоверную подпись.

Преимущества цифровых подписей
Как уже упоминалось выше, публиковать материалы в интернете можно и без применения цифровых подписей. Например, публикуемый в интернете документ предварительно публикуется традиционным способом небольшим тиражом. Однако если возникнет необходимость проверить полное соответствие электронного и бумажного документов, придётся тщательно сравнивать оба документа, чтобы выявить малейшие несоответствия, либо их отсутствие.

В случае с цифровыми подписями, необходимость такого сравнения отпадает. Если необходимо установить, полностью ли соответствует проверяемый документ оригинальному, достаточно вычислить цифровую подпись для файла документа и сравнить её с заявленной (достоверной). Несколько секунд вычислений цифровой подписи, несколько секунд визуального сравнения двух небольших наборов цифр – и вывод о соответствии или несоответствии готов.

К тому же, распечатке на бумажных носителях подвергаются преимущественно только текстовые и графические материалы (схемы, чертежи, фотографии и т.д.). Зато не могут быть распечатаны, например, аудио и видеозаписи, исполнимые компьютерные программы и прочее. Точнее, способы распечатки и для них можно найти, но они приведут к появлению печатных документов на сотнях и даже тысячах страниц весьма труднообрабатываемой информации. А цифровая подпись для файла – она всегда цифровая подпись, независимо от того, что в файле – текст, видео или компьютерная программа.

Перспективы развития электронных публикаций и цифровых подписей
В финансовой сфере доверие к цифровым документам уже давно установлено. С появлением таких услуг, как интернет-банкинг и интернет-трейдинг (торговля ценными бумагами или валютой через интернет) стало возможным в один-два клика компьютерной мыши совершать сделки стоимостью в десятки тысяч долларов США. Подтверждение таких сделок осуществляется через надёжных посредников, например операторов мобильной связи, обеспечивающих отправку сообщений с кодами подтверждений. Сделка считается достоверной, если для её осуществления был выполнен вход с вводом личного пароля и введён код подтверждения, отправленный в на виде СМС на мобильный телефон. Все документы, касательно каждой конкретной сделки хранятся в электронном виде на серверах поставщика услуг. И никаких бумажных квитанций с подписями клиента, контроллёра, кассира.

В таком случае, что мешает осуществлению серьёзных публикаций в один-два клика компьютерной мыши? Скорее всего, недостаточное обеспечение подтверждения достоверности публикаций. Поставщики интернет-блогов, к примеру, заботятся об удобстве массового пользователя, для которого важно иметь при необходимости возможность удалить что-то из ранее выложенного на своей странице, или внести изменения. Для серьёзных публикаций это неприемлемо, поскольку внесение любых изменений должно подразумевать и сохранение исходного варианта.

Другим препятствием к осуществлению электронных публикаций является недоверие к долговременной надёжности электронных депозитариев, в которых публикации будут размещаться. Если финансовые сделки имеют временный характер и через 3-5 лет после закрытия сделки уже никому не будет важно, была ли она или нет, то размещённые в электронном депозитарии материалы должны храниться неограниченно долго. Это возлагает дополнительную ответственность на депозитарий – раз, и влияет на доверие к нему – два.

Ведь было бы намного проще после подготовки файла сборника трудов научной конференции разместить его в специализированном депозитарии, вместо того, чтобы сдавать в типографию для печати тиража из нескольких сотен экземпляров сборника. Ещё проще было бы каждому автору размещать свои статьи сразу в депозитарии. Но мы говорим о надёжности, поэтому если не уверены, что через 10 лет размещённое в депозитарии ещё будет там, то напечатать несколько сотен бумажных экземпляров сборника надёжнее – через 10 лет большая часть из них точно сохраниться.

С цифровыми подписями всё обстоит несколько проще. Сейчас множество компаний, особенно предоставляющих услуги электронной почты, предоставляют также свободное место на своих серверах для размещения там документов пользователя. Каждый такой документ по желанию пользователя может быть либо в личном пользовании, либо публично доступным. Разместить там свою публикацию не составит особого труда, а ссылку на сам файл можно выложить на своём сайте или странице блога.

Однако это не специализированный депозитарий, поэтому обеспечивать долговременный доступ к файлам публикаций придётся самостоятельно, следя за функциональностью сайтов и серверов с предоставленным свободным местом, а при необходимости выкладывать файлы на других сайтах/серверах и самостоятельно обновлять ссылки на эти файлы. Вот только для этого обязательно должны быть достоверно опубликованы цифровые подписи для таких файлов.

Депозитарии сигнатур и будущее без бумаги
В будущем можно ожидать появления депозитариев сигнатур. На сайте такого депозитария любой желающий сможет создать личный аккаунт, и затем получить возможность публиковать в этом депозитарии сигнатуры файлов. Программными и аппаратными средствами и организационными мерами депозитарий сможет гарантировать размещение публикаций (только сигнатур) от имени пользователя (с проверкой как в финансовых сделках) без возможности их дальнейшего изменения или удаления, но с возможностью просмотра всеми желающими.

Для сохранения каждой такой сигнатуры достаточно всего порядка двух килобайт серверной памяти. Около 1 килобайта потребуется для кратких сведений о публикации и до 1 килобайта непосредственно для цифровой подписи, а сведения о пользователе сохраняются один раз при создании его аккаунта. После размещения сигнатуры в депозитарии пользователь получит его порядковый номер, который может поместить в сведениях о публикации, а саму публикацию разместить в интернете, где ему удобно. По этому номеру на сайте депозитария можно в любое время найти искомую сигнатуру и убедиться, что она действительно была размещена в депозитарии в указанное время указанным автором, а цифровая подпись будет подтверждением достоверности документа, который подписывался.

Одновременное размещение сигнатур в двух-трёх надёжных депозитариях (если вдруг один из депозитариев окажется нефункциональным, сведения можно найти в других) лишит необходимости печатать что-то на бумаге. Понадобится подписать документ – зачем его печатать для этого? Пусть все, кто его должны подписать, выложат от своих имён сигнатуру файла документа в соответствующих депозитариях (для подписывающих лиц, а не для авторов).

Если дальнейшее развитие и распространение цифровой техники позволит массово продавать в электронном виде и коммерческие публикации, так же как и компьютерные программы, то ежегодный и малополезный расход тонн бумаги для печати личных и публичных документов будет сокращён в разы. Осталось сделать первые шаги в этом направлении. Данная статья, к примеру, публикуется исключительно в электронном виде.

Источники информации
1. Трунов Д.Н. Принципы практического применения цифровых подписей // Проблеми гірничої технології: матеріали регіональної науково-практичної конференції, Красноармійський індустріальний інститут ДонНТУ, 30 листопада 2012 р. – Донецьк: Цифрова типографія, 2012. – С. 377 – 385.
2. Трунов Д.Н. Алгоритм вычисления сигнатуры файла, его особенности и область применения // Сучасні аспекти механізації та автоматизації енергоємних виробництв. Збірник матеріалів II регіональної науково-практичної конференції, Красноармійський індустріальний інститут ДВНЗ ДонНТУ, 25 квітня 2013 р. – Донецьк: ТОВ «Цифрова типографія», 2013. – С. 179 – 184.

Комментариев нет:

Отправить комментарий