Развитие цифровых технологий упростило многие моменты нашей жизни, в том числе, обмениваться документами и письмами в электронной форме оказалось быстрее и удобнее, чем в бумажной. Однако у электронного документооборота была проблема: нужно было как- то подтверждать подлинность электронных бумаг. На бумаге для этого использовались подписи, однако в цифровом формате их было достаточно легко подделать, поэтому для электронных документов требовался более надежный метод подтверждения. Поэтому и стал популярным аналог ручных подписей - электронная подпись, о которой будет рассказано дальше.
Сначала вкратце опишу то, как работает электронная подпись (ЭП) и в чём заключается её надёжность. Электронная подпись – подтверждение того, что какой-либо электронный документ был создан и подписан определённым физическим или юридическим лицом. При этом она должна обладать следующими свойствами:
Неотказуемость – подписавшее документ лицо не может утверждать, что это сделал кто-то другой;
Целостность – внесение исправлений в уже подписанный документ должно нарушать подпись;
Авторство – электронная подпись должна быть жёстко закреплена за определённым физическим или юридическим лицом.
Эти базовые принципы и делают ЭП эффективной и безопасной в использовании.
Немного теории
В качестве алгоритмической базы для электронной подписи обычно применяют методы шифрования с открытым ключом. Подробнее о самих алгоритмах можно почитать на википедии или на хабре. Их суть сводится к тому, что для желающего обзавестись собственной электронной подписью специальным образом выбирается пара ключей – открытый и закрытый. Первый, как следует из названия, доступен всем, а второй владельцу подписи лучше держать в секрете. Естественно, ключи выбираются так, чтобы закрытый ключ нельзя было легко угадать по открытому. После чего закрытый ключ используется для шифрования документа (иными словами, его подписания), а открытый – для расшифровки (то есть для проверки подписи). При этом алгоритмы выбора ключей гарантируют, что открытым ключом можно расшифровать только те документы, которые шифровались соответсвующим ему закрытым ключом. Таким образом, если мы знаем открытый ключ владельца ЭП и смогли расшифровать им полученный от него документ, то он был точно подписан тем самым владельцем. Так работают асимметричные схемы ЭП.
Применение хэш-функций
В связи с тем, что шифрование закрытым ключом документа большого размера – довольно сложный и долгий процесс, обычно к тексту документа сначала применяют более быстрое и простое хэш-шифрование. Полученный сравнительно короткий результат шифруют закрытым ключом, получая саму цифровую подпись. Вместе с ней открытый текст документа передаётся получателю.
Тот должен всего лишь хэшировать текст документа той же хэш-функцией, после чего расшифровать открытым ключом подпись и сравнить оба результата. Если они совпадают – то документ мог быть подписан только отправителем (вот она и неотказуемость) и не был испорчен, дополнен или подменён в процессе пересылки (а это целостность). А дляпоследнего свойства – авторства – необходимо, чтобы пара ключей подписавшего была закреплена за ним. На практике для этого используются так называемые удостоверяющие центры, которые по запросу выдают сертификат на пару ключей, а также гарантируют единственность обладания ими.
Что же может пойти не так?
Наверное, внимательные читатели уже увидели, что описанная выше схема представляет собой сферическую ЭП в вакууме.
И действительно, в теории взломать или подделать такую подпись можно несколькими способами. Самый лакомый способ для взломщика-криптоаналитика – это по открытому ключу угадать закрытый. Тогда злоумышленнику сразу открываются сказочные перспективы – ведь он сможет действовать от лица истинного владельца подписи и даже управлять его имуществом. Однако обычно такой взлом не возможен ввиду того, что подбор закрытого ключа по открытому – вычислительно нерешаемая задача. При генерации пары ключей широко применяются факторизация или дискретное логарифмирование, что оставляет взломщику мало надежды. Конечно можно попробовать подобрать закрытый ключ полным перебором, но при достаточно большом размере ключей такая возможность отпадает.
Ещё одно уязвимое место – это хэш-функция. Здесь возможны сразу несколько направлений атак. Если алгоритм хэширования не достаточно надёжный, то взломщик может подобрать какой-нибудь свой документ, применение хэш-функции к которому даст тот же результат, что и её применение к исходному документу. Или же злоумышленник может сгенерировать два документа, дающие одинаковый хэш, после чего при необходимости сможет подменить один документ другим. Названные ситуации считаются коллизиями хэш-функций. Однако жизнь взломщика хэш-функции всё же не так легка: мало того, что подставной документ должен представлять из себя читаемый текст, а не быть бессмысленным набором бит, так еще и придумано достаточно криптостойких алгоритмов хэширования. Для примера, надёжными на момент написания статьи являются SHA-3, BLAKE2, семейство JH или отечественный «Стрибог» (он же ГОСТ 34.11-2018).
Подключаем человеческий фактор, бюрократию и частные организации
В самом начале мы говорили о свойствах, которыми должна обладать качественная электронная подпись. Из них под действием уже упомянутых выше атак пока страдали только её целостность и неотказуемость. Однако в реалиях нашего мира наибольшее количество нарушений происходит из-за подмены авторства.
В России получение ЭП регулируется законом № 63-ФЗ «Об электронной подписи». Для её оформления нужно получить сертификат от удостоверяющего центра (УЦ) на выбор. В УЦ нужно предоставить необходимые документы и заплатить некоторую сумму, после чего забрать свой сертификат и заветный eToken с закрытым ключом.
Вот на получении сертификатов-то и возникает простор для всевозможных махинаций. Все УЦ являются коммерческими организациями, они обязательно аккредитованы Министерством цифрового развития и имеют лицензию от ФСБ. Однако чего не сделаешь ради прибыли - для УЦ порой желания клиентов выше установленных правил выдачи сертификата. Например, из-за этого сегодня возможно получить ЭП на другое лицо, пользуясь утечками персональных данных или некомпетентностью УЦ. Это приводит к довольно печальным последствиям – вплоть до переоформления квартиры или регистрации фиктивных организаций с целью взятия кредитов. Данные способы подделки подписей не требуют даже знания криптографии, достаточно лишь воспользоваться особенностями сертифицирования ЭП в России.
Заключение
В статье вкратце было рассмотрено, как работает электронная подпись. Видно, что алгоритм достаточно устойчив и почти не имеет слабых мест. Однако, как и во многих случаях, самое слабое место этого метода - человеческий фактор, оставляющий большой простор для действий злоумышленников.
Shaman_RSHU
К сожалению в тексте не нашел ссылок или выкладок доказательства устойчивости алгоритма, а также не определена степень достаточности, по которой можно проводить сравнение. И непонятно, о каком конкретно алгоритме идет речь.
kands Автор
Имелись в виду современные алгоритмы асимметричного шифрования. Под их устойчивастью я подразумевал низкую вероятность взлома, что попытался «на пальцах» объяснить в статье.