290 likes | 453 Views
הגנה במערכות מתוכנתות. תרגול 12 – IKE. הערה: שקפים אלה אינם מהווים תחליף לחומר התרגולים המפורסם באתר הקורס, ומשמשים כעזר הוראה בלבד. IKE – Internet Key Exchange. פרוטוקול להסכמה על מפתחות. תפקיד עיקרי: לבנות SA משותף עבור IPsec . ממומש כאפליקציה העובדת מעל UDP בפורט 500. נועד לספק:
E N D
הגנה במערכות מתוכנתות תרגול 12 – IKE הערה: שקפים אלה אינם מהווים תחליף לחומר התרגולים המפורסם באתר הקורס, ומשמשים כעזר הוראה בלבד.
IKE – Internet Key Exchange • פרוטוקול להסכמה על מפתחות. • תפקיד עיקרי:לבנות SA משותף עבור IPsec. • ממומש כאפליקציה העובדת מעל UDP בפורט 500. • נועד לספק: • סודיות • אימות • Identity Protection • PFS – Perfect Forward Secrecy • חשיפת מפתח ארוך טווח לא חושפת מפתחות קצרי טווח הגנה במערכות מתוכנתות - תרגול 12
סקירה - מה נראה • IKE עמיד בפני: • התחזות • Denial of Service, במקרים מסויימים • התקפת שידור חוזר • Man in the middle הגנה במערכות מתוכנתות - תרגול 12
סקירה - מה נראה • מבנה IKE • פאזה I: יצירת ערוץ מאובטח המגן על הפאזה השנייה. • Main Mode (6 הודעות מועברות) • Aggressive Mode (3 הודעות מועברות) • לא מספקת הגנה כנגד DoS ו-Identity Protection. • אימות באמצעות סוד משותף (pre-shared secret) • אימות באמצעות חתימות • פאזה II:Quick Mode – בניית SA עבור IPsec. • שני צדדים: יוזם (initiator) ומגיב (responder). שתי דרכי הפעלה מספר דרכי אימות הגנה במערכות מתוכנתות - תרגול 12
Main Mode • שלושה שלבים: • הסכמה על SA משותף. • ISAKMP SA (Internet Security Association and Key Management Protocol) • החלפת מפתחות Diffie-Hellman • ישמשו לגזירת המפתחות לפאזה השניה • אימות הצדדים ושני השלבים הראשונים • בכל שלב נשלחות שתי הודעות • סה"כ 6 הודעות ב-Main Mode. הגנה במערכות מתוכנתות - תרגול 12
Main Mode – שלב ראשון • המטרה:הסכמה על SA משותף • ה-cookies – מחרוזות אקראיות • מוחלפות בכל הפעלה של הפרוטוקול. • משמשות כ-session identifiers • אין session ב-UDP: ה-cookies ירשמו ב-header בכל הודעה החל מהשניה • הגנה מפני DoS (רק ב-Main Mode) – הרחבה בהמשך. מכיל cookie של היוזם, נסמנו ב-CKYi כולל את CKYi, ו-cookie חדש של המגיב, נסמנו CKYr בחירה של המגיב ל-SA מתוך SAi. רשימת אלגוריתמי הצפנה ואימות הגנה במערכות מתוכנתות - תרגול 12
Main Mode – שלב שני • המטרה:החלפת מפתחות DH • Ni, Nr - nonces – מחרוזות אקראיות • תפקידם להוסיף טריות להפעלה של הפרוטוקול. • בכל הפעלה של הפרוטוקול כל צד צריך לבחור nonce חדש. מכיל CKYi, CKYr הגנה במערכות מתוכנתות - תרגול 12
Main Mode – שלב שלישי • המטרה:אימות הצדדים ושני השלבים הראשונים • הסרטיפיקטים הם אופציונליים • ישלחו רק באימות באמצעות חתימות. • החלק שאחרי * מועבר באופן מוצפן • ההצפנה נעשית ע"י SA עליו הוסכם בשלבים הראשונים - מפתח SKEYIDe. • רק בשלב זה הזהויות נחשפות (בחלק המוצפן) אימות היוזם והמגיב אימות היוזם והמגיב הגנה במערכות מתוכנתות - תרגול 12
גזירת המפתחות • ע"י פונקציה פסאודו אקראית • PRF – pseudo random function • בד"כ תמומש כפונקציית תמצות עם מפתח (חד-כיוונית) • מסכימים על הפונקציה בשלב החלפת ה-SA • קביעת מפתח SKEYID • אימות עם סוד משותף pss (pre-shared secret): SKEYID = PRFpss(Ni | Nr) • אימות באמצעות חתימות: SKEYID = PRFNi | Nr(gxixr) • מחרוזת סודית – לעולם לא תועבר על הרשת הגנה במערכות מתוכנתות - תרגול 12
אימות הצדדים • בעזרת המחרוזות AUTHr, AUTHi: HASHi=PRFSKEYID(gxi | gxr | CKYi | CKYr | SAi | IDi) HASHr=PRFSKEYID(gxr | gxi | CKYr | CKYi | SAi | IDr) • שתי המחרוזות כוללות את SAi • למנוע החלפת האלגוריתמים שהוצעו בחלשים יותר הגנה במערכות מתוכנתות - תרגול 12
גזירת המפתחות לפאזה השניה • גוזרים שלוש מפתחות • SKEYIDd – ישמש לגזירת מפתחות בפאזה השניה: SKEYIDd = PRFSKEYID(gxixr | CKYi | CKYr | 0( • SKEYIDa – ישמש לאימות הפאזה השניה: SKEYIDa = PRFSKEYID(SKEYIDd | gxixr | CKYi | CKYr | 1( • SKEYIDe – ישמש להצפנת הפאזה השנייה והשלב השלישי ב-Main Mode SKEYIDe = PRFSKEYID(SKEYIDa | gxixr | CKYi | CKYr | 2( הגנה במערכות מתוכנתות - תרגול 12
סיכום ביניים – Main Mode • IKE מספק: • סודיות – SKEYIDd משמש להגנה על הפאזה השנייה. • אימות – באמצעות מחרוזות AUTH. • Identity Protection – הזהויות מועברות בצורה מוצפנת • מה לגבי התקפה אקטיבית?... • PFS – יצירת מפתחות DH חדשים בכל ריצה • IKE עמיד בפני: • התחזות – אימות עם pss או חתימות • Denial of Service – באמצעות cookies, נראה בהמשך • התקפת שידור חוזר – nonce חדשים בכל ריצה • Man in the middle – ע"י חתימות על תוכן ההודעות הגנה במערכות מתוכנתות - תרגול 12
Aggressive Mode • שלוש הודעות בלבד: • משמעות הסימונים כמו ב-Main Mode. • אין הצפנות הגנה במערכות מתוכנתות - תרגול 12
Main Mode vs. Aggressive Mode • Main Mode – 6 הודעות • Aggressive Mode – 3 הודעות • המחיר שמשלמים: • Identity Protection • הגנה כנגד Denial of Service הגנה במערכות מתוכנתות - תרגול 12
Identity Protection • הסתרה של זהויות הצדדים המשתתפים בפרוטוקול. • לכאורה מתקיים תמיד ב-Main Mode • זהויות המשתתפים מועברות בצורה מוצפנת (בשלב השלישי) • בפועל מתקיים רק באימות באמצעות חתימות • זהויות היוזם והמגיב מוגנות כנגד התקפה פאסיבית • זהות המגיב מוגנת גם כנגד התקפה אקטיבית הגנה במערכות מתוכנתות - תרגול 12
Identity Protection - אימות עם pss SKEYID = PRFpss(Ni | Nr) IDi , IDr pss מעגל של תלויות! זיהוי היוזם נעשה ע"י כתובת ה-IP שלו: IDi = IPi gxixr SKEYID SKEYIDd HASHi HASHr SKEYIDa • xy : לצורך חישוב y יש לדעת את x • יחס טרנזיטיבי • הושמטו תלויות שחוזרות על עצמן. SKEYIDe הגנה במערכות מתוכנתות - תרגול 12
Identity Protection - אימות עם חתימות SKEYID = PRFNi | Nr(gxixr) gxixr SKEYID SKEYIDd HASHi HASHr IDi , IDr SKEYIDa private keys SKEYIDe • xy : לצורך חישוב y יש לדעת את x • יחס טרנזיטיבי • הושמטו תלויות שחוזרות על עצמן. AUTHi AUTHr הגנה במערכות מתוכנתות - תרגול 12
Identity Protection – התקפה אקטיבית gxr’ ניתן לפענוח הגנה במערכות מתוכנתות - תרגול 12
Denial of Service • IKE דורשת חישוב מפתחות DH • פעולה יקרה • התקפת DoS: יזום הפעלות רבות של IKE בפרק זמן קצר. • התוקף עצמו יכול להימנע מביצוע חישובי DH בעצמו. • בעיה לתוקף משימוש בכתובת IP שלו: • חושף את עצמו. • מותקף יכול להגביל מספר התקשרויות בו-זמניות המותרות מכתובת בודדת. בד"כ משתמשים בכתובות מקור אחרות (IP Spoofing) הגנה במערכות מתוכנתות - תרגול 12
הגנה מפני Denial of Service • cookies עוזרים להתגונן מפני DoS עם IP Spoofing. • היוזם נדרש להראות שקיבל את ה-cookie של השרת. initiator(attacker) IPi responder IPr IPx HDR(CKYi), Sai, from IPx HDR(CKYi,CKYr), Sar, from IPr don’t know CKYr, can’t continue… הגנה במערכות מתוכנתות - תרגול 12
הערות • מחייב למנוע יכולת ניחוש cookie • בד"כ ה-cookies יחושבו באופן הבא: CKYx = h(IPi, IPr, time, local_secretx) • לא יגן כאשר התוקף משתמש בכתובות IP של רשת בה הוא יושב. • ניתן להתגונן ע"י הגבלת מספר הפעלות IKE ברמת הרשת. • לא יגן בפני IP Spoofing דו-כיווני • מורכב מאוד – התקפה זו לא תחשב סבירה בקורס. הגנה במערכות מתוכנתות - תרגול 12
תזכורת • מבנה IKE • פאזה I: יצירת ערוץ מאובטח המגן על הפאזה השנייה. • Main Mode (6 הודעות מועברות) • Aggressive Mode (3 הודעות מועברות) • לא מספקת הגנה כנגד DoS ו-Identity Protection. • אימות באמצעות סוד משותף (pre-shared secret) • אימות באמצעות חתימות • פאזה II:Quick Mode – בניית SA עבור IPsec. נתמקד כעת בפאזה השנייה. שתי דרכי הפעלה מספר דרכי אימות הגנה במערכות מתוכנתות - תרגול 12
פאזה שנייה • מטרה:הסכמה על IPsec SA. • הפאזה מאובטחת ע"י ISAKMP SA • עליו הוסכם במהלך הפאזה הראשונה. • ניתן להשתמש בהפעלה אחת של פאזה ראשונה עבור מספר הפעלות של הפאזה השנייה. הגנה במערכות מתוכנתות - תרגול 12
הודעות פאזה שנייה (Quick Mode) • המידע לאחר *מוצפן • באמצעות SA מפאזה ראשונה (SKEYIDe) • HASHi – מחרוזות לאימות ההודעות • SA – עבור IPsec – יכיל גם SPI וסוג פרוטוקול (ESP/AH) • IDi,IDr – זהויות הצדדים אותם ישמש ה-IPsec עליו מסכימים. • אופציונאלי - למקרה ששונות מאלה שהוחלפו בפאזה הראשונה. הגנה במערכות מתוכנתות - תרגול 12
חישובים HASH1 = PRFSKEYIDa(MID | SA | Ni | [gxi] | [IDi | IDr] ) HASH2 = PRFSKEYIDa(MID | Ni | SA | Nr | [gxr] | [IDi | IDr] ) HASH3 = PRFSKEYIDa(0 | MID | Ni | Nr) • MID – מזהה של הפעלה מסוימת של Quick Mode. • המפתחות עבור IPsec SA: KEYMAT = PRFSKEYIDd([gxixr] | protocol | SPI | Ni | Nr) • protocol – ESP/AH. • המפתח המתאים לכל כיוון שליחה יחושב ע"י ה-SPI של הצד השולח. הגנה במערכות מתוכנתות - תרגול 12
שאלה על IKE • חברת הי-טק מעוניינת לאפשר לעובדיה להתחבר בעזרת IPsec אל שרתי החברה. העובדים • מתחברים כל אחד לספק ה-Internet החביב עליו (Netvision, אינטרנט זהב, וכיוצ"ב) • מבצעים IKE מול ה-security gateway של החברה. • מאבטחים את כל תעבורת ה-IP שלהם בעזרת IPsec. • החברה החליטה כי איננה יכולה לעמוד בהוצאות הכרוכות ברכישת CA, ולכן מנהל הרשת הקצה לכל אחד מהעובדים IKE pre-shared secret. הערה: ספקי אינטרנט מספקים ללקוחות הפונים אליהם כתובות IP זמנית – בכל התחברות מקבל הלקוח כתובת IP חדשה. הגנה במערכות מתוכנתות - תרגול 12
שאלה על IKE - המשך • הסבר מדוע IKE main mode אינו מתאים לשימוש במקרה זה. • הסבר מתי יעדיף משתמש לעבוד עם IKE main mode ולא עם IKE aggressive mode. • עקב מצוקת הגיוס של עובדי הי-טק, החלה החברה לנסות לגייס באופן פעיל עובדים ממתחרותיה. מנהלים בחברה נסעו אל אתרים של המתחרות וקיימו פגישות אינטנסיביות (וסודיות) עם עובדיהן של המתחרות. מנכ"ל החברה אסר על המנהלים המגייסים להתקשר אל שרתי החברה כל זמן שהם נמצאים באתרי החברות המתחרות. הסבר מדוע. הגנה במערכות מתוכנתות - תרגול 12
שאלה על IKE - המשך • אחד המנהלים שלא השלים עם תחושת הניתוק הציע להריץ גרסה מיוחדת של IKE על כל היחידות בחברה שמשתמשות ב-IPsec. הוא הציע לשנות את הגדרת SKEYID עם pre-shared secret authentication בצורה הבאה: SKEYID = PRFNi | Nr(gxixr) • האם הגרסה המיוחדת פותרת את בעיית ההתקשרות עם Main Mode? הסבר את תשובתך. • הראה התקפה על הגרסה המיוחדת של IKE. הגנה במערכות מתוכנתות - תרגול 12
שאלה על IKE - המשך • מנהל אחר שהזדהה עם רגשות חברו הציע את השינוי הבא: בנוסף לשינוי החישוב של SKEYID שמוגדר בסעיף ד', תשונה גם צורת חישובים של HASHi ו-HASHr כאשר משתמשים ב-pre-shared secret authentication. דרך החישוב החדשה היא: HASHi = PRFSKEYID | pre-shared-secret(gxi | gxr | CKYi | CKYr | SAi | IDi) HASHr = PRFSKEYID | pre-shared-secret(gxr | gxi | CKYr | CKYi | SAi | IDr) • האם הגרסה החדשה פותרת את בעיית ההתקשרות ב-Main Mode? הסבר מדוע! • האם ההתקפה שתיארת בסעיף ד'2 אפשרית כעת? הסבר! הגנה במערכות מתוכנתות - תרגול 12