Verifica dei mandatari che un client deve eseguire per verificare un certificato ssl / tls [duplicato]

1

Diciamo che ho un client, non un browser, che vuole connettersi con https a un server. Potrebbe essere un programma python, un'app Android o una libreria ecc. Supponiamo che il client abbia un elenco di CA affidabili e le loro chiavi pubbliche.

Cosa controlla il client per verificare che il certificato sia valido ed evitare gli attacchi man in the middle e quali attacchi sono possibili se il client non effettua questi controlli?

So che molte librerie fanno questo per te ma molte cose possono andare sbagliato . La domanda è per lo più teorica.

Finora ho capito che dovresti controllare:

  1. Se l'emittente (CA) del certificato è nel tuo elenco di fiducia e la chiave pubblica dell'emittente è quella corretta.
  2. Controlla CN per abbinare il dominio / IP che stai collegando
  3. Se il certificato è scaduto
  4. Qualcosa sull'estensione X509v3 e sui vincoli di base che non ho capito correttamente.
posta Laxmana 15.04.2016 - 11:54
fonte

2 risposte

1

La corretta convalida di un certificato è una questione molto complessa. Come con molte cose in crypto, è meglio lasciare questa convalida in una libreria invece di provare a implementarla tu stesso. In genere, chiedi alla tua libreria di eseguire tutto il duro lavoro e poi controlla eventuali proprietà aggiuntive che ti interessano in seguito.

Come per i dettagli:

Innanzitutto, è necessario verificare il certificato dell'entità finale stesso. Hai bisogno di vedere se è conforme alla vostra aspettativa: non la partita soggetto cosa ti aspetti (nel caso di un sito web, che significa il check-nel soggetto nome comune è il nome FQDN del URL utilizzato per raggiungerlo) , il periodo di validità del certificato è corretto? Il certificato ha la corretta utilizzo della chiave e utilizzo prolungato della chiave ? Sono le vincoli di base soddisfatto?

Quindi è possibile verificare se il certificato è stato revocato (controllare il punto di distribuzione CRL nella proprietà del certificato e interrogarlo per verificare la revoca).

Dopo questo, l'intero percorso del certificato deve essere controllato. Ciò significa eseguire più o meno le convalide precedenti per ciascun certificato nel percorso fino all'ancora di fiducia. (Vedi rfc5280 se si desidera che i dettagli scabrosi).

    
risposta data 15.04.2016 - 13:16
fonte
1

E dovresti fare molti controlli sulla certezza della genuinità, ad esempio per evitare MitM o certificati falsi emessi dalla chiave CA cosiddetta "rubata". Dai uno sguardo e guarda al progetto Perspectives per avere un'immagine completa

    
risposta data 15.04.2016 - 12:10
fonte

Leggi altre domande sui tag