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.