Puncte:0

Utilizarea AES-CBC în TLS1.2

drapel us

Este AES-CBC încă vulnerabil în TLS1.2 Sau vulnerabilitatea funcționează doar pentru versiunile TLS inferioare? Dacă nu, de ce a fost șters în TLS 1.3?

kelalaka avatar
drapel in
Răspunde asta la întrebarea ta? [De ce a fost eliminat AES CBC în TLS 1.3?](https://crypto.stackexchange.com/questions/52566/why-was-aes-cbc-removed-in-tls-1-3)
Maarten Bodewes avatar
drapel in
Pe scurt: este nesigur dacă utilizați orice implementare implicită a AES-CBC, care este suficient de proastă pentru a o exclude.
drapel us
@MaartenBodewes există implementări non-implicite specificate undeva? Care parte a implementării implicite ar fi vulnerabilă?
Maarten Bodewes avatar
drapel in
Cei care raportează excepții de umplutură PKCS#7. TLS folosește MAC-then-encrypt, deci este vulnerabil împotriva atacurilor oracle de umplutură.
drapel us
@MaartenBodewes, deci, în general, TLS 1.2 încă permite utilizarea implementării implicite a AES-CBC care nu este sigură?
Maarten Bodewes avatar
drapel in
$ $ Da, este corect.
dave_thompson_085 avatar
drapel cn
(@MaartenBodewes) pentru oracolul de umplutură „lucky13”, există o OPȚIUNE pentru encrypt-then-MAC, rfc7366 în 2014, dar nu cunosc vreo implementare care a adăugat EtM fără a adăuga și 1.3, ceea ce, desigur, este de preferat în general . _altă_ vulnerabilitate a CBC în 1.0 și SSL3, expus-IV, atacată de BEAST (rezultând oamenii să treacă pentru un timp la!! RC4), a fost remediată în 1.1 (și 1.2).
Maarten Bodewes avatar
drapel in
@dave_thompson_085 Menționez atacul generic împotriva CBC cu umplutură în acel protocol. Temporizarea atacurilor specifice sunt utile numai atunci când oracolul de umplutură nu este disponibil direct pe baza condițiilor de eroare și altele. Și da, nu-mi amintesc să fi văzut EtM nicăieri...
Gilles 'SO- stop being evil' avatar
drapel cn
@dave_thompson_085 OpenSSL a început să adauge suport pentru encrypt-then-MAC [în 2013](https://github.com/openssl/openssl/commit/5e3ff62c345c976cd1ffbcc5e6042f55264977f55264977f55264977f55264977f55264977f55264977f55264977f555264977f55264977f5. /gnutls/-/tree/e93cef18471962b001dac0f792cb569f1a4cde58), Mbed TLS [în 2014](https://github.com/ARMmbed/mbedtls/commit/699cafaea27c728e18af8a728ea6af87a728ea6f1a4cde58). Nu este acceptat universal, dar este mult mai vechi decât TLS 1.3. Cu toate acestea, este mai recent decât TLS 1.2, care a fost prima versiune care a avut o alternativă bună la CBC (GCM).
Puncte:2
drapel cn

Mă pot gândi doar la o slăbiciune a AES-CBC în TLS 1.1 și mai sus, care este Atacul Lucky Thirteen. Acesta este un atac asupra unei modalități prost concepute de a tampona mesajele care îl face deosebit de vulnerabil la a padding oracol atac datorită utilizării MAC-apoi-criptare (cu o schemă de umplutură care face atacul destul de ușor).

Atacul original s-a bazat pe obținerea unui decryption_failed alertă când umplutura a fost greșită, ceea ce a fost fixat în TLS 1.1 continuând cu o cheie de sesiune aleatorie pentru o eroare de umplere (și implementările TLS 1.0 au aplicat și această contramăsuri). Cu toate acestea, implementările naive ale TLS 1.2 continuă să fie vulnerabile la acest atac prin sincronizare: ceea ce trebuie să știe atacatorul este câți octeți de umplutură sunt corecti, iar timpul necesar procesării mesajului scurge aceste informații, cu excepția cazului în care implementatorul a fost foarte atent. .

Versiunile moderne ale implementărilor TLS mainstream protejează împotriva Lucky Thirteen, astfel încât, în general, puteți utiliza în siguranță suitele de criptare CBC. Cu toate acestea, această contramăsuri are un cost de performanță: implementarea trebuie să fie procesată toate posibile lungimi de umplutură, dintre care există până la 256, și apoi combinați rezultatele. Atenție că implementările mai vechi sau implementările care nu sunt concepute pentru securitate ridicată pot fi încă vulnerabile.

Unele implementări TLS (cel puțin OpenSSL, GnuTLS și Mbed TLS) acceptă extensia criptare-apoi-MAC care protejează complet împotriva acestei vulnerabilități.

În orice caz, singurul motiv pentru utilizare Suitele de criptare CBC sunt de a vorbi cu sisteme vechi care nu acceptă suitele de criptare AEAD (folosind GCM, CCM sau Chacha-Poly). Suitele de criptare AEAD sunt mai rapide și mai puțin predispuse la accidente de securitate. De obicei, motivul pentru care suitele de criptare CBC încă există este de dragul sistemelor care au un motor de criptare care este efectiv imposibil de actualizat (de exemplu, deoarece a fost certificat și nimeni nu vrea să plătească pentru a certifica o implementare a GCM sau CCM). Dacă motivul pentru a evita GCM și Chacha-poly este prezența accelerației AES, CCM va profita de acest lucru și va fi de obicei mai rapid decât suitele de criptare CBC (care necesită un calcul HMAC).

Suite de criptare CBC au fost eliminate în TLS 1.3 pentru că sunt greu de implementat corect (și imposibil de implementat atât cu performanță ridicată, cât și cu securitate ridicată) și singurul motiv pentru a le păstra a fost compatibilitatea cu sisteme mai vechi. Cu o versiune de protocol mai nouă, nu exista niciun motiv semnificativ pentru a le păstra. Și pentru că TLS 1.3 și-a propus să excludă toate mecanismele criptografice care sunt greu de implementat în siguranță, suitele de criptare CBC au trebuit cu siguranță să meargă.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.