Protocolul de distribuire a cheilor
Protocoalele de distribuție a cheilor reprezintă o secvență agreată de acțiuni ale utilizatorului ( protocol criptografic ) pentru a crea un canal de comunicare securizat, care constă în generarea și schimbul de chei de sesiune și autentificarea mesajelor.
Sarcina principală a protocoalelor de distribuție a cheilor este dezvoltarea de către participanți (le vom numi în viitor, ca întotdeauna, Alice și Bob ) o cheie comună. În același timp, atât Bob, cât și Alice trebuie să fie siguri că legătura este cu interlocutorul, și nu cu un intrus sau un figurin. Majoritatea acestor protocoale se bazează pe existența unui centru de încredere (denumit în continuare Trent) și se presupune că Trent alocă o cheie secretă fiecărui utilizator, astfel încât înainte de a începe protocolul, toate cheile sunt deja în utilizatori.
Toate protocoalele de distribuție cheie sunt oarecum împărțite în următoarele categorii (suprapuse):
Protocoale simetrice
Notații criptografice utilizate în protocoalele de autentificare și schimb de chei
| Identificatorii lui Alice ( Alice ), inițiatorul sesiunii |
| Identificatorul lui Bob ( Bob ), partea din care se stabilește sesiunea |
| Identificatorul Trent ( Trent ), o parte intermediară de încredere |
| Cheile publice ale lui Alice, Bob și Trent |
| Cheile secrete ale lui Alice, Bob și Trent |
| Criptarea datelor cu cheia lui Alice sau cheia comună a lui Alice și Trent |
| Criptarea datelor cu cheia lui Bob sau cheia comună a lui Bob și Trent |
| Criptarea datelor cu cheile secrete ale lui Alice, Bob (semnătură digitală) |
| Numărul secvenței sesiunii (pentru a preveni atacurile de reluare) |
| Cheie aleatorie de sesiune care trebuie utilizată pentru criptarea simetrică a datelor |
| Criptarea datelor cu o cheie de sesiune temporară |
| Marcaje temporale adăugate mesajelor de către Alice și, respectiv, Bob |
| Numere aleatoare ( nonce ) care au fost alese de Alice și, respectiv, de Bob |
Articolul principal: Criptosisteme simetrice
Broasca cu gura lata
Protocolul Wide-Mouth Frog este cel mai simplu protocol de gestionare a cheilor. Permite doi abonați să stabilească o cheie de sesiune comună pentru comunicarea securizată între ei [1] . Un centru de încredere ia parte la protocol .
Descrierea protocolului [2]
- Alice vrea să stabilească o cheie de sesiune cu Bob. Ea începe prin a forma:
1. K - cheie aleatoare de sesiune
2. T A - marca temporală
și trimite lui Trent (centru de încredere), adăugându-și numele:
M0 = A, E A (TA , B, K).
- Trent, folosind cheia secretă partajată cu Alice, decriptează mesajul și verifică dacă marca temporală T A și ID-ul lui Bob sunt corecte. Dacă totul este bine, se formează:
TB este un nou marcaj temporal (care poate fi diferit de TA ) și se trimite către Bob
M 1 \u003d E B (T B , A, K).
- Bob primește mesajul, îl decriptează cu cheia partajată cu Trent și verifică marcajul temporal T A și ID-ul lui Alice. Dacă mesajul a trecut testul, atunci Bob împărtășește acum o cheie cu Alice.
Protocolul Needham-Schroeder
Protocolul de cheie partajată Needham-Schroeder este important în primul rând din motive istorice. Acesta a stat la baza multor protocoale de distribuție a cheilor centrului de încredere din 1978. Inclusiv protocoalele Kerberos și Otway-Rees (descrise mai jos) provin din acest protocol.
Acest protocol este un exemplu de protocol care nu depinde de marcajele temporale și, în același timp, oferă generarea și confirmarea cheii.
Descrierea funcționării protocolului Needham-Schroeder
Situația înainte de începerea protocolului
- 3 actori: clienții Alice și Bob care doresc să obțină o cheie pentru a comunica între ei, Trent este un centru de încredere.
- Alice și Bob au cheile secrete E A și, respectiv, E B pentru a comunica cu Trent.
- Alice alege N A , Bob alege N B .
Perioada de funcționare a protocolului
- Deci, Alice începe protocolul, formează un mesaj format din identificatorii ei și ai lui Bob, precum și numărul selectat N A și îl trimite lui Trent.
M0 = A, B, NA .
- După ce a primit un mesaj de la Alice, Trent formează un mesaj în două părți. În prima parte, el pune N A , identificatorul lui Bob, precum și noua cheie K, care este ceea ce Alice și Bob vor să obțină. A doua parte a mesajului conține, de asemenea, noua cheie K și ID-ul lui Alice, dar este criptată cu cheia secretă a lui Trent și Bob E B . Întregul mesaj este criptat cu cheia privată E A a lui Alice și Trent . și trimis la Alice.
M1 = E A (NA , B, K, E B (K, A)).
- Alice decriptează mesajul. Găsind N A în mesaj , ea este convinsă că a vorbit cu Trent. Ea nu poate să citească a doua parte, criptată de E B , și i-o trimite lui Bob.
M2 = E B (K, A).
- Bob primește și decriptează mesajul, scoate o nouă cheie K și formează un mesaj pentru Alice, în care îi spune numărul lui N B , criptat cu noua cheie.
M 3 \u003d E K (N B ).
- Alice primește mesajul, scoate NB , îl schimbă și îl trimite înapoi lui Bob.
M4 = E K (N B - 1) [ 3] .
- Alice și Bob împart cheia K.
Protocolul Kerberos
Protocolul Kerberos este un sistem de autentificare distribuit (autentificare) care permite unui proces (client) care rulează în numele unui utilizator să-și demonstreze identitatea către un server fără a trimite date prin rețea , ceea ce poate permite unui atacator să uzurpare ulterior identitatea unui utilizator. Kerberos asigură integritatea și confidențialitatea datelor schimbate între client și server, după cum este necesar.
Kerberos a fost dezvoltat la mijlocul anilor 80 de proiectul Athena de la MIT .
Deoarece utilizarea Kerberos s-a răspândit în diferite medii, au devenit necesare modificări pentru a sprijini noi modele de utilizare. Pentru a satisface aceste nevoi, dezvoltarea Kerberos versiunea 5 ( Kerberos V5 ) a început în 1989 . În timp ce versiunea 4 încă rulează pe multe site-uri, versiunea 5 este considerată standardul Kerberos [4] .
Descrierea postului Kerberos
Situația înainte de începerea protocolului
- 3 actori: Alice este un client, Bob este un server căruia Alice vrea să-și demonstreze identitatea, Trent este un centru de încredere.
- Alice și Bob au cheile secrete E A și, respectiv, E B pentru a comunica cu Trent.
- Alice alege un număr N A și setează, de asemenea, marcajul temporal T A în funcție de ceasul ei.
- t este perioada de valabilitate (durata de viata) aleasa de Trent.
Perioada de funcționare a protocolului
- Alice, începând protocolul, îi trimite lui Trent 3 lucruri în text simplu: identificatorii ei și ai lui Bob, precum și numărul ales N A .
M0 = A, B, NA .
- Trent, după ce a primit un mesaj de la Alice, generează o cheie K pentru comunicare ulterioară între Alice și Bob și îi trimite înapoi un mesaj în două părți lui Alice. Prima parte este criptată cu cheia privată a lui Alice și conține K, N A , perioada de valabilitate t și ID-ul lui Bob. A doua parte este necunoscută pentru Alice - este criptată cu cheia secretă a lui Bob și conține K, t și identificatorul lui Alice.
M1 = E A (K, NA , t, B) , E B (K, A, t).
- Alice decriptează prima parte a mesajului primit de la Trent, primește cheia K și creează un nou pachet pentru a-l trimite lui Bob, care include identificatorul lui Alice, t și marca temporală TA . După aceea, Alice îi trimite lui Bob un mesaj în două părți: prima parte este cea care a venit de la Trent, iar a doua parte este creată de Alice.
M2 = E B (K, A, t), E K (A, T A , t).
- Bob primește mesajul. După ce a decriptat prima parte, scoate o nouă cheie K și apoi, folosind-o, decriptează a doua parte. Pentru a-i confirma lui Alice că cunoaște noua cheie K, Bob îi trimite un mesaj cu un marcaj de timp criptat cu noua cheie K.
M 3 \u003d E K (TA ) .
- Alice se asigură că Bob este Bob. Următorul raționament se aplică aici: Bob ar putea decripta un mesaj de la Alice cu o marca temporală doar dacă știa cheia K. Și ar putea cunoaște cheia K doar dacă cunoștea E B . Și din moment ce aceasta este cheia secretă a lui Bob și Trent, persoana care i-a trimis mesajul lui Alice este Bob.
- Alice și Bob sunt gata să schimbe mesaje folosind tasta K [5] .
Adăugiri
Biletul Kerberos
În literatura de specialitate, mesajul E B (K, A, t) este adesea numit bilet. De fiecare dată când Alice imaginară își dovedește identitatea lui Bob imaginar (la urma urmei, numărul de utilizatori din rețea poate fi mult mai mare de 2), ea se bazează pe Trent ( centrul de încredere ) pentru a genera o nouă cheie secretă și a o înmâna în siguranță. ambilor utilizatori. Noua cheie secretă K se numește cheia de sesiune și este Tichetul Kerberos care este folosit pentru a-i livra lui Bob. Biletul Kerberos este un certificat emis de o autoritate de încredere și criptat cu cheia publică E B , Bob și Trent. Printre alte informații, biletul conține o cheie aleatorie de sesiune care va fi folosită pentru autentificarea Alice de către Bob, numele participantului (în acest caz Alice) căruia i-a fost emisă cheia de sesiune și o dată de expirare după care cheia de sesiune este nu mai este valabil. Acest certificat (Kerberos Ticket) nu este trimis direct lui Bob, ci este trimis clientului (Alice), care îl trimite lui Bob pentru verificare ca parte a cererii. Deoarece certificatul este criptat pe server cu o cheie cunoscută doar de Trent și Bob, nu este posibilă schimbarea certificatului (Kerberos Ticket) pentru client (Alice) [4] .
Protocolul Otway-Riis
Protocolul Otway - Rees este un protocol de cheie simetrică care vă permite să distribuiți cheile fără a utiliza marcaje temporale .
Din nou, înainte de a începe protocolul, avem:
- Centrul de încredere Trent
- 2 utilizatori: Alice și Bob care au primit E A și E B
- Alice alege N și N A , Bob alege N B.
Descrierea protocolului [6]
- Alice formează un mesaj pentru Bob, în care îi trimite N, A, B în text clar, precum și același N, A, B cu N A , criptat cu cheia E A partajată cu Trent .
M 0 \u003d N, A, B, E A (N A , N, A, B)
- Bob primește un mesaj, a cărui parte a doua este complet indescifrabilă pentru el, îi adaugă încă o linie, pe care o criptează cu cheia E B și o trimite lui Trent.
M 1 \u003d N, A, B, E A (N A , N, A, B), E B (N B , N, A, B).
- Trent, cunoscând ambele chei, poate decripta mesajele lui Alice și Bob. Acum scopul lui este să confirme că el este Trent și să formeze cheia K pentru comunicare ulterioară între Alice și Bob.
Trent generează o cheie K și îi trimite un mesaj lui Bob.
M 2 \u003d E A (N A , K), E B (N B , K).
- Prima parte, criptată cu cheia lui Alice, Bob nu poate decripta deloc și decriptează calm a doua parte și, numărând NB , se asigură că mesajul a venit de la Trent. Apoi primește cheia generată K. Acum Bob este gata să comunice cu Alice, rămâne doar să-i predea cheia. Bob trimite prima parte a unui mesaj de la Trent către Alice.
M 3 \u003d E A (N A , K).
- Alice primește mesajul, verifică dacă este de la Trent (NA ) și citește cheia K.
- Alice și Bob sunt gata să comunice.
Care este rezultatul
Cu grație primim 4 mesaje:
- Bob este sigur că a vorbit cu Trent: Bob i-a trimis numărul N B criptat cu cheia secretă E B și a primit înapoi un alt mesaj care conține același număr și criptat cu aceeași cheie.
- Alice, la rândul ei, este sigură și că Bob a vorbit cu Trent, pentru că și-a trimis numărul N A , criptat cu cheia E A , și a primit înapoi un alt mesaj, dar care conținea și N A și E A criptat .
- Alice și Bob au o cheie comună K.
Problemă
- Alice nu are de unde să fie sigură că Bob este Bob. Ea este sigură doar că comunică cu o anumită persoană care poate merge la Trent. Pentru a rezolva această problemă la pasul 4, Bob îi poate trimite Alice nu numai E A (NA , K), ci și, de exemplu, E K (N A , N B ), demonstrând astfel că el cunoaște cheia K. Și Alice la rândul său, poate răspunde lui Bob E K (N B ), demonstrând totodată că cunoaște cheia K [5] .
Protocoale asimetrice
Articolul principal: Criptosistem cu cheie publică
Protocolul Needham-Schroeder
Protocolul de cheie publică Needham-Schroeder a fost publicat în același mod ca și vărul său simetric în 1978. Acesta este un model utilizat pe scară largă în studiul metodelor formale de verificare a protocoalelor criptografice. Această popularitate provine, evident, de la una dintre cele mai de succes povești din acest domeniu - în 1994, protocolul a suferit un atac de reluare cu succes la 16 ani de la publicare. Atacul a fost efectuat de David G. Lowe , un informatician canadian [ 7 ] .
Pe site-ul web al Institutului Politehnic din Worcester , puteți găsi articolul original publicat de David G. Lowe [8]
Acest protocol asigură transferul reciproc al cheilor kA și kB , precum și autentificarea reciprocă.
Descrierea modului în care funcționează protocolul
Situația înainte de începerea lucrului
- Alice și Bob au proceduri publice de codificare P A și P B .
- Alice și Bob vor să se identifice reciproc cu trei mesaje și folosind chei publice.
Perioada de funcționare a protocolului
- Alice își alege partea ei din cheie, k A , și îi formează un mesaj lui Bob, în care își pune identificatorul și k A . Întregul mesaj este criptat cu cheia publică P B a lui Bob și trimis acestuia.
M0 = P B (A, kA ) .
- Bob a decriptat mesajul și acum știe că Alice vrea să vorbească cu el și vrea să folosească cheia k A pentru a comunica . Bob își alege partea sa din cheie, k B , și îi trimite Alicei un mesaj format din două chei k A și k B , criptate cu cheia publică a lui Alice. Astfel, Bob îi confirmă Alicei că a primit o parte din cheia ei K A .
M1 = PA ( kA , kB ) .
- Acum este rândul lui Alice să-i demonstreze lui Bob că este Alice. Pentru a face acest lucru, trebuie să poată decripta mesajele criptate cu cheia P A . Ceea ce face bine este că decriptează mesajul de la Bob, ia k A de acolo și îi trimite lui Bob un mesaj care conține cheia lui k B .
M 2 \u003d P B (k B ).
- Ca rezultat, în stadiul de mesaj M 1 , Alice este sigură că Bob este Bob, iar Bob știe întreaga cheie. Și la etapa de mesaj M 2 , Bob este sigur că a vorbit cu Alice, iar ea știe toată cheia. [5]
Cele mai cunoscute atacuri asupra protocoalelor criptografice [9]
Înlocuire
Înlocuire (ing. Uzurparea identității) - o încercare de a înlocui un utilizator cu altul. Intrusul, vorbind în numele uneia dintre părți și imitând complet acțiunile acesteia, primește în răspuns mesaje de un anumit format, necesare pentru a falsifica pașii individuali ai protocolului.
Contramăsurile sunt:
- păstrarea secretă a informațiilor inamice care determină algoritmul de identificare;
- utilizarea diferitelor formate de mesaj transmise la diferite etape ale protocolului;
- introducerea în ele a mărcilor speciale de identificare și a numerelor de mesaje. În protocoalele care utilizează o terță parte, sunt posibile atacuri bazate pe înlocuirea unui server de încredere.
De exemplu, una dintre părțile care are o relație de încredere cu serverul acționează în numele său, își înlocuiește traficul de schimb cu alte părți și, ca urmare, are posibilitatea de a dezvălui valorile cheilor generate de centru.
Atacul repetat
Atacul de reluare - reutilizarea unui mesaj sau a unei părți din acesta transmise anterior în sesiunea curentă sau anterioară în sesiunea curentă a protocolului
.
De exemplu, retransmiterea informațiilor dintr-un protocol de autentificare efectuat anterior poate avea ca rezultat o reidentificare cu succes a aceluiași utilizator sau a unui alt utilizator.
În protocoalele de transfer de chei, acest atac este adesea folosit pentru a reimpone o cheie de sesiune utilizată anterior - un atac de prospețime.
Contramăsurile constau în asigurarea integrității sesiunii și a imposibilității inserării în ea a unor mesaje inutile. Pentru a face acest lucru, introduceți marcaje temporale sau numere aleatorii în mesajele transmise , precum și identificatorii de partid.
Atac combinat
Un atac intercalat este o înlocuire sau o altă metodă de înșelăciune care utilizează o combinație de date din protocoale executate anterior, inclusiv protocoale impuse anterior de inamic.
Metoda de contramăsuri este de a asigura integritatea sesiunilor de protocol și a mesajelor individuale.
Note
- ↑ Pablo Giambiagi. Secretul pentru implementările mobile ale protocoalelor de securitate. - 2001. - S. 36 . — ISSN 1403-5286 .
- ↑ John Kelsey, Bruce Schneier, David Wagner. Interacțiunile protocolului și atacul protocolului ales. - 1997. - S. 8 . — ISSN 0302-9743 .
- ↑ Alexey Lisitsa. Protocolul de autentificare Needham-Schroeder și analiza sa formală . Data accesului: 15 decembrie 2014. Arhivat din original pe 7 martie 2016. (nedefinit)
- ↑ 1 2 B. Clifford Neuman și Theodore Ts'o. [ http://www.isi.edu/div7/publication_files/kerberos_an_auth.htm Kerberos: un serviciu de autentificare pentru rețele de calculatoare] (link mort) . Revista IEEE Communications (1994). Consultat la 15 decembrie 2014. Arhivat din original la 26 mai 2013. (nedefinit)
- ↑ 1 2 3 Serghei Nikolenko. Chei și protocoale pentru ele (toamna 2009). Data accesului: 14 decembrie 2014. Arhivat din original pe 14 decembrie 2014. (nedefinit)
- ↑ Dr. Geoff Hamilton. Protocoale de schimb de chei și autentificare (link indisponibil) . Data accesului: 14 decembrie 2014. Arhivat din original pe 14 decembrie 2014. (nedefinit)
- ↑ Olivier Michel. O analiză a protocolului de cheie publică Needham-Schroeder cu MGS . Data accesului: 15 decembrie 2014. Arhivat din original pe 8 martie 2016. (nedefinit)
- ↑ Gavin Lowe. Un atac asupra protocolului de autentificare cu cheie publică Needham-Schroeder (1995). Consultat la 15 decembrie 2014. Arhivat din original pe 16 decembrie 2014. (nedefinit)
- ↑ A.V. Cheryomushkin. Protocoale criptografice: caracteristici cheie și vulnerabilități (noiembrie 2009). (nedefinit)
Literatură
- Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone. Manual de Criptografie Aplicată. - 1996. - S. 489-534. — 816 p. - ISBN 0-8493-8523-7 .
Link -uri