شبکه Onion Router یا به اختصار شبکه OR یک تکنیک ارتباطی برای مخفی ماندن و سری ماندن در یک شبکه است. نرم افزار و شبکه Tor در واقع یک پیاده سازی برای Onion Routing است.

امنیت در شبکه Onion به این صورت تامین می‌شود که سعی بر این است که فعالیت شما و ارتباط شما سری و مخفی بماند.

دلیل نام گذاری این نوع شبکه به Onion Routing (شبکه پیازی) این است که کارکرد این شبکه مانند پوست کندن پیاز است، و پیام شما در مرکز پیاز مخفی شده است.

شبکه پیازی

در این شبکه هر Node یک پوست از این پیاز را می‌کند تا این که به مرکز پیاز برسیم.

سوال: تفاوت Tor با نرم افزارهای معمول پروکسی چیست؟

در نرم افزارها و شبکه‌های پروکسی شما به یک سرور متصل می‌شوند که اطلاعات را با واسطه به شما می‌رسانند، که این اطلاعات الزاما رمز نگاری نمی‌شوند، اما در شبکه Onion شما با یک سرور سروکار ندارید بلکه با تعداد بالایی سرور سروکار دارید. در شبکه Tor که یک پیاده سازی مستقل از Onion Routing است شما با سه سرور ارتباط دارید، بنابراین پیام شما سه بار رمز می‌شود.

Entry Node و Exit Node و Bridge Node و Relay Node در شبکه Onion Routing:

وقتی به شبکه Onion وصل می‌شوید، اولین ارتباط شما با Entry Node و یا Guard برقرار می‌شود. Exit Node نیز آخرین نود ارتباطی شما در این شبکه است. Relay Node نیز نودهای متعدد داخل شبکه هستند که از چند عدد تا چند صد عدد می‌توانند متعدد باشند.

دیاگرام شبکه تور

دسترسی به نام تمام نودها در شبکه امکان پذیر است به همین دلیل امکان فیلتر کردن شبکه پیازی بسیار بالا است. برای حل این مشکل می‌توان از Bridge Node استفاده کرد. در واقع Bridge Node یک نود است که مانند دیگر نودها قابل دسترس نیست و می‌توان به صورت مخفی و انحصاری آن را دریافت و استفاده کرد.

مراحل استفاده از شبکه Onion

غیر از IP نودها، Public Key هر نود نیز در لیست دریافتی از شبکه پیازی وجود دارد.

پس از نصب و اجرای نرم افزار کلاینت Tor روی دستگاه لیستی از دایرکتوری نود‌ها توسط نرم افزار دریافت و چند نود را از بین حجم زیاد نودها به صورت تصادفی و یا غیر تصادفی انتخاب می‌شود.

در شبکه تور 3 نود انتخاب می‌شوند، این سه نود باز به صورت تصادفی به سه قسمت Entry و Exit و Relay نام گذاری می‌شوند و در اصطلاح Chaine ساخته می‌شود.

نودهای شبکه Tor مجموعه‌ای منسجم و گسترده از سرورهای داوطلب هستند که همگی با هم امکان عملی کردن این ایده امنیتی را فراهم می‌کنند، حتی شما نیز می‌توانید سیستم خود را به عنوان یک Relay نود در شبکه Tor عضو کنید.

نحوه ارتباط در شبکه تور به این نحو است که شما با کلید عمومی خود به این شبکه وصل می‌شوید، و در هنگام اتصال به نود دیگر یک کلید انحصاری متقارن بین شما و نود دوم تبادل می‌یابد کل پیام با آن کلید رمز می‌شود، به نود وسط وصل شده و کل پیام مانند مرحله قبل رمز شده و در مرحله سوم نیز کل پیام‌ها برای بار سوم با یک کد دیگر کد می‌شود. (البته این عملیات از آخر به اول انجام می‌پذیرد یعنی پیام ابتدا با Secret Key نود Exit کد می‌شود و در نهایت به نود Entry می‌رشد). بنابر این در این شبکه داریم:

  • نود Entry شما را می‌شناسد ولی متن پیام برایش نا مفهوم است
  • نود Relay نه شما را می‌شناسد نه متن پیام برایش مفهوم است
  • نود Exit شما را نمی‌شناسد ولی متن پیام برایش قابل فهم است

سوال: چه کسانی امکان مشاهده پیام شما را می‌تواند ببیند؟

  1. نود Exit
  2. دریافت کننده پیام نهایی
  3. خود شما

نکته: اگر از HTTPS استفاده کنید Exit نود نیز نمی‌تواند پیام شما را بخواند.

در شبکه پیازی بدلیل عدم پایداری نودها امکان دارد هر نودی در هر لحظه از دست رفته و با یک نود دیگر جایگزین شود. غیر از این مورد مثلا در سیستم Tor این کار به صورت الزامی هر 10 دقیقه یکبار تکرار می‌شود و تمام نودها از اول انتخاب و جایگزین نودهای قبل می‌شوند.

نظر جالب بنیاد EFF در مورد امنیت Tor و HTTPS

بنیادی EFF بنیادی تحقیقاتی در زمینه علوم امنیتی در فضای مجازی است. این بنیاد تحقیقات گسترده‌ای در زمینه نحوه رسیدن به امنیت در سیستم‌ها انجام داده است. در پایین خلاصه‌ای از یکی از مقالات این بنیاد در مورد امنیت سیستم با حضور Tor و HTTPS با کمک تصاویر می‌بینید: (با کلیک روی تصویر، تصویر با کیفیت تر را ببینید)

اینترنت بدون Tor و https

تصویر فوق شبکه‌ای است که در آن نه از Tor استفاده شده است و نه از HTTPS. تعداد افرادی که قادر به شنود اطلاعات هستند در عکس مشخص است.

در تصویر زیر امنیت سرویس با وجود HTTPS و Tor نمایش داده شده است: (با کلیک روی تصویر، تصویر با کیفیت تر را ببینید)

تور

یک نقطه آسیب پذیری در شبکه Tor:

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

سرویس‌های مخفی Tor:

اکنون به جذاب ترین بخش آشنایی با سرویس Tor رسیدیم. در شبکه Tor امکانی وجود دارد که بتوان سایت‌های مخفی بوجود آورد. براورد کاملی از سایت‌های مخفی وجود ندارد ولی برخی از متخصصان اعتقاد دارند حجم محتوای مخفی اینترنت بسیار بیشتر از حجم محتوای ظاهری آن است:

سایت‌های مخفی اینترنت

سایت‌های مخفی در Onion Network کاملا پنهان هستند. هم خود سایت هم بازدید کنندگان سایت غیر قابل یافتن هستند. این سرویس‌ها گاهی باعث بوجود آمدن سایت‌هایی بسیار نامناسب و غیر قانونی شده اند که راه مقابله ساده‌ای با آن‌ها وجود ندارد.

آدرس این سرویس‌ها به صورت یک رشته 16 کاراکتری با پسوند .onion است.

پروتکل rendezvous در شبکه

این پروتکل در صورتی محقق می‌شود که دو نفر کاملا ناشناس با هم ملاقات کنند. مثلا شما یک IP داینامیک دارید و می‌خواهید با سرویسی با IP داینامیک مرتبط شوید.

Introduction Point در شبکه پیازی

در شبکه پیازی برای ایجاد یک سرویس مخفی سه نود به صورت تصادفی انتخاب می‌شوند که به آن ها Introduction Point گفته می‌شود. این Point‌ها با Public Key سرویس مخفی ارتباط بر قرار می‌کنند. نکته جالب در باره این Point‌ها این است که این Point‌ها نیز مانند نودهای شبکه از موقعیت واقعی سرویس مخفی اطلاعی ندارند.

بعد از انتخاب Introduction Point‌ها Hidden Service یک Service Descriptor ایجاد می‌کند که شامل مشخصات Introduction Point‌ها به علاوه Public Key سرویس مخفی است.

در شبکه پیازی یک Distributed hash Table وجود دارد که شناسه 16 کاراکتری و Public Key سرویس‌های مخفی را در خود نگه می‌دارد، تا بتواند درخواست‌های کاربران را برای دستیابی به اطلاعات سرویس‌های مخفی هدایت کند.

توجه کنید که حتی درخواست دسترسی به اطلاعات این Distributed hash Table نیز در چرخه نودها هش می‌شود.

سوال: چرا نام به اصطلاح دامنه‌های سرویس‌های Onion Network به صورت 16 کاراکتری هستند؟

جواب: برای ساخت نام دامنه در شبکه باید آدرس Public Key سرور در SHA1 وارد شود که نصف کاراکترها همان شناسه یا نام دامنه است. بنابر این رشته دسترسی به سرویس مخفی رشته‌ای 16 کاراکتری از اعداد 1 تا 7 و حروف a تا z هستند. چون سرویس‌های مخفی در شبکه تور مخفی هستند نمی‌توان از نام‌های معمولی استفاده کرد، چون حتی نام‌ها نیز مخفی هستند و با وجود استفاده از Public Key برای ساخت رشته دسترسی به سرویس مخفی امکان ایجاد دو سرویس مخفی با یک رشته وجود ندارد.

سوال: فیس بوک در شبکه Tor سایتی به آدرس facebookcorewwwi.onion دارد، این آدرس را چگونه بوجود آورده است؟

داشتن یک آدرس با معنی یعنی شکستن امنیت public key ها، اگر الگوریتم public key‌ها بشکند می‌توان کل سرویس‌های مخفی شبکه Tor را غیر فعال کرد. کافی است فقط بتوان با وجود آدرس سرویس مخفی به Public Key دسترسی پیدا کرد و با اختصاص آن به یک سرور دیگر سرویس مخفی مورد نظر را از کار انداخت. ولی باید در پاسخ این سوال گفت فیس بوک در بدست آوردن این رشته تنها بسیار خوش شانس بوده است!

البته ابزارهایی نیز وجود دارند که تا حدودی برای این کار می‌توانند به شما کمک کنند ولی دست یافتن به Public Key‌ای که در نهایت شما را به هر رشته‌ای برساند کاملا غیر ممکن است. ذکر این نکته کافی است که برای یافتن 14 رشته از 16 رشته آدرس سرویس مخفی با یک پردازنده 1.5 GHz‌ای نیاز به 2.6 میلیون سال دارید.

ابزارهایی که برای یافتن public key تا حدودی قابل فهم وجود دارند عبارتند از:

Shallot: این ابزار با کمک CPU سعی در یافتن Public Key مورد نظر دارد. مثلا برای یافتن رشته‌ای 16 کاراکتری که با onion شروع شود 22204717 حالت جستجو شده است.

Scollion: این ابزار بر خلاف Shallot از GPU برای یافتن Public Key مورد نظر استفاده می‌کند.

Eschalot: این ابزار که گفته می‌شود فیسبوک نیز از آن بهره برده است، حجم بسیار گسترده‌ای از کلمات را به عنوان یک کتابخانه گرفته و سعی می‌کند Public Key ای را بیابد که کلمات موجود در کتابخانه خود را داشته باشد.

آیا تا کنون Hidden Services‌ها هک شده اند؟

بله! نودهای شبکه Tor با استفاده از یک مرورگر وارد شبکه می‌شوند، گفته می‌شود با یک باگ در این مرورگر پلیس FBI توانست تعداد زیادی از افراد را در ارتباط با این سرویس‌های مخفی دستگیر کند.

اگر سوال یا نظری در مورد شبکه تو و یا سرویس‌های مخفی شبکه تور دارید خوشحال می‌شویم در بخش نظرات با هم در ارتباط باشیم.

تگ ها: رمز نگاریهکتور