Principiul de funcționare ssl
Cum SSL
SSL foloseste acest mediu cu mai multe straturi, care asigură securitatea schimbului de informații. Confidențialitatea comunicării se stabilește datorită faptului că o conexiune securizată este deschisă doar utilizatorilor vizați.
SSL media multistrat
SSL Secure este situat între cele două protocoale: un protocol care utilizează un program client (HTTP, FTP, IMAP, LDAP, Telnet, etc.), și protocolul de transport TCP / IP. Crearea unui tip de amortizor pe ambele părți, acesta protejează și transmite datele la stratul de transport. Grație muncii principiului multi-strat, protocolul SSL poate suporta mai multe protocoale diferite, clienti software.
SSL de lucru poate fi împărțit în două niveluri. Primul nivel - de confirmare a conexiunii de protocol strat (Protocolul Handshake Layer). Se compune din trei subprotocol: confirmați protocolul de conexiune (Protocolul Handshake), parametrii de protocol schimba cifru (Modificare Cifru Spec Protocol) și un avertisment (protocol de alertă). Al doilea nivel - acest protocol strat de înregistrare. Figura 1 prezintă schematic nivelurile stratului SSL
Nivelul de confirmare a conexiunii constă din trei subprotocol:
Conexiune 1.Podtverzhdenie. Acest subprotocol folosit pentru a negocia datele sesiunii între client și server. Datele de sesiune este format din:
* ID de sesiune;
* Certificatele de ambele părți;
* Parametrii algoritmului de criptare care urmează să fie utilizate;
* Algoritmul de compresie a datelor care urmează să fie utilizate;
* „Secret comun“, aplicat pentru a crea cheile; cheie publică
2. Modificați setările de criptare. Acest subprotocol este folosit pentru a modifica datele cheie (keyingmaterial), care este utilizat pentru criptarea de date între client și server. Date cheie - sunt informații care sunt utilizate pentru a genera chei de criptare. Subprotocol schimba setările de criptare constă într-o singur mesaj. În acest mesaj, serverul spune că expeditorul dorește să schimbe setul de chei. Mai mult, cheia este calculată din informațiile schimbate între părți la nivelul de confirmare a conexiunii sub-protocol.
3. Prevenirea. Mesajul de avertizare indică starea părților sau a schimba o posibilă eroare. Există mai multe mesaje de avertizare care să informeze părțile în timpul funcționării normale, iar atunci când apar erori. De regulă, un avertisment este trimis atunci când conexiunea este închisă și a primit un mesaj greșit, mesajul nu poate fi decriptate sau utilizatorul anulează operația.
Subprotocol confirmă conexiunea asigură punerea în aplicare a multor funcții de securitate. Acesta produce un șir de schimb de date, care, la rândul său, începe să se autentifice părțile și convin asupra criptare, hashing și compresie algoritmi.
Autentificarea participanților
Pentru a determina autenticitatea participanților de schimb de date, confirmă protocolul de conexiune utilizează standardul de certificat X.509. Aceasta este o dovadă de o parte, deoarece ajuta confirma autenticitatea celeilalte părți care deține certificatul și cheia privată. Certificat - o metodă digitală de identificare care produce autoritatea de certificare. Certificatul conține informații privind identitatea, perioada de valabilitate, o cheie publică, numărul de serie, precum și semnătura digitală a emitentului.
Centrul de certificare - o terță parte, care este de încredere de ambele părți în mod implicit. Când încercați să vă conectați la modul de sesiune SSL, centrul de certificare verifică inițiator (de obicei, acest rol este jucat de un utilizator, computerul client) și apoi emite un certificat. Dacă este necesar, actualizați centrul de certificare sau a confisca certificate. Autentificarea se realizează conform schemei:
* Cu condiția ca certificatul client-server;
* Computerul client încearcă să se potrivească emitentului certificatului serverului din lista centrelor de certificare de încredere;
* În cazul în care emitentul certificatului - încredere în centrul de certificare, clientul comunica, iar acest centru și se verifică dacă certificatul este real și nu modificat;
* După verificarea certificatului de la centrul de certificare, clientul primește un certificat ca dovadă a identității serverului.
criptarea datelor
Există două moduri de bază de criptare a datelor: cheie simetrică (de asemenea, numit un „cheie secret comun“) și chei asimetrice (al doilea numele de „cheie publică“ sau „cu circuit deschis, cheia secretă“). SSL utilizează ambele chei simetrice și asimetrice pentru criptarea datelor.
SSL-cheie - sunt datele criptate, care sunt utilizate pentru determinarea schemei de criptare în timpul sesiunii. Cheia este mai lungă, cu atât mai greu este sa se crape. Ca o regulă, algoritmi de chei asimetrice sunt mai rezistente, este practic imposibil să se crape.
Simetric cheie. Când criptați o cheie simetrică, folosiți aceeași cheie pentru criptarea datelor. În cazul în care cele două părți doresc să facă schimb de mesaje criptate într-un mod sigur, ambele părți trebuie să aibă aceeași cheie simetrică. Criptarea este de obicei cheie simetrică utilizată pentru a cripta cantități mari de date, deoarece acest proces este mai rapid decât de criptare asimetrică. (- Data Encryption Standard Data Encryption Standard), 3-DES (triplu DES), RC2, RC4, DES și AES algoritmi sunt utilizate în mod obișnuit (Advanced Encryption Standard - standard de criptare moderne).
cheie asimetrica. Criptarea folosind o cheie asimetrică (publică) utilizează o pereche de chei, ambele din care au fost obținute, având un complex de calcule matematice. Una dintre cheile este utilizat ca, de obicei, Centrul de certificare publică deschisă cheia publică în proprietarul certificatului (de obicei, acest lucru este titlul (subiect)). Cheia privată este păstrată secretă și niciodată nu a făcut okryvaetsya. Aceste chei funcționează în perechi, o cheie este utilizată pentru a porni funcțiile a doua cheie opusă. Deci, în cazul în care cheia publică este folosită pentru a cripta datele, decripta-le cheia secretă numai. În cazul în care datele sunt criptate cu o cheie secretă, cheia publică este să-l descifreze. Această relație face posibilă, cu ajutorul unui sistem de criptare cu cheie publica, de a face două lucruri importante. În primul rând, orice utilizator poate obține cheia publică la destinație și să o folosească pentru a cripta date, care pot sa descifreze doar un utilizator care are o cheie secretă. În al doilea rând, în cazul în care antetul criptează datele folosind o cheie privată, oricine poate decripta datele folosind cheia publică corespunzătoare. Acesta este fundamentul pentru semnături digitale. Cel mai frecvent algoritm care este utilizat pentru criptarea cu chei asimetrice - RSA (numit după dezvoltatorii Rivest, Shamir, Adleman).
SSL utilizează criptarea cheii publice, în scopul de a confirma identitatea server la client, și vice-versa. criptare cu cheie publică este, de asemenea, utilizat pentru a determina cheia de sesiune. cheie de sesiune este utilizat de algoritmi simetrice pentru a cripta cantități mari de date. Acesta combină o criptare asimetrică (pentru autentificare) și criptare simetrică rapidă a datelor în vrac (care nu are nevoie de resurse de calcul mari și consumatoare de timp).
hashing
În timpul confirmării de conectare este de acord bine și algoritmul hash. Funcția hash - o funcție matematică într-o direcție care preia ca intrare un mesaj de lungime arbitrară și calculează de la un șir de caractere de lungime fixă. Valoarea Hash servește ca o marcă de identificare, „amprenta de posturi.“ Ca amprentele digitale sunt unice pentru fiecare persoană, valorile hash sunt unice, de asemenea. În plus, ca o amprentă digitală este semnificativ mai mică decât omul însuși, iar valoarea hash este mult mai mică decât mesajul original. Hashing este utilizat pentru a asigura integritatea datelor. Cele mai populare algoritmi hash sunt MD5 (Message Digest 5 - un rezumat al mesajului versiunea 5) și SHA-1 (Standard Hash Algoritm - algoritm hash standard). MD5 produce o valoare hash de 128 de biți, și SHA-1 produce 160 biți valoare hash. Există, de asemenea, un nou, algoritmi hashing mai robuste: Whirpool, SHA-512, SHA-384, Haval, Tiger (2).
Rezultatul algoritmului de distribuire este valoarea care este folosită pentru a verifica integritatea datelor transmise. Această valoare este creată folosind fie MAC sau HMAC. MAC - Mesaj Cod de autentificare - punctele de control cod. Acesta utilizează o funcție de mapare, și furnizează datele ca valoare-dimensiune fixă, și apoi - hashes mesajul în sine. MAC asigură faptul că datele nu au fost modificate în timpul transmisiei. Diferența dintre MAC și semnătura digitală este semnătura digitală este, de asemenea, o modalitate de a te autentifica. SSL utilizează un MAC.
HMAC - trunchiată Mesaj Cod de autentificare - trunchiată mesaje cod de verificare. HMAC este similar cu MAC, dar folosește un algoritm hash cu cheia secretă partajată. cheie secret comun este atașat la datele care sunt trunchiată. Acesta vă permite să hash mai sigur, pentru că ambele părți trebuie să aibă aceeași cheie secretă pentru a confirma autenticitatea datelor. HMAC este folosit numai protocolul TLC.
Nivelul de înregistrare
Protocolul privind nivelul stratului de înregistrare primește datele criptate din programul client și trece-l la stratul de transport. Protocolul de înregistrare ia datele sunt împărțite în blocuri de o dimensiune care este algoritmul de criptare adecvat utilizează MAC (sau HMAC) criptează (decriptează) de date și apoi. Acesta utilizează informațiile care au fost consecvente în timp confirmarea datelor de protocol. În unele cazuri, la acest nivel trece de compresie (decompresie) de date.