IRCNF

BGP ۳۵ ساله است و هنوز اینترنت را سرپا نگه داشته است — دلیل مشکل‌آفرینی آن در اینجاست

اشتراک‌گذاری:
BGP ۳۵ ساله است و هنوز اینترنت را سرپا نگه داشته است — دلیل مشکل‌آفرینی آن در اینجاست

در سال ۱۹۸۹، دو مهندس در یک جلسه یک پروتکل مسیریابی را روی دستمال کاغذی ترسیم کردند. این پروتکل — پروتکل دروازه مرزی یا BGP — قرار بود راه‌حلی سریع برای مشکل رو به رشد چگونگی اطلاع‌رسانی شبکه‌های مستقل به یکدیگر درباره مسیر ارسال ترافیک باشد. این پروتکل کاربردی، عمل‌گرا و تقریباً کاملاً بدون امنیت بود. اکنون، برای ۳۵ سال است که پایه و اساس اینترنت جهانی بوده است.

BGP نرم‌افزاری نیست که بیشتر مردم با آن تعامل داشته باشند. این پروتکلی است که بین مسیریاب‌های لبه هر شبکه بزرگ — هر ارائه‌دهنده خدمات اینترنت، هر ارائه‌دهنده ابر، هر شرکتی با فضای آدرس IP خود — اجرا می‌شود. هنگامی که یک صفحه وب بارگذاری می‌کنید، BGP تضمین می‌کند که درخواست شما از طریق توالی درست شبکه‌ها به سرور مناسب برسد. بدون آن، اینترنت مجموعه‌ای از جزایر منزوی است. با آن، یک فضای آدرس واحد قابل دسترسی با حدود ۴.۳ میلیارد آدرس IPv4 است.

BGP چگونه واقعاً کار می‌کند

اینترنت به سیستم‌های خودمختار (AS) سازماندهی می‌شود — شبکه‌های مستقلی که توسط یک سازمان واحد اداره می‌شوند. ISP شما یک AS است. Amazon Web Services یک AS است. یک دانشگاه با زیرساخت شبکه خود یک AS است. هر AS یک شماره (ASN، که توسط ثبت‌های منطقه‌ای اینترنت اختصاص داده می‌شود) و مجموعه‌ای از پیشوندهای IP — محدوده آدرس‌هایی که کنترل می‌کند — دارد.

BGP پروتکلی است که ASها برای اعلام پیشوندهای خود به همسایگانشان و یادگیری مسیرهای یکدیگر استفاده می‌کنند. هنگامی که AS-A می‌خواهد به یک پیشوند متعلق به AS-Z برسد، به زنجیره‌ای از اعلام‌های BGP متکی است: مسیریاب AS-A می‌داند که AS-B مسیری به AS-Z دارد، AS-B می‌داند که AS-C دارد، و به همین ترتیب. این پروتکل بر پایه اعتماد ساخته شده است: هنگامی که یک AS اعلام می‌کند «من مسیری به این آدرس‌های IP دارم»، ASهای همسایه آن اعلام را می‌پذیرند و آن را بیشتر منتشر می‌کنند. هیچ تأیید رمزنگاری وجود ندارد. هیچ مرجع مرکزی وجود ندارد. اگر یک AS پیشوندی را اعلام کند که متعلق به آن نیست، اعلام به صورت جهانی منتشر می‌شود.

این یک ربودن مسیر BGP است. و این به طور منظم اتفاق می‌افتد.

شکست‌های مشهور

در سال ۲۰۱۰، China Telecom حدود ۱۵٪ از مسیرهای اینترنت جهانی را برای حدود ۱۸ دقیقه از طریق شبکه خود اعلام کرد. ترافیک مقصد سایت‌های نظامی ایالات متحده، Dell، IBM و صدها سازمان دیگر به طور موقت از زیرساخت چین عبور کرد. این حادثه احتمالاً تصادفی بود — یک پیکربندی نادرست به جای رهگیری عمدی — اما مقیاس آسیب‌پذیری را نشان داد.

در سال ۲۰۱۹، یک ارائه‌دهنده خدمات اینترنت کوچک در پنسیلوانیا به طور تصادفی ۲۰۰۰۰ مسیر را اعلام کرد که متعلق به آن نبود و باعث شد ترافیک Amazon، Cloudflare، Facebook و بسیاری دیگر از طریق شبکه‌ای با ظرفیت ناکافی مسیریابی شود. نتیجه: کندی و قطعی گسترده که میلیون‌ها کاربر را برای چندین ساعت تحت تأثیر قرار داد.

در سال ۲۰۲۱، خطای پیکربندی BGP خود Facebook — همراه با یک خرابی DNS — تمام سرویس‌های Facebook (Facebook، Instagram، WhatsApp) را برای شش ساعت کاملاً از دسترس خارج کرد. برداشت (withdrawal) پیشوندهای BGP Facebook به این معنی بود که حتی اگر DNS کار می‌کرد، ترافیک نمی‌توانست به زیرساخت آنها برسد. بازگرداندن سرویس نیازمند دسترسی فیزیکی مهندسان به سخت‌افزار مرکز داده بود زیرا ابزارهای مدیریت از راه دور معمولی نیز نمی‌توانستند وصل شوند.

الگوی این حوادث ثابت است: مدل اعتماد BGP به این معنی است که اشتباهات و اعلام‌های مخرب با سرعت اینترنت منتشر می‌شوند و اصلاحات زمان می‌برد تا از صدها سیستم خودمختار فیلتر شوند.

RPKI: راه‌حلی که دهه‌ها طول کشید تا پیاده‌سازی شود

زیرساخت کلید عمومی منابع (RPKI) چارچوب رمزنگاری است که برای رفع مشکل اعتماد BGP طراحی شده است. RPKI به دارندگان آدرس IP امکان ایجاد گواهی‌های امضا شده دیجیتالی — مجوزهای مبدأ مسیر (ROA) — را می‌دهد که به صورت رمزنگاری تأیید می‌کند کدام ASها مجاز به ایجاد (originate) کدام پیشوندها هستند. یک مسیریاب که اعتبارسنجی RPKI را انجام می‌دهد می‌تواند اعلام‌هایی را که ROA معتبر ندارند رد کند و درب بسیاری از سناریوهای ربودن مسیر را ببندد.

RPKI از اوایل دهه ۲۰۱۰ از نظر فنی در دسترس بوده است. پذیرش به دلایل ساختاری کند بوده است: هر شبکه باید دو کار انجام دهد — پیشوندهای خود را امضا کند (اعتبارسنجی مبدأ) و اعلام‌های همتایان را اعتبارسنجی کند (اعتبارسنجی مبدأ مسیر). مرحله دوم تنها به نسبت تعداد شبکه‌هایی که مرحله اول را انجام می‌دهند محافظت ارائه می‌دهد. این یک مشکل هماهنگی در مقیاس اینترنت است.

پیشرفت شتاب گرفته است. از سال ۲۰۲۶، تقریباً ۴۰٪ از جدول مسیریابی جهانی توسط ROAهای معتبر پوشش داده شده است. شبکه‌های بزرگ — Cloudflare (که پرصداترین حامی RPKI بوده است)، AT&T، Comcast، Deutsche Telekom و بیشتر ارائه‌دهندگان بزرگ ابر — اکنون اعتبارسنجی RPKI را در لینک‌های همتای خود اجرا می‌کنند. MANRS (هنجارهای توافق شده متقابل برای امنیت مسیریابی) انطباق را ردیابی می‌کند و درصد شبکه‌های منطبق با MANRS از سال ۲۰۲۲ به طور قابل توجهی افزایش یافته است.

۶۰٪ باقی‌مانده جدول مسیریابی یک دُم بلند سرسخت است. ISPهای کوچک‌تر و شبکه‌های منطقه‌ای اغلب منابع مهندسی برای پیاده‌سازی RPKI ندارند، یا تجهیزات قدیمی دارند که از آن پشتیبانی نمی‌کند. برخی دلایل تجاری برای اجتناب از فیلتر مسیر دارند (فیلتر کردن می‌تواند بر درآمد همتایابی تأثیر بگذارد). مشکل در مناطق در حال توسعه متمرکز است که مدرن‌سازی ISP در آن‌ها کندترین است.

فراتر از RPKI: BGPsec و اعتبارسنجی مسیر

RPKI اعتبارسنجی مبدأ را حل می‌کند — تأیید اینکه AS اعلام‌کننده یک پیشوند مجاز به انجام این کار است. اما اعتبارسنجی مسیر را حل نمی‌کند — تأیید اینکه مسیر AS در یک اعلام BGP به طور دقیق منعکس‌کننده مسیر واقعی ترافیک است. یک حمله (یا پیکربندی نادرست) پیچیده‌تر می‌تواند حتی با وجود RPKI اطلاعات نادرست مسیر AS را تزریق کند.

BGPsec راه‌حل پیشنهادی است: امضای رمزنگاری کامل کل مسیر AS برای هر اعلام مسیر. این تضمین‌های امنیتی بسیار قوی‌تری ارائه می‌دهد. همچنین نیاز دارد که هر مسیریاب در مسیر از اعتبارسنجی BGPsec پشتیبانی کرده و آن را انجام دهد، سربار محاسباتی قابل توجهی ایجاد کند و نیازمند ارتقای هماهنگ جهانی زیرساخت مسیریابی باشد. اجماع میان مهندسان شبکه این است که BGPsec در کوتاه‌مدت برای استقرار در مقیاس اینترنت بسیار گران است.

نقشه راه عملی این است: استقرار RPKI برای اعتبارسنجی مبدأ را به پایان برسانید (۵ سال آینده)، سپس امنیت مسیر را به تدریج با استفاده از ترکیبی از سیاست‌های فیلتر مسیر، RPKI و زیرساخت نظارتی ارزیابی کنید. سازمان‌هایی مانند RIPE NCC و ARIN داشبوردهای نظارت بلادرنگ BGP منتشر می‌کنند که به اپراتورها امکان می‌دهد ربایش‌ها را در عرض چند دقیقه به جای ساعاتی که قبلاً طول می‌کشید تشخیص دهند.

این موضوع برای قابلیت اطمینان چه معنایی دارد

شکنندگی BGP ساختاری است، نه تصادفی. این پروتکل برای اینترنت متفاوتی طراحی شده بود — اینترنتی با تعداد کمی از شرکت‌کنندگان مورد اعتماد که دانشگاه‌ها و مؤسسات تحقیقاتی را متصل می‌کردند. تصمیم به گسترش آن به یک زیرساخت تجاری جهانی با صدها هزار شرکت‌کننده، که بسیاری از آن‌ها انگیزه‌های متخاصم دارند، هرگز یک انتخاب طراحی عمدی نبود. این به طور پیش‌فرض اتفاق افتاد، زیرا جایگزینی آماده نبود که اینترنت نیاز به مقیاس‌پذیری داشت.

اینترنت ۳۵ سال با این مبادله زندگی کرده است. استقرار آهسته RPKI اولین تلاش سیستماتیک برای افزودن ویژگی‌های امنیتی به پروتکلی است که هرگز برای داشتن آن‌ها طراحی نشده بود. این کار می‌کند — حوادث ربودن مسیر BGP که امروز تیتر خبرها می‌شوند نادرتر و کوتاه‌مدت‌تر از سال‌های ۲۰۱۵ یا ۲۰۱۹ هستند، زیرا شبکه‌های بیشتری اکنون به طور خودکار اعلام‌های مسیر نامعتبر را رد می‌کنند. اما «کمتر مکرر» و «نادر» با «حل شده» یکسان نیستند، و برای زیرساختی که تجارت جهانی، سوابق بهداشتی و ارتباطات جهان را حمل می‌کند، فاصله بین این دو حالت همچنان مهم است.

اشتراک‌گذاری:
BGP ۳۵ ساله است و هنوز اینترنت را سرپا نگه داشته است — دلیل مشکل‌آفرینی آن در اینجاست | IRCNF - Intelligent Reliable Custom Next-gen Frameworks