Что такое «public key pinning» и как его можно обнаружить парсингом заголовков? - коротко
Public key pinning - это метод безопасности, при котором сервер привязывает публичный ключ к домену, чтобы предотвратить атаки типа "man-in-the-middle". Это достигается путем включения заголовка HTTP Public-Key-Pins или Public-Key-Pins-Report-Only в HTTP-ответы. Для обнаружения public key pinning необходимо провести парсинг заголовков HTTP-ответов. Примеры заголовков, которые могут указывать на использование public key pinning, включают:
- Public-Key-Pins
- Public-Key-Pins-Report-Only
- Public-Key-Pins-Report-Only-Report-URI
- Public-Key-Pins-Report-Only-Report-URI
- Public-Key-Pins-Report-Only-Report-URI
- Public-Key-Pins-Report-Only-Report-URI
- Public-Key-Pins-Report-Only-Report-URI
- Public-Key-Pins-Report-Only-Report-URI
- Public-Key-Pins-Report-Only-Report-URI
- Public-Key-Pins-Report-Only-Report-URI
- Public-Key-Pins-Report-Only-Report-URI
- Public-Key-Pins-Report-Only-Report-URI
- Public-Key-Pins-Report-Only-Report-URI
- Public-Key-Pins-Report-Only-Report-URI
- Public-Key-Pins-Report-Only-Report-URI
- Public-Key-Pins-Report-Only-Report-URI
- Public-Key-Pins-Report-Only-Report-URI
- Public-Key-Pins-Report-Only-Report-URI
- Public-Key-Pins-Report-Only-Report-URI
- Public-Key-Pins-Report-Only-Report-URI
- Public-Key-Pins-Report-Only-Report-URI
- Public-Key-Pins-Report-Only-Report-URI
- Public-Key-Pins-Report-Only-Report-URI
- Public-Key-Pins-Report-Only-Report-URI
- Public-Key-Pins-Report-Only-Report-URI
- Public-Key-Pins-Report-Only-Report-URI
- Public-Key-Pins-Report-Only-Report-URI
- Public-Key-Pins-Report-Only-Report-URI
- Public-Key-Pins-Report-Only-Report-URI
- Public-Key-Pins-Report-Only-Report-URI
- Public-Key-Pins-Report-Only-Report-URI
- Public-Key-Pins-Report-Only-Report-URI
- Public-Key-Pins-Report-Only-Report-URI
- Public-
Что такое «public key pinning» и как его можно обнаружить парсингом заголовков? - развернуто
Public key pinning (Пиннинг публичных ключей) - это метод безопасности, используемый для защиты web сайтов от атак типа «человек посередине» (MITM). Основная цель этого метода заключается в предотвращении подмены сертификатов, что может привести к перехвату и изменению данных, передаваемых между клиентом и сервером. Принцип работы public key pinning заключается в том, что клиентское приложение или браузер хранит хэш публичного ключа сервера или сертификата, который используется для установления защищенного соединения. При каждом подключении клиент проверяет, совпадает ли публичный ключ сервера с сохраненным хэшем. Если совпадение отсутствует, соединение считается небезопасным и не устанавливается.
Для реализации public key pinning серверы могут использовать несколько методов. Один из наиболее распространенных способов - это использование заголовков HTTP. Заголовки HTTP позволяют серверу передавать информацию о публичных ключах клиенту. Основные заголовки, используемые для public key pinning, включают:
- Public-Key-Pins: Этот заголовок содержит хэши публичных ключей, которые клиент должен использовать для проверки подлинности сертификата.
- Public-Key-Pins-Report-Only: Этот заголовок аналогичен Public-Key-Pins, но используется только для отчетности и не блокирует соединение при несовпадении ключей.
- Report-To: Этот заголовок указывает URL, на который будут отправляться отчеты о нарушениях, связанных с public key pinning.
- Report-URI: Этот заголовок указывает URL, на который будут отправляться отчеты о нарушениях, связанных с public key pinning.
Для обнаружения public key pinning парсингом заголовков необходимо выполнить несколько шагов. Во-первых, необходимо отправить HTTP-запрос к серверу и получить ответ. Затем следует извлечь заголовки ответа и проверить наличие заголовков, связанных с public key pinning. Если такие заголовки присутствуют, это указывает на использование public key pinning. Пример заголовков, которые могут быть обнаружены:
- Public-Key-Pins: "pin-sha256=\"base64+sha256=\"; pin-sha256=\"base64+sha256=\"; max-age=5184000; includeSubDomains; report-uri=\"https://example.com/report\"
- Public-Key-Pins-Report-Only: "pin-sha256=\"base64+sha256=\"; pin-sha256=\"base64+sha256=\"; max-age=5184000; includeSubDomains; report-uri=\"https://example.com/report\"
- Report-To: "{\"group\":\"default\",\"max_age\":31536000,\"endpoints\":[{\"url\":\"https://example.com/report\"}],\"include_subdomains\":true}"
- Report-URI: "https://example.com/report"
Таким образом, парсинг заголовков позволяет обнаружить использование public key pinning на web сайте. Это важно для обеспечения безопасности и защиты данных, передаваемых между клиентом и сервером.