امنیت و نحوه کار در شبکه TOR و مسیریابی پیازی [بخش اول]

در دنیای نفوذ وامنیت گمنامی بحث بسیار مهمی می باشد که تکنیک ها و روش های مختلفی ارائه شده اند. یکی از روش گمنامی شبکه های Tor می باشد که امروزه بحثی جالب است. باتوجه به شبکه Tor و امکاناتی که می توان در استفاده از این شبکه داشت بدافزارها ترغیب شده اند تا برای گمنامی خود بدافزارهایشان را برپایه این شبکه ایجاد نمایند. در این مقاله به شبکه های Tor می پردازیم و بررسی بر نحوه کارکرد آن خواهیم داشت.

Tor که مخفف The Onion Router یک نرم افزار و یک شبکه باز است که کاربر را از آنالیزور های ترافیک محافظت می کند. پروژه Tor که در سال 2006 پدید آمد و در واقع نسل دوم از پروژه مسیریابی پیازی از آزمایشگاه تحقیقات نیروی دریایی ایالات متحده محسوب می گردد. هدف اصلی در ابتدا محافظت از ارتباطات دولتی بوده است که امروزه برای اهداف مختلفی توسط افراد مختلفی مورد استفاده قرار می گیرد. همانطور که گفته شد Tor از مسیریابی پیازی استفاده می کند و مبتنی بر لایه های چندگانه امنیتی است، دقیقا همانند پوست پیاز که لایه به لایه است و این لایه های امنیتی یک به یک از پیام های رد وبدل شده در شبکه Tor حذف می گردند.

index

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

گاها بعضی از برنامه‌هایی که از Tor استفاده می‌کنند امکان دارد گمنام ماندن شما را خدشه دار کنند، همچنین اگر از رمزنگاری اضافه برای حفاظت از ارتباطهای خود استفاده نمی‌کنید، داده‌های شما هنگام رسیدن به آخرین گره Tor در زنجیره (گره خروج) داده‌های شما بصورت بالقوه برای صاحب آخرین گره Tor و ISP بین آن گره و سایت وب مقصد شما آشکار خواهد شد.

در تصویر زیر تنها توسط شبکه TOR به اینترنت متصل شده ایم و نحوه ارتباط و داده های رد و بدل شده را می توان مشاهده نمود:

image2

ولی اگر علاوه بر TOR از HTTPS نیز استفاده نماییم (تصویر زیر) تنها سایت مقصد می تواند داده های مارا مشاهده کند که تفاوت آن را با تصویر قبلی می توانید مشاهده کنید:

image3

در واقع این دو تصویر تاثیر شبکه های TOR را بر جاسوسی و جمع آوری اطلاعات توسط NSA را نشان می دهند که براحتی با مقایسه هر دو می توان فهمید که چه اتفاقاتی می افتد. برای استفاده برنامه ها از این شبکه براحتی یک رابط پراکسی SOKCS وجود خواهد داشت و هر برنامه ای که SOCKS (نسخه‌های 4، 4A و 5) را پشتیبانی کند می‌تواند توسط Tor، گمنامی خود را حفظ نماید.

 

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

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

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

  1. Digital Mixing
  2. Anonymizing Proxies

  • Digital Mixing

در اوایل دهه هشتاد David Chaum اصل Digital Mixes را بوجود آورد ( گاها شبکه های ترکیبی – Mixed network – نامیده می شود ) که طرح نمودن آن برای سطح بالاتری از گمنامی از ارتباطات شخصی است. Digital mixing همانند روندمسیریابی است ولی لایه های دیگر بین فرستنده و گیرنده به آن اضافه می کند شکل زیر نشان می دهد که چگونه با استفاده از رمزنگاری کلید عمومی این عمل انجام می شود.

img4

در شکل زیر می بینیم که Alice می خواهد پیامی به Bob ارسال کند بدون آنکه شخص سومی بتواند تشخیص دهد مبدا ارسال اطلاعات کجا بوده است. ابتدا پیام 3بار توسط رمزنگاری کلید عمومی رمز می شود. بعداز ارسال اطلاعات به اولین سرور پروکسی اولین لایه حذف می شود و اطلاعات به دومین سرور پروکسی ارسال خواهد شد

image5

بطور خلاصه می توان گفت این عمل مانند این است یک نامه در چند پاکت احاطه گردد و برروی هر پاکت چنین متنی نوشته شود: “پاکت را پاره کنید و بسته را دوباره ارسال کنید”.

  • Anonymizing Proxies

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

img6

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

مسیریابی پیازی با TOR

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

image7

نود ورودی نیز یک ارتباط رمزنگاری شده با نود دوم که آن هم بصورت رندوم انتخاب می شود برقرار نموده  و نود دوم نیز همین کار را برای اتصال به نود سوم انجام می دهد. نود سوم بایستی نزدیکترین به مقصد یعنی Bob باشد که به نود سوم، گره خروجی نیز می گوییم. هرگره Tor بطور تصادفی از لیست انتخاب می شوند، بااین حال یک نود نمی تواند دوبار در یک ارتباط مورد استفاده قرار گیرد و بسته به تراکم داده ها بعضی گره ها نیز مورد استفاده قرار نمی گیرد. لیست نودها توسط مشتری و هچنین خود نودها دریافت می شود که بدین صورت باعث افزایش یک سطح بیشتر برای گمنامی و هرچه بیشتر باعث گمنامی خواهد شد. Tor با TCP کار می کند و هربرنامه ای که از SOCKS پشتیبانی کند می تواند از آن استفاده نماید.

image8

بخاطر اینکه همیشه یک مسیر نداشته باشیم هر ده دقیقه نود ورودی تغییر می کند که درغیراینصورت در برابر ردیابی آسیب پذیر خواهیم بود.

image9

افزایش گمنامی با ایفا کردن نقش یک نود در شبکه Tor بیشتر خواهد شد. همانطور که گفته شد نودهای Tor عمومی هستند پس اگر Alice بخواهد یک نود باشد در گمنامی اش تاثیری ندارد، اما این مفهموم نیز نمی تواند درست باشد. Tor این امکان را می دهد تا کاربران مکان خود را پنهان کنند درحالی که خدماتی را در Tor ارائه می دهند می توانند یک سایت راه اندازی کنند بدون آنکه نگران محدودیت ها باشند.

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

در مرحله دوم یک بسته که باعث توصیف و معرفی او می باشد ایجاد نموده که شامل Introduction Points و Public Key است و توسط Private Key خود آن را sign نموده است سپس آن را به دیتابیس ارسال می کند. برقراری ارتباط با سرویس پنهان توسط کاربران می تواند با درخواست بصورت XYZ.onion که XYZ یک متن 16 کارکتری است و از کلید عمومی سرویس پنهان بدست می آید صورت پذیرد. بعد از این مرحله دیگر سرویس پنهان شروع به کار می کند. اگر چه ممکن است استفاده از یک نام بصورت اتوماتیک ایجاد شده غیرعملی بنظر برسد. در برخی بدافزار ها مخصوصا کیلاگر ها مشاهده می کنیم که لاگ خود را به سایتی به صورت XYZ.onion ارسال می کنند.

image10 

گام سوم: کلاینت ها می خواهند با سرویس های پنهان ارتباط برقرار کنند. ابتدا می بایست آدرس های onion را یاد بگیرند، بعد از آن با ایجاد یک ارتباط می تواند جدول توضیحات را دانلود نماید. اگر برای سرویس پنهان شده توضیحاتی وجود داشته باشد می تواند از Introduction Points و کلید عمومی برای ارتباط با آن استفاده نمود. این سرویس می تواند آنلاین باشد و یا خیلی وقت شبکه را ترک نموده و یا حتی در آدرس آن اشکال تایپی رخ داده باشد. در این زمان کلاینت می بایست یک جریان اطلاعاتی با یک رله رندوم ایجاد نماید و از آن درخواست کند تا بعنوان یک میعادگاه یا همان Rendezvous Point (نود ارتباطی بین کاربر و سرویس پنهان) عمل نماید.

image11

گام چهارم: Rendezvous Point در جدول توصیف مشخص شده است، حال کلاینت یک پیام ابتدایی جهت برقرار ارتباط ایجاد نموده و با کلید عمومی سرویس پنهان رمزنگاری می کند که شامل RP (Rendezvous Point) و یک کوکی می باشد. کوکی تنها جنبه Authenticate را دارد که RP مطمئن شود در آنطرف ارتباط Bob واقعی وجود دارد. سپس پیام ابتدایی ایجاد شده را به Introduction Points ارسال می کند و یک جریان اطلاعاتی Tor برقرار می گردد و کسی نمی تواند پیام ابتدایی را برای سرویس پنهان ارسال کند که بازهم سرویس پنهان باقی مانده است.

image12

گام پنجم سرویس پنهان پیام ابتدایی را توسط کلید خصوصی رمزگشایی می نماید و RP را بدست می آورد، کوکی را به  آن ارسال خواهد نمود و جریان ارتباطی Tor ایجاد می کند. نکته مهم اینجاست که سرویس پنهان با رله های ارتباطی که نگهبان او هستند در ارتباط خواهد بود در غیر اینصورت نفوذگر می تواند با ایجاد رله خود در شبکه و سرویس پنهان را مجبور ساز تا چندین جریان ارتباطی Tor را داشته باشد و به این امید که نود تحت کنترل نفوذگر بعنوان گره ورودی انتخاب شود و با استفاده از Timing Analysis سرویس پنهان را کشف و IP آن رابدست آورد، این حمله توسط Øverlier and Syverson در مقاله خود به نام Locating Hidden Servers ارائه نموده اند [1] .

image13 

و در آخر هردوتوسط RP بعنوان یک رله ساده به تبادل اطلاعات می پردازند. تنها دلیلی که از Introduction ها استفاده نشده به این خاطر است که رله های مسئول یک سرویس مخفی مشخص نگردند و هیچگاه RP از سرویس پنهان متوجه نخواهد شد که درواقع ارتباط بین کلاینت و سرویس پنهان شامل 6 تا رله است که 3 تا توسط کلاینت انتخاب میگردد که سومین RP است و 3تای دیگر توسط سرویس پنهان، در انتها ارتباطی بدین صورت خواهند داشت :

image14

Tor ارتباط های relay-to-relay را رمزنگاری می کند اما Proxy Chain ارتباط را بین چندین پراکسی وب رد و بدل می کند و ارتباط بین آنها رمزنگاری نمی شود.

در بخش دوم از مقاله چگونگی کار و امنیت در شبکه TOR و مسیریابی پیازی به مباحث امنیتی و برخی حملات و همچنین نحوه کد نویسی برای کنترل و مدیریت Tor به زبان پایتون خواهیم پرداخت.

موفق و موید باشید.

———————————————————————

[1] L. Øverlier and P. Syverson. Locating Hidden Servers. In Proceedings of the 2006 IEEE Symposium on Security and Privacy, May 2006.

AHA

قطره ای از دریای بیکران IT

More Posts

9 thoughts on “امنیت و نحوه کار در شبکه TOR و مسیریابی پیازی [بخش اول]”

  1. سلام من برای استفاده بهتر و مفیدتر از تور نیاز به کمک دارم اما هیچ جا مطلب صریحی دیده نمیشه .
    برای امنیت بالا تر، در همان ابتدای نصب تور باید چه تنظیماتی را انجام دهم؟ تنظیمات مربوط به پروکسی و پل و غیره …
    بیشترین امنیت در زمینه ناشناس رو لازم دارم اما سردرگم شدم.
    لینک مفیدی در اختیارم بگذارید- ترجیحا در ایمیل. ممنون

    1. سلام.
      توی گوگل سرچ کنید خیلی مطلب در مورد نحوه استفاده از Tor براتون میاد. هدف بررسی امنیت و آشنایی با این نوع شبکه ها بوده است نه نحوه عبور از فیلترینگ.

    2. مطلب کاملا مفید و صریح بود اگر متوجهش بشید شما برای این کارا که گفتی تور یک سری گزینه ها داره که تو گوگل پیداشون کن ولی بازم حد ناشناس بودنت از الگریتم های تور خارج نمیشه فقط یک سری دسترسی هارو میبندی فقط برا ناشناس بودن تا حد زیادی میتونی بری دنبال Digtal Mixing بجای این ک دونبال لقمه جویده شده باشیم با اطلاعاتی که موجود هست بهره ی خوبی میشه برد .
      شما بهتر است چند الگو مختلف رمزنگاری رو استفاده کنید که تا از چند مسیر بگذرید و دیوار های محکم تری پدید بیارید

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *