کربروس (پروتکل)

کِربِروس
توسعه‌دهنده(ها)مؤسسه فناوری ماساچوست
انتشار پایدار
Kerberos 5 انتشار 1.21 / ۵ ژوئن ۲۰۲۳؛ ۱۷ ماه پیش (۲۰۲۳-05}})
نوشته‌شده باC
سیستم‌عاملچندسکویی
حجم8421k (کد منبع)
نوعپروتکل احرازهویت
وبگاه

کِربِروس (به انگلیسی: Kerberos، ‎/ˈkɜːrbərɒs/‎) یک پروتکل احراز هویت در شبکه‌های رایانه‌ای است، و براساس «بلیت»، کارهایی را انجام می‌دهد، تا به گره‌هایی که روی یک شبکه غیرامن ارتباط برقرار می‌کنند، کمک کند تا بتوانند هویت‌شان را برای یکدیگر، به صورت امن، اثبات کنند. هدف اولیه طراحان این پروتکل برای مدل کارساز-کارخواه بوده‌است، و این پروتکل احرازهویت دوجانبه را فراهم می‌کند (یعنی هم کاربر و هم سرور هویت دیگری را تصدیق می‌کند). پیام‌های کربروس در مقابل حملات شنود و بازپخش محافظت شده‌اند.

واژه «کربروس» از شخصیتی به نام کربروس (یا سربروس) که از اساطیر یونانی است، گرفته شده‌است که این شخصیت، یک «سگ محافظ سه سره وحشی» است که متعلق به هادس بوده‌است.

کربروس بر اساس رمزنگاری کلید متقارن ساخته شده‌است، و به «طرف سوم قابل اعتماد» احتیاج دارد، و به صورت اختیاری می‌تواند از رمزنگاری کلید عمومی در فازهای خاصی از احرازهویت استفاده کند.[۱] کربروس به صورت پیش‌فرض از پورت یودی‌پی شماره ۸۸ استفاده می‌کند.

تاریخچه و توسعه

[ویرایش]

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 است. به روز رسانی‌های اخیر عبارتند از:

  • رمزگذاری و بررسی مشخصات فنی RFC 3961.
  • استاندارد رمزگذاری پیشرفته(AES)رمزگذاری برایkerberos5
  • نسخه جدیداز مشخصاتkerberos V5"خدمات شبکه احراز هویت(kerberos(V5". این نسخه RFC 1510، شرح دادن جنبه‌هایی از پروتکل و استفاده در یک توضیح مفصل تر و واضح تر در نظر گرفته شده‌است.
  • نسخه جدیداز مشخصاتGSS - API"مکانیسم رابط برنامه کاربردی خدمات عمومی امنیت نسخهKerberos5:نسخه2."RFC ۴۱۲۱

مایکروسافت ویندوز

[ویرایش]

ویندوز ۲۰۰۰ و بعد از آن Kerberos را به‌طور پیش فرض به عنوان روش احراز هویت خود استفاده می‌کردند. بعضی چیزهایی که توسّط مایکروسافت به مجموعه پروتکل‌های Kerberos اضافه شدند، در RFC 3244 «کربروس‌های مایکروسافت ویندوز ۲۰۰۰ - پروتکل‌های تغییر رمز عبور و تنظیم رمز عبور» مستند شده‌اند. در RFC 4757 مستنداتی درباره استفاده مایکروسافت از رمزنگاری RC4 آمده است. مایکروسافت در حالی که پروتکل Kerberos را استفاده می‌کند و گسترش می‌دهد، آن را در نرم‌افزار MIT استفاده نمی‌کند.

Kerberos به عنوان روش احراز هویت ترجیح داده شده استفاده می‌شود: به‌طور کلی، پیوستن یک کارخواه (client) به یک دامنه ویندوز به منزله فعّال‌سازی Kerberos به عنوان پروتکل پیش فرض برای احراز هویّت‌ها از سوی آن کارخواه به سرویس‌ها در حوزه ویندوز و تمام حوزه‌ها با روابط اعتماد به آن دامنه است. از طرف دیگر، زمانی که هرکدام کلاینت یا سرور یا هر دو به یک دامنه ملحق نشده‌اند (یا متعلّق به محیط دامنه مورد اعتماد یکسانی نیستند)، ویندوز در عوض از NTLM برای احراز هویت بین کلاینت و سرور استفاده می‌کند.

یونیکس و سیستم عامل‌های شبه یونیکس

[ویرایش]

بسیاری از سیستم عامل‌های یونیکس و شبه یونیکس، شامل فری‌بی‌اس‌دی، اپل مک اواس ده، لینوکس ردهت انترپرایز، سولاریس اوراکل، ای‌آی‌اکس آی بی ام و زد/اواس، شرکت سرور Univention و دیگران، شامل نرم‌افزار برای احراز هویت Kerberos از کاربران یاسرویس دهندگان است. پیاده‌سازی‌های جاسازی شده از پروتکل احراز هویت از Kerberos V برای عوامل مشتری و خدمات شبکه در حال اجرا بر روی سیستم عامل‌های جاسازی شده نیز موجوداست که از شرکت‌های مانند TeamF1، Inc است.

پروتکل

[ویرایش]

توصیف

[ویرایش]

مشتری تأیید هویت خود را به تأیید هویت سرور(AS) که نام کاربری را به یک مرکز توزیع کلید(KDC)ارسال می‌کند. KDC به مسائل مربوط به درخواست ارائه بلیط(TGT)، که زمان مهر، رمزگذاری آن با استفاده از رمز عبور کاربر و در نتیجه رمزگذاری شده به ایستگاه کاری کاربر را برمی‌گردانداعتبار می‌بخشد. بخاطر این است که به ندرت انجام می‌شود، به‌طور معمول در لاگین کاربر، اعتبار TGT باقی است تا زمان انقضای آن، هر چند ممکن توسط مدیر جلسه کاربر تکرار شود در حالی که آن‌ها وارد سایت شوند.

هنگامی که مشتری نیاز به برقراری ارتباط با گره دیگر دارد ("اصلی" در طرز سخن گفتن از Kerberos) مشتریTGT را به درخواست ارائه خدمات (TGS)، که معمولاً سهام میزبان همان KDC است می‌فرستد. پس از بررسی TGT که معتبر است و کاربر مجاز به دسترسی به سرویس درخواست شده‌است، TGS مسائل مربوط به بلیط و کلیدهای جلسه را وارد می‌نماید، که به مشتری برگشته است. مشتری پس از آن درخواست به سرور خدمات(SS) به همراه درخواست خدمات خود راارسال می‌کند.

پروتکلی که در جزئیات زیر توصیف شده‌است.

مشتری کاربر مبتنی بر ورود به سیستم

[ویرایش]
  1. کاربر نام کاربری و رمزعبوررا بر روی ماشین گیرنده وارد می‌کند. سایر مکانیزم‌های اعتبار مانند pkinit برای استفاده از کلیدهای عمومی در محلی از رمزعبور اجازه می‌دهند.
  2. مشتری رمزعبور را به کلید رمزنگاری متقارن تبدیل می‌کند. هر دودر ساختاردرونی در زمانبندی کلیدی یا یک مخلوط یک طرفه بسته رمز -مجموعه استفاده می‌شوند.

احراز هویت مشتری

[ویرایش]
  1. مشتری یک پیام cleartext از ID کاربر به درخواست خدمات AS از طرف کاربر می‌فرستد. (یادداشت: نه کلیدهای مخفی و نه رمزعبور به AS ارسال نمی‌شوند)AS کلید مخفی به وسیله هش کردن رمزعبور از کاربر در پایگاه داده تولید می‌کند. (دایرکتوری فعال در ویندوز سرور)
  2. AS برای دیدن مشتری در پایگاه داده چک می‌کند. اگر آن هست،AS دو پیام زیر را پشت هم به مشتری ارسال می‌کند:
    • پیام A: کلید جلسه مشتری /TGSبا استفاده از کلید مخفی مشتری / کاربر رمزگذاری شده‌است.
    • پیام B: بلیط ارائه بلیط(که شامل ID مشتری، آدرس شبکه مشتری، مدت اعتبار بلیط، و کلید نشست گیرنده/TGS)که با استفاده از کلیدهای مخفی TGS رمزگذاری شده‌است.
  3. هنگامی که مشتری پیام‌های A و B را دریافت می‌کند، آن به رمزگشایی پیام A با کلید محرمانه تولید شده از رمز عبور وارد شده توسط کاربر توجه می‌کند. اگر کاربر کلمه عبور را با رمزعبور در پایگاه داده AS مطابقت ندارد، وارد کند، کلید مخفی مشتری‌ها مختلف است و در نتیجه به رمزگشایی پیام Aقادر نخواهد بود. با یک رمز عبور معتبر و کلید مخفی، مشتری پیام A را رمزگشایی کرده کهکلید جلسه مشتری/ TGSرا به دست آورد. این کلید جلسه برای ارتباطات بیشتر با TGS استفاده می‌شود. (توجه: سرویس گیرنده پیام B را نمی‌تواند رمزگشایی کند، آن با استفاده از کلیدهای مخفی TGS رمزگذاری می‌کند) در این مرحله، مشتری اطلاعات کافی از تأیید هویتش به TGS داده.

مجوز خدمات مشتری

[ویرایش]
  1. هنگامی که درخواست خدمات را، مشتری در دو پیام زیر به TGS می‌فرستد:
    • پیام C: متشکل از TGT از پیام B و ID از خدمات درخواست شده‌است.
    • پیام Authenticator :D را (که از ID مشتری و برچسب زمان تشکیل شده‌است)، با استفاده از کلید جلسه مشتری/TGS رمزگذاری می‌کند.
  2. پس از دریافت پیام‌های C و D ,TGS بازیابی پیام B از پیام C است. این رمزگشایی پیام B با استفاده از کلیدهای مخفی TGS است. این "کلید جلسه مشتری/ TGS" با استفاده از این کلید، TGS پیام Dرا رمزگشایی می‌کند و دو پیام زیر را به مشتری می‌فرستد:
    • پیام E: بلیط مشتری به سرور(که شامل ID مشتری، آدرس شبکه سرویس گیرنده، مدت اعتبار و کلید جلسه مشتری/سرور)با استفاده از کلیدهای مخفی خدمات رمزگذاری شده‌است.
    • پیام F: کلید جلسه مشتری/سرور با کلید جلسه مشتری/TGS رمزگذاری شده‌است.

درخواست خدمات مشتری

[ویرایش]
  1. پس از دریافت پیام‌های E و F از TGS، مشتری اطلاعات کافی برای تأیید هویت خود به SS داده. مشتری به SS متصل و دو پیام زیر را می‌فرستد:
    • پیام E از مرحله قبل (بلیط کلاینت به سرور، با استفاده از کلیدهای مخفی سرویس رمزگذاری شده‌است)
    • پیام G:یک Authenticator جدید، که شامل ID مشتری، برچسب زمان و با استفاده از کلید جلسه مشتری/سرور رمزگذاری شده‌است.
  2. SS بلیط را با استفاده از کلید مخفی خود رمزگشایی می‌کند.SS با استفاده از کلید جلسه Authenticator را رمزگشایی کرده و پیام زیر را به مشتری برای تأیید هویت واقعی و تمایل به خدمت به مشتری می‌فرستد:
    • پیام H: برچسب زمان موجود در تأیید اعتبار مشتری به علاوه ۱، با استفاده از کلید جلسه مشتری/سرور رمزگذاری می‌کند.
  3. مشتری تأیید را با استفاده از کلید جلسه مشتری/سرور رمزگذاری می‌کند و چک می‌کند آیا برچسب زمان به درستی به روز شده‌است. اگر چنین است، پس از آن مشتری می‌تواند به سرور اعتماد کرده و می‌تواند به صدور درخواست خدمات به سرور شروع کند.
  4. سرور درخواست خدمات به مشتری را فراهم می‌کند.

اشکالات و محدودیت‌ها

[ویرایش]
  • تنها نقطه شکست: نیاز به در دسترس بودن مداوم از یک سرور مرکزی است. هنگامی که سرور Kerberos از کار افتاده، هیچ‌کس نمی‌تواند وارد شود. این را می‌توان با استفاده از چندین سرور از Kerberos و مکانیسم‌های تأیید هویت مجدد، کمتر کرد.
  • Kerberos زمان مورد نیاز سخت دارد، که به معنی ساعت‌هایی که میزبان درگیر باید در محدوده پیکربندی هماهنگ شده باشد. بلیط یک دوره در دسترس بودن زمان دارد و اگر ساعت میزبان با ساعت سرور Kerberos هماهنگ نباشد، تصدیق شکست خواهد خورد. تنظیمات پیش فرض

Per MIT مستلزم آن است که برپایه ساعت بیش از پنج دقیقه از هم جدا نباشند. در عمل شبح پروتکل زمان شبکه معمولاً برای حفظ و هماهنگی ساعت‌های میزبان استفاده می‌شود.

  • پروتکل مدیریت، استاندارد نیست و متفاوت بین پیاده‌سازی سرور است. تغییر رمز عبور

در RFC 3244 شرح داده شده‌است.

  • در صورت تصویب رمزنگاری کلید خصوصی (Kerberos می‌تواند کار کند با استفاده از رمزنگاری کلید خصوصی یا عمومی)، از آنجا که احراز اصالت توسط یک KDC متمرکز کنترل می‌شود، سازش از این زیرساخت تأیید هویت که به یک حمله به جعل هویت هر کاربر اجازه خواهد داد.
  • هر یک از سرویس‌های شبکه که نیاز به یک نام میزبان متفاوت دارند به مجموعه‌ای از کلیدهای خود از Kerberos نیازخواهند داشت. این پیچیدگی مجازی میزبان و خوشه است.
  • Kerberos نیاز به حساب کاربری، مشتریان کاربر و خدمات بر روی سرور به تمام روابط قابل اعتماد به رمزی از Kerberos سرور است (همه باید در همان دامنه Kerberos یا در دامنه که یک رابطه بااعتماد بین یکدیگر است باشند). Kerberos نمی‌تواند در حالاتی، که در آن کاربران می‌خواهند برای اتصال به خدمات از مشتریان ناشناخته/غیرقابل اطمینان در اینترنت یا سناریو کامپیوتر ابری معمولی، که در آن ارائه اعتبار به‌طور معمول به دانش در مورد سیستم به کاربران مشتری ندارد استفاده شود.
  • اعتماد مورد نیاز مشتری باعث ایجاد محیط‌های جاسوسی شده (به عنوان مثال. دامنه جداگانه برای تست محیط زیست، پاکت پیش تولید، پاکت مولد) مشکل: در هر صورت دامنه روابط اعتماد نیاز به ایجاد مانع از جدایی سخت از حوزه‌های محیط زیست یا بعلاوه مشتریان کاربر نیاز به ارائه برای هر یک از محیط‌ها دارند.

جستارهای وابسته

[ویرایش]

پانویس

[ویرایش]
  1. RFC 4556, abstract

منابع

[ویرایش]

مشارکت‌کنندگان ویکی‌پدیا. «Kerberos (protocol)». در دانشنامهٔ ویکی‌پدیای انگلیسی، بازبینی‌شده در ۲۱ آذر ۱۳۹۹.

عمومی

  1. منابع تیم کیت."مایکروسافت Kerberos(ویندوز)". کتابخانه MSDN
  2. B کلیفورد نیومن و تئودور Ts'o (سپتامبر 1994)"Kerberos: احراز هویت سرویس برای شبکه‌های کامپیوتری". ارتباطات 8-33:(9)32.DOI: ۱۰٫۱۱۰۹/۳۵٫۳۱۲۸۴۱
  3. جان T.Kohl, B. کلیفورد نیومن، و تئودورY. T'so "تکامل از سیستم احراز هویت Kerberos "(پست اسکریپت) در جوهانسن، D. ، منقل، FMT توزیع سیستم‌های باز. واشینگتن: IEEEانجمن کامپیوتر را فشار دهید. ص 94-78 .ISBN 0-8186-4292-0
  4. "خلاصه Kerberos :احراز هویت سرویس برای سیستم‌های شبکه باز " تاریخ سیستم‌های سیسکو = ۱۹ ژانویه ۲۰۰۶. برگرفته ۱۵آگوست۲۰۱۲.
  5. "چگونگی کار احراز هویت کربروس‌ها" Learn.networking.com. بیست وهشت ژانویه۲۰۰۸ برگرفت ۱۵ اوت ۲۰۱۲