HTTPS üzerinden düz metin şifresi


93

Şu anda HTTPS (dolayısıyla SSL şifreli) üzerinden çalışacak bir PHP OpenID sağlayıcısı üzerinde çalışıyorum. Şifreyi düz metin olarak iletmem yanlış
mı ? Teoride HTTPS durdurulamaz, bu yüzden yanlış bir şey görmüyorum. Yoksa bu bir düzeyde güvensiz mi ve bunu göremiyor muyum?

Yanıtlar:


129

Güvenli. Tüm web böyle çalışır. Formlardaki tüm parolalar her zaman düz metin olarak gönderilir, bu nedenle güvenliğini sağlamak HTTPS'ye bağlıdır.


20
Küçük nitpick: Bazı giriş formları, şifreyi düz metin göndermek yerine, şifrelemek için JavaScript kullanır.
Thorarin

5
@Thorarin eğer gerçekten hashlarlarsa, bu, sunucunun parolayı düz metin olarak sakladığı anlamına gelir, böylece doğrulamak için aynı tuzla karma yapabilir. Ick! Parolayı ssl kaydırılmış metin olarak göndermek daha iyidir, çünkü sunucunun parolayı düz metin olarak saklaması gerekmez.
DGM

11
@DGM: çift hashing de bir seçenektir, bu nedenle düz metin şifreler kesinlikle gerekli değildir.
Thorarin

3
@Denis: İstemci tarafı hashing pek yardımcı olmuyor. İşleri düz metinden biraz daha zorlaştırabilir, ancak gerçekten bir şifre çalmak isteyen biri bunu sorunsuz bir şekilde yapabilir. Yalnızca güvenli bir kanal (ssl) üzerinden en az bir kerelik belirteç gönderirseniz güvenli bir şekilde çalışır, bu durumda başlamak için parolayı SSL olarak da gönderebilirsiniz.
Eduardo Scoz

4
Sadece Yahoo'nun, istemci tarafı hash işleminin, SSL'ye kadar tüm yolu taşımaya gücü yetene kadar yeterince güvenli olduğunu hissettiğini söylüyorum. Ama hey, hepimiz https için varım :)
Denis

74

Yine de GET ile değil, POST isteği ile gönderdiğinizden emin olmanız gerekir. GET isteği ile gönderirseniz, kullanıcının tarayıcı geçmişi günlüklerine veya web sunucusunun erişim günlüklerine düz metin olarak kaydedilebilir.


7
Evet, bunu biliyordum, ama yine de buraya bakarak gelenler için geride bırakmak iyi bir yorum. :)
WhyNotHugo

veya bir başlıkta gönder
james

22

HTTP devre dışı bırakılmışsa ve yalnızca HTTPS kullanıyorsanız, parolayı zaten düz metin olarak iletmiyorsunuz demektir.


4
Ancak sunucu yapar sizin düz metin şifre erişebilir, bunlar, düz metin olarak saklayabilirsiniz plaintext vb, şifreniz istemci tarafında kalmaz demek ki o, sunucu da tam olarak ne gördüğü yanlış açın.
xref

14

Hash istemci tarafı. Neden? Size küçük bir deneyden bahsedeyim. Şirket kafeteryasında bilgisayara doğru yürüyün. Tarayıcıdan şirket web sitesine giriş sayfası (https) açın. F12'ye basın, ağ sekmesine tıklayın, kalıcı günlüğü işaretleyin, konsolu simge durumuna küçültün ancak web sayfasını oturum açma sayfasına açık bırakın. Otur ve öğle yemeği ye. Çalışan şirketin web sitesinde oturum açtıktan ve işiniz bittiğinde iyi bir küçük işçi olarak oturumu kapattıktan sonra çalışan olarak izleyin. Öğle yemeğini bitirin, bilgisayarda oturup ağ sekmesini açın ve her bir kullanıcı adı ve parolayı düz metin olarak bodys biçiminde görün.

Özel araçlar yok, özel bilgi yok, süslü bilgisayar korsanlığı donanımı yok, tuş kaydediciler yok sadece eski güzel F12.

Ama hey, tek ihtiyacın olanın SSL olduğunu düşünmeye devam et. Kötü adamlar bunun için seni sevecek.


6
Kafeterya yorumunuz, ne kadar tekrar okursam da, hiçbir anlam ifade etmiyor. İnsanlar neden bir bilgisayara gidip kimlik bilgilerini yazsınlar? Neyi kanıtlamaya çalışıyorsun? Ayrıca, hashing bunu hiçbir şekilde daha güvensiz hale getirmeyecektir . 2009'da bu soru yazıldığında şifreleri hash etmek ve düz metin HTTP üzerinden iletmek yaygın bir şeydi.
WhyNotHugo

4
Evet, kabul cevap, çünkü bunların her ikisi upvoted edilir yıllar sonra okunduğunu. @CodeDog'un lütfen bazı azaltma stratejilerine işaret etmesi iyi olur. Ve evet, insanlar örneğin yerel kütüphanede rastgele PC'lere gidip ayrıntılarını girecekler!
JoeAC

3
Şifreleri istemci tarafını açık bir anahtarla şifreliyorum, sonra forma yalnızca şifrelenmiş şifreyi gönderiyorum. Asimetrik bir anahtardır, bu nedenle istemci tarafında ortak anahtarın olması saldırganlar için işe yaramaz. Her günlük yeni bir anahtar çifti oluşturur, bu nedenle yeniden oynatma saldırıları da işe yaramaz. Anahtar, başarısız oturum açma girişimlerinde bile değişir. Anahtar çiftleri, kullanıcılar oturum açma ekranına geldiğinde sunucu tarafında oluşturulur. İstemci tarafı koduna yalnızca genel anahtar sağlanır.
CodeDog

BTW Bu hackin bir otel iş merkezinde personel tarafından oda numaraları için şifre toplamak amacıyla kullanıldığını gördüm. Kablosuza bağlanmak ve iş merkezi bilgisayarlarını kullanmak için şifreyi kullanırlardı ve odaya faturalandırılırlardı.
CodeDog

Böyle bir deneyi banka hesabıma giriş yaparak gerçekleştirdim ve @CodeDog ile aynı fikirde olmalıyım - Yük isteğinde hem kullanıcı adımı hem de şifrem açık metin var.
Artur Michajluk

6

Önceki cevaplara bazı notlar alalım.

İlk olarak, karma algoritmaları istemci tarafında kullanmak muhtemelen en iyi fikir değildir. Parolanız sunucu tarafında korunursa, hash'leri karşılaştıramazsınız (en azından istemci hashini veritabanında şifrenin hashing katmanlarından birinde depolamazsanız, ki bu aynı veya daha da kötüsü). Ve veritabanı tarafından kullanılan hash algoritmasını istemci tarafında uygulamak istemezsiniz, bu aptalca olur.

İkinci olarak, kriptografik anahtarların ticareti de ideal değildir. MITM teorik olarak (istemcide kurulu bir kök sertifikasına sahip olduğu düşünüldüğünde) şifreleme anahtarlarını değiştirebilir ve kendi anahtarlarıyla değişebilir:

Anahtarları değiştiren teorik bir sunucudan orijinal bağlantı (tls dikkate alınmadan):

İstemci genel anahtarlar ister> sunucu özel anahtarları tutar, istemciye genel anahtarlar oluşturur> sunucu müşteriye genel anahtarlar gönderir

Şimdi, teorik bir MITM saldırısında:

İstemci genel anahtarlar ister> MITM sahte özel anahtarlar üretir > Sunucu özel anahtarları tutar, istemciye genel anahtarlar oluşturur> MITM genel anahtarları orijinal sunucudan alır, artık sahte genel anahtarlarımızı istemciye göndermekte özgürüz ve İstemciden bir talep geldiğinde, müşteri verilerinin şifresini sahte anahtarlarla çözeceğiz, yükü değiştireceğiz (veya okuyacağız) ve orijinal genel anahtarlarla şifreleyeceğiz > MITM, istemciye sahte genel anahtarlar gönderir.

Bu, TLS'de güvenilir CA sertifikasına sahip olmanın amacıdır ve bu, sertifika geçerli değilse tarayıcıdan bir uyarı mesajı alırsınız.

OP'ye yanıt olarak: Benim düşünceme göre bunu yapamazsınız, çünkü er ya da geç, birisi hizmetinizden bir kullanıcıya saldırmak isteyecek ve protokolünüzü bozmaya çalışacaktır.

Bununla birlikte, yapabileceğiniz şey, insanların aynı şifre ile oturum açmaya çalışmasını önlemek için 2FA uygulamaktır. Yine de tekrar saldırıların farkında.

Kriptografide pek iyi değilim, lütfen yanılıyorsam düzeltin.


Bu tartışmanın 2009 yılına ait olduğunu aklınızdan çıkarmayın. Bunlar, o zamanlar hemen hemen en iyi uygulamalardı.
WhyNotHugo

3
@WhyNotHugo ben farkındayım. Bir cevap bırakmaya karar verdim çünkü bu soruya verilen en iyi google cevabı beni buraya getirdi, öyleyse neden olmasın.
Lucca Ferri

4

Diğer posterler doğrudur. Artık şifrenin aktarımını şifrelemek için SSL kullandığınıza göre, iyi bir algoritma ve tuzla şifrelediğinizden emin olun, böylece hareketsizken de korunur ...


Evet, bunun farkındayım, teşekkürler, sadece buradaki aktarımdan bahsediyordum.
WhyNotHugo

0

@CodeDog örneğinde sorunlar var ..

Evet, kullanıcıların bir kafeterya kutusuna giriş yapacağına inanabilirim. Kurumsal bir kafeteryadan günlükleri kaydediyorsanız, güvenlik ihlali sizsiniz demektir . Kurumsal kahve kutuları devre dışı bırakılmalıdır, örn. Terim yok, kaydedici yok, uzaktan erişim yok, vb. Sizi, içerideki hacker'ı önlemek için.

Örnek, bilgisayar erişim güvenliğinin iyi bir örneğidir ve gerçekten ağ güvenliğiyle ilgili değildir. İstemci tarafında hashing için gerekçe olarak sağlanmıştır, ancak eğer bilgisayar erişiminiz varsa, sadece bir tuş vuruşu kaydedici kullanabilir ve bunu atlayabilirsiniz. İstemci tarafındaki hash yine alakasız. @CodeDog'un örneği bir bilgisayar erişim saldırısıdır ve ağ katmanı saldırılarından farklı teknikler gerektirir.

Ayrıca, yukarıda belirtildiği gibi, halka açık bir bilgisayar saldırısı, sistemi tehditlere karşı sakatlayarak korunur. örneğin, halka açık bir kafeterya bilgisayarı için bir chromebook kullanın. Ancak bu fiziksel bir hack tarafından atlanır . Mesai saatleri dışında, kafeteryaya gidin ve kullanıcıların klavye basışlarını kaydetmek için gizli bir kamera kurun. O zaman kafeterya bilgisayarının sakat olup olmadığı veya ne tür bir şifreleme kullanıldığı önemli değildir.

fiziksel katman -> bilgisayar katmanı -> istemci katmanı -> ağ katmanı -> sunucu katmanı

Ağ iletişimi için, istemci tarafında karma oluşturup oluşturmamanız önemli değildir, çünkü https / ssl katmanı düz passwd'yi şifreler. Diğerlerinin de belirttiği gibi, TLS güvenliyse istemci karması gereksizdir.


1
İyi noktalar belirlerken, bir yanıta yanıt veriyorsunuz (ki bu, sorulan soruyla gerçekten alakalı değildir), bu nedenle Stackoverflow Soru-Cevap modeli için pek uygun değildir.
Martin
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.