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

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

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

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

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

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

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

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

באופן כללי, התנאים הבאים נכונים:

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

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

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

תרחיש לדוגמה

בקטע אני רוצה להגן על נתונים מפני פגיעה.