קוד אימות בהודעה (MAC)

רכיב ה-MAC הפרימיטיבי מאפשר לכם לוודא שאף אחד לא שינה את הנתונים שלכם. שולח שמשתף מפתח סימטרי עם נמען יכול לחשב תג אימות להודעה נתונה, שמאפשר לנמען לוודא שההודעה באה מהשולח הצפוי ולא שונתה.

ל-MAC יש את המאפיינים הבאים:

  • אותנטיות: הדרך היחידה ליצור תג MAC מאומת היא לדעת את המפתח.
  • Symmetric: כדי לחשב ולאמת את התג נדרש אותו מפתח.

כתובת ה-MAC יכולה להיות גורמית או אקראית, בהתאם לאלגוריתם. בשלב זה, Tink לא מטמיע אלגוריתמים לא ודאיים של MAC. צריך להשתמש ב-MAC רק לאימות הודעות, ולא למטרות אחרות כמו יצירת ביטים פסאודו-אקראיים (לשם כך, ראו PRF).

אם במקום זאת אתם צריכים רכיב פרימיטיבי אסימטרי, תוכלו לעיין במאמר חתימת דיגיטלית.

בחירת סוג מפתח

מומלץ להשתמש ב-HMAC_SHA256 ברוב השימושים, אבל יש גם אפשרויות אחרות.

באופן כללי, הכלל הבא תקף:

  • יכול להיות שהפעלת HMAC_SHA512 תהיה מהירה יותר או איטית יותר, בהתאם לגודל ההודעה ולפרטים הספציפיים של החומרה שבה אתם משתמשים.
  • HMAC_SHA512 הוא המצב השמרני ביותר שאפשר להשתמש בו למספר הודעות כמעט בלתי מוגבל.
  • AES256_CMAC הוא המהיר ביותר במערכות שתומכות בשיפור המהירות באמצעות חומרה של AES-NI.

ערבויות אבטחה מינימליות

  • חוזק אימות של 80 ביט לפחות
  • הגנה מפני זיוף קיומי במהלך התקפת טקסט ללא הצפנה שנבחרה
  • אבטחה של 128 ביט לפחות מפני התקפות לשחזור מפתחות, וגם בתרחישים של משתמשים מרובים (כשתוקף לא מטרגט מפתח ספציפי, אלא כל מפתח מתוך קבוצה של עד 232 מפתחות)

תרחיש שימוש לדוגמה

מידע נוסף זמין במאמר אני רוצה להגן על הנתונים מפני פגיעה.