حریم خصوصی و وعده «بدون لاگ»؛ دقیقاً یعنی چه؟

8 دقیقه مطالعه

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

این‌جا آن بخش آزاردهنده ماجراست: «لاگ» یک چیز واحد نیست.

وقتی می‌گویند «بدون لاگ»، کدام لاگ؟

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

یک تفکیک کاربردی (نه حقوقی) این است که لاگ‌ها را به دو دسته‌ی بزرگ تقسیم کنیم: لاگ‌های مربوط به «محتوا» و لاگ‌های مربوط به «متادیتا». محتوایی یعنی دقیقاً چه سایت/اپلیکیشنی را باز کرده‌اید، چه URLهایی رفته‌اید، چه DNS queryهایی زده‌اید، چه فایل‌هایی دانلود کرده‌اید. متادیتا یعنی چه زمانی وصل شده‌اید، از چه IP وارد شده‌اید، چقدر ترافیک ردوبدل شده، روی کدام سرور بوده‌اید.

همین‌جا یک جمله کوتاه لازم است.

همه‌چیز از متادیتا شروع می‌شود.

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

لاگ فقط تاریخچه وب‌گردی نیست

در عمل، لاگ‌ها می‌توانند چیزهای ریزتر و به‌ظاهر بی‌ضرر باشند. مثلاً برای مدیریت ظرفیت سرور، محدودکردن سوءاستفاده، یا حتی رفع اشکال، بعضی داده‌ها به شکل کوتاه‌مدت نگه داشته می‌شوند. تفاوت «کوتاه‌مدت» و «قابل ردیابی» اما خیلی باریک است.

برای اینکه بحث ملموس شود، معمولاً با این چند نوع لاگ سروکار داریم:

  • لاگ ترافیک: سایت‌ها، DNS، مقصدها، URLها، محتوای درخواست‌ها.
  • لاگ اتصال: زمان شروع/قطع، IP ورودی شما، سرور خروجی، حجم کلی ترافیک.
  • لاگ عملیاتی: خطاهای سرور، وضعیت بار، کرش‌ها، نرخ packet loss، و چیزهایی که برای نگه‌داری سرویس لازم می‌شود.
  • لاگ پرداخت و اکانت: ایمیل، شناسه پرداخت، تاریخ تمدید، دستگاه‌های لاگین‌شده.

نه، این‌ها برابر نیستند.

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

یک نکته‌ی فنی که اغلب جا می‌افتد: حتی اگر خود VPN هیچ‌چیز ذخیره نکند، سرویس‌هایی که استفاده می‌کنید (مثلاً خود اپ‌ها، مرورگر، سیستم‌عامل) کلی لاگ محلی دارند. روی Android، گزارش‌های شبکه و لاگ‌های WebView؛ روی iOS، تشخیص شبکه و لاگ‌های Diagnostics؛ روی Windows، Event Viewer و ردپاهای DNS cache. اگر دنبال حریم خصوصی هستید، فقط به یک برچسب اعتماد نکنید.

پروتکل‌ها هم بی‌اثر نیستند: WireGuard تا VLESS+REALITY

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

WireGuard به‌صورت پیش‌فرض روی UDP کار می‌کند. سریع و ساده است، ولی یک ویژگی مهم دارد: برای شناسایی کلاینت‌ها از کلید عمومی استفاده می‌کند و روی سمت سرور معمولاً یک جدول نگاشت (کلید عمومی ↔ IP داخلی) وجود دارد. این به معنی «لاگ» نیست، اما به معنی «اطلاعات وضعیت» است. اگر ارائه‌دهنده بخواهد (یا مجبور شود)، می‌تواند این وضعیت را با زمان‌ها و IPهای ورودی ترکیب کند و چیزی شبیه لاگ اتصال بسازد. بهترین سناریو این است که سرویس‌دهنده این اطلاعات را حداقلی نگه دارد و چیزی پایدار روی دیسک ننویسد.

در سمت دیگر، VLESS+REALITY (یا ترکیب‌های نزدیکش) بیشتر شبیه این است که ترافیک‌تان از نظر ظاهری به یک ارتباط عادی TLS روی پورت 443 نزدیک شود. برای محیط‌هایی که فیلترینگ فعال دارند، این می‌تواند حیاتی باشد. ولی باز هم «بدون لاگ» را تضمین نمی‌کند؛ فقط مدل عبور از شبکه را عوض می‌کند.

Shadowsocks-2022 هم اگر درست راه‌اندازی شود، گزینه‌ی بدی نیست، مخصوصاً وقتی دنبال سربار کمتر و کلاینت‌های ساده‌تری هستید. اما کیفیت اجرا از اسم پروتکل مهم‌تر است. من بارها دیده‌ام یک پیاده‌سازی شلخته با هر پروتکلی که فکرش را بکنید، روی گوشی باتری را می‌خورد و روی اینترنت موبایل با کوچک‌ترین نوسان، packet loss را می‌برد بالا.

اینجا پای کلاینت‌ها هم وسط است. V2RayNG، NekoBox، Shadowrocket، Streisand، Hiddify هر کدام رفتار متفاوتی در reconnect، مدیریت DNS، و split tunneling دارند. گاهی چیزی که شما «لاگ» فکر می‌کنید، در واقع مشکل DNS یا WebRTC است.

ادعای بدون لاگ را چطور می‌شود بو کشید؟

از بیرون، شما دیتاسنتر و config داخلی سرویس را نمی‌بینید. ولی چند نشانه وجود دارد که می‌تواند کمک کند ادعا را واقع‌بینانه‌تر ارزیابی کنید.

اول از همه، متن سیاست حریم خصوصی و FAQ را بخوانید؛ نه برای اینکه عاشق متن حقوقی شوید، برای اینکه دنبال عبارت‌های دقیق بگردید: «IP ورودی ذخیره نمی‌شود»، «timestamp ذخیره نمی‌شود»، «حجم ترافیک به‌صورت تجمیعی نگه داشته می‌شود» و از این جنس. اگر فقط جمله‌های کلی دیدید، یعنی جای سؤال زیاد است. معمولاً یک صفحه مثل پاسخ‌های متداول DuduVPN باید بتواند شفاف بگوید چه داده‌ای کجا و تا چه مدت می‌ماند.

دوم، نگاه کنید سرویس چه ابزارهایی برای کنترل در اختیار شما می‌گذارد. مثلاً امکان تعویض سرور سریع، وضعیت اتصال، انتخاب پروتکل، و تنظیم DNS. این‌ها مستقیم «بدون لاگ» نیستند، ولی سرویس‌هایی که جدی‌تر ساخته شده‌اند معمولاً این جزئیات را هم جدی‌تر می‌گیرند. برای نمونه، در صفحه‌ی امکانات و ویژگی‌های DuduVPN اگر روی کنترل‌های سمت کاربر و گزینه‌های اتصال تمرکز شده باشد، برای من علامت خوبی است که تیم فنی فقط دنبال شعار نیست.

سوم، تناقض‌ها را شکار کنید. اگر جایی نوشته «بدون لاگ»، اما جای دیگر برای «امنیت» می‌گوید «تمام فعالیت‌ها مانیتور می‌شود»، این دو با هم نمی‌خواند مگر اینکه دقیق توضیح داده باشد منظور از مانیتورینگ چیست (مثلاً فقط سلامت سرور و نرخ خطا).

نشتی‌هایی که ربطی به وعده «بدون لاگ» ندارند

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

DNS. اگر DNS شما از تونل بیرون بزند، کل داستان حریم خصوصی نصفه می‌شود. روی Android و Windows زیاد دیده‌ام که کاربر فکر می‌کند وصل است، اما DNS همچنان دست ISP می‌ماند چون کلاینت درست تنظیم نشده یا حالت Private DNS تداخل ایجاد کرده.

WebRTC در مرورگر. مخصوصاً روی Chrome و مرورگرهای مبتنی بر Chromium، WebRTC می‌تواند IP واقعی را در بعضی سناریوها لو بدهد، حتی وقتی VPN وصل است. این یک «لاگ» در سرور VPN نیست، ولی نتیجه‌اش برای کاربر فرقی ندارد.

لاگ‌های خود سیستم. اگر روی macOS یا Windows با ابزارهای دیباگ شبکه کار کرده باشید، می‌دانید چقدر چیزها می‌توانند در فایل‌های log محلی بمانند. روی موبایل هم اپ‌ها گاهی telemetry خودشان را دارند.

برای اینکه راهکارها عملی باشد، من معمولاً این چند چک را بعد از نصب یا تغییر کانفیگ انجام می‌دهم:

  • IP و DNS را روی یک تست ساده بررسی می‌کنم (هم روی وای‌فای، هم دیتای موبایل).
  • یک‌بار حالت airplane را روشن/خاموش می‌کنم تا reconnect واقعی را ببینم.
  • اگر split tunneling دارم، مطمئن می‌شوم مرورگر اشتباهی بیرون تونل نیست.

سه جمله‌ی کوتاه.

سخت نگیر. وسواس هم بد است. ولی تست کن.

«بدون لاگ» در عمل یعنی تیم شما چه تصمیم‌هایی گرفته؟

وقتی از زاویه مهندسی نگاه کنید، «بدون لاگ» بیشتر از اینکه یک وعده باشد، یک رشته تصمیم است: چه چیزی را اصلاً log نکنیم، چه چیزی را اگر لازم شد فقط در RAM نگه داریم، چه چیزی را aggregate کنیم، چه چیزی را ناشناس‌سازی کنیم، و مهم‌تر از همه، دسترسی داخلی تیم به داده‌ها چطور کنترل شود.

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

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

هزینه هم بی‌ربط نیست. سرویس ارزان‌تر ممکن است با oversell کردن سرورها به ترافیک بیشتری برسد، و بعد برای مدیریت سوءاستفاده مجبور شود لاگ‌های بیشتری نگه دارد. این قانون نیست، تجربه‌ی رایج است. اگر خواستید قبل از خرید ببینید چه مدل پکیجی می‌گیرید، یک نگاه به صفحه قیمت‌گذاری بد نیست، مخصوصاً اگر چند دستگاه و چند پلتفرم (iOS، Android، Windows، macOS، OpenWrt) دارید.

اگر قرار باشد یک پیشنهاد عملی بدهم

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

آخرین نکته: روی موبایل، Always-on VPN را روشن کنید و گزینه‌ی Block connections without VPN را هم اگر دردسر خاصی برایتان ایجاد نمی‌کند فعال بگذارید تا یک reconnect بد، DNS را بیرون تونل رها نکند.

مقالات مرتبط