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 Wu-Lam este un protocol de autentificare și schimb de chei. Ca și în cazul protocolului DASS , partea intermediară - Trent - menține o bază de date cu toate cheile.
Protocolul a fost descris de Thomas Wu și Simon Lam în 1992 1]2]
Alice îi trimite actul de identitate lui Bob:
Bob îi trimite un număr aleatoriu lui Alice:
Alice îi trimite acest număr lui Bob, criptându-l cu cheia comună a ei și a lui Trent:
Bob îi trimite lui Trent un mesaj criptat pe cheia lui și a lui Trent, care conține identificatorul Alicei și mesajul ei primit de Bob la a treia trecere:
Trent decriptează mesajul cu cheia lui Alice, îl criptează cu cheia lui Bob și îi trimite:
Alice îi trimite un mesaj lui Trent cu ID-ul și lui Bob:
Trent îi trimite lui Alice cheia publică a lui Bob, semnând-o cu cheia sa privată:
Alice verifică semnătura, apoi îi trimite lui Bob ID-ul și un număr aleatoriu, criptat cu cheia publică a lui Bob
Bob îi trimite ID-ul și ID-ul lui Alice lui Trent, precum și numărul aleatoriu al lui Alice criptat cu cheia publică a lui Trent:
Trent îi trimite două mesaje lui Bob. Prima conține cheia publică a lui Alice semnată cu cheia lui Trent. Al doilea conține numărul aleatoriu al lui Alice, o cheie aleatoare de sesiune și ID-urile lui Bob și Alice. Al doilea mesaj este semnat cu cheia lui Trent și criptat cu cheia publică a lui Bob:
Bob autentifică mesajele folosind cheia publică a lui Trent. După aceea, îi trimite Alicei a doua parte a mesajului de la Trent (împreună cu semnătura sa), completând-o cu propriul său număr aleatoriu și criptând-o cu cheia publică a lui Alice:
Alice verifică semnătura lui Trent și se potrivește cu numărul ei aleatoriu. După aceea, îi trimite lui Bob numărul aleatoriu, criptându-l cu cheia de sesiune:
Bob decodifică numărul și se asigură că nu s-a schimbat [3] .
Acest protocol, bazat pe criptografia simetrică, a fost descris de Wu și Lam în 1994 [4] .
Alice generează un număr aleatoriu și îi trimite ID-ul și acest număr lui Bob:
Bob generează, de asemenea, un număr aleatoriu și îi trimite Alicei ID-ul și acest număr:
Alice îi trimite lui Bob, ea și ID-urile sale și numere aleatorii, criptând mesajul cu cheia partajată a ei și a lui Trent:
Bob îi trimite două mesaje lui Trent. Primul este mesajul primit de la Alice. A doua este aceeași informație ca și în mesajul de la Alice (atât identificatori, cât și numere aleatorii), dar criptate pe cheia lui cu Trent:
Trent decriptează mesajele de la Bob, află ID-urile și numerele aleatorii de participanți, apoi generează o cheie de sesiune și îi trimite două mesaje lui Bob. Primul mesaj conține ID-ul lui Bob, ambele numere aleatoare și cheia de sesiune criptată cu cheia lui Alice. Al doilea mesaj conține ID-ul lui Alice, atât numere aleatoare, cât și cheia de sesiune, criptate cu cheia lui Bob:
Bob îi trimite două mesaje Alicei. Primul este primul mesaj primit la trecerea anterioară de la Trent. Al doilea este atât numere aleatoare ( și ) criptate cu cheia de sesiune:
Alice decriptează primul mesaj, primește cheia , decriptează al doilea mesaj și îi trimite lui Bob numărul aleatoriu:
Există un atac de sesiune paralelă asupra versiunii simetrice a protocolului Wu-Lam, descrisă de Abadie și Needham [5] [6] .
Mallory este un utilizator al sistemului și împărtășește o cheie cu Trent. De asemenea, trebuie să blocheze toate mesajele trimise lui Alice, adică Mallory trebuie să fie un criptoanalist activ.
Mallory începe două sesiuni - una în numele Alicei și una în numele ei - și îi trimite două mesaje lui Bob:
Bob crede că Alice și Mallory vor să-l contacteze și trimite fiecăruia propriul său număr aleatoriu:
Mallory ignoră numărul ei aleatoriu și îi trimite același mesaj lui Bob în ambele sesiuni - un număr aleatoriu destinat lui Alice, criptat cu cheia partajată a lui Mallory și Trent :
Bob, urmând instrucțiunile protocolului și necomparând mesajele între ele, le trimite lui Trent, adăugând identificatori și criptându-le cu cheia lor comună :
Trent în fiecare sesiune decriptează mesajul folosind cheia participantului al cărui ID l-a primit. Deoarece în prima sesiune a primit ID-ul lui Alice, iar numărul a fost criptat pe cheia lui Mallory , decriptarea va avea ca rezultat un număr diferit ("gunoi").
Bob vede într-unul dintre ultimele mesaje un număr aleatoriu pe care l-a trimis lui Alice (cum crede el), iar în celălalt - gunoi. Din această cauză, Bob crede că a stabilit o legătură cu Alice, chiar dacă Alice nu a participat deloc la mesaje.
Secvența sesiunilor în acest caz nu este importantă - atacul se va dezvolta în același mod.
Abadie și Needham au propus o apărare împotriva acestui atac: Trent ar trebui să includă identificatorul lui Alice în mesajul de a 5-a trecere. În acest caz, Bob, după ce va primi identificatorul lui Mallory și numărul aleatoriu (pe care l-a trimis lui Alice), va renunța la un astfel de mesaj, iar atacul va eșua.
Această versiune a protocolului este atacată și folosind o sesiune paralelă [7] .
Lasă-l pe Alice să inițieze o cerere de apel către Mallory. Apoi Mallory poate iniția o sesiune de comunicare paralelă cu Alice, poate stabili o conexiune în prima sesiune și amână a doua. După aceea, după ceva timp (chiar și după încheierea primei sesiuni), continuați stabilirea unei conexiuni în a doua sesiune și forțați-o pe Alice să accepte vechea cheie de sesiune (cea care a fost folosită în prima sesiune). De asemenea, trebuie să blocheze mesajele trimise de Trent către Alice, ceea ce înseamnă că Mallory trebuie să fie un criptoanalist activ.
Alice începe o sesiune de comunicare cu Mallory. Mallory răspunde prin începerea unei sesiuni cu Alice, trimițându-i același număr aleatoriu pe care l-a primit:
După aceea, Mallory așteaptă ca Alice să răspundă la mesajul ei din a doua sesiune, extrage un număr aleatoriu din acesta și îl introduce în mesajul către Alice în prima sesiune.
Alice și Mallory părăsesc apoi prima sesiune de protocol în mod normal:
După un timp, Mallory continuă să stabilească o a doua sesiune de comunicare:
Alice trimite un mesaj serverului, pe care Mallory îl interceptează și îl blochează.
Mallory, în numele serverului, îi trimite lui Alice un mesaj cu vechea cheie de sesiune, pur și simplu schimbând părți ale mesajului din a 5-a trecere a primei sesiuni.
Alice și Mallory completează apoi conexiunea.
Protocoale de autentificare și schimb de chei | |
---|---|
Cu algoritmi simetrici | |
Cu algoritmi simetrici si asimetrici | |
Protocoale și servicii utilizate pe Internet |