Ho trovato questo articolo che afferma che la firma crittografica asimmetrica della chiave ottenuta da DH impedisce MITM:
Idea chiave:
The value of 'signature' is a signature by the corresponding private key over the following data, in the following order:
string session identifier byte SSH_MSG_USERAUTH_REQUEST
Now the attacker has a problem, as the client and the server have different ideas about what session identifier is supposed to be. Obviously, the server will reject the signature supplied by the client and public-key authentication will fail.
Vorrei verificare se la mia comprensione di ciò è corretta:
Lascia che Alice ( A
) sia client, MITM ( M
) un utente malintenzionato e Bob ( B
) un server ssh.
Ipotesi:
-
M
si trova nel mezzo della comunicazione, intercettando tutte le comunicazioni traA
eB
-
M
in qualche modo ingannatoA
nel pensare che siaB
e anche ingannatoB
a pensare che siaA
(re impronte digitali ecc.) -
Tuttavia,
M
non è riuscito a penetrare nella macchina diA
né nella macchina diB
, lasciando la chiave pubblica diA
nell'accountA
suB
macchina intatta
Finché le condizioni sopra riportate rimangono sopra:
The session identifier is calculated based on (among other things) the shared secret negotiated by the peers using Diffie-Hellman algorithm.
= > mentre M
può falsificare gli scambi DH in A
e B
, quelli necessariamente dovranno essere 2 diversi (finti) segreti condivisi (a meno che non ci sia un modo per M
di comprometterli con modificando scambiati i numeri DH, non osservandoli).
Quando questo segreto condiviso viene utilizzato come componente della creazione di dati da firmare (parte o l'intero identificatore di sessione), una cosa che M
non può falsificare e non sa è la chiave privata di A
che verrà utilizzata per la firma dell'ID di sessione basato sul (1) segreto condiviso simulato.
Pertanto, la firma digitale dell'ID di sessione (+ altri dati di sessione per descrizione sopra) non riesce la verifica a B
, oppure gli ID di sessione non corrispondono, interrompendo in modo efficace la comunicazione.
Domande:
-
questo ragionamento è corretto? se no, dove sono gli errori?
-
l'ID sessione crea il "link più debole" in questa catena? Cioè, se
M
potrebbe prevederlo (ad esempio se è prevedibile hash unidirezionale che è suscettibile di attacco statistico, anche se DH non lo è) e indovinarlo in qualche modo (molto improbabile, sì, ma è anche teoricamente impossibile ?), quindiM
avrebbe l'ID di sessione "genuino" firmato daA
e quindiB
penserebbe che la firma dell'autenticazione sia OK?
Mi rendo conto che è praticamente impossibile in pratica, ma è completamente teoricamente impossibile?