تصور کنید شبکه یک کافه را با کسی که از VPN استفاده می‌کند شریک هستید و تنها چیزی که می‌بینید اندازه بسته‌ها و زمان‌بندی است. قرار است ترافیک پوششی آن تصویر را محو کند. پرکردن را از لپ‌تاپ تا دروازه دنبال کنید و می‌بینید که محوشدگی محلی است: همان‌جا که دروازه تمام می‌شود، تمام می‌شود. هر چیزی پس از آن نقطه یک مسئله رصد تازه روی همان ترافیک واقعی است.

پس پرسش نخست هرگز این نیست که چه مقدار پرکننده بفرستیم. پرسش این است که از کدام ناظر پنهان می‌شویم و آن ناظر کجا نشسته است.

از لپ‌تاپ شروع کنید

روی پیوند محلی، ناظر بسته‌های رمزگذاری‌شده‌ای را می‌بیند که می‌روند و می‌آیند. بدون پرکردن، یک بارگذاری بزرگ رشته‌ای از بسته‌های تمام‌اندازه است، یک تماس جریانی یکنواخت از بسته‌های میان‌اندازه، و کارخواه بی‌کار keepalive می‌فرستد. این شکل‌ها با کاری که کاربر می‌کند همبستگی دارند، حتی وقتی محتوا خواندنی نیست. پرکننده می‌تواند شکل را هموار کند، به بهای فرستادن بایت‌هایی که کسی درخواست نکرده است.

بنویسید که آن ناظر در غیر این صورت چه چیزی را متوجه می‌شد: انفجاری در آغاز انتقال، شکافی هنگام پایان تماس، ریتمی از دوره‌های بی‌کاری. اگر نمی‌توانید آن ویژگی را نام ببرید، نمی‌توانید ادعا کنید که پرکننده آن را پنهان می‌کند.

پرکننده را تا دروازه دنبال کنید

لپ‌تاپ پرکردن را به دروازه‌ای همکار می‌فرستد که آن را دور می‌ریزد و ترافیک واقعی را جلو می‌برد. همین همکاری سازوکار است: بدون نقطه پایانی که پرکننده را بردارد، به جای ساختن پوشش، بار به مسیر کس دیگری افزوده‌اید. مشخصات پرکردن Tor نیز همان تفکیک را صریح می‌کند: پرکردن پیوند میان رله‌های همسایه و پرکردن مدار که به وضعیت پروتکل گره خورده است.

حالا در نظر بگیرید دروازه چه می‌بیند. ترافیک واقعی به‌علاوه پرکننده را می‌بیند، یعنی بیشتر یاد می‌گیرد نه کمتر، مگر آنکه همان طرفی باشد که به آن اعتماد دارید. ترافیک پوششی اعتماد را جابه‌جا می‌کند؛ نیاز به آن را از میان برنمی‌دارد.

سپس بخش دوم را ببینید

پس از دروازه، اتصال‌های بعدی به مقصدهای واقعی ترافیک معمولی با شکل‌های معمولی هستند. ناظری آنجا، چه ارائه‌دهنده میزبانی و چه شبکه مقصد، همان انفجارهایی را می‌بیند که پرکردن قرار بود پنهان کند. اگر همان ناظر مورد نظر شما بود، پرکردن هیچ کاری برای شما نکرد. این مرز تمام منظور از پیمودن مسیر است.

ترافیک پوششی به یک بخش محدود است، و گسترش دامنه یعنی گسترش همکاری.

جهت و شکل

پرکردنی که فقط به بیرون فرستاده می‌شود زمان‌بندی آنچه می‌فرستید را پنهان می‌کند. درباره زمان‌بندی آنچه بازمی‌گردد چیزی نمی‌گوید، چون پاسخ‌ها با برنامه خودشان می‌رسند. پنهان‌سازی نامتقارن عادی است و ارزش دارد بلند گفته شود: نشستی که بارگیری سنگین دارد هنوز شکل خود را در سمت ورودی نشان می‌دهد.

طول بسته، ساختار انفجار، زمان‌های آغاز و پایان، و فاصله‌های میان رسیدن‌ها همه اطلاعات حمل می‌کنند. شمارنده بایتی که صاف می‌ماند می‌تواند با توزیع بسیار قابل‌تشخیص اندازه بسته هم‌زیستی کند. مجموع‌های صاف، رفتار صاف نیستند.

بودجه چه چیزی می‌خرد

پرکننده ظرفیتی را مصرف می‌کند که کسی برایش پول می‌دهد: داده اندازه‌گیری‌شده، رقابت بر پیوند بالا، تأخیر صف برای دیگر کاربران همان اتصال. دنبال کردن بیشترین نرخ موجود هم خودشکن است، چون آن بیشینه با پیوند جابه‌جا می‌شود و پرکننده هم با آن جابه‌جا می‌شود. بودجه اعلام‌شده، با رفتار اعلام‌شده هنگام تمام شدن بودجه، تفاوت میان یک سازوکار و یک حادثه است.

نتیجه را با همان رصدی که در آغاز نام بردید بسنجید. آزمونی که کاهش تشخیص را زیر یک ناظر مشخص نشان دهد نتیجه است؛ وعده‌ای که ترافیک بیشتر یعنی اطلاعات کمتر، نتیجه نیست.

تصمیم اینکه اصلاً انجامش بدهیم یا نه

برای بیشتر مردم پاسخ نه است، و دلیل صادقانه این است که جریان پس‌زمینه با سرعت کامل جایگزین بدی برای نرم‌افزاری است که مستند می‌کند از چه چیزی محافظت می‌کند. پرکردن مهندسی مشروعی است و جای آن در طرح‌هایی است که ناظر خود، نقاط پایانی همکار خود، هزینه و محدودیت‌های خود را نام می‌برند. این یک تیک نیست که VPN را به سامانه ناشناس‌سازی تبدیل کند.

اگر واقعاً پیاده‌سازی می‌کنید، نخست مدل ناظر را بنویسید. هر تصمیم بعدی، از اندازه بسته تا رفتار خاموش‌شدن، از همان یک بند می‌آید.

مقالات مرتبط