پرداخت برای یک تونل لازم نیست به معنای ارائه هویت پرداخت در هر اتصال باشد. یک طراحی می‌تواند صلاحیت را یک بار بررسی کند، توکن‌های رمزنگاری‌شده به مشتری بدهد و بگذارد دروازه بعداً توکنی را بپذیرد بدون دیدن حسابی که پشت آن است. اینکه این واقعاً چیزی را پنهان می‌کند به انتخاب‌های صدور و بازخرید بستگی دارد، پس آن را تمرینی در مشخصات با چهار بخش بدانید، نه ویژگی‌ای که روشن می‌کنید.

مرحله خرید را از مرحله نشست جدا کنید

معماری Privacy Pass در RFC 9576 واژگان را می‌دهد: کلاینت، گواهی‌دهنده، صادرکننده و مبدأ. کلاینت ویژگی‌ای را به صادرکننده اثبات می‌کند و توکن می‌گیرد؛ بعداً یکی را به مبدأ ارائه می‌دهد که تصمیم می‌گیرد آن را سرویس بدهد یا نه. در کاربرد VPN، ویژگی گواهی‌شده می‌تواند یک واحد دسترسی باشد.

صورتحساب همچنان آنچه فرایند خودش لازم دارد را می‌بیند و کسی خلافش را ادعا نمی‌کند. هدف محدودتر این است که بازخرید بعدی نتواند به خریدی که توکن را تولید کرده گره بخورد. این ویژگی مشخص و آزمون‌پذیر است و همان چیزی است که ارزش نوشتن دارد.

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

مشخص کنید یک توکن چه چیزی را مجاز می‌کند

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

Reuse ruleWhat it buysWhat it leaks
Single use per connectionStrongest unlinkability between sessionsFrequent reissuance, more purchase-to-use timing pairs
Bounded time windowFewer tokens, reconnects workActivity inside the window is linkable
Long-lived grantOperationally simpleBehaves like an account reference with extra steps

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

سیاست استفاده مجدد و ابطال را بنویسید

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

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

sudo grep -rIl --include='*.log' -e 'Bearer ' -e 'account_id' /var/log/vpn/

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

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

ادعا را بیان کنید و سپس مشاهداتی که باقی می‌مانند

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

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

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

مقالات مرتبط