تور چیست و چگونه کار میکند؟

بازدید: 1,766 بازدید
رمز گذاری و تور چیست

تور چیست و چگونه کار میکند؟ 

در این مطلب کمی به این موضوع میپردازم و امیدوارم برای همه مفید باشه.


تور و کارآیی آن؟

تور (Routing Onion The-TOR (یک پروژه آزاد و یک پیاده سازی از مدل شبکه پیازی (Onion (هست.

شبکه پیازی یک مدل از شبکه هست که طوری طراحی شده تا کاربر در اون ناشناس بمونه، برای همین پروژه تور این مدل شبکه رو پیاده سازی کرد تا کمکی کرده باشه.

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


توضیحی مختصر راجع به رمزگذاری ۲ کلیده:

من خیلی مختصر توضیح میدم اگه دوست داشتید بیشتر راجع به این روش رمزگذاری بخونید، حتما راجع بهش جستجو کنید!

در رمزگذاری یک کلیده، من دادهی خودم رو رمزگذاری میکنم و اون رو با کلیدش به مقصدم میدم .

و اون میتونه با استفاده از کلید رمز داده من رو باز کنه!

مشکل این روش اینه که کلید همراه داده ارسال میشه و هرکسی (از جمله سرورهای واسط (حکومتها و isp ها و افراد سودجو و…)) میتونه اونا رو بگیره و با استفاده از کلید رمزش رو باز کنه.

در رمزگذاری ۲ کلیده، هر سرور ۲ کلید داره، یک کلید عمومی که در دسترس همه است و یک کلید خصوصی که اون رو فقط خود سرور داره.

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

پس من اگر دادهای به سروری میفرستم، با کلید عمومی اون سرور (که در دسترس عموم قرار داره) دادهام رو رمز میکنم و به سرور میفرستم.

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

مگر وقت وقدرت پردازش بسیار بسیار بسیار زیادی داشته باشد.

چون کلید خصوصی سرور مقصد را ندارند.

وقتی داده به مقصد رسید، سرور مقصد با استفاده از کلید مقصد را ندارند.

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


شروع کار تور

شما برای استفاده از تور باید کلاینت تور رو در رایانه خود نصب کرده باشید.

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

این پوشه در دسترس عموم قرار داره و در اون آدرس گرهها و کلید عمومی اونها قرار داره.



پل چیست؟

گفتم آدرس سرورها در درسترس عموم قرار داره، پس در دسترس حکومتها و ارائه دهندگان اینترنت و… هم قرار داره!

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

بلکه شما باید یا از سایت تور یا با ایمیل اونها رو دریافت کنید و هر بار مثلا ۳ عدد پل به تصادف انتخاب و برای شما ارسال میشه، اینطوری حکومتها نمیتونن همه ی پلهای تور رو یکجا شناسایی و از دسترس خارج کنه!

در واقع اگه بخواد چنین کاری کنه باید هزاران ایمیل به تور بزنه و خب تور هم بعد از مدتی دیگه بهش جواب نمیده!

چون خیلی زیاد داره درخواست دریافت پل میده! 

شما با استفاده از اون سرورهایی که در دسترس عموم نیست و از سایت یا ایمیل گرفتید.

به سرور تور وصل شده و آدرس و کلید گرههای دیگه رو که حکومتها مسدود کرده بود رو دانلود میکنید.


تشکیل زنجیره


نحوه کار تور

حال اگر کامپیوتر ما بستهای ارسال کند، قبل از ارسال با ۳ کلید عمومی (که از پوشه تور دانلود شده بود) به ترتیب خروجی، میانی، ورودی رمز میشود.

سپس به گره ورودی ارسال میشود.

گره ورودی با کلید خصوصی خود، اولین لایه از رمز را باز کرده و آن را به گره میانی میدهد.

گره ورودی مبدا و گره میانی را میشناسد اما مقصد نهایی پیام و خود پیام را نمیبیند (چون پیام هنوز ۲ بار با کلیدهای گرههای میانی و خروجی رمز شده است).

گره میانی با کلید خصوصی خود، دومین لایه از رمز را باز کرده و آن را به گره خروجی میدهد.

گره میانی گره قبل و بعد خود را میشناسد اما نه پیام را میبیند، نه ما را میشناسد و نه مقصد نهایی پیام را میداند.

گره خروجی با کلید خصوصی خود سومین لایه از رمز را باز کرده و پیام ما را به مقصد نهایی میدهد.

گره خروجی متن پیام را میبیند و مقصد نهایی و گره ماقبل خود را میشناسد. اما مبدا اصلی پیام را نمیشناسد.


ایراد گره خروجی در شبکه تور

سرورهای تور توسط افراد داوطلب به شبکه تور اهدا میشوند.

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

البته اکثر سرورها با این هدف اهدا میشوند که شبکه تور پابرجا بماند و ما از وجود چنین سرویسی بی بهره نمانیم.


ایراد گره خروجی

گفتیم که گره خروجی متن پیام را میبیند! پس گره آخر (اگر گره خبیثی باشد) میتواند پیامهای ما را شنود کند (هرچند ما را نمیشناسد.

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

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

اما اگر ارتباط ما SSL نباشد، ما در معرض شنود گره خروجی قرار داریم. در این وضعیت در شبکه تور مکانیزمی در نظر گرفته شده.

که در هر ۱۰ دقیقه، زنجیرهای که استفاده میکردیم کنار گذاشته شود و یک زنجیره جدید ایجاد شود.

در واقع گرههای ورودی، میانی و خروجی همگی تغییر میکنند. با این مکانیزم، اگر حتی گره خروجی یک گره خبیث باشد، تنها میتواند ۱۰ دقیقه شما را شنود کند.

آیا ما با استفاده از تور از هر نظر امن هستیم؟

پاسخ این سوال یک ”نه“ بزرگ است.

امنیت یک موضوع بسیار وابسته به کاربر هست.

اگر ما از تور استفاده کرده و در جایی خودمان خودمان را معرفی کنیم، این خود ما هستیم که داریم خودمان را از ناشناس بودن خارج میکنیم.

اگر ما افزونه ای در مرورگر خود داریم یا پلاگینی در مرورگر خود داریم (مثل فلش یا جاوا یا فعال بودن اسکریپتها یا کوکیها) که مقصد میتواند از طریق آن به هویت ما پی ببرد.

این ضعف در ابزارهای مورد استفادهی ماست، نه ضعف در شبکه تور!
ما باید ابزارهای خود را هم ایمن کنیم تا بتوانیم سطح امنیت خود را بالا ببریم، هرچند باز هم نه امنیت ۱۰۰!٪
بگذارید یک مثال بزنم:
ما به یک نفر جلیقه ی ضد گلوله میدهیم.

آیا آن شخص در جنگ کاملا ایمن است؟ معلوم است که نه! آن شخص فقط در برابر تعدادی از (نه همه ی) گلوله هایی که به جلیقه اش میخورند ایمن است.

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

جلیقه برای کاری که طراحی شده بسیار هم کارآمد است و درست کار میکند.

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