Google Chrome şifreleri nasıl saklar?


28

Diskte şifreli mi? Nasıl? Örneğin, bir Live CD'den önyükleme yapan ve sabit diski takan biri durumunda güvenli midir?

Şifreleme anahtarı nasıl üretilir? Windows ve Linux'ta farklı mı?


O Not Google bir ana şifre uygulamayı reddeden o yanlış bir güvenlik hissi yaratacak çünkü (Firefox sahip gibi) ve benzeri araç bulunmaktadır ChromePass . Şifreleri veritabanı şifresini çözebilir, kullanıcı giriş sağlanan
Dan Dascalescu

Yanıtlar:


25

Chrome'daki şifreleri şifrelemek için kullanılan anahtarla ilgili özellikle meraklı görünüyorsunuz.

Cevap:

Her şifre farklı bir rasgele anahtarla şifrelenir.

Ve sonra şifreli parola SQLite veritabanı dosyasında saklanır:

%LocalAppData%\Google\Chrome\User Data\Default\Login Data

Bunu görüntülemek için SQLite Veritabanı Tarayıcısı veya SQLite Maestro gibi bir şey kullanabilirsiniz . İşte dosyamın bir pasajı Login Data:

origin_url                                username_value               password_value
========================================  ==============               ========================
http://thepiratebay.org/register          JolineBlomqvist@example.com  01000000D08C9DDF0115D1118C7A00C04FC297EB01000000BB0E1F4548ADC84A82EC0873552BCB460000000002000000000003660000C0000000100000006811169334524F33D880DE0C842B9BBB0000000004800000A00000001000000043C8E23979F5CC5499D73610B969A92A08000000EE07953DEC9F7CA01400000098B5F0F01E35B0DC6BBAFC53A9B1254AC999F4FA

Parolanın şifreli bir veri bloğu olduğunu göreceksiniz. Yeni bir şifreyi şifrelemek için yaklaşık algoritma:

  • yeni bir rastgele oturum anahtarı oluşturun
  • parolayı oturum anahtarıyla şifrelemek
  • oturum anahtarını kullanıcının RSA ortak anahtarıyla şifreleyin
  • şifreli veriler için bir Mesaj Doğrulama Kodu (HMAC) oluşturun
  • şifreli oturum anahtarını, şifreli şifreyi ve MAC’i birleştir

Chrome, bu bloğu SQLite veritabanına kaydeder.

Ancak sorunuzu cevaplamak için: Şifreleme anahtarı nereden geliyor?

Her şifre farklı rasgele oluşturulmuş bir anahtarla şifrelenir.

Teknik Detaylar

Tabii teknik detayları bıraktım. Chrome şifrelerinizi şifrelemez. Chrome'da hiçbir şeyi şifrelemek için kullanılan bir ana anahtar yoktur. Chrome şifrelemeyi yapmaz. Windows yapar.

CryptProtectDataİstediğiniz herhangi bir rastgele veriyi şifrelemek için kullanılan bir Windows işlevi vardır . Aramanın detayları daha az önemli. Ancak, herhangi bir programlama diliyle bir şekilde deşifre edilebilecek sahte bir dil icat edersem, Chrome şöyle çağırır:

CryptProtectData(
      { cbData: 28, pbData: "correct battery horse staple" },
      "The password for superuser.com and all the glee therein",
      null, //optional entropy
      null, //reserved
      null, //prompt options
      0, //flags
      { cbData:   pbData:  }); //where the encrypted data will go

Yani şifre:

  • Düz metin :correct battery horse staple
  • Şifreli :01000000D08C9DDF0115D1118C7A00C04FC297EB01000000BB0E1F4548ADC84A82EC0873552BCB460000000002000000000003660000C0000000100000006811169334524F33D880DE0C842B9BBB0000000004800000A00000001000000043C8E23979F5CC5499D73610B969A92A08000000EE07953DEC9F7CA01400000098B5F0F01E35B0DC6BBAFC53A9B1254AC999F4FA

Hiçbir zaman bir şifre vermem gerekmediğini fark edeceksiniz. Bunun nedeni, Windows'un bunların hepsine bakmasıdır. Sonunda:

  • şifreyi şifrelemek için rastgele bir şifre oluşturulur
  • bu şifre rastgele bir şifre ile şifrelenir.
  • bu şifre Windows şifrenizle şifrelenmiş

Yani birisinin şifrenizi bilmesinin tek yolu şifrenizi bilmesidir.


Chrome, şifreyi saklanan şifreyi çözmede kullanabilmek için anahtarı nasıl biliyor?
brunoais

1
@ brunoais Chrome şifreleri şifrelemek için kullanılan anahtarı bilmiyor. Chrome onları şifresini çözmez - Windows yapar.
Ian Boyd

Ah tamam. Yani bilgisayara kötü amaçlı bir program girerse, şifreler bu program için tamamen kullanılabilir durumda, değil mi?
brunoais

1
@brunoais Sadece şifrenizi yazdıysanız. Ne yazık ki bu, şifrelemenin temel bir sınırlamasıdır: verilerin şifresi çözüldüğünde şifresi çözülür.
Ian Boyd

Teşekkürler. Chrome şifrelerimi hatırlamamı bıraktı (hala onları kurtarmayı teklif etti, ancak hiçbir zaman geri çağırmadı), şifre veritabanının bozulduğunu düşündüm. Silerek çözüldü%LocalAppData%\Google\Chrome\User Data\Default\Login Data
Albay Panik

8

Şifreler şifrelenir ve bir SQLite veritabanında saklanır:

Buradaki önemli parça CryptProtectData, verileri şifrelemek için kullanılan bir Windows API işlevidir. Bu fonksiyonla şifrelenmiş veriler oldukça sağlam. Yalnızca aynı makinede ve ilk etapta şifreleyen aynı kullanıcı tarafından şifresi çözülebilir.


Ancak şifreleme anahtarı nasıl üretilir? Buna bağlı olarak, planı daha az ya da çok güvenli olarak düşünürdüm. Peki ya Linux?
Mayscar

@ Oscar: Windows'ta CryptProtectDataWindows kimlik bilgilerinizi (parola değil, diğer bazı veriler) anahtar olarak kullanır. AFAIK, sertifikalarınızı, ağ kimlik bilgilerinizi ve diğer her şeyi korumak için kullanılan aynı işlevdir.
yerçekimi

3
@ Oscar: Linux'ta Encryptor::EncryptString hiçbir şey yapmaz . GNOME Anahtarlık ve KDE Cüzdan kullanmak için kod var gibi görünüyor.
yerçekimi

Doğru. Linux'ta bunun yerine KDE Cüzdan, GNOME Anahtarlık veya desteklenen diğer bir yerel şifre deposu (önceden unuttum) kullanılır.
Michael Hampton,

1
bu yüzden ... zaten giriş yapmış olduğunuz ve sizin gibi çalıştığı göz önüne alındığında, temelde krom şifrelerinizi kullanan başka bir ayrı uygulamanız olabilir.
rogerdpack

4

Onlar "şifreli" ama geri dönüşümlü bir şifreleme. Chrome, ham parolayı depolandığı siteye göndermelidir, böylece Chrome şifresini çözüp kullanabiliyorsa diğer kişiler de kullanabilir. Şifreleri saklamak asla% 100 güvenli değildir.


Ancak şifreleme anahtarı hangisidir?
Mayscar

2
Siblair'in cevabını kontrol et. Nasıl saklandığına bakılmaksızın şifre çözme olasılığı olduğunu unutmayın. Uygun yazılımla herkes şifresini çözebilir. Çıkış yaptığınız ana kadar Windows hesabınıza giriş yaptığınızda, şifreleriniz tamamen kullanılabilir durumdadır ve tamamen görülebilir. Sadece tarayıcı şifrelerini saklamak için% 100 güvenli bir çözüm olmadığını belirtir.
BloodPhilia

1
Hayır, ancak bilgisayarınız kaçırılırsa / virüs bulaşırsa, tarayıcı parolaları siz fark etmeden kolayca kurtarılabilir. Bir kez daha, işaret ettiğim tek şey, tarayıcılar için% 100 arızaya dayanıklı parola deposu olmadığıdır ...
BloodPhilia

1
"Ana şifre" yok. CryptProtectDataWindows API’sıdır, Windows aslında tüm şifrelemeyi ve almayı gerçekleştirir, şifreleme anahtarı kullanıcı hesabınıza ve sisteminize bağlıdır.
BloodPhilia

1
Bu size çalışmalarının bir açıklamasını sağlamalıdır: msdn.microsoft.com/en-us/library/ms995355.aspx
BloodPhilia


1

Mac'te, Windows'taki CryptProtectData işlevine eşdeğer, OS X'in Anahtar Zincirindeki "Chrome Güvenli Depolama" parolasına erişmektir.

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.