590 likes | 871 Views
הגנה במערכות מתוכנתות חורף תשס"ד הרצאה 4. ניהול מפתחות PKI. הפרמטרים לבחירה - אורך המפתח. תלוי בסוג אלגוריתם ההצפנה (למשל, האם זה צופן סימטרי , צופן מפתח פומבי , אלגוריתם חתימה דיגטלית או MAC ) סוג המידע שמוצפן " זמן החיים " של המסמך המוצפן – כמה זמן המידע צריך להיות סודי (או חתום).
E N D
הגנה במערכות מתוכנתותחורף תשס"דהרצאה 4 ניהול מפתחות PKI
הפרמטרים לבחירה -אורך המפתח • תלוי בסוג אלגוריתם ההצפנה (למשל, האם זה צופן סימטרי, צופן מפתח פומבי, אלגוריתם חתימה דיגטלית או MAC) • סוג המידע שמוצפן • "זמן החיים" של המסמך המוצפן – כמה זמן המידע צריך להיות סודי (או חתום). הגנה - חורף תשס"ד - הרצאה 4
פרמטרים לבחירה - זמן החיים של המפתח נמדד ב-: • משך הזמן שבו המפתח נמצא בשימוש • כמות המידע שמוצפן בעזרת המפתח יש לקחת בחשבון: • הנזק שיגרם במידה והמפתח ייחשף • משך הזמן שבו המידע המוצפן רלוונטי הגנה - חורף תשס"ד - הרצאה 4
ניהול מפתחות • יצור בטוח של מפתחות • מפתחות חייבים להיות אקראיים. • רצוי לייצר מפתח פרטי באמצעי פיסי מאובטח. רצוי שהמפתח הפרטי לעולם לא יעזוב את האמצעי הפיסי. • הפצה של מפתחות (נראה בהמשך) • אחסון בטוח של מפתחות הגנה - חורף תשס"ד - הרצאה 4
ניהול מפתחות (המשך) • עדכון מפתחות • במערכות מפתח ציבורי, יש לאמת את המפתח הציבורי • במערכות סימטריות, דרוש פרוטוקול הסכמה על מפתחות. • Revocation • במערכות מפתח ציבורי, ליוצר המפתח בד”כ אין שליטה על מספר העותקים המופצים של המפתח הציבורי. דרוש ליצר “רשימה שחורה” של מפתחות. הגנה - חורף תשס"ד - הרצאה 4
הסכמה על מפתחות • שני הצדדים רוצים להסכים על מפתח סודי דרך ערוץ ציבורי. • דרך אפשרית: הצפנת הסוד ע"י צופן מפתח פומבי (כמו RSA). • נראה דרך נוספת: אלגוריתם להסכמה על מפתח – האלגוריתם של Diffie-Hellman. הגנה - חורף תשס"ד - הרצאה 4
אלגוריתם Diffie-Hellman (DH) • האלגוריתם מאפשר לשני אנשים להסכים על מפתח סודי דרך ערוץ ציבורי. • לכל אחד מהצדדים יש מפתח פרטי ומפתח פומבי. • כל אחד מהצדדים מחשב את הסוד המשותף על ידי שימוש במפתח הפרטי שלו, ובמפתח הציבורי של הצד השני. הגנה - חורף תשס"ד - הרצאה 4
Diffie-Hellman (DH) יהי pמספר ראשוני ויהי gיוצר של *Zp, החבורה הכפלית של Zp.הפרמטרים gו-p ידועים לכל משתמשי המערכת. המפתחות: הגנה - חורף תשס"ד - הרצאה 4
בוב אליס y,gy(mod p) x,gx(mod p) 1) gy(mod p) gx(mod p) 2) gyx(mod p) gxy(mod p) 3) הגנה - חורף תשס"ד - הרצאה 4
ניהול המפתחות הפומביים • (רלוונטי גם ל-DH וגם לאלגוריתמי מפתח פומבי אחרים, כגון צפנים) • כיצד תדע אליס מהו המפתח הפומבי של בוב? • הדרך הטבעית: ברגע שהם רוצים לדבר, יחליפו את המפתחות הפומביים שלהם (למשל, כך זה נעשה בפרוטוקול DH לעיל). • הבעיה: אז ניתן לבצע התקפת האיש שבאמצע (Man in the middle). הגנה - חורף תשס"ד - הרצאה 4
Hello, I am Alice gx Hello, I am Alice gx Hello, I am Alice gx’ Alice Matt Matt Bob E (M) E (M) gxy’ gx’y Hello, I am Bob gy Hello, I am Bob gy Hello, I am Bob gy’ התקפת האיש שבאמצעMan in the middle attack הגנה - חורף תשס"ד - הרצאה 4
פתרון: שימוש בסרטיפיקטים • במערכת ישנה רשות שכולם סומכים עליה: Certification Authority (CA) שתפקידה לחתום על סרטיפיקטים. כל המשתמשים במערכת יודעים את המפתח הפומבי של ה-CA • ה-CA נותן לכל משתמש סרטיפיקט. הסרטיפיקט הוא מחרוזת שמכילה: שם המשתמש, המפתח הפומבי שלו ותאריך פג התוקף של הסרטיפיקט. כל זה חתום על ידי ה-CA הגנה - חורף תשס"ד - הרצאה 4
אימון ב-CA • המשתמשים ב-CA סומכים על כך שלפני הנפקת הסרטיפיקט הוא מוודא שהזהות שמופיעה בסרטיפיקט שייכת לבעלים של המפתח זוג המפתחות הפרטי/פומבי שחציו הפומבי מופיע בסרטיפיקט • CA-ים נבדלים זה מזה ברמת תהליך הוידוא שהם מבצעים לפני ההנפקה הגנה - חורף תשס"ד - הרצאה 4
סרטיפיקטים • כאשר משתמש Aשולח למשתמש Bאת המפתח הפומבי שלו, הוא מצרף אליו את סרטיפיקט התואם • אם Bסומך על ה-CA שהנפיק את הסרטיפיקט, הואמאמת את החתימה של ה-CA על הסרטיפיקט וכך מוודא שהמפתח המפתח הפומבי אכן שייך ל-A הגנה - חורף תשס"ד - הרצאה 4
בעיה • אם A ו-B הם שני אנשים שלא נפגשו מעולם וחיים במקומות שונים ומרוחקים, אין שום סיבה להניח שקיים CA אחד ששניהם מכירים וסומכים עליו. • אפילו אם CA אחד כזה היה קיים, העומס עליו היה גדול מאוד. • פתרון: PKI(Public Key Infrastructure). הגנה - חורף תשס"ד - הרצאה 4
PKI – מבוא הגנה - חורף תשס"ד - הרצאה 4
מהו PKI • PKI – תשתית להעברה, פרסום ואמות של מפתחות ציבוריים. • המפתחות הפומביים בדרך כלל מפורסמים בעזרת סרטיפיקטים. • הגדרה של PKI צריכה להכיל הגדרות של התהליכים הבאים: • מתן סרטיפיקט(certification): כולל מי מנפיק סרטיפיקט למי, תהלי ההנפקה, ואיפה הסרטיפיקט שמור. • אימות מפתח פומבי: כולל כיצד מוצאים סרטיפיקטים מתאימים, וכיצד מאמתים סרטיפיקט (האם הוא תקף). • ביטול הסרטיפיקט. הגנה - חורף תשס"ד - הרצאה 4
למה צריך PKI? • נניח שזוג אנשים רוצים לדבר בצורה בטוחה דרך ערוץ ציבורי. • על-מנת שהצדדים יבצעו אימות אחד של השני, חייבים להסתמך על איזשהו מפתח ארוך טווח. • ניתן להשתמש במפתח סימטרי עליו הסכימו הצדדים מראש בפגישה פיסית. • בדרך כלל זה לא מעשי, ולכן נהוג להשתמש במפתחות פומביים ארוכי טווח. • חשוב שתהיה דרך בטוחה לקבל מפתח פומבי של הצד השני, אפילו אם המשתמשים לא נפגשו מעולם. הגנה - חורף תשס"ד - הרצאה 4
סרטיפיקטים • הגדרה של PKI בדרך כלל מכילה הגדרה של סרטיפיקט. • סרטיפיקט – זהו הפורמט שבעזרתו מבהיר ה-CA שהמפתח הפומבי המצורף הוא אמין. • למנפיק הסרטיפיקט קוראים CA (Certification Authority) • סרטיפיקט מכיל שם המשתמש, המפתח הפומבי שלו ואולי עוד מידע על המשתמש, הכל חתום בעזרת המפתח הפרטי של ה-CA. הגנה - חורף תשס"ד - הרצאה 4
דוגמא ל-PKI • ה-PKI הפשוט ביותר הוא: CA יחיד, שמנפיק סרטיפיקטים לכל המשתמשים. כאשר אליס רוצה לקבל סרטיפיקט, היא ניגשת פיסית ל-CA, מזדהה בפניו ומקבלת סרטיפיקט. בהמשך, אם בוב ירצה לדעת מהו המפתח הפומבי של אליס, היא תשלח לו את הסרטיפיקט. • הבעיה: כל המשתמשים צריכים לסמוך על CA אחד, ולגשת אליו פיסית. ברשתות גדולות זה לא מעשי. הגנה - חורף תשס"ד - הרצאה 4
אליס בוב • רוב PKI-ים מכילים מספר CA-ים. • משתמשים יכולים לשמש כ-CA-ים. • למשתמשים שלא משמשים כ-CA-ים קוראים EE(End Entity). • CA יכול להנפיק סרטיפיקט ל-CA אחר או ל-EE. • דוגמא: אליס מאמינה ל-CA1. בגלל ש-CA1 הנפיק סרטיפיקט ל-CA2, היא תאמין גם לסרטיפיקטים ש-CA2 הנפיק. סימונים: CA EE XY: X חתם על הסרטיפיקט של Y CA1 CA2 הגנה - חורף תשס"ד - הרצאה 4
מסלולי אמון • בדוגמא לעיל, אליס בונה מסלול אמון(Trust Path):(CA1,CA2,Bob). • באופן כללי, כאשר A רוצה לאמת את המפתח הפומבי של B, מסלול (CA1,CA2,…,CAn,,B) הוא מסלול אמון חוקי, אם: • CA1 הוא CA ש-A סומך עליו ויודע את המפתח הפומבי שלו (למשל, קיבל אותו באופן פיסי). • כל ישות במסלול (פרט ל-B) חתמה על סרטיפיקט של הישות הבאה אחריה במסלול. הגנה - חורף תשס"ד - הרצאה 4
ארגון ה-CA-ים • הדרך שבה ה-CA-ים מאורגנים (כלומר: מי חותם למי, איך נראה מסלול אמון וכיצד מוצאים אותו) – זה חלק חשוב מהגדרה של PKI. • לדוגמא: • מבנה היררכי כללי: ה-CA-ים מאורגנים בעץ. כל צומת פנימי בעץ חותם לילדיו ולאביו. העלים – EE’s • יתכנו חתימות נוספות ("קיצורי דרך" – cross certification). הגנה - חורף תשס"ד - הרצאה 4
John Moshe דוגמא Root Israel Israel Israel Israel UK US US Elbit Intel IBM IBM IBM הגנה - חורף תשס"ד - הרצאה 4
ארגון CA-ים - המשך • ישנם PKI-ים ללא מבנה מסודר של CA-ים. לדוגמא, ב-PGP אין מבנה בכלל. כל משתמש משמש גם כ-CA ויכול לחתום על סרטיפיקטים של משתמשים אחרים. כל משתמש מחליט לבד לאילו סרטיפיקטים להאמין. • למבנה כזה קוראים web of trust. • ישנם PKI-ים בעלי מבנים נוספים... הגנה - חורף תשס"ד - הרצאה 4
Scalability • נרצה ש-PKI שמיועד לרשתות גדולות יקיים את תכונת ה-scalability, כלומר: ישאר מעשי גם הם ישנם המון משתמשים. בפרט, מסלולי האמון יהיו קצרים יחסית וקלים למציאה ובדיקה. • לדוגמא: Web of trust לא מעשי מבחינה זו. למרות שמעריכים שבין כל זוג משתמשים, אורך מסלול האימות יהיה קצר (6 או 7), לא כל מסלול אמון מתאים, מכיוון שכל משתמש מחליט לבד על מי הוא סומך. הגנה - חורף תשס"ד - הרצאה 4
המבנה ההיררכי • במבנה היררכי אין בעיה של scalability, אבל ישנה בעיה אחרת. המערכת יותר מדי תלויה ב-CA-ים שנמצאים ברמות העליונות של העץ. ישנם המון מסלולים שעוברים דרך CA-ים אלה, ולכן חשיפה של מפתח פרטי של אחד מהם תגרום הרבה נזק. לכן CA-ים אלה מהווים יעד התקפה מפתה. הגנה - חורף תשס"ד - הרצאה 4
אמון • PKI מגדיר מודל של אמון. • דוגמאות למודלים: • לכל משתמש, קיים לפחות CA אחד שעליו המשתמש סומך לגמרי. אם CA זה סומך על CA’, אז גם המשתמש סומך על CA’ באופן אוטומטי. • (PGP): כל משתמש מגדיר באופן מפורש על מי הוא סומך. • סומכים על CA-ים מסוימים רק למטרות מסוימות: כמו למשל, מאמינים רק לסרטיפיקטים שמונפקים על ידי ה-CA, בהם זהות המשתמש היא כתובת הדואר האלקטרוני. סומכים על סרטיפיקטים על מפתחות חתימה אך לא מפתחות הצפנה. הגנה - חורף תשס"ד - הרצאה 4
אימות סרטיפיקט • אימות סרטיפיקט מורכב מ: • אימות החתימה. • בדיקה שהסרטיפיקט עדיין בתוקף (נהוג כי תוקף הסרטיפיקט רשום בתוך הסרטיפיקט, אך יש מקרים בהם צריך לפנות למנפיק הסרטיפיקט.( • בדיקה שהסרטיפיקט לא בוטל. הגנה - חורף תשס"ד - הרצאה 4
ביטול סרטיפיקטים (revocation) מתי צריך לבטל סרטיפיקט? • המפתח הפרטי (המתאים למפתח הפומבי שבסרטיפיקט) התגלה. • המפתח הפרטי של ה-CA (שאתו חתום הסרטיפיקט) התגלה. • ה-CA כבר לא מחזיק סרטיפיקטים עבור משתמש זה (למשל: המשתמש עבר לעבוד בחברה אחרת). הגנה - חורף תשס"ד - הרצאה 4
CRL – certificate revocation list • נהוג שכל CA מפרסם רשימה של סרטיפיקטים שבוטלו והיו חתומים ע"י ה-CA. לרשימה זו קוראים CRL. • הרשימה חתומה ע"י ה-CA, ופרט לרשימת הסרטיפיקטים המבוטלים מכילה מספר סידורי, תאריך פרסום הרשימה והתאריך בו תפורסם הרשימה הבאה. • יש לבדוק את המפתח של ה-CA אתו הרשימה חתומה. הגנה - חורף תשס"ד - הרצאה 4
CRL - המשך • לפעמים, יש צורך לפרסם CRL לפני התאריך המיועד של ה-CRL הבא. • על המשתמשים להחליט לבד, כל כמה זמן הם בודקים את ה-CRL. • ה-CRL נשלח למשתמש יחד עם ה-time stamp, חתום ע"י ה-CA, ומכיל את כל הסרטיפיקטים שבוטלו עד כה ותוקפם עדיין לא פג. הגנה - חורף תשס"ד - הרצאה 4
CRL - המשך • השימוש ב-CRL עושה את תהליך אימות של סרטיפיקט מסובך. בנוסף, גודל הרשימות יכול להיות מאוד גדול, מה שמגדיל עוד יותר את הזמן הדרוש לאימות סרטיפיקט. • פתרון חלקי: חלוקה של CRL לכמה תת רשימות. הגנה - חורף תשס"ד - הרצאה 4
Out of band authentication • בדרך כלל, כאשר משתמש מצטרף ל-PKI, הוא צריך להיפגש פיסית עם ישויות קיימות ב-PKI (בד"כ CA-ים): צריך להזדהות בפני ה-CA על-מנת לקבל סרטיפיקט, ורצוי לקבל מפתח פומבי של CA אחד לפחות באופן פיסי. • בד"כ רצוי שמודל של PKI יקטין ככל האפשר אותנטיקציה מסוג זה, אך אי אפשר להיפטר ממנה לגמרי. הגנה - חורף תשס"ד - הרצאה 4
בעיות במימוש PKI • Scalability • יש צורך במספר גדול של CAs מקושרים בינהם • שמות • עמידות ואמינות • חשיפת מפתחות • ביטול certificates (revoke) • בעיות משפטיות : אימון, אחריות • פרטיות, אנונימיות הגנה - חורף תשס"ד - הרצאה 4
PKI היום • רוצים להגדיר ולהקים תשתית גלובאלית של PKI באינטרנט, כך שכל זוג אנשים בעולם יוכלו לדבר ביניהם בצורה בטוחה. • היום עובדים עלהתאמה של X.509 לצורך זה (מודל זה נקרא PKIX). הגנה - חורף תשס"ד - הרצאה 4
X.509 הגנה - חורף תשס"ד - הרצאה 4
X.509 • סטנדרד של ITU-T שמגדיר PKI. זהו סטנדרד מאוד חשוב. הרבה פרוטוקולים (לדוגמא: IPSec, SSL) מסתמכים על סרטיפיקטים ופרוטוקולי אימות של X.509. • מגדיר ביצוע אימות עבור סטנדרד של מדריך X.500. • הגירסה הראשונה הופיעה ב-’88. היום יש כבר גירסה שלישית. • ממליץ, אך לא מחייב לבצע אימות באמצעות RSA יחד עם פונקצית hash. הגנה - חורף תשס"ד - הרצאה 4
X.500 • סטנדרד של ITU-T שמתאר מדריך(Directory)מקוון, גלובאלי, מבוזר. • מדריך – זה שרת או קבוצה מבוזרת של שרתים ששומרים מבנה נתונים עם מידע על משתמשים. • ב-X.500 בכל כניסה במדריך שמורות תכונות שונות, אחת מהן היא ה-public key של הישות המתאימה. • המדריך מתוחזק ומתופעל ע"י הירארכיה (עץ) של תתי מדריכים. • לכל ישות בעץ יש שם שהוא ייחודי מבין אחיו. • לכל ישות בעץ יש שם ייחודי בעולם Distinguished Name (DN) המתקבל ע"י שרשור השמות שבמסלול מן השורש אל הצומת המתאים בעץ. הגנה - חורף תשס"ד - הרצאה 4
Distinguished Name (DN) • שם שהוא יחודי במדריך הגלובאלי – בעל משמעות חוקית • קבוצה סדורה של זוגות. כל זוג מכיל מילת מפתח שמורה, ומחרוזת שמכילה ערך. דוגמא ל-DN: CN (Common Name) = David Cohen OU (Organizational Unit) = Finance O (Organization) = IBM C (Country) = Israel הגנה - חורף תשס"ד - הרצאה 4
X.509 • לא מגדיר כיצד ה-CA-ים מאורגנים, אבל ממליץ לשמור על המבנה ההיררכי של X.500, כלומר: ה-CA-ים הם הצמתים הפנימיים של המדריך. כל CA חותם לבניו על סרטיפיקטים. ניתן גם להוסיף cross certification. הגנה - חורף תשס"ד - הרצאה 4
Version Certificate serial number Signature algorithm Issuer DN Validity Period Subject DN Subject public key information CA’s siganture on the Certificate X.509 v3Certificate format חתום הגנה - חורף תשס"ד - הרצאה 4
קבלת סרטיפיקט X.509 מגדיר שתי דרכים לקבלת סרטיפיקט • Central : בשיטה זו ה-CA מייצר את המפתח הפרטי והציבורי עבור ה-subject, ושולח אותם (בצורה מוגנת)אל ה-subject. שיטה זו מתאימה לחלוקה של certificates שמאוכסנים על אמצעי פיסי ממוגן (לדוגמא smart card) • Distributed: בשיטה זו ה-subject מייצר את המפתח הפרטי והציבורי, ושולח בקשה אל ה-CA שמחזיר לו certificate עבור המפתח הציבורי הגנה - חורף תשס"ד - הרצאה 4
CRL • המספר הסידורי שמופיע בסרטיפיקט הוא יחודי מבין כל הסרטיפיקטים שהונפקו ע"י אותו CA. • X.509 מגדיר מנגנון שבו CA מפרסם רשימה של סרטיפיקטים מבוטלים (CRL). • הרשימה מכילה את המספרים הסידוריים של הסרטיפיקטים שבוטלו יחד עם התאריך בו הסרטיפיקט בוטל. • בנוסף, CRL מכיל שדות שראינו קודם (תאריך, מספר סידורי וכו'). • ה-CRL חתום ע"י ה-CA. הגנה - חורף תשס"ד - הרצאה 4
PGP הגנה - חורף תשס"ד - הרצאה 4
PGP - מבוא • תוכנה שהומצאה על ידי Phil Zimmermann. • מאפשרת הצפנה ואימות של קבצים והודעות דואר אלקטרוני. • תוכנה יעילה ופשוטה. מאוד נפוצה היום. הגנה - חורף תשס"ד - הרצאה 4
מודל האמון של PGP • לא מניח קיום של רשות שכל המשתמשים סומכים עליה (CA). • כל משתמש משמש כ-CA ויכול לחתום על סרטיפיקטים של משתמשים אחרים כרצונו. • כל משתמש מחליט לבד בצורה מפורשת על מי הוא סומך ועל מי לא. הגנה - חורף תשס"ד - הרצאה 4
מודל האמון של PGP • המפתחות הפומביים נשלחים בין המשתמשים בעזרת הסרטיפיקטים. • סרטיפיקט מכיל כתובת דואר אלקטרוני ומפתח פומבי. • הסרטיפיקטים חתומים ע"י משתמשים שונים. למשל: אליס יכולה לבקש מהחברים שלה לחתום על הסרטיפיקט שלה. • הרעיון: בוב יאסוף חתימות שונות על הסרטיפיקט של אליס. על סמך החתימות הוא יחליט האם הוא מאמין לסרטיפיקט או לא. הגנה - חורף תשס"ד - הרצאה 4
מודל האמון של PGP - המשך • כיצד Bob מחליט האם להאמין לסרטיפיקט של Alice או לא? • אינטואיטיבית, Bob צריך להאמין רק לחתימות ש: • נעשו ע"י מפתח פרטי אמיתי של החותם. • נעשו ע"י משתמשים שהוא סומך עליהם. הגנה - חורף תשס"ד - הרצאה 4
מחזיק המפתחות הפומביים • כל משתמש ב-PGP מחזיק מבנה נתונים שנקרא "מחזיק המפתחות הפומביים" (Public Key Ring) ובו שמורים מפתחות פומביים של משתמשים שונים. מבנה נתונים זה הוא טבלה בה כל שורה מתאימה למפתח פומבי של משתמש כלשהו. נתעלם משני השדות הראשונים. הגנה - חורף תשס"ד - הרצאה 4