Özet kimlik doğrulama nedir?


101

Özet Kimlik Doğrulamasının, kimlik bilgilerini düz metin olarak göndermesi dışında Temel Kimlik Doğrulamadan farkı nedir?


1
@Gumbo tarafından burada harika bir açıklama: stackoverflow.com/a/5288679/591487
inorganik

2
ASLA kullanmamanız gereken bir şey. Parolayı aktarım sırasında korumaz ve sunucunun parolaları düz olarak saklamasını gerektirir.
CodesInChaos

2
Özet, şifrelenmemiş trafik için Temel kimlik doğrulamasından daha iyi geçiş güvenliği sağlar , ancak zayıftır. Bunun yerine, SSL / TLS ile birlikte Temel kimlik doğrulamasını kullanmak ÇOK daha güvenlidir, çünkü bu şekilde sunucudaki parolaları şifreli olarak da tutabilirsiniz.
rustyx

Yanıtlar:


179

Temel fark, kullanıcı adı ve parolayı kablo üzerinden düz metin olarak göndermeyi gerektirmemesidir. Ayrıca sunucudan tek seferlik bir numara kullandığı için tekrar saldırılara karşı da bağışıktır.

Sunucu, istemciye kullanıcı adı, bölge, parola ve URI isteğiyle birleştirdiği tek seferlik bir kullanım numarası (bir kerelik) verir. İstemci, bir karma anahtar üretmek için tüm bu alanları bir MD5 karma yöntemi aracılığıyla çalıştırır.

Bu hash anahtarını, kimlik doğrulamayı denemek için kullanıcı adı ve bölge ile birlikte sunucuya gönderir.

Sunucu tarafında, bir karma anahtar oluşturmak için aynı yöntem kullanılır, yalnızca tarayıcıya yazılan parolayı kullanmak yerine, sunucu, kullanıcı DB'sinden kullanıcı için beklenen parolayı arar. Bu kullanıcı adı için saklanan şifreyi arar, aynı algoritma ile çalışır ve istemcinin gönderdiği ile karşılaştırır. Eşleşirlerse erişim izni verilir, aksi takdirde 401 Yetkisiz (oturum açma veya başarısız oturum açma yok) veya 403 Yasak (erişim reddedildi) gönderebilir.

Özet kimlik doğrulaması RFC2617'de standartlaştırılmıştır . Bir var Vikipedi'de bunun güzel bir bakış :

Bunu şöyle düşünebilirsiniz:

  1. Müşteri talepte bulunur
  2. İstemci, sunucudan bir kerelik bir geri alır ve bir 401 kimlik doğrulama isteği
  3. İstemci aşağıdaki yanıt dizisini geri gönderir (kullanıcı adı, bölge, generate_md5_key (nonce, kullanıcı adı, bölge, URI, parola_verilen_by_user_to_browser)) (evet, bu çok basitleştirilmiş)
  4. Sunucu, kullanıcı adını ve bölgeyi alır (ayrıca istemcinin talep ettiği URI'yi bilir) ve bu kullanıcı adı için şifreyi arar. Sonra gider ve generate_md5_key'in kendi versiyonunu yapar (nonce, username, realm, URI, password_I_have_for_this_user_in_my_db)
  5. Bu, eğer istemcinin gönderdiği doğru parola ile eşleşiyorsa, kendisinin aldığı create_md5 () çıktısını, istemcinin gönderdiği çıktıyla karşılaştırır. Gönderilen şifre eşleşmiyorsa yanlıştır.

Güzel açıklama. Windows kullanıcısı için kullanıcı adı ve pwd midir? Nereden üretilirler?
SoftwareGeek

Kullanıcı tarayıcıya her ne yazarsa bunlar. Parola, sunucunun o kullanıcı için parola için sakladığı şeyle eşleşmelidir. Windows şifrenize değil, söz konusu web uygulamasına özgü bir şey olması muhtemel değildir. Bu, büyük ölçüde web uygulamasının bir araya getirilme şekline bağlıdır.
Ian C.

14
Bu cevap 6 yaşında, ancak sanırım tüm güvenliğe duyarlı sistemler şifreleri tuzlu bir karma formatta saklıyor. Özgün şifreyi veri tabanından elde etmek için özet yetkilendirmeyi imkansız hale getiren bir yöntem yoktur ve olmamalıdır.
Ramon de Klein

3
Kullanıcı adı ve şifrenin özet karması, düz şifreler yerine db'de saklanıyorsa, o zaman özet yetkilendirme @RamondeKlein
karakays

1
@BlueBockser yerine düz bir parola kullanmak yerine, bir o karakays geliyordu düşünüyorum karma kullanıcı adı ve şifresini birleştirerek kaynaklanan kaydolurken sunucuda depolanan ve doğruluğunun kanıtlanması önce istemci tarafında hesap edilmelidir. Sadece şifrenin bir karması ile de yapılabilir.
logo_writer

14

Kimlik bilgilerinin bir karması tel üzerinden gönderilir.

HA1 = MD5(username:realm:password)

Wikipedia'nın bu konuyla ilgili harika bir makalesi var


istemciden sunucuya? Lütfen etkileşim için adımlar verebilir misiniz? Wikipedia makalesi iyidir ancak daha iyi açıklamaya veya örneğe ihtiyacım var.
SoftwareGeek

Evet, istemci hash değerini üretir ve bunu sunucuya gönderir. Wikipedia makalesi protokolü ayrıntılı olarak açıklar, daha fazla bilgi için buna başvurmanızı öneririm.
Philip Fourie

1

Kimlik bilgilerinin karma HA1'i almanın tek yolu parolayı bilmektir. Sunucu HA1'i biliyor ancak onu oluşturan parolayı bilmiyor. HA1 bir saldırgan tarafından biliniyorsa sisteme girebilir. Yani telden aşağı gönderilmez. Bunu yapmadan önce nonce vb. Temelli başka bir hash yapılır ve bu, sunucuda yapılan benzer bir hesaplama ile uyumlu olmalıdır. Bu nedenle, sunucu HA1'i özel tuttuğu sürece sistem güvenlidir.


Bu, parolanın düz metin olarak gönderilmediği Özet kimlik doğrulamasının açıklamasıdır (Temel Kimlik Doğrulama için durum böyledir)
Erik Oppedijk
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.