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 | |
Perechile de chei publice și, respectiv, private pre-generate de Alice, Bob și Trent | |
Perechea de chei publică/privată de sesiune aleatorie pentru a fi utilizată pentru criptarea asimetrică | |
Semnarea datelor folosind cheia privată a lui Alice, Bob, partea intermediară ( Trent ), sau respectiv o cheie privată dintr-o pereche aleatorie | |
Criptarea asimetrică a datelor folosind cheia publică a lui Alice, Bob, o parte intermediară ( Trent ), sau respectiv o cheie publică dintr-o pereche aleatorie |
Protocolul Denning-Sacco [1] este un nume comun pentru protocoalele de distribuție a cheilor de încredere simetrice și asimetrice .
În 1981, angajații de la Universitatea Purdue Dorothy E. Denning și Giovanni Maria Sacco au prezentat un atac asupra protocolului Needham-Schroeder și au propus propria modificare a protocolului pe baza utilizării etichetelor de timp [2] .
Cu criptarea simetrică , se presupune că cheia secretă aparținând clientului este cunoscută numai de el și de o terță parte de încredere - serverul de autentificare. În timpul execuției protocolului, clienții (Alice, Bob) primesc de la serverul de autentificare (Trent) o nouă cheie de sesiune secretă pentru a cripta mesajele reciproce în sesiunea curentă de comunicare. Luați în considerare implementarea protocolului Denning-Sacco cu o cheie simetrică [3] :
Primul mesaj de la Alice către Trent conține identificatorii participanților la schimbul viitor - Alice și Bob. Acest mesaj este trimis în text clar:
Trent generează o cheie de sesiune și îi trimite lui Alice un mesaj criptat care include ID-ul lui Bob, cheia de sesiune, marca temporală și un pachet care acționează ca certificatul lui Alice:
Alice apoi decriptează mesajul lui Trent și îi trimite certificatul lui Bob :
La sfârșitul protocolului, Alice și Bob au o cheie de sesiune partajată .
Alice și Bob pot verifica dacă mesajele pe care le primesc sunt valide verificând marcajele de timp .
În 1997, Gavin Lowe a prezentat un atac asupra protocolului [4] :
Acțiunile atacatorului îl fac pe Bob să decidă că Alice vrea să stabilească o nouă legătură cu el.
În aceeași lucrare, Low a propus o modificare a protocolului care prevede autentificarea lui Alice la Bob [4] :
În cadrul protocolului, Bob nu confirmă în niciun fel primirea unei noi chei de sesiune și capacitatea de a opera cu aceasta. Mesajul de la Alice la a 5-a pasă ar fi putut fi interceptat sau modificat de un atacator. Dar Alice nu mai așteaptă niciun răspuns de la Bob și este sigură că protocolul a fost finalizat cu succes.
O versiune asimetrică a protocolului Denning-Sacco. Serverul de autentificare deține cheile publice ale tuturor clienților. Luați în considerare implementarea protocolului Denning-Sacco cu o cheie publică [5] :
Primul mesaj de la Alice către Trent conține identificatorii participanților la schimbul viitor - Alice și Bob. Acest mesaj este trimis în text clar:
Ca răspuns, Trent îi trimite Alicei certificatele de cheie publică semnate ale lui Alice și Bob. În plus, marcajele de timp sunt adăugate la fiecare certificat:
Alice generează o nouă cheie de sesiune și o trimite lui Bob împreună cu o marca temporală , semnând-o cu cheia ei și criptând-o cu cheia publică a lui Bob, împreună cu ambele mesaje primite de la Trent:
Bob verifică semnătura CA pe certificat , decriptează cheia de sesiune și verifică semnătura lui Alice.
Abadi și Needham au descris un atac asupra protocolului [6] în care Bob, după ce a primit un mesaj de la Alice, își poate uzurpa identitatea într-o sesiune cu un alt utilizator. Absența identificatorului lui Bob în mesajul de la Alice duce la faptul că Bob poate folosi datele primite de la Alice pentru a uzurpa identitatea lui Alice într-o nouă sesiune cu o terță parte (Clara).
Clara verifică cu succes semnătura CA de pe certificat , decriptează cheia de sesiune și verifică semnătura lui Alice. Drept urmare, Clara este sigură că a stabilit o sesiune de comunicare cu Alice, deoarece toți pașii necesari ai protocolului au fost executați corect și toate mesajele au fost corecte.
Protocoale de autentificare și schimb de chei | |
---|---|
Cu algoritmi simetrici | |
Cu algoritmi simetrici si asimetrici | |
Protocoale și servicii utilizate pe Internet |