Public Key Infrastructure

Per lo scambio di chiavi autenticati, non esiste una funzione utilizzabile in blackbox. Rimane quindi il problema della distribuzione della chiave pubblica.

Si deve autenticare la chiave pubblica. Per fare questo ci sono diversi approcci:

PKI

Ogni partecipante utilizza una key pair. Si utilizzano delle entità fidate intermedie per distribuire le chiavi.

Le key pair in questo caso hanno bisogno di metadati. Questi metadati si chiamano certificati, e collegano informazioni a materiale crittografico. Lo standard utilizzato nel web si chiama x509.

Scenario 1

Nei browser, se c’è il lucchetto verde, si ha che è stato eseguito correttamente il protocollo di scambio di chiavi sicuro Diffie-Hellmann, e che si è riuscito ad autenticare il materiale crittografico inviato dal server, e che chi ha inviato il materiale è il dominio caricato. Anche il browser invia una chiave pubblica, ma non è autenticata.

  1. Lo user agent fa una chiamata al DNS local nameserver, e recupera l’IP del server che si vuole caricare (questa connessione è completamente unauthenticated)
  2. Lo user agent inizializza la connessione TCP tramite un handshake sulla porta 443
  3. Lo user agent si calcola una chiave pubblica e invia al server
  4. Il server si calcola una chiave pubblica e invia allo user agent, con annessa firma digitale, e un certificato (che contiene la chiave pubblica)
  5. Lo user agent verifica che il certificato, rilasciato da una Certificate Authority, sia per il dominio effettivamente caricato

Scenario 2

Se invece due server devono parlare, le chiavi sono autenticate da entrambe le parti. Il protocollo è lo stesso, ma il serve autentica anche il client.

scenario 3

È anche utilizzabile dai protocolli email S/MIME. L’identità che si va ad autenticare è alice@mydomain.com. L’obiettivo non è ottenere uno scambio di chiavi sicure, ma piuttosto di riuscire ad utilizzare correttamente uno schema di cifratura e firma.

csec_0301