Domanda

Sto usando utility Botan per eseguire la crittografia. Quando ho inizializzo mia connessione ad un computer remoto usando SSH, sono in grado di scambiare le chiavi tramite la connessione sicura SSH. Tuttavia, a volte io uso inetd per stabilire la connessione, e in questo caso, non c'è sicurezza sulla connessione inetd, ma ho bisogno di usarlo per il commercio con le chiavi della macchina remota.

immagino ci sia qualche standard per questo per cui mando una chiave pubblica su un canale insicuro e alla fine remoto utilizza questo per crittografare una chiave per inviare di nuovo a me sul canale insicuro, che posso poi decifrare per ottenere la chiave .

Quale potrebbe essere un esempio di questo tipo di protocollo che supporti Botan?

È stato utile?

Soluzione

Senza precedente di fiducia, o di comunicazione attraverso un canale laterale, non c'è modo di farlo. Diffie-Hellman KEX consente di stabilire un canale sicuro contro gli altri che non partecipano nella connessione, ma non è possibile verificare che si sta comunicando con il destinatario.

MITM esempio: si collega ad alcuni endpoint remoto, riceve la chiave pubblica e si invia qualcosa di firmato con quella chiave. Tuttavia, non c'è modo di verificare se hai inviato la chiave per la destinazione reale, o se la risposta viene da un attaccante - quindi, si dispone di un tunnel protetto, ma non avete le informazioni con cui si sta comunicando in modo sicuro ( l'attaccante può anche collegare alla vostra destinazione e delega il traffico che passa su di lui non crittografati).

Per essere sicuri che si stanno effettivamente comunicando con l'endpoint previsto, è necessario scambiare qualche sorta di identificazione dell'host in anticipo o tramite un canale sicuro. SSH lo fa utilizzando le "impronte digitali" -. Vi chiede il primo collegamento se vi fidate che ospitano, e si suppone di verificare l'impronta digitale attraverso un canale indipendente

Altri suggerimenti

Quello che ho fatto in una situazione simile è stato quello di organizzare il primo a ottenere una coppia di chiavi pubblica / privata scambiate, così, ho avuto la chiave pubblica di ogni cliente, in modo da quando connessi a me, è stato approvato un messaggio, che ha avuto un timestamp su di esso, che ho potuto quindi decifrare.

Se questo passato, e il timestamp era valido (io ho usato 5 secondi come la vita del timestamp) quindi vorrei scambiare la chiave, dato che abbiamo avuto un modo per comunicare in modo sicuro.

Ma, questa richiesta di fare qualcosa in anticipo.

Se vi aspettate un utente anonimo per la connessione e avere una certa sicurezza che è impossibile.

Un articolo che ho trovato molto utile su questioni come questa è stata * Programmazione di Satana computer", http://www.cl.cam.ac.uk/~rja14/Papers/satan.pdf , in cui si sta cercando di avere una comunicazione sicura con un amministratore di sistema inaffidabile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top