एंड्रॉइड में जीमेल पासवर्ड कैसे संग्रहीत किया जाता है - और कहां?


37

मैंने चारों ओर देखा है और इस बारे में कोई जानकारी नहीं मिली है कि एंड्रॉइड डिवाइस पर पासवर्ड कैसे संग्रहीत करता है। विशेष रूप से जीमेल पासवर्ड। मैं सीखना चाहता हूं कि एंड्रॉइड कैसे एन्क्रिप्ट करता है और पासवर्ड स्टोर करता है? यह किस कुंजी का उपयोग करता है और यह कुंजी कहां संग्रहीत है, और यह किस एन्क्रिप्शन एल्गोरिथ्म का उपयोग करता है।


1
संग्रहीत पासवर्ड को कुंजी के साथ एन्क्रिप्ट क्यों किया जाना चाहिए? इसका मतलब केवल यह होगा कि पासवर्ड की आवश्यकता होने पर हर बार कुंजी दर्ज करना होगा, फिर आप बस पासवर्ड को संग्रहीत नहीं कर सकते और इसे हर बार दर्ज कर सकते हैं।
फ्लो

उम, कुंजी डिवाइस विशिष्ट हो सकती है, फोन आईएमईआई या कुछ से प्राप्त किया जा सकता है। इसका मतलब है कि, सॉफ्टवेयर उपयोगकर्ता को हर समय इसे टाइप किए बिना कुंजी प्राप्त कर सकता है।
असुदक

1
कुंजी प्राप्त करने के लिए फोन पर चलने वाले किसी अन्य सॉफ़्टवेयर के टुकड़े को क्या रोकता है? यह दृष्टिकोण सुरक्षा की कोई अतिरिक्त परत नहीं जोड़ता है
फ्लो

जवाबों:


36

जीमेल का आधिकारिक ऐप आपके डिवाइस में पासवर्ड स्टोर नहीं करता है। यदि आप इस ऐप का उपयोग करते हैं तो आपका पासवर्ड 100% सुरक्षित है।

यह कैसे काम करता है: पासवर्ड का उपयोग Google के प्रमाणीकरण सर्वर द्वारा पहली बार किया जाता है। पहले सफल प्रमाणीकरण के बाद, एक Auth Tokenडिवाइस पर डाउनलोड किया जाता है जिसे accounts.dbफ़ाइल में सादे पाठ के रूप में संग्रहीत किया जाता है । बाद के सभी लॉगिन के लिए, Auth Tokenइसका उपयोग किया जाता है, न कि आपका मूल पासवर्ड।
इसलिए, यदि आपका डिवाइस चोरी हो जाता है, तो कोई भी व्यक्ति Auth Tokenजो अपना पासवर्ड बदल लेता है , वह अमान्य हो जाता है। तो, आप अंतिम आदेश में होंगे।
अंतिम सुरक्षा के लिए, मैं आपको अपने डिवाइस के लिए सक्षम 2-Factor Authenticationऔर बनाने की सलाह Device Specific Passwordदूंगा। डिवाइस खोने के बाद, आपको केवल उस डिवाइस को अक्षम करना है। आपको मुख्य पासवर्ड बदलने की भी आवश्यकता नहीं है।

नोट: यदि आप Gmail viz के लिए तृतीय-पक्ष ईमेल एप्लिकेशन का उपयोग करते हैं, तो ये सभी सत्य नहीं हैं। स्टॉक ईमेल ऐप, के -9 मेल आदि आईएमएपी या पीओपी प्रोटोकॉल उपयोगकर्ताओं को हर बार प्रमाणित करने के लिए मूल पासवर्ड की आवश्यकता होती है। इसलिए, सर्वर पर भेजने से पहले सादा पासवर्ड ईमेल ऐप के लिए उपलब्ध होना चाहिए। इसलिए, अधिकांश ईमेल ऐप्स सादे पाठ में पासवर्ड संग्रहीत करते हैं (हैशिंग / एन्क्रिप्शन बेकार है क्योंकि हैशिंग / एन्क्रिप्शन कुंजी को स्थानीय रूप से संग्रहीत करने की आवश्यकता है)। इस मामले में, मैं आपको अपने डिवाइस के लिए सक्षम 2-Factor Authenticationऔर बनाने की सलाह Device Specific Passwordदूंगा। डिवाइस खोने के बाद, आपको केवल उस डिवाइस को अक्षम करना है।

अपडेट:
तकनीकी रूप से, स्थानीय रूप से सादे पाठ में एन्क्रिप्शन कुंजी / हैशिंग कुंजी रखे बिना एन्क्रिप्टेड / हैशेड रूप में स्थानीय रूप से पासवर्ड स्टोर करना संभव है। इसे इंगित करने के लिए @JFSebastian को धन्यवाद। दुर्भाग्य से, Android के लिए ऐसा कार्यान्वयन अभी तक उपलब्ध नहीं है। ICS को शुरू करते हुए, एंड्रॉइड कीचेन एपीआई प्रदान करता है, जिसके उपयोग से एक ऐप स्थानीय रूप से पासवर्ड को सुरक्षित रूप में संग्रहीत कर सकता है। कीचेन एपीआई का उपयोग करने वाले ऐप्स दुर्लभ हैं, लेकिन स्टॉक ईमेल ऐप इसका उपयोग करता है (इस जानकारी के लिए @wawa के लिए धन्यवाद)। जब तक आपकी स्क्रीन लॉक है, तब तक आपका पासवर्ड स्टॉक ईमेल ऐप के साथ सुरक्षित रहेगा। याद रखें, यदि डिवाइस रूट किया गया है और इसकी आईसी-प्री डिवाइस पर उपलब्ध नहीं है तो किचेन सुरक्षित नहीं है।


6
@ जेएफ सेबस्टियन: यहां तक ​​कि यह मानते हुए कि आप अपने पासवर्ड को संग्रहीत करने वाले तीसरे पक्ष पर पूरी तरह से भरोसा करते हैं, वे केवल डिवाइस में पासवर्ड को संग्रहीत करने की तुलना में केवल मामूली रूप से अधिक सुरक्षित थे। डिवाइस को अभी भी क्लाउड स्टोरेज से पासवर्ड के सादे पाठ को पुनः प्राप्त करने में सक्षम होना चाहिए और डिवाइस को अभी भी पासवर्ड को स्थानीय रूप से कैश करना होगा क्योंकि आप अपने डोंगल को हर बार फिर से जोड़ना नहीं चाहते हैं जो आपको सुरंग या क्षेत्रों में मिलता है। कमजोर स्वागत। सुरक्षा में सबसे खराब बात यह है कि सुरक्षा की झूठी भावना प्रदान करना।
रेयान

4
@JFSebastian: निष्कर्ष में, केवल वही सुरक्षित तरीका प्रमाणीकरण है, जो Google ने जीमेल ऐप के साथ किया था, यानी नॉर्मल टोकन के साथ गैर-मानक प्रमाणीकरण योजना का उपयोग करें। यहां तक ​​कि अगर कोई आपका ऑस्ट्रियाई टोकन चुरा रहा है, तो आप टोकन को दूरस्थ रूप से अमान्य कर सकते हैं, और आपको अपना पासवर्ड बदलने की आवश्यकता नहीं है क्योंकि पासवर्ड प्लेटेक्स्ट कभी भी समझौता नहीं किया गया था। दूसरा सुरक्षित तरीका सत्र के बिना डोंगल का उपयोग करना है; ठीक है, आप जानते हैं कि जब आप ऐसा करते हैं, तो आपके उपयोगकर्ता डोंगल को स्थायी रूप से संलग्न कर देंगे।
रेयान

5
@JFSebastian: मुझे लगता है कि आप इस बिंदु को याद कर रहे हैं। पासवर्ड को एन्क्रिप्ट करना सादे पाठ में संग्रहीत करने की तुलना में अधिक सुरक्षित नहीं है, एक बिट से भी नहीं। कोई भी हमलावर जो अकाउंट को कॉपी करने का प्रबंधन करता है। डीबी इसके साथ डिक्रिप्शन कुंजी भी कॉपी कर सकता है; केवल एक चीज जो एन्क्रिप्शन आपको देती है , वह सुरक्षा की झूठी भावना है , जो बिना सुरक्षा से भी बदतर है। हां, ऐसे समाधान हैं जो सादे-पाठ पासवर्ड को संग्रहीत करने से बहुत बेहतर हैं, लेकिन उन सभी को ईमेल प्रोटोकॉल में बदलाव की आवश्यकता है, इसलिए हमें उस समय के साथ रहना होगा जो हमारे पास वर्तमान में है। या गैर-मानक तरीके से इसे ठीक से करें जैसे जीमेल ने किया।
रेयान

3
@JFSebastian सेब कीचेन सेवा या लिनक्स कर्नेल द्वारा प्रदान किया गया एक अधिक सुरक्षित विकल्प नहीं है। पासवर्ड अभी भी मेमोरी में घूमता रहता है और अगर किचेन को अनएन्क्रिप्टेड भी अनलॉक किया जाता है। इसलिए यह केवल पढ़ने योग्य केवल .db फ़ाइल के रूप में प्राप्त करने के लिए थोड़ा कठिन होने की संभावना है। डिवाइस से छेड़छाड़ होने की स्थिति में, Google एक टोकन का उपयोग करके अमान्य टोकन का उपयोग करके सबसे अच्छा संभव व्यवहार्य समाधान लागू कर सकता है। अगला अधिक सुरक्षित विकल्प हर बार पासवर्ड दर्ज करना या केवल ई-मेल का उपयोग करने से बचना होगा।
फ्लो

4
@LieRyan ICS के रूप में, स्टॉक ईमेल ऐप वास्तव में KeyStore api का उपयोग करता है न कि सादा-पाठ। Android-developers.blogspot.com/2012/03/…
Wesley Wiser

12

बिल्ट-इन ईमेल एप्लिकेशन के साथ उपयोग किए जाने वाले एंड्रॉइड पासवर्ड एक SQLite डेटाबेस के अंदर सादे पाठ में संग्रहीत किए जाते हैं। यह जीमेल एप्लिकेशन के विपरीत है , जो सचिन सेखर के उत्तर में वर्णित प्रामाणिक टोकन का उपयोग करता है ।

जेली बीन के लिए, डेटाबेस स्थान है:

/data/system/users/0/accounts.db

उपरोक्त स्थान Android संस्करण के साथ बदलता रहता है

एक गैर-रूट किए गए डिवाइस पर यह स्थान ऑपरेटिंग सिस्टम द्वारा सुरक्षित और संरक्षित है।
रूट किए गए उपकरणों पर, उपयोगकर्ता पहले ही तकनीकी रूप से अपनी सुरक्षा को क्रैक कर चुके हैं, और भले ही यह सादे पाठ में नहीं था, फिर भी इसे डिक्रिप्ट करना तुच्छ होगा क्योंकि कुंजी को इसे करने के लिए डिवाइस पर कहीं मौजूद होना चाहिए।

Android विकास टीम के एक सदस्य ने एक स्पष्टीकरण पोस्ट किया जो आज तक लागू है:

अब, इस विशेष चिंता के संबंध में। स्पष्ट करने वाली पहली बात यह है कि ईमेल ऐप चार प्रोटोकॉल - POP3, IMAP, SMTP और Exchange ActiveSync का समर्थन करता है - और बहुत कम, बहुत सीमित अपवादों के साथ, ये सभी पुराने प्रोटोकॉल हैं, जिनके लिए क्लाइंट को सर्वर में पासवर्ड प्रस्तुत करना आवश्यक है हर कनेक्शन पर। जब तक आप डिवाइस पर खाते का उपयोग करना चाहते हैं, तब तक इन प्रोटोकॉल को पासवर्ड बनाए रखने की आवश्यकता होती है। नए प्रोटोकॉल ऐसा नहीं करते हैं - यही कारण है कि कुछ लेख जीमेल के साथ विपरीत हैं, उदाहरण के लिए। नए प्रोटोकॉल क्लाइंट को टोकन जेनरेट करने, टोकन को बचाने और पासवर्ड को छोड़ने के लिए एक बार पासवर्ड का उपयोग करने की अनुमति देते हैं।

मैं आपको टिप्पणी # 38 में जुड़े लेख की समीक्षा करने का आग्रह करता हूं , जो अच्छी तरह से लिखा गया है और काफी जानकारीपूर्ण है। यह "अस्पष्ट" पासवर्डों के बीच के अंतर पर कुछ बहुत अच्छी पृष्ठभूमि प्रदान करता है, और उन्हें वास्तव में "सुरक्षित" बनाता है। बस अपने पासवर्ड (जैसे बेस 64) को अस्पष्ट करना या किसी अन्य जगह संग्रहीत कुंजी के साथ इसे एन्क्रिप्ट करना आपके पासवर्ड या आपके डेटा को अधिक सुरक्षित नहीं बनाएगा । एक हमलावर अभी भी इसे पुनर्प्राप्त करने में सक्षम होगा।

(विशेष रूप से, कुछ अन्य ईमेल क्लाइंट के बारे में कुछ दावे किए गए हैं जो पासवर्ड को क्लीयरटेक्स्ट में स्टोर नहीं करते हैं। यहां तक ​​कि जहां यह सच है, यह इंगित नहीं करता है कि पासवर्ड अधिक सुरक्षित है। एक साधारण परीक्षण: यदि आप बूट कर सकते हैं। डिवाइस और यह आपके कॉन्फ़िगर किए गए खातों पर ईमेल प्राप्त करना शुरू कर देगा, फिर पासवर्ड वास्तव में सुरक्षित नहीं हैं। वे या तो बाधित हैं, या कहीं और संग्रहीत किसी अन्य कुंजी के साथ एन्क्रिप्टेड हैं।)

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


वाह। वह मुझे हैरान करता है मुझे इस तथ्य की जानकारी नहीं थी कि यह सादे पाठ में संग्रहीत है। जड़ को भूल जाओ या जड़ नहीं। यदि आपका उपकरण चोरी हो जाता है, तो एक बेईमान व्यक्ति आपकी साख को आसानी से प्राप्त कर सकता है, भले ही आप फोन को सुरक्षा कुंजी के साथ बंद कर दें। इस तथ्य को देखते हुए, क्या आप किसी भी डिस्क वाइड एन्क्रिप्शन तंत्र के बारे में जानते हैं।
असुधकाल

1
जो कुछ भी वे हैं, वे कुछ ऐसी चीजें हैं जिनका उपयोग खाते तक पहुंच प्राप्त करने के लिए किया जा सकता है। लेकिन, @SachinShekhar, accounts.dbफ़ाइल को इसके अलावा अन्य खातों द्वारा पढ़ा जाने से सुरक्षित है system
वायज़ार्ड

1
ज़ूल, मैं आपके प्रयासों की सराहना करता हूं जो आपने उत्तर में रखे हैं, लेकिन मुझे लगता है कि यह उत्तर बेहद भ्रामक है। यदि आप फिर से उद्धृत किए गए उद्धरण से गुजरते हैं, तो जीमेल ऐप पासवर्ड को स्टोर नहीं करता है। --edit check @SachinShekhar उत्तर भी।
रॉक्सन

2
@asudhak यदि कोई ऐप मूल पासवर्ड का उपयोग कर रहा है, तो उसकी सुरक्षा का कोई तरीका नहीं है। एक हैकर एन्क्रिप्शन / हैशिंग कुंजी को खोजने के बाद खातों से एनकोडेड स्ट्रिंग को डीकोड कर सकता है जिसे स्थानीय रूप से संग्रहीत करने की आवश्यकता होती है क्योंकि ईमेल ऐप को सर्वर पर भेजने से पहले मूल पासवर्ड को संकलित करने की आवश्यकता होगी।
बजे एंड्रॉयड क्वेसिटो सेप

2
@roxan मुझे कुछ भी नहीं मिला जो पासवर्ड को जीमेल ऐप द्वारा स्टोर किया जाए। क्या आप एक उद्धरण या एक लिंक प्रदान कर सकते हैं?
प्रवाह
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.