it-swarm-tr.com

Sertifika tabanlı kimlik doğrulaması ile Kullanıcı Adı ve Parola doğrulaması karşılaştırması

Sertifika tabanlı kimlik doğrulamanın kullanıcı adı ve şifre kimlik doğrulamasına göre avantajları ve dezavantajları nelerdir? Bazılarını biliyorum ama yapılandırılmış ve ayrıntılı bir cevabı takdir ediyorum.

GÜNCELLEME

Hangi saldırılara eğilimli olduklarını bilmekle de ilgileniyorum, ör. şu ana kadar kaba kuvvetten bahsederken, sertifikalar için hiçbir şeyden bahsedilmezken ... XSRF'den ne haber? Sertifikanın daha kısa bir ömre sahip olması ve bir yönetici politikası tarafından değiştirilmeyi istemeden önce bir şifre daha uzun süre geçerken iptal edilebilir olması beklenir ...

95
Stefany

1. Kullanıcılar aptal

Parola, kullanıcının belleğine uyan bir şeydir ve kullanıcı onu seçer. Kimlik doğrulama kullanıcının fiziksel kimliğini doğrulamakla ilgili olduğundan uzaktan (doğrulayıcı açısından), kullanıcı davranışı mutlaka sürece dahil olur - ancak, şifreler güvenliği, yani beynini idare etmede en kötü şöhretli kullanıcı. Kullanıcılar sadece şifre entropisinin ne hakkında olduğunu kavramazlar. Ben bunun için suçluyorum değilim: Bu teknik bir konu, yakın zamanda gerçekçi bir şekilde "sağduyu" olamayacak bir uzmanlık. Öte yandan, fiziksel bir token güvenliği çok daha "somut" ve ortalama kullanıcılar bu konuda oldukça iyi olabilir. Evrimciler, insanların son milyon yıldır bunun için olumlu bir şekilde seçildiğini söyleyeceklerdi, çünkü çakmaktaşı aletlerine dayanamayanlar, yavrulara sahip olacak kadar hayatta kalamadılar.

Hollywood filmleri, kullanıcıların parolaları nasıl düşündüklerinin bir modeli olarak kullanılabilir. Her zaman, Arch Enemy'in kısa bir şifresi vardır ve sadece parolayı övünmeyi sever ve mümkün olduğunca ipuçlarını dağıtır. Ve her zaman bir İngiliz Gizli Ajanı, Kraliçe'nin en sevdiği çiçek yatağının altına ekilen füzyon bombasını devre dışı bırakmak için şifreyi zamanında tahmin eder. Filmler çarpık, abartılı bir gerçeklik yansıtır, ancak yine de ortalama kullanıcıların üzerinde çalıştığı zihinsel temeli temsil eder: saldırgandan daha "esprili" olarak güvenlik sağlamak için şifreleri öngörürler. Ve, her zaman, çoğu başarısız olur.

"Parola gücü" zorunlu kurallarla (en az sekiz karakter, en az iki basamak, en az bir büyük harf ve bir küçük harf ...) geliştirilebilir, ancak bu kurallar kullanıcılar tarafından bir yük olarak görülür ve bazen doğuştan gelen özgürlükleri üzerinde sınırsız bir kısıtlama - böylece kullanıcılar kurallara, büyük bir yaratıcılıkla, yapışkan bir notta geleneksel şifre yazımından başlayarak savaşırlar. Çoğu zaman, parola güçlendirme kuralları bu şekilde geri teper.

Öte yandan, kullanıcı sertifikaları bir depolama sistemi anlamına gelir ve bu sistem kullanıcının ev veya araba anahtarlarıyla taşıdığı fiziksel bir cihaz ise, güvenlik (kısmen) ortalama bir kullanıcının güvenliğini ne kadar iyi yönettiğine bağlıdır. fiziksel nesne ve genellikle iyi bir iş çıkarıyorlar. En azından iyi bir şifre seçmekten daha iyi. Yani bu sertifikaların büyük bir avantajı.

2. Sertifikalar asimetrik şifreleme kullanır

"Asimetri" rolleri ayırmakla ilgilidir. Parola ile, parolayı kim doğrularsa bir noktada parolayı veya parola eşdeğeri verileri bilir (iyi, PAKE protokolleri için bu tamamen doğru değildir ). Kullanıcı sertifikalarında, sertifika, fiziksel kimlik ile kriptografik ortak anahtar arasındaki bağlantıyı garanti eden bir sertifika yetkilisi tarafından verilmiş olur. Doğrulayıcı bir farklı varlık olabilir ve böyle bir bağlantıyı doğrulayabilir ve kullanıcının kimliğini doğrulamak için kullanabilir, olmadan kullanıcının kimliğine bürünme yeteneği kazanır.

Özetle, bu sertifikaların noktasıdır: tanımla kullanıcı dijital kimliğini (yani fiziksel kimlikten bilgisayar dünyasına eşlemeyi yapan varlık) = kimlik doğrulaması kullanıcı.

Bu, reddetme getirmeyen dijital imzalar yolunu açar. Bu özellikle çevrimiçi müşterilerden finansal sipariş alan bankaları ilgilendiriyor: müşterileri doğrulamaları gerekiyor (bahsettiğimiz para bu, çok ciddi bir mesele), ancak emirlerin ikna edici bir izine sahip olmaktan memnuniyet duyarlar: Hakim ikna olur. Sadece kimlik doğrulamasıyla, banka doğru müşteriyle konuştuğuna dair bir güvence kazanır, ancak üçüncü taraflara kanıtlayamaz; Banka sahte bir bağlantı dökümü yapabilir, bu nedenle bankanın kendisi tarafından çerçevelendiğini iddia eden bir müşteriye karşı silahsızdır. Kullanıcının sertifikası olsa bile dijital imzalar hemen kullanılamaz; ancak kullanıcı kimlik doğrulama için bir sertifika kullanabiliyorsa, zor işlerin çoğu yapılmıştır.

Ayrıca, parolalar kimlik avı saldırılarına karşı doğal olarak savunmasızdır, ancak kullanıcı sertifikaları değildir. Tam olarak asimetri nedeniyle: sertifika kullanımı hiçbir zaman eşe herhangi bir gizli veri göstermeyi içermez, bu nedenle sunucuyu taklit eden bir saldırgan bu şekilde değerli bir şey öğrenemez.

3. Sertifikalar karmaşıktır

Kullanıcı sertifikalarını dağıtmak karmaşıktır, bu nedenle pahalıdır:

  • Herhangi bir PKI tedarikçisinin size söyleyebileceği gibi (ve gerçekten de söylüyorum) sertifika vermek ve yönetmek tam bir solucan kutusudur. Özellikle iptal yönetimi. PKI yaklaşık% 5 şifreleme ve% 95 prosedürdür. Bu olabilir yapılabilir, ama ucuz değil.

  • Kullanıcı sertifikaları, kullanıcıların özel anahtarlarını "özel erişimleri" altında bir şekilde sakladıklarını belirtir. Bu, yazılımda (mevcut işletim sistemleri ve/veya Web tarayıcıları bunu yapabilir) veya özel donanım kullanılarak yapılır, ancak her iki çözümün de kendi kullanılabilirlik sorunları vardır. Ortaya çıkabilecek iki ana sorun şunlardır: 1) kullanıcı anahtarını kaybeder ve 2) bir saldırgan anahtarın bir kopyasını alır. Yazılım depolama, anahtar kaybını makul bir sorun haline getirir (arızalı bir sabit diskin insafına) ve anahtarı birkaç sistem arasında paylaşmak (örneğin bir masaüstü bilgisayar ve iPad), saldırganlara karşı iyi korunma olasılığı düşük bazı manuel işlemleri ima eder. Donanım belirteçleri, daha da kötü olabilecek aygıt sürücülerinin tüm dağınık işlerini ima eder.

  • Bir kullanıcı sertifikası, istemci tarafında nispeten karmaşık matematik işlemleri anlamına gelir; bu, anemik bir Pentium II için bile sorun değil, ancak genel bir Web sitesinde tokatlanan bazı Javascript'ten sertifika kullanamayacaksınız. Sertifika gerektirir istemci tarafı yazılımdan aktif işbirliği ve söz konusu yazılım, diyelim ki, bu konuda ergonomik olarak yetersizdir. Ortalama kullanıcılar normalde bir Web sitesine HTTPS bağlantısı için istemci sertifikalarını kullanmayı öğrenebilir, ancak zaman zaman uyarı pop-up'ının nasıl göz ardı edileceğini öğrenme pahasına, bu da onları bazı saldırılara karşı daha savunmasız hale getirir (örneğin, saldırganın yapmaya çalıştığı aktif saldırılar) onlara kendi sahte sunucu sertifikasını verin).

Öte yandan, şifre tabanlı kimlik doğrulamanın hemen hemen her yere entegre edilmesi gerçekten kolaydır. Tabii ki karışıklık yapmak da eşit derecede kolay; ancak en azından zorunlu olarak sıkıştırılamaz bazı ekstra maliyetler içermez.

Özet

Kullanıcı sertifikaları, parolaların yapamayacağı rollerin ayrılmasına izin verir. Bunu, pahalı hale getiren bir uygulama ve dağıtım sorunları grubu eklemek pahasına yapıyorlar. Bununla birlikte, şifreler, doğası gereği düşük güvenlik anlamına gelen bir insan zihnine uyarak ucuz kalır. Parolalarla ilgili güvenlik sorunları, bazı hileler tarafından (PAKE protokolleri dahil olmak üzere) bir ölçüde azaltılabilir ve en önemlisi, bir sorun durumunda kullanıcıyı suçlayabilir (ortalama kullanıcının güvenli bir şifre seçemeyeceğini biliyoruz, ancak herhangi bir aksilik hala onun hatası - bankalar böyle yapar).

94
Thomas Pornin

Kullanıcı adı/Şifre

  • Pro: Kolay kurulum - sadece bir kod ve güvenli bir veri deposu alır. Güvenlik politikasına bağlı olarak, şifreleri otomatik olarak oluşturabilir veya yeni kullanıcıları bunları oluşturmaya zorlayabilir.

  • Pro: Yönetilmesi kolay - şifre sıfırlamaları (bazı güvenlik politikaları için) otomatik araçlarla yapılabilir

  • Con: İyi bir güvenlik için şifreler erken ve sık sık sıfırlanmalıdır. Kullanıcının şifreleri unutması veya değiştirmemesi, bir güvenlik riski veya kullanılabilirlik güçlüğüdür.

  • Con: İyi parolaları hatırlamak zor olabilir, bu da kullanıcıların parolaları yeniden kullanmalarına veya yazmalarına neden olur.

  • Con: Parola veri depoları zayıf bir noktadır - davetsiz misafir parola deposunu alırsa, ana yükü alır.

  • Con: Parola iletiminin tüm bölümleri maruz kalmaya yol açabilir - kullanım kolaylığı için parolaları yerel olarak depolayan web siteleri, net olarak iletilen dahili sunucu bileşenleri, parolaları net olarak saklayan COTS ürünlerinde günlük dosyaları. Sır, iletimin bir parçası olduğu için, en zayıf bağlantınız kadar güçlü olursunuz - maruz kalmayı önlemek için ciddi çaba harcar ve gereklilik hem kullanıcı hem de sistem geliştiricisidir.

Sertifikalar:

  • Pro: Sırrın iletilmesini gerektirmez. Özel anahtarın kanıtı gizli bilgi içermez - her türlü depolama/iletim zayıf noktasını azaltır.

  • Pro: Birden fazla uygulamadaki durum için merkezi bir yönetim sistemine izin veren güvenilir bir taraf (CA) tarafından verilir. Bir sertifika kötüleşirse iptal edilebilir. Paylaşılan bir kimlik kullanılmadığı sürece her sistem için ayrı bir parola kırılmasını düzeltme işlemi yapılmalıdır.

  • Pro: Reddetme durumu daha güçlüdür - çoğu şifre sisteminde, hesap oluşturmadan önce kullanıcının kimlik doğrulaması yapma şekli oldukça zayıftır ve şifre sıfırlama mekanizmaları başka bir makul inkar edilebilirlik faktörü sunabilir. Birçok sertifika verme biçimiyle, bir kullanıcının kendileri olmadığını söylemek çok daha zordur. Dikkat - hala yalnızca CA'nızın yayınlama politikaları kadar iyisiniz.

  • Pro: Kimlik doğrulamasından daha fazla amaca hizmet eder - bütünlük ve gizlilik de sağlayabilir.

  • Con: Yine de bir şifre/pin gerektiriyor - hemen hemen tüm özel anahtar çifti depolama mekanizmaları bir PIN ile açılıyor. SmartCard'lar kaba kuvveti önlemek için kurcalamaya karşı koruma ve kilitleme yeteneklerine sahip olabilir, ancak bu, kullanıcının kartın yerleştirildiği bilgisayarın yanındaki yapışkan not üzerine PIN) yazdığı gerçeğini düzeltmez. şifre sorunları PKI ile daha küçük ölçekte yeniden ortaya çıkıyor.

  • Con: Altyapının karmaşıklığı - PKI kurmak kolay bir iş değildir ve hem dağıtım hem de bakımda genellikle çok büyüktür ve yalnızca büyük/pahalı sistemler için kullanılabilir.

  • Con: Sertifika Durumu raporlaması ve güncellemeleri kolay değil - altyapının boyutu ve karmaşıklığı nedeniyle bozulan bir kullanıcı kimlik bilgisini iptal etmek zahmetlidir. Genellikle bir CA, OCSP sunucusu içinde sağlanabilen veya sağlanamayan bir CRL oluşturur. Daha sonra her uygulama CRL veya OCSP durumu için her girişi kontrol etmelidir. Bu, bir PKI kimlik bilgisinin güvenliği ihlal edildiği bildirildiği zaman ile söz konusu kimlik bilgisine dayanan sistemlerin gerçekten erişimi reddetmeye başladığı zaman arasında sisteme çeşitli zaman gecikmeleri getirir. Durum güncellemesinin hızı hızlandırılabilir - ancak daha yüksek bir sistem karmaşıklığı maliyetiyle.

Birkaç not daha:

Sertifikanın daha kısa bir ömre sahip olması ve bir yönetici ilkesinin değiştirmesini istemeden önce bir şifre daha uzun süre geçerliyken iptal edilebilmesi bekleniyor ...

Bu önermeye katılmıyorum. Hem parolayı hem de PKI'yı destekleyen bu sistemlerde, parola güncelleme gereksinimleri ilkesi, sertifika verme ilkesinden ÇOK daha kısadır. İptal, farklı bir solucan kutucuğudur - daha az olası özel anahtar anlaşması olayı içindir. Özel anahtar verileri sistem üzerinden iletilmediğinden, bu verilere maruz kalma riskinin genellikle parola maruz kalma riskinden çok daha düşük olduğu varsayılır. Pratik amaçlar için, şifrelerin daha kısa ömürlü olduğu düşünülmektedir.

Hangi saldırılara eğilimli olduklarını bilmekle de ilgileniyorum, ör. şimdiye kadar kaba kuvvetten bahsetmişken, sertifikalar için hiçbir şeyden bahsedilmezken ... XSRF'den ne haber?

Burada elma ve portakalları karıştırıyorsunuz. Kaba kuvvet, her iki kimlik doğrulama bilgisine de uygulanabilir bir saldırı olabilir - ancak XSRF, kimlik doğrulama mekanizmasından bağımsız olarak mümkün olabilecek temel bir uygulama türüne yapılan bir saldırıdır. Eğer kullanıcı adı/şifre bir tür metin arayüzü ile girilebileceği anlamına gelmedikçe, bu arayüzde siteler arası kodlamaya eğilimli olabilirler.

Genel olarak (resmi terminoloji eksikliğim için özür dilerim - Genellikle tipik saldırı şartlarına bakarım ama zamanında yetersizim):

  • Kaba kuvvet - ortalama parolanızın anahtar alanı, asimetrik bir anahtarın anahtar boşluğundan daha küçük olduğu için, bir parola kaba kuvvet uygulamak daha kolaydır. Bununla birlikte, bir sertifikadaki yeterince küçük bir anahtar boyutu da kaba kuvvet uygulayabilir ve kaba saldırı saldırı anahtarlarını kaba tutma yeteneği, anahtar boyutundaki bir sıçan yarışını zorlayan CPU yetenekleriyle birlikte büyür.

  • Eğitimli tahmin - anahtar boşluğunu makul bir dizi tahminle daraltmak şifrelerle daha kolaydır ve RSA algoritmasında zayıf anahtarlar olmasına rağmen, çoğu asimetrik anahtar algoritması için çok açık değildir, bu nedenle bir kripto nerdinin ne kadar büyük olduğuna dair bir bağımlılık vardır. saldırgan.

  • Sosyal Mühendislik - her iki şekilde de yapılabilir, ancak donanımda depolanan bir sertifika ile, yalnızca kullanıcının PIN değil, aynı zamanda anahtarlarını depolayan donanımın da kontrolünü almak zorundasınız.

  • İç saldırı - kimlik bilgilerini sistemin içinden almak ve daha sonra bunları meşru bir kullanıcıyı taklit etmek için kullanmak - bağlıdır. Parolalar güvenli olmayan bir şekilde saklanırsa, bu parola tabanlı bir sistem için daha yapılabilir. Ancak CA'nın kontrolünü ele geçirebiliyorsanız, kendinize meşru bir sertifika verebilirsiniz ve bu da erişimin nasıl kontrol edildiğine bağlıdır.

  • Ortadaki adam - bağlıdır - ortadaki bir adam, parola kendisini atlayan bir şifreleme mekanizması tarafından transit olarak şifrelenmezse bir parolayı ele geçirebilir. Bu SSL/TLS ile yapılabilir. Bununla birlikte, ortadaki bir adam, PKI'nın nasıl kullanıldığına bağlı olarak bir PKI transferinin bölümlerini de kesebilir. Noce veya zaman damgası olmayan PKI imzaları, ortadaki bir adam tarafından çoğaltma saldırılarına açıktır - mesajın zamanında veya benzersiz olup olmadığını anlamanın bir yolu olmadığı sürece yakalanan bir mesajı yeniden gönderebilir.

32
bethlakshmi
  1. Kullanıcı adları ve Parolalar
    • Her şey bildiklerinizle ilgili. Hizmetle kimlik doğrulaması için gizli bir kod Word veriyorsunuz.
    • Bu, akışta durdurulursa kullanılabileceği anlamına gelir. Şifreleme kullanımı bunu mümkün olmasa da yine de mümkün kılar. Birisi parolanızı almak veya kimlik doğrulaması almak için bilgisayarı ele geçirmek için ortada bir adam yapabilir.
    • Bir kullanıcı adı ve parola herhangi bir bilgisayarda herhangi bir zamanda kullanılabilir. Güvenlik önemliyse bu kötü bir şeydir ve erişilebilirlik önemliyse iyi bir şeydir. Bir banka için ... bu kötü. Facebook için gerçekten önemli değil.
  2. Sertifikalar
    • Sertifikalar biraz daha karmaşıktır. Sunucu istemciye veri gönderir ve istemci verileri imzalar ve geri gönderir. Bu, sunucunun özel anahtarı hiçbir zaman bilmediği anlamına gelir, bu nedenle sunucunun ortasındaki veya ele geçirilen bir adam erişimine neden olurken, anahtarınız yoktur.
    • Sertifikalar kullanmak için bir acıdır. Onları hatırlayamazsınız ve çalınabilirler.

En iyi sistem bir kombinasyondur. İki faktörlü kimlik doğrulamanız için anahtara bir parola koydunuz. Bildiğiniz bir şey (şifre) ve sahip olduğunuz bir şey (anahtar). Bununla birlikte, daha fazla güvenlik katmanı, daha fazla acıdır. Tüm güvenlikteki büyük ödünleşmedir.

8
Stephen

Stephen'ın puanlarına katılıyorum. Sorun genellikle bir diğerinin karşılaştırılması olmadığı için araştırmaya zor bir soru sunuyorsunuz. Neden her ikisinin de var olduğunu ve genellikle birbirine karşı derecelendirilmediğini anlamanın iyi bir yolu kullanıma odaklanmaktır. Sertifikalar makine seviyesi anahtar depolarına bağlıdır ve bu nedenle önceden planlanan belirli makineler arasında makineden makineye kimlik doğrulaması için harikadır. Şifreler, mobil olduğumuz ve önceden tahmin edilmesi zor bir şekilde çok sayıda sistemden kimlik doğrulama eğiliminde olduğumuz için insanlar için çok uygundur. Bu nedenle sertifikalar, önceden tasarlanmış donanım tabanlı kimlik doğrulamasında tipiktir ve parolalar, mobil su yazılımı tabanlı kimlik doğrulaması için iyidir. Akıllı kart, mobil insana sertifika tabanlı kimlik doğrulama ve işleme başka bir faktör eklemenin harika bir yoludur.

8
zedman9991

Bir şifre genellikle kaba-zorla kullanılabilir ve sosyal olarak oluşturulabilir, çünkü sahibinin ezberlemesi gerektiğinden, genellikle gizli bir anahtardan çok daha basittir.

Özel bir anahtar (yeterli güçte - RSA, 2048 veya 4096 bit için) kaba zorlanamaz. Ortak anahtar tabanlı kimlik doğrulaması gerektiren bir sistemde kimlik doğrulamanın tek yolu, özel anahtarı elde etmek için önce başka bir bilgisayara erişim elde etmektir. Bu, herhangi bir saldırıya ek bir karmaşıklık düzeyi ekler. Bir kişinin şifresini açmasını sağlamak için sosyal mühendislik yardımcı olmayacaktır, çünkü şifre doğrudan hedef sisteme erişim izni vermek yerine özel anahtarının şifresini çözer. Sosyal mühendislik, bir kişinin şifresini birlikte özel anahtarını açığa çıkarması çok daha zor olacaktır.

Ayrıca, şifreler ağ üzerinden kullanıcının makinesinden kullanıcının kullanmak istediği sisteme aktarılır. Özel anahtarlar ne açık ne de şifrelenmiş biçimde ağ üzerinden iletilmez; daha ziyade sadece ortak anahtar iletilir.

3
yfeldblum

Bir web sayfasının hem sertifikaları hem de şifreleri kullanabileceğini unutmuşsunuzdur. Sertifikalı bir kullanıcı gelirse, kapı açılır. Ve eğer bir sertifikası yoksa, her zamanki gibi isim ve şifre ile giriş yapmalıdır.

Bu şekilde, ilgilenen kullanıcılar kendi sertifikalarını alırlar, diğerleri bunu eski şekilde yapar.

1
Martin

Bir seçenek eklemek istiyorum - Bir defalık şifre cihazları. Başkalarının sertifikaların ve parolaların artıları ve eksileri hakkında söylediklerine katılıyorum - OTP cihazları çalıştırmak için bazı arka uç bileşenleri gerektirir, ancak bence çok fazla güçlük çekmeden entegre edilebilir (Active Directory biraz farklı, ancak diğer sistemler çok zor değildir).

Parola ve bir defalık parolanın kombinasyonu çok iyi çalışır. Parolalı bir Yubikey (USB veya NFC bağlantı gereklidir) veya görüntülenen bir kod fob gibi daha basit bir çözümle gidebilirsiniz.

Her iki seçeneğin de Linux tabanlı işlemlere eklenmesi kolaydır. Active Directory'de yapmak istiyorsanız, kodu işlemek ve her AD sunucusuna yüklemek için yazılım satın almanız gerekir. Kullanıcı daha sonra OTP'yi parola alanının başlangıcına, ardından normal parolasına girer. Bunun için kendi modülünüzü geliştirmek mümkündür, ancak gördüğümden maliyet engelleyici.

1
Mat Carlson