Incoerenza delle impronte digitali SSL: cosa significa?

18

Mi scuso se questo non è il posto migliore per porre la mia domanda sulla rete Stack Exchange, non riesco a capire dove ottenere abbastanza attenzione ed essere rilevante.

Facebook fornisce un host SSL, accessibile tramite link . Fondamentalmente, a quanto ho capito, le modifiche al certificato dovrebbero verificarsi solo quando il vecchio certificato deve essere rimosso. Tuttavia, Perspectives (un componente aggiuntivo per Firefox, che controlla le impronte digitali di molti server) trova incongruenze nelle impronte digitali di Facebook. Sono preoccupato e vorrei conoscere le tue opinioni su questo argomento.

EDIT:spiegazionedelloscreenshot

Lacolonnachiavenotaioecorrenteelencatuttiiserverchehannotentatodiaccedereawww.facebook.comequaleimprontadigitalehannotrovatonelcertificatodell'host.Lacronologiadellechiavimostraleprincipalimodifichenell'arcodi30giorni.Possiamoquindicongetturareche:

  • Alivelloglobale,siverificanomodificheaicertificati
  • Uncertificato(blu)sembraessereilcertificatoprincipale
  • Glialtrilosostituisconoavolteesonopiuttostosospettosi

PerchéFacebookcambierebbeillorocertificatoinquestomodo?Èunapraticacomune/sicura?

ComprendochelePKIconleautoritàdicertificazionenonsonomoltosicure,socheèfacileperalcunepersone(ricche,potentiobeninformate)ottenereuncertificatoperqualsiasidominiodesiderino.Maprimadidiventareunparanoico,vorreisaperesec'èunaspiegazionelogicachenonhanullaachefareconlasicurezza.

Comeconfrontoeccoirisultatinotariliper link :

Le modifiche al certificato avvengono regolarmente, tuttavia la chiave del browser può essere vista solo una volta su un periodo di 30 giorni. Comincio a pensare che nulla sia veramente pericoloso, ma queste pratiche sembrano minare l'utilità della prospettiva e richiedono agli utenti di fidarsi delle società. Dovrebbero almeno fornire un qualche tipo di spiegazione per questo e perché no, un elenco delle loro impronte digitali dei certificati.

Bounty: Mi piacerebbe vedere alcuni riferimenti su un sistema del genere, sicuramente è possibile trovare una specifica o un documento che raccomanda tale configurazione con i certificati multipli all'interno di uno stesso cluster regionale come sembra essere il caso di Facebook. Inoltre, se esistono altre teorie credibili, condividili.

Fatti fattibili

Grazie alle risposte e ai commenti in questa discussione, abbiamo potuto capire:

  • Facebook ha in effetti diversi certificati
  • Anche dietro un singolo IP (bilanciamento del carico)
  • Revocare un certificato e sostituirlo sarebbe più semplice in questo modo

MA

  • Migliora la sicurezza?
  • Tenere traccia di quale server ha il certificato tedioso, questo metodo è davvero utile? Non è nemmeno scalabile poiché i certificati sono diversi all'interno di un singolo cluster regionale
  • Che ne dici di conservare i certificati di riserva in caso di perdita? Mantenerli contro schierarli tutti sembra meglio da un punto di vista della sicurezza: se qualcuno trapelasse, perché non gli altri?

EDIT: risposta accettata

Fare riferimento alla risposta e ai commenti accettati, vedo le cose più chiaramente. Mi ha aiutato a capire le ragioni di tale impostazione, le implementazioni della vita reale potrebbero non essere così semplici come inizialmente pensavo. Trovo triste che l'addon in prospettiva sia quasi inutile in tali occasioni, ma non posso aspettarmi che Facebook si preoccupi di questo, è privo di significato per quasi tutti. Grazie a tutti per il vostro contributo.

    
posta Aki 22.02.2012 - 13:13
fonte

2 risposte

9

Questo probabilmente dipende dalla risoluzione DNS + caching che potrebbe accadere anche ai server notarili. Se risolvi www.facebook.com di solito ottieni un indirizzo IP. Ma questa IP cambia nel tempo e potrebbe condurti in un posto diverso.

Ho appena fatto un rapido controllo e in effetti l'indirizzo IP www.facebook.com che mi è stato assegnato è cambiato e anche le informazioni sul certificato erano diverse.

Nel giro di pochi minuti, ho ricevuto 3 indirizzi IP diversi per www.facebook.com: 69.171.229.16 , 69.171.234.80 , 69.171.228.40

Ottenere il certificato SSL per ciascuno di quegli IP ha prodotto certificati diversi. Tuttavia, i certificati non erano coerenti anche per lo stesso indirizzo IP che sembra. In quei pochi minuti ho ricevuto almeno due certificati:

-----BEGIN CERTIFICATE-----
MIIDzDCCAzWgAwIBAgIQPAjP7r6f68QrsT7gPWIL3zANBgkqhkiG9w0BAQUFADCB
ujEfMB0GA1UEChMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazEXMBUGA1UECxMOVmVy
aVNpZ24sIEluYy4xMzAxBgNVBAsTKlZlcmlTaWduIEludGVybmF0aW9uYWwgU2Vy
dmVyIENBIC0gQ2xhc3MgMzFJMEcGA1UECxNAd3d3LnZlcmlzaWduLmNvbS9DUFMg
SW5jb3JwLmJ5IFJlZi4gTElBQklMSVRZIExURC4oYyk5NyBWZXJpU2lnbjAeFw0x
MTExMTcwMDAwMDBaFw0xMjA3MTMyMzU5NTlaMGoxCzAJBgNVBAYTAlVTMRMwEQYD
VQQIEwpDYWxpZm9ybmlhMRIwEAYDVQQHEwlQYWxvIEFsdG8xFzAVBgNVBAoTDkZh
Y2Vib29rLCBJbmMuMRkwFwYDVQQDExB3d3cuZmFjZWJvb2suY29tMIGfMA0GCSqG
SIb3DQEBAQUAA4GNADCBiQKBgQC4e9C0eD3zy0YR829bH7fd3PGGDp/3Rd7UR65Q
+jcsRoLZaer9k9tPEOd5ZmWR1MTzwVEmZ94fhoWf219K2Nx/v7fQaWYh5U0DETUo
bkDfR4zBAe+oMuFDIGrhEkUEdlWUOcpvScrtzRjRLyikTc4twjRlpB5RdnGGFopw
CRTNMwIDAQABo4IBIDCCARwwCQYDVR0TBAIwADBEBgNVHSAEPTA7MDkGC2CGSAGG
+EUBBxcDMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9y
cGEwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL1NWUkludGwtY3JsLnZlcmlzaWdu
LmNvbS9TVlJJbnRsLmNybDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIw
CwYDVR0PBAQDAgWgMCkGA1UdEQQiMCCCEHd3dy5mYWNlYm9vay5jb22CDGZhY2Vi
b29rLmNvbTA0BggrBgEFBQcBAQQoMCYwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3Nw
LnZlcmlzaWduLmNvbTANBgkqhkiG9w0BAQUFAAOBgQANiGfuAUQqkUZiD2cozCmb
7+e6vK5yzc/3o/zAd+QBydo7dkPo/t8nIHUfGxcAKUICjAzH/j3FDykK3bupFvBW
D4GoU6qVvNFgH8ucYWMNbxsknN/s3lcFryIGZYFcsYuPEB/rbBEEseKTilUSR7vt
pUEsLwSGdWwTNtKgy/COcQ==
-----END CERTIFICATE-----

e

-----BEGIN CERTIFICATE-----
MIIDnzCCAwigAwIBAgIQCSGX4cDpzQPaNSQ2VhCGgTANBgkqhkiG9w0BAQUFADCB
ujEfMB0GA1UEChMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazEXMBUGA1UECxMOVmVy
aVNpZ24sIEluYy4xMzAxBgNVBAsTKlZlcmlTaWduIEludGVybmF0aW9uYWwgU2Vy
dmVyIENBIC0gQ2xhc3MgMzFJMEcGA1UECxNAd3d3LnZlcmlzaWduLmNvbS9DUFMg
SW5jb3JwLmJ5IFJlZi4gTElBQklMSVRZIExURC4oYyk5NyBWZXJpU2lnbjAeFw0x
MTA3MTQwMDAwMDBaFw0xMjA3MTMyMzU5NTlaMGoxCzAJBgNVBAYTAlVTMRMwEQYD
VQQIEwpDYWxpZm9ybmlhMRIwEAYDVQQHEwlQYWxvIEFsdG8xFzAVBgNVBAoTDkZh
Y2Vib29rLCBJbmMuMRkwFwYDVQQDExB3d3cuZmFjZWJvb2suY29tMIGfMA0GCSqG
SIb3DQEBAQUAA4GNADCBiQKBgQC4e9C0eD3zy0YR829bH7fd3PGGDp/3Rd7UR65Q
+jcsRoLZaer9k9tPEOd5ZmWR1MTzwVEmZ94fhoWf219K2Nx/v7fQaWYh5U0DETUo
bkDfR4zBAe+oMuFDIGrhEkUEdlWUOcpvScrtzRjRLyikTc4twjRlpB5RdnGGFopw
CRTNMwIDAQABo4H0MIHxMDQGCCsGAQUFBwEBBCgwJjAkBggrBgEFBQcwAYYYaHR0
cDovL29jc3AudmVyaXNpZ24uY29tMAkGA1UdEwQCMAAwRAYDVR0gBD0wOzA5Bgtg
hkgBhvhFAQcXAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy52ZXJpc2lnbi5j
b20vcnBhMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9TVlJJbnRsLWNybC52ZXJp
c2lnbi5jb20vU1ZSSW50bC5jcmwwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUF
BwMCMAsGA1UdDwQEAwIFoDANBgkqhkiG9w0BAQUFAAOBgQAwUGokl1919Kf6YPDK
uoF+k7CFm+j2YtZqw4ilP9166qkM8IDWyYa87MB084WXSyfS1VnT5FSwzjP37+Qx
gjRaROuWGxfY25KebCQpoBW2PJp3S1JmqHHyxjk4mzr+tzWK0Qn+tlBUy9igtkIh
VybjO+AxBZve1qyJIsVraz8wrw==
-----END CERTIFICATE-----

Facebook potrebbe avere un elenco di priorità di quale indirizzo IP i problemi DNS e quindi l'endpoint SSL che hai colpito (tramite i loro bilanciatori di carico) quando accedi a uno qualsiasi degli indirizzi IP di Facebook. La loro configurazione dell'infrastruttura potrebbe "preferire" alcuni endpoint rispetto ad altri (forse hanno un hardware più strong su un endpoint piuttosto che un altro), motivo per cui per lo più vedresti un'impronta digitale, ma occasionalmente un'altra.

UPDATE:

Per rispondere alle tue domande aggiuntive in modo più specifico:

Does this improve security?

Penso di sì, ma soprattutto se consideri availability piuttosto che riservatezza o integrità quando dici "sicurezza". Se un certificato scade / deve essere revocato / deve essere sostituito per qualsiasi altra ragione, ne hai ancora un altro pienamente operativo, dal vivo e pronto.

Keeping track of which server has which certificate looks tedious, is this method really worthwhile? It's not even scalable since certificates are different within a single regional cluster

Potrebbe essere un po 'noioso, ma sono sicuro che è solo una piccola parte dei noiosi compiti che Facebook deve affrontare nel grande schema delle cose. Ne vale la pena? Penso di sì, e direi che Facebook lo fa per una ragione (come ho detto sopra, principalmente per ragioni di disponibilità). Immagino che non stia girando su un server, ma qualche robusto cluster di acceleratori / endpoint SSL dedicato di qualche tipo. Questi gestiranno il traffico SSL e quindi inversero la comunicazione proxy ad alcuni server Web front-end (che non dovrebbero preoccuparsi dei certificati).

How about just keeping spare certificates in case of a leak? Keeping them versus deploying them all seems better from a security point of view: if one leaked, why not the others?

Sì, mantenere offline alcuni certificati di riserva è un'ottima idea, e senza sapere che scommetterei che farebbe anche Facebook. Avere più certificati online non si escludono a vicenda per avere anche alcuni offline. Si presume che li distribuiscano tutti, il che potrebbe non essere il caso. Facendo anche la connessione logica che se una trapelasse così gli altri avrebbero bisogno di più fatti. Se hanno una buona sicurezza per mantenere le cose segregate, allora un compromesso non si collega immediatamente a un altro. Potrebbero, ad esempio, utilizzare diversi HSM di diversi fornitori su diversi SO server, protetti da un set separato di firewall e gestiti da un team completamente indipendente.

    
risposta data 26.02.2012 - 09:24
fonte
5

Facebook potrebbe aver distribuito più certificati SSL per lo stesso endpoint. Questo viene spesso fatto per ragioni di sicurezza (una chiave privata compromessa riguarda solo un numero limitato di host) o per motivi di gestibilità (posso scaglionare i periodi di validità in modo che non tutti debbano essere sostituiti contemporaneamente). Certificati diversi significa numeri seriali diversi. Di conseguenza, le impronte digitali saranno diverse.

È anche possibile che il contenuto del certificato sia diverso. Ad esempio, potrebbero avere valori di estensione subjectAltName diversi per fare riferimento a un determinato server da diversi alias DNS.

    
risposta data 22.02.2012 - 20:29
fonte

Leggi altre domande sui tag