CyberGlossary

Сетевая безопасность

Закрепление сертификатов (pinning)

Также известно как: TLS-pinning, Закрепление публичного ключа

Определение

Метод, при котором приложение жёстко привязывается к ожидаемому сертификату или открытому ключу и отклоняет несовпадающие TLS-соединения, обходя скомпрометированные или мошеннические УЦ.

Закрепление сертификатов связывает конкретный TLS-сервер с одной или несколькими криптографическими идентичностями (полный листовой сертификат, промежуточный сертификат или хеш SubjectPublicKeyInfo), которым клиент доверяет неявно. При рукопожатии клиент сравнивает цепочку сервера с закреплёнными значениями и обрывает соединение при несовпадении, даже если цепочку подписал публично доверенный УЦ. Применяется главным образом в мобильных и настольных приложениях, общающихся с фиксированным бэкендом, и блокирует атаки с мошенническими сертификатами. Недостатки — хрупкость развёртываний, необходимость резервных pin-значений и риск отрезать пользователей при экстренной ротации ключей; в современных рекомендациях часто предпочтительнее краткосрочные сертификаты, Certificate Transparency и DANE.

Примеры

  • Банковское приложение закрепляет SHA-256-хеш открытого ключа сервера и отклоняет любые другие сертификаты.
  • Мобильный API-клиент закрепляет производственный ключ и резервный ключ ротации.

Связанные термины