Accesul la autentificare prin digest este una dintre metodele comune utilizate de un server web pentru a procesa acreditările browserului web al unui utilizator. Această metodă utilizează criptarea pentru a trimite o parolă în rețea, ceea ce reprezintă o metodă mai sigură decât autentificarea autentificată. la care datele sunt trimise în text clar.
Din punct de vedere tehnic, autentificarea digestă este aplicarea unui hashing criptografic MD5 utilizând valori aleatorii pentru a împiedica criptanalizarea. Utilizează protocolul HTTP.
Digestul de autentificare a accesului a fost inițial specificat utilizând RFC 2069 (Extindere la HTTP: Digest autentificare acces). RFC 2069 definește o schemă aproape autentică de autentificare a digestului în care securitatea este susținută de valori aleatorii generate de server. Răspunsul la cererea de autentificare se formează după cum urmează (unde HA1, HA2, A1, A2 sunt numele variabilelor de șir):
RFC 2069 a fost înlocuit ulterior cu RFC 2617 (autentificare HTTP: Autentificare autentică autentică și Digest). În RFC 2617, au fost introduse o serie de îmbunătățiri suplimentare de securitate cu autentificare digest; "Calitatea protecției" (QOP), un numărător de valori aleatorii, mărit de client și valori aleatorii generate de client. Aceste îmbunătățiri sunt concepute pentru a proteja, de exemplu, un atac criptanalist cu un atac [plaintext ales].
Dacă valoarea directivei QOP este "auth" sau nu este definită, atunci HA2 este egală cu:
Dacă valoarea directivei QOP este "auth-int", atunci HA2 este egală cu:
Dacă valoarea directivei QOP este "auth" sau "auth-int", atunci răspunsul la interogare este calculat după cum urmează:
Dacă directiva QOP nu este definită, răspunsul se calculează după cum urmează:
Cele de mai sus arată că atunci când QOP nu este definit, se aplică un standard mai simplu RFC 2069.
Efectul protecției MD5 asupra autentificării digestate
Calculele MD5 utilizate pentru digestarea autentificării HTTP ar trebui să fie "într-o singură direcție", ceea ce înseamnă o dificultate mai mare în determinarea datelor inițiale de intrare atunci când este cunoscută numai ieșirea. Cu toate acestea, dacă parola este prea simplă, este posibil să căutați toate datele posibile de intrare și să găsiți ieșirea corespunzătoare (atac de forță brute), de exemplu, utilizând un dicționar sau o listă potrivită de căutare.
Caracteristici de autentificare Digest HTTP
avantaje
HTTP digest autentificare este conceput pentru a spori securitatea peste schemele tradiționale de autentificare digest, de exemplu, este "semnificativ mai sigur decât CRAM-MD5 ..." (RFC2617).
Unele avantaje ale autentificării digest sunt HTTP:
- Parola nu este utilizată direct în digest, în schimb, HA1 = MD5 (username: realm: password). Acest lucru permite în unele implementări (de exemplu, JBoss DIGESTAuth) să stocheze HA1, mai degrabă decât o parolă cu text liber.
- client valoare aleatoare a fost introdusă în RFC2617, care permite clientului pentru a preveni atacul de la plaintext preselectata [ales-plaintext atac] (altfel, de exemplu, masa de curcubeu [masă curcubeu] este o amenințare digest schemă de autentificare).
- Valoarea aleatorie la nivel de server poate conține marcatori de timp. Prin urmare, serverul poate verifica valorile aleatoare furnizate de clienți pentru a preveni atacurile replay.
- Serverul poate conține, de asemenea, un tabel cu valorile aleatoare nou create sau utilizate pentru a împiedica reutilizarea.
deficiențe
Digestul autentificării accesului este o soluție de compromis. Acesta este conceput pentru a înlocui accesul neautorizat de autentificare HTTP de bază. Cu toate acestea, nu se intenționează înlocuirea protocoalelor de autentificare mai sigure, cum ar fi cheia publică sau autentificarea Kerberos.
Din punct de vedere al securității, algoritmul de autentificare a accesului are mai multe dezavantaje:
- Multe dintre opțiunile de securitate din RFC 2617 sunt opționale. Dacă calitatea protecției (QOP) nu este definită de server, clientul va opera în modul de securitate degradat RFC 2069.
- Digest autentificare este vulnerabil la atacurile umane în mijloc (MitM). De exemplu, un atacator poate spune MITM clienților să utilizeze autentificarea de bază de autentificare sau de acces în modul Digest RFC 2069. Într-o mai larg spălat, digest autentificare de acces nu oferă clienților cu mecanism de autentificare server.
- Unele servere vă solicită să stocați parole utilizând criptarea reversibilă. Cu toate acestea, este posibil să salvați digestul numelui de utilizator, al zonei și al parolei. [2]
Protocoale alternative de autentificare
Unele protocoale de autentificare îmbunătățite pentru aplicațiile web:
- Autentificarea cheilor publice (de obicei realizată cu ajutorul certificatelor client HTTPS / SSL).
- Autentificarea Kerberos sau SPNEGO. în primul rând, că Microsoft IIS utilizează pentru a activa autentificarea integrată Windows (IWA).
- Protocolul parolei protejate la distanță (preferabil prin HTTPS / TLS).
Protocoalele puțin protejate de tip deschis sunt adesea folosite în:
Aceste protocoale slabe, utilizate împreună cu criptarea în rețea HTTPS, pot preveni o varietate de amenințări, pentru care este proiectată autentificarea digest.
Exemplu cu explicație
Următorul exemplu a fost inițial demonstrat în RFC 2617 și extins aici pentru a afișa textul integral așteptat pentru fiecare cerere și răspuns. Rețineți că este acoperită numai calitatea de protecție a codului de autentificare - în momentul scrierii numai a browserelor, Opera și Konqueror au acceptat "AUTH-INT" (autentificare cu integritatea protecției). Deși specificația menționează versiunea HTTP 1.1, schema poate fi adăugată cu succes la versiunea serverului 1.0, așa cum se arată aici.
Această schemă de mesagerie tipică constă în următorii pași.
Notă: clientul poate conține deja un nume de utilizator și o parolă, fără a trebui să interogheze utilizatorul, de exemplu, dacă a fost salvat anterior de un browser web.
Solicitarea clientului (fără autentificare) Răspunsul serverului Solicitarea clientului (numele de utilizator "Mufasa", parola "Circle of Life") Răspunsul serverului
Valoarea răspunsului este calculată în trei etape, după cum urmează. În cazul în care valorile sunt combinate, ele sunt separate printr-un caracter de colon.
- Se calculează hash-ul calculat al MD5 al numelui de utilizator, al domeniului de autentificare și al parolei. Rezultatul este HA1.
- Se calculează hash-ul MD5 al metodei combinate și al digestului URI. de exemplu "GET" și "/dir/index.html". Rezultatul este numit HA2.
- Se calculează raza MD5 a rezultatului combinat HA1, valoarea aleatoră a serverului, contorul de interogări, valoarea aleatorie a clientului, codul calității de securitate (QOP) și HA2. Rezultatul este valoarea "răspunsului" furnizat de client.
Deoarece serverul are aceleași informații ca și clientul, puteți verifica răspunsul efectuând aceleași calcule. În exemplul de mai sus, rezultatul este următorul, unde MD5 () este funcția utilizată pentru a calcula hash-ul MD5, backslash-ul este o continuare și ghilimele nu sunt utilizate în calcule.
Completând exemplul dat în RFC 2617, vom demonstra rezultatele pentru fiecare etapă.
În acest moment, clientul poate face o nouă solicitare prin reutilizarea valorii aleatorii a serverului (serverul emite o nouă valoare aleatorie pentru fiecare răspuns "401"), dar prin furnizarea unei noi valori aleatorii clientului. Pentru solicitările ulterioare, valoarea numărătorului de interogări hexazecimale trebuie să fie mai mare decât valoarea utilizată anterior - în caz contrar, atacatorul poate "repeta" vechea solicitare cu aceleași date. Aceasta este o sarcină de server - pentru a controla creșterea numărului de contoare pentru fiecare valoare aleatorie care a fost emisă și pentru a ignora orice solicitări inadecvate. Evident, schimbarea unei metode, a unui URI și / sau a unei valori de contra poate duce la valori diferite de răspuns.
Serverul trebuie să țină cont de valorile aleatoare generate recent. El își poate aminti, de asemenea, când au fost oferite toate valorile aleatorii și le-au scos din uz după o anumită perioadă de timp. Dacă utilizați o valoare depășite, atunci serverul ar trebui să trimită un cod de stare „401“ și adăugați stătut = TRUE pentru antetul de autentificare, indicând faptul că clientul trebuie să relansați cererea cu o nouă valoare aleatoare, fără a forța utilizatorul să trimită un nume de utilizator și o parolă diferite.
Serverul nu are nevoie să stocheze toate valorile aleatoare depășite - puteți presupune pur și simplu că orice valori necorespunzătoare sunt depășite. Pentru server, este de asemenea posibil ca fiecare valoare aleatorie să fie returnată o singură dată, deși acest lucru îi determină pe client să repete fiecare solicitare. Rețineți că valoarea aleatorie a serverului nu poate fi depășită odată, deoarece clientul nu ar fi putut să o utilizeze.
Autentificarea SIP digest
SIP utilizează în esență același algoritm ca autentificarea digestului. Acesta este definit de RFC 3261.
Implementarea browserului
Majoritatea browserelor implementează specificații importante, cu excepția anumitor funcții specifice, cum ar fi verificarea algoritmului AUTH-INT sau a sesiunii MD5. În cazul în care serverul impune ca aceste caracteristici suplimentare care urmează să fie prelucrate, clienții nu pot avea capacitatea de autentificare (deși ar trebui remarcat faptul că mod_auth_digest pentru Apache este, de asemenea, nu de punere în aplicare pe deplin RFC 2617).
literatură
Vedeți ce "autentificare Digest" în alte dicționare:
Internet Information Services - Sistem de operare Microsoft Developer Microsoft Windows NT Ultima versiune 7.5 Versiune de testare 8.0 Licență Proprietar Website ... Wikipedia
Nonce - Un schimb tipic între client și server în timpul autentificării folosind serverul nonce și clientul cnonce. În criptografie, un cod unic, ales aleatoriu sau pseudo-aleatoriu ... Wikipedia
Integritatea datelor - integritatea datelor (de asemenea, integritatea datelor) ale termenului în informatică și teoria telecomunicațiilor, ceea ce înseamnă că datele sunt complete, cu condiția ca datele nu a fost modificat la efectuarea oricăror operațiuni de pe ele, fie că este vorba de transport, ... ... Wikipedia
SNTP - Nume: Nivel simplu protocol de rețea (prin modelul OSI): Familia de aplicații: Portul TCP / IP: 123 / UDP Protocol Scopul: Specificația sincronizării timpului ... Wikipedia
Eticheta RFID EPC utilizat în rețeaua de comercializare RFID Wal Mart O metodă de identificare automată a obiectelor, în care, prin semnale radio sau ... citește ... Wikipedia - RFID (frecvență radio IDentificare engleză, de identificare a frecvenței radio.)
Identificarea prin frecvențe radio - EPC etichetă RFID utilizată în rețeaua comercială de limbă engleză. Radio Frequency IDentification) metoda de identificare automată a obiectelor în care prin intermediul semnalelor radio datele stocate în ... ... Wikipedia
Eticheta RFID - eticheta EPC RFID folosită în rețeaua comercială de limbă engleză. Radio Frequency IDentification) metoda de identificare automată a obiectelor în care prin intermediul semnalelor radio datele stocate în ... ... Wikipedia