एन्क्रिप्शन छिपाता है कि आपने क्या कहा। यह छिपाता है कि आपने कुछ कहा भी।
एन्क्रिप्शन संदेश की सामग्री को निजी रखता है। वह यह नहीं छिपाता कि संदेश हुआ ही था। नेटवर्क देख रहे किसी भी शख़्स को अब भी दिखता है कि कौन किससे बात कर रहा है, कब, और कितने किलोबाइट (KB) इधर से उधर गए — और संवेदनशील हालात में यह शब्दों जितना ही मायने रख सकता है। AEGIS किसी बंद समूह के सदस्यों के बीच का ट्रैफ़िक एक स्थिर दर पर चलाता रहता है, चाहे भेजने को कुछ हो या न हो, ताकि समय और मात्रा में कोई संकेत ही न बचे।
“जब तक कोई हमला-सिमुलेशन पुष्टि न कर दे, तब तक कुछ भी पूरा नहीं।”
विकास के दौरान ट्रैफ़िक विश्लेषण के बारे में अंदाज़ा बार-बार ग़लत निकला। सिर्फ़ सिमुलेशन हार्नेस भरोसेमंद साबित हुआ, इसलिए वही पहरा बन गया। Python हार्नेस, जो पड़ा है
sim/ में, विनिर्देश के हर मात्रात्मक दावे के पीछे की सबूत-बही है — कोई बाद की सोच नहीं, जो पहले से भेजे जा चुके डिज़ाइन को सही ठहराए।
यह क्या है, एक मिनट में
नेटवर्क देख सकने वाले को एन्क्रिप्शन तोड़ने की ज़रूरत ही नहीं। उसे दिखता है कि एक एंडपॉइंट ने 09:41:03 पर 14 KB भेजे और तीन सेकंड बाद दूसरे ने 14 KB पाए, और यही बात ग्यारह हफ़्ते तक दिन में दो बार होती है। इतनी बार दोहराए जाने पर यह इस बात का नक़्शा बन जाता है कि कौन किसके साथ काम करता है — और वह एक भी संदेश पढ़े बिना खींचा गया।
AEGIS तार को हर वक़्त एक जैसा दिखाता है। ट्रैफ़िक स्थिर दर पर निकलता है, चाहे भेजने को कुछ हो या न हो, और जो पहुँचता है उसे एक तय आकार तक भर दिया जाता है, ताकि एक छोर के उछाल को दूसरे छोर के उछाल से मिलाया ही न जा सके। इसकी क़ीमत बैंडविड्थ में चुकानी पड़ती है और देरी भी बढ़ती है; नीचे का प्रदर्शन बचाव और क़ीमत, दोनों साथ-साथ दिखाता है।
न्यूज़रूम और वे सब जो किसी स्रोत को बचा रहे हैं, जहाँ संपर्क का समय और आकार ही किसी व्यक्ति को उजागर कर देता है। वे बैंक, बीमा कंपनियाँ और उद्योग संगठन जो आपस में मुक़ाबला करते हैं और फिर भी जिन्हें डेटा का लेन-देन करना पड़ता है। वे संस्थाएँ जो हमलों की चेतावनियाँ साझा करती हैं, जहाँ साझा करते दिखना ही संवेदनशील हिस्सा हो सकता है।
मेटाडेटा ही वह हिस्सा है जो आपकी पहचान करा देता है
कोई वैश्विक निष्क्रिय प्रतिद्वंद्वी आपके संदेश नहीं पढ़ सकता। उसे ज़रूरत भी नहीं। वह एक साथ हर लिंक देखता है और मिलान करता है: इस सिरे ने 09:41:03 पर 14 KB भेजा, उस सिरे को 09:41:06 पर 14 KB मिला, और यह पैटर्न ग्यारह हफ़्तों तक दिन में दो बार दोहराता है।
बिना एक भी सिफ़र तोड़े, मात्रा और समय ही पूरे संगठन के रिश्तों का ग्राफ़ दोबारा खड़ा करने के लिए काफ़ी हैं। किसी संघ के लिए — आपस में हिसाब चुकाते बैंक, अभिलेख साझा करते अस्पताल, सूत्रों वाले न्यूज़रूम — ग्राफ़ ही वह संवेदनशील जानकारी है।
AEGIS तार को एक सपाट, न बदलने वाली दीवार बना देता है। नीचे चाहे कुछ भी चल रहा हो, दर स्थिर रहती है, इसलिए मात्रा और समय कोई संकेत नहीं देते। नीचे का प्रदर्शन आपको दोनों विन्यासों पर हमला चलाकर फ़र्क़ देखने देता है।
शेप किया हुआ मिक्सनेट
छोटा और झटकेदार डेटा, साथ में सारा नियंत्रण ट्रैफ़िक। Sphinx पैकेट स्थिर दर पर निकलते हैं, और पाने वाले पर सख़्त हद वाली पैडिंग लगती है, ताकि उसकी आने वाली मात्रा भी तय रहे।
थोक तल
बड़ी फ़ाइल का तबादला, जिसका सुरक्षा स्तर आप बदल सकते हैं — कच्चा, बाल्टियों में, या एक समान बैचों में। आप तय करते हैं कि लागत की वक्र पर कहाँ बैठना है; क़ीमत के बारे में कुछ छिपाया नहीं गया।
आप ही वैश्विक निष्क्रिय प्रतिद्वंद्वी बनिए
पाँच भेजने वाले हैं, और हर एक पाँच पाने वालों में से ठीक एक से बात कर रहा है। आपको सिर्फ़ हर लिंक पर ट्रैफ़िक की मात्रा दिखती है — न सामग्री, न रास्ता। शृंखलाओं का मिलान कीजिए और जोड़ियाँ पहचानने की कोशिश कीजिए। फिर स्थिर-दर वाला बचाव चालू कीजिए और दोबारा कोशिश कीजिए।
ट्रैफ़िक-विश्लेषण हार्नेस
प्रतिद्वंद्वी का नतीजा
बचाव की क़ीमत
अटकल 20% है — पाँच में से एक जोड़ी यूँ ही अंदाज़े से पकड़ में आ जाती है। उससे ठीक-ठाक ऊपर कुछ भी हो, तो प्रतिद्वंद्वी जीत रहा है। लागत के आँकड़े ईमानदार दूसरा आधा हिस्सा हैं: स्थिर-दर शेपिंग मुफ़्त नहीं है, और AEGIS ऐसा दिखावा भी नहीं करता।
आठ चरण, हर एक रेड-टीम पहरे के पीछे
क्रियान्वयन चरण 8, यानी कठोरीकरण, तक पूरा है। ये वे आँकड़े हैं जो रिपॉज़िटरी ख़ुद बताती है: फ़ज़िंग Windows Subsystem for Linux (WSL) के नीचे चली, और टेस्टनेट असली संचरण नियंत्रण प्रोटोकॉल (TCP) सॉकेट पर चला।
| क्षेत्र | नतीजा | टिप्पणियाँ |
|---|---|---|
| क्रिप्टो सदिश | 36 / 36 | |
| रिले रूटिंग | 14 / 14 | |
| टोपोलॉजी | 41 / 41 | |
| नेगोशिएटर / थोक सहसंबंध | 25 / 25 | |
| वर्कस्पेस परीक्षण | 195 | सब पास |
| सुरक्षा फ़ज़िंग | 1.17M+ | WSL के ज़रिए libFuzzer, शून्य क्रैश |
| Testnet | असली TCP | असली सॉकेटों पर Sphinx पैकेट रूटिंग |
| ट्रेस विश्लेषण | सौम्य बनाम दुर्भावनापूर्ण | असली ट्रेस की तुलना |
यह छिपाता है कि कौन बात कर रहा है, सिर्फ़ यह नहीं कि क्या कहा गया
किसी संदेश को गड्डमड्ड कर देना हल हो चुकी समस्या है। जो वह नहीं छिपाता वह है कि आपने संदेश भेजा, किसे भेजा, कब, और कितना। अकेला यही पैटर्न अक्सर लोगों की पहचान करा देने के लिए काफ़ी होता है।
न्यूज़रूम और वे सब जो किसी सूत्र को बचा रहे हैं
संदेश पढ़ने की किसी को ज़रूरत नहीं, अगर उसे यह दिख जाए कि फ़लाँ आदमी ने रात के दो बजे फ़लाँ पत्रकार से संपर्क किया। लोगों को समय और आकार ही उजागर करते हैं।
वे प्रतिद्वंद्वी कंपनियाँ जिन्हें फिर भी डेटा साझा करना पड़ता है
बैंक, बीमा कंपनियाँ और उद्योग संगठन एक-दूसरे से होड़ लेते हुए भी जानकारी बाँटते हैं। आप अचानक किससे बात करने लगे हैं और कितनी बार, इसी से पता चल जाता है कि आप किस पर काम कर रहे हैं।
हमलों की चेतावनियाँ आपस में बाँटने वाले संगठन
ख़तरे की जानकारी बाँटना उपयोगी है, पर बाँटते हुए दिख जाना ही संवेदनशील हिस्सा हो सकता है। यह बातचीत की सामग्री ही नहीं, बातचीत होने की बात भी निजी रखता है।
शेपिंग के ऊपर क्या बैठता है
- फ़ॉरवर्ड-सीक्रेसी हैंडशेक। लंबी अवधि की चाबियाँ चोरी हो जाएँ तो भी पिछले सत्र उजागर नहीं होते।
- साख देखकर रास्ता चुनना। रास्ते उन्हीं रिले को तरजीह देते हैं जिनका बर्ताव जाना-पहचाना है।
- वितरित यादृच्छिकता बीकन। रास्ता चुनने की एन्ट्रॉपी पर किसी एक पक्ष का क़ाबू नहीं।
- शून्य-ज्ञान साख प्रमाण। कोई रिले अपना अंक बताए बिना यह साबित कर देता है कि वह साख की तय सीमा से ऊपर है।
- गार्ड-नोड की जाँच। Sybil हमलों के आगे टिकाव, ठीक वहीं जहाँ वह सबसे ज़्यादा मायने रखता है।
गारंटियाँ कहाँ ख़त्म होती हैं
- सिर्फ़ भीतरी ट्रैफ़िक। मज़बूत गारंटियाँ संघ के भीतर लागू होती हैं। खुले नेट पर निकास कमज़ोर है, और इससे उलट कोई दावा नहीं किया जाता।
- अनुभवजन्य, सिद्ध नहीं। नतीजे बताए गए प्रतिद्वंद्वी मॉडल के तहत अनुभवजन्य सीमाएँ हैं। ये गणितीय प्रमाण नहीं हैं।
- देरी संरचना में ही है। कई सेकंड की देरी डिज़ाइन का गुण है, कोई ट्यूनिंग की दिक़्क़त नहीं जिसे अनुकूलन से हटा दिया जाएगा।
- दो पक्षों के लिए यह ग़लत औज़ार है। AEGIS तब जमता है जब कई सिरों के बीच रिश्तों का ग्राफ़ छिपाना हो। दो पक्षों के बीच के लिंक पर लिंक-परत के बचाव बेहतर काम करते हैं।
- खुला अनुसंधान अब भी बाक़ी है।
docs/ops/RESEARCH_AGENDA.mdमें ईमानदारी से लिखा है कि क्या-क्या पूरा नहीं हुआ।
cargo deny से निर्भरताओं की जाँच, और पूरे वर्कस्पेस पर unsafe कोड मना करने की नीति। विरोधी इनपुट सँभालने वाले किसी Rust नेटवर्क स्टैक के लिए, #![forbid(unsafe_code)] पूरे वर्कस्पेस पर, इस परियोजना की सबसे ज़्यादा बोझ उठाने वाली इकलौती पंक्ति है।