Articulo de referencia

Fijación de clave pública HTTP

HTTP Public Key Pinning ( HPKP ) es un mecanismo de seguridad de Internet obsoleto que se entrega a través de un encabezado HTTP y que permite a los sitios web HTTPS resistir la...

HTTP Public Key Pinning ( HPKP ) es un mecanismo de seguridad de Internet obsoleto que se entrega a través de un encabezado HTTP y que permite a los sitios web HTTPS resistir la suplantación de identidad por parte de atacantes que utilizan certificados digitales emitidos incorrectamente o fraudulentos . [ 1 ] Un servidor lo utiliza para entregar al cliente (por ejemplo, un navegador web ) un conjunto de hashes de claves públicas que deben aparecer en la cadena de certificados de futuras conexiones al mismo nombre de dominio .

Por ejemplo, los atacantes podrían comprometer una autoridad de certificación y emitir certificados erróneos para un origen web . Para combatir este riesgo, el servidor web HTTPS proporciona una lista de hashes de clave pública "fijados" válidos durante un tiempo determinado; en las conexiones posteriores, durante ese período de validez, los clientes esperan que el servidor utilice una o más de esas claves públicas en su cadena de certificados. Si no lo hace, se muestra un mensaje de error que el usuario no puede eludir fácilmente.

Esta técnica no fija certificados, sino hashes de claves públicas . Esto significa que se puede usar el par de claves para obtener un certificado de cualquier autoridad de certificación, siempre que se tenga acceso a la clave privada. Además, el usuario puede fijar las claves públicas de certificados raíz o intermedios (creados por autoridades de certificación), restringiendo el acceso al sitio a los certificados emitidos por dicha autoridad.

Debido a la complejidad del mecanismo HPKP y la posibilidad de un uso indebido accidental (que podría provocar un bloqueo por parte de los administradores del sistema), en 2017 los navegadores dejaron de usar HPKP y en 2018 eliminaron su soporte en favor de la Transparencia de Certificados . [ 2 ] [ 3 ]

Mecanismo

El servidor comunica la política HPKP al agente de usuario a través de un campo de encabezado de respuesta HTTP llamado Public-Key-Pins(o Public-Key-Pins-Report-Onlysolo para fines de informes).

La política HPKP especifica los hashes de la información de clave pública del sujeto de uno de los certificados en la cadena de certificados de clave públicapin-sha256 X.509 auténtica del sitio web (y al menos una clave de respaldo) en las directivas, y un período de tiempo durante el cual el agente de usuario debe aplicar el anclaje de clave pública en max-agela directiva, includeSubDomainsuna directiva opcional para incluir todos los subdominios (del dominio que envió el encabezado) en la política de anclaje y report-uriuna directiva opcional con la URL donde enviar los informes de violación de anclaje. Al menos una de las claves públicas de los certificados en la cadena de certificados debe coincidir con una clave pública anclada para que el agente de usuario considere válida la cadena.

En el momento de su publicación, la RFC  7469 solo permitía el algoritmo hash SHA-256 . ( El Apéndice A de la RFC 7469 menciona algunas herramientas y argumentos necesarios que pueden utilizarse para generar hashes para las políticas HPKP).

El operador de un sitio web puede optar por fijar la clave pública del certificado raíz de una autoridad de certificación raíz específica, permitiendo que solo esa autoridad de certificación (y todas las autoridades intermedias firmadas por su clave) emitan certificados válidos para el dominio del sitio web, y/o fijar la(s) clave(s) de uno o más certificados emisores intermedios, o fijar la clave pública de la entidad final.

Se debe fijar al menos una clave de respaldo, en caso de que sea necesario reemplazar la clave fijada actualmente. El HPKP no es válido sin esta clave de respaldo (una clave de respaldo se define como una clave pública que no está presente en la cadena de certificados actual). [ 4 ]

HPKP está estandarizado en RFC 7469. [ 1 ] Amplía el anclaje estático de certificados , que codifica de forma fija los hashes de clave pública de sitios web o servicios conocidos dentro de los navegadores web y las aplicaciones. [ 5 ]

La mayoría de los navegadores deshabilitan el anclaje para cadenas de certificados con certificados raíz privados para permitir el uso de diversos escáneres de inspección de contenido corporativos [ 6 ] y herramientas de depuración web (como mitmproxy o Fiddler ). El estándar RFC 7469 recomienda deshabilitar los informes de infracción de anclaje para certificados raíz "definidos por el usuario", donde es "aceptable" que el navegador deshabilite la validación del anclaje. [ 7 ]

Informes

Si el agente de usuario realiza la validación del PIN y no encuentra una huella digital SPKI válida en la cadena de certificados proporcionada, enviará un informe de infracción en formato JSON al host especificado en la directiva report-uri , que contendrá los detalles de la infracción. Esta URI puede proporcionarse a través de HTTP o HTTPS ; sin embargo, el agente de usuario no puede enviar informes de infracción de HPKP a una URI HTTPS del mismo dominio que el dominio para el que informa de la infracción. Los hosts pueden usar HTTP para la URI report-uri, usar un dominio alternativo o usar un servicio de informes. [ 8 ]

Algunos navegadores también admiten la Public-Key-Pins-Report-Onlyopción que solo activa este informe sin mostrar ningún error al usuario.

Críticas y declive

Durante su período de máxima adopción, se informó que HPKP era utilizado por 3.500 de los 1 millón de sitios web más importantes, una cifra que disminuyó a 650 hacia finales de 2019. [ 9 ]

Las críticas y la preocupación giraron en torno a escenarios maliciosos o de error humano conocidos como HPKP Suicide y RansomPKP. [ 10 ] [ 11 ] En tales escenarios, la capacidad del propietario de un sitio web para publicar nuevos contenidos en su dominio se vería gravemente obstaculizada, ya sea por la pérdida de acceso a sus propias claves o por la publicación de nuevas claves por parte de un atacante malicioso.

Compatibilidad y desuso de navegadores

Véase también

Referencias

  1. ^ a b Evans, Chris; Palmer, Chris; Sleevi, Ryan (abril de 2015). Extensión de fijación de clave pública para HTTP . IETF . doi : 10.17487/RFC7469 . ISSN 2070-1721 . RFC 7469 . 
  2. ^ Leyden, John (30 de octubre de 2017). "RIP HPKP: Google abandona el anclaje de clave pública" . The Register . Consultado el 18 de diciembre de 2018 .
  3. ^ Tung, Liam (30 de octubre de 2017). "Google: Chrome se está alejando del anclaje de clave pública, y aquí está el porqué" . ZDNet . Recuperado el 18 de diciembre de 2018 .
  4. ^ "Acerca del anclaje de clave pública" . noncombatant.org . Consultado el 7 de mayo de 2015 .
  5. ^ "Fijación de certificados y claves públicas - OWASP" . www.owasp.org . Consultado el 7 de mayo de 2015 .
  6. ^ "Preguntas frecuentes sobre seguridad - The Chromium Projects" . www.chromium.org . Consultado el 7 de julio de 2015 .
  7. ^ Evans, C.; Palmer, C.; Sleevi, R. (2015). "RFC 7469 - Extensión de fijación de clave pública para HTTP" . tools.ietf.org . doi : 10.17487/RFC7469 . Recuperado el 7 de julio de 2015 .
  8. ^ "Informe de infracciones de HPKP" . Scott Helme.
  9. ^ "HPKP ya no existe" . Scott Helme. 2020-01-20 . Consultado el 2020-01-30 .
  10. ^ "Abuso de estándares web de vanguardia para la gloria de la seguridad de aplicaciones" . Bryant Zadegan y Ryan Lester. 3 de agosto de 2016. Consultado el 14 de enero de 2026 .
  11. ^ "Usar funciones de seguridad para hacer cosas malas" . Scott Helme. 15 de agosto de 2016. Consultado el 30 de enero de 2020 .
  12. ^ Stark, Emily (31 de agosto de 2015). "Implementación de la fijación de clave pública con informes HPKP" . Desarrolladores de Chrome . Archivado del original el 16 de enero de 2023. Recuperado el 10 de marzo de 2023 .
  13. ^ Medley, Joe (2018-06-07). "Descontinuaciones y eliminaciones en Chrome 67" . Google Developers . Archivado del original el 10 de marzo de 2023. Recuperado el 10 de marzo de 2023 .
  14. ^ Palmer; Estark; Rsleevi (13 de septiembre de 2022). "Eliminar el anclaje de clave pública basado en HTTP - Estado de la plataforma Chrome" . www.chromestatus.com . Archivado del original el 25 de mayo de 2022. Recuperado el 18 de noviembre de 2019 .
  15. ^ Medley, Joe (27 de junio de 2020). "Descontinuaciones y eliminaciones en Chrome 72 - Desarrolladores de Chrome" . Desarrolladores de Chrome . Archivado del original el 18 de noviembre de 2022. Recuperado el 10 de marzo de 2023 .
  16. ^ Bynens, Mathias (27-10-2015). "Opera 33 lanzado" . GitHub . Opera. Archivado del original el 10-03-2023 . Recuperado el 10-03-2023 .
  17. ^ "Novedades de Chromium 67 y Opera 54" . GitHub . Opera. 28 de junio de 2018. Archivado del original el 10 de marzo de 2023. Consultado el 10 de marzo de 2023 .
  18. ^ "Ya no se admite la fijación de clave pública HTTP" . Compatibilidad de sitios de Firefox . 14 de noviembre de 2019. Archivado del original el 29 de mayo de 2020. Consultado el 19 de febrero de 2020 .
  19. ^ Keeler, Dana (13 de noviembre de 2019). "Cambio en el código fuente de Mozilla que eliminó HPKP, incluyendo discusión y razones para este cambio (error 1412438)" . Control de versiones de Mozilla Firefox . Archivado del original el 10 de marzo de 2023. Recuperado el 10 de marzo de 2023 .
  20. ^ "Eliminar HPKP (fijación de clave pública HTTP) por completo (no las fijaciones integradas)" . bugzilla.mozilla.org . HPKP está deshabilitado por defecto (error 1412438). Debido al trabajo del proceso de sockets, ya se ha convertido en una carga de mantenimiento (ver error 1485652). Este error eliminará HPKP por completo.
  21. ^ a b "El estado de la extensión de fijación de clave pública para HTTP en Microsoft Edge está en consideración" . Desarrollo de Microsoft Edge . Archivado del original el 20 de diciembre de 2016. Recuperado el 21 de septiembre de 2018 .

Obtenido de " https://en.wikipedia.org/w/index.php?title=HTTP_Public_Key_Pinning&oldid=1342010896 "