Для чего используется открытый ключ
Открытый ключ используется для двух основных задач: проверки электронной подписи и шифрования данных, которые сможет прочитать только владелец парного закрытого ключа. Ключи создаются парой в асимметричной криптографии: закрытый хранится в секрете, а открытый можно свободно раздавать — вычислить по нему закрытый на практике невозможно. На этом принципе работают сайты с HTTPS, электронная подпись документов, вход на серверы по SSH, шифрованная почта PGP, мессенджеры со сквозным шифрованием и криптовалютные кошельки.

Содержание
Как устроена пара ключей
Алгоритм генерирует два математически связанных ключа. То, что зашифровано одним, расшифровывается только другим. Закрытый ключ (секретный, приватный) остаётся у владельца — на компьютере, токене или смарт-карте. Открытый ключ (публичный) публикуют или передают собеседникам. Самые распространённые алгоритмы — RSA, ECDSA и EdDSA (Ed25519); в России для электронной подписи применяется стандарт ГОСТ Р 34.10-2012. Надёжность основана на задачах, которые не под силу даже мощным компьютерам: разложении огромных чисел на множители и вычислениях на эллиптических кривых.
Задача 1. Проверка электронной подписи
Владелец подписывает документ закрытым ключом: программа вычисляет хеш файла и преобразует его этим ключом. Любой, у кого есть открытый ключ, может проверить подпись и убедиться, что документ подписан именно этим человеком и не менялся после подписания. В российском законе об электронной подписи открытый ключ называется ключом проверки электронной подписи, а закрытый — ключом электронной подписи. Ключ проверки вместе с данными владельца упаковывают в сертификат, который заверяет удостоверяющий центр. Как убедиться в подлинности такой подписи, рассказано в статье где можно проверить ЭЦП.
Задача 2. Шифрование
Чтобы отправить человеку секретное сообщение, его шифруют открытым ключом получателя. Расшифровать его сможет только владелец закрытого ключа — даже сам отправитель после шифрования текст не прочитает. На практике асимметричным алгоритмом обычно защищают не само сообщение, а случайный сеансовый ключ, которым затем быстро шифруют данные симметричным алгоритмом, например AES. Так устроены шифрованная почта PGP/GPG и S/MIME.
Задача 3. HTTPS и сертификаты сайтов
Когда вы открываете сайт с замком в адресной строке, сервер присылает браузеру сертификат со своим открытым ключом. Браузер проверяет, что сертификат выдан доверенным центром для этого домена, и с помощью ключа договаривается с сервером о сеансовом шифровании. Благодаря этому никто посередине — провайдер или владелец Wi-Fi в кафе — не прочитает пароли и данные карт. Сертификаты сайтов выдаются на ограниченный срок и регулярно перевыпускаются, а вместе с ними часто меняется и пара ключей.
Задача 4. Вход на серверы по SSH
Администраторы заходят на серверы без пароля: открытый ключ кладут в файл authorized_keys на сервере, а закрытый остаётся на рабочем компьютере. При подключении сервер проверяет, что клиент владеет закрытым ключом, не получая его. Тот же принцип используется для доступа к Git-репозиториям. Такой вход надёжнее пароля: его нельзя подобрать перебором, а утёкший открытый ключ злоумышленнику бесполезен.
Другие применения
- Мессенджеры. Сквозное шифрование строится на обмене открытыми ключами между устройствами собеседников.
- Криптовалюты. Адрес кошелька получается из открытого ключа, а переводы подписываются закрытым.
- Обновления программ. Производители подписывают обновления, а устройство проверяет подпись открытым ключом и не ставит поддельную прошивку.
- Банковские карты и документы. Чипы карт и биометрические загранпаспорта используют подписи, которые проверяются открытыми ключами.
Чем открытый ключ отличается от закрытого
Открытый ключ знает кто угодно, и его утечка ничем не грозит: он нужен, чтобы проверять подписи и шифровать сообщения для владельца. Закрытый ключ знает только владелец, им создают подпись и расшифровывают сообщения. Если закрытый ключ скомпрометирован, сертификат нужно срочно отозвать в удостоверяющем центре и выпустить новую пару ключей, а все документы, подписанные после утечки, становятся под сомнением. Закрытый ключ электронной подписи обычно защищают ПИН-кодом токена — о том, какой пароль на ключ ЭЦП стоит по умолчанию и как его сменить, рассказано отдельно.
Как передавать открытый ключ безопасно
Открытый ключ не секретен, но важно, чтобы его не подменили. Если злоумышленник выдаст свой ключ за ваш, собеседник зашифрует сообщение для мошенника. Поэтому ключи подтверждают сертификатами удостоверяющих центров, сверяют «отпечатки» — короткие хеши ключа — по телефону или лично, а в мессенджерах сравнивают коды безопасности. Перед первым подключением к серверу по SSH сверьте отпечаток ключа сервера с тем, что сообщил администратор. А для юридически значимой подписи документов в России получают квалифицированный сертификат: о том, где получают электронную подпись, есть подробный материал.