صفحه نخست --> امنیت --> آدرس Onion یا پیازی؟ مسئله این است (قسمت ۲رمزنگاری بسته ها و مخفی ماندن آدرس IP)

آدرس Onion یا پیازی؟ مسئله این است (قسمت ۲رمزنگاری بسته ها و مخفی ماندن آدرس IP)

میر سامان تاجبخش

دانشجوی ترم آخر دکتری فناوری اطلاعات دانشگاه ارومیه

s.tajbakhsh@chmail.ir

ms.tajbakhsh@urmia.ac.ir

https://mstajbakhsh.ir

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

کماکانی که در پست قبلی نیز اشاره شده است، Alice‌ سه نفر را برای برقراری مدار[۱] به نام‌های Node1, Node2, Node3 انتخاب کرد. از این پس اصطلاحا به Node1 که Alice را به شبکه TOR متصل می‌کند، Entry Guard، به نفر بعدی که امکان رد و بدل شدن بسته در داخل شبکه TOR را می‌دهد Middle Relay و به Node3 که امکان خروج بسته از شبکه TOR را می‌دهد، Exit Relay خواهیم گفت.

Alice بصورت مستقیم با EG و بواسطه EG با MR و ER کلید تبادل می‌کند که همین امر منجر به تفاوت بنیادی این روش با چند VPN متوالی می‌شود. حال بحث مطرح شده مربوط به این است که بسته ارسالی از Alice با چه شرایطی به دست بقیه Nodeها می‌رسد.

ارسال بسته به شبکه TOR در سیستم مبدا

TOR‌ در نسخه‌ فعلی از یک SOCKS5 Proxy در سیستم کاربر استفاده می‌کند. به عبارت دیگر هر برنامه‌ای که برای اتصالات خود از ارتباط TCP استفاده کند و بتواند از SOCKS5 Proxy‌ در اتصالات خود استفاده کند، قابلیت متصل شدن به شبکه TOR‌ و هدایت داده‌های خود از آن را داراست. اگر از نسخه حرفه‌ای TOR‌ استفاده می‌کنید، این Proxy در آدرس ۱۲۷٫۰٫۰٫۱:۹۰۵۰ است ولی اگر از TOR Browser استفاده می‌کنید آدرس مربوطه ۱۲۷٫۰٫۰٫۱:۹۱۵۰ می‌باشد.

شبکه TOR
 تصویری از TOR Browser

در تصویر ۱ برنامه TOR Browser در حال اجرا است که در حقیقت یک مرورگری است که برای خود SOCKS5 Proxy تنظیم کرده است. این تنظیمات وقتی که از سیستم سوال می‌شود نیز هستند. برای مشاهده لیست آدرس‌های متصل یا منتظر در ویندوز می‌توانید از دستور netstat استفاده نمایید.

رمزنگاری بسته در سیستم مبدا قبل از ورود به شبکه TOR

با این حساب Alice بسته خود را در قالب یک بسته SOCKS5 Proxy ارسال می‌کند که مشخصاتی از آدرس IP خود در بسته SOCKS نیست. تنها مشخصاتی که در بسته SOCKS5 است، مشخصات مقصد است. بنابراین اگر Alice بسته‌ای که می‌خواهد از طریق SOCKS5 وارد شبکه TOR بکند، فقط با کلید مشترک بین خودش و EG رمز کند، EG از مقصد نهایی بسته Alice با خبر شده و هدف شبکه TOR با اشکال مواجه می‌شود. بنابراین بحث رمزنگاری تو در تو مطرح می‌شود که چون مانند لایه‌های پیاز است به آن مسیریابی پیازی (رمزنگاری پیازی) اطلاق می‌شود. این لایه‌ها در شکل ۲ قابل مشاهده هستند.

ورود به TOR
ورود به شبکه TOR

چنانچه در شکل مشخص شده است، A همان نقطه ورود یا EG است و B که نفر وسط است (MR). همچنین C نیز ER می‌باشد. بنابراین بسته ارسالی از Alice که همان Message است، سه بار رمزنگاری بر رویش انجام می‌شود و Alice بسته را به SOCKS5 Proxy سیستم خود می‌فرستد که فقط داده ارسالی و مقصد در آن آمده است.

پس از ارسال، برنامه TOR در مسیر کنونی خود بسته را به EG می‌فرستد. EG فقط می‌تواند سطح اول رمزنگاری را رمزگشایی کند و قادر به رمزگشایی قسمت سبز و قرمز مشخص شده در شکل ۲ نیست چراکه کلیدها مستقیما بین Alice و MR – Alice‌ و ER تنظیم شده‌اند و EG در تنظیم کلید نقشی نداشته است. EG می‌داند که بسته رمز شده توسط کلید سبز و قرمز را باید به MR بفرستد (لایه مربوط به خودش را رمزگشایی کرده است). همین اتفاق برای MR نیز می‌افتد و MR با رمزگشایی قسمت سبز نفر بعدی Circuit را تشخیص داده و بسته رمز شده توسط کلید قرمز را به ER ارسال می‌کند. ER همان نفری است که می‌تواند محتوای اصلی بسته را ببیند ولی نمی‌داند ارسال کننده‌اش چه کسی است. این همان دلیلی است که TOR در صفحه اول TOR Browser اشاره کرده که استفاده از TOR به تنهایی برای گمنام ماندن در اینترنت کافی نیست. بطور مثال شما در سایتی توسط TOR Browser وارد شده‌اید که برای آن سایت نام کاربری و کلمه عبورتان را ارسال می‌کنید. ER قابلیت دیدن آن نام کاربری و کلمه عبور را دارد چراکه به بسته اصلی دسترسی دارد ولی نمی‌تواند بداند که ارسال کننده آن بسته چه آدرس IP است چراکه فقط MR را به عنوان فرستنده می‌بیند و MR اعلام نکرده که بسته را از EG گرفته و EG نیز اعلام نکرده که بسته را از Alice گرفته است. البته اگر هر سه نفر EG, MR, ER دست به یکی باشند و از ترافیک یکدیگر خبر داشته باشند، هویت و آدرس IP مربوط به Alice لو خواهد رفت.

همچنین مکانیزم دیگری نیز برای جلوگیری از لو رفتن داده‌ها توسط ER این است که از رمزنگاری لایه Transport مانند TLS استفاده شود. در این صورت ER قادر به دیدن محتوای رمزشده نخواهد بود و فقط می‌داند که داده رمزشده به کدام مقصد (عموما سایت) ارسال می‌شود. این مطلب در شکل ۳ قابل مشاهده است. البته چون TOR یک SOCKS5 Proxy در اختیار گذاشته است می‌توان تقریبا تمام پروتکل‌های لایه Application‌ را که از TCP استفاده می‌کنند را ارسال کند. بنابراین پروتکل‌های دیگر TCP Based این لایه مانند SMTP, IMAP, POP3, FTP قابلیت متصل شدن پشت TOR را دارند.

رمزنگاری در TOR
رمزنگاری در شبکه TOR

برگشت جواب از ER به سیستم مبدا

در این بخش اتفاقات دقیقا بصورت برعکس اتفاق می‌افتد. ER جواب دریافتی از مقصد (عموما سایت) را با کلید مشترک خود و Alice (کلید قرمز) رمز کرده و به MR (دومین عضو یک مسیر) می‌فرستد. MR نیز آن را با کلید مشتر بین خود و Alice (کلید سبز) رمز کرده به نقطه اول ارسال می‌کند. EG نیز آن را با کلید مشترک خود با Alice‌ (کلید آبی) رمز کرده و آن را مجدد به Alice ارسال می‌کند. Alice‌ به تنهایی می‌تواند تمامی رمزنگاری‌ها را گشوده و به بسته جواب برسد. اگر بسته اصلی نیز با SSL/TLS رمز شده باشد، چون ابتداعا نشست SSL/TLS توسط Alice صورت گرفته پس Session Key مربوط به SSL/TLS را دارد و می‌تواند آن را نیز رمزگشایی کند. بنابراین Alice توانست یک بسته را از سیستم خود (مبدا) به مقصد ارسال کند و جواب آن را دریافت کند.

در شکل ۳ تستی است که من به سایت شخصی خود از طریق TOR Browser زده‌ام. چنانچه مشخص است سه نفر منجر به متصل شدن به سایت مقصد (https://mstajbakhsh.ir) شده‌اند.

اتصال به یک سایت توسط TOR Browser
اتصال به یک سایت توسط TOR Browser

چنانچه در شکل ۴ مشخص شده، EG و MR از کشور فرانسه بوده و ER از هلند بوده است. البته این سه نفر را فقط ارسال کننده درخواست (Alice) می‌داند و هیچکس دیگری از آن با خبر نیست که اگر باشد، می‌تواند به آدرس اصلی IP مربوط به Alice دسترسی داشته باشد.

Bad Exit و قضایای حقوقی

در بین جست‌وجوهایم برای این شبکه به موارد جالبی برخورده بودم که اینجا نیز می‌آورم. ابتداعا بحث Bad Exit است که هرکسی می‌تواند خود را به عنوان هریک از Nodeها معرفی کند و بصورت داوطلبانه به شبکه TOR کمک کند. بنابراین افراد می‌توانند ER راه اندازی کنند و بسته‌های ارسالی از افراد مختلف (در صورت رمز نشدن توسط SSL/TLS) مشاهده کنند و یا جواب‌های مخرب ارسال کنند. به این افراد Bad Exit گفته می‌شوند که کاربران در صورت مشاهده چنین رفتارهایی می‌توانند به شبکه TOR گزارش داده و شبکه TOR رفتار آن ER را بررسی کند. در صورت مشاهده رفتار مخرب یک پرچم Bad Exit به آن ER اختصاص داده و دیگر استفاده کنندگان از آن استفاده نخواهند کرد.

البته قضیه به اینجا ختم نمی‌شود بلکه ارسال کننده درخواست ممکن است درخواست مشکل داری ارسال نماید. مثلا حملات تحت وب و یا رفتار و انتشار مطلب مجرمانه در سایت‌ها از طریق TOR. در این صورت سیستم قضایی کشور مقصد که جرم در آن اتفاق افتاده، ER را به عنوان ارسال کننده درخواست شناخته و متهم خواهد بود. به همین دلیل عمده داوطلبین شبکه TOR تمایل دارند که به عنوان EG یا MR فعالیت کنند نه ER.

منابع:

https://www.torproject.org/docs/bridges.html.en

https://www.torproject.org/docs/faq-abuse.html.en

https://www.torproject.org/eff/tor-legal-faq.html.en

http://www.vpnfan.com/blog/tor-network-review/

https://securityzap.com/the-deep-web-everything-you-need-to-know/

http://www.firewall.cx/vpn/vpn-guides-articles/1193-tor-vpn-guide-security-speeds-advantages-disadvantages.html

[۱] Circuit

آدرس کانال تلگرام ما:

t.me/bigdata_channel
برای ورود به کانال بر روی اینجا کلیک کنید.

پاسخ دهید