TLS 1.3 are o curățare uriașă după eșecuri. Avem doar 5 suite de criptare în TLS 1.3, cu ID-urile lor:
{0x13,0x01}
- TLS_AES_256_GCM_SHA384
{0x13,0x02}
- TLS_CHACHA20_POLY1305_SHA256
{0x13,0x03}
- TLS_AES_128_GCM_SHA256
{0x13,0x04}
- TLS_AES_128_CCM_8_SHA256
{0x13,0x05}
- TLS_AES_128_CCM_SHA256
Din curent RFC 8446:
O aplicație compatibilă cu TLS TREBUIE SA implementați suita de criptare TLS_AES_128_GCM_SHA256 [GCM] și AR TREBUI SĂ implementați suitele de criptare TLS_AES_256_GCM_SHA384 [GCM] și TLS_CHACHA20_POLY1305_SHA256 [RFC8439]
Toate aceste suite de criptare folosesc modul CTR, AES este Pseudo-Random Permutation (PRP) și Chacha20 este Pseudo-Random Function (PRF); ca urmare, ChaCha20 este mai bun pentru modul CTR ca orice PRF.
AES-256 este standardul de aur și aprobat de NIST și este securizat cuantic (algoritmul Grover) (de asemenea, securizat ChaCha împotriva QC). AES are instrucțiuni CPU cunoscute sub numele de AES-NI Intel. Intel a adăugat, de asemenea PCLMULQDQ
instrucțiuni din 2014 pentru a crește performanța GCM, prin urmare o vom vedea mai mult decât ceilalți.
- GCM (Galois Counter Mode) este cel mai folosit*.
- CCM este un mod preferat medii constrânse.
- ChaCha20-Poly1305 este preferat de Google și este imun la atacurile de sincronizare prin proiectare.
Rețineți că, în software, ChaCha20 bate AES și aceasta nu este o surpriză, deoarece este conceput pentru a fi prietenos cu CPU.
*GCM este greu de utilizat corect, sunt multe capcanele.