SSL Pinning – это механизм безопасности, при котором клиентское приложение заранее фиксирует ожидаемый публичный ключ или сертификат сервера, отказываясь устанавливать соединение, если представленный сервером сертификат не соответствует ожидаемому, даже если он подписан доверенным центром сертификации.
Что такое SSL Pinning?
Стандартный процесс установления защищенного соединения по протоколу TLS/SSL включает проверку цепочки сертификатов сервера. Клиентское приложение проверяет, является ли сертификат сервера действительным, не истек ли его срок, и подписан ли он центром сертификации (CA), которому клиент доверяет. Доверенные CA обычно предустановлены в операционной системе или браузере. Этот механизм обеспечивает защиту от атак "человек посередине" (MITM), при которых злоумышленник пытается подменить сервер, предоставляя собственный сертификат, подписанный компрометированным или поддельным CA.
SSL Pinning добавляет дополнительный уровень проверки к стандартному процессу. Вместо того чтобы полагаться исключительно на цепочку доверия CA, приложение "закрепляет" (pins) конкретный сертификат или публичный ключ сервера, с которым оно ожидает соединиться. При каждой попытке соединения приложение сравнивает представленный сервером сертификат или его публичный ключ с заранее сохраненной "булавкой" (pin). Если они не совпадают, соединение отклоняется, даже если сертификат подписан доверенным CA.
Как работает SSL Pinning?
Принцип работы SSL Pinning основа