محمد حسن پزشکیان
محمد حسن پزشکیان
خواندن ۱۲ دقیقه·۱ سال پیش

بررسی کامل TOR به زبان ساده

بررسی پروتوکول TOR و مفهوم Perfect Forward Secrecy :

نرم افزار و شبکه TOR ایست که امکان دسترسی به صورت ناشناس و امن رو به سایت ها فراهم میکنه، علی الخصوص سایت های دارک وب ، توی این مقاله به بررسی مکانیزم کارکرد TOR و مفهوم PFS در رمزنگاری میپردازیم :

تور یا TOR که به عنوان مسیر یاب پیازی (Onion Router) شناخته میشه از رمزنگاری و Relay Nodes استفاده میکنه تا ارتباطات رو مخفی کنه ، و توسط ادوارد اسنودن معروف شد ، فرض کنید یه کاربر میخواد به سایت ویرگول دسترسی پیدا کنه ولی نمیخواهد که وبسایت بفهمه که اون بازدید کرده، همچنین در طول مسیرم میخواد مخفی بمونه ، میاد و یه مرورگر TOR باز میکنه و توش مینویسه سایتی رو که میخواد، مثلا اینجا Virgool.io ، حالا مرورگر TOR اون کاربر میاد و لیست تمامی نود ها (Nodes) موجود رو میگیره که در دسترسن و از این لیستی که داره سه تا دونه به صورت رندوم انتخاب میکنه که پیام رو براش جابجا کنن (همینجا یادآور شم که Node همون کامپیوتره، مثلا یکی تو امریکا کامپیوترشو گذاشته در اختیار شبکه TOR که ازش به عنوان Node استفاده کنه)

هر نود یا گره یا کامپیوتر در مسیر فقط نود قبلی و بعدی خودشو میشناسه، پس وقتی شخص مورد نظر پیام رو به نود 1 میده، این نود فقط فرد مورد نظر و نود 2 رو میشناسه (نه مقصد که سایت ویرگوله)، وقتی نود 2 درخواست رو دریافت میکنه میدونه که از نود 1 آمده (هویت فرد رو اصلا اگاهی نداره)و میدونه که باید بدش به نود 3 (نمیدونه مقصد ویرگوله)، وقتی میرسه نود3 ، اون میدونه که درخواست از نود 2 آمده و باید تحویلش بده به سایت ویرگول ، وقتی درخواست به سایت ویرگول میرسه، ویرگول نود 3 رو به عنوان درخواست دهنده میبینه نه فرد مورد نظر رو، وقتی سایت ویرگول جواب میده، نود 3 میده به 2 اونم میده به نود 1 و اونم میده به فرد مورد نظر ، حالا بیایید این رو براتون شرح بدم :

عکس 14
عکس 14

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


بررسی مفهوم Perfect Forward Secrecy :

عکس 13
عکس 13


برای درک PFS عکس 13 رو ببینید: نامه به مقصد ویرگول نوشته و توسط کلید نود3 رمز میشه، بعد اون پیام توسط کلید نود 2 رمز میشه و در نهایت اون پیام توسط کلید نود 1 رمز میشه، وقتی میرسه به نود 1، پیام رو با کلید خودش باز میکنه میبینه برای نود 2 هست، چون کلیدشو نداره پیامو میده به نود 2، نود 2 با کلید خودش پیامو باز میکنه میبینه برای نود 3 هست (درواقع وقتی میگم میبینه برای فلانیه یعنی بعد رمزگشایی پیام، ادرس نود بعدی رو میبینه و پیام رو میفرسته براش) و نود 3 باز میکنه پیامو با کلیدش و میبینه عه یه درخواسته به سایت ویرگول و میره میدش به ویرگول !

قبل بررسی TOR من نکات باقی مونده از PFS رو هم بگم : همونطور که متوجه شدید ما پیام رو توسط چندین کلید رمز میکنیم و به این مفهوم میگن Perfect Forward Secrecy و این باعث میشه ک اگر یک کلید لو رفت، پیام امن به مقصد برسه ، از این تکنیک توی VPN ها، توی TOR یا توی TLS 1.3 و ورژن های جدید SSH استفاده میشه که پیام امن بمونه ، همچنین از PFS توی رمزنگاری جدید وایرلس که WPA3 هست استفاده میشه و اسمش SAE هست که توضیح مفصلی داره

همچنین یه سری سایت های مخفی در TOR هستن که معلوم نیست کجا Host شدن، قسمت TLD دامنشونم .onion هست و ادرسشونم نامتعارفه، مثلا موتور های جستجو دارک نت رو اگر بخواید ببینید میتونید از این لینک اقدام کنید

همونطور که اولش هم گفتم ما بحث سایت های مخفی رو داریم که توی شبکه TOR فعالیت میکنن و کاملا نشناس باقی میمونن، درواقع این ناشناسی دوطرفس ، هم کاربر نمیشناسه هویت وبسایت رو هم وبسایت نمیدونه کاربر کیه که داره باهاش ارتباط برقرار میکنه

به این قسمت از سایت ها که ناشناس هستن میگن دارک وب، دارک وب هم خوبه هم بد، بد از جهتی که چون ناشناسه میتونه ازش استفاده های غیرقانونی بشه وجای خوبی برای مجرمین باشه، خوب از جهتی که شما میتونید توی خیلی از سایت های دارک وب به صورت قانونی فعالیت ناشناس کنید، مثلا وبسایت واشنگتن پست که برای خودش انتشارات واشنگتنه توی دارک وب سایت داره که ادم ها میتونن اخبارشون رو بدون افشا شدن هویتشون اونجا بفرستن ! همچنین قابلیت خوبی داره برای بحث هایی که توسط دولت ها ممکنه سانسور بشه و در جاهایی که دولت ها از لحاظ قضایی قدرت دارن که اذیت کنن، نمیتونن توی TOR کاری کنن، همچنین از TOR برای دورزدن تحریم و سانسور هم استفاده میشه (در کشور های مثل چین خیلی کاربرد داره)

برای دسترسی به شبکه TOR باید مرورگر TOR رو نصب کنید که خیلی ساده هم هست، من از ورژن Brave استفاده میکنم؛ این نکته رو هم تاحالا فهمیدید که اگر عمل خلافی انجام بشه، نود 3 وم گیره و پای اون وسطه و اون محاکمه میشه ؟

اجزای اصلی TOR :

1- Nodes :

قلب و جزء اصلی شبکه TOR درواقع همون کامپیوتر ها یا Node یا نود هایی هستن که ترافیک رو هدایت و ردوبدل میکنن بین هم، درواقع هرچی نود بیشتر باشه ، اختفا و ناشناسی بیشتر میشه، این Node ها هم داوطلبانه توسط مردم تو جهان اهدا میشن به TOR ، به این صورت که هرکی دوست داشت هرچند تا کامپیوتر رو کانفیگ میکنه و در اختیار شبکه TOR قرار میده که ترافیک رو رد کنن ازش

ما دوتا نوع نود اصلی داریم : Entry Node و Exit Node

نود ورودی یا Entry Node درواقع اولین سیستمیه که پیام رو از کاربر میگیره و هویت کاربر رو میشناسه، زیاد خطرناکه نیست از منظر اختفا چون نمیدونه کاربر به کجا داره پیام میده، فقط میدونه ک این کاربر داره از شبکه TOR استفاده میکنه

نود خروجی یا Exit Node معمولا اون نود هایی هستن که کاربر ها دوست ندارن همچین نودی در اختیار مردم قرار بدن و داوطلب نمیشن که نودشون به عنوان نود خروجی استفاده بشه ، چون همونطور که بالاتر گفتم تنها چیزی که قابل مشاهدس برای مقام های قضایی همون نود خروجیه

نود های واسط یا میانی هم که از خدا بی خبر فقط پیام رو انتقال میدن، به صورت پیشفرض سه تا نود توسط مرورگر TOR انتخاب میشه، میشه تعداد نود های واسط رو افزایش داد که هم باعث کندی بیشتر ولی اختفا بیشترم میشه

2- Directory Servers :

یه سری سرور هستن که هویت و آدرس نود هارو توی خودشون ذخیره میکنن ، آدرس این Directory servers ها به صورت پیچیده ای Hard Code شده توی برنامه مرورگر TOR و تعداد کمی از این سرور ها در جهان وجود دارند

عکس  29
عکس 29

لینک مربوط به عکس 29

این لیست Directory servers های موجوده که من لحظه نوشتن مقاله عکس گرفتم (عکس29) ، کلا 9 تا هستن

وقتی شما مرورگر TOR رو باز میکنید، میاد سراغ یکی از این سرور ها و از این سرور ها میخواد که بهش 3 تا نود معرفی کنن، سر همینه یکم طول میکشه که مرورگر آماده به کار بشه ! وقتی سه تا نود رو این سرور ها به مرورگر معرفی میکنن، مرورگر تصمیم میگیره ک کدوم بشه نود ورودی ، کدوم خروجی و کدوم نود میانی یا واسط

3- Relays and bridges nodes :

ما دو نوع نود توی شبکه TOR داریم، یکی نود های معمولی یا Relay Nodes یا Advertised Nodes که نود های معمولی ای هستن که ادرسشون از طریق Directory servers قابل دسترسه ، ولی مشکل اینجاست که این نود ها قابل ردیابی و بلاک شدن هستن توسط فایروال های دولت ها(اگر به یک Directory servers درخواست بدید میتونید آیپی این Relay Node هارو دربیارید و بلاکشون کنید)، ما یه دسته نود دیگه هم داریم که به راحتی نمیتونین آدرسشو دربیارید و موقع وصل شدن به TOR اگر مرورگر احساس کنه که نود هاای معمولی بلاک شدن، میره سراغ نود های bridge که مخفی هستن و آدرسشون در دسترس نیست، امکان بلاک کردن این نود های Bridge هست ولی خیلی سخته ! چالشی هم که هست اینه که این نود ها نسبت به نود های معمولی بسیار آمارشون کمتره

عکس 33
عکس 33

همونطور که توی عکس 33 میبینید ما حدود 2 هزار نود از نوع Bridge داریم ولی نزدیک به 8 هزار تا نود معمولی یا Relay داریم

چطوری یک سایت مخفی در TOR ایجاد میشه ؟

خیلی روند ساده ایه، مثل سایت نرمال شما اول هاست رو میخری بعد که همه چی رو روش آوردی بالا میری برای کانفیگ TOR اون، دامینتو ثبت میکنی یه جا با پسوند .onion ، دامینتم اسمش کاملا رندوم انتخاب میشه و اصلا مفهومی نمیتونه باشه، بعد دوسه تا نود رو انتخاب میکنی و اون هارو موظف میکنی که سایت تورو بالا بیارن و نماینده سایت تو باشن (درواقع اون ها خودشون رو هاست سایت تو معرفی کنن) ، در تصویر 45 ما یه هاست خریدیم (سمت راست) سایت رو اوردیم بالا و دامین رو ثبت کردیم و دوتا نود رو انتخاب کردیم (بهشون میگن Introduction Points - همین دوتا آیکون های IP آبی تو عکس پایین) که از شبکه TOR که بیان سایت مارو بالا بیارن ، درواقع اون ها اطلاعات رو از نود های میانی میگیرن ، نود های میانی هم از ما اطلاعات رو میگیرن، یعنی اختفا کامل :)

عکس 45
عکس 45
یک کاربر چطوری به سایت دسترسی پیدا میکنه ؟
عکس 66
عکس 66

طبق عکس 66 کاربر اول درخواست میده به یک دیتابیس که توش اطلاعات هر دامین onion و سرور های مربوطش هست و از اون یه Introduction Point پیدا میکنه و کلید عمومی Introduction Point هم از اون دیتابیس میگیره ، بعد مرورگر TOR میره سراغ یه نود و اونو به عنوان RP یا نقطه که تحت عنوان نقطه میعادگاه میشناسشن (ترجمه نکنید?) ، کاربرد این نود RP اینه که اصلا هویت سایت رو ندونه و اصلا هویت کاربر رو هم ندونه و فقط منتقل کننده پیام باشه؛

عکس 69
عکس 69

توی عکس 69 در ادامه فرایند ، وقتی مرورگر TOR آدرس RP رو دراورد میاد و درخواستش رو مینویسه و پیام رو رمز میکنه با کلید عمومی سایت که بدست اورده بود، و آدرس گیرنده رو میزنه نود RP (یعنی پیام به خودش تحویل داده نشه، به نود RP تحویل داده بشه) و بعد پیام رو از طریق نود های میانی میده به یکی از Introduction Point ها و اونم

عکس 71
عکس 71

از طریق نود هایی میره و درخواست رو میده به سرور اصلی که سایت روشه و از اون جواب رو میگیره

عکس 74
عکس 74

و از اونجا پیام میرسه به نود RP و بعد اون نود RP هم جوابو از طریق نود های واسط برمیگردونه به کاربر !

حملات علیه TOR :

قبل اینکه بفهمیم چطوری میتونن اختفا و ناشناسی کاربران رو در TOR از بین ببرن بیایین دوتا نکته رو بررسی کنیم :

کانال جانبی چیه ؟

کانال جانبی رو در قسمت حملات رمزنگاری بررسی میکنم ولی به طور ساده و خلاصه اینطوریه که شما از طریق راه های جانبی به یه سری مسائل پی میبری

مثلا شما وقتی میخواید هندونه قرمز شیرین بخرید ، تنها راه اصلی اینه که بیایید نصفش کنید و میل کنید ، ولی اگر اجازه نداشته باشید میایید و با راه های جانبی تستش میکنید ، مثلا رگه هاش سبزه یا رنگش رفته ، بهش ضربه میزنید و میبینید که توش چقد پوکه یا تو پره و... به این حرکت شما میگن Side Channel یا راه جانبی ، ما توی رمزنگاری اگر نتونیم از راه اصلی یه چیزیو تشخیص بدیم میاییم و حملات کانال جانبی میکنیم

یه نکته دیگه که باید بگم اینه که میدونید که شما به عنوان یه کاربر ساده میتونید کامپیوتر و سرور های خودتون رو وارد شبکه TOR بکنید و اون هم به عنوان Node از اونها استفاده میکنه ؟

بریم سراغ حملات :

حملاتی که علیه TOR معرفی میشه توسط NSA و GCHQ بررسی و کشف میشه و برخی از این ها توسط ادوارد اسنودن پخش شده و با وجود اینکه قدیمیه ولی اثر بخشه ، ما همچنین به حملات مدرن هم نگاهی میندازیم

توی یکی از این اسناد که لینکشو براتون گذاشتم و تحت عنوان tor stinks منتشر شده نکات جالبی گفته شده :

توی صفحه دوم گفته شده که ما نمیتونیم ناشناسی کاربران رو به طور کلی بهم بزنیم ، بلکه میتونیم فقط روی عده کمی کار کنیم و هویتافراد بسیار کمی قابل افشا هست

User Behavior Analysis :

اولین مورد رو روی رفتار شناسی کاربر ها گذاشتن و این دسته از کاربر های احمق خطاب کردن :)

کار که میکنن مشاهده ترافیک خروجی از Exit Node هست و ربط دادن اون با اطلاعات و رفتار های دیگه همه کاربران، مثلا اگر دیده بشه که سایت و کاربر چه کوکی هایی ردوبدل کردن و اون کوکی توسط کاربر توی اینترنت معمولی هم استفاده بشه ، از طریق ربط دادن این دوتا میتونن فرد رو پیدا کنن

یا مثلا "پسره ۲۰ ساله ، دانشجو دانشگاه هاروارد بوده و یه روزی امتحان داشته ، برا همین قبلش اومده از TOR استفاده کرده یه ایمیل به دانشگاه زده و یسری خبرنامه ها داده این خبرام چاپ شده به گوش همه رسیده حالا خبر این بوده که دانشگاهو برای باز شدن اون روز تهدید کرده و گفته اطراف دانشگاه بمب گذاری شده؛ و اینجا بوده که بخاطر بمب گذاری اف بی ای وارد عمل شده دیده تو خود دانشگاه یه نفر به تور وصل شده و گرفتنش " (زمان پیام حمله و زمان وصل شدن کاربر) لینک خبر

Passive traffic analysis :

مثل بالاییه که ترافیک و نشانه هارو بهم متصل میکنه ولی تفاوتش اینه که بالایی وابستس به فعالیت های کاربر ولی این روش وابسته به نشانه ها یا بهتره بگم اثر انگشت هایی که مرورگر یا سیستم از خودش بجا میزاره

Circuit reconstruction & Shaping :

در این حمله ما Node های فیک و جعلی توی سیستم داریم ، یعنی فرض کنید خود دولت امریکا بیاد و 3000 نود وارد شبکه TOR کنه و اینطوری بخواد با قاعده احتمالا یکاری کنه که یکی از این 3000 نود انتخاب بشن به عنوان پیام رسان و بیشتر بتونه فعالیت هارو شناسایی کنه ، نکته جالبش اینجاست که باز کار خیلی خیلی سختیه و احتمال بسیار کمی وجود داره که این حمله موفق بشه ، بخاطر الگریتم های انتخاب نود توسط TOR یا افزایش تعداد Node های میانی

و تنها حمله ای که میمونه ، پخش کردن برنامه TOR Browser ای هست که خود آژانس های امنیتی ساختن تا بیاد و node های خودشونو انتخاب کنه تا به این واسطه هویت و پیام شما افشا بشه

این حملات درسته قدیمین ولی ترکیب این ها با DPI و حمله SSL Strip و استفاده از Machine Learning باعث میشه درصد موفقیتشون بیشتر بشه ! هدف این مقاله هم این نیست که روش های اختفا یا امن سازی در مقابل حملات TOR رو بررسی کنه؛ فقط مطالب فنی ای رو بررسی کردیم که مربوط به 10 سال پیشه و دونستنشون خیلی کاربردیه !

گسترش یافته از نوشته های Mike Chapple

هرسوالی بود در خدمتم ، یا علی ;)

torدارک وبدیپ وب
یک عدد جونیور علاقه مند به حوزه امنیت :)
شاید از این پست‌ها خوشتان بیاید