Soru:
Doğal olarak güvensiz hesaplarda kalıcı olarak oturum açılmıyor mu?
Will
2011-07-28 00:42:45 UTC
view on stackexchange narkive permalink

"Oturumu kapatana kadar oturumumu açık tut" özelliğinin ardındaki temel dayanak, siteye döndüğünde kullanıcının tekrar oturum açması için kullanılan bazı tanımlayıcılarla birlikte saklanan bir çerezdir. Bu tanımlayıcılar genellikle oldukça uzun olsa da, bir saldırganın şanslı olana kadar tanımlayıcıları rastgele tahmin etmesi - bir tanımlama bilgisini taklit ederek - düşünülemez mi?

Çok büyük miktarda giriş hesabı olan bir sitede bir eventually

isabet edecekti

​​Buna karşı korunma konusundaki düşüncelerim, bir IP adresinin bir çerezle otomatik olarak oturum açmaya çalıştığı her denemeyi günlüğe kaydetme ile birleştirilen, çok sayıda olası değere sahip bir belirteç; Geçersiz bir jetonla yapılan herhangi bir girişim saldırı olarak kabul edilir ve bu IP adresi kilitlenir.

Bu aşırı mı? Hiçbir şey için endişelenmiyor muyum?

Kaç tane aday 64 bit çerez değeri olduğunun farkında mısınız? Matematik yap. Sanırım, evrenin ısı ölümünün, bir kazanan arayan rastgele hash kodlarını araştıran herhangi bir "en sonunda" testten önce gerçekleştiğini göreceksiniz.
S.Lott haklı. Gerçek kripto kullanıyorsanız, birinin rastgele bir şekilde bir jetonu tahmin etme (veya hatta kaba zorlama) olasılığı çok düşüktür.
@S.Lott: Kabul edildi. Özellikle [Fire Sheep] (http://en.wikipedia.org/wiki/Firesheep) yükleyebildiğinizde, Starbucks'a gidin ve ihtiyacınız olan tüm geçerli jetonları alın.
@KeithB: Doğru. Aslında, Starbucks'taki sistem yöneticileri için birkaç fincan kahve satın alabilir ve herhangi bir teknik araç kullanmadan şifreler alabilirsiniz. Sosyal mühendislik harikalar yaratır.
Sadece omuzlarının üzerinden bakın. Bu "n" miydi?
@chad, security.se'de profesyonel moderatör olarak buraya tam olarak bunu söylemek için geldim. Sorunun taşınmasını memnuniyetle karşılıyoruz ve oradaki topluluktan bazı iyi yanıtlar alacağımızı düşünüyorum.
Yedi yanıtlar:
Thomas Pornin
2011-07-28 21:30:03 UTC
view on stackexchange narkive permalink

İşin püf noktası da "sonunda" Evrenin öngörülen yaşam süresinin ötesine geçmesini sağlamak. Üstel değerler nedeniyle bu oldukça kolaydır: Yeterince uzun bir çerez kullanın. Eklenen her bir bit, olası çerez değerlerinin sayısını ikiye katlar .

Örneğin, 16 milyar kullanıcınız olduğunu varsayın (yani, bebekler dahil her bir insan iki veya üç hesap oluşturur) . Bu yaklaşık 2 34 hesaptır. 160-bit çerezler kullanın (20 bayt, bir çerez için terletmeye gerek yok). Bu 2 160 olası çerez değeridir, bu nedenle her 2 126 içindeki yalnızca bir çerez değeri mevcut bir hesaba bağlanır. Şimdi, saldırganımız gerçekten motive oldu ve saniyede bir milyar değeri deneyecek (bu gerçekten büyük çünkü "bir çerez değeri denemek" sunucunuza bağlanmak anlamına geliyor, bu nedenle sunucunuzun yeterince itici olduğunu varsayıyoruz saniyede bir milyar bağlantıyı idare etmek için - muhtemelen tüm İnsanlığın müşteriniz olması durumunda bunu karşılayabilirsiniz). Bir milyar yaklaşık 2 30 , dolayısıyla saldırganın geçerli bir çerez değerine ulaşmadan önce yaklaşık 2 96 saniye denemesi gerekir. "2 96 saniye", "yaklaşık 2500 milyar yıl" olarak da bilinen bir süredir: bu saldırgan kesinlikle sabırlı ve kendini adamıştır.

Yani bu, alıştırma: birkaç bayt daha ve saldırganlar tam sayılar tarafından engellenir. Kilitleme özelliklerini uygulamaya gerek yoktur (özellikle kilitleme özellikleri bazen farkında olmadığınız herhangi bir tarayıcı hatasından veya bunun gibi kötü bir şeyden etkilenen dürüst müşterilere vurarak geri tepebilir). Elbette bu, çerez değerlerinin yeterince güçlü bir Random Number Generator ile oluşturulduğunu varsayar; Windows'ta CryptGenRandom (), Linux'ta / dev / urandom / * BSD / Solaris, Java ile java.security.SecureRandom düşünün.

(Evrenin yaşam süresiyle ilgili kısım, ancak Büyük Çatlak hipotezi doğruysa ve Tanrı yoksa doğrudur [çünkü sonsuzluk da biraz uzundur ]).

Ayrıca sonsuzluk büyüktür!
Muhtemelen tek bir değerli hesap için 2500 milyar milyarlarca yıl (diyelim ki 1 milyar) ve 15 milyar işe yaramaz hesaptan.
ammoQ
2011-07-28 01:07:37 UTC
view on stackexchange narkive permalink

İyi (uzun, güçlü, rastgele) bir tanımlayıcı çerezi tahmin etmek, tipik bir şifreden çok daha zordur. Bu yeterince güvenli.

Ne için yeterince güvenli?
lolcats.org'da oturum çerezini kaba zorlamak için. Sitede herhangi bir gerçek veriye sahipseniz, SSL kullanmanız * gerekir *. 160 bitlik bir çerezde bir milyon geçerli noktadan birine isabet etmek, gerçekten endişelenmenize gerek olmayan bir şeydir.
"Yeterince güvenli", oturum tanımlama bilgisinin körü körüne tahmin edilmesinin, sisteminizin en zayıf halkası olmayacağının neredeyse garanti edildiği anlamına gelir.
S.Lott
2011-07-28 01:20:01 UTC
view on stackexchange narkive permalink

Buradaki püf noktası, "çok faktörlü" kimlik doğrulamasını kullanmaktır.

Çerez, artı IP adresi, artı HTTP başlığındaki diğer bilgiler, kullanıcının bir miktar "sürekliliğini" sağlar. Örneğin, aynı bilgisayarı her zaman aynı yerden kullanıyorsanız, kabul dili ve kullanıcı aracısı çok fazla değişmez.

Küçük bir JavaScript, benzer şekilde çok sık değişmemesi gereken window.screen bilgilerini döndürebilir.

Evet, sahtecilik yapılabilir. Ancak çoğu zaman, çalınan bir çerez, istekte beklenmedik bir HTTP üstbilgi değerine sahip beklenmedik bir IP adresine de ulaşır.

Diğer başlıklar hakkında herhangi bir şüphe, çerezin şüpheli olduğu ve sağlanır.

IP adresini oturum / kimlik doğrulama bilgilerinize kodlamak baş ağrısına neden olabilir. Ağ yük dengeleyicileri (veya proxy'ler) kullanan birçok büyük şirket, kullanıcıların istekler arasında IP adreslerini değiştirmesine neden olabilir. Bunun diğer örnekleri, IP adreslerini sık sık atlayan Uydu internet kullanıcılarıdır. Sonuç olarak, bir kullanıcının her isteği doğrulaması gerekebilir (eğer korkunç derecede şanssız kalırlarsa). Bu küçük bir yüzde, ancak dikkate alınması gereken bir şey.
@Jack M .: "IP adreslerini sık sık atlayan uydu internet kullanıcıları" Kesinlikle. JavaScript `window.screen` kullanmak oldukça popülerdir.
IP yerine alt ağların kullanıldığını da gördüm. Bu sadece farkında olunması gereken bir şeydir, çünkü birisi sizi ilk aradığında ve oturum açmaya devam etmek zorunda kaldığını söylediğinde, bunu anlamak ve düzeltmek uzun zaman alır.
"Çok faktörlü", kimlik doğrulamayı tanımlamak için kullanılan bir terimdir, ancak bu soru güvenli oturum yönetimi hakkındadır. HTTP başlıkları sahte olabilir ve diğerlerinin de belirttiği gibi IP adreslerine bağlı olarak sorunludur. Ayrıca bkz. "İki faktörlü" kimlik doğrulama için tipik olarak "sahip olduğunuz bir şey" nasıl tanımlanır? - BT Güvenliği - Yığın Değişimi] (http://security.stackexchange.com/questions/3796/how-is-something-you-have-typically-defined-for-two-factor-authentication)
@nealmcb: Bunu genel bir terim olarak kullanamayacağımı mı söylüyorsunuz? Öyleyse, birden fazla faktör kullanmak için kullanılan genel terim nedir?
Sanırım buna "çok faktörlü * yetkilendirme *" diyebilirsiniz. Ama söylediğim gibi, önerdiğiniz seçenekler sorunlu ve kimlik doğrulama ile ilgili değil. Bu seansın başında gerçekleşecekti. Cevabımda belirttiğim gibi SSL, ihtiyaç duyulan ana şeydir. IP adresleri veya http başlık kontrolleri için herhangi bir isteği ortadan kaldırır.
Bu cevap tamamen sahte. Soruyu soran kişinin ortaya çıkardığı sorunla ilgilenmek için çok faktörlü kimlik doğrulamaya ihtiyacınız yoktur. Rasgele bir 64-bit oturum kimliği, bir saldırganın kaba kuvvet kullanarak oturum kimliğini tahmin etmesini önlemek için fazlasıyla yeterlidir. Bu tehdide karşı ihtiyacınız olan tek şey çerezlerdir.
Güvenlik ekleyebileceği için bu yanıtı sahte olarak nitelendireceğimi bilmiyorum. Ancak, kalıcı olarak oturum açılmış hesapların doğası gereği güvensiz olup olmadığı sorusuna gerçekten cevap vermiyor. Sadece nasıl daha güvenli hale getirilebileceklerini ele alıyor.
nealmcb
2011-07-28 21:35:02 UTC
view on stackexchange narkive permalink

En önemli şey, TLS / SSL ile bağlantıyı güvence altına almaktır. Bu olmadan, SSL kullanmadan FireSheep'ten bir web uygulamasını koruyabilir misiniz? sayfasında belgelendiği gibi FireSheep gibi saldırılara karşı savunmasızsınız.

Bu noktada başka büyük riskler de ortaya çıkıyor oyun, oturum açılmış makineyi tehlikeye atan veya ona fiziksel erişim sağlayan biri gibi.

Diğerlerinin de belirttiği gibi, elde etmenin zor olmadığını belirttiği gibi, çerezdeki entropi miktarı hakkındaki soruya geri dönün. yeterince uzun ve yeterince rastgele bir çerez. Ayrıca bkz. Rastgele bir nonce ne kadar uzun olmalı? - BT Güvenliği - Yığın Değişimi

AviD
2011-08-05 03:19:24 UTC
view on stackexchange narkive permalink

Henüz gündeme getirilmemiş bir diğer sorun ve bunun, başlıklı soruyla (kalıcı olarak oturum açılmış hesaplar) daha çok ilgisi var ve oturum çereziyle daha az ilgisi var:

Kalıcı olarak oturum açmış hesapları, potansiyel saldırgana çok daha geniş bir saldırı penceresi sağlar.
Saldırgan, bir şekilde çerezinizi çalmayı yönetirse (ör. FireSheep, makinenize erişim, vb.), süresiz olarak geçerli olacak ve böylece çalınan bir çerezin kötüye kullanılması olasılığını artıracaktır.
Ayrıca, gelecekte birisi istemci makinenize erişirse - ör. paylaşılan masaüstü bilgisayarlar, ödünç alınmış dizüstü bilgisayar (veya çalınmış), İnternet kafe - hâlâ oturum açmış durumdasınız.

Bununla birlikte, bu, uygulamanın bağlamına bağlı olarak kullanıcılar için genellikle mantıklı olacak bir değiş tokuştur . Örneğin, gmail'imde (ve SE sitelerimde) oturum açmış durumda kalmak istiyorum, ancak bankamda değil.
Öte yandan, çerezinizin ilk etapta çalınmasını önlemek (SSL, herkese açık bir makinede oturum açmayın) , işiniz bittiğinde çıkış yapın vb.) her zaman iyi bir fikirdir.

+1 Evet, kullanıcılar rahatlık istiyor ... Aynı zamanda aptallık yüzünden hesapları hacklendiğinde sizi ilk suçlayanlar onlar.
Christoffer
2011-07-28 21:44:54 UTC
view on stackexchange narkive permalink

Aşağıda özetlendiği gibi, bu tür bir saldırı hakkında çok fazla endişelenmemenizin birkaç nedeni vardır:

  • Boyut - Yeterince büyük , çerez değerinin bir parçası olduğu varsayıldığında, şu anda geçerli olan bir çerezle eşleşen bir değer oluşturmak çok pahalı (zaman ve donanım açısından) olacaktır. Ayrıca, çerez oluşturma sürecine dahil edilen tüm ek değişkenlerin saldırgan tarafından bilindiğini varsayıyorum, iyi olur.
  • Uç nokta sınırlamaları - Sunucu Saniyede makul bir tahmin işleme hızı sağlamak için gereken ağ bağlantılarının miktarı düşünüldüğünde, ağ bağlantılarını sizin tarafınızdan yönetmek büyük olasılıkla inanılmaz bir darboğaz olacaktır (Potansiyel çerez değerlerinin aralığını düşünün!).
  • Ağ bant genişliği - Bir sunucunun korkunç cehennem makinesine erişiminiz olduğunu varsayarsak bile, saldırgan bunun yerine saldırıyı gerçekleştirmek için mevcut ağ bant genişliğiyle sınırlı olacaktır.

Varsayım Saldırganın amacı bir kullanıcının kimliğine bürünmektir. Şüphelenmeyen kullanıcılardan çerezleri çalma girişiminin çok daha muhtemel olduğunu iddia ediyorum.

Robert David Graham
2011-07-28 22:41:50 UTC
view on stackexchange narkive permalink

Evet, hiçbir şey için endişelenmiyorsunuz.

Öncelikle, tüm kombinasyonları deneyerek basitçe tahmin edilemeyecek kadar büyük bir anahtar kullanmalısınız. Örneğin, SHA1'in oturum açma adını, şifresini ve diğer bazı bilgileri şifrelerseniz, saniyede bir milyar kombinasyon denemek mümkün olsa bile, doğru kombinasyonu tahmin etmek evrenin yaşı daha uzun sürecektir.

Elbette daha risklidir, ancak güvenlik, riske karşı ödülü tartmakla ilgilidir (bu durumda kullanılabilirlik).

Çok daha fazla temel hata yaparsınız Çerezle ilgili bir sorun yaşamaktansa, her yerde HTTPS kullanımını zorlamamak.

SHA1 bir şifreleme algoritması değil, bir karma algoritmadır.
Oturum çerezleri doğası gereği rastgele olmalıdır. Deterministik bilgiyi kullanmak yaramaz.


Bu Soru-Cevap, otomatik olarak İngilizce dilinden çevrilmiştir.Orijinal içerik, dağıtıldığı cc by-sa 3.0 lisansı için teşekkür ettiğimiz stackexchange'ta mevcuttur.
Loading...