Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 178

Закрепление сертификата (Certificate Pinning)

ПроверилCybersecurity entrepreneur & security researcher

Что такое Закрепление сертификата (Certificate Pinning)?

Закрепление сертификата (Certificate Pinning)Метод, при котором приложение жёстко прописывает ожидаемый сертификат или открытый ключ и отклоняет TLS-соединения, не соответствующие им, тем самым противодействуя мошенническим или скомпрометированным УЦ.


Закрепление сертификата связывает конкретный TLS-сервер с одной или несколькими криптографическими идентичностями — полным конечным (leaf) сертификатом, промежуточным сертификатом или хешем SubjectPublicKeyInfo (SPKI), — которым клиент доверяет неявно. В ходе рукопожатия клиент сравнивает цепочку сервера с закреплёнными значениями и прерывает соединение при несовпадении, даже если цепочка подписана публично доверенным УЦ. Это противодействует злоумышленнику, обладающему поддельным, но действительным сертификатом, например выданным скомпрометированным или принуждённым УЦ (инциденты с DigiNotar и Comodo в 2011 году, приведшие к появлению мошеннических сертификатов Google, — классический мотив этого).

Браузерный HPKP против закрепления в приложениях

Веб пытался внедрить закрепление через HTTP Public Key Pinning (HPKP, RFC 7469, 2015) — заголовок ответа Public-Key-Pins. На практике он провалился: утерянный ключ, штатная ротация без обновления закреплений или враждебная инъекция «RansomPKP» могли заблокировать доступ пользователям на весь период max-age. Chrome объявил HPKP устаревшим в 2017 году и удалил его в Chrome 72 (2018), передав эту роль журналам Certificate Transparency. Закрепление сохраняется в основном в мобильных приложениях, взаимодействующих с фиксированным бэкендом (Android Network Security Config, iOS NSPinnedDomains, OkHttp CertificatePinner).

flowchart TD
  A[Client opens TLS to api.example.com] --> B[Server presents certificate chain]
  B --> C{Chain validates against system CAs?}
  C -->|No| E[Abort: standard TLS failure]
  C -->|Yes| D{SPKI hash matches a pinned key?}
  D -->|Yes| F[Connection allowed]
  D -->|No| G[Abort: pin mismatch, block MITM/rogue CA]

Слабые места и меры защиты

Закрепление надёжно ровно настолько, насколько надёжны его резервные закрепления, — всегда закрепляйте ключ ротации. На устройствах с root-доступом или джейлбрейком такие инструменты, как Frida и objection, перехватывают процедуру проверки, чтобы снять закрепления, поэтому закрепление повышает планку для MITM-перехвата, но не заменяет аттестацию устройства. Современные рекомендации (OWASP MASVS) отдают предпочтение закреплению SPKI с короткоживущими сертификатами и протестированным планом ротации.

Примеры

  1. 01

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

  2. 02

    Мобильный API-клиент, который закрепляет как рабочий (production), так и резервный ключ ротации.

Частые вопросы

Что такое Закрепление сертификата (Certificate Pinning)?

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

Что означает Закрепление сертификата (Certificate Pinning)?

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

Как защититься от Закрепление сертификата (Certificate Pinning)?

Защита от Закрепление сертификата (Certificate Pinning) обычно сочетает технические меры и операционные практики, как описано в определении выше.

Какие есть другие названия Закрепление сертификата (Certificate Pinning)?

Распространённые альтернативные названия: TLS pinning, Public-key pinning.

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

См. также