Özet ve Temel Kimlik Doğrulama arasındaki fark nedir?


Yanıtlar:


197

Özet Kimlik Doğrulaması kimlik bilgilerini şifreli bir biçimde şu kullanıcılara bir karma işlevi uygulayarak iletir: kullanıcı adı, parola, sunucu tarafından sağlanan nonce değeri, HTTP yöntemi ve istenen URI.

Temel Kimlik Doğrulaması ise şifrelenmemiş base64 kodlaması kullanır .

Bu nedenle, Temel Kimlik Doğrulaması genellikle yalnızca https gibi aktarım katmanı güvenliği sağlandığında kullanılmalıdır.

Tüm kanlı ayrıntılar için RFC-2617'ye bakın.


1
nasıl temel kimlik doğrulaması şifrelenmez? Bu web sitesini kullanıcı adı ve şifre verilerini çözmek için kullandım base64decode.org
Dot Freelancer

65
Kodlama ve şifreleme aynı şey değildir. Bu siteyi kullanarak kimlik bilgilerini çözebilmeniz, bunların şifrelenmediğini gösterir.
Andy

@Andy Özet Kimlik Doğrulaması ile Şifreleme Kimlik Doğrulaması arasında bir fark var mı? Yoksa aynı şeyi mi ifade ediyorlar? Teşekkürler.
user224567893

1
@Andy "kimlik bilgilerini çöz" ile ne demek istiyorsun? Karma kimlik bilgileri çözülemez ...
Alexander Suraphel

8
Doğru ve temel kimlik doğrulaması karma kimlik bilgilerini kullanmaz, base64 kodludur.
Andy

114

HTTP Temel Erişim Kimlik Doğrulaması

  • AŞAMA 1 : Müşteri sunucuya düz metin olarak bir kullanıcı adı ve şifre göndererek bilgi talebinde bulunur
  • ADIM 2 : Sunucu istenen bilgilerle veya bir hatayla yanıt verir

Temel Kimlik Doğrulama base64 kullanır , kullanıcı adı ve parola bilgilerini içeren şifreleme dizemizi oluşturmak için kodlamasını (şifreleme değil) . HTTP Basic'in SSL üzerinden uygulanması gerekmez, ancak bunu yapmazsanız güvenli değildir. Bu yüzden onsuz kullanma fikrini eğlendirmeyeceğim bile.

Artıları:

  • Uygulanması kolaydır, bu nedenle müşteri geliştiricilerinizin yapmak için daha az işi olur ve yayınlanması daha az zaman alır, bu nedenle geliştiricilerin API'nızı kullanma olasılığı daha yüksek olabilir
  • Digest'in aksine, şifreleri bcrypt gibi istediğiniz şifreleme yönteminde sunucuda saklayabilir ve şifreleri daha güvenli hale getirebilirsiniz
  • Bilgiyi almak için sunucuya yalnızca bir çağrı yapılması yeterlidir, bu da istemciyi daha karmaşık kimlik doğrulama yöntemlerinden biraz daha hızlı hale getirir

Eksileri:

  • SSL çalıştırmak temel HTTP'den daha yavaştır, bu da istemcilerin biraz daha yavaş olmasına neden olur
  • İstemcilerin denetiminiz yoksa ve sunucuyu SSL kullanmaya zorlayamazsanız, bir geliştirici SSL kullanamayabilir ve bu da güvenlik riskine neden olabilir

Özet'te - istemcilerin kontrolüne sahipseniz veya SSL kullandıklarından emin olabilirseniz, HTTP Basic iyi bir seçimdir. SSL'nin yavaşlığı, yalnızca bir istekte bulunma hızı ile iptal edilebilir

Temel Kimlik Doğrulama Sözdizimi

Value = username:password
Encoded Value =  base64(Value)
Authorization Value = Basic <Encoded Value> 
//at last Authorization key/value map added to http header as follows
Authorization: <Authorization Value>

HTTP Özet Erişim Kimlik Doğrulaması
Özet Erişim Kimlik Doğrulaması, şifreleme sonucu oluşturmak için karma (yani, küçük parçalara bölünmüş anlamına gelir) yöntemlerini kullanır. HTTP Özet erişim kimlik doğrulaması, aşağıdaki gibi çalışan daha karmaşık bir kimlik doğrulama biçimidir:

  • ADIM 1 : İstemci bir sunucuya istek gönderir
  • ADIM 2 : Sunucu özel bir kodla (yani n umber yalnızca bir kez kullanılır ), alanı (karma) temsil eden başka bir dize ve istemciden kimlik doğrulaması yapmasını ister
  • ADIM 3 : Müşteri bu nonce ve kullanıcı adı, şifre ve bölge (şifreli)
  • ADIM 4 : İstemci karması kendi kullanıcı adı, parola ve bölge karmasıyla eşleşmiyorsa veya istenen değilse bir hata ile sunucu istenen bilgilere yanıt verir

Artıları:

  • Hiçbir kullanıcı adı veya şifre sunucuya düz metin olarak gönderilmez, bu da SSL olmayan bir bağlantıyı SSL üzerinden gönderilmeyen bir HTTP Temel isteğinden daha güvenli hale getirir. Bu SSL gerekmediği anlamına gelir, bu da her aramayı biraz daha hızlı yapar

Eksileri:

  • İhtiyaç duyulan her çağrı için, istemci işlemi HTTP Temel'den biraz daha yavaş hale getirerek 2 yapmalıdır.
  • HTTP Digest, ortadaki adam güvenlik saldırısına karşı savunmasızdır, bu da temel olarak saldırıya uğratılabileceği anlamına gelir
  • HTTP Özet güçlü parola şifrelemesinin kullanılmasını önler, yani sunucuda depolanan parolalar saldırıya uğrayabilir

Özetle , HTTP Özet, en az iki saldırıya karşı doğal olarak savunmasızken, SSL üzerinden HTTP Temel şifresi için güçlü şifreleme kullanan bir sunucunun bu güvenlik açıklarını paylaşması daha az olasıdır.

İstemcileriniz üzerinde kontrolünüz yoksa, SSL olmadan Temel kimlik doğrulaması gerçekleştirmeye çalışabilirler ki bu da Digest'ten çok daha az güvenlidir.

RFC 2069 Özet Erişim Kimlik Doğrulama Sözdizimi

Hash1=MD5(username:realm:password)
Hash2=MD5(method:digestURI)
response=MD5(Hash1:nonce:Hash2)

RFC 2617 Özet Erişim Kimlik Doğrulama Sözdizimi

Hash1=MD5(username:realm:password)
Hash2=MD5(method:digestURI)
response=MD5(Hash1:nonce:nonceCount:cnonce:qop:Hash2)
//some additional parameters added 

kaynak ve örnek

Postacıda şöyle görünüyor:

resim açıklamasını buraya girin

Not:

  • Temel ve Digest şemaları bir kullanıcı adı ve bir sır kullanılarak kimlik doğrulaması adanmıştır.
  • Hamiline şeması bir simge kullanarak kimlik doğrulaması adamıştır.

1
Web sunucunuzda, istemcilerin kontrolü olmasa bile, tüm http istekleri için https'ye yönlendirilemez misiniz?
10cool

Daha fazla düşünün ama daha çok ne demek istediğini görüyorum. Orada http üzerinden kimlik bilgilerini gönderdikleri ve sitenize ulaştıkları varsayılarak yönlendirebilirsiniz, ancak kötü amaçlı bir siteye ulaşırlarsa yardım edemezsiniz.
10cool

3
Digest ile neden veritabanında saklamadan önce şifrenizi şifreleyemezsiniz ve çekerken şifresini çözemezsiniz?
papiro

Seçilen cevap soruya daha yakın olsa da, bu yanıtı beğenmedim çünkü bize başlatılmamış olanlara artıları ve eksileri veriyor.
coder0h1t

1
@ 10cool http ile web sitesine girdikten sonra çok geç ... maalesef. kullanıcı: hemen sonra httpS'ye yönlendirilseniz bile, geçiş zaten kabloda net olarak gönderilmiştir.
Julien

41

(Gönderilen veya alınan paketleri analiz etme aracı) kullanarak iki HTTP kimlik doğrulaması arasındaki farkı görelim Wireshark.

1. Http Temel Kimlik Doğrulaması

Temel

İstemci doğru kullanıcı adı: parolasını Web sunucusu tarafından istendiği gibi yazdığı anda, Web Sunucusu kimlik bilgilerinin doğru olup olmadığını Veritabanında denetler ve kaynağa erişim sağlar.

Paketler şu şekilde gönderilir ve alınır:

resim açıklamasını buraya girin İlk pakette Müşteri dolgu kullanılarak kimlik POST kaynakta yöntemi - lab/webapp/basicauth.in tepki kodunu geri http sunucu şekilde cevap 200 Tamam , yani kullanıcı adı: şifre doğruydu.

HTTP paketinin ayrıntısı

Şimdi, Authorizationbaşlıkta Temel Yetkilendirme ve ardından rastgele bir dize olduğunu gösterir.Bu Dize, kimlik bilgilerinin (iki nokta üst üste dahil ) kodlanmış (Base64) sürümüdür admin:aadd.

2. Http Özet Kimlik Doğrulaması (rfc 2069)

Şimdiye kadar, Temel Kimlik Doğrulamanın ağ üzerinde düz metin olarak kullanıcı adı: şifre gönderdiğini gördük.Ancak Özet Kimlik Doğrulama Hash algoritmasını kullanarak Şifre HASH'ı gönderdi .

İşte istemci tarafından yapılan istekleri ve sunucudan gelen yanıtı gösteren paketler.

sindirmek

İstemci sunucu tarafından istenen kimlik bilgilerini yazdığı anda, Parola responsebir algoritma kullanılarak dönüştürülür ve daha sonra sunucuya gönderilir, Sunucu Veritabanı istemcinin verdiği yanıtla aynı ise, sunucu kaynağa erişim sağlar , aksi takdirde bir 401 hatası.

Ayrıntılı özet kimlik paketi Yukarıda Authorization, responsedizge değerleri kullanılarak hesaplanır Username, Realm, Password, http-method, URIve Nonceresimde gösterildiği gibi:

Yanıt algoritması (sütunlar dahil)

Bu nedenle, Özet Kimlik Doğrulaması (MD5 şifrelemesi) içerdiğinden Özet Kimlik Doğrulamanın daha Güvenli olduğunu görebiliriz, bu nedenle paket sniffer araçları, Temel Kimlik Doğru'da tam Parola Wireshark'ta gösterilmesine rağmen Parolayı koklayamaz.


6
Grafikler için daha bilgilendirici ve kudos olduğu için bu kabul edilen cevap olmalıdır.
mak

Ancak wireshark'ta paketleri yalnızca http protokolü kullanarak mı kokluyorsunuz? Https protokolünü kullanıyor olsaydınız?
JohnRDOrazio

Wireshark tarafından Http veya Https'yi koklamaya karar vermedi. Protokollerle yapılandırılan web sunucusudur.
BoRRis

1
Saçmalık. Temel Kimlik Doğrulama yalnızca HTTPS üzerinden kullanılır. Yani gerçek karşılaştırma HTTPS üzerinden Temel Kimlik Doğrulaması ile HTTP üzerinden Özet Kimlik Doğrulamasıdır. Günümüzde web siteleri tüm trafiğini şifrelediğinden, HTTPS üzerinden Temel Kimlik Doğrulaması'nı da kullanabilirsiniz.
Gili

-3

Temel Kimlik Doğrulama base base 64 Kullanıcı adı ve parola bilgilerini içeren şifreleme dizesi oluşturmak için kodlama kullanır .

Özet Erişim Kimlik Doğrulaması, şifreleme sonucunu oluşturmak için sağlama yöntemlerini kullanır


1
base 64 kodlaması kriptografik değildir.
Thomas Sobieck
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.