1 / 30

הגנה במערכות מתוכנתות

הגנה במערכות מתוכנתות. תרגול 5 – אבטחה ברמת אפליקציה - PGP. הערה: שקפים אלה אינם מהווים תחליף לחומר התרגולים המפורסם באתר הקורס, ומשמשים כעזר הוראה בלבד. השקפים מכילים שרטוטים מהאתר www.pgpi.org. PGP – Pretty Good Privacy. ניתן להוריד מימוש של PGP בחינם בכתובת: www.pgpi.org.

lumina
Download Presentation

הגנה במערכות מתוכנתות

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. הגנה במערכות מתוכנתות תרגול 5 – אבטחה ברמת אפליקציה - PGP הערה: שקפים אלה אינם מהווים תחליף לחומר התרגולים המפורסם באתר הקורס, ומשמשים כעזר הוראה בלבד. השקפים מכילים שרטוטים מהאתר www.pgpi.org

  2. PGP – Pretty Good Privacy ניתן להוריד מימוש של PGP בחינם בכתובת: www.pgpi.org Philip Zimmermann הגנה במערכות מתוכנתות - תרגול 5

  3. "ללא הגבלת הכלליות" נניח צופן פומבי RSA סקירהPGP מספקת את השירותים הבאים: XM Signature required? חתום על ההודעה X  X || SigPrs(h(X)) Yes אימות No דחיסה דחיסה XZ(X) "ללא הגבלת הכלליות" נניח צופן סימטרי Rijndael הגרל k, הצפן את k ואת X X  EPPubr(k) || ESk(X) הצפנה Confidentiality required? Yes No תאימות לדואר אלקטרוני המרה ל-radix 64 XR64(X) חלוקת המסר לחלקים הגנה במערכות מתוכנתות - תרגול 5

  4. FileName Timestamp1 (file creation time) Message Data ההודעה הגנה במערכות מתוכנתות - תרגול 5

  5. XM Signature required? חתום על ההודעה X  X || SigPrs(h(X)) Yes אימות No דחיסה דחיסה XZ(X) הגרל k, הצפן את k ואת X X  EPPubr(k) || ESk(X) הצפנה Confidentiality required? Yes No תאימות לדואר אלקטרוני המרה ל-radix 64 XR64(X) חלוקת המסר לחלקים הגנה במערכות מתוכנתות - תרגול 5

  6. אימות – שלב השליחה X SHA-1, etc… SigPrs(h(X)) h(X): 160 bit M || SigPrs(h(X)) Prs הגנה במערכות מתוכנתות - תרגול 5

  7. אימות – שלב הוידוא • למקבל נתון: X || Sig(X) כאשר SigPrs(h(X))Sig(X) = • יחשב h(X) • יחשב VerPubs(Sig(X)) • האימות מצליח אם קיבל אותה תוצאה בשניהם: VerPubs (SigPrs(h(X)),h(X)) = true הגנה במערכות מתוכנתות - תרגול 5

  8. Timestamp2 (message sending time) Signature SigPrs Message Digest (h(M)) FileName Timestamp1 (file creation time) Message Data עוד קצת הגנה • כדי להגן מפני התקפת שידור חוזר, מוסיפים Timestamp של זמן שליחה • יכלל בחלק החתום. • התוצאה בינתיים: הגנה במערכות מתוכנתות - תרגול 5

  9. ענייני מפתחות... • PGP מאפשרת יותר מזוג מפתחות פרטי-פומבי אחד. • החלפת מפתחות "חלקה"יותר • מפתחות שונים לקבוצות אנשים שונות  אין התאמה חח"ע בין משתמשים לזוגות המפתחות שלהם! • איך פותרים? • נצרף את המפתח הפומבי להודעה? (בזבזני...) • ניתן לכל מפתח ID? (איך נשייך ID למפתח?...) נשתמש ב-64 הביטים התחתונים של המפתח בתור KeyID הגנה במערכות מתוכנתות - תרגול 5

  10. עוד בעיה... • אם האימות לא הצליח, מה זה אומר? EPPubs (SigPrs(h(X)))  h(x) • מישהו שינה את ההודעה? • ואולי לא השתמשנו במפתח הנכון? • פתרון: השולח יעביר גם את שני הבתים הראשונים של h(X) • אם שונים מה-h(X) שהמקבל חישב זו אינדיקציה שההודעה שונתה. הגנה במערכות מתוכנתות - תרגול 5

  11. סיכום שלב האימות: Timestamp2 (message sending time) Signature KeyID of Pubs Two first bytes of h(M) SigPrs Message Digest (h(M)) FileName Timestamp1 (file creation time) Message Data הגנה במערכות מתוכנתות - תרגול 5

  12. XM Signature required? חתום על ההודעה X  X || DPPrs(h(X)) Yes אימות No דחיסה דחיסה XZ(X) הגרל k, הצפן את k ואת X X  EPPubr(k) || ESk(X) הצפנה Confidentiality required? Yes No תאימות לדואר אלקטרוני המרה ל-radix 64 XR64(X) חלוקת המסר לחלקים הגנה במערכות מתוכנתות - תרגול 5

  13. הצפנהע"י אלג' מפתח סימטרי מיוצר מפתח סימטרי חדש k לכל הודעה M עפ"י תזמון הקלדה ESk(X) המפתח נשלח עם ההודעה, מוצפן ע"י המפתח הפומבי של המקבל: EPpubr(k) EPpubr(k) || ESk(X) הגנה במערכות מתוכנתות - תרגול 5

  14. והפענוח... EPpubr(k) || ESk(X) EPpubr(k) k ESk(X) הגנה במערכות מתוכנתות - תרגול 5

  15. למה אימות לפני הצפנה? • ההודעה הנשלחת ב-PGP: EPPubr(k) || ESk(M || Sig(M)) • ומה אם היינו מצפינים קודם? EPpubr(k) || ESk(M) || Sig(X) • משיגים יעילות במקרה בו רוצים להוכיח שמשתמש חתם על הודעה מסוימת. X הגנה במערכות מתוכנתות - תרגול 5

  16. XM Signature required? חתום על ההודעה X  X || DPPrs(h(X)) Yes אימות No דחיסה דחיסה XZ(X) הגרל k, הצפן את k ואת X X  EPPubr(k) || ESk(X) הצפנה Confidentiality required? Yes No תאימות לדואר אלקטרוני המרה ל-radix 64 XR64(X) חלוקת המסר לחלקים הגנה במערכות מתוכנתות - תרגול 5

  17. דחיסה • משתמשים ב-ZIP לצורך דחיסת ההודעה • לאחר האימות • לא צריך לשמור את הדחיסה של ההודעה כדי להוכיח את החתימה • לפני ההצפנה • פעולת ההצפנה פוגעת ביעילות הדחיסה הגנה במערכות מתוכנתות - תרגול 5

  18. סיכום השלבים עד כה: KeyID of Pubr Symetric Key Component EPPubr Symmetric key k Timestamp2 (message sending time) Signature KeyID of Pubs Two first bytes of h(M) SigPrs ZIP ESk Message Digest (h(M)) FileName Timestamp1 (file creation time) Message Data הגנה במערכות מתוכנתות - תרגול 5

  19. XM Signature required? חתום על ההודעה X  X || DPPrs(h(X)) Yes אימות No דחיסה דחיסה XZ(X) הגרל k, הצפן את k ואת X X  EPPubr(k) || ESk(X) הצפנה Confidentiality required? Yes No תאימות לדואר אלקטרוני המרה ל-radix 64 XR64(X) חלוקת המסר לחלקים הגנה במערכות מתוכנתות - תרגול 5

  20. תאימות לדוא"ל וחלוקת המסר • פרוטוקול דוא"ל מוגדר עבור תווי ASCII(בתחום 0-127) • ההודעה המוצפנת לא תכיל רק סימני ASCII • משתמשים בהמרת radix-64 • 3 בתי הודעה  4 תווי ASCII(אורך ההודעה גדל ב-33%...) • דחיסת ZIP מפצה על ההגדלה • חלק מיישומי דוא"ל מגבילים גודל הודעה • PGP מחלק הודעה נשלחת לתת-הודעות קטנות, ומרכיב אותה בחזרה בצד המקבל. הגנה במערכות מתוכנתות - תרגול 5

  21. פורמט הודעת PGP KeyID of Pubr Symetric Key Component EPPubr Symmetric key k Timestamp2 (message sending time) Signature KeyID of Pubs Two first bytes of h(M) R64 SigPrs ZIP ESk Message Digest (h(M)) FileName Timestamp1 (file creation time) Message Data הגנה במערכות מתוכנתות - תרגול 5

  22. ניהול המפתחות • מחזיק מפתחות פרטיים • המפתח הפרטי מוצפן בצופן סימטרי: • המשתמש מקליד סיסמה pass • מיוצר hash של הסיסמה בן 160 ביטים h(pass) • מתוך h(pass) נלקחות 128 סיביות שישמשו כמפתח לצופן סימטרי • הסיסמה למפתח הפרטי לא נשמרת על המחשב בשום דרך • יש להקליד את הסיסמה בכל פעם שניגשים למפתח הפרטי. אינדקס אינדקס הגנה במערכות מתוכנתות - תרגול 5

  23. ניהול המפתחות - המשך • מחזיק מפתחות פומביים • בביצוע אימות • שליחה – מוציאים מפתח פרטי ע"י UserID • קבלה – מוצאים את המפתח הפומבי המתאים עפ"י KeyID • בביצוע הצפנה • שליחה – מוציאים מפתח פומבי של המקבל עפ"י UserID • קבלה – מוצאים את המפתח הפרטי המתאים עפ"י KeyID אינדקס אינדקס הגנה במערכות מתוכנתות - תרגול 5

  24. מודל האמון ב-PGP • איך משתמש A יודע שמפתח פומבי מסוים הוא אכן של משתמש B? • העברת מפתח פיזית? (לא תמיד מעשי...) • שימוש ב-CA? (צריך לסמוך על גוף מרכזי כלשהו...) • הפתרון:"רשת אמון" אישית • כל משתמש הוא CA עבור משתמשים אחרים • כל משתמש מגדיר על מי הוא סומך כ-CA ובאיזה מידה הגנה במערכות מתוכנתות - תרגול 5

  25. רמת אמון • נשמר בשדה Owner Trust במחזיק המפתחות הפומבי • ערכים אפשריים: • Ultimate Trust(רק למפתחות של A – משקל 1) • Always Trust(משקל 1/X) • Usually Trust(משקל 1/Y) • No Trust(משקל 0) • הפרמטרים X ו-Y נקבעים ע"י המשתמש A. • אם לא נאמר אחרת, נניח X=1, Y=2 • אם סכום המשקלות עולה על 1 – המפתח לגיטימי בעיני A. הגנה במערכות מתוכנתות - תרגול 5

  26. מחזיק המפתחות הפומבי של A • A יחזיק רשומה עבור כל מפתח פומבי של משתמש B: כל האישורים ש-A קיבל על המפתח הפומבי של B (יתכנו מספר אישורים לכל מפתח) שדה בינארי – האם A מאמין כי Pub הינו מפתח פומבי של B או לא עבור כל אישור בשדה Signatures, מה רמת האמון של מנפיק האישור הגנה במערכות מתוכנתות - תרגול 5

  27. דוגמה הגנה במערכות מתוכנתות - תרגול 5

  28. הצגת רמת האמון בצורה גרפית הגנה במערכות מתוכנתות - תרגול 5

  29. שאלה על PGP(חורף תשס"ג, מועד ב', 23.2.03) • ב-PGP נעשה שימוש במפתחות פומביים פרטיים. • המפתחות הפומביים נשמרים בצורה גלויה, ואילו המפתחות הפרטיים נשמרים בצורה הבאה: • המשתמש מקיש סיסמה (password) באורך כלשהו. • PGP מחשבת H(password) כאשר H פונקציית עירבול קריפטוגרפית. • PGP מחשבת EP=EH(password)(Private_Key) כאשר E צופן סימטרי ושומרת את התוצאה בקובץ. • בכל מקרה הסיסמה password אינה נשמרת בשום צורה על המחשב. הגנה במערכות מתוכנתות - תרגול 5

  30. שאלה על PGP- המשך • נשים לב שאם הסיסמה שהוקשה שגויה אז המפתח הפרטי שיפוענח לא יהיה המפתח הנכון. במקרה והסיסמה שהוקשה שגויה, האם יש ל-PGP דרך לדעת האם הסיסמה שהוקשה נכונה? שים לב שההודעות הנשלחות ב-PGP אינן חייבות להיות בעלות משמעות. הגנה במערכות מתוכנתות - תרגול 5

More Related