ACADEMIA TEHNICĂ MILITARĂ “FERDINAND I ” TRANSPORT LA YER SECURITY COORDONATOR: Lt.col. conf. univ. dr. ing. RÎNCU Cristian -Iulian Sd. sg. PUSDREA… [611304]
1
ROMÂNIA
MINISTERUL APĂRĂRII NAȚIONALE
ACADEMIA TEHNICĂ MILITARĂ “FERDINAND I ”
TRANSPORT LA YER SECURITY
COORDONATOR:
Lt.col. conf. univ. dr. ing. RÎNCU Cristian -Iulian
Sd. sg. PUSDREA Bogdan -Cristian
Bucure ști 2019
2
Cuprins :
1. Generalități ………………………….. ………………………….. ………………………….. …… 3
1.1 Apariție ………………………….. ………………………….. ………………………….. ……… 3
1.2 Caracteristici ………………………….. ………………………….. ………………………….. . 3
2. TLS Record Protocol ………………………….. ………………………….. ………………….. 4
2.1 Starea conexiunii ( Connection States ) ………………………….. ……………………… 5
3. TLS Handshake Protocol ………………………….. ………………………….. …………….. 6
4. TLS Change Cipher Spec Protocol ………………………….. ………………………….. .. 8
5. TLS Alert Protocol ………………………….. ………………………….. …………………….. 9
6. Versiunile TLS 1.1, 1.2, 1.3 ………………………….. ………………………….. …………. 9
7. Utilizare ………………………….. ………………………….. ………………………….. ………. 10
Bibliografie: ………………………….. ………………………….. ………………………….. ………. 11
3
1. Generalit ăți
1.1 Apari ție
Transport Layer Security este un protocol criptografic al cărui obiectiv
principal este de a asigura confidențialitate și integritatea datelor între două entități
care comunică. Criptarea este simetrică, iar cheia este unic generatapentru fiecare
sesiune de comunicare și se bazează pe o negociere comună și secretă la începutul
sesiunii, cunoscută ca TLS Handsake . TLS este succesorul protocolului SSL
(Secure Sockets Layer ), între TLS 1.0 și SSL 3.0 nefiind schimbări majore, însă
suficient încât acestea să nu poată interopera. TLS 1.0 a apărut în anul 1999 și a
fost standardizat de către IETF ( Intern et Engineering Task Force ), în prez ent
ajungându -se până la versiunea TLS 3.0 apărută în 2018. SSL 1.0 nu a fost lansat
niciodată, versiunea 2.0 a fost lansată, dar cu deficien țe majore, acestea fiind
rezolvate de versiunea 3.
1.2 Caracteristici
Caracteri sticile Protocolului TLS sunt:
securitatea criptografică: stabilirea unei conexiuni sigure;
interoperabilitate: programatorii să dezvolte aplicații utilizând TLS care apoi
să poată schimba cu success parametrii criptografici fără a cunoaște codul
celuilalt ;
extensibilitate: prevenirea nevoii de a crea un nou protocol (riscând apariția
unor noi vulnerabilități) și evitarea nevoii de a implementa o nouă librărie
întreagă de securitate;
eficiența: operațiile criptografice au tendința să consume multe resurse, mai
ales cele cu cheie publică; TLS are incorporată o sesiune opțională care reduce
numărul de legături ce trebuiesc să fie stabilite.
Protocolul TLS este conceput pentru a furniza trei servicii esențiale:
criptarea : un mecanism care ascunde ce este trim is de la un utilizator la altul;
autentificare: un mecanism de verificare a valabilității materialului de
identificare furnizat;
integritate: un mecanism care detecteaz ă manipularea mesajelor și falsificarea
acestora.
4
TLS este un protocol aparținând nivel ului sesiune, iar arhitectura acestuia este
formată din mai multe component e, astfel TLS Record Protocol trimite date către
alte 4 subprotocoale super ioare, după cum se poate observa în figura:
Nivelul aplicație
Nivelul sesiune (TLS)
Nivelul transportNivelul prezentare
Nivelul rețea
Nivelul legătură de date
Nivelul Fizic
TLS RecordFragmentareHandshake
ChangeCipherSpec
Alert
ApplicationSubprotocoale
Integritate
Autentificare
Criptare
Figure 1 Pozitia Protocoluui TLS
2. TLS Record Protocol
TLS Record Protocol este un protocol care se ocupă cu încapsularea datelor
de nivel superior , fiind responsabil pentru identificarea tipului de mesaj (handshake,
de alertare sau de date, cu ajutorul câmpului Content Type) și de securizarea și
verificarea integrității fiecărui mesaj. Acesta primește mesajele de la nivelul
aplicație, fragmentează datele (dimensiunea maximă fiind de 16 KO), opțional se
face și compresia (trebuie să fie fără pierderi și nu poate m ări lungimea conținutului
cu mai mult de 1024 octeți ), aplică un MAC ( Message Authentication Code –
etichetă de autentificare), criptează și transmite rezultatul nivelului inferior. La
recepție are loc procesul invers: decriptare, verificare, decompresie, reasamblare,
apoi datele sunt trimise nivelului superior.
OCTET +0 +1 +2 +3
0
1…4
5…n
n…m
m…pTipul
(Content Type )
Padding (doar pentru cifrarile de tip bloc )MACPayloadVersiune Lungime
Figure 2 Structura TLS Record
5
Dacă protocolul TLS primește un tip de înregistrare (record) pe care nu o
înțelege, aceasta va fi ignorată. Înreg istrările conțin informații despre tipul și
lungimea pachetelor, iar aceste informații nu sunt criptate.
////////////////////////////////////////////////
////////////////////////////////////////////////
//////////////////////////
//////////////////////////
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
Date
Fragmentare
Compresie
Adăugare MAC
Adăugare antet
/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/Criptare
Figure 3 Incapsularea datelor
2.1 Starea conexiunii ( Connection States )
Starea conexiunii specific a:
algoritm ul de compr esie;
algoritm ul de criptare : include dimensiunea cheii acestui algoritm și cât de
mult este aceasta secret ă, daca este fo losit u n cifru bloc sau flux, d imensiunea
acestui cifru si dac ă acesta este considerat „de export” ;
algoritmul MAC: utilizat p entru autentificarea mesajelor; include mărimea
hash-ului.
În plus, pentru acești algoritmi sunt cunoscuti si urmatorii parametrii :
secret MAC ;
cheile pentru criptare bloc și IVs in ambele dire cții de citire si scriere;
numărul aleator generat de către client;
numărul aleator generat de către server.
6
3. TLS Handshake Protocol
TLS Handshake Protocol se ocupă cu generarea parametrilor criptografici.
La începutul conversației dintre Client și Server se stabilesc: versiunea de TLS,
algoritmii criptografici, opțional se realizează autentificarea. Fiecare pas necesită
un drum de la client la server, astfel timpul total de transmisie crește.
SYN
ACK
Client Key Exchange
Change Cipher Spec
FinishedClient Hello
Application DataSYN ACK
Server Hello
Certificate
Server Hello Done
Change Cipher Spec
Finished
Application Data112 ms
168 ms56 ms
224 ms28 ms
84 ms
140 ms
196 msEXPEDITOR DESTINATARTLS- 112 ms TCP- 56 ms
Figure 4 Etapele stabilirii unei legaturi sig ure cu TLS
Principiul de funcționare este următorul: clientul trimite un mesaj Client
Hello către server, iar acesta trebuie să îi răspundă cu Server Hello, altfel va fi primit
un mesaj de eroare fatală și conexiunea se va întrerupe. Cele două entități stabilesc
parametrii criptografici și generează valorile aleatore Random care au 32 de octeți
din care 4 reprezintă data curentă. Urmează trimiterea certificatului de către server
alături de mesajul Server Key Exchange; în acest pas, opțional serverul po ate cere
un certificat din partea clientului. Serverul trimite un mesaj Server Hello Done care
arată că s -a încheiat etapa mesajelor de salut. Dacă serverul a cerut certificat din
partea clientului, acum așteaptă răspunsul cu certificatul. Dacă clientul es te mulțumit
cu certificatul primit, acesta inițiază schimbul de chei RSA (Rivest -Shamir –
Adleman ) sau DH (Diffie -Hellman ) folosite pentru stabilirea cheii simetrice, astfel
7
trimite un mesaj Client Key Exchange și unul Change Cipher S pec, urmate imediat
de un mesaj Finished. Serverul procesează cheia primită, verifică integritatea
mesajelor cu ajutorul MAC -ului și returnează mesajul criptat Change Cipher S pec
urmat de Finished către client care decriptează mesajul cu ajutorul cheii simetrice
negociate și verifică MAC -ul. În acest moment handshake -ul se încheie, putând
începe schimbul de date a nivelului aplicație.
Figure 5 Mesaj Server Hello Figure 6 Mesaj Client Hello
Mesajul Client Hello Este trimis de client atunci când se conectează pentru
prima dată la server. Conține lungimea, versiunea, valoarea Random, câmpul
Session ID și câmpul Cipher Suites cu opțiunile criptografice disponibile în ordinea
preferințelor.
Câmpul Session ID al mesajului Client Hello arată dacă a mai fost stabilită o
sesiune pentru acest server în trecut, iar dacă acest câmp nu este gol, atunci serverul
va căuta în memoria cache pentru a restabili conexiunea. Acest câmp nu este criptat,
ceea ce poate creea o breșă de securitate.
Mesajul Server Hello este asemănător cu cel al clientului, fiind trimis când s –
a reușit găsirea unui set de algoritmi acceptați de ambele entități.
Mesajul Hello Request poate fi trimis de către server și solicită renegocierea
unei sesiuni, pe baza ID -ului memorat în cadrul unei sesiuni anterioare.
Mesajul Certificate se trimite atunci când cheia de schimb nu este anonimă,
se folosește pentru autentificare.
Mesajul Server Key Exchange este trimis doa r dacă certificatul nu conține
suficiente date pentru a permite clientului să realizeze schimbul cheii secrete.
Mesajul Server Hello Done indică faptul că s -a încheiat etapă salutului și
poate începe etapa schimbului de chei.
Mesajul Client Key Exchange este trimis de client după certificat (dacă
serverul i -a solicitat unul) și indică finalizarea schimbului de chei.
8
Figure 7 Mesaje Certificate, Server Key Exchange, Server Hello Done
Figure 8 Mesaj Client Key Exchange
4. TLS Change Cipher Spec Protocol
Protocolul CCS este folosit pentru a schimba criptarea folosită de entitățile
care comunică. Este folosit în cadrul procesului de handshake. Protocolul constă
într-un singur mesaj care este criptat și co mprimat prin care îi spune interlocutorului
că expeditorul dorește să modifice setul de chei, care sunt apoi create din informațiile
schimbate prin procesul de handshake.
Figure 9 Mesaj Change Cipher Spec
9
5. TLS Alert Protocol
Manipularea erorilor se face cu ajutorul TLS Alert Protocol astfel: când o
entitate detectează o eroare această trimite un mesaj celeilalte entități. Acest mesaj
este de două tipuri: fatal (iar conexiunea este întreruptă imediat, identificatorii
sesiunii s unt uitați și reconectarea devine imposibilă) și avertisment. Terminarea
unei conexiuni este anunțată la ambele capete, oricare dintre acestea putând solicita
încheierea, iar mesajele ce se trimit după notificare a de închidere sunt ignorate.
Câteva exemple de mesaje de alertare sunt prezentate mai jos:
close_notify – destinatarul este anunțat că expeditorul nu va mai trimite alte
mesaje în cadrul acestei conexiuni;
unexpected_message – un mesaj nepotrivit a fost recepționat; eroare fatală;
bad_record_mac – o înregistrare recepționată are MAC -ul eronat; eroare
fatală;
handshake_failure – indică faptul că expeditorul nu a fost capabil să
nego cieze cu success parametrii de s ecuritate cu opțiu nile disponibile; eroare
fatală;
user_canceled – handshake -ul este anulat, această alertare ar trebui să fie
urmată de un mesaj close_notify ; de obicei este un avertisment;
no_renegotiation – avertisment.
6. Versiunile TLS 1.1, 1.2, 1.3
TLS 1.1 aduce câteva mici îmbunătățiri pe partea de securitate, în special
pentru protecția împotrivă atacurilor CBC (Cipher Block Chaining).
TLS 1.2 aduce îmbunătățiri pe partea de flexibilitate, mai ales pentru
negocierea de algoritmi criptografici.
TLS 1.3 vine cu următoarele diferențe, dar nu exclusiv, față de TLS 1.2:
au fost el iminate suitele Static RSA și Diffie -Hellman ; toate cheile -publice
bazate pe mecanisme de schimbare a cheii oferă acum forward secrecy ( o
caracteristică ce oferă siguranța că nu vor fi compromise cheile sesiunii chiar
dacă cheia privată a serverului devine compromisă );
toate mesajele de handshake după ServerHello sunt acum criptate;
îmbunătățiri criptografice, inclusiv schimbarea RSA Padding cu utilizarea
RSA Probabilistic Signature Scheme .
10
7. Utilizare
TLS a fost inițial folosit în protocoale de transport , cu m este TCP
(Transmission Control Protocol ), dar în prezent este folosit cel mai adesea împreună
cu HTTP ( Hyper Text Transfer Protocol ) formând astfel HTTPS ( -Secure ). Alte
protocoale ce lucrează împreună cu TLS sunt FTP ( File Transfer Protocol ) și SMTP
(Simple Mail Transfer Protocol ).
Figure 10 Mesaj HTTPS
11
Bibliografie:
[1] “RFC 2246 The TLS Protocol Version 1.0”, The Internet Society, 1999 ;
[2] “RFC 43 46 The Transport Layer Security (TLS) Protocol Version 1.1 ”, The
Internet Society, 2006;
[3] “RFC 5246 The Transport Layer Security (TLS) Protocol Version 1.2 ”, The
IETF Trust , 2008;
[4] “RFC 8446 The Transport Layer Security (TLS) Protocol Version 1.3 ”, The
IETF Trust, 2018;
[5] https://www.globalsign.com/en/blog/ssl -vs-tls-difference/ accesat la
15.03.2019 ;
[6] https://hpbn.co/transport -layer -security -tls/ accesat la 20.03.2019 .
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: ACADEMIA TEHNICĂ MILITARĂ “FERDINAND I ” TRANSPORT LA YER SECURITY COORDONATOR: Lt.col. conf. univ. dr. ing. RÎNCU Cristian -Iulian Sd. sg. PUSDREA… [611304] (ID: 611304)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
