1. Основы криптографии: ключи и сертификаты
Основы криптографии: ключи и сертификаты
Представьте, что вы получили письмо от банка с просьбой подтвердить перевод на сумму 500 000 руб. Как вы узнаете, что письмо действительно от банка, а не от мошенника? В цифровом мире эта проблема решается с помощью криптографии — науки о защите информации. И ключевыми инструментами здесь выступают ключи и сертификаты. Без понимания того, как они устроены, невозможно грамотно работать с КриптоПро CSP — программой, которая управляет всем этим процессом на вашем компьютере.
Асимметричное шифрование: две половины одного замка
Классическое шифрование работает как один замок с одним ключом: зашифровал — тем же ключом расшифровал. Это симметричное шифрование. Проблема в том, что если вы хотите отправить зашифрованное сообщение другому человеку, вам придётся как-то передать ему этот ключ — а при передаче его могут перехватить.
В 1970-х годах математики придумали элегантное решение: асимметричное шифрование. У каждого участника системы есть пара ключей — открытый и закрытый. Они математически связаны между собой, но зная открытый ключ, невозможно вычислить закрытый.
Представьте почтовый ящик с прорезью. Любой человек может бросить письмо в прорезь — это открытый ключ. Но забрать письмо из ящика может только тот, у кого есть ключ от замка — это закрытый ключ. Открытый ключ вы свободно раздаёте всем, кто хочет вам написать. Закрытый ключ храните только у себя и никому не показываете.
| Свойство | Открытый ключ | Закрытый ключ | | --- | --- | --- | | Хранение | Свободно распространяется | Строго конфиденциально | | Функция шифрования | Шифрует сообщение для владельца | Расшифровывает входящие сообщения | | Функция подписи | Проверяет подпись | Создаёт электронную подпись | | Пример из жизни | Прорезь почтового ящика | Ключ от замка ящика |
На практике это работает так. Допустим, бухгалтер Анна хочет отправить подписанный отчёт в налоговую. Она берёт закрытый ключ, применяет его к хешу документа (сжатой контрольной сумме) и получает электронную подпись. Налоговая берёт открытый ключ Анны, проверяет подпись и убеждается: документ не менялся после подписания, и подпись действительно принадлежит Анне.
Хеш-функция: отпечаток документа
Здесь возникает вопрос: зачем подписывать хеш, а не сам документ целиком? Дело в том, что документы могут быть огромными — десятки мегабайтов. Подписывать такой объём данных закрытым ключом было бы крайне медленно.
Хеш-функция — это математическая операция, которая превращает любой набор данных в строку фиксированной длины. Например, алгоритм ГОСТ Р 34.11-2012 (он же «Стрибог»), который используется в российских криптосистемах, всегда выдаёт хеш длиной 256 или 512 бит — независимо от того, подписываете вы одно слово или целую энциклопедию.
Критические свойства хеш-функции:
Именно поэтому электронная подпись гарантирует целостность документа: если кто-то изменил хотя бы одну цифру в отчёте после подписания, хеш изменится, и подпись станет невалидной.
Сертификат: паспорт для ключа
Открытый ключ сам по себе — это просто длинная последовательность бит. Если вам прислали открытый ключ, как вы узнаете, что он действительно принадлежит Анне Ивановой, а не злоумышленнику, который выдаёт себя за Анну?
Для этого существует сертификат открытого ключа (или просто сертификат). По сути, это цифровой документ, который связывает открытый ключ с конкретным владельцем. Сертификат содержит:
Удостоверяющий центр — это доверенная организация, которая проверяет личность заявителя и подтверждает: «Да, этот открытый ключ действительно принадлежит Анне Ивановой из ООО «Ромашка»». В России деятельность УЦ регулируется Федеральным законом № 63-ФЗ «Об электронной подписи».
> Сертификат — это не сам ключ, а документ, удостоверяющий принадлежность ключа конкретному лицу. Аналогия: паспорт не делает вас гражданином, но подтверждает вашу личность.
Цепочка доверия: от корня к листу
Сертификаты в криптографии образуют иерархическую структуру — цепочку доверия. На вершине sits корневой сертификат удостоверяющего центра. Он подтверждает промежуточные сертификаты, а те, в свою очередь, подтверждают сертификаты конечных пользователей (так называемые «листовые» сертификаты).
Когда вы устанавливаете личный сертификат в КриптоПро CSP, система проверяет всю цепочку: от вашего сертификата вверх, до корневого. Если хотя бы одно звено в цепочке отсутствует или повреждено, система выдаст ошибку вида «Невозможно проверить подлинность сертификата». Именно поэтому при настройке КриптоПро часто приходится устанавливать не только личный сертификат, но и корневые сертификаты удостоверяющего центра.
Квалифицированная и неквалифицированная подпись
Российское законодательство разделяет электронные подписи на два типа:
Неквалифицированная электронная подпись (НЭП) подтверждает авторство и целостность документа, но не имеет полной юридической силы равной собственноручной подписи. Её можно получить, сгенерировав ключевую пару самостоятельно.
Квалифицированная электронная подпись (КЭП) — это подпись, сертификат которой выдан аккредитованным удостоверяющим центром, а криптографические алгоритмы соответствуют российским стандартам (ГОСТ). Именно КЭП имеет юридическую силу, равную собственноручной подписи, и используется для работы с государственными порталами, электронными торговыми площадками и системами электронного документооборота.
КриптоПро CSP — это криптопровайдер, сертифицированный ФСТЭК России для работы с КЭП. Он реализует именно российские криптографические стандарты: ГОСТ Р 34.10-2012 для электронной подписи и ГОСТ Р 34.11-2012 для хеширования.
Как всё это связано вместе
Вернёмся к Анне-бухгалтеру. Она получила в удостоверяющем центре сертификат КЭП и закрытый ключ, записанные на защищённый носитель — токен. На компьютере установлена КриптоПро CSP. Когда Анне нужно подписать отчёт:
Каждый элемент этой системы — ключи, хеш, сертификат, удостоверяющий центр — выполняет свою строго определённую роль. Понимание этой архитектуры — фундамент, без которого невозможно эффективно работать с КриптоПро CSP и уверенно устранять возникающие проблемы.