AEGIS · चरण 8 पूरा

एन्क्रिप्शन छिपाता है कि आपने क्या कहा। यह छिपाता है कि आपने कुछ कहा भी।

एन्क्रिप्शन संदेश की सामग्री को निजी रखता है। वह यह नहीं छिपाता कि संदेश हुआ ही था। नेटवर्क देख रहे किसी भी शख़्स को अब भी दिखता है कि कौन किससे बात कर रहा है, कब, और कितने किलोबाइट (KB) इधर से उधर गए — और संवेदनशील हालात में यह शब्दों जितना ही मायने रख सकता है। AEGIS किसी बंद समूह के सदस्यों के बीच का ट्रैफ़िक एक स्थिर दर पर चलाता रहता है, चाहे भेजने को कुछ हो या न हो, ताकि समय और मात्रा में कोई संकेत ही न बचे।

भाषाRust
प्रतिद्वंद्वीवैश्विक निष्क्रिय
वर्कस्पेस परीक्षण195 पास
फ़ज़िंग1.17M+ निष्पादन
आख़िरी पुशहाल ही में
एक ही नियम

“जब तक कोई हमला-सिमुलेशन पुष्टि न कर दे, तब तक कुछ भी पूरा नहीं।”

विकास के दौरान ट्रैफ़िक विश्लेषण के बारे में अंदाज़ा बार-बार ग़लत निकला। सिर्फ़ सिमुलेशन हार्नेस भरोसेमंद साबित हुआ, इसलिए वही पहरा बन गया। Python हार्नेस, जो पड़ा है sim/ में, विनिर्देश के हर मात्रात्मक दावे के पीछे की सबूत-बही है — कोई बाद की सोच नहीं, जो पहले से भेजे जा चुके डिज़ाइन को सही ठहराए।

सीधी-सादी भाषा में

यह क्या है, एक मिनट में

समस्या

नेटवर्क देख सकने वाले को एन्क्रिप्शन तोड़ने की ज़रूरत ही नहीं। उसे दिखता है कि एक एंडपॉइंट ने 09:41:03 पर 14 KB भेजे और तीन सेकंड बाद दूसरे ने 14 KB पाए, और यही बात ग्यारह हफ़्ते तक दिन में दो बार होती है। इतनी बार दोहराए जाने पर यह इस बात का नक़्शा बन जाता है कि कौन किसके साथ काम करता है — और वह एक भी संदेश पढ़े बिना खींचा गया।

समाधान

AEGIS तार को हर वक़्त एक जैसा दिखाता है। ट्रैफ़िक स्थिर दर पर निकलता है, चाहे भेजने को कुछ हो या न हो, और जो पहुँचता है उसे एक तय आकार तक भर दिया जाता है, ताकि एक छोर के उछाल को दूसरे छोर के उछाल से मिलाया ही न जा सके। इसकी क़ीमत बैंडविड्थ में चुकानी पड़ती है और देरी भी बढ़ती है; नीचे का प्रदर्शन बचाव और क़ीमत, दोनों साथ-साथ दिखाता है।

यह किसके लिए है

न्यूज़रूम और वे सब जो किसी स्रोत को बचा रहे हैं, जहाँ संपर्क का समय और आकार ही किसी व्यक्ति को उजागर कर देता है। वे बैंक, बीमा कंपनियाँ और उद्योग संगठन जो आपस में मुक़ाबला करते हैं और फिर भी जिन्हें डेटा का लेन-देन करना पड़ता है। वे संस्थाएँ जो हमलों की चेतावनियाँ साझा करती हैं, जहाँ साझा करते दिखना ही संवेदनशील हिस्सा हो सकता है।

सामग्री छिपाना आसान वाला आधा हिस्सा है। पैटर्न छिपाना वह हिस्सा है जिसके लिए नीचे की इंजीनियरिंग चाहिए: पूरा ख़तरा, एक हमला जो आप ख़ुद दोनों विन्यासों पर चला सकते हैं, परीक्षण के आँकड़े, और यह कि गारंटियाँ कहाँ जाकर ख़त्म हो जाती हैं।
ख़तरा

मेटाडेटा ही वह हिस्सा है जो आपकी पहचान करा देता है

कोई वैश्विक निष्क्रिय प्रतिद्वंद्वी आपके संदेश नहीं पढ़ सकता। उसे ज़रूरत भी नहीं। वह एक साथ हर लिंक देखता है और मिलान करता है: इस सिरे ने 09:41:03 पर 14 KB भेजा, उस सिरे को 09:41:06 पर 14 KB मिला, और यह पैटर्न ग्यारह हफ़्तों तक दिन में दो बार दोहराता है।

बिना एक भी सिफ़र तोड़े, मात्रा और समय ही पूरे संगठन के रिश्तों का ग्राफ़ दोबारा खड़ा करने के लिए काफ़ी हैं। किसी संघ के लिए — आपस में हिसाब चुकाते बैंक, अभिलेख साझा करते अस्पताल, सूत्रों वाले न्यूज़रूम — ग्राफ़ ही वह संवेदनशील जानकारी है।

AEGIS तार को एक सपाट, न बदलने वाली दीवार बना देता है। नीचे चाहे कुछ भी चल रहा हो, दर स्थिर रहती है, इसलिए मात्रा और समय कोई संकेत नहीं देते। नीचे का प्रदर्शन आपको दोनों विन्यासों पर हमला चलाकर फ़र्क़ देखने देता है।

मोड 1

शेप किया हुआ मिक्सनेट

छोटा और झटकेदार डेटा, साथ में सारा नियंत्रण ट्रैफ़िक। Sphinx पैकेट स्थिर दर पर निकलते हैं, और पाने वाले पर सख़्त हद वाली पैडिंग लगती है, ताकि उसकी आने वाली मात्रा भी तय रहे।

मोड 2

थोक तल

बड़ी फ़ाइल का तबादला, जिसका सुरक्षा स्तर आप बदल सकते हैं — कच्चा, बाल्टियों में, या एक समान बैचों में। आप तय करते हैं कि लागत की वक्र पर कहाँ बैठना है; क़ीमत के बारे में कुछ छिपाया नहीं गया।

इंटरैक्टिव

आप ही वैश्विक निष्क्रिय प्रतिद्वंद्वी बनिए

पाँच भेजने वाले हैं, और हर एक पाँच पाने वालों में से ठीक एक से बात कर रहा है। आपको सिर्फ़ हर लिंक पर ट्रैफ़िक की मात्रा दिखती है — न सामग्री, न रास्ता। शृंखलाओं का मिलान कीजिए और जोड़ियाँ पहचानने की कोशिश कीजिए। फिर स्थिर-दर वाला बचाव चालू कीजिए और दोबारा कोशिश कीजिए।

दो वायर प्रोफ़ाइल आमने-सामने: बिना शेप किए ट्रैफ़िक में झटके दिखते हैं और प्रतिद्वंद्वी रिश्तों का ग्राफ़ निकाल लेता है; स्थिर दर पर शेप किया गया ट्रैफ़िक सपाट रहता है और पहचान गिरकर अटकल पर आ जाती है
पूरा आरेख देखने के लिए स्क्रॉल करें →
प्रतिद्वंद्वी असल में क्या देखता है। नीचे ख़ुद हमला चलाइए — इस तस्वीर के आँकड़े वही हैं जो डेमो निकालता है।

ट्रैफ़िक-विश्लेषण हार्नेस

भेजने वाले का लिंक पाने वाले का लिंक सहसंबंध, ऊँचा सहसंबंध, नीचा

प्रतिद्वंद्वी का नतीजा

मिलान हो रहा है…
 
पकड़ी गई जोड़ियाँ
—
शिखर सहसंबंध
—

बचाव की क़ीमत

बैंडविड्थ
1.0×
जुड़ी हुई देरी
0 ms

अटकल 20% है — पाँच में से एक जोड़ी यूँ ही अंदाज़े से पकड़ में आ जाती है। उससे ठीक-ठाक ऊपर कुछ भी हो, तो प्रतिद्वंद्वी जीत रहा है। लागत के आँकड़े ईमानदार दूसरा आधा हिस्सा हैं: स्थिर-दर शेपिंग मुफ़्त नहीं है, और AEGIS ऐसा दिखावा भी नहीं करता।

इस पृष्ठ के लिए लिखा गया एक-हॉप वाला उदाहरण। असली सिस्टम यहाँ दिखाई गई शेपिंग के ऊपर Sphinx रूटिंग, गार्ड-नोड की जाँच, वितरित यादृच्छिकता बीकन और शून्य-ज्ञान साख प्रमाण जोड़ता है।
सबूत

आठ चरण, हर एक रेड-टीम पहरे के पीछे

क्रियान्वयन चरण 8, यानी कठोरीकरण, तक पूरा है। ये वे आँकड़े हैं जो रिपॉज़िटरी ख़ुद बताती है: फ़ज़िंग Windows Subsystem for Linux (WSL) के नीचे चली, और टेस्टनेट असली संचरण नियंत्रण प्रोटोकॉल (TCP) सॉकेट पर चला।

36/36
क्रिप्टो परीक्षण सदिश
195
पास होते वर्कस्पेस परीक्षण
1.17M+
फ़ज़ निष्पादन, शून्य क्रैश
41/41
टोपोलॉजी परीक्षण
क्षेत्रनतीजाटिप्पणियाँ
क्रिप्टो सदिश36 / 36 
रिले रूटिंग14 / 14 
टोपोलॉजी41 / 41 
नेगोशिएटर / थोक सहसंबंध25 / 25 
वर्कस्पेस परीक्षण195सब पास
सुरक्षा फ़ज़िंग1.17M+WSL के ज़रिए libFuzzer, शून्य क्रैश
Testnetअसली TCPअसली सॉकेटों पर Sphinx पैकेट रूटिंग
ट्रेस विश्लेषणसौम्य बनाम दुर्भावनापूर्णअसली ट्रेस की तुलना
यह किसके लिए है

यह छिपाता है कि कौन बात कर रहा है, सिर्फ़ यह नहीं कि क्या कहा गया

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

01

न्यूज़रूम और वे सब जो किसी सूत्र को बचा रहे हैं

संदेश पढ़ने की किसी को ज़रूरत नहीं, अगर उसे यह दिख जाए कि फ़लाँ आदमी ने रात के दो बजे फ़लाँ पत्रकार से संपर्क किया। लोगों को समय और आकार ही उजागर करते हैं।

02

वे प्रतिद्वंद्वी कंपनियाँ जिन्हें फिर भी डेटा साझा करना पड़ता है

बैंक, बीमा कंपनियाँ और उद्योग संगठन एक-दूसरे से होड़ लेते हुए भी जानकारी बाँटते हैं। आप अचानक किससे बात करने लगे हैं और कितनी बार, इसी से पता चल जाता है कि आप किस पर काम कर रहे हैं।

03

हमलों की चेतावनियाँ आपस में बाँटने वाले संगठन

ख़तरे की जानकारी बाँटना उपयोगी है, पर बाँटते हुए दिख जाना ही संवेदनशील हिस्सा हो सकता है। यह बातचीत की सामग्री ही नहीं, बातचीत होने की बात भी निजी रखता है।

क्या यहाँ आपको अपनी स्थिति दिख रही है? यह अभी बीटा परीक्षण के लिए खुला है, और जिनके लिए यह बना है, उन्हीं की राय इसे सचमुच बदलती है। बीटा टेस्टर बनें →
बचाव

शेपिंग के ऊपर क्या बैठता है

  • फ़ॉरवर्ड-सीक्रेसी हैंडशेक। लंबी अवधि की चाबियाँ चोरी हो जाएँ तो भी पिछले सत्र उजागर नहीं होते।
  • साख देखकर रास्ता चुनना। रास्ते उन्हीं रिले को तरजीह देते हैं जिनका बर्ताव जाना-पहचाना है।
  • वितरित यादृच्छिकता बीकन। रास्ता चुनने की एन्ट्रॉपी पर किसी एक पक्ष का क़ाबू नहीं।
  • शून्य-ज्ञान साख प्रमाण। कोई रिले अपना अंक बताए बिना यह साबित कर देता है कि वह साख की तय सीमा से ऊपर है।
  • गार्ड-नोड की जाँच। Sybil हमलों के आगे टिकाव, ठीक वहीं जहाँ वह सबसे ज़्यादा मायने रखता है।
ईमानदार सीमाएँ

गारंटियाँ कहाँ ख़त्म होती हैं

  • सिर्फ़ भीतरी ट्रैफ़िक। मज़बूत गारंटियाँ संघ के भीतर लागू होती हैं। खुले नेट पर निकास कमज़ोर है, और इससे उलट कोई दावा नहीं किया जाता।
  • अनुभवजन्य, सिद्ध नहीं। नतीजे बताए गए प्रतिद्वंद्वी मॉडल के तहत अनुभवजन्य सीमाएँ हैं। ये गणितीय प्रमाण नहीं हैं।
  • देरी संरचना में ही है। कई सेकंड की देरी डिज़ाइन का गुण है, कोई ट्यूनिंग की दिक़्क़त नहीं जिसे अनुकूलन से हटा दिया जाएगा।
  • दो पक्षों के लिए यह ग़लत औज़ार है। AEGIS तब जमता है जब कई सिरों के बीच रिश्तों का ग्राफ़ छिपाना हो। दो पक्षों के बीच के लिंक पर लिंक-परत के बचाव बेहतर काम करते हैं।
  • खुला अनुसंधान अब भी बाक़ी है। docs/ops/RESEARCH_AGENDA.md में ईमानदारी से लिखा है कि क्या-क्या पूरा नहीं हुआ।
रिपॉज़िटरी की सफ़ाई: GitHub Actions पर सतत एकीकरण (CI), cargo deny से निर्भरताओं की जाँच, और पूरे वर्कस्पेस पर unsafe कोड मना करने की नीति। विरोधी इनपुट सँभालने वाले किसी Rust नेटवर्क स्टैक के लिए, #![forbid(unsafe_code)] पूरे वर्कस्पेस पर, इस परियोजना की सबसे ज़्यादा बोझ उठाने वाली इकलौती पंक्ति है।