AEGIS · পর্যায় ৮ সম্পন্ন

এনক্রিপশন লুকিয়ে রাখে আপনি কী বলেছেন। এটি লুকিয়ে রাখে আপনি যে বলেছেন সেটাই।

এনক্রিপশন একটি বার্তার বিষয়বস্তু গোপন রাখে। বার্তাটি যে ঘটেছিল, তা লুকায় না। নেটওয়ার্কে নজর রাখা কেউ তখনও দেখে কে কার সঙ্গে কথা বলছে, কখন, আর কত কিলোবাইট (KB) সরল — স্পর্শকাতর পরিস্থিতিতে যা কথাগুলির মতোই গুরুত্বপূর্ণ হতে পারে। AEGIS একটি বন্ধ দলের সদস্যদের মধ্যেকার ট্রাফিক ধ্রুব হারে বইয়ে রাখে, পাঠানোর কিছু থাক বা না থাক, ফলে সময় আর পরিমাণ কোনো সংকেত বয়ে নেয় না।

ভাষাRust
প্রতিপক্ষবৈশ্বিক নিষ্ক্রিয়
ওয়ার্কস্পেস পরীক্ষা১৯৫টি উত্তীর্ণ
ফাজিং১১.৭ লাখ+ চালনা
সর্বশেষ পুশসম্প্রতি
একটিই নিয়ম

“আক্রমণ-সিমুলেশন নিশ্চিত না করা পর্যন্ত কিছুই শেষ নয়।”

উন্নয়নের সময় ট্রাফিক বিশ্লেষণ নিয়ে অনুমান বারবার ভুল প্রমাণিত হয়েছে। কেবল সিমুলেশন হারনেসটিকেই ভরসা করা গেছে, তাই সেটিই গেট হয়ে দাঁড়িয়েছে। Python হারনেসটি আছে sim/ ফোল্ডারে, আর স্পেসিফিকেশনের প্রতিটি পরিমাণগত দাবির পিছনে সেটিই প্রমাণের খতিয়ান — আগেই পাঠানো একটা নকশাকে পরে বৈধতা দেওয়ার মতো বাড়তি কিছু নয়।

সহজ কথায়

এটি কী, এক মিনিটে

সমস্যা

যে নেটওয়ার্ক দেখতে পারে, তার এনক্রিপশন ভাঙার দরকার নেই। সে দেখে একটি প্রান্ত ০৯:৪১:০৩-এ ১৪ KB পাঠাল, তিন সেকেন্ড পরে আরেকটি প্রান্ত ১৪ KB পেল, আর এগারো সপ্তাহ ধরে দিনে দুবার ঠিক এটাই ঘটে। যথেষ্টবার ঘটলে সেটাই হয়ে ওঠে কে কার সঙ্গে কাজ করে তার মানচিত্র — একটি বার্তাও না পড়ে আঁকা।

সমাধান

AEGIS তারটিকে সব সময় একরকম দেখায়। পাঠানোর কিছু থাক বা না থাক, ট্রাফিক বেরোয় ধ্রুব হারে, আর যা পৌঁছায় তা নির্দিষ্ট মাপে প্যাড করা, ফলে এক প্রান্তে এমন কোনো ঝাঁক নেই যাকে অন্য প্রান্তের ঝাঁকের সঙ্গে মেলানো যায়। এতে ব্যান্ডউইথ খরচ হয় আর বিলম্ব বাড়ে; নিচের প্রদর্শনী সুরক্ষা আর তার দাম পাশাপাশি দেখায়।

কাদের জন্য

সংবাদকক্ষ আর সূত্র আড়াল করেন এমন যে-কেউ, যেখানে যোগাযোগের সময় আর আকারই একজন মানুষকে ফাঁস করে দেয়। ব্যাংক, বিমা সংস্থা আর শিল্পের সংগঠন, যারা একে অন্যের প্রতিযোগী, তবু যাদের ডেটা বিনিময় করতেই হয়। যেসব প্রতিষ্ঠান আক্রমণের সতর্কবার্তা ভাগ করে নেয়, যেখানে ভাগ করতে দেখা যাওয়াটাই স্পর্শকাতর অংশ হতে পারে।

বিষয়বস্তু লুকানোটাই সহজ অর্ধেক। ধরনটা লুকানোর জন্যই দরকার নিচের প্রকৌশল: পুরো হুমকির ছবি, দুটি বিন্যাসের বিরুদ্ধেই নিজে চালিয়ে দেখার মতো একটি আক্রমণ, পরীক্ষার সংখ্যা, আর নিশ্চয়তা কোথায় গিয়ে থামে।
হুমকি

মেটাডেটাই সেই অংশ যা আপনাকে চিনিয়ে দেয়

একজন বৈশ্বিক নিষ্ক্রিয় প্রতিপক্ষ আপনার বার্তা পড়তে পারে না। তার দরকারও নেই। সে একসঙ্গে প্রতিটি লিংক দেখে আর মিলিয়ে নেয়: এই প্রান্তটি ০৯:৪১:০৩-এ ১৪ KB পাঠিয়েছে, ওই প্রান্তটি ০৯:৪১:০৬-এ ১৪ KB পেয়েছে, আর ধরনটা এগারো সপ্তাহ ধরে দিনে দুবার করে ফিরে আসছে।

একটি সাইফারও না ভেঙে গোটা একটা প্রতিষ্ঠানের সম্পর্কের গ্রাফ গড়ে তুলতে আয়তন আর সময়ই যথেষ্ট। একটি কনসোর্টিয়ামের ক্ষেত্রে — ব্যাংক নিজেদের মধ্যে নিষ্পত্তি করছে, হাসপাতাল নথি ভাগ করছে, সংবাদকক্ষ আর তাদের সূত্র — গ্রাফটাই হলো সেই স্পর্শকাতর তথ্য।

AEGIS তারটাকে বানিয়ে দেয় একটা সমতল, অপরিবর্তনীয় দেয়াল। নিচে যা-ই ঘটুক, হার ধ্রুব, তাই আয়তন আর সময় কোনো সংকেতই বহন করে না। নিচের প্রদর্শনীটি আপনাকে দুটি বিন্যাসের বিপরীতেই আক্রমণটি চালিয়ে তফাতটা দেখতে দেয়।

মোড ১

আকার দেওয়া মিক্সনেট

ছোট ও ঝাঁকুনিভরা ডেটা, সঙ্গে সব নিয়ন্ত্রণ ট্রাফিক। Sphinx প্যাকেট ছাড়া হয় ধ্রুব হারে, সঙ্গে গ্রাহকের দিকে কড়া সীমার প্যাডিং, যাতে গ্রাহকের ভিতরে আসা আয়তনও নির্দিষ্ট থাকে।

মোড ২

বাল্ক স্তর

সমন্বয়যোগ্য নিরাপত্তা-স্তরসহ বড় ফাইল স্থানান্তর — কাঁচা, বালতিতে ভাগ করা, বা সমানভাবে ব্যাচ করা। খরচের বক্ররেখায় আপনি কোথায় বসবেন তা আপনিই ঠিক করেন; দাম নিয়ে কিছুই লুকোনো নেই।

ইন্টারঅ্যাক্টিভ

আপনিই হয়ে উঠুন বৈশ্বিক নিষ্ক্রিয় প্রতিপক্ষ

পাঁচজন প্রেরক পাঁচজন গ্রাহকের ঠিক একজনের সঙ্গেই কথা বলছে। আপনি শুধু প্রতিটি লিংকের ট্রাফিকের আয়তন দেখেন — কখনও বিষয়বস্তু নয়, কখনও রাউটিং নয়। ধারাগুলি মিলিয়ে দেখে জোড়াগুলি উদ্ধার করার চেষ্টা করুন। তারপর ধ্রুব-হারের প্রতিরোধটি চালু করে আবার চেষ্টা করুন।

দুটি তারের ধরন পাশাপাশি: আকার না দেওয়া ট্রাফিকে অনুসরণযোগ্য ঝাঁকুনি দেখা যায় এবং প্রতিপক্ষ সম্পর্কের গ্রাফ উদ্ধার করে ফেলে; ধ্রুব-হারে আকার দেওয়া ট্রাফিক সমতল, আর উদ্ধারের হার এলোমেলো আন্দাজে নেমে আসে
পুরো চিত্রটি দেখতে স্ক্রল করুন →
প্রতিপক্ষ আসলে কী দেখে। নিচে আক্রমণটা নিজেই চালান — এই ছবির সংখ্যাগুলি প্রদর্শনীটি যা দেয় সেগুলিই।

ট্রাফিক-বিশ্লেষণ হারনেস

প্রেরকের লিংক গ্রাহকের লিংক সহসম্পর্ক, উঁচু সহসম্পর্ক, নিচু

প্রতিপক্ষের সিদ্ধান্ত

মিলিয়ে দেখা হচ্ছে…
 
উদ্ধার হওয়া জোড়া
—
সর্বোচ্চ সহসম্পর্ক
—

প্রতিরোধের খরচ

ব্যান্ডউইথ
১.০×
বাড়তি বিলম্ব
০ ms

এলোমেলো আন্দাজে পাওয়া যায় ২০% — পাঁচটির মধ্যে একটি জোড়া। তার চেয়ে অর্থপূর্ণভাবে বেশি কিছু মানেই প্রতিপক্ষ জিতছে। খরচের সংখ্যাগুলি হলো সৎ বাকি অর্ধেকটা: ধ্রুব-হারে আকার দেওয়া বিনামূল্যের নয়, আর AEGIS সেটা বিনামূল্যের বলে ভানও করে না।

এই পাতার জন্য লেখা এক-লাফের একটি দৃষ্টান্ত। আসল সিস্টেমটি এখানে দেখানো আকার দেওয়ার উপরে Sphinx রাউটিং, গার্ড-নোড যাচাই, বিতরিত এলোমেলোতার বিকন আর শূন্য-জ্ঞান সুনাম-প্রমাণের স্তর বসায়।
প্রমাণ

আটটি পর্যায়, প্রতিটিই একটি রেড-টিম গেটের পিছনে

বাস্তবায়ন পর্যায় ৮, অর্থাৎ কঠোরীকরণ পর্যন্ত সম্পূর্ণ। রিপোজিটরি যে সংখ্যাগুলি জানায় সেগুলি এই: ফাজিং চলেছে Linux-এর জন্য Windows সাবসিস্টেমের (WSL) নিচে, আর টেস্টনেট চলেছে সত্যিকারের ট্রান্সমিশন কন্ট্রোল প্রোটোকল (TCP) সকেটের উপরে।

36/36
ক্রিপ্টো পরীক্ষা-ভেক্টর
195
উত্তীর্ণ ওয়ার্কস্পেস পরীক্ষা
1.17M+
ফাজ চালনা, শূন্য ক্র্যাশ
41/41
টপোলজি পরীক্ষা
ক্ষেত্রফলমন্তব্য
ক্রিপ্টো ভেক্টর36 / 36 
রিলে রাউটিং14 / 14 
টপোলজি41 / 41 
নেগোশিয়েটর / বাল্ক সহসম্পর্ক25 / 25 
ওয়ার্কস্পেস পরীক্ষা195সবই উত্তীর্ণ
নিরাপত্তা ফাজিং1.17M+WSL দিয়ে libFuzzer, শূন্য ক্র্যাশ
টেস্টনেটসত্যিকারের TCPসত্যিকারের সকেটের উপরে Sphinx প্যাকেট রাউটিং
ট্রেস বিশ্লেষণনিরীহ বনাম ক্ষতিকরসত্যিকারের ট্রেসের তুলনা
কাদের জন্য

কে কথা বলছে তা লুকোয়, শুধু কী বলা হলো তা নয়

একটি বার্তা এলোমেলো করে দেওয়া সমাধান হয়ে যাওয়া সমস্যা। যা লুকোয় না তা হলো আপনি যে একটা পাঠিয়েছেন, কাকে, কখন আর কতটা। শুধু ওই ধরনটুকুই প্রায়ই মানুষ চিনিয়ে দেওয়ার পক্ষে যথেষ্ট।

01

সংবাদকক্ষ আর সূত্র আড়াল করতে চান এমন যে কেউ

বার্তাটা কারও পড়ার দরকার নেই, যদি সে দেখতে পায় যে রাত দুটোয় একজন নির্দিষ্ট মানুষ একজন নির্দিষ্ট সাংবাদিকের সঙ্গে যোগাযোগ করেছেন। সময় আর আকারই মানুষকে খোলা করে দেয়।

02

প্রতিদ্বন্দ্বী কোম্পানি, যাদের তবু ডেটা ভাগ করতে হয়

ব্যাংক, বিমা আর শিল্পগোষ্ঠী প্রতিযোগিতা করতে করতেই তথ্য বিনিময় করে। হঠাৎ আপনি কার সঙ্গে কথা বলছেন আর কত ঘন ঘন, তা থেকেই ফাঁস হয়ে যায় আপনি কী নিয়ে কাজ করছেন।

03

আক্রমণের সতর্কবার্তা বিনিময় করা প্রতিষ্ঠান

হুমকির তথ্য ভাগ করা কাজের, কিন্তু ভাগ করতে দেখা যাওয়াটাই স্পর্শকাতর অংশ হয়ে উঠতে পারে। এটি কথাবার্তার বিষয়বস্তুই নয়, কথাবার্তা যে হয়েছে সেই ঘটনাটাকেও গোপন রাখে।

নিজের অবস্থাটা এখানে চিনতে পারছেন? এটি এখনই বেটা পরীক্ষার জন্য খোলা, আর যাদের জন্য এটি বানানো তাদের মতামতই একে সত্যিই বদলায়। বেটা টেস্টার হোন →
প্রতিরোধ

আকার দেওয়ার উপরে যা বসে

  • ফরোয়ার্ড-সিক্রেসি হ্যান্ডশেক। দীর্ঘমেয়াদি চাবি ফাঁস হলেও আগের সেশনগুলি পিছন ফিরে খুলে যায় না।
  • সুনাম দেখে পথ বাছাই। পথ বেছে নেয় এমন রিলে, যাদের আচরণ প্রতিষ্ঠিত।
  • বিতরিত এলোমেলোতার বিকন। পথ বাছাইয়ের এনট্রপি কোনো একক পক্ষের হাতে নেই।
  • শূন্য-জ্ঞান সুনাম-প্রমাণ। একটি রিলে নিজের স্কোর না জানিয়েই প্রমাণ করে যে সে সুনামের সীমা ছাড়িয়েছে।
  • গার্ড-নোড যাচাই। যেখানে সবচেয়ে বেশি দরকার, ঠিক সেখানেই Sybil প্রতিরোধ।
সৎ সীমানা

নিশ্চয়তা কোথায় গিয়ে থামে

  • শুধু ভিতরের ট্রাফিক। কড়া নিশ্চয়তা খাটে কনসোর্টিয়ামের ভিতরে। উন্মুক্ত নেটে বেরোনোর পথ দুর্বল, আর উল্টো কিছু দাবি করা হয় না।
  • অভিজ্ঞতালব্ধ, প্রমাণিত নয়। ফলাফলগুলি উল্লিখিত প্রতিপক্ষ-মডেলের অধীনে অভিজ্ঞতালব্ধ সীমা। এগুলি গাণিতিক প্রমাণ নয়।
  • বিলম্ব গঠনগত। কয়েক সেকেন্ডের বিলম্ব নকশারই একটি ধর্ম, কোনো টিউনিংয়ের সমস্যা নয় যা পরে সরিয়ে ফেলা যাবে।
  • দুই পক্ষের জন্য ভুল সরঞ্জাম। অনেক প্রান্তবিন্দু জুড়ে সম্পর্কের গ্রাফ লুকোতে AEGIS মানানসই। দুই পক্ষের একটি লিংকের জন্য লিংক-স্তরের প্রতিরোধ বেশি ভালো কাজ করে।
  • গবেষণার কাজ এখনও বাকি। docs/ops/RESEARCH_AGENDA.md ফাইলটিই হলো যা শেষ হয়নি তার সৎ তালিকা।
রিপোজিটরির পরিচ্ছন্নতা: GitHub Actions-এ কন্টিনিউয়াস ইন্টিগ্রেশন (CI), cargo deny দিয়ে নির্ভরতার নিরীক্ষা, আর গোটা ওয়ার্কস্পেস জুড়ে unsafe কোড নিষিদ্ধ করার নীতি। প্রতিকূল ইনপুট সামলায় এমন একটি Rust নেটওয়ার্ক স্ট্যাকের জন্য, #![forbid(unsafe_code)] গোটা ওয়ার্কস্পেস জুড়ে এই লাইনটিই প্রকল্পের সবচেয়ে বেশি ভার বহনকারী একটিমাত্র লাইন।