Atacul, pe care îl numim Logjam, este reprezentat în Figura 2
și se bazează pe un defect în modul în care TLS compune DHE și
DHE_EXPORT. Când un server selectează DHE_EXPORT Pentru o
strângere de mână, se procedează prin emiterea unui semnat ServerKeyExchange
mesaj care conține un mesaj pe 512 biți $p_{512}$, dar structura acestuia
mesajul este identic cu mesajul trimis în timpul DHE standard
ciphersuites. În mod critic, porțiunea semnată a serverului
mesajul nu reușește să includă nicio indicație a suitei de cifrare specifice
pe care serverul l-a ales. Cu condiția ca un client să ofere
DHE, un atacator activ poate rescrie clienții ClientSalut la
oferi o corespondență DHE_EXPORT ciphersuite acceptat de
server și eliminați alte suite de criptare care ar putea fi alese
in schimb. Atacatorul rescrie ServerSalut raspuns catre
înlocuiți cel ales DHE_EXPORT ciphersuite cu o potrivire
non-export ciphersuite și redirecționează ServerKeyExchange
mesaj către client așa cum este. Clientul va interpreta
tuplu cu grad de export $(p_{512}, g, g^b)$ ca parametri DHE validi aleși
de server și continuați cu strângerea de mână. The
clientul și serverul au transcrieri diferite de strângere de mână
stadiu, ci un atacator care poate calcula $b$ aproape de real
timpul poate obține apoi secretul principal și cheile de conexiune
pentru a finaliza strângerea de mână cu clientul și apoi liber
citiți și scrieți datele aplicației pretinzând a fi serverul.
Și întrebarea ta sună:
Citesc despre atacul de blocaj. Am fost întrebat dacă atacul poate fi prevenit prin verificarea integrității mesajului Server Hello.
Și bănuiesc că răspunsul este da, dar numai dacă ar semna/verifica setul de suite de criptare care este oferit în cadrul ServerSalut, și se pare că cel puțin TLS până la 1.2 nu reușește să facă acest lucru. Cu alte cuvinte, ar trebui să modificați protocolul TLS pentru a include suitele de criptare oferite în generarea/verificarea semnăturii, făcându-l incompatibil cu orice alt software TLS.
Deci, în prezent, se pare că pur și simplu nu vă permiteți implementare a executa DHE_EXPORT (sau DH efemer pe 1024 de biți) este calea de urmat pentru TLS până la 1.2.