K-Anonimlik Uygulamalarına Saldırılar-Geri kalanımız için | D0NUT tarafından


Üç hafta önce diğer Bug Hunter’ın bir blog yazısı gördüm, Jack kablosu. Gönderi hem ilham verdi hem de meydan okudu. Sunulan saldırı vektörü, hesaplama güvenliğinde ikili sonuçtan daha fazla azalmaya odaklandı (örn. Ya ateş eden ya da yapmayan XSS).

Jack’in makalesi, K-anonimliği kullanan kötü niyetli (veya tehlikeye atılmış) bir uygulama tarafından teorik bir saldırı sunuyor, ben de kullanılan (HIBP) tarafından kullanılanlara benzer.

Bugün, K-Anonymity’nin ne olduğu ve HIBP’de K-Anonymity’nin uygulanmasının neden olduğu hakkında kısaca konuşacağız. Sonra Jack Cable tarafından tarif edilen saldırıyı derinlemesine teknik bilgi gerektirmeyecek şekilde parçalayacağız.

K-anonimlik kavramı çevrimiçi olarak başka bir yerde açıklanmıştır, bu yüzden buradaki diğer kaynaklardan büyük ölçüde ödünç almayı düşünüyorum. Ona karşı yapılan saldırılara bir göz atmadan önce sadece K-Anonymite hakkında temel bir anlayışa ihtiyacımız var.

DataprivacyLab.org’dan K-Anonimlik şu şekilde açıklanmaktadır:

  • Kişiye özgü, saha yapılandırılmış verilerden özel olarak tutulan bir koleksiyona sahip bir hastane veya banka gibi bir veri sahibini düşünün. Veri sahibinin verilerin bir sürümünü araştırmacılarla paylaşmak istediğini varsayalım. Bir veri sahibi, verilerin konusu olan bireylerin veriler pratik olarak yararlı kalırken yeniden tanımlanamayacağı bilimsel garantilerle özel verilerinin bir sürümünü nasıl yayınlayabilir? … Sürümde yer alan her bir kişinin bilgileri, bilgileri sürümde de görünen en az K-1 bireylerinden ayırt edilemezse, K-Anonymite koruması sağlar…

K-Anonymity’nin ele almaya çalıştığı ana sorunu cesurladım. K-anonimlik, çeşitli baskılama ve genelleme seviyelerini uygulayarak “kimliğin difüzyonu” elde etmeye çalışır.

Genelleme belirli bir bilgi parçasını (bir ev adresi gibi) alma ve bilginin hassasiyetini hala doğru, ancak daha az spesifik bir forma azaltma uygulamasıdır. Bir genelleme örneği bir kaydın dönüştürülmesidir. ev adresi ile şehir.

Bastırma atlama uygulaması mı (veya bastırma) tamamen bilgi.

Örneğin, bir veri koleksiyonum varsa (örneğin bir veritabanı) ve bu verileri bazı araştırmacılarla paylaşmak istiyorsam, veri kümesinde temsil edilen bireylerin gizliliğini ihlal edeceğim. Verileri belirli bireylere atfetmeyi zorlaştırmak için seçici olarak yapabiliriz genellemek Hassas veri alanları veya atlayabiliriz (veya bastırmak) onlara.

K-anonimlik öncesi ve sonra bir masa

Temel olarak bu yazının geri kalanını anlamak için K anonimliği hakkında bilmemiz gereken tek şey bu.

Pwned miydi, tarafından başlatılan harika bir hizmet Troy Hunt Bu, hesaplarınızdan birinin bir veri ihlali konusunda tehlikeye girip girmediğini belirlemenizi sağlar. Troy, ihlallerden veri dökümlerini toplar, verilerin geçerliliğini kanıtlar ve daha sonra bunları hizmetine yükler, bu da daha sonra çöplükte mevcut olup olmadıklarını HIBP’ye abone olan herkese bildirir.

İnanılmaz derecede kullanışlı bir hizmet ve herkesin bildirimler için abone olmasını şiddetle tavsiye ederim.

Ben de bugün eleştirilerimizin konusu olacak başka bir hizmet sunuyor mu? Troy birlikte çalıştı Junade Ali Cloudflare’den HIBP “Pwned Passwords” hizmetini oluşturmak için. Bu hizmet, Troy’un uzlaşmış şifreler koleksiyonunda belirli bir şifre olup olmadığını güvenli bir şekilde sorgulamanıza olanak tanır.

Zaten birkaç mühendislik zorluğu var:

  1. Kesinlikle kullanıcıların düz metin şifrelerini bu hizmete göndermelerini istemiyoruz! (“Sadece bana kredi kartı numaranızı gönderin ve bir hacker olup olmadığını söyleyeyim”)
  2. Muhtemelen bir yanıt olarak düz metin şifrelerinin bir listesini paylaşmak istemiyoruz

Troy ve Junade, k-anonimlikten sonra, istemci tarafı karma ve kısmi sorguların kullanıldığını içeren alternatif bir sistem buldular (Görmek: genelleme üstünde) Pwned şifre API’sına gönderilmiştir. Hizmet daha sonra, kullanıcının şifrelerinin bu listede olup olmadığını belirleyebilmesi için girişle aynı önekle paylaşan bir parola karma listesi döndürür.

Bu özellikle net değilse, işte daha iyi açıklayan bir diyagram.

Burada, kontrol etmek istediğimiz şifrenin önce istemci tarafında bir özet ürettiğini görebiliriz (F3bbd66a63d …). Daha sonra biz sadece Digest’in ilk 5 karakterini Pwned Passwords API’sına gönderin. Hizmet daha sonra bir liste gönderdiğimiz sırayla başlayan şifre sindirimleri (Gerçekte, 5 karakter önekini geri göndermiyorlar .. Ama bu sadece bir uygulama detayı ve burada önemli değil). Müşterimiz daha sonra kontrol etmek istediğimiz şifrenin tam, redaksiyon edilmemiş özetini alır (F3bbd66a63d …) ve bu sindirimin döndürülen listede olup olmadığını belirler.

Bu sistem, bir kullanıcının düz metin şifresini (veya basit bir özeti) göndermekten kaçınmasına ve HIBP kötü niyetli hale gelmesi veya tehlikeye girmesi durumunda parolalarını tehlikeye atmasını sağlar.

Bu sistem, bu garantileri makul bir “hesaplama güvenliği” seviyesine sunuyor gibi görünse de, Jack Cable’ın çalışmaları biraz yaparsak mantıklı Kullanıcıların hizmeti nasıl kullanabileceğine dair varsayımlar, kötü niyetli veya tehlikeye atılmış bir HIBP, kısmi bir sindirimin kullanımına rağmen şifrelerinizin güvenliğini büyük ölçüde azaltabilir genelleme.

Jack, bu modele karşı iki saldırıyı anlatıyor. Biri şifrelerinizin zaten tehlikeye atılmasına dayanır (ve bu nedenle Troy’un düz metin, tehlikeye atılmış şifrelerin bir kopyası vardır). Diğer saldırı, bir ilişkiye dayanır, komşu şifrelerKullanıcı tarafından gönderilen birden fazla şifre karması arasında. Anlaşıldığı üzere, her iki saldırı da çok benzer prensiplere dayanıyor, bu nedenle bunu anlamak daha kolay hale getirmek için, her iki saldırının da her biri ardıl olarak her iki saldırının altında yatan ilkeyi açıklama özgürlüğünü aldım.

Bir oyun oynayacağımızı hayal edelim…

Peki .. bu tür bir oyun değil.

Kurallarda birkaç özel değişiklik ile özel bir Hangman oyunu oynayacağız.

  1. Bir hangman oyunu yerine oynayacağız üç Hangman’ın eşzamanlı oyunları bir kerede.
  2. Sözde kaç harf olduğunu göstermek yerine, size kelimenin ilk üç harfini göstereceğim. Kelimeler bundan sonra herhangi bir uzunluk olabilir. (uygulama olabilir elma veya başvuru)
  3. Son olarak, kelimelerin için Tümü üç oyun olacak eşanlamlılar birbirlerinin.

Bu oyun, aynı anda sadece 1 değil 3 oyun kazanmaya çalıştığınızı düşünürken göz korkutucu görünebilir; Ancak, bu oyunun değiştirilmiş kurallarını kendi yararımıza kullanırsak, muhtemelen üçü de birkaç tahminle kazanabiliriz.

Diyelim ki ipucu (ilk üç harf) Üç oyunumuz için aşağıdakiler:

  1. HAC
  2. MKK
  3. Yavru

Yapacağımız ilk şey bir sözlük ve eşanlamlılar sözlüğü almak. O zaman, Oyun 1 için olası tüm cevapları denemek ve anlamaya isteyeceğiz. HAC O zaman bunu görebiliriz.

Venn diyagramı “tüm kelimeler” ve “HAC ile başlayan kelimeler” arasında kaba bir ilişki gösteriyor

Oyun 1’in cevabı o küçük sarı daire içinde yatıyor. Ne yazık ki, bu daire hala oyun 1 kaybetmeden önce hepsini tahmin etmemiz için çok fazla kelime içeriyor.

Neyse ki, bu bilgileri sözlükten avantajımıza kadar kullanabiliriz.

Bir sonraki adımımız, birlikte başlayan tüm kelimelerin listesini almaktır. HAC ve tam eş anlamlılarımızı inşa etmek için kullanın bir diğer liste. İle başlayan kelimelerin her eşanlamlı listesi HAC.

Sözlükten kelimeler listemiz aşağıdakilere benziyorsa:

Hack
Hackberry
Hacked
Hacker
Hackers
Hacking
Hacksaw
...

O zaman eş anlamlılar eşanlamlılardan listemiz aşağıdaki eş anlamlıları içerebilir:

Bu liste uzun olsa da, kesinlikle “Tüm Kelimelerin Listesi”. Oyun 2 ve Oyun 3’ün cevabını biliyoruz MUTLAK Birbirlerinin eş anlamlıları oldukları için bu listede olun. Bu nedenle, bir dahaki sefere sadece belirli bir önekle başlayan kelimeler bulmamız gerektiğinde, bu çok daha küçük kelime kümesini arayabiliriz.

Bizim durumumuzda, sadece 2 kelime ile başlar MKK (kraker Ve kraker) Oyun 3’ün cevabını bu noktada tahmin etmek oldukça kolay hale getirmek. Ancak, sadece örnek uğruna, süreçten geçmeye devam edeceğiz.

Görünüşe göre bir önceki adımı tekrarlamamız ve “Tüm kelimelerin listesi“İle başlayan MKK. Ama dediğimiz gibi, sadece umursuyoruz MKK olan kelimeler Ayrıca oluşturduğumuz eşanlamlılar listesinde mevcut HAC. Listemizi daha da daraltmak için, oyun 3 için ihtiyacımız olan kelimeler ( Yavru) Ayrıca İçinde olması gerek ikisi birden eş anlamlıların listeleri HAC Ve MKK kelimeler. Bu noktada tüm bunları başka bir diyagramda temsil etmek en iyisidir.

Özellikle orta bölümle ilgileniyoruz, çünkü bunlar Oyun 3’ün her iki eş anlamlılığı için olası adaylar HAC kelimeler ve eşanlamlılar MKK kelimeler (nerede MKK Kelimeler eşanlamlıdır HAC kelimeler).

Temel olarak aşağıdaki ilişkiyi kuruyoruz.

Sonunda, tüm kelimeleri daralttıktan sonra:

  1. Birbirlerinin eş anlamlıları
  2. İle başlamak HACMKKVe Yavru sırasıyla

Oyunlar için birkaç seçenek kaldı:

Game 1: Hacker, Hackers
Game 2: Cracker, Crackers
Game 3: Cyberpunk

Kelimelerin ilişkisi bize izin verdi önemli ölçüde Bu oyunların olası cevaplarını bu ilişki olmadığından çok daha kolay azaltın.

Peki Hangman Oyunları Oynamak Pwned Passwords API ve HIBP ile nasıl ilişkilidir? Pek çok kişinin şifreleri yeniden kullandığı veya şifrelerin bölümlerini yeniden kullandığı oldukça iyi bilinmektedir (hunter2 Ve hunter3 veya june1997 Ve june1998). Jack Cable, benzer şifreler arasındaki bu ilişkiyi açıkladı komşu şifreler.

Şifre değişikliğini kavramına genelleştiriyoruz komşu şifrelerbirbirine benzer iki şifreyi kapsayan.

Yukarıda tarif ettiğimiz hayali oyunda, gizli kelimelerin birbirlerinin eşanlamlı olması önemli bir avantajdı. Aynı şekilde, Pwned şifre hizmetinin kullanıcısının kontrol ettiğini varsayarsak komşu şifreler Üç sorgusu ile bir saldırgan tahminlerinde benzer bir avantaj elde edebilir. Bu, HIBP’nin tehlikeye girmesi veya Troy’un gizlice kötü niyetli olması durumunda, HIBP’nin bu şifre daha önce tehlikeye atılmış şifreler listesinde görünmese bile şifrelerinizi tahmin etme yeteneklerini önemli ölçüde artırması mümkün olacağı anlamına gelir.

Potansiyel olarak kafa karıştırıcı bazı şeyleri temizlemek istiyorum:

  1. Troy Hunt’ın HIBP ile yaptığı işin çok harika olduğunu düşünüyorum ve herkesin hizmetten bildirimler için kaydolmasını tavsiye ederim.
  2. Ayrıca Troy’un Pwned şifreleriyle yaptığı çalışmada harika olduğunu düşünüyorum ve muhtemelen zamanını rastgele insanların Neopet’in hesabına girmeye çalışırken harcamıyor.
  3. Jack’in çalışmasının ve bu blog yazısının amacı, herkesin Pwned şifreleri gibi bir sistem kullanmanın potansiyel risklerinin farkında olmasını sağlamak ve nasıl kullanılacağına dair bilinçli bir karar vermesini sağlamaktır. Bu saldırıyı göstermede burada bazı özgürlükler aldığımızı ve bu saldırı senaryosu herkes için geçerli olmayacağını unutmayın.

Son olarak, henüz değilseniz, kesinlikle 1Password veya LastPass gibi bir şifre yöneticisi kullanmalı ve hesaplarınızın güvenli kalmasını sağlamak için tüm hizmetleriniz için uzun, benzersiz, rastgele oluşturulan şifreler kullandığınızdan emin olmalısınız.

Eğer şimdiye kadar yaptıysanız, üzerinde çalıştığım bu uzun, teknik parçayı okumak için zaman ayırdığınız için teşekkürler. Jack Cable’a o kadar havalı bir blog yazısı yazdığı için teşekkür ediyorum ki bunun hakkında konuşmam gerekiyor. Ayrıca gözden geçirenlere herkesin okuması için bu gönderiyi kolaylaştırmaya yardımcı oldukları için teşekkür ediyorum.

Serbest bırakacağım bir sonraki parçaya dikkat edin, bu da düzenli ifadelerle ilgisi olan her şey.





Source link