शब्दकोश

प्राइवेसी और एन्क्रिप्शन

ऐप डिस्क्रिप्शन में ये शब्द ढीले तरीक़े से इस्तेमाल होते हैं, और इनके बीच के फ़र्क़ ठीक वहीं हैं जहां असली मोल है। छिपा हुआ लॉक्ड नहीं है। लॉक्ड एन्क्रिप्टेड नहीं है। और वह की जो किसी और के पास है, असल में आपकी नहीं है।

छिपा हुआ बनाम एन्क्रिप्टेड

छिपा हुआ का मतलब है ऐप कुछ न दिखाने पर राज़ी हुआ। एन्क्रिप्टेड का मतलब है डिस्क पर बाइट बिना की के पढ़ी नहीं जा सकतीं। पहला एक वादा है; दूसरा गणित है।

एक छिपा हुआ फ़ोल्डर अब भी एक सामान्य फ़ोल्डर है। जो कुछ भी सीधे डिस्क पढ़ता है — एक बैकअप, एक फ़ाइल मैनेजर, एक फ़ॉरेंसिक टूल, सही अनुमति वाला कोई और ऐप — बिल्कुल वही देखता है जो इसमें है, क्योंकि फ़ाइल के बारे में कुछ नहीं बदला।

एन्क्रिप्शन फ़ाइल को बदल देता है। डिस्क पर जो बैठा है वह शोर है, और बिना की के किसी के लिए भी यह शोर बना रहता है, ऐप लिखने वाले समेत। यह फ़र्क़ सिर्फ़ उस दिन नज़र आता है जब यह मायने रखता है, यही वजह है कि इसे उससे पहले जान लेना बेहतर है।

यह भी देखें: At rest बनाम in transitChaCha20-Poly1305

ChaCha20-Poly1305

एक आधुनिक एन्क्रिप्शन एल्गोरिद्म जो डेटा छिपाता भी है और इसमें छेड़छाड़ पकड़ता भी है। फ़ोन पर तेज़, जिनके पास पुराने विकल्प के लिए हमेशा हार्डवेयर एक्सेलरेशन नहीं होता।

ChaCha20 एन्क्रिप्ट करता है; Poly1305 एक टैग बनाता है जो पुष्टि करता है डेटा बदला नहीं गया। साथ में इन्हें ऑथेंटिकेटेड एन्क्रिप्शन कहते हैं — बदली हुई फ़ाइल पर डिक्रिप्शन एक भरोसेमंद कचरा देने के बजाय ज़ोर से फेल होता है।

यह वही संरचना है जो TLS और आधुनिक सुरक्षित मैसेजिंग में इस्तेमाल होती है। बिना AES एक्सेलरेशन वाले हार्डवेयर पर यह AES से साफ़ तौर पर तेज़ है, यही वजह है कि फ़ोन इसे तरजीह देते हैं।

यह भी देखें: At rest बनाम in transitकी-रैपिंग

की-रैपिंग

envelope encryption

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

फ़ाइलें एक बार एन्क्रिप्ट होती हैं, डिवाइस पर बनी एक की से। फिर वह की पासकोड से रैप — यानी एन्क्रिप्ट — होती है, और रिकवरी कोड से दोबारा रैप होती है। दो लिफ़ाफ़े, हर एक के अंदर एक की।

नतीजे पूरी तरह व्यावहारिक हैं। पासकोड बदलने पर सौ गीगाबाइट के बजाय कुछ सौ बाइट दोबारा लिखे जाते हैं। बायोमेट्रिक अनलॉक एक दूसरे सिक्योरिटी मॉडल के बजाय एक और रैप की गई कॉपी है। और हर रैपर खोने पर की खो जाती है, क्योंकि की कहीं और मौजूद नहीं है।

यह भी देखें: रिकवरी कोडChaCha20-Poly1305

रिकवरी कोड

एक बार इस्तेमाल होने वाली स्ट्रिंग जो पासकोड भूलने पर मास्टर की खोल सकती है। कोई इसे दोबारा जारी नहीं कर सकता, क्योंकि किसी और के पास यह कभी थी ही नहीं — ऐप लिखने वालों समेत।

यह सेटअप के समय एक बार दिखाया जाता है, और यह दो दरवाज़ों में दूसरा है। इसे लिखकर डिवाइस से अलग कहीं रखने पर एक भूला पासकोड सिर्फ़ एक असुविधा बन जाता है।

अगर पासकोड भूल गया है और रिकवरी कोड खो गया है, फ़ाइलें कोई भी डिक्रिप्ट नहीं कर सकता। यह कोई सपोर्ट पॉलिसी नहीं जिस पर बहस की जा सके; की की कोई कॉपी न होने का यही मतलब है। इसे उतनी ही सावधानी से रखें जितनी फ़ाइलें इसकी हक़दार हैं।

यह भी देखें: की-रैपिंगज़ीरो-नॉलेज

डिकॉय वॉल्ट

plausible deniability

एक दूसरा पासकोड जो एक अलग, हानिरहित वॉल्ट खोलता है। किसी को ऐप अनलॉक करने पर मजबूर किया जाए, तो जो खुलता है वह वह चीज़ नहीं जो वे ढूंढ रहे थे।

दोनों पासकोड असली हैं और दोनों एक असली वॉल्ट खोलते हैं। स्क्रीन पर कुछ भी नहीं बताता कि दूसरा भी मौजूद है, और ऐप से पूछा नहीं जा सकता यह कौन-सा दिखा रहा है।

यह उस स्थिति के लिए मौजूद है जहां अनलॉक करने से मना करना विकल्प नहीं है — एक बॉर्डर, एक मांग, कोई आपके सिर पर खड़ा। सिर्फ़ एन्क्रिप्शन वहां मदद नहीं करता, क्योंकि समस्या की नहीं है, इसे इस्तेमाल करने पर मजबूर होना है।

यह भी देखें: रिकवरी कोडछिपा हुआ बनाम एन्क्रिप्टेड

Keychain

सिस्टम का छोटे राज़ों के लिए सुरक्षित भंडार, डिवाइस के सिक्योरिटी हार्डवेयर से समर्थित। यहीं की और टोकन रहते हैं, और यहां कुछ भी बड़ा नहीं जाना चाहिए।

इसमें मौजूद चीज़ें शर्तें रख सकती हैं: सिर्फ़ तब पढ़ी जा सकें जब डिवाइस अनलॉक हो, सिर्फ़ इसी डिवाइस पर, सिर्फ़ बायोमेट्रिक या पासकोड पुष्टि के बाद। वे शर्तें ऐप के विनम्रता से पूछने के बजाय हार्डवेयर से लागू होती हैं।

यह राज़ स्टोर करता है, डेटा नहीं। की, टोकन और रैप की गई सामग्री यहां जाती है; एन्क्रिप्टेड फ़ाइलें ख़ुद डिस्क पर रहती हैं, जहां साइज़ कोई समस्या नहीं।

यह भी देखें: की-रैपिंगAt rest बनाम in transit

At rest बनाम in transit

At rest एन्क्रिप्टेड का मतलब डिस्क पर पढ़ा नहीं जा सकता। In transit एन्क्रिप्टेड का मतलब नेटवर्क पर पढ़ा नहीं जा सकता। ये अलग सुरक्षाएं हैं, और कोई प्रोडक्ट ईमानदारी से एक का दावा कर सकता है जबकि दूसरा न करता हो।

HTTPS in transit एन्क्रिप्शन है: नेटवर्क देखने वाले किसी से भी सुरक्षित, और दूसरे छोर पर पहुंचने पर सर्वर द्वारा पूरी तरह पढ़ने लायक़। At rest एन्क्रिप्शन स्टोर की गई कॉपी के बारे में है, जो तब मायने रखता है जब कोई डिवाइस खो जाए या डिस्क की इमेज बन जाए।

किसी प्राइवेसी दावे को ध्यान से पढ़ने का मतलब आमतौर पर यह पता लगाना है कि यह इन दोनों में से किस बारे में है। "आपका डेटा एन्क्रिप्टेड है" बिना इनमें से कोई शब्द जोड़े एक ऐसा वाक्य है जिसे कुछ न कहने के लिए चुना गया है।

यह भी देखें: ChaCha20-Poly1305ज़ीरो-नॉलेज

ज़ीरो-नॉलेज

एक डिज़ाइन जहां ऑपरेटर यह पढ़ नहीं सकता कि वह क्या स्टोर करता है, क्योंकि की यूज़र के डिवाइस से कभी बाहर नहीं जाती। टेस्ट सादा है: क्या वे आपका पासवर्ड रीसेट कर सकते हैं और फिर भी आपको आपका डेटा दे सकते हैं?

अगर कोई सेवा आपके सब कुछ भूल जाने के बाद एक्सेस बहाल कर सकती है, इसके पास कुछ ऐसा है जो आपका डेटा खोल सकता है — जिसका मतलब है इसे इस्तेमाल करने पर मजबूर किया जा सकता है, और सेवा में सेंध लगाने वाला कोई भी वही क्षमता विरासत में पाता है।

यह समझौता असली है और इसे शुद्ध फ़ायदे के रूप में बेचने के बजाय साफ़ तौर पर बताया जाना चाहिए: असली ज़ीरो-नॉलेज का मतलब है आख़िरी की खोने पर सच में एक्सेस खोना। कोई तीसरा विकल्प नहीं जहां ऑपरेटर आपको बचा सके पर कोई और न बचा सके।

यह भी देखें: रिकवरी कोडAt rest बनाम in transit

बायोमेट्रिक्स

Face ID, Touch ID

डिवाइस, ऐप नहीं, पुष्टि करता है यह आप ही हैं; ऐप को सिर्फ़ हां या ना बताया जाता है। कोई फ़िंगरप्रिंट या चेहरे का डेटा कभी किसी ऐप तक नहीं पहुंचता, और इनमें से कुछ भी पासवर्ड नहीं है।

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

तुलना समर्पित हार्डवेयर के अंदर होती है और टेम्प्लेट इसे कभी नहीं छोड़ते। जो ऐप Face ID ऑफ़र करता है वह सिस्टम से एक सवाल पूछ रहा है, कुछ इकट्ठा नहीं कर रहा।

यह भी देखें: Keychainकी-रैपिंग

एनॉनिमस एनालिटिक्स

यह गिनना कि कोई घटना हुई, बिना यह रिकॉर्ड किए किसने की। इस दावे का मोल पूरी तरह इस पर टिका है कि हर घटना के साथ क्या जुड़ा है — और फ़ाइल नाम, पाथ और URL वे जगहें हैं जहां ऐसे वादे आमतौर पर टूटते हैं।

यह जानना कि एक स्क्रीन खुली, एक गिनती है। यह जानना कौन-सी फ़ाइल चली, एक इंसान का ब्यौरा है। इन दोनों के बीच की रेखा शब्द "एनॉनिमस" नहीं है; यह है कि घटना कौन-से फ़ील्ड ले जाती है।

भरोसे लायक़ दावा उतनी ही सफ़ाई से बताता है क्या *नहीं* भेजा जाता जितना क्या भेजा जाता है: कोई फ़ाइल नाम नहीं, कोई पाथ नहीं, कोई URL नहीं, कोई क्रेडेंशियल नहीं, कोई ऐसा पहचानकर्ता नहीं जो सेशन के पार बचे रहे — और इसे पूरी तरह बंद करने का एक तरीक़ा देता है।

यह भी देखें: At rest बनाम in transit

बाकी विषय