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:
- Se l'emittente (CA) del certificato è nel tuo elenco di fiducia e la chiave pubblica dell'emittente è quella corretta.
- Controlla CN per abbinare il dominio / IP che stai collegando
- Se il certificato è scaduto
- Qualcosa sull'estensione X509v3 e sui vincoli di base che non ho capito correttamente.