در دنیای نفوذ وامنیت گمنامی بحث بسیار مهمی می باشد که تکنیک ها و روش های مختلفی ارائه شده اند. یکی از روش گمنامی شبکه های Tor می باشد که امروزه بحثی جالب است. باتوجه به شبکه Tor و امکاناتی که می توان در استفاده از این شبکه داشت بدافزارها ترغیب شده اند تا برای گمنامی خود بدافزارهایشان را برپایه این شبکه ایجاد نمایند. در این مقاله به شبکه های Tor می پردازیم و بررسی بر نحوه کارکرد آن خواهیم داشت.
Tor که مخفف The Onion Router یک نرم افزار و یک شبکه باز است که کاربر را از آنالیزور های ترافیک محافظت می کند. پروژه Tor که در سال ۲۰۰۶ پدید آمد و در واقع نسل دوم از پروژه مسیریابی پیازی از آزمایشگاه تحقیقات نیروی دریایی ایالات متحده محسوب می گردد. هدف اصلی در ابتدا محافظت از ارتباطات دولتی بوده است که امروزه برای اهداف مختلفی توسط افراد مختلفی مورد استفاده قرار می گیرد. همانطور که گفته شد Tor از مسیریابی پیازی استفاده می کند و مبتنی بر لایه های چندگانه امنیتی است، دقیقا همانند پوست پیاز که لایه به لایه است و این لایه های امنیتی یک به یک از پیام های رد وبدل شده در شبکه Tor حذف می گردند.
اما Tor نسبت به بلوکه شدن آسیب پذیر است. بیشتر نودهای Tor در یک دایرکتوری عمومی لیست میشوند، بنابراین برای گردانندگان شبکهها ساده است که به لیست دسترسی یافته و آدرسهای IP نودها را به فیلتر خود اضافه کنند. یک راه برای خلاصی از این نوع بلوکه کردن استفاده از یکی از چندین پل Tor است که نودهای Tor هستند، که برای اجتناب از بلوکه کردن، بصورت عمومی لیست نمیشوند.
گاها بعضی از برنامههایی که از Tor استفاده میکنند امکان دارد گمنام ماندن شما را خدشه دار کنند، همچنین اگر از رمزنگاری اضافه برای حفاظت از ارتباطهای خود استفاده نمیکنید، دادههای شما هنگام رسیدن به آخرین گره Tor در زنجیره (گره خروج) دادههای شما بصورت بالقوه برای صاحب آخرین گره Tor و ISP بین آن گره و سایت وب مقصد شما آشکار خواهد شد.
در تصویر زیر تنها توسط شبکه TOR به اینترنت متصل شده ایم و نحوه ارتباط و داده های رد و بدل شده را می توان مشاهده نمود:
ولی اگر علاوه بر TOR از HTTPS نیز استفاده نماییم (تصویر زیر) تنها سایت مقصد می تواند داده های مارا مشاهده کند که تفاوت آن را با تصویر قبلی می توانید مشاهده کنید:
در واقع این دو تصویر تاثیر شبکه های TOR را بر جاسوسی و جمع آوری اطلاعات توسط NSA را نشان می دهند که براحتی با مقایسه هر دو می توان فهمید که چه اتفاقاتی می افتد. برای استفاده برنامه ها از این شبکه براحتی یک رابط پراکسی SOKCS وجود خواهد داشت و هر برنامه ای که SOCKS (نسخههای ۴، 4A و ۵) را پشتیبانی کند میتواند توسط Tor، گمنامی خود را حفظ نماید.
رله های پلی (یا بطور خلاصه پل ها) رله هایی از شبکه TOR هستند که در دایرکتوری اصلی (و عمومی) معرفی نشده اند. حتی اگر ISP تمامی ارتباطات با رله های شناخته شده TOR را فیلتر کند، احتمالآ قادر نخواهد بود که مانع دسترسی به تمامی پل ها شود.
یک گره TOR به دو صورت ایجاد می شود: یا به صورت گروه خروجی یا به شکل گره واسطه (برخی اوقات به آن گره غیر خروجی نیز می گویند). گره واسطه، ترافیک رمزنگاری شده داده ها را فقط به گره بعدی پاس می دهد، بنابراین به کاربران ناشناس اجازه نمی دهد تا مستقیمآ با وب سایت های خارج شبکه TOR ارتباط برقرار کنند.
در شبکه های امروزی که پکت ها ردوبدل می شوند در هدر آن IP فرستنده نیز مشخص می شود که براحتی می توان فرستنده اطلاعات ردیابی نمود. برای بهبود گمنامیابتدا به دو روش مهم می پردازیم:
- Digital Mixing
- 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.
دیدگاهتان را بنویسید لغو پاسخ