La huella dactilar del certificado de Google no coincide con las huellas dactilares en las configuraciones "net-internals" de Chrome

3

Como puede saber, puede consultar los conjuntos HSTS / PKP de chrome para un dominio en la página chrome://net-internals como se muestra a continuación:

Comosevearriba,haycuatrovaloreshashSHA256(enelmediodelapáginayenformatobase64)parawww.google.com.

Siconvertimosesosvaloresaformatohexadecimal,tendremoslossiguientesvalores:

ebra@him:~$echo"iie1VXtL7HzAMF+/PVPR9xzT80kQxdZeJ+zduCB3uj0=" | base64 -d  | od -t x1 -w32
0000000 8a 27 b5 55 7b 4b ec 7c c0 30 5f bf 3d 53 d1 f7 1c d3 f3 49 10 c5 d6 5e 27 ec dd b8 20 77 ba 3d
ebra@him:~$ echo "h6801m+z8v3zbgkRHpq6L29Esgfzhj89C1SyUCOQmqU=" | base64 -d  | od -t x1 -w32
0000000 87 af 34 d6 6f b3 f2 fd f3 6e 09 11 1e 9a ba 2f 6f 44 b2 07 f3 86 3f 3d 0b 54 b2 50 23 90 9a a5
ebra@him:~$ echo "7HIpactkIAq2Y49orFOOQKurWxmmSFZhBCoQYcRhJ3Y=" | base64 -d  | od -t x1 -w32
0000000 ec 72 29 69 cb 64 20 0a b6 63 8f 68 ac 53 8e 40 ab ab 5b 19 a6 48 56 61 04 2a 10 61 c4 61 27 76
ebra@him:~$ echo "IPMbDAjLVSGntGO3WP53X/zilCVndez5YJ2+vJvhJsA=" | base64 -d  | od -t x1 -w32
0000000 20 f3 1b 0c 08 cb 55 21 a7 b4 63 b7 58 fe 77 5f fc e2 94 25 67 75 ec f9 60 9d be bc 9b e1 26 c0

La pregunta es: ¿por qué no puedo ver ninguno de estos valores en el certificado de Google cargado actualmente en la otra pestaña?

    
pregunta Abraham 26.05.2018 - 05:46
fuente

1 respuesta

3

Los cuatro valores hash que se ven son hash SPKI. Mientras que la huella dactilar que ve cuando observa el certificado se calcula sobre todo el certificado, el hash SPKI solo se calcula sobre el SubjectPublicKeyInfo, es decir, la clave pública contenida en el certificado. Consulte Mozilla: HPKP para obtener más detalles, incluidas formas de calcular el hash SPKI utilizando herramientas comunes.

Aparte de eso, estos hash SPKI no especifican necesariamente el certificado de hoja (es decir, el que estaba viendo). En cambio, al menos uno de los hashes SPKI para un sitio debe coincidir con uno de los certificados en la cadena de certificados, es decir, desde la hoja hasta e incluyendo el certificado raíz de confianza local. Esto coincide con el comportamiento del encabezado HPKP que se describe en RFC 7469 de la siguiente manera:

  

... calcule las huellas dactilares SPKI para cada certificado en la cadena de certificados validados del host de Pinned ... verifique que el conjunto de estos SPKI      Las huellas digitales intersectan el conjunto de huellas digitales SPKI en ese anclaje      Metadatos de anclaje del host

Para realizar las comprobaciones manualmente, se podrían exportar todos los certificados desde el navegador, calcular el hash SPKI (vea el primer enlace sobre cómo hacerlo) y luego verificar si está en la lista de hashes SPKI precargados. Para la conexión llego a www.google.com, obtengo la siguiente cadena (tenga en cuenta que obtengo un certificado de hoja diferente):

[0] www.google.com
cert fingerprint: 27:4C:3B:05:9F:30:5C:C3:C7:EE:23:98:E5:33:21:EE:56:34:E0:40:96:09:1E:87:BE:F0:9D:AF:A7:44:39:12
SPKI hash: He1hxIXPpsnamgIS9IH1HC45P2yj45Py1fi0/JI6JBo=

[1] Google Internet Authority G3
cert fingerprint: BE:0C:CD:54:D4:CE:CD:A1:BD:5E:5D:9E:CC:85:A0:4C:2C:1F:93:A5:22:0D:77:FD:E8:8F:E9:AD:08:1F:64:1B
SPKI hash: f8NnEFZxQ4ExFOhSN7EiFWtiudZQVD2oY60uauV/n78=

[builtin] GlobalSign Root CA - R2
cert fingerprint: CA:42:DD:41:74:5F:D0:B8:1E:B9:02:36:2C:F9:D8:BF:71:9D:A1:BD:1B:1E:FC:94:6F:5B:4C:99:F4:2C:1B:9E
SPKI hash: iie1VXtL7HzAMF+/PVPR9xzT80kQxdZeJ+zduCB3uj0=

Como puede ver, el último hash SPKI de la CA raíz incorporada se interseca con los hashes SPKI precargados, lo que significa que la validación fue exitosa.

Si desea saber cuáles son los otros hash SPKI para usted, puede consultar código fuente de Chromium donde se muestra la siguiente definición para el conjunto de PIN utilizado para los dominios de Google:

  "name": "google",
  "static_spki_hashes": [
    "GoogleBackup2048",
    "GoogleG2",
    "GeoTrustGlobal",
    "GlobalSignRootCA_R2"
  ],

El último elemento GlobalSignRootCA_R2 es el que se encuentra en la cadena actual.

    
respondido por el Steffen Ullrich 26.05.2018 - 08:46
fuente

Lea otras preguntas en las etiquetas