ऐप्स में विश्वसनीय इनकार: यह क्या है और यह क्यों मायने रखता है
विश्वसनीय इनकार का अर्थ है कि छुपे हुए डेटा के अस्तित्व को साबित नहीं किया जा सकता।
एन्क्रिप्शन में विश्वसनीय इनकार स्टोरेज का वह गुण है जिससे उपयोगकर्ता एक डेटा सेट दिखा सकता है और ऐसा कोई संरचनात्मक निशान नहीं छूटता जो साबित करे कि कोई दूसरा डेटा सेट भी मौजूद है। इस दावे में खतरे का मॉडल साफ़ बताया जाना चाहिए: ठीक से पैडेड एन्क्रिप्टेड स्टोर की स्थिर इमेज एक बात है, और चालू हैक हुआ डिवाइस, क्लाउड सेवा का मेटाडेटा या कहीं और रखी प्रतियाँ दूसरी बात। यह सिर्फ़ छिपाने की सुविधा नहीं है। यह एन्क्रिप्शन, लेआउट, पैडिंग और संचालन के डिज़ाइन के एक साथ काम करने पर निर्भर करता है।
यह गाइड बताती है कि ऐप्स में विश्वसनीय इनकार कैसे काम करता है, वास्तविक क्रिप्टोग्राफ़िक इनकार-योग्यता और दिखावटी डिकॉय मोड में क्या अंतर है, यह किन वास्तविक परिस्थितियों में मायने रखता है, और इनकार-योग्यता के दावों को कैसे परखें।
एन्क्रिप्शन में विश्वसनीय इनकार का अर्थ
रोज़मर्रा की भाषा में विश्वसनीय इनकार का मतलब है कि आप किसी बात से विश्वसनीय ढंग से इनकार कर सकते हैं। स्टोरेज क्रिप्टोग्राफ़ी में उपयोगी लक्ष्य इससे सीमित है: बताए गए खतरे के मॉडल के भीतर एन्क्रिप्टेड स्टोर का जाँचकर्ता छिपी सामग्री को खाली पैडेड जगह से अलग न कर पाए। कोई भी ऐप यह वादा पहले से खुली तिजोरी, रिकॉर्ड किए गए इनपुट, बाहरी प्रतियों या डिवाइस के हर तरह के हैक तक नहीं बढ़ा सकता।
यह अवधारणा डिस्क एन्क्रिप्शन से आई। TrueCrypt (और उसके उत्तराधिकारी VeraCrypt) ने छिपे वॉल्यूम की शुरुआत की: एक एन्क्रिप्टेड वॉल्यूम के भीतर दूसरा एन्क्रिप्टेड वॉल्यूम। एक पासवर्ड बाहरी वॉल्यूम को साधारण फ़ाइलों के साथ खोलता है। दूसरा पासवर्ड भीतरी छिपे वॉल्यूम को संवेदनशील फ़ाइलों के साथ खोलता है। फ़ॉरेंसिक जाँचकर्ता यह तय नहीं कर सकता कि छिपा वॉल्यूम मौजूद है या नहीं, क्योंकि बाहरी वॉल्यूम की खाली जगह रैंडम डेटा से भरी होती है, जिसे एन्क्रिप्टेड डेटा से अलग नहीं पहचाना जा सकता।
ऐप्स के लिए, विश्वसनीय इनकार का अर्थ है कि अलग-अलग क्रेडेंशियल (पासवर्ड, PIN, पैटर्न) अलग-अलग डेटा सेट खोलते हैं, और ऐसा कोई मेटाडेटा, रजिस्ट्री, कॉन्फ़िगरेशन फ़्लैग या संरचनात्मक निशान नहीं होता जो अतिरिक्त डेटा सेट का अस्तित्व उजागर करे।
वास्तविक इनकार-योग्यता बनाम दिखावटी डिकॉय मोड
यह वह महत्वपूर्ण अंतर है जहाँ अधिकांश ऐप्स गलत हो जाते हैं।
दिखावटी डिकॉय मोड (वास्तविक इनकार-योग्यता नहीं)
कई तिजोरी ऐप "डिकॉय" या "नकली PIN" सुविधा देते हैं। आप एक दूसरा PIN सेट करते हैं जो अलग फ़ोटो वाली अलग जगह खोलता है। समस्या यह है कि ये ऐप आमतौर पर एक बूलियन फ़्लैग, डेटाबेस एंट्री या कॉन्फ़िगरेशन फ़ाइल रखते हैं, जो बताती है कि डिकॉय मोड मौजूद है और सेट है।
ऐप को समझने वाला फ़ॉरेंसिक जाँचकर्ता यह फ़्लैग ढूँढ सकता है। सेट किया हुआ डिकॉय मोड मिलना ही साबित कर देता है कि छिपा डेटा मौजूद है। ऐसी इनकार-योग्यता केवल दिखावटी है: यह सरसरी तौर पर झाँकने वाले के सामने काम करती है, लेकिन फ़ॉरेंसिक जाँच में विफल हो जाती है।
दिखावटी इनकार-योग्यता के संकेत:
- ऐप की सेटिंग्स में "डिकॉय मोड" का टॉगल है
- एक कॉन्फ़िगरेशन फ़ाइल दर्ज करती है कि डिकॉय मोड चालू है या नहीं
- एक डेटाबेस टेबल तिजोरी ID को प्रकार-सूचक (primary/decoy) के साथ सूचीबद्ध करती है
- डिकॉय मोड चालू होने पर ऐप की स्टोरेज संरचना बदलती है
- डिकॉय मोड सेट होने पर ऐप को अनइंस्टॉल और दोबारा इंस्टॉल करने पर उसका व्यवहार अलग दिखता है
वास्तविक क्रिप्टोग्राफ़िक इनकार-योग्यता
वास्तविक इनकार-योग्यता स्टोरेज की बनावट का गुण है, कोई सेटिंग का स्विच नहीं। एन्क्रिप्टेड स्टोरेज को इस तरह डिज़ाइन किया जाना चाहिए कि:
हर वैकल्पिक क्रेडेंशियल केवल अपना डेटा सेट दिखाता है। सिस्टम कोई अलग डिकॉय फ़्लैग नहीं रखता जो किसी क्रेडेंशियल को छलावे के रूप में पहचाने। अमान्य क्रेडेंशियल विफल हो सकते हैं, लेकिन उस विफलता से यह पता नहीं चलना चाहिए कि कोई न बताया गया डेटा सेट मौजूद है या नहीं।
कोई तिजोरी रजिस्ट्री नहीं होती। ऐप यह नहीं बता सकता कि कितनी तिजोरियाँ मौजूद हैं। न कोई गिनती, न कोई इंडेक्स, न तिजोरी ID की कोई सूची। ऐप के स्टोरेज की जाँच करने वाले फ़ॉरेंसिक जाँचकर्ता को एन्क्रिप्टेड डेटा का एक अविभाजित पूल मिलता है।
कोई कॉन्फ़िगरेशन फ़्लैग छिपी तिजोरियाँ उजागर नहीं करता। न कोई बूलियन, न डेटाबेस एंट्री, न कोई प्रेफ़रेंस फ़ाइल जो बताए कि अतिरिक्त तिजोरियाँ मौजूद हैं या नहीं।
स्टोरेज पैडेड होता है। कुल स्टोरेज खपत तिजोरियों या फ़ाइलों की संख्या के साथ नहीं बदलती। पैडिंग के बिना जाँचकर्ता दिखने वाली सामग्री और कुल एन्क्रिप्टेड डेटा के आकार की तुलना करके तिजोरियों की संख्या का अनुमान लगा सकता है।
एन्क्रिप्टेड डेटा रैंडम नॉइज़ से अलग नहीं पहचाना जा सकता। न फ़ाइल की सीमाएँ, न हेडर, न कोई संरचनात्मक चिह्न जो बताए कि एक तिजोरी का डेटा कहाँ खत्म होता है और दूसरी का कहाँ शुरू होता है।
| गुण | दिखावटी डिकॉय | वास्तविक इनकार-योग्यता |
|---|---|---|
| हर क्रेडेंशियल का अलग डेटा | हाँ | हाँ |
| कोई तिजोरी रजिस्ट्री नहीं | नहीं (डेटाबेस तिजोरियों का हिसाब रखता है) | हाँ |
| कोई कॉन्फ़िगरेशन फ़्लैग नहीं | नहीं (डिकॉय टॉगल संग्रहीत) | हाँ |
| स्टोरेज पैडिंग | शायद ही कभी | हाँ |
| स्थिर इमेज में वैकल्पिक स्टोरेज छिपाता है | नहीं | हाँ, बताए गए स्टोरेज खतरे के मॉडल के भीतर |
| बनावट का गुण या सुविधा | सुविधा का टॉगल | बनावट का गुण |
वास्तविक परिस्थितियाँ जहाँ यह मायने रखता है
विश्वसनीय इनकार एक सैद्धांतिक चिंता नहीं है। यह दर्ज और बार-बार होने वाली वास्तविक परिस्थितियों से जुड़ा है।
सीमा पार करना
सीमा पार करते समय जाँचकर्ता डिवाइस की जाँच कर सकता है और क्रेडेंशियल माँग सकता है। अगर कोई डिज़ाइन सच में स्टोरेज-स्तर की इनकार-योग्यता देता है, तो एक क्रेडेंशियल एक साधारण डेटा सेट दिखा सकता है, जबकि स्थिर इमेज में ऐसा कोई संरचनात्मक निशान नहीं होता जो छिपी सामग्री को पैडिंग से अलग करे। Vaultaire का मौजूदा लेआउट (हर तिजोरी के लिए एक इंडेक्स फ़ाइल) ऐप कंटेनर तक पहुँच वाले जाँचकर्ता के सामने यह गारंटी नहीं देता।
घरेलू हिंसा और जबरदस्ती के रिश्ते
दुर्व्यवहार झेल रहे व्यक्ति को सबूत (चोट की फ़ोटो, धमकी भरे संदेश, कानूनी दस्तावेज़) उसी डिवाइस पर रखने पड़ सकते हैं जिस पर दुर्व्यवहार करने वाला नज़र रखता है। अगर वह तिजोरी दिखाने की माँग करे, तो उपयोगकर्ता गैर-संवेदनशील सामग्री वाली तिजोरी खोल सकता है। वास्तविक इनकार-योग्यता के बिना ऐप के कॉन्फ़िगरेशन में "डिकॉय मोड" का फ़्लैग छिपी सामग्री का अस्तित्व उजागर कर देगा।
डिवाइस की चोरी
तकनीकी कौशल वाला चोर चोरी हुए फ़ोन से डेटा निकालने की कोशिश कर सकता है। ठीक से पैडेड इनकार-योग्य स्टोर का लक्ष्य यह छिपाना है कि पूल में कितने डेटा सेट हैं, हालांकि कुल आवंटन, डिवाइस की स्थिति, बैकअप और संचालन के निशान फिर भी खतरे के मॉडल में आते हैं। Vaultaire अभी सामग्री को एन्क्रिप्ट करता है, लेकिन हर सेट की गई तिजोरी के लिए एक गिना जा सकने वाला स्थानीय इंडेक्स दिखाता है।
कानूनी और पत्रकारिता संरक्षण
स्रोतों की रक्षा करने वाले पत्रकार, क्लाइंट की फ़ाइलें सँभालने वाले वकील और तानाशाही शासन में काम करने वाले कार्यकर्ता ऐसी स्थितियों का सामना करते हैं जहाँ उन्हें डिवाइस की सामग्री दिखाने के लिए मजबूर किया जा सकता है। वास्तविक इनकार-योग्यता डेटा ज़ब्ती के खिलाफ एक भरोसेमंद बचाव देती है।
Vaultaire आज क्या लागू करता है
Vaultaire पैटर्न से अलग पहुँच और बिना दिखने वाली तिजोरी सूची का सामान्य इंटरफ़ेस लागू करता है। ये गुण ऐप के सामान्य उपयोग में मदद करते हैं, लेकिन ऊपर दी गई वास्तविक इनकार-योग्यता की चेकलिस्ट की हर शर्त पूरी नहीं करते।
सेट किए गए पैटर्न अलग-अलग एन्क्रिप्टेड तिजोरियाँ खोलते हैं। PBKDF2 पैटर्न और डिवाइस-व्यापी सॉल्ट से एक तिजोरी कुंजी बनाता है। सेट की गई कुंजी अपने एन्क्रिप्टेड इंडेक्स को प्रमाणित करती है और एक रैंडम मास्टर कुंजी खोलती है। जो पैटर्न सेट नहीं है, वह "गलत पैटर्न" संदेश के बजाय खाली स्थिति दिखाता है।
स्थानीय प्रारूप गिना जा सकता है। Vaultaire हर तिजोरी के लिए एक vault_index_<fingerprint>.bin फ़ाइल रखता है। फ़िंगरप्रिंट से पैटर्न या तिजोरी का नाम पता नहीं चलता, लेकिन ऐप कंटेनर तक पहुँच वाला व्यक्ति इंडेक्स फ़ाइलें गिन सकता है। AES-GCM प्रमाणीकरण और तय फ़ाइल नाम संभावित तिजोरी कुंजियों को ऑफ़लाइन परखने का तरीका भी देते हैं।
स्थानीय स्टोरेज का आकार स्थिर नहीं है। फ़ाइल सामग्री और मेटाडेटा एन्क्रिप्टेड हैं, और क्लाउड बैकअप के हिस्से आकार पैडिंग और डिकॉय रिकॉर्ड का उपयोग करते हैं। स्थानीय ऐप कंटेनर असली और डमी तिजोरी स्लॉट का कोई तय पूल आरक्षित नहीं करता, इसलिए कुल स्टोरेज और इंडेक्स की संख्या संरचना उजागर कर सकती है।
रिकवरी और दबाव की स्थिति मौजूद रहती है। Vaultaire रिकवरी जानकारी को AES-GCM से एन्क्रिप्टेड Keychain डेटाबेस में रखता है। दबाव मोड गैर-छद्म तिजोरी के स्थानीय इंडेक्स और रिकवरी मैपिंग हटाता है और उस डिवाइस को सिंक से अलग कर देता है। यह क्लाउड बैकअप, दूसरे डिवाइस की प्रतियाँ या हर साझा एन्क्रिप्टेड ब्लॉब नहीं मिटाता, और पूरा होने में लगने वाला समय स्थानीय काम पर निर्भर करता है।
इसलिए Vaultaire इंटरफ़ेस के स्तर पर अलगाव और एन्क्रिप्टेड स्टोरेज देता है, यह सूचना-सैद्धांतिक प्रमाण नहीं कि कोई और तिजोरी मौजूद नहीं है। ऑफ़लाइन ऐप कंटेनर स्नैपशॉट से स्थानीय तिजोरी की संख्या छिपाने के लिए भविष्य में एक तय क्षमता वाला कैटलॉग चाहिए होगा, जिसमें असली और डमी स्लॉट में फ़र्क न किया जा सके।
इनकार-योग्यता दावों का मूल्यांकन कैसे करें
जब कोई ऐप विश्वसनीय इनकार का दावा करता है, पूछें:
- क्या "डिकॉय मोड" का कोई टॉगल है? अगर हाँ, तो यह दिखावटी है। फ़ॉरेंसिक जाँचकर्ता वह टॉगल ढूँढ सकता है।
- क्या ऐप में तिजोरियों की सूची या डेटाबेस है? अगर हाँ, तो तिजोरी का अस्तित्व साबित हो सकता है।
- क्या अनुमान ऑफ़लाइन जाँचे जा सकते हैं? प्रमाणित सिफ़रटेक्स्ट अलग पासवर्ड हैश के बिना भी किसी संभावित कुंजी को सही साबित कर सकता है। पूछें कि अनुमान की लागत को क्या सीमित करता है और क्या स्टोरेज लेआउट कुंजी का कोई सस्ता फ़िंगरप्रिंट देता है।
- क्या तिजोरियों की संख्या के साथ स्टोरेज खपत बदलती है? अगर हाँ, तो डिस्क का विश्लेषण तिजोरियों की संख्या का अनुमान लगा सकता है।
- क्या ऐप तिजोरियाँ गिन सकता है? अगर ऐप आपकी तिजोरियों की सूची दिखा सकता है, तो वह सूची डिवाइस पर मौजूद है और खोजी जा सकती है।
अक्सर पूछे जाने वाले प्रश्न
क्या विश्वसनीय इनकार कानूनी है?
विश्वसनीय इनकार वाला एन्क्रिप्शन ज़्यादातर लोकतंत्रों में कानूनी है। अपने डिवाइस पर ऐसा एन्क्रिप्टेड डेटा रखने के खिलाफ कोई कानून नहीं है जिसका अस्तित्व साबित न किया जा सके। कुछ न्यायक्षेत्रों में (UK में RIPA के तहत, ऑस्ट्रेलिया में Assistance and Access Act के तहत) अधिकारी एन्क्रिप्शन कुंजियाँ बताने के लिए बाध्य कर सकते हैं। कानूनी सवाल यह है कि जिस डेटा का अस्तित्व ही साबित न हो सके, उसकी कुंजी बताने की बाध्यता लागू की जा सकती है या नहीं। यह कानून का अभी विकसित हो रहा क्षेत्र है।
क्या फ़ॉरेंसिक टूल विश्वसनीय इनकार का पता लगा सकते हैं?
Vaultaire का ऐप कंटेनर पाने वाला जाँचकर्ता एन्क्रिप्टेड स्टोरेज पहचान सकता है और हर तिजोरी की स्टोरेज डायरेक्टरी गिन सकता है। vault_index_*.bin रूट फ़ाइलें कवर फ़ाइलों के साथ 64 के पूल में आती हैं, लेकिन डायरेक्टरी दिखा देती हैं कि कौन-सी असली हैं। फ़ाइलों से तिजोरी के नाम या प्लेनटेक्स्ट सामग्री का पता नहीं चलता, लेकिन उनकी संख्या से स्थानीय एन्क्रिप्टेड इंडेक्स की संख्या पता चल जाती है। इसलिए मौजूदा डिज़ाइन तिजोरी को सामान्य नेविगेशन से छिपाता है, हर फ़ॉरेंसिक स्टोरेज जाँच से नहीं।
क्या विश्वसनीय इनकार किसी दृढ़ राष्ट्र-राज्य के खिलाफ काम करता है?
जब कुंजियाँ, nonce और कार्यान्वयन सही हों, तो AES-256-GCM सामग्री एन्क्रिप्शन की मज़बूत सीमा देता है। इससे Vaultaire का मौजूदा स्टोरेज लेआउट किसी सरकारी जाँचकर्ता के सामने इनकार-योग्य नहीं बन जाता: स्थानीय इंडेक्स की संख्या दिखती रहती है, और तिजोरी खुली होने पर चालू हैक पैटर्न, कुंजियों, प्रीव्यू या एक्सपोर्ट को निशाना बना सकता है। मौजूदा सुविधा इंटरफ़ेस में अलग-अलग पैटर्न से खुलने वाली चीज़ों को अलग रखती है; यह वादा नहीं करती कि कोई दृढ़ जाँचकर्ता अतिरिक्त स्थानीय इंडेक्स का होना साबित नहीं कर सकता।
विश्वसनीय इनकार और छिपी हुई तिजोरियों में क्या अंतर है?
छिपी हुई तिजोरियाँ वे तिजोरियाँ हैं जो ऐप के सामान्य इंटरफ़ेस में नहीं दिखतीं। मज़बूत क्रिप्टोग्राफ़िक इनकार-योग्यता एक अलग गुण है, जिसमें छिपे डेटा को खाली पैडेड स्टोरेज से अलग नहीं किया जा सकता। Vaultaire अभी पहला गुण देता है। इसका प्रारूप (हर तिजोरी के लिए एक इंडेक्स फ़ाइल) ऐप कंटेनर तक पहुँच वाले जाँचकर्ता के सामने दूसरा गुण नहीं देता।
क्या मैं क्लाउड बैकअप के साथ विश्वसनीय इनकार का उपयोग कर सकता हूँ?
Vaultaire एन्क्रिप्टेड बैकअप मैनिफ़ेस्ट और पैडेड एन्क्रिप्टेड फ़ाइल हिस्से उपयोगकर्ता के निजी CloudKit डेटाबेस में लिखता है। रैंडम रिकॉर्ड नाम, एक जैसे रिकॉर्ड प्रकार, 10 MB हिस्सों की पैडिंग और डिकॉय रिकॉर्ड सामग्री के सीधे उजागर होने को कम करते हैं। रिकॉर्ड की संख्या, कुल मात्रा, समय और अपडेट के पैटर्न सेवा मेटाडेटा के रूप में दिखते रहते हैं, इसलिए क्लाउड बैकअप स्थिर आकार वाला, सूचना-सैद्धांतिक रूप से इनकार-योग्य स्टोर नहीं बनाता।
सारांश
मज़बूत स्टोरेज इनकार-योग्यता का लक्ष्य है कि जाँचकर्ता स्थिर एन्क्रिप्टेड स्टोर में छिपे डेटा को पैडेड खाली जगह से अलग न कर पाए। यह सुविधा बताने वाले ज़्यादातर ऐप दिखावटी डिकॉय मोड देते हैं, जिनके कॉन्फ़िगरेशन फ़्लैग खोजे जा सकते हैं। मज़बूत परिभाषा पूरी करने के लिए सटीक खतरे का मॉडल, गिनी न जा सकने वाली तिजोरी रजिस्ट्री, कोई भेद खोलने वाला कॉन्फ़िगरेशन फ़्लैग नहीं, स्थिर पैडिंग, और ऐसे एन्क्रिप्टेड रिकॉर्ड चाहिए जो यह न बताएँ कि कौन-से स्लॉट असली हैं।
Vaultaire सेट किए गए पैटर्न से एन्क्रिप्टेड तिजोरी अलग करता है और तिजोरी के नाम और सामग्री लॉक इंटरफ़ेस से बाहर रखता है। इसका मौजूदा स्टोरेज लेआउट फिर भी ऐप कंटेनर की जाँच में एन्क्रिप्टेड इंडेक्स की संख्या दिखा देता है। इसे प्रमाणित एन्क्रिप्शन पर टिका इंटरफ़ेस-स्तर का छिपाव मानें, इस बात का प्रमाण नहीं कि कोई और तिजोरी मौजूद नहीं है।