Perché inviare HMAC in direzione inversa quando si esegue il DH verificato con la protezione downgrade?

0

Lo scopo di questa procedura è che Alice e Bob eseguano uno scambio di chiavi Diffie-Hellman verificato. Funziona così:

  1. Alice invia i suoi schemi di firma supportati a Bob. Dice solo "schemi supportati". Suppongo che siano intesi schemi di firma.
  2. Bob seleziona uno schema di firma.
  3. Alice sceglie a e invia A = g^a mod p e Sig_Alice(A) a Bob.
  4. Bob sceglie b e invia B = g^b mod p e Sig_Bob(B) ad Alice.
  5. Calcolano come al solito K = g^(a*b) .
  6. Alice invia l'HMAC di tutti i messaggi fino a questo punto a Bob. Suppongo che questo HMAC sia inviato sul canale criptato perché K è già stato calcolato. Non ho idea se solo i messaggi inviati da Alice siano intesi o se siano inclusi anche quelli che ha ricevuto.
  7. Bob invia l'HMAC di tutti i messaggi fino a questo punto ad Alice. Di nuovo, probabilmente sul canale crittografato.

Capisco perché Alice manda l'HMAC dei suoi messaggi a Bob: Per essere sicuro che Bob abbia effettivamente ricevuto tutti gli schemi di firma che supporta. Potrebbe darsi che ci sia un uomo-in-the-middle che ha rimosso tutti gli schemi di firma sicura così Bob ha dovuto scegliere uno non sicuro in cui il MitM può rapidamente falsificare le rispettive firme in modo da poter stabilire un canale crittografato tra lui e Alice e un altro tra lui e Bob.

Ma qual è lo scopo di Bob che invia l'HMAC sui suoi messaggi ad Alice? Cosa può imparare Alice da quell'HMAC? Se c'è un MitM che ha simulato una scelta debole di Bob nei confronti di Alice, deve già essere stato in grado di impersonare completamente Bob in 4. , quindi conosce K e quindi l'invio dell'HMAC sul canale crittografato non pone mai alcuna difficoltà al MitM.

Sto trascurando qualcosa? Conosci le risposte alle domande che ho pronunciato in 6. ? Do 6. e 7. si verificano in parallelo? Non sembra nella grafica fornita nella lezione dove per 1. , 3. e 6. una freccia va da Alice a Bob e per 2. , 4. e 7. , una freccia va da Bob ad Alice. Non capisco perché 4. e 3. non vengano scambiati. Perché Bob dovrebbe aspettare una risposta da Alice?

    
posta UTF-8 01.10.2017 - 23:50
fonte

1 risposta

1
  1. Per quanto riguarda il tuo commento su 1. : Schemi potrebbero anche significare schemi DH diversi, ad esempio gruppi o generatori diversi. Ciò include diversi campi primi o persino curve ellittiche.

  2. Come per la tua domanda principale: fino a quando Bob invia il messaggio in 7. Alice non sa che Bob conosce il segreto condiviso. Un avversario potrebbe aver appena ripetuto una precedente B di Bob, inclusa la firma. Alice calcolerà K e penserà che sta parlando con Bob, ma non è stato coinvolto affatto. Questo è spesso sottovalutato perché di solito assumiamo che K sarà usato dopo l'accordo di chiave e che sarà in qualche modo ovvio se l'altra parte non ce l'ha. L'idea generale qui è di assicurarsi che entrambe le parti abbiano visto esattamente la stessa conversazione. Vedi qui .

  3. Per quanto riguarda la tua domanda in 6. : se Alice invia un MAC su tutti i messaggi devono essere aggiunti alcuni nonce, altrimenti Bob può semplicemente restituire lo stesso messaggio in 7. , quindi probabilmente significano qualcosa come "tutti ricevuti "o" tutti inviati ". Come hanno sottolineato le persone nei commenti, questo non ha senso finché Bob deve inviare un MAC su tutti i messaggi, incluso il MAC che ha ricevuto da Alice in 6. . (Grazie!)

  4. Non vedo una ragione ovvia per non scambiare 3. e 4. .

risposta data 02.10.2017 - 00:49
fonte

Leggi altre domande sui tag