Jaka jest różnica między Digest i podstawowe uwierzytelnianie?
http
authentication
https
basic-authentication
digest-authentication
Dot Freelancer
źródło
źródło
Odpowiedzi:
Uwierzytelnianie szyfrowane komunikuje poświadczenia w postaci zaszyfrowanej poprzez zastosowanie funkcji skrótu do: nazwy użytkownika, hasła, wartości nonce podanej przez serwer, metody HTTP i żądanego identyfikatora URI.
Podczas gdy uwierzytelnianie podstawowe wykorzystuje niezaszyfrowane kodowanie base64.
Dlatego podstawowego uwierzytelnienia należy zasadniczo używać tylko wtedy, gdy zapewnione jest bezpieczeństwo warstwy transportowej, takie jak https.
Zobacz RFC-2617, aby poznać wszystkie krwawe szczegóły.
źródło
Uwierzytelnianie dostępu podstawowego HTTP
Uwierzytelnianie podstawowe wykorzystuje kodowanie base64 (nie szyfrowanie) do generowania naszego ciągu kryptograficznego, który zawiera informacje o nazwie użytkownika i haśle. HTTP Basic nie musi być implementowany przez SSL, ale jeśli nie, to wcale nie jest bezpieczny. Więc nawet nie zamierzam bawić się bez tego.
Plusy:
Cons:
Podsumowując - jeśli masz kontrolę nad klientami lub możesz upewnić się, że używają protokołu SSL, HTTP Basic jest dobrym wyborem. Powolność protokołu SSL można anulować przez szybkość wysłania tylko jednego żądania
Składnia podstawowego uwierzytelnienia
Uwierzytelnianie dostępu Digest HTTP Uwierzytelnianie dostępu
Digest wykorzystuje metody mieszania (tj. Skrót oznacza cięcie na małe kawałki) w celu wygenerowania wyniku kryptograficznego. Uwierzytelnianie dostępu HTTP Digest jest bardziej złożoną formą uwierzytelniania, która działa w następujący sposób:
Plusy:
Cons:
Podsumowując , HTTP Digest jest z natury podatny na co najmniej dwa ataki, podczas gdy serwer używający silnego szyfrowania haseł z HTTP Basic przez SSL ma mniejsze szanse na udostępnienie tych luk.
Jeśli nie masz kontroli nad klientami, mogą oni jednak spróbować przeprowadzić uwierzytelnianie podstawowe bez SSL, co jest znacznie mniej bezpieczne niż Digest.
RFC 2069 Składnia uwierzytelnienia dostępu szyfrowanego
RFC 2617 Składnia uwierzytelnienia dostępu szyfrowanego
źródło i przykład
W Postman wygląda następująco:
Uwaga:
źródło
Zobaczmy różnicę między dwoma uwierzytelnieniami HTTP za pomocą
Wireshark
(Narzędzie do analizy pakietów wysłanych lub odebranych).1. Podstawowe uwierzytelnianie HTTP
Gdy tylko klient wpisze prawidłową nazwę użytkownika: hasło , zgodnie z żądaniem serwera WWW, serwer internetowy sprawdza w Bazie danych, czy poświadczenia są poprawne, i zapewnia dostęp do zasobu.
Oto, w jaki sposób pakiety są wysyłane i odbierane:
W pierwszym pakiecie klient wypełnia dane uwierzytelniające za pomocą metody POST w zasobie -.
lab/webapp/basicauth
W zamian serwer odpowiada z powrotem kodem odpowiedzi HTTP 200 ok , tj. Nazwa użytkownika: hasło były poprawne.Teraz w
Authorization
nagłówku pokazuje, że jest to Podstawowa autoryzacja, po której następuje jakiś losowy ciąg. Ten ciąg jest zakodowaną (Base64) wersją poświadczeńadmin:aadd
(w tym dwukropka).2) Http Digest Authentication (rfc 2069)
Do tej pory widzieliśmy, że Podstawowe uwierzytelnianie wysyła nazwę użytkownika: hasło w postaci zwykłego tekstu przez sieć. Ale Digest Auth wysyła HASH hasła przy użyciu algorytmu Hash.
Oto pakiety pokazujące żądania wykonane przez klienta i odpowiedzi z serwera.
Gdy tylko klient wpisze poświadczenia wymagane przez serwer, hasło jest konwertowane na
response
algorytm, a następnie wysyłane do serwera. Jeśli baza danych serwera ma taką samą odpowiedź, jak klient, serwer daje dostęp do zasobu , w przeciwnym razie a błąd 401 .W powyższym
Authorization
Theresponse
ciąg jest obliczana na podstawie wartościUsername
,Realm
,Password
,http-method
,URI
iNonce
, jak pokazano na rysunku:(dwukropki są wliczone)
W związku z tym możemy zobaczyć, że uwierzytelnianie szyfrowane jest bezpieczniejsze, ponieważ obejmuje Hashing (szyfrowanie MD5), więc narzędzia do wykrywania pakietów nie mogą wykryć Hasła, chociaż w Autoryzacji podstawowej dokładne hasło zostało pokazane w Wireshark.
źródło
Uwierzytelnianie podstawowe wykorzystuje kodowanie podstawowe 64 do generowania ciągu kryptograficznego zawierającego informacje o nazwie użytkownika i haśle.
Uwierzytelnianie dostępu Digest korzysta z metodologii mieszania w celu wygenerowania wyniku kryptograficznego
źródło