Convalida del certificato TLS user-friendly

2

Sto progettando un'applicazione in cui i client generano i propri certificati TLS ad-hoc (non esiste un'autorità centrale).

Quando due client interagiscono per la prima volta, ho bisogno che essi controllino reciprocamente il certificato dei loro colleghi. So che le impronte digitali sono generalmente utilizzate per questo, ma ho bisogno di tenerlo più amichevole per i principianti, quindi farli controllare 20 caratteri esadecimali (SHA-1) non suona molto convincente.

Ho pensato di rappresentare la stessa impronta digitale con i caratteri 0-9a-zA-Z (dandomi 62 caratteri per rappresentare lo stesso valore), ma ha ancora 13 cifre.

C'è un modo comune (o forse non così comune) di avere due utenti che convalidano i loro certificati reciproci? Questa è un'applicazione in tempo reale a bassa latenza, quindi sono possibili più round trip.

Modifica
Gli utenti possono scambiarsi informazioni di persona in questo scenario, quindi è possibile dire (o mostrare) un codice l'uno con l'altro. Tuttavia, mi piacerebbe evitare che facciano il bulbo oculare di 20 caratteri e li controlli manualmente, soprattutto per la facilità d'uso.

    
posta WhyNotHugo 28.04.2015 - 10:11
fonte

1 risposta

2

Ecco tre idee.

Utilizza una CA Come hanno già detto i commentatori: fidatevi di loro di una CA. È meno doloroso. E scala molto meglio. Ogni partecipante dovrà solo verificare l'autenticità dell'autorità di certificazione una volta e poi potrà comunicare con ogni altro partecipante . (Poi, naturalmente, dovrai fidarti molto della CA. - Ma considero questo un buon compromesso nel tuo caso.)

Metodo audio da uomo a uomo: utilizza l'elenco di parole PGP
Se si desidera realmente la verifica individuale "1-a-1", quindi utilizzare un elenco di parole ottetto. Mappa ogni byte esadecimale (da 0x00 a 0xFF) a una o più parole.
PGP ha fatto questo: Wikipedia: elenco di parole PGP

Metodo immagine leggibile dalla macchina: utilizza un codice QR
Un instant messenger che uso è chiamato "Threema". E sottolineano la sicurezza end-to-end e non è necessario fidarsi di una CA. Alice non ha bisogno di verificare la chiave di Bob per poterlo imitare. Ma se Alice vuole verificare la chiave di Bob, allora entrambi si incontrano faccia a faccia e Bob preme un tasto show-my-key-as-QR-code nell'app. E Alice seleziona i dati di contatto di Bob e quindi preme il pulsante di scansione-quella-persona-chiave-tramite-codice-QR.

(Ci sono tre livelli di fiducia nell'app. Il miglior livello di fiducia è riservato alle persone che hai incontrato faccia a faccia. Link: Livelli di Threema (archiviato qui .))

    
risposta data 28.04.2015 - 10:44
fonte

Leggi altre domande sui tag