Мне, как IT специалисту, странно видеть данный опрос. Лично я знаю насколько сложно подделать ЭЦП по ГОСТ Р 34.10-2001. А особенно странно видеть людей, которые не доверяют ей. Если не трудно прокомментируйте, пожалуйста, Ваш выбор.
Анализ возможностей подделки подписей называется криптоанализ. Попытку сфальсифицировать подпись или подписанный документ криптоаналитики называют «атака».
Модели атак и их возможные результаты
В своей работе Гольдвассер, Микали и Ривест описывают следующие модели атак, которые актуальны и в настоящее время[5]:
Атака с использованием открытого ключа. Криптоаналитик обладает только открытым ключом.
Атака на основе известных сообщений. Противник обладает допустимыми подписями набора электронных документов, известных ему, но не выбираемых им.
Адаптивная атака на основе выбранных сообщений. Криптоаналитик может получить подписи электронных документов, которые он выбирает сам.
Также в работе описана классификация возможных результатов атак:
Полный взлом цифровой подписи. Получение закрытого ключа, что означает полный взлом алгоритма.
Универсальная подделка цифровой подписи. Нахождение алгоритма, аналогичного алгоритму подписи, что позволяет подделывать подписи для любого электронного документа.
Выборочная подделка цифровой подписи. Возможность подделывать подписи для документов, выбранных криптоаналитиком.
Экзистенциальная подделка цифровой подписи. Возможность получения допустимой подписи для какого-то документа, не выбираемого криптоаналитиком.
Ясно, что самой «опасной» атакой является адаптивная атака на основе выбранных сообщений, и при анализе алгоритмов ЭЦП на криптостойкость нужно рассматривать именно ее (если нет каких-либо особых условий).
При безошибочной реализации современных алгоритмов ЭЦП получение закрытого ключа алгоритма является практически невозможной задачей из-за вычислительной сложности задач, на которых ЭЦП построена. Гораздо более вероятен поиск криптоаналитиком коллизий первого и второго рода. Коллизия первого рода эквивалентна экзистенциальной подделке, а коллизия второго рода — выборочной. С учетом применения хеш-функций, нахождение коллизий для алгоритма подписи эквивалентно нахождению коллизий для самих хеш-функций.
Подделка документа (коллизия первого рода)
Злоумышленник может попытаться подобрать документ к данной подписи, чтобы подпись к нему подходила. Однако в подавляющем большинстве случаев такой документ может быть только один. Причина в следующем:
Документ представляет из себя осмысленный текст.
Текст документа оформлен по установленной форме.
Документы редко оформляют в виде Plain Text — файла, чаще всего в формате DOC или HTML.
Если у фальшивого набора байт и произойдет коллизия с хешем исходного документа, то должны выполниться 3 следующих условия:
Случайный набор байт должен подойти под сложно структурированный формат файла.
То, что текстовый редактор прочитает в случайном наборе байт, должно образовывать текст, оформленный по установленной форме.
Текст должен быть осмысленным, грамотным и соответствующий теме документа.
Впрочем, во многих структурированных наборах данных можно вставить произвольные данные в некоторые служебные поля, не изменив вид документа для пользователя. Именно этим пользуются злоумышленники, подделывая документы.
Вероятность подобного происшествия также ничтожно мала. Можно считать, что на практике такого случиться не может даже с ненадёжными хеш-функциями, так как документы обычно большого объёма — килобайты.
Получение двух документов с одинаковой подписью (коллизия второго рода)
Куда более вероятна атака второго рода. В этом случае злоумышленник фабрикует два документа с одинаковой подписью, и в нужный момент подменяет один другим. При использовании надёжной хэш-функции такая атака должна быть также вычислительно сложной. Однако эти угрозы могут реализоваться из-за слабостей конкретных алгоритмов хэширования, подписи, или ошибок в их реализациях. В частности, таким образом можно провести атаку на SSL-сертификаты и алгоритм хеширования MD5.[11]
Социальные атаки
Социальные атаки направлены не на взлом алгоритмов цифровой подписи, а на манипуляции с открытым и закрытым ключами
Злоумышленник, укравший закрытый ключ, может подписать любой документ от имени владельца ключа.
Злоумышленник может обманом заставить владельца подписать какой-либо документ, например, используя протокол слепой подписи.
Злоумышленник может подменить открытый ключ владельца на свой собственный, выдавая себя за него.
Использование протоколов обмена ключами и защита закрытого ключа от несанкционированного доступа позволяет снизить опасность социальных атак.
ЭЦП я доверяю, т.к. подделать её очень и очень трудно.
А вот как реализована система, связанная с ЭЦП, это другой вопрос.
Примеры: организация А организовала обмен электронными документами между контрагентами. В качестве носителя ЭЦП выступают дискетки, флешки, жёсткий диск компьютера и т.д., общаются системы по открытому протоколу http
Этой системе я не доверяю, т.к. ничего не мешает утянуть мой ключ трояном с дискеты, а заодно и пароль к нему с помощью кейлоггера.
Далее: Организация Б организовала обмен электронными документами между контрагентами. В качестве носителя ЭЦП выступает закрытый электронный токен (смарт-карта), генерация ключа идёт внутри токена, используя его аппаратную часть, компьютер в вычислениях не участвует. Ключ в системе не виден в качестве носителя, утянуть данные с него очень и очень сложно. Общение систем идёт по шифрованному протоколу https с использованием сертификатов.
Этой системе я доверяю гораздо больше, т.к. без моего токена никто ничего не сделает, даже если знает пароль. Остаётся вероятность того, что троян воспользуется текущим сеансом связи и отправит от моего имена документы, либо я забуду токен в системе. пароль же к нему троян стянул кейлоггером.
Третий вариант: Организация В организовала обмен электронными документами между контрагентами. В качестве носителя ЭЦП выступает закрытый электронный токен (смарт-карта), генерация ключа идёт внутри токена, используя его аппаратную часть, компьютер в вычислениях не участвует. Ключ в системе не виден в качестве носителя, утянуть данные с него очень и очень сложно. Общение систем идёт по шифрованному протоколу https с использованием сертификатов. Дополнительно к токену при отправке каждого документа запрашивается одноразовый пароль, присылаемый в виде SMS или генерируемый OTP-токеном.
Этой системе я доверяю больше всего, т.к. нужно приложить очень и очень много усилий, чтобы подписать документы моей подписью.
Модели атак и их возможные результаты
В своей работе Гольдвассер, Микали и Ривест описывают следующие модели атак, которые актуальны и в настоящее время[5]:
Атака с использованием открытого ключа. Криптоаналитик обладает только открытым ключом.
Атака на основе известных сообщений. Противник обладает допустимыми подписями набора электронных документов, известных ему, но не выбираемых им.
Адаптивная атака на основе выбранных сообщений. Криптоаналитик может получить подписи электронных документов, которые он выбирает сам.
Также в работе описана классификация возможных результатов атак:
Полный взлом цифровой подписи. Получение закрытого ключа, что означает полный взлом алгоритма.
Универсальная подделка цифровой подписи. Нахождение алгоритма, аналогичного алгоритму подписи, что позволяет подделывать подписи для любого электронного документа.
Выборочная подделка цифровой подписи. Возможность подделывать подписи для документов, выбранных криптоаналитиком.
Экзистенциальная подделка цифровой подписи. Возможность получения допустимой подписи для какого-то документа, не выбираемого криптоаналитиком.
Ясно, что самой «опасной» атакой является адаптивная атака на основе выбранных сообщений, и при анализе алгоритмов ЭЦП на криптостойкость нужно рассматривать именно ее (если нет каких-либо особых условий).
При безошибочной реализации современных алгоритмов ЭЦП получение закрытого ключа алгоритма является практически невозможной задачей из-за вычислительной сложности задач, на которых ЭЦП построена. Гораздо более вероятен поиск криптоаналитиком коллизий первого и второго рода. Коллизия первого рода эквивалентна экзистенциальной подделке, а коллизия второго рода — выборочной. С учетом применения хеш-функций, нахождение коллизий для алгоритма подписи эквивалентно нахождению коллизий для самих хеш-функций.
Подделка документа (коллизия первого рода)
Злоумышленник может попытаться подобрать документ к данной подписи, чтобы подпись к нему подходила. Однако в подавляющем большинстве случаев такой документ может быть только один. Причина в следующем:
Документ представляет из себя осмысленный текст.
Текст документа оформлен по установленной форме.
Документы редко оформляют в виде Plain Text — файла, чаще всего в формате DOC или HTML.
Если у фальшивого набора байт и произойдет коллизия с хешем исходного документа, то должны выполниться 3 следующих условия:
Случайный набор байт должен подойти под сложно структурированный формат файла.
То, что текстовый редактор прочитает в случайном наборе байт, должно образовывать текст, оформленный по установленной форме.
Текст должен быть осмысленным, грамотным и соответствующий теме документа.
Впрочем, во многих структурированных наборах данных можно вставить произвольные данные в некоторые служебные поля, не изменив вид документа для пользователя. Именно этим пользуются злоумышленники, подделывая документы.
Вероятность подобного происшествия также ничтожно мала. Можно считать, что на практике такого случиться не может даже с ненадёжными хеш-функциями, так как документы обычно большого объёма — килобайты.
Получение двух документов с одинаковой подписью (коллизия второго рода)
Куда более вероятна атака второго рода. В этом случае злоумышленник фабрикует два документа с одинаковой подписью, и в нужный момент подменяет один другим. При использовании надёжной хэш-функции такая атака должна быть также вычислительно сложной. Однако эти угрозы могут реализоваться из-за слабостей конкретных алгоритмов хэширования, подписи, или ошибок в их реализациях. В частности, таким образом можно провести атаку на SSL-сертификаты и алгоритм хеширования MD5.[11]
Социальные атаки
Социальные атаки направлены не на взлом алгоритмов цифровой подписи, а на манипуляции с открытым и закрытым ключами
Злоумышленник, укравший закрытый ключ, может подписать любой документ от имени владельца ключа.
Злоумышленник может обманом заставить владельца подписать какой-либо документ, например, используя протокол слепой подписи.
Злоумышленник может подменить открытый ключ владельца на свой собственный, выдавая себя за него.
Использование протоколов обмена ключами и защита закрытого ключа от несанкционированного доступа позволяет снизить опасность социальных атак.
ru.wikipedia.org/wiki/ЭЦП#.D0.9C.D0.BE.D0.B4.D0.B5.D0.BB.D0.B8_.D0.B0.D1.82.D0.B0.D0.BA_.D0.B8_.D0.B8.D1.85_.D0.B2.D0.BE.D0.B7.D0.BC.D0.BE.D0.B6.D0.BD.D1.8B.D0.B5_.D1.80.D0.B5.D0.B7.D1.83.D0.BB.D1.8C.D1.82.D0.B0.D1.82.D1.8B
ЭЦП я доверяю, т.к. подделать её очень и очень трудно.
А вот как реализована система, связанная с ЭЦП, это другой вопрос.
Примеры: организация А организовала обмен электронными документами между контрагентами. В качестве носителя ЭЦП выступают дискетки, флешки, жёсткий диск компьютера и т.д., общаются системы по открытому протоколу http
Этой системе я не доверяю, т.к. ничего не мешает утянуть мой ключ трояном с дискеты, а заодно и пароль к нему с помощью кейлоггера.
Далее: Организация Б организовала обмен электронными документами между контрагентами. В качестве носителя ЭЦП выступает закрытый электронный токен (смарт-карта), генерация ключа идёт внутри токена, используя его аппаратную часть, компьютер в вычислениях не участвует. Ключ в системе не виден в качестве носителя, утянуть данные с него очень и очень сложно. Общение систем идёт по шифрованному протоколу https с использованием сертификатов.
Этой системе я доверяю гораздо больше, т.к. без моего токена никто ничего не сделает, даже если знает пароль. Остаётся вероятность того, что троян воспользуется текущим сеансом связи и отправит от моего имена документы, либо я забуду токен в системе. пароль же к нему троян стянул кейлоггером.
Третий вариант: Организация В организовала обмен электронными документами между контрагентами. В качестве носителя ЭЦП выступает закрытый электронный токен (смарт-карта), генерация ключа идёт внутри токена, используя его аппаратную часть, компьютер в вычислениях не участвует. Ключ в системе не виден в качестве носителя, утянуть данные с него очень и очень сложно. Общение систем идёт по шифрованному протоколу https с использованием сертификатов. Дополнительно к токену при отправке каждого документа запрашивается одноразовый пароль, присылаемый в виде SMS или генерируемый OTP-токеном.
Этой системе я доверяю больше всего, т.к. нужно приложить очень и очень много усилий, чтобы подписать документы моей подписью.
Как-то так.