Привет, дорогой читатель!
Зарегистрируйтесь и получите доступ к бесплатному контенту. А также будьте в курсе нового учебного контента. Ссылка на учебную платформу:
Если материал полезен, то есть способ отблагодарить меня. Любая сумма будет отличной наградой и стимулом писать полезный контент для Вас.
Купить кофе автору
В прошлый раз поговорили про ассиметричное шифрование. Разобрались, что открытый ключ используется для шифрования траффика и может свободно передаваться по открытым каналам или размещаться в открытых источникам, к примеру на сайте. Закрытый ключ при этом должен оставаться у владельца открытого ключа и использоваться для расшифровки шифротекста. Открытый и закрытый ключи математически связаны. Восстановить закрытый ключ по открытому чрезвычайно сложно. При достаточной длине ключа, учитывая текущие вычислительные возможности, практически невозможно.
Кто не читал - вот ссылка
Все это прекрасно, но представьте такую ситуацию – вы хотите передать ценную для вас информацию вашему партнеру, просите его передать вам его открытый ключ и он это делает: записывает на флешку открытый ключ и отдает ее своему помощнику, чтобы тот доехал до вас и передал. Как лично вам понять, что открытый ключ, что дает вам помощник принадлежит вашему партнеру? Запросто может получится так, что помощник сформировал свою пару ключей и отдает вам свой открытый ключ. Вы шифруете конфиденциальную информацию и передаете помощнику. Тот в свою очередь расшифровывает ее, копирует себе и зашифровывает снова, но уже на ключе своего начальника. Приносит начальнику, который в свою очередь расшифровывает послание своим секретным ключом и как-бы все ОК). Партнеры и не вкурсе, что произошла MITM атака. Вы можете возразить: А зачем при асимметричной криптографии кто-то кого-то о чем-то просит? В жизни бывает по-разному. Тем более публичный ключ можно и подменить по открытым каналам связи. Я виду к тому, что шифрование — это хорошо, но в ассиметричном подходе есть нюанс – как-то надо аутентифицировать стороны.
Итак, запоминаем: Шифрование не позволяет злоумышленнику просматривать информацию, передаваемую по сети, но оно не определяет кто его отправил. Тот факт, что у кого-то есть ключ шифрования, не означает, что он тот, за кого себя выдает!
Решение: Проблему аутентификации (проверка подлинности) решают алгоритмы подписи. Алгоритмы не только решают озвученную проблему, но еще и защищают сообщение от подделки. Т.е. обеспечивают проверку подлинности сообщения. Ведь злоумышленник мог не просто заглянуть в сообщение, перешифровать и отправить получателю. Он мог внести изменения!
Вы помните, что серию статей-подводок к теме ЭЦП мы начали с хеширования? Так вот в основе алгоритмов подписи лежат алгоритмы криптографического хеширования. Про хеширование не будем повторяться. Если не читали - вот ссылка.
Рассмотрим, что из себя представляют алгоритмы подписи!
Ассиметричные алгоритмы подписи:
Ассиметричные алгоритмы можно использовать не только для шифрования/дешифрования! Их свойства можно задействовать для создания подписи сообщения (документа и т.д.). Алгоритм RSA может одновременно использоваться для шифрования и подписи. Минус использования RSA в том, что чтобы обеспечить им достаточную криптостойкость, в условиях закона Мура, необходимо постоянно увеличивать длину открытого ключа. Так как этот процесс не может длиться бесконечно изобрели алгоритм формирования цифровой электронной подписи DSA, построенный на модели дискретного логарифмирования. Используя DSA можно ограничиться длиной ключа 256 – 1024 бита. Использование ассиметричного шифрования предполагает шифрование открытым ключем. Для подписи же все наоборот:
- Отправитель вычисляет хеш сообщения (открытого ключа) и шифрует его своим закрытым ключем. Этот набор передается получателю;
- Получатель, используя открытый ключ отправителя, расшифровывает подпись. На выходе получает хеш сообщения (открытого ключа) ;
- Получатель самостоятельно вычисляет хеш сообщения (открытого ключа) и сравнивает с тем, что получил при расшифровке подписи. Если хеши совпадают, то сообщение (открытый ключ) принадлежит отправителю и не подвергся нарушению целостности.
Когда алгоритм используется для подписи, то аналогии «открытый ключ – замок», «закрытый ключ – ключ от замка» меняются местами (про эти аналогии для лучшего запоминания я писал в статье - вот ссылка)
Если абстрагироваться от конкретной жизненной ситуации, описанной выше и случаях одновременного использования ассиметричного алгоритма для шифрования и подписи, то в общем процесс формирования ЭЦП выглядит так:
Сертификат на схеме — это, по сути, открытый ключ + дополнительная информация (формат X.509).
Спасибо Паше Бойкову, заместителю начальника удостоверяющего центра за вычитку статьи и проверку правильности схемы!
Если понравилось - ставьте лайки, делитесь с друзьями, коллегами в соцсетях. Все это придает смысл моему альтруизму :)
До скорого!