دانشگاه صنعتی شریف
دانشکده مهندسی کامپیوتر
آزمایشگاه امنیت داده و شبکه
http://dnsl.ce.sharif.edu
درس :9کربروس
محمد صادق دوستی
1 / 39
امنیت داده و شبکه
محمد صادق دوستی
فهرست
تاریخچه
کربروس در سطح باال
جزئیات کربروس 5
قلمروهای کربروس
کربروس در امروز
2 / 39
امنیت داده و شبکه
محمد صادق دوستی
پروژه آتنا ()Project Athena
آتنا :ایزدبانوی نگهبان شهر آتن
پروژه آتنا :پروژهای مشترک بین DEC ،MITو IBM
هدف :ایجاد محیطی برای محاسبات توزیع شده.
آغاز ،1983پایان تحقیق و توسعه .1991
هنوز ( )2015هم به فعالیت ادامه میدهد.
بودجه 50 :میلیون دالر
محصوالت اصلی ،Kerberos :سیستم
،X Windowپیامرسان Zephyr
3 / 39
امنیت داده و شبکه
محمد صادق دوستی
کربروس ( Kerberosیا )Cerberus
کربروس ( :)Κέρβεροςبر گرفته از اسطوره یونانی
نااام سااگی سااهساار کااه محاااف دروازههااای عااالم مردگااان بااود
نمیگذاشت زندگان مزاحم ارواح شده و ارواح از عالم مردگان خارج
شوند.
Authentication
Accounting
Audit
4 / 39
امنیت داده و شبکه
محمد صادق دوستی
تاریخچه کربروس – 1
مبتنی بر پروتکل تصدیق هویت نیدهام-شارودر ( )1978و اصاحح
شده آن توسط دنینگ و ساکو (.)1981
کلید متقارن استفاده از KDCبه کارگیری برچسب زمانی.
نسخه 1الی 3کربروس در MITبه صورت داخلی.
نسخه 4در سال 1990به طور رسمی منتشر شد.
استفاده از DESبرای رمزنگاری
دارای محدودیتها و اشکاالت امنیتی فراوان
5 / 39
امنیت داده و شبکه
محمد صادق دوستی
تاریخچه کربروس – 2
نسخه 5در 1993به طور رسمی منتشر شد (.)RFC 1510
تا سال ،2000رمزنگاری در آمریکا «سحح» محسوب میشد.
انتشار کد کربروس به خارج از آمریکا جرم بود.
دانشگاه KTHسوئد با الهام از مساتندات نساخه ،4نساخهای از
کربروس را با عنوان eBonesمنتشر ساخت.
اسااتاندارد 5کربااروس ( )RFC 1510در سااال 2005تحاات عنااوان
RFC 4120اصحح شد.
6 / 39
امنیت داده و شبکه
محمد صادق دوستی
تاریخچه کربروس – 3
سایر اصححات کربروس در :2005
به کارگیری روشهای متنوع رمزنگاری و صحت ()RFC 3961
به کارگیری )RFC 3962( AES
در سال MIT ،2007کنسرسیوم کربروس را تشکیل داد.
شامل شرکتهایی چون اراکل ،اپل ،گوگل ،و مایکروسافت
نهادهای دانشگاهی نظیر ،KTHاستنفورد و MIT
مایکروسااافت بااا توجااه بااه اسااتفاده از کربااروس در Active
،Directoryچندین بهبود عمده در آن داده است.
7 / 39
امنیت داده و شبکه
محمد صادق دوستی
تاریخچه کربروس – 4
بهبودهای مایکروسافت:
به روز رسانی GSS-APIدر RFC 4121
مذاکره الگوریتمهای رمز در RFC 4537
امکاااان اساااتفاده از زیرسااااخت کلیاااد عماااومی در کرباااروس
( )PKIINITدر RFC 4556
OCSPبرای PKINITدر RFC 4557
الگوریتمهای RC4-HMACبرای کربروس در RFC 4757
رمزنگاری خم بیضوی برای PKINITدر RFC 5349
8 / 39
امنیت داده و شبکه
محمد صادق دوستی
تاریخچه کربروس – 5
سایر بهبودهای مایکروسافت:
قیود جدید برای نامها در RFC 6111
پشتیبانی از گمنامی در RFC 6112
پیش-تصدیق هویت در RFC 6113
استاندارد سازی نامگذاری در RFC 6806
امااروزه سااه پیااادهسااازی عمااده از کربااروس وجااود دارد،MIT :
هایمدال ( )Heimdalو مایکروسافت ()Active Directory
9 / 39
امنیت داده و شبکه
محمد صادق دوستی
فهرست
تاریخچه
کربروس در سطح باال
جزئیات کربروس 5
قلمروهای کربروس
کربروس در امروز
10 / 39
امنیت داده و شبکه
محمد صادق دوستی
تصدیق هویت در یک سیستم توزیع شده
کاربران
)Workstation (WS
کارگزارها
کارگزار
فایل
شبکه
کارگزار
Mail
کارگزار
edu
11 / 39
امنیت داده و شبکه
محمد صادق دوستی
سه روش تصدیق هویت در یک سیستم توزیع شده
.1
اعتماد کامل به WSها :هر ،WSهویت کاربران خود را تصادیق
میکند .هر کارگزار ،بر اساس IDتصادیق شاده کااربر ،خادمت
ارائه میدهد.
.2
اعتماد متوسط به WSها :هر WSخود را برای کارگزار ،تصدیق
هویت میکند .پا از آن کاارگزار باه تصادیق هویات کااربران
توسط WSها اعتماد دارد.
.3
کمترین اعتماد به WSها :هرکاربر IDخود را برای ساروی ،و
هر سروی IDخود را برای کاربر تصدیق نمایدWS .هاا صارفا
نقش اجرای پروتکلها را دارند.
12 / 39
امنیت داده و شبکه
محمد صادق دوستی
اهداف طراحی کربروس
کربروس روش سوم را که امنتر و مناسب محیطهای بازر
برگزید.
اسات
سایر اهداف:
امنیت در برابر حمحت فعال و منفعل
اتکاپذیری نبود تکنقطه خرابی در سیستم
شفافیت کاربر غیر از وارد نمودن ناام کااربری/گاذرواژه بارای باار
نخست ،دیگر درگیر تصدیق هویت نشود SSO( .اولیه!)
گسترشپذیری سیستم باید بتواند تعداد زیادی کاربر و کارگزار را
پشتیبانی نماید.
13 / 39
امنیت داده و شبکه
محمد صادق دوستی
و تعامل در سطح باال5 موجودیتهای کربروس
KDC
0
1 AS_REQ
username/
password
2
6
محمد صادق دوستی
TGS
Ticket-Granting
Service
AS_REP
(TGT, ks1)
3
4
AS
Authentication
Service
TGS_REP
(Ticket, ks2)
TGS_REQ
(TGT, Auth1)
کارگزار
5
Access Service
(Ticket, Auth2)
Response
امنیت داده و شبکه
14 / 39
سلسله مراتب کلیدها در کربروس 5
گذرواژه :کلید طوالنی مدت به روش مشخصای (ماالح درهامساازی) از
روی گذرواژه کاربر ساخته شده و در یاک انبااره مرکازی نازد KDC
نگهداری میشود.
در طول نشست ،فقط یک مرتبه ورود نام کاربری /گذرواژه (.)SSO
باید در اسرع وقت از حافظه WSپاک شود.
بلیت اعطای بلیت ( )TGTو :ks1عمر آن برابر عمر نشست اسات .در
طی نشست فقط یک مرتبه نیاز به دریافت آن است.
بلیت (اعطای سروی ) و :ks2عمر آن برابر عمر نشست است .در طای
نشست ،به ازای هر سروی ،فقط یک مرتبه نیاز به دریافت آن است.
15 / 39
امنیت داده و شبکه
محمد صادق دوستی
هدف از بلیتها و کلیدهای نشست
هر بلیت حاوی اطحعاتی است که به دارنده آن اجازه میدهد طی دوره
زمانی مشخص ،به خدمت مورد نظر دست یابد.
بلیت اعطای بلیت :دسترسی به خدمت دریافت بلیت
بلیت اعطای سروی :دسترسی به سروی
مورد نظر
بلیتها به صورت آشکار در اختیار WSقرار میگیرند ،و WSبلیتهاا
را به صورت آشکار به TGSیا کارگزار میدهد.
برای جلوگیری از تکرار ،کلیدهای نشست مورد استفاده قرار میگیرند.
WSبه همراه بلیتAuthenticator ،ای را ارائه میکند که با کلید
نشست ساخته شده و حاوی برچسب زمانی است.
16 / 39
امنیت داده و شبکه
محمد صادق دوستی
اعتماد در کربروس
کاربران به WSها اعتماد دارند.
به همین دلیل گذرواژه خود را به WSمیدهند.
با ایان حاال WSبایاد بحفاصاله پا
از دریافات TGTو ،ks1
گذرواژه را از حافظهاش پاک نماید.
همه به KDCاعتماد دارند.
17 / 39
امنیت داده و شبکه
محمد صادق دوستی
فهرست
تاریخچه
کربروس در سطح باال
جزئیات کربروس 5
قلمروهای کربروس
کربروس در امروز
18 / 39
امنیت داده و شبکه
محمد صادق دوستی
جزئیات کربروس 5
در ادامه مهمترین بخشهای پیامهای کربروس 5را میبینیم.
عمدا از برخی از جزئیات صرفنظر کردهایم تا فهم پیامها سادهتر باشد.
نمادگذاری:
:Wایستگاه کاری ()Workstation
:Uکاربر،
:Sکارگزار
:KUکلید طوالنی مدت کاربر با ( KDCبر اساس گذرواژه)
:KTGSکلید طوالنی مدت TGS
:KSکلید طوالنی مدت کارگزار با KDC
19 / 39
امنیت داده و شبکه
محمد صادق دوستی
دو پیام نخست :دریافت TGTو کلید نشست 1
IDU ║ IDTGS ║ TIMES ║ nW
WAS:
║ IDU ║ TGT
ASW:
{ks1 ║ TIMES ║ nW ║ IDTGS}KU
:TIMES زمان آغاز و پایان اعتبار TGT
TGT = {ks1 ║ IDU ║ ADDRW ║ TIMES}KTGS
کااه در آن ADDRW ،آدرس شاابکه (معمااوال )IPایسااتگاه کاااری
است.
20 / 39
امنیت داده و شبکه
محمد صادق دوستی
2 دریافت بلیت و کلید نشست:دو پیام دوم
WTGS:
IDS ║ TIMES ║ nW ║ TGT ║Auth1
TGSW:
IDU ║ TICKETS ║
{ks2 ║ TIMES ║ nW ║ IDS}ks1
TGT = {ks1 ║ IDU ║ ADDRW ║ TIMES}KTGS
TICKETS = {ks2 ║ IDU ║ ADDRW ║ TIMES}KS
Auth1 = {IDU ║ tW}ks1
محمد صادق دوستی
امنیت داده و شبکه
21 / 39
دو پیام سوم :تصدیق هویت دو طرفه با کارگزار
TICKETS ║Auth2
WS:
{tW║ Subkey ║ Seq#}ks2
SW:
TICKETS = {ks2 ║ IDU ║ ADDRW ║ TIMES}KS
Auth2 = {IDU ║ tW ║ Subkey ║ Seq#}ks2
در پیامهای باال W ،و Sروی یاک زیار کلیاد ( )Subkeyبارای
فقط یک مرتبه خدمت توافق میکنند.
22 / 39
امنیت داده و شبکه
محمد صادق دوستی
فهرست
تاریخچه
کربروس در سطح باال
جزئیات کربروس 5
قلمروهای کربروس
کربروس در امروز
23 / 39
امنیت داده و شبکه
محمد صادق دوستی
مفهوم قلمرو ()Realm
به تعادادی «کااربر و ساروی » ( )Principalکاه همگای در حیطاه
کنترل یک KDCکربروس هستند ،قلمرو آن KDCگفته میشوند.
معمااوال هاار قلماارو خودمختااار بااوده و تحاات نظااارت یااک راهباار
( )Administratorقرار دارد.
گاه ممکن است کاربر یک قلمرو بخواهد از کارگزار قلمرو دیگر خادمت
بگیرد.
برای این منظور باید روابط اعتماد مشخصی تعریف شود.
کاربرد :خدمات بین دو سازمان ،دو شرکت ،دو دانشگاه ،و ...
24 / 39
امنیت داده و شبکه
محمد صادق دوستی
راهکار کربروس 4
در کربروس ،4برای خدمتدهی بین قلمروها ،الزم است هر دو KDC
با هم کلید مشترک داشته باشند.
WS ابتدا برای ASخود تصدیق هویت شده و TGTمیگیرد.
WS با ارائه TGTبه TGSخود ،یک بلیت برای دسترسی به TGT
قلمرو دیگر میگیرد.
WS بلیاات گااام قباال را بااه TGSقلماارو دیگاار داده و بلیتاای باارای
دسترسی به کارگزار قلمرو دیگر میگیرد.
WS بلیت گام قبل را به کارگزار قلمرو دیگر داده و خدمت میگیرد.
25 / 39
امنیت داده و شبکه
محمد صادق دوستی
ایراد راهکار کربروس ،4و راهکار کربروس 5
اگر Nقلمرو داشته باشیم ،راهکار کرباروس 4باه ) O(N2کلیاد
بین KDCها نیاز دارد.
عدم گسترشپذیری
در کربروس ،5تمام پیامها حاوی اطحعات قلمرو هستند.
WSدر ابتدا قلمرو خود و IDTGSرا به ASمیگوید.
ASقلماارو TGSرا بااه WSگفتااه و قلماارو WSرا در TGT
میگنجاند.
TGSقلماارو Sرا بااه WSگفتااه و قلماارو WSرا در بلیاات
میگنجاند.
26 / 39
امنیت داده و شبکه
محمد صادق دوستی
راهکار کربروس ( 5ادامه)
عحوه بر تغییرات فوق ،کرباروس 5در هار پیاام تعادادی پارچم ( )Flagرا
تنظیم میکند.
یکی از پرچمهای مهم ،پرچم FORWARDEDاست.
بلیتی که این پرچم روی آن تنظیم شده باشد ،میتواند با نشانی شابکهای
متفاوتی صادر شود.
مفید برای وقتی که شبکه ساختار سلسله مراتبی (درختی) دارد.
به جای اشتراک کلید باین هار دو ،KDCمایتاوان در سااختار درختای
شبکه بین هر دو گره (KDCهاای مجااور در درخات) کلیاد باه اشاتراک
گذاشت.
کافی است بلیت در مسایر باین WSو Sروی درخات FORWARD
شود.
27 / 39
امنیت داده و شبکه
محمد صادق دوستی
فهرست
تاریخچه
کربروس در سطح باال
جزئیات کربروس 5
قلمروهای کربروس
کربروس در امروز
28 / 39
امنیت داده و شبکه
محمد صادق دوستی
خروجی اجرای کربروس ( 5اکتیو دایرکتوری) در Wireshark
29 / 39
امنیت داده و شبکه
محمد صادق دوستی
نکات مهم – 1
KDC در پاسااااان باااااه نخساااااتین ،AS-REQخطاااااای
PREAUTH-REQUIREDرا ارائه داده است.
پاایش-تصاادیق هویاات ( )Pre-Authenticationیکاای از
بهبودهای مایکروسافت بر کربروس است ()RFC 6113
ASبه WSبلیت TGTرا نمیدهد ،مگر آنکه WSابتادا اابات
کند که کلید KUرا دارد افزایش امنیت
30 / 39
امنیت داده و شبکه
محمد صادق دوستی
نکات مهم – 2
کربروس از UDPپورت 88استفاده میکند.
در حال حاضر امکان به کارگیری TCPپورت 88نیز وجود دارد.
حتی در RFC 6251امکاان بهارهگیاری از کرباروس بار بساتر
SSL/TLSنیز تعریف شده است.
31 / 39
امنیت داده و شبکه
محمد صادق دوستی
نکات مهم – 3
برخی از پیامها به صورت آشکار قابل مشاهده هستند:
نام کاربرerodriguez :
نام قلمروEXAMPLE.COM :
واژه krbtgt
تاریخها (…)20370913
32 / 39
امنیت داده و شبکه
محمد صادق دوستی
تفسیر Wiresharkاز پیامهای کربروس 1 -
نسخه کربروس ()5
نوع پیام ()AS-REQ
پرچمها
نام و قلمرو کاربر
نام و قلمرو TGS
تاریخها
الگوریتمهای رمز
مورد پذیرش کاربر
33 / 39
امنیت داده و شبکه
محمد صادق دوستی
تفسیر Wiresharkاز پیامهای کربروس 2 -
تمرین :خطای PREAUTH-REQUIRED
34 / 39
امنیت داده و شبکه
محمد صادق دوستی
تفسیر Wiresharkاز پیامهای کربروس 3 -
AS-REQ به همراه PREAUTH
داده رمز و
تصدیق هویت
شده
35 / 39
امنیت داده و شبکه
محمد صادق دوستی
تفسیر Wiresharkاز پیامهای کربروس 4 -
بلیت (شامل بخش
آشکار و رمز شده)
36 / 39
امنیت داده و شبکه
محمد صادق دوستی
keytab رمزگشایی پیامهای کربروس به کمک فایل
A keytab is a file used to store the
encryption keys for one or more
Kerberos principals (usually host
and/or service principals).
محمد صادق دوستی
امنیت داده و شبکه
37 / 39
برنامههای Kerberized
یکی از روشهای پیادهسازی SSOدر سازمانها ،توسعه برنامههاای
Kerberizedاست.
برنامههایی که قادرند با بلیتهای کربروس کار کنند و بر اساس این
بلیتها به کاربران خدمت دهند.
API های متنوعی بارای Kerberizeنماودن برناماههاا وجاود
دارد.
مرورگرها نیز میتوانند با بلیتهای کربروس کار کنند.
مناسب برای کاربردهای مبتنی بر وب.
38 / 39
امنیت داده و شبکه
محمد صادق دوستی
پایان
صفحه درس:
http://ce.sharif.edu/courses/94-95/2/ce442-1/
مراجعه حضوری جهت رفع اشکال :یکشنبهها 17الی 18
(طبقه پنجم دانشکده ،درب شیشهای جنب آسانسور)
یا در زمانهای دیگر با قرار قبلی
یا به وسیله رایانامهdousti@ce :
39 / 39
امنیت داده و شبکه
محمد صادق دوستی
© Copyright 2026 Paperzz