L'impronta digitale certificato di Google non corrisponde alle impronte digitali nelle configurazioni "net-internals" di Chrome

3

Come forse saprai, puoi interrogare le serie di HSTS / PKP di Chrome per un dominio nella pagina chrome://net-internals come sotto:

Comevedisopra,cisonoquattrovalorihashSHA256(nelmezzodellapaginaenelformatobase64)perwww.google.com.

Seconvertiamoquestivaloriinformatoesadecimale,avremoiseguentivalori:

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 domanda è questa: perché non riesco a vedere nessuno di questi valori nell'attuale certificato di Google caricato nell'altra scheda?

    
posta Abraham 26.05.2018 - 05:46
fonte

1 risposta

3

I quattro valori hash che vedi sono gli hash SPKI. Mentre l'impronta digitale che si vede guardando il certificato è calcolata sull'intero certificato, l'hash SPKI viene calcolato solo su SubjectPublicKeyInfo, cioè la chiave pubblica contenuta nel certificato. Vedi Mozilla: HPKP per ulteriori dettagli sui modi per calcolare l'hash SPKI utilizzando gli strumenti comuni.

A parte questo, questi hash SPKI non specificano necessariamente il certificato foglia (cioè quello che stavi guardando). Invece almeno uno degli hash SPKI per un sito deve corrispondere a uno dei certificati nella catena di certificati, ad esempio da foglia fino a includere il certificato radice locale attendibile. Corrisponde al comportamento dell'intestazione HPKP descritta in RFC 7469 come segue:

... compute the SPKI Fingerprints for each certificate in the Pinned Host's validated certificate chain ... check that the set of these SPKI Fingerprints intersects the set of SPKI Fingerprints in that Pinned Host's Pinning Metadata

Per eseguire manualmente i controlli, è possibile esportare tutti i certificati dal browser, calcolare l'hash SPKI (vedere il primo collegamento su come eseguire questa operazione) e quindi verificare se è presente nell'elenco degli hash SPKI precaricati. Per la connessione arrivo a www.google.com ottengo la seguente catena (nota che ottengo un certificato foglia diverso):

[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=

Come puoi vedere, l'ultimo hash SPKI della CA radice incorporata si interseca con gli hash SPKI precaricati, il che significa che la convalida ha avuto esito positivo.

Se vuoi sapere quali sono gli altri hash SPKI, potresti dare un'occhiata a codice sorgente per Chromium dove mostra la seguente definizione per il set PIN utilizzato per i domini Google:

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

L'ultimo elemento GlobalSignRootCA_R2 è quello trovato nella catena attuale.

    
risposta data 26.05.2018 - 08:46
fonte

Leggi altre domande sui tag