En desuso: esta función ya no se recomienda. Fue desaprobado por el equipo de Google Chrome en 2017 debido a su complejidad y efectos secundarios. Google recomienda usar Expect-CT como una mejor alternativa. Se eliminó del 90% de los navegadores web, pero algunos navegadores aún lo admiten solo por motivos de compatibilidad.
HTTP Public Keys Pinning (HPKP) es un mecanismo de seguridad de Internet entregado con la ayuda del encabezado HTTP que permite que los sitios web HTTPS resistan a los atacantes que utilizan certificados digitales fraudulentos o mal utilizados. Esto sucedió mediante la entrega de un conjunto de claves públicas al cliente (por ejemplo, navegador web). Estas claves se entregan a aquellos clientes en los que se debe confiar para futuras conexiones con el mismo nombre de dominio.
Por ejemplo, los atacantes pueden piratear una autoridad de certificación y luego hacer un uso indebido de los certificados para un origen web. Para reducir este riesgo, el servidor web HTTPS sirve una lista de hashes de clave pública «anclados» que son válidos durante un tiempo determinado en conexiones posteriores, durante ese tiempo de validez, los clientes esperan que el servidor use una o más de una clave pública en su string de certificados Si no es así, se imprime un mensaje de error en la pantalla.
Header type: Response header
Sintaxis:
Public-Key-Pins: pin-sha256 = "pin-value"; max-age = expire-time; includeSubDomains; report-uri = "uri"
Directivas
- pin – sha256 = “pin – valor”
Este pin se usa para especificar múltiples pines para diferentes claves públicas. También podemos usar otros algoritmos hash además de SHA-256 en el futuro. - max – age = expire-time
Este pin representa el tiempo (en segundos) que el navegador debe recordar que se accede al sitio usando una de las claves definidas. - includeSubDomains
Este pin especifica que las reglas del sitio también se aplican a los subdominios del sitio. Este parámetro es opcional. - informe – uri = «uri»
Este pin envía el informe de fallas de validación de pin. Este parámetro también es opcional.
Ejemplo
Public-Key-Pins: pin-sha256 = "cUPcTAZWKaASuYWhhneY3oBAkE3h2+soZS7sWs="; pin-sha256 = "M8HztCzM3elS5P4hhyBNf6lHkmjAHKhpGPWE="; max-age = 51000; includeSubDomains; report-uri = "https://www.geeksforgeeks.org/hpkp-report"
En este ejemplo, el primer pin pin-sha256 = “cUPcTAZWKaASuYWhhneY3oBAkE3h2+soZS7sWs=” es la clave pública del servidor utilizada en producción.
El segundo pin pin-sha256 = “M8HztCzM3elS5P4hhyBNf6lHkmjAHKhpGPWE=” se usa como clave de respaldo.
Tercer pin max-age = 51000 le dice al cliente que almacene esta información durante dos meses (este límite de tiempo lo proporciona IETF RFC).
El cuarto pin includeSubDomains representa que la clave es válida para todos los subdominios.
Finalmente, el último pin report-uri = «https://www.geeksforgeeks.org/hpkp-report» explica dónde informar las fallas de validación de pines.
Compatibilidad del navegador: los navegadores compatibles con el encabezado Public-Key-Pins se enumeran a continuación:
- Google Chrome
- Ópera
- Firefox
- explorador de Internet
- Borde de Microsoft
- Safari
Publicación traducida automáticamente
Artículo escrito por ManishaYadav30 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA