اختصاصی «تابناک با تو» - کِربِروس (به انگلیسی: Kerberos، /ˈkɜːrbərɒs/) یک پروتکل احراز هویت در شبکههای رایانهای است، و براساس «بلیط»، کارهایی را انجام میدهد، تا به گرههایی که روی یک شبکه غیرامن ارتباط برقرار میکنند، کمک کند تا بتوانند هویتشان را برای یکدیگر، به صورت امن، اثبات کنند. هدف اولیه طراحان این پروتکل برای مدل کارساز-کارخواه بودهاست، و این پروتکل احرازهویت دوجانبه را فراهم میکند (یعنی هم کاربر و هم سرور هویت دیگری را تصدیق میکند). پیامهای کربروس در مقابل حملات شنود و بازپخش محافظت شدهاند.
واژه «کربروس» از شخصیتی به نام کربروس (یا سربروس) که از اساطیر یونانی است، گرفته شدهاست که این شخصیت، یک «سگ محافظ سه سره وحشی» است که متعلق به هادس بودهاست.
کربروس بر اساس رمزنگاری کلید متقارن ساخته شدهاست، و به «طرف سوم قابل اعتماد» احتیاج دارد، و به صورت اختیاری میتواند از رمزنگاری کلید عمومی در فازهای خاصی از احرازهویت استفاده کند. [۱]کربروس به صورت پیشفرض از پورت یودیپی شماره ۸۸ استفاده میکند.
کربروس چیست؟
Kerberos یک پروتکل امنیتی برای احراز هویت در شبکه است که برای کاربران مجاز امکان ورود به شبکه پس از تایید هویت را فراهم میآورد.
کاربران تیکت یا بلیتهایی را ازمرکز توزیع کربروس (KDC) دریافت میکنند و پس از آن هنگامی که ارتباط با شبکه فراهم شد کاربران این بلیتها را به سرور ارائه میکنند و در صورت تایید مجوز ورود به شبکه فراهم میشود. بلیتهای کربروس اعتبار کاربران شبکه را نشان میدهند.
قبل از این که ارتباط امنی در شبکه برقرار شود، پروتکل کربروس یک مکانیزم برای تایید دو طرفه اطلاعات بین موجودیتهای شبکه فراهم میکنند. هرچند این ارتباط امن بین سرورها نیز میتواند به وجود آید، بر اساس این مستندات این دو موجودیت کاربر و سرور نامیده میشوند. در پروتکل امنیتی کربروس کاربر و سرور به عنوان اصول امنیتی در نظر گرفته میشوند.
پروتکل کربروس فرض میکند که معادلات بین کاربر و Server بر روی یک شبکه محافظت نشده قرار دارد، به گونهای که بیشتر کاربران و بسیاری از سرورها امنیت کافی ندارند و بستههایی که از طریق شبکه در حال جابجایی هستند میتوانند نظارت و دستکاری شوند.
کربروس؛ پروتکل امنیتی برای احراز هویت
محیط فرضی پروتکل امنیتی کربروس مانند اینترنت امروزی است که هکرها میتوانند در نقش سرورها و یا کاربران ظاهر شوند و به راحتی ارتباطات بین سرور و کاربر را مورد نظارت و دستکاری کنند.
روش کار در الگوریتم کربروس به این صورت است که وقتی کاربری به یک شبکه Kerberos وارد میشود، یک پیغام درخواست به سرور مربوط به نام و کلمه عبور حساب خود میفرستد. آن سرور با یک TGT که بر مبنای کلمه عبور سرویس گیرنده رمزنگاری شده است جواب میدهد. محض دریافت TGT از کاربر درخواست میشود که کلمه عبور خود را وارد کند و سپس از آن کلمه عبور برای رمزگشایی TGT استفاده میکند.
هرچند کربروس یک راهکار و در واقع یک پروتکل برای احراز هویت در شبکه و به نظر یک نیاز جدی برای افزایش امنیت محیطهای مجازی است، دلیل ترند شدن این مفهوم آن در فضای کنونی را نمیتوان بی ارتباط با گمانههای ضد و نقیض در مورد تغییرات در ساختار فضای مجازی در کشور دانست. با این حال باید در این باره متخصصان نظر دهند.
تاریخچه و توسعه
Kerberos برای محافظت از خدمات شبکه توسط پروژه آتنا ارائه شده و در دانشگاه MIT توسعه یافتهاست. پروتکل برمبنای پروتکل کلید متقارن Needham –Schroeder است. نام این پروتکل Kerberos (یا سربروس) از اساطیر یونان گرفته شدهاست، که به سگ سه سر نگهبان جهنم معروف بود. چندین نسخه از این پروتکل وجود دارد، نسخههای ۳–۱ تنها در داخل MIT رخ دادهاست. استیو میلر و کلیفورد نیومن، طراحان اولیه از نسخه ۴ Kerberos، نسخه منتشر شده دراواخر ۱۹۸۰s، هر چند که آن را در درجه اول برای پروژه آتنا هدف قرار داده بودند.
نسخه ۵، طراحی شده توسط جان کول و کلیفورد نیومن، به عنوان RFC ۱۵۱۰ در سال ۱۹۹۳ ظاهر شد (منسوخ شده توسط RFC ۴۱۲۰ در سال ۲۰۰۵ ساخته شدهاست)، با هدف غلبه بر محدودیتها و مشکلات امنیتی از نسخه۴. MIT یک پیادهسازی از Kerberosهای آزادانه در دسترس ایجاد میکند، تحت مجوز کپی رایت مشابه که مورد استفاده برای BSD است. در سال ۲۰۰۷، MIT تشکیل کنسرسیوم از Kerberosها را دادکه برای ترویج و توسعه آن ادامه داده شد. حامیان مالی مؤسس عبارتند از فروشندگان مانند اوراکل، اپل، گوگل، مایکروسافت، شرکت Centrify و شرکت TeamF۱، و مؤسسات آموزشی مانند مؤسسه سلطنتی فناوری در سوئد، دانشگاه استنفورد، MIT، و فروشندگان مانند CyberSafe نسخههای تجاری پشتیبانی را ارائه میدهند. مقامات در ایالات متحده Kerberosها را به عنوان فناوریهای نظامی کمکی طبقهبندی و صادرات آنها ممنوع اعلام شده چرا که آن را بااستفاده از الگوریتم DES رمز نگاری (با کلیدهای ۵۶ بیتی) کردهاند. غیر از پیادهسازی kerberos۴، KTH-KRB که در مؤسسه سلطنتی فناوری در سوئد ساخته شده از سیستمهای موجود در خارج از ایالات متحده قبل از تغییر مقررات ایالات متحده، صادرات خود را رمزنگاری کرده و (حدود ۲۰۰۰) توسعه یافتهاست. اجرای سوئدی در یک نسخه محدود به نام eBones بود. eBones بر مبنای انتشار استخوان MIT (ساده شده از هر دو توابع رمزنگاری و تماس آنها) بر اساس نسخه از Kerberos ۴ پچ سطح ۹ صادر شده بود. در سال ۲۰۰۵، کار گروه نیروی ضربت مهندسی اینترنت به روز رسانی مشخصات Kerberos است. به روز رسانیهای اخیر عبارتند از:
* رمزگذاری و بررسی مشخصات فنی RFC ۳۹۶۱.
* استاندارد رمزگذاری پیشرفته (AES) رمزگذاری برای kerberos۵
* نسخه جدیداز مشخصات kerberos V۵"خدمات شبکه احراز هویت (kerberos (V۵". این نسخه RFC ۱۵۱۰، شرح دادن جنبههایی از پروتکل و استفاده در یک توضیح مفصلتر و واضحتر در نظر گرفته شدهاست.
* نسخه جدیداز مشخصات GSS - API"مکانیسم رابط برنامه کاربردی خدمات عمومی امنیت نسخه Kerberos۵:نسخه ۲. "
چه تفاوتی بین کربروس و NTLM وجود دارد؟
قبل از کربروس مایکروسافت از یک فناوری احراز هویت بهنام NTLM (NT Lan Manager) استفاده میکرد که یک پروتکل احراز هویت چالش-پاسخ بود. کامپیوتر یا کنترلکننده دامنه گذرواژهها را بررسی و هش گذرواژه را برای استفاده مداوم ذخیره میکرد. بزرگترین تفاوت این دو سیستم در احراز هویت ثالث و توانایی رمزنگاری قدرتمندتر کربروس است. کربروس در مقایسه با NTLM از یک لایه امنیتی اضافی در فرآیند احراز هویت استفاده میکند. این روزها سیستمهای مبتنی بر NTLM را میتوان در عرض چند ساعت هک کرد. به بیان ساده NTLM یک فناوری قدیمی و به تعبیری منسوخ شده است که نباید برای محافظت از دادههای حساس از آن استفاده کرد.
ویژگیهای اصلی Kerberos
* ایمن است. هرگز پسورد را ارسال نمیکند مگر اینکه رمزنگاری شده باشد.
* به ازای هر نشست تنها یک بار لاگین نیاز است. اعتبارنامههایی که در زمان لاگین تعریف میشوند در ادامه کار بین منابع عبور داده شده تا نیاز به لاگین اضافی نباشد.
* این مفهوم وابسته به یک سیستم سوم شخص با نام مرکز توزیع کلید یا همان KDC یا Key Distribution Center میباشد.
* این پروتکل احرازهویت دوجانبه و متقابل را انجام میدهد. به این صورت که کلاینت هویت خود را برای سرور اثبات میکند و سرور هم متقابلا هویت خود را برای کلاینت اثبات میکند.
نحوهی کار Kerberos
کاربران تیکت یا بلیطهایی را ازمرکز توزیع کربروس (KDC) دریافت میکنند و پس از آن هنگامی که ارتباط با شبکه فراهم شد کاربران این بلیطها را به سرور ارائه میکنند و در صورت تایید مجوز ورود به شبکه فراهم میشود. بلیطهای کربروس اعتبار کاربران شبکه را نشان میدهند. قبل از این که ارتباط امنی در شبکه برقرار شود پروتکل کربروس یک مکانزیم برای تایید دو طرفه اطلاعات بین موجودیتهای شبکه فراهم میکنند. اگرچه این ارتباط امن بین سرورها نیز میتواند به وجود آید، اما بر اساس این مستندات این دو موجودیت کاربر و سرور نامیده میشوند.
در پروتکل امنیتی کربروس کاربر و سرور به عنوان اصول امنیتی در نظر گرفته میشوند. پروتکل کربروس فرض میکند که معادلات بین کاربر و Server بر روی یک شبکه محافظت نشده قرار دارد به گونهای که بیشتر کاربران و بسیاری از سرورها از امنیت کافی برخوردار نیستند و بستههایی که از طریق شبکه در حال جابجایی هستند میتوانند نظارت و دستکاری شوند. محیط فرضی پروتکل امنیتی کربروس مانند اینترنت امروزی است که هکرها میتوانند در نقش سرورها و یا کاربران ظاهر شوند و به راحتی ارتباطات بین سرور و کاربر را مورد نظارت و دستکاری قرار دهند.
روش کار در الگوریتم کربروس:
به این صورت است که وقتی کاربری به یک شبکه Kerberos وارد میشود، یک پیغام درخواست به سرور مربوط به نام و کلمه عبور حساب خود میفرستد. آن سرور با یک TGT که بر مبنای کلمه عبور سرویس گیرنده رمزنگاری شده است جواب میدهد. محض دریافت TGT از کاربر درخواست میشود که کلمه عبور خود را وارد کند و سپس از آن کلمه عبور برای رمزگشایی TGT استفاده میکند. چون در واقع فقط یک کاربر باید دارای کلمه عبور درست باشد، این روند به عنوان احراز هویت عمل میکند. اگر رمزگشایی TGT با موفقیت انجام شود، کاربر میتواند یک درخواست، حاوی یک کپی رمزنگاری شده از TGT به یک سرور TGS، که الزاماً همان سرور احراز هویت اول نمیباشد، بفرستد و به منابع شبکه دسترسی پیدا کند.
سرور TGS بعد از رمزگشایی TGT و تشخیص وضعیت کاربر یک بلیط سرور (Server Ticket) ایجاد میکند و به برای او میفرستد. این بلیط، کاربر را قادر میسازد برای مدت زمان محدودی به یک سرور مشخص دسترسی داشته باشد. این بلیط همچنین حاوی یک کلید نشست (Session key) میباشد که کاربر و سرور از آن میتوانند برای رمزنگاری دادههای در حال انتقال بین خود استفاده کنند. کاربر در صورت نیاز به یک منبع، بلیط سرور را به آن سرور میفرستد. سرور بعد از رمزگشایی آن بلیط، امکان دستیابی به منبع مورد نظر را فراهم میکند.
کربروس هکپذیر است؟
بله. زیرا یکی از متداولترین پروتکلهای احراز هویت است و هکرها هم چند راه برای نفوذ به آن ابداع کردهاند. اغلب این هکها بر مبنای آسیبپذیریها، گذرواژههای ضعیف یا بدافزارها (یا برخی اوقات هر سه مورد) انجام میشوند. کربروس به روشهای زیر هک میشود:
* رد کردن بلیط: فرآیندی که در آن یک کلید نشست جعل میشود و این کلید جعلی به عنوان یک مدرک هویتی معتبر در اختیار منبع قرار میگیرد.
* بلیط طلایی: یک بلیط که برای دسترسی مدیریتی برای کاربر صادر میشود.
* بلیط نقرهای: یک بلیط جعلی که برای دسترسی به یک سرویس صادر میشود.
* Credential stuffing/ Brute force: تلاشهای خودکار پی در پی برای حدس زدن یک گذرواژه
* خنثی کردن رمزگذاری با Skeleton Key Malware: یک بدافزار که میتواند کربروس را دور بزند، اما حمله باید از طریق دسترسی مدیریتی انجام شود.
* حمله DCShadow: یک حمله جدید در مکانی که حملهکنندگان دسترسی کافی به شبکه دارند تا بتوانند از کنترلکننده دامنه اختصاصی خود برای نفوذ بیشتر استفاده کنند.
کربروس منسوخ خواهد شد؟
کربروس تا منسوخ شدن فاصله زیادی دارد و با وجودی که هکرها توانایی نفوذ به آنرا دارند ثابت کرده که یک پروتکل کنترل دسترسی امنیتی قابل قبول است. اصلیترین مزیت کربروس توانایی استفاده از الگوریتمهای رمزنگاری قوی برای محافظت از گذرواژهها و بلیطهای احراز هویت است. با کامپیوترهای امروزی هر نوع حمله جستجوی فراگیر (Brute Force) به پروتکل رمزنگاری AES که کربروس از آن استفاده میکند و درهم شکستن آن به زمانی معادل با طول عمر خورشید نیاز دارد. بدون شک کربروس به هر شکلی که ارائه شود تا مدت زمان نسبتا طولانی قابل استفاده است.