MAC primitive به شما این امکان را می دهد تا مطمئن شوید که هیچ کس در داده های شما دستکاری نمی کند. فرستنده ای که یک کلید متقارن را با یک گیرنده به اشتراک می گذارد، می تواند یک برچسب احراز هویت را برای یک پیام مشخص محاسبه کند، که به گیرنده اجازه می دهد تأیید کند که یک پیام از فرستنده مورد انتظار است و اصلاح نشده است.
MAC دارای ویژگی های زیر است:
- اصالت : دانستن کلید تنها راه ایجاد یک تگ MAC قابل تأیید است.
- متقارن : محاسبه و تأیید برچسب به همان کلید نیاز دارد.
MAC بسته به الگوریتم می تواند قطعی یا تصادفی باشد. تینک در حال حاضر الگوریتمهای MAC غیر قطعی را پیادهسازی نمیکند. شما باید از MAC فقط برای احراز هویت پیام استفاده کنید، نه برای اهداف دیگر مانند تولید بایت های شبه تصادفی (برای آن، به PRF مراجعه کنید).
اگر به جای آن به یک نامتقارن اولیه نیاز دارید، به امضای دیجیتال مراجعه کنید.
یک نوع کلید را انتخاب کنید
توصیه می کنیم برای بیشتر استفاده ها از HMAC_SHA256 استفاده کنید، اما گزینه های دیگری نیز وجود دارد.
به طور کلی موارد زیر صادق است:
- بسته به اندازه پیام شما و ویژگی های سخت افزاری که استفاده می کنید، HMAC_SHA512 ممکن است سریعتر باشد یا نباشد.
- HMAC_SHA512 محافظه کارانه ترین حالتی است که می تواند برای تعداد نامحدودی پیام استفاده شود.
AES256_CMAC در سیستم هایی که از شتاب سخت افزاری AES-NI پشتیبانی می کنند سریع ترین است.
حداقل تضمین های امنیتی
- حداقل قدرت احراز هویت 80 بیتی
- در برابر جعل وجودی تحت حمله متن ساده انتخاب شده ایمن باشید
- حداقل امنیت 128 بیتی در برابر حملات بازیابی کلید، و همچنین در سناریوهای چند کاربره (زمانی که مهاجم یک کلید خاص را هدف قرار نمی دهد، بلکه هر کلیدی را از مجموعه ای تا 232 کلید هدف قرار می دهد)