פרוטוקול אתגר-מענה – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
אריאל (שיחה | תרומות)
קטגוריה
Felagund-bot (שיחה | תרומות)
בוט - מחליף 'דוגמא' ב'דוגמה', 'פונקצית' ב'פונקציית'
שורה 20:
במנגנון אתגר-מענה המבוסס על הצפנה סימטרית המוכיח והמאמת צריכים לשתף ביניהם מפתח הצפנה מראש. במקרה של [[תקשורת מחשבים|רשת]] מרובת משתתפים נדרשת מעורבות [[צד שלישי]] נאמן הנקרא [[שרת הפצת מפתחות]]. תפקודו העיקרי של שרת זה הוא לייצר ולספק מפתחות הצפנה זמניים לכל אחד ממשתמשי הרשת כל אימת שמשתמש אחד נדרש לאמת זהותו מול משתמש אחר, זאת בעזרת שיתוף מפתחות הצפנה סודיים ארוכי טווח, מראש בין כל המשתמשים לבין שרת זה.
 
טכניקות אימות המבוססות על תקן איזו ISO/IEC 9798 מניחות מראש כי המשתתפים משתפים ביניהם מפתחות הצפנה סודיים. כאשר המוכיח מאמת את זהותו כלפי המאמת על ידי הוכחת ידיעת מפתח ההצפנה המשותף במשלוח מסר אקראי תלוי-זמן, המוצפן תחת מפתח זה. בתנאי שפונקציתשפונקציית ההצפנה מספקת באופן עקיף גם שלמות המסר ומבטיחה כי כל שינוי בצופן ייחשף. להלן דוגמאות לפרוטוקול אימות מבוסס אתגר-מענה לפי מפרטי תקן איזו:
 
'''פרוטוקול אימות חד-צדדי עם חותם זמן''':
שורה 30:
|}
 
הפרוטוקול מבוצע במהלך אחד, בו המוכיח A שולח למאמת B את <math>\ t_A</math> הקרוי [[חותם-זמן]], זהו ערך המכיל את הזמן שמקורו בשעון המקומי של המוכיח בעת משלוח הוכחת האימות. אותו הוא מצפין בעזרת <math>\ E_K</math> - פונקציתפונקציית הצפנה סימטרית כלשהי המכילה מנגנון הבטחת שלמות, כאשר <math>\ K</math> הוא המפתח המשותף. במסר זה המוכיח כולל גם את זהותו של המאמת B, זאת כדי לייחד הודעה זו כדי למנוע שימוש חוזר בה מול A. כאן B מסוגל לאמת את זהותו של A על ידי פענוח המסר המוצפן באמצעות המפתח המשותף ובדיקת פרמטר הטריות <math>\ t_A</math> (מה שמחייב סנכרון הזמן בין המשתתפים), הוכחת הזהות מתקבלת אם וכאשר הזמן שמתקבל הוא בטווח המותר.
 
'''פרוטוקול אימות חד-צדדי עם מספר אקראי''':
שורה 44:
|}
 
בפרוטוקול זה המאמת שולח תחילה [[מספר אקראי]] <math>\ r_A</math> כלשהו למוכיח, כאשר המוכיח משיב במסר המכיל את המספר שקיבל כשהוא מוצפן באמצעות פונקציתפונקציית הצפנה ''E'' עם המפתח המשותף ''K''. אולם כדי למנוע התקפה על הפרוטוקול (כאשר התוקף עלול לחזור ולשדר מסר זה מאוחר יותר כדי להתחזות ל-A), יש צורך להגביל את הפרוטוקול באופן שלא יאפשר שידור חוזר של אותם ערכים בטווח זמן כלשהו.
 
'''פרוטוקול אימות דו-צדדי עם מספר אקראי''':
שורה 62:
|}
 
פרוטוקול זה דומה לקודמו אך מכיל מסר שלישי שנועד לאמת את זהותו של B כלפי A. כאשר A מאמת את זהותו על ידי בדיקת התאמת הערכים המוצפנים <math>\ r_A,\,r_B</math> שקיבל לאלו שמצויים ברשותו קודם לכן. אפשר לבסס פרוטוקול אימות דומה על פונקציתפונקציית גיבוב במקום על פונקציתפונקציית הצפנה, כאשר את <math>\ E_K</math> מחליפים ב-<math>\ H_K</math> הנקראת [[MAC (קריפטוגרפיה)|MAC]] (קוד אימות מסרים) שהיא בעצם פונקציתפונקציית גיבוב עם מפתח. ובשינוי קל של הפרוטוקול כדלהלן:
 
 
שורה 81:
|}
 
במקום לפענח את המסר, המשתתפים מאמתים את זהות חבריהם על ידי הפעלת פונקציתפונקציית הגיבוב על המסר הגלוי <math>\ r_A</math> ו-<math>\ r_B</math> בהתאמה (תוך שימוש במפתח המשותף) ואז השוואת התוצאה עם הערך המתקבל.
 
===פרוטוקול אתגר-מענה מבוסס מפתח-פומבי===
בפרוטוקול כזה הטוען מוכיח את זהותו בהוכחת ידיעת המפתח הפרטי שברשותו בשני אופנים: בפענוח אתגר שהוצפן עבורו במפתח הפומבי המתאים. או על ידי חתימה דיגיטלית על המסר. דוגמאדוגמה פשוטה לשימוש במפתח פומבי:
 
'''פרוטוקול אימות חד-צדדי מבוסס מפתח פומבי''':
שורה 98:
|}
 
הפרוטוקול מצריך שימוש בפונקציתבפונקציית גיבוב כדי להסתיר את המספר האקראי r במסר הראשון, בנוסף ערך אקראי זה מוצפן תחת המפתח הפומבי של A יחד עם פרטים נלווים. כאן הטוען A מוכיח את זהותו על ידי פענוח האתגר שהוצפן באמצעות המפתח הפומבי שלו ושליחתו אל המאמת במצב קריא. בהצגת יכולת הפענוח במפתח הפרטי המתאים, הוא מוכיח זהותו.
 
[[פרוטוקול נידהם-שרודר]] לשיתוף מפתח מזוהה, מבוסס על רעיון דומה כאשר בנוסף לערך האקראי המשתתפים בפרוטוקול שולחים זה לזה מפתחות הצפנה חד-פעמיים לצורך הצפנה סימטרית.