Android Şifrelemesi ve Güvenlik Açıklarının kanonik açıklaması


16

Not: Ödülün süresi doldu ve olası bir neden, yorumlardan toplanırken ele almak için çaba gösterilmesi gerekebilir. Yukarı oyların sayısını görünce, diğerlerini de ilgilendiriyor gibi görünüyor. Hala bir cevap almak istiyorum, bu yüzden teklif ettiğim şey - bir ay içinde iyi bir cevap, 50 bonus kazanacak. Bu umarım yeterli zaman ve teşvik verirdim


Bir süredir Android Şifreleme işlemini ve güvenlik açıklarını anlamaya çalışıyorum

Bu konunun bazı bölümlerini bu sitede ve kardeş sitesinde de ele alan birçok soru var . Benim açımdan eve bırakmak için şu soruları ele bölümlerini ve bütün değildir ait (anımsatan " kör erkek ve bir fil ?" :)

Anlayışım (veya yanlış anlama?)

  1. Şifreleme parolası, kullanıcı kilidi ekran PIN'i ve şifreleme algoritmasının bir kombinasyonundan üretilir (sınırlı PIN uzunluğu nedeniyle içsel bir zayıflık vardır)
  2. Bu tuzlanır ve kullanıcılar tarafından erişilemeyen kök bir yerde saklanır
  3. Bu, şifrelemek / şifresini çözmek için gerçek şifreyi oluşturmak için kullanılır ve gerçek şifre RAM'de saklanır
  4. Bu, Adım 1'in cihaz SoC'sine bağlanmasıyla güçlendirildi ( Hangi Android Sürümü? Cihazı benzersiz şekilde tanımlayan donanım öğesi nedir? Sahte olarak değiştirilebilir mi? )
  5. Bu nedenle, şifreleme anahtarı ve cihaz olmadan verilerin şifresini çözmek mümkün değildir (harici SD için de geçerlidir)
  6. Olası kurtarma yöntemleri - kaba kuvvet, anahtar elde etmek için RAM bilgilerini yakalama (3. adım)
  7. Köklü cihazlar , özel kurtarma / muhtemelen ROM ve çekirdek yanıp sönmesi yoluyla 2. adım verilerine erişmeye daha duyarlı gibi görünüyorlar ( doğruysa, bu neden büyük bir risk olarak gösterilmiyor? )
  8. Bu bilgi elde olsa bile, ben öyle olduğunu tahmin ediyorum önemsiz olmayan gerçek şifre oluşturmak için akıllıca çaba
  9. Marshmallow harici SD'ye "dahili depolama" veya "taşınabilir depolama" gibi davranabilir. Mantıken, bir fark yaratmamalı ama emin değilim

Anlayışımda boşluklar var, muhtemelen diğer önemli yönleri de kaçırıyor.

Bu yüzden, kullanıcı açısından anlayış için kanonik bir açıklama arıyorum

  • Tüm şifreleme işlemi (harici SD dahil)

  • KitKat'tan Marshmallow'a kadar Android sürümlerinde uygulama varyasyonu (Marshmallow'da harici SD için çift seçenekler dahil)

  • Kullanıcı düzeyindeki güvenlik açıkları

Not

  • Sorunun çok geniş olarak değerlendirilme riskinin farkındayım, ancak IMO kapsamlı bir tedavi gerektiriyor
  • İletişim güvenliğinde biraz deneyime sahip olarak, Şifreleme kavramlarını kullanıcı düzeyine çevirmedeki zorluğu anlıyorum. Daha derin bir anlayış için açıklayıcı işaretlerle bu sorunun cevabını vermeyi tercih ederim. Sürecin örneklerinin titiz bir şekilde kriptografik olarak doğru olması gerekmez, ancak özü taşımalıdır

  • Olası bir avantaj, gelecekteki soruları ilgili yönlere "tekrarlamak" olabilir

  • Tekrarlama pahasına, cevaplar öncelikle kullanıcı seviyesinde olmalı , ancak daha derin bir anlayış için yeterli açıklamaya sahip olmalıdır . İki kısım halinde cevap bölme olabilir , uygun bir yol olabilir.

  • Kapsamlı cevapları teşvik etmek için önemsiz / gündelik / yama çalışması cevaplarını oylamayı bir noktaya getiririm


1
Yorumlar uzun tartışmalar için değildir; bu görüşme sohbete taşındı . //Bu, Güvenlik için daha uygun olabilir . Ayrıca çok geniş olduğunu düşünüyorum, çünkü sorduğunuz şeyin iyi bir kısmı belirli donanıma ve üreticinin onu nasıl uyguladığına bağlı.
Matthew,

Yanıtlar:


3

Bunun gibi çalışacağını öngörüyorum:

  • Depolama senkronize rastgele anahtar kullanılarak şifrelenir.
  • Kullanıcı hangi girdiye dayalı bir şifre seçerse veya değiştirirse, ister harflerden, rakamlardan ve karakterlerden oluşan bir şifre olsun, ister bir PIN kodu, desen kaydırma veya parmak izi veya başka bir giriş, eşzamansız şifreleme olsun algoritma, ana anahtarı şifrelemek için kullanılır, böylece doğru tanımlama, ana anahtarla sonuçlanan girişin şifresini çözer ve bu da depolamayı şifrelemeyi ve şifresini çözmeyi mümkün kılar.
  • Kullanıcı oturumu kapattığında, ana anahtarı tutan belleğin üzerine yazılır

Buradaki en büyük hile, ana anahtarın eşzamansız şifrelenmesidir. Android ana anahtara sahip olduğunda, depolama alanı ile veri alışverişi yapma yeteneğine sahiptir. Yalnızca kullanıcı oturum açtığında, o ana anahtar bilinir. Asenkron şifreleme, genel anahtar şifrelemesi olarak adlandırılır. Genel anahtar, verileri şifreliyor (bu durumda ana anahtar) ve özel anahtar, verilerin şifresini çözüyor. Buradaki depolama şifrelemesi ile karıştırılmamalıdır. Depolama sadece senkronize şifrelemedir. Aynı anahtar şifrelemek ve şifresini çözmek için kullanılır. Ancak o "ana" anahtarın bulunması / geri alınması biggie'dir. Bu, bir noktada zayıf bir giriş yönteminiz varsa, intance "1234" gibi bir pin kodu olarak ve fikrinizi değiştirdiğiniz ve pin kodunu "5364" olarak değiştirdiğinizde, daha önce "1234" " çalındı, gözetlendi, herhangi bir noktada güvenlik daha da iyi hale geldi. Giriş yöntemini tahmin etmek veya sözlük saldırısı yapmak mümkün olmayan tam bir şifre ile değiştirirken de aynı şey geçerlidir. Depolama alanının kendisinin yeniden şifrelenmesi gerekmez. Her şey bu ana anahtarı gizlemekle ilgili - dahili olarak. Kullanıcı bu ana anahtarı asla görmez, çünkü büyük olasılıkla sadece rastgele bir karma kodu vardır - hiçbir şey bu karma kodu "bulamaz" veya "tahmin edemez". NSA veya gezegendeki herhangi bir güvenlik kurumu bile böyle bir anahtar bulamadı. Tek saldırı vektörü kullanıcının kısmında bir zayıflık olmasını umuyor. Belki de kullanıcı bir pin kodu girişi seçti. 4 basamaklıysa, maksimum 10000 olası pin kodudur. İşletim sistemi kısa bir süre içinde birkaç kez denedikten sonra cihazı "engelleyebilir". Bu durumda çözüm, işletim sistemini "hacklemek" tir, böylece işletim sistemi araya girmeden ve cihazı engellemeden tüm olası pin kodlarını denemek mümkün olur. Bence FBI nihayetinde bir suçlunun telefonuna erişti. Üçüncü parti bir şirket (hatırladığım bazı İsrail şirketleri) FBI'ı hacklediğini düşünüyorum. Bu pin kodu deneme sınırını atladılar. Giriş tam bir şifre ise ve kullanıcı güçlü bir şifre seçtiyse ve solunuz. Gezegendeki tüm işlemci gücü ile bir yaşam süresinde bir milyon yıl içinde bunu kesecek. Ben NSA herhangi bir şey söylentiler şifresini çözemez satın almıyorum. Sanırım bu insanlar çok fazla siyah-erkek filmi izlediler. Tek yapmanız gereken çeşitli şifreleme algoritmaları (örn. AES) hakkındaki bilimsel belgelere bakmaktır ve hacklemenin basitçe gerçekleşmeyeceğini bilirsiniz, eski günler hariç 40 bit anahtar vardı. O günler çoktan gitti. AES128 zaten kırılgan değil bence ve eğer herhangi biri söz konusu ise, AES256'ya atlamak onu evrenin büyüklüğüne göre daha güvenli hale getirir. Belki bir gün kuantum bilgisayarlar şifresini çözebilir, ama şüpheliyim. Bir olasılık sisteminin mümkün olup olmadığından emin değilsiniz, çözümü vurgulayın. Sonunda bunu göreceğiz. Belki de bir kaç hayat ötede. Şu anda endişelenecek bir şey yok.

Bu nedenle, gün sonunda, güvenlik sınırlaması tamamen kullanılan oturum açma yönteminde yatmaktadır. Depolamayı yeniden şifrelemek zorunda kalmadan yöntem değiştirilebilir. Tüm bunlar ana anahtarın asenkron ortak anahtar şifrelemesi nedeniyle.


Bence "simetrik" ve "asimetrik" demek istediniz. "Eşzamanlı" ve "eşzamansız" değil.
Jay Sullivan

1

Güncellemeler sık ​​olduğu için, telefondaki şifrelemenin (Android tabanlı işletim sistemi) işlenme şekli bir derlemeden diğerine değişebilir. Bu nedenle, birincil endişe şifrelemenin kendisiyle değil, sürecin çalıştığı yerdir. Ve bu platformda güvenlik açıkları varsa, şifreleme algoritmasının gücü çok az veya hiç önemli değildir.

Temel olarak, cihazınız dosyaların şifresini çözdüğünde, bunlara Süper Kullanıcı ayrıcalıklarına sahip bir işlemle doğrudan erişilebilir. Bu işlem, ROM'daki (Android OS) bir zayıflıktan yararlanarak cihazınıza erişebilir. (Bu, bazı kusurlar WikiLeaks tarafından maruz kaldığı için haberlerde geçti.)

Köklü aygıtlar, özel kurtarma / muhtemelen ROM ve çekirdek yanıp sönmesi yoluyla 2. adım verilerine erişmeye daha yatkın görünüyor? (doğruysa, bu neden büyük bir risk olarak gösterilmiyor?)

Kökten önce : Bir cihazı köklendirmek için, tümü cihazın iç yapısına derinlemesine erişimi olan harici araçlar kullanmanız gerekir. Bu araçların bazıları önceden derlenmiştir ve açık kaynak değildir. "Resmi" web siteleri var, ama bu insanlar kimler? (örneğin twrp.me, supersu.com, ancak KingoRoot gibi başkaları da var) Onlara gerçekten güvenebilir miyiz? Ben diğerlerinden biraz daha fazla güveniyorum. Örneğin KingoRoot, bilgisayarıma virüs benzeri bir şekilde davranan bir programı yükledi (kaldırmak için çift önyükleme kullanmak zorunda kaldı).

Köklendikten sonra : derlenmiş bir programa (APK) bir SU erişimi vermek, kısıtlama olmadan veya hangi Niyeti kullanacağını belirterek istediği her şeyi yapabileceği anlamına gelir. (Niyetler APK'ların WiFi, Kamera vb.

Tam cihaz şifrelemesi verilerimi Google'dan ve hükümetten korur mu?

Google - evet. Kilit açma anahtarı yoktur.

Hükümet (veya hacker) - no. çünkü Hükümet veya bilgisayar korsanı yukarıda bahsettiğim gibi dosya (lar) ı ele geçirecek bir istismar kullanabilir.

Güvenlik prosedürlerinin / algoritmalarının karmaşıklığı, ele geçirilip atlanabiliyorsa çok az kullanılır.

Düzenleme: Google'ın, izninizi sormadan android cihazınıza uygulamaları indirme ve yükleme / güncelleme özelliğine sahip olduğunu ve hatta güncellemenin gerçekleştiğini bildirmeden bahsetmeye değer. Köklü cihazda bile, temel işlevleri (Play Store, Haritalar, Senkronizasyon vb.) Kaybetmeden bunu engellemenin bir yolu yok gibi görünüyor.

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.