برای طرح سوال و دسترسی به آموزش ها  کانال ما در تلگرام بپویندید  

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

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

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

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

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

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

image2

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

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

 

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

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

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

  1. Digital Mixing
  2. Anonymizing Proxies

  • Digital Mixing

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

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

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

  • Anonymizing Proxies

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

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

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

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

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

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

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

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

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

 

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

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

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

 

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

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

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

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

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

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


انتشار

در

,

توسط

نظرات

23 پاسخ به “امنیت و نحوه کار در شبکه TOR و مسیریابی پیازی [بخش اول]”
  1. سلام،
    خواستم بگیرم مطلبو ولی نشد،البته خسته م کمی!
    اون دوتا شکل اولی هم تفاوتی بینشون نیست(مورد HTTP و HTTPS).

    1. Mahdiam

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

    2. mohammad

      تو نوشته هاش تفاوت داره

  2. mojtaba

    salam bakhshe dovom ro az koja meshe did
    mamnon

  3. ali

    salam aya hamon toor ke etelaate ma az nod haye tor obor mikone aya aoutomat ma ham nod mishavim va etelaate digran ham az computer ma obore mikoe?

    1. AHA

      سلام. خیر دوست عزیز. برای اینکار بایستی بصورت Relay عمل نماییم.

  4. kian

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

    1. AHA

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

    2. Cmd.exe

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

  5. Hamed

    با این روش لاگ مربوط به بازدید از سایت ها توسط کاربران در نرم افزار ibsng سرویس دهنده اینترنتی قابل مشاهده است؟

    1. ‌A1Gard

      خیر غیر قابل مشاهده است لذا از مبدا تور رمزنگاری شروع میشود

  6. pk

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

    این اطلاعات و فعالیت های جست و جو شده ما با TOR از دید میزبان اینترنت مثلا شاتل هم مخفی می ماند یا قابل رویت است؟

    ممنون

    1. AHA

      سلام. بطور پیش فرض و کانفیگ صحیح و به روز tor جواب هر دو سوال شما بله است.

      البته شاید کمی به مشکل برخورد کنید مثلا گوگل برای احرازهویت از شما بخواهد که یک کپچا را حل کنید و یا برخی از سایت ها به شما سرویس دهی نکنند و آن هم به دلیل بلاک شدن tor exit node است.

      موفق باشید.

      1. a&f

        سلام.من نرم افزار تور رو میخوام چطور باید بگیرم.از هیچ سایتی نمیشه دان کرد واسه فیــ-ـلترینگ

        1. ‌A1Gard

          سایت اصلیش بهترین سایت هستش:

          https://www.torproject.org/download/download-easy.html.en

  7. علیرضا

    سلام تو همه سایت ها فقط نحوه اتصال پل ها برای ویندوز کامپیوتر هستش. برای اندروید میتونین راهنمایی ای بکنین ؟

  8. علیرضا

    با bridgeهایی که از سایت tor گرفتم نمیدونم باید چکار کنم

    1. AHA

      سلام.

      سایت torproject بخشی برای Android داره که Tor on Android سرچ کنین براتون میاد.

      بایستی bridge ها رو توی تنظیمات ست کنین.

  9. مجتبی

    سلام دوست عزیز چطور از دیپ وب استفاده کنم؟ پولیه؟ یا با فیلترشکن باید رفت؟ مرورگر پیازم نصب کردم ولی نمیدونم چطور استفاده کرد و قضیش چیه!!

  10. سلام من هم میخام بیام

    1. HamiD

      سلام.

      کجا؟

  11. نادر

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

دیدگاهتان را بنویسید

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