Google Chrome पासवर्ड कैसे संग्रहीत करता है?


28

क्या वे डिस्क में एन्क्रिप्टेड हैं? कैसे? क्या वे सुरक्षित हैं, उदाहरण के लिए, किसी के लाइव सीडी से बूट करने और हार्ड डिस्क को माउंट करने की स्थिति में?

एन्क्रिप्शन कुंजी कैसे उत्पन्न होती है? क्या यह विंडोज और लिनक्स में अलग है?


ध्यान दें कि Google ने एक मास्टर पासवर्ड लागू करने से इनकार कर दिया (जैसा कि फ़ायरफ़ॉक्स के पास है) क्योंकि यह सुरक्षा की झूठी भावना पैदा करेगा, और क्रोमपास जैसे उपकरण हैं जो पासवर्ड डेटाबेस को डिक्रिप्ट कर सकते हैं, बशर्ते उपयोगकर्ता लॉग इन हो।
डैन डैस्केलस्क्यू

संबंधित: askubuntu.com/q/525019/472560
dskrvk

जवाबों:


25

आप Chrome में पासवर्ड एन्क्रिप्ट करने के लिए उपयोग की जाने वाली कुंजी के बारे में विशेष रूप से उत्सुक हैं।

उत्तर है:

हर पासवर्ड एक अलग यादृच्छिक कुंजी के साथ एन्क्रिप्ट किया गया है।

और फिर एन्क्रिप्टेड पासवर्ड SQLite डेटाबेस फ़ाइल में संग्रहीत किया जाता है:

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

इसे देखने के लिए आप SQLite Database Browser या SQLite Maestro जैसी किसी चीज़ का उपयोग कर सकते हैं । यहाँ मेरी Login Dataफ़ाइल से एक स्निपेट है :

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

आप देखेंगे कि पासवर्ड डेटा का एक एन्क्रिप्टेड ब्लॉब है। एक नया पासवर्ड एन्क्रिप्ट करने के लिए अनुमानित एल्गोरिदम है:

  • एक नया यादृच्छिक सत्र कुंजी उत्पन्न करें
  • सत्र कुंजी के साथ पासवर्ड एन्क्रिप्ट करें
  • उपयोगकर्ता की RSA सार्वजनिक कुंजी के साथ सत्र कुंजी को एन्क्रिप्ट करें
  • एन्क्रिप्टेड डेटा के लिए एक संदेश प्रमाणीकरण कोड (HMAC) उत्पन्न करते हैं
  • एन्क्रिप्टेड सत्र कुंजी, एन्क्रिप्टेड पासवर्ड और मैक को संक्षिप्त करें

और Chrome उस बूँद को अपने SQLite डेटाबेस में सहेजता है।

लेकिन आपके प्रश्न का उत्तर देने के लिए: एन्क्रिप्शन कुंजी कहां से आती है?

प्रत्येक पासवर्ड एक अलग यादृच्छिक रूप से उत्पन्न कुंजी के साथ एन्क्रिप्ट किया गया है

तकनीकी विवरण

बेशक मैंने तकनीकी विवरण छोड़ दिया है। Chrome आपके पासवर्ड को स्वयं एन्क्रिप्ट नहीं करता है। Chrome में किसी भी चीज़ को एन्क्रिप्ट करने के लिए उपयोग की जाने वाली मास्टर कुंजी नहीं है। Chrome एन्क्रिप्शन नहीं करता है। विंडोज करता है।

एक विंडोज फ़ंक्शन है, CryptProtectDataजिसका उपयोग किसी भी मनमाने डेटा को एन्क्रिप्ट करने के लिए किया जाता है। इसे कॉल करने का विवरण कम महत्वपूर्ण नहीं है। लेकिन अगर मैं एक छद्म भाषा का आविष्कार करता हूं, जो कि किसी भी प्रोग्रामिंग की कमी के रूप में समझने योग्य हो सकती है, तो क्रोम कॉल:

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

तो पासवर्ड:

  • प्लेनटेक्स्ट :correct battery horse staple
  • एन्क्रिप्ट किया गया :01000000D08C9DDF0115D1118C7A00C04FC297EB01000000BB0E1F4548ADC84A82EC0873552BCB460000000002000000000003660000C0000000100000006811169334524F33D880DE0C842B9BBB0000000004800000A00000001000000043C8E23979F5CC5499D73610B969A92A08000000EE07953DEC9F7CA01400000098B5F0F01E35B0DC6BBAFC53A9B1254AC999F4FA

आप देखेंगे कि मुझे पासवर्ड की आपूर्ति करने की आवश्यकता नहीं है। ऐसा इसलिए है क्योंकि विंडोज उस सभी का ख्याल रखता है। अंततः:

  • पासवर्ड एन्क्रिप्ट करने के लिए रैंडम पासवर्ड जेनरेट किया जाता है
  • उस पासवर्ड को एक यादृच्छिक पासवर्ड के साथ एन्क्रिप्ट किया गया है
  • उस पासवर्ड को आपके विंडोज पासवर्ड से एन्क्रिप्ट किया गया है

तो किसी के लिए आपका पासवर्ड जानने का एकमात्र तरीका यह है कि क्या वह आपका पासवर्ड जानता है।


क्रोम को स्टोर किए गए पासवर्ड को डिक्रिप्ट करने के लिए इसका उपयोग करने में सक्षम होने की कुंजी कैसे पता है, फिर?
ब्रूनोइज़

1
@brunoais Chrome पासवर्ड एन्क्रिप्ट करने के लिए उपयोग की जाने वाली कुंजी को नहीं जानता है। क्रोम उन्हें डिक्रिप्ट नहीं करता है - विंडोज करता है।
इयान बॉयड

आह अच्छा। तो अगर एक दुर्भावनापूर्ण प्रोग्राम कंप्यूटर में जाता है तो पासवर्ड उस प्रोग्राम के लिए पूरी तरह से उपलब्ध हैं, है ना?
ब्रूनोइस

1
@brunoais केवल तभी जब आपने अपना पासवर्ड टाइप किया हो। दुर्भाग्य से यह एन्क्रिप्शन की एक मूलभूत सीमा है: एक बार डेटा को डिक्रिप्ट करने के बाद इसे डिक्रिप्ट किया जाता है।
इयान बॉयड

धन्यवाद। Chrome ने मेरे पासवर्ड याद रखना बंद कर दिया (यह अभी भी उन्हें बचाने की पेशकश करता है, लेकिन उन्हें कभी याद नहीं किया गया), मुझे लगा कि पासवर्ड डेटाबेस दूषित था। विलोपन द्वारा हल किया गया%LocalAppData%\Google\Chrome\User Data\Default\Login Data
कर्नल पैनिक

8

पासवर्ड एन्क्रिप्ट और SQLite डेटाबेस में संग्रहीत हैं:

यहां महत्वपूर्ण टुकड़ा है CryptProtectData, जो डेटा एन्क्रिप्ट करने के लिए एक विंडोज एपीआई फ़ंक्शन है। इस फ़ंक्शन के साथ एन्क्रिप्ट किया गया डेटा बहुत ठोस है। इसे केवल उसी मशीन और उसी उपयोगकर्ता द्वारा डिक्रिप्ट किया जा सकता है जिसने इसे पहली बार एन्क्रिप्ट किया था।


लेकिन एन्क्रिप्शन कुंजी कैसे उत्पन्न होती है? इसके आधार पर मैं योजना को कम या ज्यादा सुरक्षित मानूंगा। और लिनक्स के बारे में क्या?
.सकर

@ Entialscar: विंडोज पर, CryptProtectDataकुंजी के रूप में आपके विंडोज क्रेडेंशियल्स (पासवर्ड नहीं, बल्कि कुछ अन्य डेटा) का उपयोग करता है। AFAIK, यह वही फ़ंक्शन है जिसका उपयोग आपके प्रमाणपत्र, नेटवर्क क्रेडेंशियल्स और उस सभी सामान की सुरक्षा के लिए किया जाता है।
grawity

3
@ .Scar: लिनक्स पर, Encryptor::EncryptString कुछ भी नहीं करता है । लगता है कि गनोम कीरिंग और केडीई वॉलेट का उपयोग करने के लिए कोड है।
grawity

सही बात। इसके बजाय लिनक्स, केडीई वॉलेट, गनोम कीरिंग, या एक अन्य समर्थित देशी पासवर्ड स्टोर (जिसे मैं भूल जाता हूं) का उपयोग किया जाता है।
माइकल हैम्पटन

1
तो ... ऐसा लगता है कि एक और अलग ऐप होना संभव है जो मूल रूप से आपके क्रोम पासवर्ड को स्नूप करता है, यह देखते हुए कि आप पहले से लॉग इन हैं और यह आपके साथ चल रहा है?
रोज़रपैक

4

वे "एन्क्रिप्टेड" हैं लेकिन यह एक प्रतिवर्ती एन्क्रिप्शन है। क्रोम को कच्चे पासवर्ड को उस साइट पर भेजना होगा जिसके लिए इसे संग्रहीत किया गया था, इसलिए यदि क्रोम इसे डिक्रिप्ट और उपयोग कर सकता है, तो अन्य लोग कर सकते हैं। पासवर्ड संग्रहीत करना कभी भी 100% सुरक्षित नहीं है।


लेकिन एन्क्रिप्शन कुंजी कौन सी है?
.सकर

2
Sblair के उत्तर की जाँच करें। ध्यान दें कि डिक्रिप्शन की संभावना है, कोई फर्क नहीं पड़ता कि यह कैसे संग्रहीत है। उचित सॉफ्टवेयर के साथ, कोई भी इसे डिक्रिप्ट कर सकता है। जब आप अपने विंडोज खाते में लॉग इन करते हैं जब तक आप लॉग आउट नहीं करते हैं, तब तक आपके पासवर्ड पूरी तरह से उपयोग करने योग्य और पूरी तरह से देखने योग्य होते हैं। बस यह दर्शाता है कि ब्राउज़र पासवर्ड स्टोर करने का 100% सुरक्षित समाधान नहीं है।
ब्लडफिलिया

1
नहीं, लेकिन यदि आपका कंप्यूटर अपहृत / संक्रमित है, तो ब्राउज़र पासवर्ड आसानी से आपको बिना देखे पुनर्प्राप्त किया जा सकता है। एक बार फिर, मैं सभी को इंगित कर रहा हूं कि ब्राउज़रों के लिए कोई 100% असफल पासवर्ड भंडारण नहीं है ... बस उनकी सुरक्षा के बारे में आपके प्रश्न का उत्तर दे रहा है।
ब्लडफिलिया

1
कोई "मास्टर पासवर्ड" नहीं है। CryptProtectDataएक विंडोज एपीआई है, विंडोज वास्तव में सभी एन्क्रिप्शन और पुनर्प्राप्ति करता है, एन्क्रिप्शन कुंजी आपके उपयोगकर्ता खाते और सिस्टम पर निर्भर है।
ब्लडफिलिया

1
यह आपको इसके कामकाज की व्याख्या प्रदान करेगा: msdn.microsoft.com/en-us/library/ms995355.aspx
BloodPhilia

2

Google Chrome पासवर्ड को एन्क्रिप्ट करता है और उन्हें SQLite DB में संग्रहीत करता है लेकिन उन्हें आसानी से विशेष पासवर्ड रिकवरी एप्लिकेशन जैसे ChromePass ( http://www.nirsoft.net/utils/chromepass.html ) या SecurePassword Kit ( http: // के साथ देखा जा सकता है। www.getsecurepassword.com/ )


1

मैक पर, विंडोज में CryptProtectData फ़ंक्शन के बराबर ओएस एक्स के कीचैन में "क्रोम सेफ स्टोरेज" के लिए पासवर्ड का उपयोग करना है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.