Глоссарий
Что такое криптография с открытым ключом — шифрование и подпись парой ключей
Криптография с открытым ключом использует пару ключей: открытый ключ шифрует и проверяет подписи, закрытый — расшифровывает и подписывает. Разбираем, как это лежит в основе TLS (HTTPS), цифровых подписей и passkey, и практическую защиту: не изобретайте свою криптографию, берегите закрытый ключ.
Слова «открытый ключ» и «закрытый ключ» встречаются повсюду — TLS (HTTPS), цифровые подписи, passkey. Здесь нет шагов атаки — только сама идея криптографии с открытым ключом и та практическая защита, которую стоит знать.
Роли открытого и закрытого ключа
Ключи идут в паре и имеют противоположные роли — в этом весь смысл.
Для чего это используется
Шифрование (частный обмен)
- шифруете открытым ключом получателя
- расшифровать может только держатель парного закрытого ключа
- в TLS используется, чтобы безопасно передать симметричный ключ
Цифровые подписи (доказательство подлинности)
- отправитель подписывает своим закрытым ключом
- получатель проверяет открытым ключом — личность + целостность
- используется для сертификатов TLS, распространения ПО, аутентификации passkey
Настоящий TLS (HTTPS) — гибридный: криптография с открытым ключом безопасно передаёт симметричный ключ, а дальше всё остальное защищает быстрый симметричный шифр. Passkey подписывают закрытым ключом, который хранится на вашем устройстве, и проверяют открытым ключом сервера — аутентификация, устойчивая к фишингу.
Что важно сделать правильно
Не изобретайте свою криптографию
Даже верную теорию ломают детали реализации — качество случайности, отступы (padding), различия во времени выполнения. Используйте стандартные протоколы и проверенные библиотеки; избегайте самописных реализаций.
Берегите закрытый ключ
Не держите закрытые ключи в коде и репозиториях. Изолируйте их в хранилище ключей / менеджере секретов и выстройте работу так, чтобы при утечке можно было отозвать и перевыпустить (ротация) (→ не держите секреты в публичных каталогах).
Держите длину ключа и алгоритмы актуальными
Рекомендации со временем меняются. Не оставляйте старые длины ключей или устаревшие алгоритмы. Автоматически обновляйте сертификаты с помощью Let's Encrypt и подобных сервисов.
Взгляд этого сайта: задача пользователя — управление ключами
Сама по себе криптография с открытым ключом сильна — ломать её редко имеет смысл. Реальные инциденты связаны не с математикой, а с тем, где живёт закрытый ключ, можно ли его отозвать и какие устаревшие настройки остались. Этот сайт изолирует закрытые ключи за пределами публичной поверхности и делает ротацию при малейшем подозрении на утечку, исходя из принципа «считаем, что его прочитали». Не изобретайте своё, опирайтесь на стандарты — это самый безопасный короткий путь.
Читать дальше
FAQ
QЧем криптография с открытым ключом отличается от симметричной (с общим ключом)?
Симметричная криптография использует один и тот же ключ для шифрования и расшифровки — это быстро, но нужно безопасно передать этот ключ другой стороне. Криптография с открытым ключом использует пару из открытого и закрытого ключей, и открытый ключ можно раздать кому угодно. На практике TLS (HTTPS) гибридный: криптография с открытым ключом безопасно передаёт симметричный ключ, а затем основной объём данных защищается быстрым симметричным шифром.
QКак цифровая подпись доказывает подлинность?
Отправитель создаёт подпись над данными своим закрытым ключом, а получатель проверяет её открытым ключом отправителя. Поскольку закрытый ключ есть только у владельца, успешная проверка означает: «это подписал держатель того открытого ключа, и содержимое не подделано». На этом механизме подписи держатся сертификаты TLS и подлинность распространяемого ПО.
QМожно ли реализовать свою криптографию?
Не стоит. Даже верную теорию ломают детали реализации — слабая случайность, отступы (padding), различия во времени выполнения. Правило простое: «не изобретайте своё; используйте проверенные библиотеки и стандартные протоколы». Продумайте, как ключи генерируются, хранятся и отзываются (ротация), и держите длину ключей и алгоритмы на уровне текущих рекомендаций.