Approcci per autenticare la chiave pubblica
TOFU
Lo scambio di chiave viene effettuato senza l’autenticazione. Assumo che la comunicazione non è sotto attacco e scambio la chiave pubblica normalmente. Garantisce l’autenticità della chiave pubblica. Se viene letta la chiave non ci interessa perché è coperta da Diffie-Hellmann. Serve a coprire solo attacchi attivi.
Il più grande utilizzo è via SSH. La prima volta che ci si connette viene chiesta l’autenticazione ad autenticarsi.
Out-of-bounds communications
Si utilizzano due canali di comunicazione. Uno considerato insicuro dove scambio tutte le informazioni, e uno considerato sicuro in cui invio solo la chiave pubblica (il secondo canale può anche essere analogico).
Uso un canale molto lento e costoso, ma sicuro, per scambiarsi solo le poche informazioni della chiave pubblica.
Non è scalabile!
Esempio: WhatsApp, crea un hash della chiave pubblica, e genera un codice QR, che un utente può scansionare per verificare la autenticità della chiave.
Delegated approaches
Facciamo autenticare le chiavi pubbliche ad altre entità. È l’approccio più scalabile
Esiste un’altra entità di cui mi fido che mi garantisce l’autenticità delle chiavi che ottengo. La chiave pubblica che ottengo su un canale non sicuro è già firmata da qualcuno che cononsco.
Il difetto principale è: di chi ci possiamo fidare? Dipende molto dal contesto. OpenPGP è lo standard per email cifrate, con il quale si può creare il Web of Trust, ovvero creo una rete di persone fidate, per cui ho verificato la chiave con qualcuno, e lo uso per ottenere le chiavi di altre persone.
PKI è un approccio delegato ma centralizzato. Si ha una centralizzazione forte della fiducia, per cui si crea una entità di cui ci si fida. Solitamente è una società che per natura legale nel mondo reale è fidata.
Automatic verification approaches
Protocollo particolare da utilizzare quando si vuole verificare l’autenticità di chiavi pubbliche associate a una entità che ha un ruolo nella comunicazione che voglio realizzare.
Ad esempio google.com è un’informazione che ha senso per la comunicazione che voglio realizzare.
Voglio essere sicuro di comunicare con un certo dominio. L’approccio pià conosciuto è ACME, di LetsEncrypt, che permette il rilascio automatico di certificati web. Serve per verificare la corrispondenza del dominio con la chiave pubblica. Un altro servizio che utilizza un approccio simile è Keybase, che crea un binding tra identità virtuali.