Zero-Knowledge Encryption क्या है? एक सरल गाइड

Zero-Knowledge Encryption क्या है? एक सरल गाइड

Zero-knowledge encryption का अर्थ है कि provider आपके डेटा तक पहुंच नहीं सकता।

Zero-knowledge encryption एक cryptographic architecture है जहाँ service provider user data तक पहुंच नहीं सकता क्योंकि encryption keys exclusively user के device पर derive और store की जाती हैं और provider के servers पर कभी transmit नहीं की जाती हैं। Standard cloud encryption के विपरीत जहाँ provider keys रखता है, zero-knowledge encryption का अर्थ है कि court order, data breach, या rogue employee के साथ भी, provider के पास hand over करने के लिए कुछ नहीं है। NIST के key management guidelines (SP 800-57) यह principle establish करती हैं कि key custody data access निर्धारित करती है -- zero-knowledge encryption इसे उसके logical conclusion तक ले जाती है।

Zero-Knowledge Encryption कैसे काम करता है

सबसे सरल analogy: एक hotel safe जहाँ केवल आप combination set करते हैं, और hotel कभी इसे नहीं सीखता। अगर आप combination भूल जाते हैं, तो hotel आपके लिए safe नहीं खोल सकता। यह design में एक flaw नहीं है। यही design है।

Technical terms में, zero-knowledge encryption तीन steps के माध्यम से काम करता है:

  1. On-device key derivation। User एक credential प्रदान करता है (एक password, passphrase, या pattern)। एक key derivation function (आमतौर पर PBKDF2 या Argon2) इस credential को एक unique cryptographic salt के साथ combine करके एक encryption key produce करता है। यह entirely user के device पर होता है।

  2. Transmission से पहले Encryption। सभी डेटा derived key का उपयोग करके device पर encrypted होता है इससे पहले कि यह cloud storage या backup के लिए device छोड़े। Encrypted output (ciphertext) वह है जो upload होता है।

  3. Provider कभी key नहीं देखता। Encryption key active use के दौरान केवल device की memory में मौजूद है। यह provider के servers पर कभी transmit नहीं होती। Provider encrypted blobs store करता है जो random data से अप्रभेद्य हैं।

Critical constraint: अगर user अपना credential खो देता है और उसके पास कोई recovery phrase नहीं है, तो डेटा permanently inaccessible है। कोई "forgot password" flow नहीं है जो independently stored recovery mechanism के बिना काम करे। अगर कोई service email के माध्यम से password reset offer करती है और आपका डेटा वापस आता है, तो वह service zero-knowledge encryption उपयोग नहीं करती। यह आपकी keys रखती है।

Zero-Knowledge Encryption बनाम अन्य प्रकार की Encryption

"Encryption" शब्द लगभग हर cloud service की marketing materials में दिखाई देता है। प्रकारों के बीच अंतर substantial हैं।

प्रकार Key कौन रखता है Provider डेटा पढ़ सकता है Provider Breach से बचता है उदाहरण
कोई encryption नहीं N/A हाँ नहीं Dropbox (standard tier)
Transit में Encryption (TLS) Provider हाँ (उनके servers पर rest में) नहीं Google Photos
Server-side rest में encryption Provider हाँ (वे decryption key रखते हैं) आंशिक रूप से (breach scope पर निर्भर) iCloud (standard)
Provider-managed E2E encryption Provider generate करता है, user store करता है Technically नहीं, लेकिन provider को key generation पर access था आंशिक रूप से iCloud Advanced Data Protection
Zero-knowledge encryption केवल User (on-device derived) नहीं। Mathematically impossible। हाँ। Encrypted blobs user की key के बिना useless हैं। Signal, Proton Mail, Vaultaire

"Encryption at rest" और "zero-knowledge encryption" के बीच का अंतर सबसे अधिक confused किया जाता है। Encryption at rest के साथ, provider आपके डेटा को अपने servers पर उन keys का उपयोग करके encrypt करता है जिन्हें वे control करते हैं। यह server hardware की physical theft से बचाता है। यह provider द्वारा आपके डेटा को पढ़ने, डेटा और keys के लिए government subpoena, या insider threat से नहीं बचाता। Provider के पास decryption capability है।

Zero-knowledge encryption के साथ, provider के पास कभी decryption capability नहीं है। उनके servers पर encrypted डेटा उनके लिए उतना ही opaque है जितना किसी external attacker के लिए।

Zero-Knowledge Encryption क्यों मायने रखता है

Data Breaches प्रतिवर्ष अरबों Records को Expose करते हैं

Identity Theft Resource Center ने 2023 में संयुक्त राज्य में 3,205 data compromises report किए, जो approximately 353 million individuals को प्रभावित करते हैं। जब encryption keys रखने वाला provider breached होता है, तो attacker potentially encrypted डेटा और उसे decrypt करने की keys दोनों तक पहुंच प्राप्त करता है। Zero-knowledge architecture इस risk को पूरी तरह हटा देता है। Breached server में केवल ciphertext होता है जिसे computationally decrypt करना infeasible है।

Legal Compulsion एक वास्तविक Threat है

कई jurisdictions में सरकारी agencies providers को stored डेटा hand over करने के लिए compel कर सकती हैं। अगर provider encryption keys रखता है, तो उन्हें comply करना होगा। Zero-knowledge architecture के तहत, subpoena के जवाब में provider का encrypted blob है, जो user के credential के बिना useless है।

"हम पर विश्वास करें" एक Security Architecture नहीं है

Standard encryption आपके डेटा तक access न करने के provider के वादे पर निर्भर करती है। Zero-knowledge encryption उस वादे को एक mathematical guarantee से बदल देता है। Provider डेटा तक पहुंच नहीं सकता भले ही वे चाहें, भले ही कोई employee rogue हो जाए, भले ही उन्हें अलग privacy values वाली company acquire करे। Architecture constraint enforce करती है।

Cryptography के पीछे NIST Standard

AES-256-GCM, zero-knowledge implementations में सबसे आमतौर पर उपयोग किया जाने वाला cipher, National Institute of Standards and Technology द्वारा SP 800-38D (2007) में standardize किया गया था। AES खुद 2001 में NIST द्वारा एक public competition के माध्यम से select किया गया था। "256" bits में key length को refer करता है -- एक 256-bit key के 2^256 possible values हैं, एक इतनी बड़ी संख्या कि इसे brute-force करने के लिए सूर्य अपने remaining lifetime में जितनी energy produce करेगा उससे अधिक energy की आवश्यकता होगी।

GCM (Galois/Counter Mode) authenticated encryption जोड़ता है, जिसका अर्थ है कि decryption process ciphertext के साथ किसी भी tampering का पता लगाती है। अगर encrypted डेटा का एक भी bit alter किया जाता है, तो decryption corrupted output produce करने के बजाय fail होती है। यह attackers को detection के बिना encrypted डेटा manipulate करने से रोकता है।

PBKDF2 (Password-Based Key Derivation Function 2), RFC 8018 में specified, repeated hashing के माध्यम से human-provided credential को cryptographic key में convert करता है। Hash function को hundreds of thousands of times run करना प्रत्येक password guess को computationally expensive बनाता है, एक simple pattern या password को एक ऐसी key में transform करता है जो brute-force attacks का प्रतिरोध करती है।

Vaultaire Zero-Knowledge Encryption कैसे लागू करता है

Vaultaire zero-knowledge architecture पर built iPhone के लिए एक vault ऐप है। यहाँ बताया गया है कि implementation प्रत्येक layer पर कैसे काम करता है।

Key derivation। User 25 dots के 5x5 grid पर एक pattern draw करता है। Dots का sequence, क्रम में, PBKDF2 with HMAC-SHA512 और एक unique per-vault cryptographic salt में feed होता है। Output एक 256-bit AES encryption key है। Pattern device पर कभी संग्रहीत नहीं होता। Hash के रूप में नहीं, किसी representation के रूप में नहीं, किसी भी form में नहीं।

File encryption। प्रत्येक imported file derived key और उस file के लिए unique randomly generated initialization vector (IV) का उपयोग करके AES-256-GCM के साथ encrypted है। Identical files अलग-अलग ciphertext produce करती हैं क्योंकि IV भिन्न होता है।

Metadata encryption। File names, creation dates, और thumbnail data ChaCha20 का उपयोग करके separately encrypted हैं, एक अलग cipher जो cryptographic diversity प्रदान करता है और cache-timing side-channel attacks को eliminate करता है।

Key management। Apple Secure Enclave अपनी encrypted memory के साथ एक dedicated hardware coprocessor में key material store करता है। Vaultaire बंद होने या user switch away होने पर app memory से Keys wipe होती हैं।

कोई vault registry नहीं। Vaults, vault names, या vault counts को list करने वाला कोई database नहीं है। प्रत्येक pattern एक अलग vault खोलता है। ऐप स्वयं यह निर्धारित नहीं कर सकता कि कितने vault मौजूद हैं। पूर्ण security architecture और pattern encryption explanation देखें।

यह कैसे बताएं कि कोई ऐप वास्तविक Zero-Knowledge Encryption उपयोग करता है

तीन tests जो एक मिनट से कम लेते हैं:

  1. Forgot-password test। अगर ऐप email के माध्यम से आपका password reset कर सकता है और आपका डेटा वापस आता है, तो ऐप आपकी encryption keys रखता है। Zero-knowledge नहीं।

  2. New-device test। अगर आप नए device पर sign in करते हैं और old device से keys transfer किए बिना या recovery phrase enter किए बिना आपका डेटा दिखता है, तो server के पास आपकी keys हैं। Zero-knowledge नहीं।

  3. Account test। अगर ऐप के लिए email address या phone number की आवश्यकता है, तो provider के पास आपकी identity और आपके डेटा के बीच एक link है। यह जरूरी नहीं कि disqualifying है, लेकिन उपरोक्त में से किसी के साथ combined, यह confirm करता है कि provider आपके डेटा तक पहुंच सकता है।

तीनों pass करने वाले ऐप्स: Signal, Proton Mail, Standard Notes, Vaultaire। कम से कम एक में fail होने वाले ऐप्स: अधिकांश cloud storage services, App Store पर अधिकांश "vault" ऐप्स।

अक्सर पूछे जाने वाले प्रश्न

क्या zero-knowledge encryption end-to-end encryption के समान है?

वे overlap करते हैं लेकिन identical नहीं हैं। End-to-end encryption (E2EE) का अर्थ है कि डेटा sender के device पर encrypt होता है और केवल recipient के device पर decrypt होता है। Zero-knowledge encryption का अर्थ है कि provider डेटा तक पहुंच नहीं सकता। एक service end-to-end encrypted हो सकती है बिना zero-knowledge के अगर provider ने कभी keys generate की थीं या उन तक पहुंच थी। Zero-knowledge encryption अधिक सख्त standard है।

Zero-knowledge encryption के साथ password खोने पर क्या होता है?

आपका डेटा permanently inaccessible हो जाता है। कोई master key नहीं है, कोई backdoor नहीं है, और कोई recovery process नहीं है जो separately stored recovery phrase के बिना काम करे। यह fundamental tradeoff है: absolute privacy के लिए absolute responsibility की आवश्यकता है। कुछ zero-knowledge apps (Vaultaire सहित) vault creation पर एक recovery phrase generate करते हैं जो primary credential खोने पर encryption key regenerate कर सकती है।

क्या law enforcement zero-knowledge encrypted डेटा तक पहुंच सकती है?

Law enforcement provider को stored डेटा hand over करने के लिए compel कर सकती है। Zero-knowledge encryption के साथ, provider जो डेटा hand over करता है वह एक encrypted blob है जो user की key के बिना useless है। Law enforcement user को key provide करने के लिए compel कर सकती है या नहीं, यह एक अलग legal question है जो jurisdiction के अनुसार भिन्न होता है।

क्या zero-knowledge encryption regular encryption से slower है?

Encryption और decryption operations identical हैं। AES-256-GCM उसी speed पर चलता है चाहे key कोई भी रखे। केवल added cost key derivation है: PBKDF2 को hundreds of thousands of iterations के साथ run करने में एक modern iPhone पर approximately 0.5-2 seconds लगते हैं। यह vault unlock पर एक बार होता है, प्रत्येक file के लिए नहीं। व्यवहार में, users speed में कोई अंतर नहीं देखते।

क्या zero-knowledge का अर्थ है कि ऐप बिल्कुल कोई डेटा collect नहीं करता?

जरूरी नहीं। Zero-knowledge विशेष रूप से encryption architecture को refer करता है। Provider encrypted contents तक पहुंच नहीं सकता। ऐप user opt-in के साथ anonymous analytics, crash reports, या usage metadata collect कर सकता है। जो यह collect नहीं कर सकता वह है encrypted files की content, encryption key, या इसे derive करने के लिए उपयोग की गई credential। Vaultaire की privacy policy बिल्कुल बताती है कि user permission के साथ कौन सा optional डेटा collect किया जाता है।

Zero-knowledge encryption Apple के Advanced Data Protection से कैसे compare होता है?

Apple का Advanced Data Protection (ADP), iOS 16.2 में introduced, अधिकांश iCloud data categories तक end-to-end encryption extend करता है। ADP सक्षम के साथ, Apple protected डेटा तक पहुंच नहीं सकता। Dedicated zero-knowledge app से मुख्य अंतर: ADP opt-in है (default रूप से बंद), Apple ID की आवश्यकता है, और केवल Apple के ecosystem में डेटा की रक्षा करता है। Vaultaire जैसा zero-knowledge vault ऐप Apple के infrastructure से independently काम करता है, कोई account नहीं चाहता, और plausible deniability और duress mode जैसी features जोड़ता है जो ADP प्रदान नहीं करता।

सारांश

Zero-knowledge encryption वह architecture है जहाँ provider mathematically user data तक पहुंच नहीं सकता क्योंकि encryption keys कभी user के device को नहीं छोड़तीं। यह standard encryption, encryption at rest, और यहाँ तक कि end-to-end encryption के कुछ रूपों से एक critical तरीके से अलग है: provider की data तक पहुंचने में असमर्थता mathematics द्वारा enforce की जाती है, policy द्वारा नहीं। Tradeoff -- key खोने का अर्थ डेटा खोना है -- एक bug नहीं है। यह वह mechanism है जो guarantee को real बनाता है।

Security architecture पढ़ें