Fijación de certificados
¿Qué es Fijación de certificados?
Fijación de certificadosTécnica en la que una aplicación codifica de forma fija un certificado o clave pública esperados y rechaza las conexiones TLS que no coinciden, frustrando a las CA fraudulentas o comprometidas.
La fijación de certificados vincula un servidor TLS concreto a una o varias identidades criptográficas —un certificado de hoja completo, un intermedio o un hash de SubjectPublicKeyInfo (SPKI)— en las que el cliente confía de forma implícita. Durante el handshake, el cliente compara la cadena del servidor con los valores fijados y aborta si no coinciden, incluso si la cadena está firmada por una CA de confianza pública. Esto frustra a un atacante que posea un certificado fraudulento pero válido, como uno emitido por una CA comprometida o coaccionada (los incidentes de DigiNotar y Comodo de 2011, que dieron lugar a certificados fraudulentos de Google, son la motivación clásica).
HPKP del navegador frente a la fijación en apps
La web intentó la fijación mediante HTTP Public Key Pinning (HPKP, RFC 7469, 2015), una cabecera de respuesta Public-Key-Pins. Fracasó en la práctica: una clave perdida, una rotación rutinaria sin actualizar las fijaciones o una inyección hostil de "RansomPKP" podían dejar a los usuarios sin acceso durante todo el max-age. Chrome dejó obsoleto HPKP en 2017 y lo eliminó en Chrome 72 (2018), cediendo el papel a los registros de Certificate Transparency. La fijación sobrevive principalmente en las aplicaciones móviles que se comunican con un backend fijo (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]Debilidades y defensas
La fijación solo es tan buena como sus fijaciones de respaldo: fije siempre una clave de reemplazo. En dispositivos con acceso root o jailbreak, herramientas como Frida y objection enganchan la rutina de validación para eliminar las fijaciones, de modo que la fijación eleva el listón para la interceptación MITM, pero no sustituye a la atestación de dispositivos. Las directrices modernas (OWASP MASVS) favorecen la fijación de SPKI con certificados de corta duración y un plan de rotación probado.
● Ejemplos
- 01
Una aplicación bancaria que fija el hash SHA-256 de la clave pública de su servidor y rechaza cualquier otro certificado.
- 02
Un cliente de API móvil que fija tanto la clave de producción como la clave de reemplazo como respaldo.
● Preguntas frecuentes
¿Qué es Fijación de certificados?
Técnica en la que una aplicación codifica de forma fija un certificado o clave pública esperados y rechaza las conexiones TLS que no coinciden, frustrando a las CA fraudulentas o comprometidas. Pertenece a la categoría de Seguridad de red en ciberseguridad.
¿Qué significa Fijación de certificados?
Técnica en la que una aplicación codifica de forma fija un certificado o clave pública esperados y rechaza las conexiones TLS que no coinciden, frustrando a las CA fraudulentas o comprometidas.
¿Cómo defenderse de Fijación de certificados?
Las defensas contra Fijación de certificados combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.
¿Cuáles son otros nombres para Fijación de certificados?
Nombres alternativos comunes: Fijación TLS, Fijación de clave pública.