קרברוס הוא פרוטוקול הזדהות המאפשר להעביר מידע מאבוטח ברשת לא מאובטחת. נחשב לפרוטוקול הזדהות הכי מאובטח כרגע בAD ונמצא בשימוש בין השירותים באקטיב דיירקטורי או שירותי צד שלישי.
תהליך הזדהות
קרברוס קיבל את שמו על שם מצת מהמיתולוגיה היוונית המתוארת כלב בה שלושה ראשים מאחר ותהליך האימות מתבצע מול 3 יישויות שונות:
- Key Distrubute Center (KDC) - שירות צד שלישי שאחראי לספק את כרטיסי הסשן מכיל אצלו את המפתחות של המשתמש וגם של שרת השירות .
- Authentiaction Server (AS) - אחראי לתהליך אימות התחלתי אל מול המשתמש ומספק לו כרטיס להמשך התהליך (TGT).
- Ticket Granting Server (TGS) - מקבל את הלקוח שעבר את האימות ולבסוף מספק לו כרטיס לגשת לשירות.
- Client - המשתמש שנדרש לספק את זהותו ורוצה לגשת לשירות .
- Service Server - שרת השירות שהמשתמש רוצה לגשת אליו.
- המשתמש שולח בקשת הזדהות לAS (ASP_REQ):
- הודעה הזדהות המכילה:
- מזהה של המשתמש
- מזהה השירות (SPN)
- הAS שולח למשתמש 2 הודעות (ASP_REP):
- הודעה A המכילה את פרטים על הTicket Granting server המוצפנת באמצעות המפתח של המשתמש
- מזהה הTGS
- מפתח סשן לTGS
- חותמת זמן
- הודעה B המכילה Ticket Granting Ticket (TGT) המוצפנת עם מפתח TGS
- מזהה של המשתמש
- מזהה הTGS
- מפתח סשן לTGS
- כתובת IP של המשתמש
- תוקף
- חותמת זמן
- המשתמש שולח 3 הודעות (TGS_REQ):
- הודעה B
- הודעה C המכילה את
- מזהה השירות (SPN)
- תוקף
- הודעה D המכילה פרטי הזדהות של המשתמש המוצפנת עם מפתח הסשן של הTGS
- מזהה המשתמש
- חותמת זמן
- הTGS מפענח את הודעה B וD ומבצע אימות בין ההודעות לפי מזהה המשתמש, חותמת הזמן, כתובת IP, שהתוקף של הTGT תקין. לאחר מכן, הTGS שולח למשתמש 2 הודעות (ASP_REP)
- הודעה E הכרטיס לשירות שמכילה מוצפן במפתח של השירות
- מזהה של השירות (SPN)
- מזהה של המשתמש
- כתובת IP של המשתמש
- תוקף
- חותמת זמן
- מפתח הסשן לשירות - המפתח שבאמצעותו השירות יתקשר עם המשתמש
- הודעה F המכילה:
- מזהה השירות (SPN)
- תוקף
- חותמת זמן
- מפתח הסשן לשירות - המפתח באמצעותו יתקשר עם השירות
- המשתמש שולח לשירות 2 הודעות
- הודעה E
- הודעה G המכילה פרטי הזדהות של המשתמש מוצפן באמצעות המפתח סשן לשירות
- מזהה משתמש
- חותמת זמן
- שרת השירות מפענח את הודעות E וG ומבצע אימות בין ההודעות לפי מזהה המשתמש, חותמת הזמן, כתובת הIP, ושהתוקף של הכרטיס לשירות תקין. לאחר מכן השירות שולח למשתמש הודעת הזדהות:
- הודעה H המכילה פרטי הזדהות של השירות ומוצפנת באמצעות מפתח הסשן לשירות
- מזהה השירות (SPN)
- חותמת זמן
- המשתמש מפענח את ההודעה H ובודק את הפרטי אימות של השירות וכעת יש לשניהם מפתח סשן סימטרי שהם יכולים לתקשר באמצעותו.
עכשיו כשלמדנו קצת איך תהליך האוטנטיקציה של קרברוס עובד אנחנו יכולים ללמוד כאן כיצד לתקוף 😆