tcpcrypt este o extensie a protocolului TCP care adaugă capacitatea de a cripta oportunist traficul către TCP [1] [2] . Dacă unul dintre abonați nu acceptă extensia tcpcrypt, se stabilește o conexiune TCP obișnuită. Dacă ambii abonați acceptă tcpcrypt, datele sunt criptate transparent pentru aplicații (nu este necesar suportul pentru aplicații; nu este necesară nicio configurare (spre deosebire de VPN )).
Extensia tcpcrypt a fost creată pentru a rezolva următoarele sarcini:
Extensia tcpcrypt, spre deosebire de protocoalele TLS și IPsec , nu conține instrumente de autentificare a utilizatorilor , dar oferă un câmp „Session ID”. „Session ID” poate fi utilizat la nivelurile superioare ale modelului de rețea OSI pentru a implementa orice schemă de autentificare (de exemplu, autentificare cu parole sau autentificare cu certificate PKI ).
Funcționarea extensiei tcpcrypt este transparentă pentru aplicații (adică nu este necesară nicio modificare a aplicației pentru a suporta tcpcrypt). În cazul implicit (fără autentificare ), extensia nu necesită configurare. Cu toate acestea, atunci când rulează fără autentificare, extensia este vulnerabilă la un atac activ [3] man-in-the-middle .
Cea mai mare parte a muncii de stabilire a unei conexiuni (aranjarea criptării utilizând o cheie publică) se face pe partea clientului. Acest lucru se face în mod intenționat pentru a reduce sarcina pe servere și pentru a reduce probabilitatea atacurilor DoS [4] .
Conform cercetărilor autorilor, atunci când se folosește extensia tcpcrypt, în comparație cu TCP / TLS , încărcarea serverului este redusă datorită unei proceduri de strângere de mână mai simple și mai rapide .
Extensia tcpcrypt folosește marcaje temporale TCP și adaugă câteva dintre opțiunile sale TCP la fiecare pachet. Din această cauză, dimensiunea pachetului este mărită cu 36 de octeți în comparație cu dimensiunea unui pachet TCP obișnuit. Dacă presupunem că dimensiunea medie a pachetului TCP este de 471 de octeți [5] , debitul legăturii va scădea cu 8%. Utilizatorii cu lățimi de bandă mai mari de 64 kb nu ar trebui să observe o diferență, dar utilizatorii dial-up pot experimenta încetiniri semnificative.
Extensia tcpcrypt este concepută de o echipă de șase persoane [6] :
și a fost prezentat la cel de-al 19-lea simpozion de securitate USENIX în 2010.
În iulie 2010 a fost publicată prima schiță a caietului de sarcini, iar în august 2010, codurile sursă pentru implementarea de referință . Reprezentanții organizației „ IETF ” s-au familiarizat cu proiectul, dar standardul nu a fost acceptat. Din această cauză, proiectul nu s-a dezvoltat decât în 2011 [7] .
În 2013-2014, Edward Snowden a dezvăluit informații despre supravegherea în masă a utilizatorilor de internet de către NSA și alte organizații guvernamentale. IETF a decis să protejeze utilizatorii de supraveghere prin crearea de protocoale securizate de Internet [8] [9] . Extensia tcpcrypt a criptat în mod transparent tot traficul, iar IETF și-a arătat interesul în standardizarea acestuia.
În martie 2014, IETF a creat o listă de corespondență pentru a discuta despre tcpcrypt [10] . În iunie 2014, IETF a format un grup de lucru numit „TCPINC” (din limba engleză TCP enhanced security ) pentru a standardiza extensia tcpcrypt [11] și a publicat o nouă versiune a specificației.
Proiectul ( English internet draft ) poate fi găsit la link (link inaccesibil) [12] .
Au fost pregătite implementări ale extensiei tcpcrypt pentru mai multe sisteme de operare : Linux , FreeBSD , Windows și Mac OS X. Toate implementările:
În prezent, protocolul IPv6 este acceptat doar de implementarea Linux .
Este de așteptat ca odată ce extensia tcpcrypt este standardizată, implementările încorporate vor apărea pe toate sistemele de operare.