مسیریابی پیازی تکنیکی برای ارتباط ناشناس از طریق یک شبکه کامپیوتری است. در یک شبکه پیاز، پیام ها در لایه های رمزگذاری، مشابه لایه های پیاز، محصور می شوند.
مجموعه وسیعی از اقدامات پیشگیرانه و بهترین شیوه ها برای ایمن تر و ایمن تر کردن مرور وب برای کاربران وجود دارد. فرض کنید یک درخواست HTTPS را به یک سرور ارسال می کنید و شخصی آن درخواست را رهگیری می کند، اما آن شخص نمی تواند بداند که آن پیام چه می گوید زیرا رمزگذاری شده است. اما شما هنوز از این سطح امنیت راضی نیستید و میخواهید این را به سطح بعدی ببرید، یعنی حتی نمیخواهید کسی که در شبکه شما خروش میکند بداند با کدام سرور تماس میگیرید و آیا درخواستی دارید یا خیر. اینجاست که مسیریابی پیاز وارد می شود.
برنامه مسیریابی پیاز شامل مطالعاتی است که به بررسی، طراحی، ساخت و تجزیه و تحلیل شبکه های ارتباطی ناشناس می پردازد. تمرکز بر راه حل های واقع بینانه برای اتصالات مبتنی بر اینترنت با تأخیر کم است که می تواند در برابر تجزیه و تحلیل ترافیک، استراق سمع و سایر حملات از سوی افراد خارجی (مانند روترهای اینترنتی) و خودی ها (مانند هکرها) (خود سرورهای Onion Routing) مقاومت کند. Onion Routing چه کسی با چه کسی در ارتباط است را از رسانه حمل و نقل پنهان می کند. شبکه فقط می داند که ارتباط برقرار است. علاوه بر این، تا زمانی که انتقال از شبکه OR خارج شود، محتوای مکالمه از دید شنود کنندگان پنهان می ماند.
مسیریابی پیاز چگونه کار می کند؟
اگر در حال مرور اینترنت در یک مرورگر وب معمولی مانند کروم، فایرفاکس و غیره هستید، با درخواست ساده GET بدون هیچ واسطه ای، صفحات وب را درخواست می کنید. این فقط یک اتصال واحد بین یک کلاینت و یک سرور است و کسی که در شبکه شما خروش می کند می تواند بداند که رایانه شما با کدام سرور تماس می گیرد.
*مسیریابی پیاز این کار را متفاوت انجام می دهد. در مسیریابی پیاز، ارتباط بین گرههای مختلف حفظ میشود، یعنی اتصال از یک سرور به سرور دیگر میرود و زمانی که به آخرین سرور در این مدار میرسد، سروری است که ما میخواستیم با آن تماس بگیریم و درخواست ما را پردازش میکند و به ما سرویس میدهد. صفحه وب که با استفاده از همان شبکه گره ها برای ما ارسال می شود.
حالا باید فکر کنید که چرا به آن روتر پیاز می گویند. به این دلیل است که پیامی که ارسال میکنیم و پاسخهایی که دریافت میکنیم با کلیدهای مختلف رمزگذاری میشوند، با یک کلید منحصر به فرد برای رمزگذاری برای هر پرش یا بازدید سرور مختلف.
* کلاینت به همه کلیدها دسترسی دارد اما سرورها فقط به کلیدهای مخصوص رمزگذاری/رمزگشایی آن سرور دسترسی دارند.
از آنجایی که این فرآیند پیام شما را زیر لایههایی از رمزگذاری میپیچد که باید در هر پرش مختلف مانند پیاز جدا شوند، به همین دلیل است که به آن روتر پیاز میگویند.
حالا فرض کنید در حال مرور اینترنت با استفاده از Tor (روتر پیاز) هستید که یک مرورگر ویژه است که به شما امکان می دهد از روترهای پیاز استفاده کنید. شما می خواهید به YouTube دسترسی داشته باشید اما در چین زندگی می کنید و از آنجایی که YouTube در چین ممنوع است، نمی خواهید دولت شما بداند که شما از YouTube بازدید می کنید، بنابراین تصمیم می گیرید از Tor استفاده کنید. رایانه شما برای دریافت صفحه اصلی YouTube باید با سرور خاصی تماس بگیرد، اما مستقیماً با آن سرور تماس نمی گیرد. این کار را از طریق 3 گره/سرور/روتر (این سرورها در سراسر جهان توسط داوطلبان نگهداری میشوند) قبل از آن سرور انجام میدهد تا هیچکس نتواند مکالمه شما را با آن سرور ردیابی کند. برای ساده کردن این مثال، من از 3 گره استفاده می کنم، اما یک شبکه Tor واقعی می تواند صدها گره در بین آنها داشته باشد.
1- مشتری با دسترسی به تمام کلیدهای رمزگذاری مانند کلید 1، کلید 2 و کلید 3 پیام (دریافت درخواست) را سه بار رمزگذاری می کند و آن را در زیر 3 لایه مانند پیاز می پیچد که باید هر بار پوست کنده شود.
2- این پیام رمزگذاری شده سه گانه سپس به سرور اول یعنی گره 1 (گره ورودی) ارسال می شود.
3- حال Node 1 فقط آدرس Node 2 و Key 1 را دارد. بنابراین پیام را با استفاده از Key 1 رمزگشایی می کند و متوجه می شود که معنی ندارد زیرا هنوز 2 لایه رمزگذاری دارد بنابراین آن را به Node 2 ارسال می کند.
4- گره 2 دارای کلید 2 و آدرس گره های ورودی و خروجی است. بنابراین پیام را با استفاده از کلید 2 رمزگشایی می کند و متوجه می شود که هنوز رمزگذاری شده است و آن را به گره خروج ارسال می کند.
5- گره 3 (گره خروج) آخرین لایه رمزگذاری را جدا می کند و یک درخواست GET برای youtube.com پیدا می کند و آن را به سرور مقصد ارسال می کند.
6- سرور درخواست را پردازش می کند و صفحه وب مورد نظر را به عنوان پاسخ ارائه می دهد.
7- پاسخ از همان گره ها در جهت معکوس عبور می کند که در آن هر گره با استفاده از کلید خاص خود یک لایه رمزگذاری قرار می دهد.
8- در نهایت در قالب یک پاسخ رمزگذاری شده سه گانه به مشتری می رسد که می تواند رمزگشایی شود زیرا مشتری به تمام کلیدها دسترسی دارد.
تصور کنید که در اولین اتصال یک sniffer در حال گوش دادن باشد (کلاینت - گره ورودی) تنها چیزی که می تواند بداند آدرس گره ورودی و یک پیام رمزگذاری شده سه بار است که معنی ندارد. بنابراین همه مهاجمان/هیجانبازان میدانند که شما در حال مرور tor هستید.
به طور مشابه، اگر sniffing از گره خروجی شروع شود، تمام چیزی که sniffer می بیند سروری است که با سرور دیگری تماس می گیرد اما نمی تواند مشتری یا منبع درخواست ایجاد شده را ردیابی کند.
اما اکنون ممکن است فکر کنید که اگر کسی در Node 2 به آن گوش می دهد، آدرس ورودی و خروجی را می داند و می تواند مشتری و سرور مقصد را ردیابی کند. اما این به این سادگی نیست، هر یک از این گره ها صدها اتصال همزمان دارند، و دانستن اینکه کدام یک به منبع و مقصد مناسب منتهی می شود، به این آسانی نیست. در مدار ما، Node 2 یک گره میانی است، اما میتواند بخشی از مدار دیگری در یک اتصال متفاوت باشد که در آن به عنوان گره ورودی درخواستها یا یک گره خروجی عمل میکند که صفحات وب را از سرورهای مختلف ارائه میکند.
تنها نقص امنیتی در مسیریابی پیاز این است که اگر شخصی همزمان در حال گوش دادن به سرور باشد و با تجزیه و تحلیل طول و فرکانس، درخواست در مقصد را با درخواستی که توسط یک کلاینت در طرف دیگر شبکه ارائه شده مطابقت دهد. کاراکترهای یافت شده در درخواست یا پاسخ رهگیری شده در سرور مقصد و استفاده از آن برای مطابقت با همان درخواست ارائه شده توسط مشتری در کسری از ثانیه (مهر زمانی روی درخواست ها و پاسخ ها نیز می تواند در استنتاج آن مفید باشد) و سپس ردیابی آنها را پایین می آورند و از فعالیت آنلاین آنها اطلاع دارند و ایده ناشناس بودن را از بین می برند. انجام این کار بسیار سخت است اما غیرممکن نیست. اما حذف این نقص از Tor عملاً غیرممکن است.