در مقالههای پیشین وبسایت امنیت اینترنت کنشتک درباره تور چگونه کار میکند و چطور از حریم شخصی و دادههای کاربرانش محافظت میکند خواندیم. بدین ترتیب اکنون میدانیم که هنگام استفاده از تور داده های بین کلاینت و سرور از یک مدار متشکل از سه رله در تور ارسال و دریافت میشوند. در این مقاله از وبسایت کنشتک میخوانیم که این مدار تور چگونه شکل میگیرد؟
مدار تور چگونه شکل میگیرد؟
ساخت و هماهنگی مداری متشکل از ۳ گره تور نیاز به یک پروتکل پیچیده و ماهرانه دارد. هنگامی که از شما خواسته میشود یک مدار تور را بسازید، Tor daemon که روی کامپیوتر شما اجرا میشود، باید سه گره مورد نظر خود برای مدار را انتخاب کند. Tor daemon از آن گرهها میپرسد که آیا موجود هستند و اگر بودند با استفاده از کلید رمزنگاری متقارن با تک تک آنها مذاکره میکند. هنگامی که مرورگر شما این مدار را ساخت، ترافیک اینترنتش را تا ده دقیقه بعدی از این مدار منتقل میکند، بعد از این زمان یک مدار جدید میسازد. مرورگر تور از این مدار جدید برای تمام جریانهای TCP جدید استفاده میکند، اگرچه جریانهای TCP موجود که از مدار قبلی استفاده میکنند همانجا میمانند.
اکنون از ابتدا شروع میکنیم، ببینیم Tor daemon چگونه ۳ گره مورد نیاز خود برای تشکیل مدار تور را انتخاب میکند. برای انجام اینکار Tor daemon نیاز به دسترسی به یک لیست بهروز از تمام گرههای موجود در شبکه تور و قابلیتهای آنها دارد. این لیست را از گرههای دایرکتوری تور دریافت میکند.
گرههای دایرکتوری تور
وضعیت شبکه تور توسط گروهی از ۹ سرور مطمئن -که بعنوان گرههای دایرکتوری شناخته میشوند- پیگیری و منتشر میشود. هر کدام از این سرورها توسط شخص یا سازمان متفاوتی کنترل میشود. با داشتن ۹ گره مستقل، در صورت خاموش شدن یکی از آنها به دلیل افزونگی (redundancy) مشکلی در شبکه ایجاد نمیشود، و همچنین در صورت به خطر افتادن هر کدام از آنها همچنان به شبکه میتوان اعتماد کرد. یکپارچگی شبکه تور تا حد زیادی به راستی و درستی گرههای دایرکتوری متکی است، بنابراین مقاومسازی شبکه در برابر خطر جزيی بسیار مهم است.
هنگامی که کلایت یا یک گره بخواهد از وضعیت فعلی شبکه تور مطلع شود، از یک گره دایرکتوری سوال میکند. گرههای دایرکتوری نیز از طریق رلههای شبکه به روز میشوند، بدین ترتیب که اگر رلهای آنلاین شود و یا تغییری در تنظیماتش بدهد به تمام گرههای دایرکتوری اعلان میفرستد. هر گاه گره دایرکتوری چنین اعلانی دریافت کند، نظر شخصیاش راجع به وضعیت فعلی شبکه تور را به روز میکند.
از آنجاییکه تور یک سیستم توزیع شده در دنیای واقعی است، هرازگاهی این اعلانهای بهروز رسانی با شکست مواجه میشوند و نظر شخصی گرههای دایرکتوری متفاوت میشوند. برای مثال ممکن است گرههای دایرکتوری ۱ تا ۷ اعلان آنلاین شدن یک رله را دریافت کنند ولی گره ۸ و ۹ دریافت نکنند. اینجاست که گرههای دایرکتوری تور با یکدیگر اختلاف نظر پیدا میکنند و باید حل شود.
اولین نسخه تور برای حل این اختلاف رویکرد بسیار ساده و منفعلانهای داشت. هر گره دایرکتوری وضعیت فعلی شبکه را آنطور که مشاهده کرده بود برمیگرداند، و هر کلاینت به آن گره از دایرکتوری اعتماد داشت که بیشتر با آن صحبت کرده بود. این رویکرد میتواند در بسیاری از سیستمهای توزیع شده مناسب باشد، اما در سیستم تور بدلیل حفظ حریم شخصی، ایراد داشت.
ایراد داشت به دلیل اینکه هیچ چیزی اطمینان نمیداد که گرههای دایرکتوری حقیقت را میگویند. اگر یک خرابکار میتوانست یک گره دایرکتوری را به خطر بیاندازد، در اینصورت میتوانست درباره وضعیت شبکه تور دروغ بگوید. برای مثال اگر کلاینتی از گره دایرکتوری به خطر افتاده، درخواست لیست بهروز رله های فعال را میداد، خرابکار میتوانست لیست رله های تحت کنترل خودش را به کلاینت برگرداند. سپس کلاینت یک مدار متشکل از رلههای تحت کنترل خرابکار میساخت. بعنوان گزینه دیگر، اگر خرابکار میخواست زیرکتر عمل کند، با لیست درستی از گرههای رله تور بعلاوه یک گره خروجی که تحت کنترل خودش است و تاکنون مخفی نگاه داشته شده، پاسخ میداد. در اینصورت اگر خرابکار این گره خروجی را تنها برای یک کلاینت ارسال کرده باشد، به طور دقیق میداند که ترافیکی که روی این رله دریافت کرده متعلق به آن کلاینت است.
نسخه دوم سیستم دایرکتوری تور وقوع این حمله را دشوارتر کرد. در این نسخه کلاینتها به جای پرسیدن از یک گره دایرکتوری، از تمام گرههای دایرکتوری جداگانه سوال میپرسیدند، و سپس در یک اجماع نظرات آنها را ترکیب میکردند. این تغییر پروتکل به این معنی بود که دیگر یک گره دایرکتوری سرکش نمیتوانست دید کلاینت نسبت به شبکه را تحریف کند، زیرا گره سرکش توسط باقی گرههای درستکار کنارگذاشته میشد. با اینحال کلاینت ها براساس اینکه آخرین بار با کدام گره دایرکتوری صحبت کرده اند، میتوانند اجماع نظرهای مختلف درباره شبکه را محاسبه کنند. این کار احتمال نشت اطلاعات آماری را افزایش میداد -نسخه خفیفتر آسیبپذیریای که در نسخه اول تور توضیح دادیم. علاوه بر این، هر کلاینت مجبور بود با تمام گرههای دایرکتوری تور صحبت کند که باعث میشد مقدار اطلاعات مورد نیاز برای اجرای شبکه تور بسیار افزایش پیدا کند.
نسخه سوم و فعلی سیستم دایرکتوری تور، مسئولیت محاسبه اجماع نظرات را از کلاینتها به خود گرههای دایرکتوری سپرده است. ۹ گره دایرکتوری هر ساعت یکبار، نظرات خود درباره شبکه را با یکدیگر ردوبدل میکنند، سپس این دیدگاهها را در یک اجماع واحد ترکیب میکنند. اجماع حاصل شده توسط هر ۹ گره دایرکتوری توافق و امضا میشود، و برای یک ساعت هر گره دایرکتوری همان نمای امضا شده را به تمام کلاینتها ارسال میکنند. این روش تولرانس خطا و مزایای اعتماد توزیع شده سیستم عیرمتمرکز را حفظ میکند، در حالیکه اطمینان میدهد تمام کلاینتها دید یکسانی از شبکه دارند.
هنگامی که کلاینت تصویر به روز شده شبکه تور را از یک گره دایرکتوری دریافت کرد، آماده تشکیل مدار میشود.
تشکیل مدار تور
یک مدار تور از یک گره نگهبان، یک گره میانی و یک گره خروجی تشکیل شده است. کلاینت با تماس با گرهای که بعنوان گره نگهبان خود انتخاب کرده، تشکیل مدار را آغاز میکند. کلاینت و گره نگهبان نشست TLS را آغاز میکنند، و کلاینت از گره نگهبان میخواهد تا به آن کمک کند تا مدار تور را شروع کند.
بعدی گره میانی است. شرایط حریم خصوصی تور بدان معنی است که گره میانی مدار تور نباید بداند که کلاینت چه کسی است و مقصد آن کدام است. این بدان معنی است که کلاینت حتی برای نشست TLS هم مستقیم با گره میانی صحبت نمیکند، در غیر اینصورت IP کلاینت برای گره میانی مشخص میشود. بنابراین کلاینت با واسطه گره نگهبان با گره میانی صحبت میکند.با ارسال ترافیک بین یکدیگر از طریق گره نگهبان، کلاینت و گره میانی نشست TLS را مذاکره میکنند، بدون اینکه مستقیم با یکدیگر صحبت کنند. پس از پایان کار، کلاینت و گره میانی روی یک کلید رمزنگاری متقارن مخفی توافق کردهاند و یک گره دیگر به مدار تور اضافه میشود.
اکنون نوبت گره خروجی است. پروسه اضافه کردن گره سوم هم مانند گره دوم است، با این تفاوت که مذاکره نشست TLS بین کلاینت و گره خروجی، از طریق گره نگهبان و گره میانی صورت می گیرد. اکنون کلاینت با هر گره مدار توری که تشکیل داده یک کلید جداگانه و متقارن TLS ایجاد کرده است. مدار آماده ارسال و دریافت داده با استفاده از روش رمزنگاری سه گانه است، که در این مقاله شرح دادیم.
منبع: https://robertheaton.com/2019/04/06/how-does-tor-work/
[…] بزرگی میکنند. برای اطلاعات بیشتر میتوانید از پست «مدار تور چگونه شکل میگیرد؟» بازدید […]