La distribuzione delle chiavi è un argomento su cui è abbastanza un sacco di articoli sono stati scritti e probabilmente lo faranno. Fondamentalmente, è necessario un qualche tipo di canale sicuro per ottenere l'invio della chiave, ma quel canale sicuro non è ancora lì, motivo per cui la chiave è necessaria in primo luogo.
Il potente aggressore
Per questa risposta, inizia con l'immaginare un attaccante molto potente, ad es. un attaccante Dolev-Yao che può ascoltare, intercettare e sintetizzare qualsiasi messaggio sulla rete. Ovviamente, questi aggressori hanno molto più potere di quanto comunemente ragionevole, ma è anche il punto di partenza nella ricerca di sicurezza comune. In seguito abbasseremo il barier.
Dato il nostro potentissimo attacker, abbiamo effettivamente bisogno di un trust bootstrap. Ad esempio, se si dispone di una sorta di schema di crittografia e-mail in atto, che potrebbe essere utilizzato. Pensa a PGP o S / MIME. Ciò lascia ancora un problema di fiducia, ma nel primo caso può essere delegato a una decisione informata in base alla loro rete di fiducia o nel secondo caso alla decisione dell'autorità di certificazione (probabilmente solo in base al controllo dell'e-mail). In altre parole, la fiducia è contenuta in una delle strutture esistenti e possiamo basare la nostra decisione su ipotesi su quelle che sono normalmente considerate terze parti fidate.
Se intendi utilizzare la crittografia a chiave pubblica, ad es. Chiavi SSH. Si accende il problema. Ora, non è necessaria la riservatezza della chiave, ma l'utente deve essere in grado di mantenere l'integrità quando si invia la chiave pubblica. Nell'esempio di crittografia della posta elettronica, è necessario assicurarsi che il messaggio con la chiave pubblica da utilizzare per il server sia firmato dal dipendente (anziché crittografato correttamente per lui e solo da lui letto).
Pertanto, quando la riservatezza è il tuo problema, crittografati utilizzando un trust bootstrap, come fornito da strumenti di crittografia e-mail (o simili), e quando l'integrità è la tua causa, lascia che i tuoi dipendenti firmi utilizzando la fiducia bootstrap.
L'autore dell'attacco potente su un solo canale
Più realisticamente, l'attaccante ha potere solo su uno o più canali non sicuri. In altre parole, si presuppone l'esistenza di un canale protetto sul lato del canale principale. Questo canale può essere utilizzato per inviare informazioni aggiuntive necessarie per comprendere il messaggio principale o per verificare il messaggio principale. Ad esempio, si cripta la password con un'altra password e la si invia tramite e-mail. Sul lato, si invia un SMS con la password necessaria per decrittografare la password. In questo modo, due canali devono essere compromessi. Si noti che questa potrebbe essere una combinazione qualsiasi (posta, telefono, SMS, e-mail, fax, ecc.) Purché siano scollegati abbastanza da essere sicuri. Quindi, uno smartphone che gestisce sia gli SMS in entrata che le e-mail non è abbastanza buono!
L'approccio a due canali potrebbe essere riprodotto in modo simile nella situazione di integrità, ad es. inviare la chiave pubblica su due canali separati. In ogni caso, è necessario verificare questi risultati l'uno contro l'altro.
Note conclusive
Esistono numerosi altri metodi, ma mi aspetto che ciò generi un onere troppo alto per non avere troppa sicurezza in più, visto che hai ancora a che fare con gli umani.
Inoltre, le cose che richiedono direttamente una modifica della password al primo accesso sarebbero aggiunte intelligenti.
Infine, noterai che queste sono tutte questioni di fiducia, che sono fondamentali per molti sistemi crittografici e altri metodi di sicurezza. Dovresti trovare il giusto equilibrio tra paranoia ed essere ingenui, ad es. il sistema di certificati usati da SSL e S / MIME non è certamente fantastico, ma è comunemente trovato abbastanza buono per l'online banking, quindi quando non si comunica ai missili nucleari, probabilmente andrà bene. Assicurati di fare anche un ragionevole controllo.