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 DASS ( Distributed Authentication Security Service ) este un protocol asimetric de autentificare și distribuire a cheilor de sesiune care utilizează o parte intermediară de încredere.
Protocolul DASS a făcut parte din Serviciul de autentificare distribuită DASS dezvoltat de Digital Equipment Corporation și descris în RFC 1507 [1] în septembrie 1993.
În protocolul DASS, similar cu protocoalele Wide-Mouth Frog și Denning-Sacco , inițiatorul (Alice) generează atât o nouă cheie de sesiune, cât și, pentru fiecare sesiune de protocol, o nouă pereche de chei public/privat de expeditor. Autoritatea de încredere (Trent) este folosită ca depozit pentru certificatele de cheie publică ale participanților. Dar spre deosebire de Denning - Sacco, ambii participanți apelează la centrul de încredere [2] .
Alice îi trimite un mesaj lui Trent cerându-i cheia publică a lui Bob
Trent trimite cheia publică a lui Bob, semnând-o cu cheia sa privată.
Alice verifică datele folosind cheia publică a lui Trent, cunoscută de ea în prealabil, după care generează o cheie de sesiune , o pereche de chei de sesiune și îi trimite un set de mesaje lui Bob, inclusiv un marcaj temporal și durata de viață a cheii , criptând unele dintre ele, semnând unele:
Bob îi trimite o cerere lui Trent pentru cheia publică a lui Alice
Trent trimite cheia publică a lui Alice, semnând-o cu cheia sa privată.
Folosind datele din mesajele lui Alice și Trent, Bob verifică semnăturile lui Alice, extrage cheia publică temporară , extrage cheia de sesiune (verifică și semnătura folosind ) și decriptează asigurându-se că folosește mesajul curent și nu o reluare.
Dacă este necesar, protocolul poate fi continuat, oferind identificarea reciprocă a părților:
Alice decriptează marca temporală și se asigură că a primit mesajul curent [3] .
Descrierea protocolului urmează principiul APTC, care elimină diferențele în structurile sistemului de tranziție, structura evenimentelor etc. și ia în considerare echivalentele lor comportamentale. El crede că există două tipuri de relații cauzale: ordinea cronologică, modelată prin compoziția secvențială și ordinea cauzală între diferite ramuri paralele, modelată prin fuziunea comunicării. De asemenea, consideră că există două tipuri de relații conflictuale: conflictul structural, modelat de o poziție alternativă, și conflictele în diferite ramuri paralele care trebuie eliminate. Bazat pe o extensie conservatoare, IPTC are patru module: BATC (Basic Algebra for True Concurrency), APTC (Algebra for Parallelism in True Concurrency), recursivitate și abstractizare. Citește mai mult... [4]
Protocolul folosește durata de viață (𝐿) a cheii de sesiune 𝐾𝑃, dar nu este inclusă nicio marca temporală în mesaj. Ca rezultat, protocolul rămâne vulnerabil la un atac cunoscut cu cheia de sesiune (KN). Să presupunem că Mallory a putut să înregistreze întreaga sesiune de comunicare între Alice și Bob și apoi a putut accesa cheia de sesiune 𝐾. Acest lucru îi permite lui Mallory să se autentifice ca Alice pentru Bob.
(1) 𝑀𝑒𝑙𝑙𝑜𝑟𝑦 (𝐴𝑙𝑖𝑐𝑒) → {𝐸𝐾 (𝑇𝑀), 𝑆𝐴 (𝐿, 𝐴, 𝐾𝑃), 𝑆𝐾𝑃 (𝐸𝐵 (𝐾))} 𝐵𝑜𝑏 𝐵𝑜𝑏 𝐵𝑜𝑏 𝐵𝑜𝑏 𝐵𝑜𝑏
(2) 𝐵𝑜𝑏 → {𝐴} → 𝑇𝑟𝑒𝑛𝑡
(3) 𝑇𝑟𝑒𝑛𝑡 → {𝑆𝑇 (𝐴, 𝐾𝐴)} → 𝐵𝑜𝑏
(4) 𝐵𝑜𝑏 → {𝐸𝐾 {𝑇𝐵}} → 𝑀𝑒𝑙𝑙𝑜𝑟𝑦 (𝐴𝑙𝑖𝑐𝑒)
La prima trecere, Mallory schimbă doar primul mesaj care conține marcajul temporal 𝐸𝐾 (𝑇𝑀). Tot ce copia Mallory din sesiunea de comunicare înregistrată. Dacă Bob nu notează cheile pe care le folosește, nu va observa schimbarea. Cea mai simplă remediere pentru această vulnerabilitate este includerea unui marcaj de timp în mesajul 𝑆𝐴 (𝑇𝐴, 𝐿, 𝐴, 𝐾𝑃).
Deoarece în protocol cheia de sesiune 𝐾 este criptată de cheia „master” a lui Bob 𝐾𝐵, compromisul acesteia din urmă va duce la compromisul tuturor cheilor de sesiune utilizate anterior. Adică, protocolul nu asigură secretul perfect înainte (Goal G9). Nici Trent, nici Bob nu sunt implicați în generarea de noi chei de sesiune. Prin urmare, Alice îl poate forța pe Bob să folosească vechea cheie de sesiune, ca în protocoalele Wide-Mouth Frog și Yahalom [2] .
Protocoale de autentificare și schimb de chei | |
---|---|
Cu algoritmi simetrici | |
Cu algoritmi simetrici si asimetrici | |
Protocoale și servicii utilizate pe Internet |