مهدی رشیدی
مهدی رشیدی
خواندن ۵ دقیقه·۵ سال پیش

BGPSec چیست و چگونه عمل می کند؟

پروتکل مسیر­یابی BGP به شکل پیش­فرض یک پروتکل امن طراحی نشده و دارای مشکلات امنیتی است و با وجود این مشکلات امنیتی مورد حملات امنیتی از جمله Route Hijacking قرار می­گیرد؛ این مشکل زمانی پیش می­ آید که یک ASمسیری نا معتبر را در شبکه پخش می­کند، به تازگی نوع دیگری از حملات که ترکیبی از BGP Hijacking و Man-In-The-Middle (MITM) است انجام می­شود، در این نوع حمله هکر ترافیک انتقالی در شبکه را به سمت نقطه­ ای خاص هدایت می­کند و پس از آن اطلاعات را به مقصد اصلی می­فرستد، هنگامی که اطلاعات رمزنگاری نشده باشند به­ راحتی برای هکر (MITM) قابل رویت و دست­یابی است.

BGP Hijacking Attack
BGP Hijacking Attack


چه اقداماتی برای افزایش امنیت BGP انجام شده است؟

هم ­اکنون Internet Engineering Task Force (IETF) اقداماتی برای بالا بردن سطح امنیت Routeها مانند ایجاد RPSL و SIDR انجام داده است. گروه SIDRراهکارهایی برای امنیت BGPتوسعه می­دهند که در این میان می­توان به BGPSec که کار AS Path Validation را انجام می­دهد اشاره کرد. BGPSec سعی می­کند از درستی به­روزرسانی های BGP و درستی مسیر طی شده توسط آن­ها اطمینان حاصل کند. BGPSec بسیار شبیه به Secure BGP یا S-BGP که در دهه 1990 توسط شرکت BBN Technologies توسعه داده شده ­اند عمل می­کند. برخلاف RPKI، که مدیریت، توزیع و اجرای آن توسط پنج سازمان ثبت اینترنت منطقه­ای (RIRs) در سرتاسر دنیا انجام می­شود، BGPSec بخش ناگسستنی از پروتکل BGP است، در نتیجه توسعه و پیاده سازی آن توسط روترهای BGP انجام می­شود. به منظور شکل­ گیری یک ارتباط BGPSec بین دو روتر BGP مشخصه AS_PATH با مشخصه BGPSec_Path در BGP Updates جایگزین می­شود که عملکرد مشابه اما امنی را به ارمغان می آورد.

five Regional Internet Registries (RIRs) in the world
five Regional Internet Registries (RIRs) in the world


ساز و کار BGP در حالت معمولی به چه شکل است؟

یک BGP Router معمولی به هنگام تولید prefix (که وارد BGP می­شود(، یک مشخصه AS_PATH می­ سازد که فقط شامل شماره AS (Autonomous System) فعلی است. و در زمانی که یک روتر می­ خواهد BGP Update را برای BGP های همسایه در AS های دیگر منتشر کند، شماره AS خود را از چپ به AS_PATH اضافه می­کند، به این شکل روتر­ها می­توانند تشخیص دهند که این به ­روز ­رسانی تازه است یا نه، و در حالت تکراری بودن آن را نادیده بگیرند. یک به­ روزرسانی BGP می­تواند شامل تعداد مختلفی پیشوند (prefix) با AS_PATH یکسان و دیگر مشخصه ها بشود. زمانی که روتر می­خواهد یک به­روزرسانی BGP را به اعضای یک Peer Group ارسال کند، فقط یک به­روزرسانی BGP می­ سازد و کپی آن را برای یکایک اعضای گروه ارسال می­کند.

BGPSec چگونه عمل می­کند؟

هنگامی که از BGPSec بهره می­بریم، به جای AS_PATH، مشخصه BGPsec_Path ساخته می­شود و به­ طور کلی مشابه حالت قبل عمل می­کند، با این تفاوت که روتر ASN (Autonomous System Number) مقصد که به­ روزرسانی BGP به آن ارسال می­شود را نیز به Path اضافه می­کند، سپس یک امضای رمزنگاری شده (Cryptographic Signature) با استفاده از این اطلاعات تولید می­کند. برای حفظ یکپارچگی امضاهای تولید شده، روتر ها دیگر نمی­توانند چندین پیشوند(prefix) را در قالب یک به­روزرسانی ارسال کنند، و به دلیل اینکه شماره AS دریافت کننده در به­روزرسانی وجود دارد، باید برای هر همسایه یک به­روزرسانی جداگانه (به همراه یک امضای جداگانه) ساخته شود.

BGPSec AS Path Validation
BGPSec AS Path Validation


با استفاده از این روش هر جهش (hop) در AS Path با یک امضای رمزنگاری شده محافظت شده است و روتری که به ­روزرسانی BGPرا که شامل مشخصه BGPSec_Path است دریافت می­کند، می­تواند به­ راحتی درستی AS Path را بررسی کند. برای مثال در نظر بگیرید AS Path به شکل 791 612 566 باشد. در ابتدا روتر دریافت کننده امضای AS 566را بررسی میکند. امضا شامل یک “Subject Key Identifier”است که اشاره به گواهینامه RPKI ای دارد که توسط روتر تولید کننده امضا ایجاد شده است، بنابراین روتر دریافت کننده با استفاده از این گواهینامه، درستی امضا را بررسی می­کند. همچنین روتر بررسی می­کند که 566 می­خواهد به­روزرسانی به 612 ارسال کند، در نتیجه امضای ساخته شده در AS 612 را بررسی می­کند، به همین ترتیب چون 612 قرار است به­روزرسانی به 791 ارسال بکند، امضای AS 791 نیز بررسی می­شود، در صورتی که درستی امضای ساخته شده در AS 791 اثبات شود، AS Path معتبر شناخته شده و می­توان از اطلاعات RPKIبرای پیوند دادن (bind) پیشوندهایی که توسط AS 566 تولید شده است، و آن مسیر معتبر (Validated AS Path) استفاده کرد.

BGPSec Updates
BGPSec Updates

شرایط لازم برای گسترش BGPSec به چه شکل است؟

با گذر زمان و افزایش پشتیبانی ASها از ساز و کار جدید، گسترش فزاینده BGPSec امکان­پذیر است، اگرچه به منظور درست کار کردن BGPSec باید تمامی روترهایی که در مسیر وجود دارند، از روتری که به ­روزرسانی را منتشر می­کند تا روتری که درستی آن را تایید می­کند، از BGPSecپشتیبانی کنند. هنگامی که روتر با قابلیت BGPSec با یک روتر BGP معمولی ارتباط برقرار می­کند، مشخصه BGPSec_Path تبدیل به AS_PATH معمولی شده و تمام اطلاعات امنیتی ساخته شده کنار گذاشته می­شوند. توجه داشته باشید که پیاده سازی RPKI با این روش بسیار متفاوت است، از آنجایی که Regional Internet Registry (RIR) ها Route Origin Authorization (ROA) را تولید می­کنند، هر AS به­طور مستقل و بدون نیاز به پشتیبانی ASهای در مسیر یا تغییر در پروتکل BGP می­تواند اقدام به بررسی RPKI کند.

نیازمندی های پیاده سازی BGPSec چگونه است؟

از آنجایی که پروتکل BGPSec تشنه منابع است، پیاده سازی آن می­­تواند بحران برانگیز باشد. به­روزرسانی های BGPSec به سبب در برگرفتن امضاها و اطلاعات پشتیبان حجیم­تر هستند و همچنین تعداد به­روز رسانی های ساخته شده بیشتر است چون هر به­روزرسانی فقط می­تواند یک پیشوند را انتقال دهد؛ از طرفی در هر AS موجود در مسیر بررسی امضا انجام می­شود، در نتیجه زمان بیشتری صرف پردازش به­روزرسانی­ها می­شود. برای نمونه با در نظر گرفتن یک جدول مسیریابی در مقیاس جهان با نیم میلیون پیشوند IPv4 و بطور میانگین چهار جهش AS به 2 میلیون بررسی امضا در شروع کار می­رسیم، که با در نظر گرفتن الگوریتم حتی با پردازشگر (CPU) سریع انجام این محاسبات چندین دقیقه طول می­کشد. روترهای BGPSec نیازمند دسترسی به تعداد زیادی اطلاعات RPKI هستند، در نتیجه به مقدار قابل توجهی حافظه بیشتر نسبت به روترهای معمولی نیاز دارند که منجر به استفاده بیشتر از منابع می­شود.

جمع ­بندی

همان­گونه که گفته شد BGPSec تاثیر به سزایی در بالا بردن سطح امنیت پروتکل مسیریابی BGPدارد اما محدودیت­هایی نیز برای پیاده سازی آن وجود دارد. در مجموع با پیش­رفت تکنولوژی و ارزان­تر شدن منابع، در آینده پروتکل BGP امن تر خواهد بود، حتا اگر این امنیت به قیمت پیچیدگی بیشتر و استفاده از سخت افزار های بزرگتر و سریعتر تمام شود.

bgpmitm
توسعه دهنده نرم افزار، علاقمند به دنیای متن باز.
شاید از این پست‌ها خوشتان بیاید