Il corto
Il MITM ha bisogno della chiave privata del server per posare come server e decifrare
messaggi privati inviati al server. La chiave pubblica del server è per
autenticazione dei messaggi firmati dal server e invio di messaggi privati a
il server, quindi è ancora necessario verificare l'impronta digitale. Va bene se il MITM
ha anche la chiave pubblica. Tutto ciò significa che il MITM può anche autenticare i messaggi dal
server e invia messaggi privati al server.
In generale, se tutte le chiavi pubbliche sono conosciute da tutti, chiunque può autenticarsi
le firme di chiunque e chiunque può inviare un messaggio privato a chiunque. Il privato
controlli chiave firma e decrittazione, quindi idealmente nessuno può posare come un altro, e
nessuno può leggere un messaggio privato inviato a un altro.
Il lungo
NB: Il seguente è un modello semplificato a soli fini didattici, destinato a
illustrare il punto dell'impronta digitale chiave pubblica. Vedi questa altra domanda per ulteriori dettagli SSH .
Review. Per semplicità, invece di SSH su una rete di computer, prendi in considerazione a
bacheca pubblica in cui gli agenti possono inserire note di testo. All'inizio, la tavola è
vuoto. Gli agenti A e S vogliono comunicare e desiderano proteggere la privacy
e integrità dei loro messaggi dall'agente dannoso M . Assumi le chiavi private
sono noti solo ai rispettivi proprietari.
-
A post A_pub e S post S_pub .
-
A crittografa un messaggio con S_pub , firma con A_priv e post.
-
S decrittografa il messaggio con S_priv , verifica la firma usando A_pub .
-
S crittografa una risposta con A_pub , firma con S_priv e post.
- Penso che tu sappia cosa fa
A qui
L'agente M non può decodificare questi messaggi. M può postare messaggi crittografati
a S o A . Tuttavia, un tentativo di falsificazione fallirebbe. Un messaggio firmato con
M_priv non ha superato la verifica utilizzando A_pub o S_pub .
Ora per la funzione dell'impronta digitale della chiave pubblica. Supponiamo che M venga creato
M_pub e M_priv , e tenta di imbrogliare A pubblicando M_pub come S_pub :
Dear A,
My public key is
[contents of M_pub]
Love,
S
Se
A ritiene questa bugia, A crittograferà i messaggi a S con M_pub in modo che M
può decrittografarli e M può falsificare i messaggi come S usando M_priv . Tuttavia, se
A ha l'impronta digitale di S_pub , A può confrontarlo con l'impronta digitale di
M_pub e scopri la bugia. Quindi A rifiuterà di usare M_pub per
crittografia dei messaggi a S e autenticazione dei messaggi da S .
Pertanto, quando SSH avvisa che l'impronta digitale della chiave pubblica è sconosciuta
o cambiato, significa che potresti essere vittima di un attacco MITM. Se procedi,
il MITM sarà in grado di decrittografare i messaggi e falsificare le risposte come
server. Se il controllo delle impronte digitali ha successo, hai una sicurezza molto alta
non sono una vittima del MITM, assumendo che l'impronta digitale che hai è reale
le impronte digitali del server, le chiavi private (sia la tua sia quelle del server)
in effetti privato, le implementazioni di SSH sono corrette, e la crittografia a chiave pubblica non è matematica
compromessa.