150 likes | 397 Vues
הגנה במערכות מתוכנתות. תרגול 5 – ניהול מפתחות. הערה: שקפים אלה אינם מהווים תחליף לחומר התרגולים המפורסם באתר הקורס, ומשמשים כעזר הוראה בלבד. ניהול מפתחות. פרוטוקול Diffie-Hellman ניהול מפתחות פומביים בעיית הפצת המפתחות Certification Authorities וסרטיפיקטים ביטול סרטיפיקטים.
E N D
הגנה במערכות מתוכנתות תרגול 5 – ניהול מפתחות הערה: שקפים אלה אינם מהווים תחליף לחומר התרגולים המפורסם באתר הקורס, ומשמשים כעזר הוראה בלבד.
ניהול מפתחות • פרוטוקול Diffie-Hellman • ניהול מפתחות פומביים • בעיית הפצת המפתחות • Certification Authorities וסרטיפיקטים • ביטול סרטיפיקטים הגנה במערכות מתוכנתות - תרגול 5
Diffie-Hellman (1976) Martin E. Hellman Whitfield Diffie הגנה במערכות מתוכנתות - תרגול 5
אינטואיציה – הסכמה על צבע סודי yi=f(xi) xi yj=f(xj) xj Kij=F(yj,xi) Kji=F(yi,xj) הגנה במערכות מתוכנתות - תרגול 5
השיטה • p – מספר ראשוני גדול • g – יוצר של החבורה הכפלית Z*p. • כל משתמש בוחר 1<xi<p-1 באקראי. • f(x)=gx (mod p) • פונקציה חד-כיוונית: בעיית הלוגריתם הדיסקרטי (DLOG) היא בעיה קשה. • בטיחות הפרוקטול מסתמכת על ההנחה שבעית DH היא קשה הגנה במערכות מתוכנתות - תרגול 5
הסכמה על מפתח משותף סודי עם DH g yi=gxi (mod p) xi g yj=gxj (mod p) xj Kij=yjxi=gxjxi (mod p) Kji=yixj=gxixi (mod p) הגנה במערכות מתוכנתות - תרגול 5
שאלה על DH • נשים לב שבאלגוריתם החלפת המפתחות של DH אם שני משתמשים A ו-B לא מחליפים את המפתחות הפרטיים והפומביים שלהם בכל הפעלה של הפרוטוקול, תמיד יווצר עבורם אותו סוד משותף K. • על מנת לפתור את בעיה זו הוצע להוסיף לפרוטוקול הודעות שלישית ורביעית בהן הצדדים ישלחו זה לזה פרמטרים אקראיים i ו-j בהתאמה. הגנה במערכות מתוכנתות - תרגול 5
שאלה על DH – המשך • הפרוטוקול החדש יראה כך: AB YA=gxa YB=gxB i j הסוד החדש עליו מסכימים הצדדים הינו: K=g(xA+j)(xB+i) הגנה במערכות מתוכנתות - תרגול 5
שאלה על DH - המשך לאורך השאלה נתעלם מהתקפות אקטיביות דוגמת Man in the Middle והתחזות. • הסבר כיצד כל צד יחשב את הסוד המשותף K. • האם הפרוטוקול החדש בטוח (כלומר בטיחותו שקולה לזו של DH המקורי) או שלא (כלומר קיימת התקפה אשר מאפשרת למאזין לחשב את הסוד המשותף מתוך המידע שעבר על הרשת). • האם תוקף שגילה את הסוד המשותף K=gxAxB אולם אינו יודע את xA או את xB יכול לחשב מתוכו את הסוד המשותף החדש? הגנה במערכות מתוכנתות - תרגול 5
בעיית הפצת המפתחות הפומביים • איך המשתמשים יודעים מה המפתחות הפומביים של משתמשים אחרים? • כיצד ניתן למנוע התחזות? הגנה במערכות מתוכנתות - תרגול 5
1: PubA=(eA,nA) A B 2: MeA (mod nA) 1: PubA=(eA,nA) 2: PubC=(eC,nC) A C B 4: MeA (mod nA) 3: MeC (mod nC) התקפת Man in the Middle על RSA הגנה במערכות מתוכנתות - תרגול 5
1: yA=gxA A B K=yBxA K=yAxB 2: yB=gxB 1: yA=gxA 1: yC=gxC A C B KAC=yCxA KBC=yCxB 2: yB=gxB 2: yC=gxC KAC=yAxC KBC=yBxC ובפרוטוקול Diffie-Hellman? הבעיה: חוסר הקישור בין המפתח הנשלח לבין זהות בעל המפתח. הגנה במערכות מתוכנתות - תרגול 5
Certificate Authorities (CA) • גורם מאשר – רשות שתפקידה להפיץ ולאשר מפתחות פומביים של משתתפים. • גורם אמין. • המפתח הפומבי שלו ידוע לכולם. • יחלק סרטיפיקטים היוצרים קשר בין המפתח לזהות בעליו. • זהות המשתמש • מפתח פומבי שלו • תאריך פקיעת תוקף • זהות ה-CA • ... • סטנדרט נפוץ כיום: X.509 חתום ע"י ה-CA הגנה במערכות מתוכנתות - תרגול 5
1: CertA 2: CertA*??? A C B 4: MeA (mod nA) 3: MeC (mod nC) בחזרה ל-RSA 1: CertA A B 2: MeA (mod nA) הגנה במערכות מתוכנתות - תרגול 5
ביטול סרטיפיקטים • CRL – Certificate Revocation List • רשימת סרטיפיקטים שבוטלו לפני תאריך פקיעת התוקף שלהם. • חתום ע"י ה-CA. • מסבך את תהליך האימות... • תהליך אימות ארוך יותר. • CA צריך להיות נגיש וזמין תמיד. הגנה במערכות מתוכנתות - תרגול 5