کربرس

کربرس یک پروتکل احراز هویت شبکه کامپیوتری است که بر اساس «بلیط‌هایی» که اجازه می‌دهند گره‌ها در سراسر یک شبکه غیر امن ارتباط برقرار کنند برای بهبود اثبات هویتشان به یکدیگر به شیوه امن است. هدف طراحان در درجه اول در مدل کلاینت سرور تصدیق دو جانبه را فراهم می‌کند-هر دو کاربر و سرور تشخیص هویت یکدیگر را بررسی می‌کنند. پیام‌های پروتکل Kerberos دربرابر استراق سمع و پخش حملات محافظت می‌شود.
کربرس‌های ایجاد شده بر روی کلید متقارن رمزنگاری و نیازمند یک شخص ثالث مورد اعتماد، و ممکن به صورت اختیاری کلید عمومی رمزنگاری در مراحل خاصی از احراز هویت استفاده شود. کربرس از پورت UDP 88 به طور پیش فرض استفاده می‌کنند.
تاریخچه و توسعه
Kerberos برای محافظت از خدمات شبکه توسط پروژه آتنا ارائه شده و در دانشگاه MIT توسعه یافته است . پروتکل برمبنای پروتکل کلید متقارن Needham –Schroeder است. نام این پروتکل Kerberos (یا سربروس) از اساطیر یونان گرفته شده است، که به سگ سه سر نگهبان جهنم معروف بود. چندین نسخه از این پروتکل وجود دارد، نسخه‌های ۳–۱ تنها در داخل MIT رخ داده است.
استیو میلر و کلیفورد نیومن، طراحان اولیه از نسخه 4 Kerberos، نسخه منتشر شده دراواخر 1980s، هر چند که آن را در درجه اول برای پروژه آتنا هدف قرار داده بودند.
نسخه ۵، طراحی شده توسط جان کول و کلیفورد نیومن، به عنوان RFC 1510 در سال ۱۹۹۳ ظاهر شد (منسوخ شده توسط RFC 4120 در سال ۲۰۰۵ ساخته شده است)، با هدف غلبه بر محدودیت‌ها و مشکلات امنیتی از نسخه۴.
MIT یک پیاده‌سازی از Kerberosهای آزادانه در دسترس ایجاد می‌کند، تحت مجوز کپی رایت مشابه که مورداستفاده برایBSD است. در سال ۲۰۰۷، MIT تشکیل کنسرسیوم از Kerberosها را دادکه برای ترویج و توسعه آن ادامه داده شد. حامیان مالی موسس عبارتند از فروشندگان مانند اوراکل، اپل، گوگل، مایکروسافت، شرکت Centrify و شرکت TeamF1، و موسسات آموزشی مانند موسسه سلطنتی فناوری در سوئد، دانشگاه استنفورد، MIT، و فروشندگان مانند CyberSafe نسخه‌های تجاری پشتیبانی را ارائه می‌دهند.
مقامات در ایالات متحده Kerberosها را به عنوان فناوری‌های نظامی کمکی طبقه‌بندی و صادرات آن‌ها ممنوع اعلام شده چرا که آن را بااستفاده از الگوریتم DES رمز نگاری (با کلیدهای ۵۶ بیتی) کرده‌اند. غیر از پیاده‌سازی kerberos4، KTH-KRB که در موسسه سلطنتی فناوری در سوئد ساخته شده از سیستم‌های موجود در خارج از ایالات متحده قبل از تغییر مقررات ایالات متحده، صادرات خود را رمزنگاری کرده و (حدود ۲۰۰۰) توسعه یافته است. اجرای سوئدی در یک نسخه محدود به نام eBones بود. eBones بر مبنای انتشار استخوان MIT (ساده شده از هر دو توابع رمزنگاری و تماس آنها) بر اساس نسخه از Kerberos 4 پچ سطح ۹ صادر شده بود.
در سال ۲۰۰۵، کار گروه نیروی ضربت مهندسی اینترنت به روز رسانی مشخصات Kerberos است. به روز رسانی‌های اخیر عبارتند از:
رمزگذاری و بررسی مشخصات فنی .
استاندارد رمزگذاری پیشرفته(AES)رمزگذاری برایkerberos5
نسخه جدیداز مشخصاتkerberos V5"خدمات شبکه احراز هویت(kerberos(V5". این نسخه RFC 1510، شرح دادن جنبه‌هایی از پروتکل و استفاده در یک توضیح مفصل‌تر و واضح‌تر در نظر گرفته شده است.
نسخه جدیداز مشخصاتGSS - API"مکانیسم رابط برنامه کاربردی خدمات عمومی امنیت نسخهKerberos5:نسخه2."RFC 4121
مایکروسافت ویندوز
ویندوز ۲۰۰۰ و بعد از آن Kerberos را به طور پیش فرض به عنوان روش احراز هویت خود استفاده می‌شو. اضافه کردن مایکروسافت به مجموعه Kerberosهااز پروتکل‌ها که مستند شدند در RFC 3244 «کربرسهای مایکروسافت ویندوز ۲۰۰۰ پروتکل‌های تغییر رمز عبور و تنظیم رمز عبور».RFC 4757 مستند مایکروسافت از رمزنگاری RC4 استفاده کرده است. در حالی که مایکروسافت با استفاده از پروتکل Kerberos، آن را در نرم‌افزار MIT استفاده نمی‌کند.
Kerberosها به عنوان روش احراز هویت ترجیح داده شده استفاده می‌شوند: به طور کلی، پیوستن یک مشتری به یک دامنه ویندوز به معنی قادر ساختن Kerberos به عنوان پروتکل پیش فرض برای احراز اصالت آن مشتری به خدمات در حوزه ویندوز و تمام حوزه‌ها با روابط اعتماد به آن دامنه است.
در مقابل، زمانی که هرکدام گیرنده یا سرور یا هر دو به یک دامنه (یا بخشی از همان محیط زیست دامنه مورد اعتماد) ملحق نشده‌اند، ویندوزها در عوض از NTLM برای احراز هویت بین کلاینت و سرور استفاده می‌کنند.
یونیکس و سیستم عامل‌های شبه یونیکس
بسیاری از سیستم عامل‌های یونیکس و شبه یونیکس، شامل فری‌بی‌اس‌دی، اپل مک اواس ده، لینوکس ردهت انترپرایز، سولاریس اوراکل، ای‌آی‌اکس آی بی‌ام و زد/اواس، شرکت سرور Univention و دیگران، شامل نرم‌افزار برای احراز هویت Kerberos از کاربران یاسرویس دهندگان است. پیاده‌سازی‌های جاسازی شده از پروتکل احراز هویت از Kerberos V برای عوامل مشتری و خدمات شبکه در حال اجرا بر روی سیستم عامل‌های جاسازی شده نیز موجوداست که از شرکت‌های مانند TeamF1، Inc است.
پروتکل
توصیف
مشتری تایید هویت خود را به تایید هویت سرور(AS) که نام کاربری را به یک مرکز توزیع کلید(KDC)ارسال می‌کند. KDC به مسائل مربوط به درخواست ارائه بلیط(TGT)، که زمان مهر، رمزگذاری آن با استفاده از رمز عبور کاربر و در نتیجه رمزگذاری شده به ایستگاه کاری کاربر را برمی‌گردانداعتبار می‌بخشد. بخاطر این است که به ندرت انجام می‌شود، به طور معمول در لاگین کاربر، اعتبار TGT باقی است تا زمان انقضای آن، هر چند ممکن توسط مدیر جلسه کاربر تکرار شود در حالی که آنها وارد سایت شوند.
هنگامی که مشتری نیاز به برقراری ارتباط با گره دیگر دارد ("اصلی" در طرز سخن گفتن از Kerberos) مشتریTGT را به درخواست ارائه خدمات (TGS)، که معمولا سهام میزبان همان KDC است می‌فرستد. پس از بررسی TGT که معتبر است و کاربر مجاز به دسترسی به سرویس درخواست شده است، TGS مسائل مربوط به بلیط و کلیدهای جلسه را وارد می‌نماید، که به مشتری برگشته است. مشتری پس از آن درخواست به سرور خدمات(SS) به همراه درخواست خدمات خود راارسال می‌کند.
پروتکلی که در جزئیات زیر توصیف شده است.
مشتری کاربر مبتنی بر ورود به سیستم
کاربر نام کاربری و رمزعبوررا بر روی ماشین گیرنده وارد می‌کند. سایر مکانیزم‌های اعتبار مانند pkinit برای استفاده از کلیدهای عمومی در محلی از رمزعبور اجازه می‌دهند.
مشتری رمزعبور را به کلید رمزنگاری متقارن تبدیل می‌کند. هر دودر ساختاردرونی در زمانبندی کلیدی یا یک مخلوط یک طرفه بسته رمز -مجموعه استفاده می‌شوند.
احراز هویت مشتری
مشتری یک پیام cleartext از ID کاربر به درخواست خدمات AS از طرف کاربر می‌فرستد. (یادداشت: نه کلیدهای مخفی و نه رمزعبور به AS ارسال نمی‌شوند)AS کلید مخفی به وسیله هش کردن رمزعبور از کاربر در پایگاه داده تولید می‌کند. (دایرکتوری فعال در ویندوز سرور)
AS برای دیدن مشتری در پایگاه داده چک می‌کند. اگر آن هست،AS دو پیام زیر را پشت هم به مشتری ارسال می‌کند:
پیام A: کلید جلسه مشتری /TGSبا استفاده از کلید مخفی مشتری / کاربر رمزگذاری شده است.
پیام B: بلیط ارائه بلیط(که شامل ID مشتری، آدرس شبکه مشتری، مدت اعتبار بلیط، و کلید نشست گیرنده/TGS)که با استفاده از کلیدهای مخفی TGS رمزگذاری شده است.
هنگامی که مشتری پیام‌های A و B را دریافت می‌کند، آن به رمزگشایی پیام A با کلید محرمانه تولید شده از رمز عبور وارد شده توسط کاربر توجه می‌کند. اگر کاربر کلمه عبور را با رمزعبور در پایگاه داده AS مطابقت ندارد، وارد کند، کلید مخفی مشتری‌ها مختلف است و در نتیجه به رمزگشایی پیام Aقادر نخواهد بود. با یک رمز عبور معتبر و کلید مخفی، مشتری پیام A را رمزگشایی کرده کهکلید جلسه مشتری/ TGSرا به دست آورد. این کلید جلسه برای ارتباطات بیشتر با TGS استفاده می‌شود. (توجه: سرویس گیرنده پیام B را نمی‌تواند رمزگشایی کند، آن با استفاده از کلیدهای مخفی TGS رمزگذاری می‌کند) در این مرحله، مشتری اطلاعات کافی از تایید هویتش به TGS داده.
مجوز خدمات مشتری
هنگامی که درخواست خدمات را، مشتری در دو پیام زیر به TGS می‌فرستد:
پیام C: متشکل از TGT از پیام B و ID از خدمات درخواست شده است.
پیام Authenticator :D را (که از ID مشتری و برچسب زمان تشکیل شده است)، با استفاده از کلید جلسه مشتری/TGS رمزگذاری می‌کند.
پس از دریافت پیام‌های C و D ,TGS بازیابی پیام B از پیام C است. این رمزگشایی پیام B با استفاده از کلیدهای مخفی TGS است. این "کلید جلسه مشتری/ TGS" با استفاده از این کلید، TGS پیام Dرا رمزگشایی می‌کند و دو پیام زیر را به مشتری می‌فرستد:
پیام E: بلیط مشتری به سرور(که شامل ID مشتری، آدرس شبکه سرویس گیرنده، مدت اعتبار و کلید جلسه مشتری/سرور)با استفاده از کلیدهای مخفی خدمات رمزگذاری شده است.
پیام F: کلید جلسه مشتری/سرور با کلید جلسه مشتری/TGS رمزگذاری شده است.
درخواست خدمات مشتری
پس از دریافت پیام‌های E و F از TGS، مشتری اطلاعات کافی برای تایید هویت خود به SS داده. مشتری به SS متصل و دو پیام زیر را می‌فرستد:
پیام E از مرحله قبل (بلیط کلاینت به سرور، با استفاده از کلیدهای مخفی سرویس رمزگذاری شده است)
پیام G:یک Authenticator جدید، که شامل ID مشتری، برچسب زمان و با استفاده از کلید جلسه مشتری/سرور رمزگذاری شده است.
SS بلیط را با استفاده از کلید مخفی خود رمزگشایی می‌کند.SS با استفاده از کلید جلسه Authenticator را رمزگشایی کرده و پیام زیر را به مشتری برای تایید هویت واقعی و تمایل به خدمت به مشتری می‌فرستد:
پیام H: برچسب زمان موجود در تایید اعتبار مشتری به علاوه ۱، با استفاده از کلید جلسه مشتری/سرور رمزگذاری می‌کند.
مشتری تایید را با استفاده از کلید جلسه مشتری/سرور رمزگذاری می‌کند و چک می‌کند آیا برچسب زمان به درستی به روز شده است. اگر چنین است، پس از آن مشتری می‌تواند به سرور اعتماد کرده و می‌تواند به صدور درخواست خدمات به سرور شروع کند.
سرور درخواست خدمات به مشتری را فراهم می‌کند.
اشکالات و محدودیت‌ها
تنها نقطه شکست: نیاز به در دسترس بودن مداوم از یک سرور مرکزی است. هنگامی که سرور Kerberos از کار افتاده، هیچ‌کس نمی‌تواند وارد شود. این را می‌توان با استفاده از چندین سرور از Kerberos و مکانیسم‌های تایید هویت مجدد، کمتر کرد.
Kerberos زمان مورد نیاز سخت دارد، که به معنی ساعت‌هایی که میزبان درگیر باید در محدوده پیکربندی هماهنگ شده باشد. بلیط یک دوره در دسترس بودن زمان دارد و اگر ساعت میزبان با ساعت سرور Kerberos هماهنگ نباشد، تصدیق شکست خواهد خورد. تنظیمات پیش فرض
مستلزم آن است که برپایه ساعت بیش از پنج دقیقه از هم جدا نباشند. در عمل شبح پروتکل زمان شبکه معمولا برای حفظ و هماهنگی ساعت‌های میزبان استفاده می‌شود.
پروتکل مدیریت، استاندارد نیست و متفاوت بین پیاده‌سازی سرور است. تغییر رمز عبور
در شرح داده شده است.
در صورت تصویب رمزنگاری کلید خصوصی (Kerberos می‌تواند کار کند با استفاده از رمزنگاری کلید خصوصی یا عمومی)، از آنجا که احراز اصالت توسط یک KDC متمرکز کنترل می‌شود، سازش از این زیرساخت تایید هویت که به یک حمله به جعل هویت هر کاربر اجازه خواهد داد.
هر یک از سرویس‌های شبکه که نیاز به یک نام میزبان متفاوت دارند به مجموعه‌ای از کلیدهای خود از Kerberos نیازخواهند داشت. این پیچیدگی مجازی میزبان و خوشه است.
Kerberos نیاز به حساب کاربری، مشتریان کاربر و خدمات بر روی سرور به تمام روابط قابل اعتماد به رمزی از Kerberos سرور است (همه باید در همان دامنه Kerberos یا در دامنه که یک رابطه بااعتماد بین یکدیگر است باشند). Kerberos نمی‌تواند در حالاتی، که در آن کاربران می‌خواهند برای اتصال به خدمات از مشتریان ناشناخته/غیرقابل اطمینان در اینترنت یا سناریو کامپیوتر ابری معمولی، که در آن ارائه اعتبار به طور معمول به دانش در مورد سیستم به کاربران مشتری ندارد استفاده شود.
اعتماد مورد نیاز مشتری باعث ایجاد محیط‌های جاسوسی شده (به عنوان مثال. دامنه جداگانه برای تست محیط زیست، پاکت پیش تولید، پاکت مولد)مشکل: در هر صورت دامنه روابط اعتماد نیاز به ایجاد مانع از جدایی سخت از حوزه‌های محیط زیست یا بعلاوه مشتریان کاربر نیاز به ارائه برای هر یک از محیط‌ها دارند.
تنها نشانه
مدیریت هویت
SPNEGO
پروتکل رمز از راه دور امن(SRP)
برنامه عمومی امنیت خدمات رابط برنامه کاربردی(GSS - API)
میزبان پروتکل هویت(HIP)
لیست پیاده‌سازی تک نشانه