تبادل و ایجاد کلید
پروتکلهای ایجاد کلید به طرفین امکان میدهند تا بر روی یک کلید محرمانه مشترک جدید توافق کنند و آن را به هویتهای احراز هویت شده پیوند دهند تا ارتباطات بعدی بتواند با رمزنگاری متقارن سریع محافظت شود.
Definition
ایجاد کلید پروتکلی است که از طریق آن دو یا چند طرف به یک کلید محرمانه مشترک دست مییابند؛ در توافق کلید هر دو طرف در ایجاد کلید مشارکت میکنند، در حالی که در انتقال کلید یک طرف کلید را تولید کرده و به صورت امن ارسال میکند.
Scope
این موضوع پروتکلهای تبادل کلید احراز هویت شده (AKE) را پوشش میدهد: توافق کلید در مقابل انتقال کلید، تهدیداتی که باید در برابر آنها مقاومت کنند (حمله مرد میانی، بازپخش، جعل هویت با به خطر افتادن کلید)، ویژگیهای امنیتی مانند محرمانگی پیشرو و کنترل کلید مشارکتی، و مدلهای رسمی (Bellare-Rogaway، Canetti-Krawczyk) که برای تحلیل آنها استفاده میشوند. این موضوع به چگونگی افزودن احراز هویت به دیفی-هلمن خام میپردازد. ریاضیات مسائل اساسی و پروتکلهای کانال مستقر شده که به طور جداگانه مورد بررسی قرار میگیرند، از این بحث مستثنی هستند.
Core questions
- یک پروتکل تبادل کلید احراز هویت شده چه ویژگیهای امنیتی را باید تضمین کند؟
- چگونه احراز هویت بر روی یک پروتکل توافق کلید خام مانند دیفی-هلمن لایهبندی میشود؟
- محرمانگی پیشرو چیست و چگونه انتخاب کلیدهای زودگذر آن را فراهم میکند؟
- مدلهای رسمی چگونه یک مهاجم فعال که شبکه را کنترل میکند، به تصویر میکشند؟
- پروتکلها باید در برابر چه حملاتی (مرد میانی، بازپخش، جعل هویت با به خطر افتادن کلید، اشتراک کلید ناشناخته) مقاومت کنند؟
Key concepts
- توافق کلید در مقابل انتقال کلید
- تبادل کلید احراز هویت شده
- محرمانگی پیشرو
- کلیدهای زودگذر
- حمله مرد میانی
- جعل هویت با به خطر افتادن کلید
- حمله اشتراک کلید ناشناخته
- مدلهای Bellare-Rogaway و Canetti-Krawczyk
- تابع اشتقاق کلید
Key theories
- تبادل کلید احراز هویت شده
- توافق کلید خام یک راز مشترک را فراهم میکند اما تضمینی برای هویت شریک نمیدهد؛ پروتکلهای AKE احراز هویت را (از طریق امضاها، گواهینامهها یا کلیدهای از پیش مشترک) اضافه میکنند تا هر طرف بداند که کلید را با همتای مورد نظر خود به اشتراک میگذارد و نه یک متقلب.
- محرمانگی پیشرو و تازگی کلید جلسه
- استفاده از مواد کلید زودگذر تازه برای هر جلسه و ترکیب آن با کلیدهای احراز هویت بلندمدت، یک کلید جلسه را به دست میدهد که حتی در صورت به خطر افتادن کلیدهای بلندمدت در آینده، محرمانه باقی میماند، در حالی که در برابر بازپخش جلسات قدیمی مقاومت میکند.
Mechanisms
یک AKE معمولی، تبادل دیفی-هلمن زودگذر را با احراز هویت ترکیب میکند: طرفین مقادیر عمومی زودگذر را مبادله کرده و هویت خود را با امضای دادههای رونوشت یا با استفاده از یک کلید بلندمدت از پیش مشترک یا گواهیشده اثبات میکنند. راز مشترک حاصل از طریق یک تابع اشتقاق کلید با هش رونوشت عبور داده میشود تا آن را به جلسه پیوند دهد، که حملات بازپخش و اشتراک کلید ناشناخته را خنثی میکند و کلیدهای جلسه تازه و احراز هویت شده را فراهم میآورد.
Clinical relevance
ایجاد کلید، عمل آغازین تقریباً هر جلسه امن است: دستدهی TLS 1.3، Signal X3DH و Double Ratchet، IPsec IKEv2، SSH و WireGuard همگی قبل از جریان یافتن هر دادهای، تبادلات کلید احراز هویت شده را اجرا میکنند. صحت آنها تعیین میکند که آیا یک مهاجم میتواند یک سرور را جعل هویت کند یا بیصدا بین دو طرف قرار گیرد.
Evidence & guidelines
طرحهای ایجاد کلید در NIST SP 800-56A/B استانداردسازی شده و در مدلهایی مانند Bellare-Rogaway و Canetti-Krawczyk تحلیل شدهاند. پروتکلهای مدرن (TLS 1.3، چارچوب Noise) تبادلات زودگذر با محرمانگی پیشرو را الزامی میکنند و تحلیل امنیتی رسمی دریافت کردهاند. تبادلات کلید ایستا قدیمی بدون محرمانگی پیشرو توصیه نمیشوند.
History
تبادل کلید احراز هویت شده از پروتکل دیفی-هلمن در سال 1976 و تشخیص نیاز به احراز هویت برای مقاومت در برابر مهاجمان فعال نشأت گرفت. دهههای 1990-2000 مدلهای امنیتی دقیق (Bellare-Rogaway 1993، Canetti-Krawczyk 2001) و پروتکلهای سبک station-to-station و MQV را تولید کرد. این درسها در دستدهی TLS 1.3 که به طور رسمی تحلیل شده و چارچوب پروتکل Noise تثبیت شدند.
Key figures
- Whitfield Diffie
- Martin Hellman
- Mihir Bellare
- Phillip Rogaway
- Ran Canetti
- Hugo Krawczyk
Related topics
Seminal works
- diffie1976
- katz2020
- menezes1996
Frequently asked questions
- تفاوت بین توافق کلید و انتقال کلید چیست؟
- در توافق کلید (مانند دیفی-هلمن) هر دو طرف تصادفی بودن را مشارکت میدهند، بنابراین هیچ یک به تنهایی کلید نهایی را تعیین نمیکند. در انتقال کلید یک طرف کلید را تولید کرده و آن را تحت کلید عمومی طرف دیگر رمزگذاری و ارسال میکند. توافق به طور طبیعیتر از محرمانگی پیشرو پشتیبانی میکند.
- چرا ایجاد یک کلید برای یک جلسه طولانی کافی نیست؟
- کلیدهای با عمر طولانی در صورت به خطر افتادن، آسیبپذیری بیشتری ایجاد میکنند و میتوانند توسط رمزنگاری یا مشاهده مهاجم تضعیف شوند. پروتکلها به صورت دورهای کلید را بازسازی یا رچت (مانند Signal) میکنند تا به خطر افتادن یک کلید جلسه، پیامهای گذشته یا آینده را فاش نکند.