Come si trova il certificato dell'emittente per verificare un determinato certificato?

3

Sto cercando di capire come funziona la firma digitale usando i certificati x509. Ho letto alcuni articoli e le relative risposte sul web, ma ci sono ancora alcune domande per confermare la mia comprensione:

  1. Questa ottima risposta di PTW-105 spiega come viene verificata la catena di affidabilità dei certificati. Ma ciò che manca è in che modo la parte verificatrice può ottenere il certificato dell'emittente utilizzato per firmare un certificato derivato . L'unica idea che ho è che è incorporato nel certificato derivato come altre informazioni. In questo caso le dimensioni del certificato aumenterebbero con ogni livello dell'albero dei certificati. Questo era già stato chiesto come commento, ma rimaneva ancora senza risposta.
  2. In che modo le applicazioni client come il browser o MS Word sanno quali autorità di certificazione sono le autorità root attendibili? Sono solo codificate in ogni applicazione? Quanto è grande l'elenco delle autorità di certificazione di root e chi lo gestisce? Cosa succede se alcuni sviluppatori di applicazioni dimenticano di includere una delle autorità (o solo una nuova è registrata) - i loro certificati non saranno considerati attendibili, vero? Quindi è possibile che alcuni siti siano attendibili in Chrome, ma non fidati utilizzando Firefox (può essere derivato da qui ).
  3. Che cosa succede se un utente malintenzionato riesce a includere il certificato emesso autonomamente in un archivio attendibile: potrebbe essere l'elenco dei certificati radice attendibili del computer della vittima o i certificati trusted del proprio dominio aziendale. So che è uno scenario improbabile, ma funzionerebbe?
  4. Scenario simile al # 3: applicazione del client di patch come MS Word (o condivisione della versione con patch sul Web che tutti possono scaricare liberamente) in modo che consideri il certificato di attaccante come un'autorità di certificazione di root. Funzionerebbe?
posta Oleksandr Pshenychnyy 07.10.2016 - 16:30
fonte

1 risposta

2

How verifying party can get the issuer's certificate which was used to sign some derived certificate.

Il browser ha un database di certificati attendibili, che sono noti per verificare l'identità prima della firma. Se il certificato derivato è firmato da uno di questi, viene estratto.

Tuttavia, ci sono alcune CA note come 2 ° livello. In questo caso viene utilizzata una catena di certificati.

  1. Il server fornisce il certificato che deve essere verificato.
  2. Il server fornisce il certificato emittente.
  3. Seguendo la catena, raggiungiamo il certificato di livello superiore che è già presente nel database dei certificati attendibili del browser

Naturalmente, l'emittente del certificato di livello superiore sarà molto attento nell'autorizzare le CA di secondo livello. C'è un bel po 'di processo, ma l'importante è che le nuove CA possano essere firmate da quelle esistenti per la compatibilità con i dispositivi più vecchi.

The only idea I have is that it is embedded into derived certificate as other information.

Sì, il certificato da verificare indica l'impronta digitale o un'identificazione simile del suo certificato CA. In questo modo il browser sa quale CA utilizzare.

Nel caso della certificazione della catena, l'intero certificato è incluso. (# 2 sopra) (non solo l'impronta digitale) Questo certificato ha l'impronta digitale di una CA di livello superiore (n. 3 sopra) che è (si spera) già nel keystore del browser.

In this case certificate size would grow with each level of certificate trust tree.

Se ci sono 2-3 certificati nella catena di certificazione, allora sì, ci vuole più spazio, (che potrebbe essere considerato "dimensione del certificato"), ma questo non rappresenta un problema.

Per quanto riguarda l'archivio di certificati del browser in costante aumento, in realtà c'è solo un numero limitato di CA, anche per quelli che non sono di primo livello, quindi neanche questo è un problema pratico.

How client applications such as browser or MS Word know which certification authorities are trusted root authorities? Are they just hard-coded into every application? How big is the list of root certification authorities and who manages it? What if some application developers forget to include one of authorities (or just a new one is registered) - their certificates won't be considered trusted will they? So is it possible that some site is trusted in Chrome, but non-trusted using Firefox (it can be derived from here).

Alcune CA di secondo livello potrebbero essere considerate attendibili in un browser e non in un altro. Pertanto, la CA che emette il certificato spesso fornisce certificati CA intermedi in modo che le app siano sempre in grado di risalire a una CA di livello superiore nel proprio negozio.

Chi gestisce questo database? Non lo so. Ho sentito che Google ha deciso di non fidarsi di una particolare CA dopo aver subito una violazione della sua chiave privata.

La CA deve mantenere segreta la propria chiave privata, altrimenti può essere utilizzata per firmare qualsiasi dominio. Le CA sono affidabili perché è noto che

  1. Hanno buone misure di sicurezza per proteggere la loro chiave privata.
  2. Verificano la proprietà prima di emettere un certificato.
  3. Hanno alcuni mezzi per emettere la revoca dei certificati (buon argomento per domande separate)

What if attacker manages to include his self-issued certificate into some trusted storage: it might be victim's computer trusted root certificates list, or her enterprise domain trusted certificates. I know it's unlikely scenario, but would it work?

Se un utente malintenzionato può accedere al computer di una vittima (presumibilmente la vittima ha problemi più grandi a quel punto) e inserisce un certificato attendibile, allora quell'hacker ha i mezzi per eseguire correttamente il MiTM con le connessioni https. Ascoltare o alterare le connessioni a volontà, se riesce a ottenere un dispositivo tra la vittima e il server. (cioè intercettazione WiFi o connessione fisica di rete)

Similar scenario to #3: patch client's application such as MS Word (or share patched version on the web for everyone to download freely) so that it considers attacker's certificate to be root certification authority. Would that work?

Sì, ma presumibilmente se è possibile applicare la patch all'applicazione client, la vittima ha molto più da preoccuparsi.

    
risposta data 07.10.2016 - 16:45
fonte

Leggi altre domande sui tag