hostprofi.ru
Подобрать хостинг
Термин·буква K

KEY

краткое определение

KEY (приватный ключ, .key файл) — файл с закрытым (приватным) ключом асимметричного шифрования в контексте SSL/TLS. Генерируется вместе с Certificate Signing Request (CSR), не покидает сервер и никогда не передаётся в CA. Используется сервером для расшифровки трафика и подтверждения аутентичности.

В контексте SSL/TLS инфраструктуры KEY (или .key-файл) — файл с приватным (закрытым) ключом асимметричной криптографии. Генерируется на сервере вместе с Certificate Signing Request (CSR), отправляемым в центр сертификации. Приватный ключ — единственный секрет в TLS-соединении: он никогда не покидает сервер и не передаётся в CA. Компрометация приватного ключа означает компрометацию всего HTTPS-трафика.

Как работает

Генерация ключевой пары RSA 2048 бит через OpenSSL:

openssl genrsa -out private.key 2048

Генерация CSR на основе ключа:

openssl req -new -key private.key -out request.csr

CA подписывает CSR своим промежуточным ключом и возвращает сертификат (.crt). Итоговые файлы: private.key (секретный, только на сервере), certificate.crt (публичный, отправляется клиентам). В TLS-хендшейке сервер доказывает владение приватным ключом через криптографическую операцию, проверяемую с помощью публичного ключа из сертификата.

Алгоритмы ключей:

  • RSA — классический, ключи 2048 или 4096 бит. 2048 бит считается достаточным до 2030+ года по оценке NIST.
  • ECDSA (Elliptic Curve) — P-256 (~3072-битный RSA-эквивалент) при ключе всего 256 бит. Быстрее RSA при генерации подписи, требует меньше ресурсов. Рекомендован Let's Encrypt с 2021 года.
  • Ed25519 — EdDSA на кривой Curve25519, ещё компактнее и быстрее. Поддерживается TLS 1.3.

Хранение и защита приватного ключа

Приватный ключ может быть зашифрован парольной фразой (openssl genrsa -aes256 -out encrypted.key 2048). При зашифрованном ключе nginx/Apache требуют ввода пароля при старте — неудобно для автоматического перезапуска. Для сервисов типичная практика — незашифрованный ключ с ограниченными правами файловой системы (chmod 600 private.key, владелец — пользователь веб-сервера).

История

RSA разработан в 1977 году Ривестом, Шамиром и Адлеманом. Алгоритм стал основой SSL/TLS с 1994 года. ECDSA стандартизован NIST в 2000 году. Ed25519 разработан Дэниелом Бернштейном и Таней Ланге в 2011 году. RFC 8032 (2017) стандартизовал EdDSA. Let's Encrypt перешёл на выпуск ECDSA-сертификатов как опцию по умолчанию в 2021 году.

На что обращать внимание

При смене хостинга необходимо перенести как сертификат, так и приватный ключ. Без ключа сертификат бесполезен — CA не хранит приватные ключи и не выдаёт их повторно. При обновлении сертификата через ACME (Let's Encrypt) acme.sh и Certbot автоматически генерируют новый ключ каждый раз — это хорошая практика (key rollover). Приватный ключ не должен попасть в git-репозиторий: добавьте *.key в .gitignore. При обнаружении утечки — немедленно отзовите сертификат и перевыпустите.

Типы ключей и алгоритмы

RSA (Rivest–Shamir–Adleman) — классический алгоритм асимметричного шифрования. RSA 2048 бит стандартен для TLS-сертификатов, RSA 4096 — повышенная безопасность (медленнее). ECDSA (Elliptic Curve DSA) P-256 обеспечивает сопоставимую безопасность с RSA 3072 при ключе всего 256 бит — быстрее и экономичнее. Let's Encrypt с 2022 года выпускает ECDSA P-256 по умолчанию. Ed25519 — современный алгоритм для SSH-ключей, не применяется для TLS-сертификатов (браузеры не поддерживают).

Хранение приватного ключа

Приватный ключ SSL-сертификата хранится в файле .key или .pem. Права доступа: 600 (только владелец). HSM (Hardware Security Module) используется для хранения ключей в изоляции от ОС — стандарт для банков и платёжных систем. Для автоматизации управления ключами используйте HashiCorp Vault или ACME-совместимые инструменты.

Другие термины

KEY — что это, определение и как работает | Справочник — hostprofi.ru