DataNetSec-Dousti-08-CryptoProtoDesign-v2.pdf

‫دانشگاه صنعتی شریف‬
‫دانشکده مهندسی کامپیوتر‬
‫آزمایشگاه امنیت داده و شبکه‬
‫‪http://dnsl.ce.sharif.edu‬‬
‫درس ‪ :8‬طراحی پروتکلهای رمزنگاری‬
‫محمد صادق دوستی‬
‫‪1 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫مقدمه‬
‫‪ ‬پروتکلهای رمزنگاری‪ :‬پروتکلهایی که در آنها از الگوریتمهای رمز‬
‫استفاده میشود‪.‬‬
‫‪‬مثال‪ :‬تصدیق هویت‪ ،‬توزیع کلید‪ ،‬رأیگیری الکترونیکی‪ ،‬پرداختت‬
‫الکترونیکی‪ ،‬امضای قرارداد‪... ،‬‬
‫‪ ‬در این درس به پروتکلهای توزیع کلید میپردازیم‪.‬‬
‫‪2 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫فهرست‬
‫‪ ‬جایگاه رمزنگاری در پروتکلهای شبکه‬
‫‪ ‬مدیریت کلید‬
‫‪‬مفاهیم اساسی مدیریت کلید‬
‫‪‬سلسله مراتب کلید‬
‫‪‬تولید کلید و طول عمر کلید‬
‫‪‬اشتراک کلید مبتنی بر رمز متقارن‬
‫‪‬اشتراک کلید مبتنی بر رمز کلید عمومی‬
‫‪ ‬طراحی پروتکلهای تبادل کلید‬
‫‪3 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫دو رویکرد رمزنگاری ارتباطات – ‪1‬‬
‫‪ ‬رمزنگاری خط ارتباطی یا نقطه به نقطه (‪:)Point to Point‬‬
‫‪‬رمزگتتراری روی هتتر ختتط ارتبتتاطی بتته صتتور مستتتقل صتتور‬
‫میپریرد‪.‬‬
‫‪‬باید در هر یک از تجهیزا ارتباطی رمزگشایی شود‪.‬‬
‫‪‬نیازمند تجهیزا متعددی است‪ ،‬هر کدام با کلیدهای مجزا‪.‬‬
‫‪ ‬رمزنگاری انتها به انتها (‪:)End to End‬‬
‫‪‬رمزگراری صرفاً بین مبدأ و مقصد پیام انجام میشود‪.‬‬
‫‪‬نیازمند یک کلید مشترک بین دو انتها است‪.‬‬
‫‪4 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫دو رویکرد رمزنگاری ارتباطات – ‪2‬‬
‫‪5 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫مقایسه‬
‫‪ ‬در رمزگراری انتها به انتها‪ ،‬سرآیند بستهها باید آشکار باقی بمانند‪.‬‬
‫‪‬علت‪ :‬شبکه به راحتی بتواند بستهها را مسیریابی کند‪.‬‬
‫‪ ‬بنابراین اگر چه محتوا حفاظت میشود‪ ،‬ولی الگتوی ترافیتک و جریتان‬
‫دادهها آشکار است‪.‬‬
‫‪ ‬به طور ایدهآل میخواهیم‪:‬‬
‫‪‬رمزگراری انتها به انتها محتوای دادهها را بتر روی کتل مستیر حفاظتت‬
‫نماید و امکان تصدیق هویت داده را نیز فراهم آورد‪.‬‬
‫‪‬رمزگراری نقطه به نقطه جریان داده را از مانیتورینگ حفاظت نماید‪.‬‬
‫‪6 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫رمزگذاری در الیههای مختلف شبکه‬
‫ امکان رمزنگاری در هر یک از الیههای شبکه‬
Application
Presentation
Application
Session
Transport
Transport
Network
Internet
Data Link
Physical
Network
Interface
OSI
TCP/IP
‫محمد صادق دوستی‬
‫امنیت داده و شبکه‬
‫رمز انتها به انتها‬
،SSL ،SSH(
)... ‫ و‬،HTTPS
‫رمز نقطه به نقطه‬
،WEP ،FHSS(
،WPA2 ،WPA
)... ‫ و‬IPsec
7 / 66
‫تحلیل ترافیک‬
‫‪ ‬تحلیل ترافیک به معنای مانیتورینگ جریان داده هتا در ارتباطتا‬
‫بین بخشهای مختلف است‪.‬‬
‫‪ ‬رمزگراری خط ارتباطی میتواند جزئیا سرآیند را مخفی کند‪.‬‬
‫‪‬اما حجم ترافیک شبکه و دادههتا در دو انتهتای ارتبتام همننتان‬
‫آشکار است‪.‬‬
‫‪ ‬الییگراری (‪ )Padding‬در ترافیک نیز میتواند جریان دادهها را‬
‫ناشفاف نماید‪ ،‬ولی هزینه سربار باالیی دارد‪.‬‬
‫‪8 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫فهرست‬
‫‪ ‬جایگاه رمزنگاری در پروتکلهای شبکه‬
‫‪ ‬مدیریت کلید‬
‫‪‬مفاهیم اساسی مدیریت کلید‬
‫‪‬سلسله مراتب کلید‬
‫‪‬تولید کلید و طول عمر کلید‬
‫‪‬اشتراک کلید مبتنی بر رمز متقارن‬
‫‪‬اشتراک کلید مبتنی بر رمز کلید عمومی‬
‫‪ ‬طراحی پروتکلهای تبادل کلید‬
‫‪9 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫مدیریت کلید چیست؟‬
‫‪ ‬مدیریت کلید عبار است از مجموعه فرآینتدهای تولیتد‪ ،‬تبتادل‪،‬‬
‫نگهداری‪ ،‬استفاده‪ ،‬امحا و جایگزینی کلیدهای موجود در سیستم‪.‬‬
‫‪ ‬کلیدها میتوانند عمومی یا خصوصی باشند‪.‬‬
‫‪10 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫اهمیت مدیریت کلید‬
‫‪ ‬اکثر حمال به رمزنگاری یک سیستم امنیتی‪ ،‬در بختش متدیریت‬
‫کلید است‪.‬‬
‫‪‬چرا که طرفهای ارتبام‪ ،‬امکان ارتبام فیزیکی بترای تبتادل کلیتد‬
‫امن را با یکدیگر ندارند‪.‬‬
‫‪ ‬در حقیقت برخی این مسأله را دشوارترین جزء یک سیستتم امتن‬
‫میدانند‪.‬‬
‫‪11 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫فهرست‬
‫‪ ‬جایگاه رمزنگاری در پروتکلهای شبکه‬
‫‪ ‬مدیریت کلید‬
‫‪‬مفاهیم اساسی مدیریت کلید‬
‫‪‬سلسله مراتب کلید‬
‫‪‬تولید کلید و طول عمر کلید‬
‫‪‬اشتراک کلید مبتنی بر رمز متقارن‬
‫‪‬اشتراک کلید مبتنی بر رمز کلید عمومی‬
‫‪ ‬طراحی پروتکلهای تبادل کلید‬
‫‪12 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫کلید اصلی و کلید جلسه‬
‫‪ ‬کلید اصلی (‪)Master Key‬‬
‫‪‬یا کلید طوالنی مد (‪ Long-Term Key‬یا ‪)LTK‬‬
‫‪‬کلیدی که برای رمزگراری و‪/‬یا تصدیق هویت کلیدهای دیگر مورد‬
‫استفاده قرار میگیرد‪.‬‬
‫‪ ‬از کلید جلسه (نشست) برای رمزنگتاری و تصتدیق هویتت پیامهتا‬
‫استفاده میکنیم‪.‬‬
‫‪‬رمزنگاری متقارن‬
‫‪13 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫سلسله مراتب کلیدها‬
‫خسار در‬
‫حجم‬
‫عمر‬
‫نوع کلید‬
‫صور لو رفتن‬
‫اطالعا‬
‫خیلی زیاد‬
‫کلید اصلی خیلی کم طوالنی‬
‫زیاد‬
‫کوتاه‬
‫کم‬
‫کلید جلسه‬
‫بسته به کاربرد‬
‫‬‫زیاد‬
‫داده‬
‫‪14 / 66‬‬
‫امنیت داده و شبکه‬
‫نحوه محافظت‬
‫محافظت فیزیکی‬
‫با رمزنگاری‬
‫با رمزنگاری‬
‫محمد صادق دوستی‬
‫فهرست‬
‫‪ ‬جایگاه رمزنگاری در پروتکلهای شبکه‬
‫‪ ‬مدیریت کلید‬
‫‪‬مفاهیم اساسی مدیریت کلید‬
‫‪‬سلسله مراتب کلید‬
‫‪‬تولید کلید و طول عمر کلید‬
‫‪‬اشتراک کلید مبتنی بر رمز متقارن‬
‫‪‬اشتراک کلید مبتنی بر رمز کلید عمومی‬
‫‪ ‬طراحی پروتکلهای تبادل کلید‬
‫‪15 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫تولید کلید‬
‫‪ ‬کلیدهای تولیدی باید کامالً تصادفی باشند‪.‬‬
‫‪‬کامپیوتر نمیتواند اعداد تصادفی واقعی تولید نماید‪.‬‬
‫‪ ‬استفاده از منابع تصادفی بیرونی (تعامل با کاربر و ‪)...‬‬
‫‪‬تولید یک برر (‪ )seed‬تصادفی‬
‫‪ ‬گستتتترذ بتتترر تصتتتادفی بتتته یتتتک مقتتتدار شتتتبهتصتتتادفی‬
‫(‪)pseudorandom‬‬
‫‪‬غیر قابل تمیز از مقدار تصادفی واقعی‬
‫‪ ‬نیاز به الگوریتمهای مولد اعداد شبه تصادفی (‪)PRNG‬‬
‫‪16 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫‪PRNG‬‬
‫برر تصادفی‬
‫‪011001100111100011‬‬
‫خروجی شبهتصادفی‬
‫‪0100001101111000011010011100010101110101‬‬
‫‪PRNG‬‬
‫الگوریتم قطعی‬
‫(غیر تصادفی)‬
‫الگوریتم تمیز دهنده‬
‫؟؟؟‬
‫‪0011010110011001101111011011100011100100‬‬
‫مقدار تصادفی واقعی‬
‫‪17 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫طول عمر کلید جلسه‬
‫‪ ‬اگر طول عمر کوتاه باشد‪:‬‬
‫‪ ‬امنیت باال‬
‫• حجم داده برای تحلیل رمز ناچیز است‪.‬‬
‫• میزان استفاده کم است‪.‬‬
‫• حتی پس از افشای کلید‪ ،‬زمان زیادی برای سوء استفاده موجود نیست‪.‬‬
‫‪‬کارایی کم‬
‫• دائما باید کلید را بروز کنیم‪.‬‬
‫‪ ‬اگر طول عمر زیاد باشد‪:‬‬
‫‪ ‬کارایی باال‪ ،‬امنیت کم‬
‫‪18 / 66‬‬
‫یک مصالحه میان امنیت و‬
‫کارایی بر سر تعیین طول‬
‫عمر کلید جلسه برقرار است‪.‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫روشهای تبادل کلید جلسه (‪)Key Distribution‬‬
‫‪ ‬توافق کلید (‪)Key Agreement‬‬
‫‪‬هر دو طرف در انتخاب کلید تاثیرگرار هستند‪.‬‬
‫‪‬مثال‪ :‬روذ ‪Diffie-Hellman‬‬
‫‪ ‬انتقال کلید (‪)Key Transport‬‬
‫‪‬یکی از دو طرف کلید را معین کرده و به دیگری ارسال مینماید‪.‬‬
‫‪‬مثال‪ :‬الگوریتم توزیع کلید در ‪( SSL‬در درسهای بعتدی معرفتی‬
‫میشود)‪.‬‬
‫‪19 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫فهرست‬
‫‪ ‬جایگاه رمزنگاری در پروتکلهای شبکه‬
‫‪ ‬مدیریت کلید‬
‫‪‬مفاهیم اساسی مدیریت کلید‬
‫‪‬سلسله مراتب کلید‬
‫‪‬تولید کلید و طول عمر کلید‬
‫‪‬اشتراک کلید مبتنی بر رمز متقارن‬
‫‪‬اشتراک کلید مبتنی بر رمز کلید عمومی‬
‫‪ ‬طراحی پروتکلهای تبادل کلید‬
‫‪20 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫دو رویکرد در اشتراک کلید جلسه‬
‫‪ ‬بدون واسطه (همتا به همتا)‬
‫‪k‬‬
‫‪B‬‬
‫‪A‬‬
‫‪ ‬با واسطه (مرکز توزیع کلید یا ‪)KDC‬‬
‫‪Key Distribution Center‬‬
‫‪KDC‬‬
‫‪KDC‬‬
‫‪k‬‬
‫‪k k‬‬
‫‪B‬‬
‫‪21 / 66‬‬
‫‪ KDC:‬‬
‫‪B‬‬
‫‪A‬‬
‫امنیت داده و شبکه‬
‫(‪)3‬‬
‫‪k‬‬
‫‪A‬‬
‫محمد صادق دوستی‬
‫روش همتا به همتا در توزیع کلید‬
‫‪ ‬مزیت‪ :‬بدون نیاز به اعتماد به یک شخص ثالث‬
‫‪ ‬عیب‪ :‬مشتکل مقیتاسپتریری؛ نیتاز بته کلیتد اصتلی بتین هتر دو‬
‫موجودیت‬
‫‪‬برای ارتبام ‪ n‬نفر باهم به ‪ n(n1)/2‬کلید اصلی احتیاج داریم‪.‬‬
‫‪22 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫روش با واسطه توزیع کلید‬
‫‪ ‬هر کاربر یک کلید اصلی با ‪ KDC‬به اشتراک گراشته است‪.‬‬
‫‪ KDC‬یک شخص ثالث مورد اعتماد است‪.‬‬
‫‪‬کلیدهای اصلی با یک روذ امتن (متثالً مراجعته فیزیکتی) توزیتع‬
‫شدهاند‪.‬‬
‫‪ ‬هر بار که کاربری قصد ارتبام با دیگران را داشته باشتد از ‪KDC‬‬
‫یک کلید جلسه درخواست میکند‪.‬‬
‫‪ ‬کلید جلسه به صور تصدیق هویت شتده در اختیتار متقا تی (و‬
‫بعضاً مخاطب) قرار میگیرد‪.‬‬
‫‪23 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫روش متمرکز توزیع کلید‬
‫‪ ‬نکا مثبت‪:‬‬
‫‪‬تعداد کلید کمتر و قابلیت مقیاسپریری‬
‫‪ ‬نکا منفی‪:‬‬
‫‪‬نیاز به اعتماد به شخص ثالث‬
‫‪ KDC‬تک نقطه خرابی (‪ )SPOF‬است‪.‬‬
‫‪‬ترافیک باال در ‪ KDC‬گلوگاه کارایی سیستم است‪.‬‬
‫‪‬نیاز به یک کارگزار برخط داریم‪ .‬دخالت کتارگزار در برقتراری هتر‬
‫ارتبام روری است‪.‬‬
‫‪24 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫فهرست‬
‫‪ ‬جایگاه رمزنگاری در پروتکلهای شبکه‬
‫‪ ‬مدیریت کلید‬
‫‪‬مفاهیم اساسی مدیریت کلید‬
‫‪‬سلسله مراتب کلید‬
‫‪‬تولید کلید و طول عمر کلید‬
‫‪‬اشتراک کلید مبتنی بر رمز متقارن‬
‫‪‬اشتراک کلید مبتنی بر رمز کلید عمومی‬
‫‪ ‬طراحی پروتکلهای تبادل کلید‬
‫‪25 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫جایگاه رمزنگاری کلید عمومی‬
‫‪ ‬الگوریتمهای نامتقارن بسیار کندتر از الگوریتمهای متقارن هستند‬
‫‪‬از الگوریتمهای نامتقارن جهت توزیع کلید جلسه (و نه رمزگراری)‬
‫استفاده میشود‪.‬‬
‫‪ ‬با استفاده از رمزنگاری کلید عمومی‪:‬‬
‫‪‬نیازی به تبادل کلیدهای اصلی و حفظ محرمانگی آنها نیست‪.‬‬
‫‪‬اما کلید عمومی باید به روشی امن منتقل شود (مثالً ‪.)PKI‬‬
‫‪‬نیازی به کارگزار بر خط نیست‪.‬‬
‫‪26 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫فهرست‬
‫‪ ‬جایگاه رمزنگاری در پروتکلهای شبکه‬
‫‪ ‬مدیریت کلید‬
‫‪‬مفاهیم اساسی مدیریت کلید‬
‫‪‬سلسله مراتب کلید‬
‫‪‬تولید کلید و طول عمر کلید‬
‫‪‬اشتراک کلید مبتنی بر رمز متقارن‬
‫‪‬اشتراک کلید مبتنی بر رمز کلید عمومی‬
‫‪ ‬طراحی پروتکلهای تبادل کلید‬
‫‪27 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫عالئم و نمادها – ‪1‬‬
‫‪ ‬عاملها‪/‬طرفهای ارتبام‬
‫‪ A‬و ‪ B‬با شناسه های ‪ IDA‬و ‪IDB‬‬
‫‪ T‬شخص ثالث مورد اعتماد‬
‫‪ KAT ‬و ‪ KBT‬کلید طوالنی مد بین ‪ A‬و ‪ T‬و بین ‪ B‬و ‪T‬‬
‫‪ ks ‬کلید جلسه (‪)Session‬‬
‫‪28 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫عالئم و نمادها – ‪2‬‬
‫‪ ‬مُهر زمانی (‪)Timestamp‬‬
‫‪ tA‬مُهر زمانی تولید شده توسط ‪A‬‬
‫‪‬طرفین ساعتهای خود را به کمک پروتکلی هماهنگ نگه میدارند‪.‬‬
‫‪ ‬نانس (‪)Nonce‬‬
‫‪‬مقداری تصادفی که تنها یک بار مورد استفاده قرار میگیرند‪.‬‬
‫‪ nA‬نانس تولید شده توسط ‪A‬‬
‫‪29 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫عالئم و نمادها – ‪2‬‬
‫‪{M ║ IDA ║ IDB}KAT‬‬
‫‪AB:‬‬
‫‪ A ‬فرستنده و ‪ B‬گیرنده‬
‫‪ ‬ترکیب ‪( M‬پیام)‪ ،‬شناسته ‪ A‬و شناسته ‪ B‬بتا کلیتد ‪ KAT‬رمتز و‬
‫تصدیق هویت شده است (مثال‪ :‬روذ ترکیب ‪.)EtA‬‬
‫‪ ‬اگر فقط قصد تصدیق هویت پیامی را داشته باشیم‪:‬‬
‫‪M ║ IDA ║ IDBKAT‬‬
‫‪30 / 66‬‬
‫امنیت داده و شبکه‬
‫‪AB:‬‬
‫محمد صادق دوستی‬
‫اهداف و خصوصیات پروتکلهای تبادل کلید – ‪1‬‬
‫‪ ‬تازگی کلید (‪)Freshness‬‬
‫‪‬کلید جلسه توسط اجرای جاری پروتکل تولید شده باشد (و نه اجراهای‬
‫قبلی)‪.‬‬
‫‪ ‬محرمانگی پیشرو (‪)Forward Secrecy‬‬
‫‪‬با لو رفتن کلید بلند مد (اصلی)‪ ،‬کلیدهای جلسه قبلی امن بمانند‪.‬‬
‫‪ ‬استحکام در برابر کلید فاذ شده (‪)Known-Key Resilience‬‬
‫‪‬مهاجمی که به کلید یک جلسه دست یافته‪ ،‬نتواند در مورد کلید اصتلی‬
‫یا کلید جلسا دیگر اطالعی به دست آورد‪.‬‬
‫‪31 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫اهداف و خصوصیات پروتکلهای تبادل کلید – ‪2‬‬
‫‪ ‬تصدیق هویت کلید (‪)Key Authentication‬‬
‫‪‬یک طرف مطمئن است که هیچ کس جتز طترف دوم (و احتمتاالً ستایر‬
‫معتمدین) نمیتواند به کلید جلسه دسترسی داشته باشد‪.‬‬
‫‪ ‬تأیید کلید (‪)Key Confirmation‬‬
‫‪‬یک طرف مطمئن است که طرف دوم واقعتاً کلیتد جلسته را در اختیتار‬
‫دارد‪.‬‬
‫‪ ‬تصدیق هویت صریح کلید (‪)Explicit Key Authentication‬‬
‫‪‬تصدیق هویت کلید ‪ ‬تأیید کلید‬
‫‪32 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫اهداف و خصوصیات پروتکلهای تبادل کلید – ‪3‬‬
‫‪ ‬تصدیق هویت یک طرفه (‪)Unilateral‬‬
‫‪‬تنها یک طرف ارتبام‪ ،‬هویت خود را اثبا میکند‪.‬‬
‫‪‬مثال‪ :‬یک شخص یک پیام را در یک گروه عمومی منتشر میکند‪.‬‬
‫‪ ‬تصدیق هویت دو طرفه (‪)Mutual‬‬
‫‪‬هر دو طرف ارتبام هویت خود را اثبا میکنند‪.‬‬
‫‪33 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫انواع حمالت به پروتکلهای تبادل کلید – ‪1‬‬
‫‪ ‬شنود (‪)Eavesdropping‬‬
‫‪‬مهاجم اطالعتا و پیامهتای تبتادل شتده در پروتکتل را دریافتت‬
‫مینماید‪.‬‬
‫‪ ‬تغییر (‪)Modification‬‬
‫‪‬مهاجم اطالعا ارسالی را تغییر میدهد‪.‬‬
‫‪ ‬تکرار (‪)Replay‬‬
‫‪‬مهاجم پیامهای ارسالی در طی پروتکل را ثبت نمتوده‪ ،‬ستپس بته‬
‫اجرای پروتکل با ارسال مجدد آنها میپردازد‪.‬‬
‫‪34 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫انواع حمالت به پروتکلهای تبادل کلید – ‪2‬‬
‫‪ ‬منع سرویس (‪)Denial of Service‬‬
‫‪‬مهاجم مانع از کامل شدن پروتکل توسط طرفهای مجاز میشود‪.‬‬
‫‪ ‬حمال نوع دادهای (‪)Typing Attacks‬‬
‫‪‬مهاجم داده یک فیلتد پیتام را بتا دادهای از نتوع دیگتر جتایگزین‬
‫میکند‪.‬‬
‫‪ ‬دستکاری گواهی (‪)Certificate Manipulation‬‬
‫‪‬مهاجم اطالعا گواهی را دستکاری کرده و یا عوض میکند‪.‬‬
‫‪35 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫روشهای مقابله با تکرار – ‪1‬‬
‫‪ ‬استفاده از مُهر زمانی (‪)Timestamp‬‬
‫‪ ‬گیرنده به پیام اعتماد میکند اگر در محدوده زمانی قابتل قبتولی‬
‫باشد‪.‬‬
‫‪‬‬
‫‪36 / 66‬‬
‫رور همگامی ساعتها‪.‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫روشهای مقابله با تکرار – ‪2‬‬
‫‪ ‬استفاده از چالش‪-‬پاسخ (‪)Challenge-Response‬‬
‫‪ A‬انتظار یک پیام نو از ‪ B‬دارد‪.‬‬
‫‪ A‬یک چالش یا نانس به ‪ B‬ارسال میکند‪.‬‬
‫‪ A‬انتظار دارد که پیامی که دریافت میکنتد حتاوی تغییتر یافتته‬
‫(رمزشده) چالش یا نانس موردنظر باشد‪.‬‬
‫‪37 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫روشهای مقابله با تکرار – ‪3‬‬
‫‪ ‬استفاده از توالی شمار (‪)Sequence Number‬‬
‫‪‬پیامهای اجرای ‪ N‬اُم پروتکل باید حاوی عدد ‪ N‬باشند‪.‬‬
‫‪‬طرفین باید همواره مقدار ‪ N‬را نگه دارند‪.‬‬
‫‪‬مشکال در همگام نگه داشتن طرفین‬
‫‪38 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫طراحی پروتکل‬
‫‪ ‬در اسالیدهای بعد چگونگی طراحی پروتکلی برای اشتتراک کلیتد‬
‫بین دو طرف ‪ A‬و ‪ B‬را بررسی مینماییم‪.‬‬
‫‪ ‬با معرفی هر پروتکتل‪ ،‬مشتکال موجتود در آن را بررستی نمتوده‪،‬‬
‫سعی میکنیم در طراحی پروتکل بعدی آنها را مرتفع نماییم‪.‬‬
‫‪39 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫مبنای طراحی پروتکلهای سری اول‬
‫‪ ‬مبتنی بر رمز متقارن‪ :‬استفاده از ‪( KDC‬با نام ‪)T‬‬
‫‪ T‬کلید جلسه را تولید میکند‪.‬‬
‫‪‬کلیدهای اصلی (بین هر طرف با ‪ )T‬برای انتقال کلید جلسه بکتار‬
‫میرود‪.‬‬
‫‪ ‬تصدیق هویت دو طرفه‬
‫‪40 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫پروتکل ‪1‬‬
‫‪AT: IDA ║ IDB‬‬
‫‪1.‬‬
‫‪TA: ks‬‬
‫‪2.‬‬
‫‪AB: ks ║ IDA‬‬
‫‪3.‬‬
‫‪ ‬عیب‪:‬‬
‫‪‬مهاجم میتواند با شنود کلید جلسه ‪ ks‬را به دست آورد‪.‬‬
‫‪ ‬راه حل‪ :‬نیاز به رمزگراری و تصدیق هویت کلید داریم‪.‬‬
‫‪41 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫پروتکل ‪2‬‬
‫‪AT: IDA ║ IDB‬‬
‫‪1.‬‬
‫‪TA: {ks}KAT ║ {ks}KBT‬‬
‫‪2.‬‬
‫‪AB: {ks}KBT ║ IDA‬‬
‫‪3.‬‬
‫‪ ‬عیب ‪ :1‬پروتکل تصدیق هویت طرفین ندارد‪.‬‬
‫‪‬مهاجم ‪ X‬میتواند مانع رسیدن پیام سوم به ‪ B‬شود‪.‬‬
‫‪‬به جای ‪ IDA‬در آن‪ IDX ،‬خودذ را قرار دهد و پیام را بفرستد‪.‬‬
‫‪ B‬فکر میکند که باید با ‪ X‬صحبت کند‪.‬‬
‫‪42 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫پروتکل ‪2‬‬
‫‪AT: IDA ║ IDB‬‬
‫‪1.‬‬
‫‪TA: {ks}KAT ║ {ks}KBT‬‬
‫‪2.‬‬
‫‪AB: {ks}KBT ║ IDA‬‬
‫‪3.‬‬
‫‪ ‬عیب ‪ :2‬پروتکل تازگی پیام را بررسی نمیکند‪.‬‬
‫‪‬مهاجم ‪ X‬مانع رسیدن پیام ‪ 2‬و ‪ 3‬پروتکل میشود‪.‬‬
‫‪‬مهاجم ‪ X‬پیام ‪ 2‬و ‪ 3‬را از اجراهای قبلی پروتکل ارسال میکند‪.‬‬
‫‪43 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫پروتکل ‪2‬‬
‫‪AT: IDA ║ IDB‬‬
‫‪1.‬‬
‫‪TA: {ks}KAT ║ {ks}KBT‬‬
‫‪2.‬‬
‫‪AB: {ks}KBT ║ IDA‬‬
‫‪3.‬‬
‫‪ ‬عیب ‪ :3‬پروتکل در برابر حمله ‪ MITM‬آسیبپریر است‪.‬‬
‫‪‬مهاجم ‪ X‬پیام اول را عوض کرده و به جای ‪ IDX ،IDB‬میگرارد‪.‬‬
‫‪‬توصیف حمله در اسالید بعد‪.‬‬
‫‪44 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
2 ‫ به پروتکل‬MITM ‫حمله‬
AT:
IDA ║ IDB
TA:
{ks}KAT ║ {ks}KBT
AB:
{ks}KBT ║ IDA
IDA ║IDB
IDA ║IDX
T
A
X
{ks}KAT ║ {ks}KXT
{ks}KAT ║ {ks}KXT
{ks}KXT ║ IDA
‫محمد صادق دوستی‬
‫امنیت داده و شبکه‬
45 / 66
‫پروتکل ‪3‬‬
‫‪AT: IDA ║ IDB‬‬
‫‪1.‬‬
‫‪TA: {ks ║ IDB}KAT ║ {ks ║ IDA}KBT‬‬
‫‪2.‬‬
‫‪AB: {ks ║ IDA}KBT‬‬
‫‪3.‬‬
‫‪ ‬خصوصیا ‪ :‬شناسه مخاطب ارتبام و کلید جلسه بتا کلیتد اصتلی‬
‫رمز و تصدیق هویت میشوند‪.‬‬
‫‪ ‬عیب‪ :‬کماکان تازگی پیام وارسی نمیشود‪.‬‬
‫‪46 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫پروتکل ‪4‬‬
‫‪AT: IDA ║ IDB ║ nA‬‬
‫‪1.‬‬
‫‪TA:‬‬
‫‪2.‬‬
‫‪AB: {ks ║ IDA}KBT‬‬
‫‪3.‬‬
‫‪{nA ║ ks ║ IDB ║ {ks ║ IDA}KBT}KAT‬‬
‫‪ ‬خصوصیا ‪:‬‬
‫‪‬تازگی کلید برای ‪( A‬و نه ‪ )B‬با استفاده از نانس تصدیق میگردد‪.‬‬
‫‪47 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫پروتکل ‪4‬‬
‫‪AT: IDA ║ IDB ║ nA‬‬
‫‪1.‬‬
‫‪TA:‬‬
‫‪2.‬‬
‫‪AB: {ks ║ IDA}KBT‬‬
‫‪3.‬‬
‫‪{nA ║ ks ║ IDB ║ {ks ║ IDA}KBT}KAT‬‬
‫‪ ‬معایب‪:‬‬
‫‪‬طرف ‪ A‬مطمئن نیست که طرف ‪ B‬کلید را دریافت کرده و زنتده‬
‫است‪.‬‬
‫‪‬طرف ‪ B‬نیز نمیداند که واقعاً طترف ‪ A‬کلیتد را متیدانتد و زنتده‬
‫است (ممکن است پیغام سوم دریافتی‪ ،‬قدیمی و تکراری باشد)‪.‬‬
‫‪48 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫پروتکل ‪Needham–Schroeder‬‬
‫‪ ‬یکی از نخستین پروتکلهای تبادل کلید (‪)1978‬‬
‫‪‬شناسایی حمله تکرار توسط ‪ Denning‬و ‪)1981( Sacco‬‬
‫‪‬ابداع منطقی توسط ‪ Abadi ،Burrows‬و ‪ Needham‬برای‬
‫وارسی خودکتار پروتکلهتا و جلتوگیری از حمتال مشتابه (منطتق‬
‫‪ – )BAN‬سال ‪.1990‬‬
‫‪ ‬کاربرد نسخه اصالح شده‪:‬‬
‫‪Kerberos‬‬
‫‪Active Directory‬‬
‫‪49 / 66‬‬
‫‪Michael Schroeder‬‬
‫) – ‪(1945‬‬
‫امنیت داده و شبکه‬
‫‪Roger Needham‬‬
‫)‪(1935 – 2003‬‬
‫محمد صادق دوستی‬
Needham–Schroeder ‫پروتکل‬
1.
AT: IDA ║ IDB ║ nA
2.
SA: {nA ║ ks ║ IDB ║ {ks ║ IDA}KBT}KAT
3.
AB: {ks ║ IDA}KBT
4.
BA: {nB}ks
5.
AB: {nB  1}ks
: ‫ خصوصیا‬
.‫) است‬B ‫دو گام آخر برای تأیید کلید (از سوی‬
‫محمد صادق دوستی‬
‫امنیت داده و شبکه‬
50 / 66
‫معایب پروتکل ‪Needham–Schroeder‬‬
‫‪ ‬این پروتکل نسبت به حمله تکرار آسیب پریر است‪.‬‬
‫‪‬مهاجم میتواند پیام ‪ 3‬پروتکل را تکرار کند‪.‬‬
‫‪ Denning ‬و ‪ Sacco‬عتتالوه بتتر یتتافتن عیتتب فتتوق‪ ،‬پروتکتتل‬
‫جدیدی را بر مبنای مهر زمانی پیشنهاد کردند‪.‬‬
‫‪ ‬ایراد دیگر‪ A :‬نمیتواند از زنده بودن ‪ B‬و دریافت کلید توسط وی‬
‫در نسخه اصلی پروتکل‪ ،‬نانس فقط رمز‬
‫میشد و تصدیق هویت نمیشد‪.‬‬
‫مطمئن باشد‪.‬‬
‫‪‬پیام ‪ 4‬مقداری تصادفی است (رمز شده یک نانس تصتادفی) و بته‬
‫‪ A‬اطالع خاصی نمیدهد‪.‬‬
‫‪51 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫پروتکل ‪Denning–Sacco‬‬
‫‪IDA ║ IDB‬‬
‫‪AT:‬‬
‫‪1.‬‬
‫‪{ ks║IDB║tT║ {ks║IDA║tT}KBT }KAT‬‬
‫‪TA:‬‬
‫‪2.‬‬
‫‪{ks ║ IDA ║ tT}KBT‬‬
‫‪AB:‬‬
‫‪3.‬‬
‫‪{nB}ks‬‬
‫‪BA:‬‬
‫‪4.‬‬
‫‪{nB  1}ks‬‬
‫‪AB:‬‬
‫‪5.‬‬
‫‪ ‬استفاده از مُهر زمانی برای جلوگیری از حمله تکرار؛ ولی‪:‬‬
‫‪‬همننان ‪ A‬از زنده بودن ‪ B‬نمیتواند مطمئن شود‪.‬‬
‫‪‬پیام ‪ 3‬را میتوان بالفاصله فرستاد ‪ B ‬دو بار ‪ ks‬را میپریرد‪.‬‬
‫‪52 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫پروتکل ‪Denning–Sacco‬‬
‫‪ A ‬و ‪ B‬از طریق زیر به تازه بودن پیام پی میبرند‪:‬‬
‫‪ tT| < ∆t1 + ∆t2‬‬
‫‪ |NOW‬‬
‫‪ :∆t1‬اختالف ساعت محلی با ‪T‬‬
‫‪ :∆t2‬میزان تأخیر مورد انتظار در شبکه‪.‬‬
‫‪ ‬حمله ‪ :Gong‬وقتی ساعت ‪ T‬جلوتر از ساعت ‪ A‬یا ‪ B‬باشد‪.‬‬
‫‪‬مهاجم میتواند پیام را نگه داشته و وقتی زمان ‪ A‬یتا ‪ B‬بتا زمتان‬
‫ارسال پیام یکی شد ارسال نماید‪.‬‬
‫‪‬معروف به حمله منع – تکرار (‪.)Suppress-Replay‬‬
‫‪53 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫حمله منع – تکرار و مقابله با آن‬
‫‪ ‬پروتکتل ‪ Denning–Sacco‬نستبت بته حملته منتع – تکترار‬
‫آسیبپریر است‪.‬‬
‫‪ ‬روشهای مقابله‬
‫‪‬همگام سازی زمان در ابتدای پروتکل با زمان ‪T‬‬
‫‪‬توافق از طریق نانس به جای توافق از طریق زمان‬
‫‪‬ترکیب نانس و زمان ‪ ‬پروتکل ‪( Neuman‬نیتاز بته همگتامی‬
‫ساعتها ندارد؛ فقط از ساعت ‪ B‬استفاده میشود)‬
‫‪54 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫پروتکل ‪Neuman‬‬
‫‪AB: IDA ║ nA‬‬
‫‪1.‬‬
‫‪BT: IDB ║ nB ║ {IDA ║ nA ║ B}KBT‬‬
‫‪2.‬‬
‫║ ‪TA: {IDB ║ nA ║ ks ║ B}KAT‬‬
‫‪3.‬‬
‫‪{IDA ║ ks ║ B}KBT ║ nB‬‬
‫‪AB: {IDA ║ ks ║ B}KBT ║ {nB}ks‬‬
‫‪4.‬‬
‫‪ B ‬مد زمان مجاز استفاده از ‪( ks‬بر حسب ساعت ‪ )B‬است‪.‬‬
‫‪‬در این مد ‪ ،‬نیاز به تماس مجدد بتا ‪ T‬بترای دریافتت ‪ ks‬جدیتد‬
‫نیست‪.‬‬
‫‪55 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫مفهوم «بلیت» در پروتکل ‪Neuman‬‬
‫‪ ‬عبار ‪ {IDA ║ ks ║ B}KBT‬برای ‪( A‬شروع کننده پروتکل)‬
‫مثل بلیت عمل میکند‪.‬‬
‫‪ ‬مادام که برحسب ساعت ‪ B‬به زمان ‪ B‬نرسیدهایم‪ A ،‬میتواند بتا‬
‫استفاده از بلیت و ‪ ks‬نشست جدیدی را آغاز کند‪:‬‬
‫‪56 / 66‬‬
‫‪AB: {IDA ║ ks ║ B}KBT ║ n’A‬‬
‫‪1.‬‬
‫‪BA: n’B ║ {n’A}ks‬‬
‫‪2.‬‬
‫‪AB: {n’B}ks‬‬
‫‪3.‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫مبنای طراحی پروتکلهای سری دوم‬
‫‪ ‬مبتنی بر رمز متقارن‬
‫‪‬بدون شخص ثالث معتمد‬
‫‪‬هتتر دو موجودیتتت‪ ،‬از قبتتل کلیتتد طتتوالنی متتدتی را بتته اشتتتراک‬
‫گراردهاند‪.‬‬
‫‪ ‬تصدیق هویت دو طرفه‬
‫‪57 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫پروتکل انتقال کلید (‪)Key Transfer‬‬
‫‪IDA ║ nA‬‬
‫‪AB:‬‬
‫‪1.‬‬
‫‪{ ks ║ IDA ║ IDB ║ nA ║ nB }KAB‬‬
‫‪BA:‬‬
‫‪2.‬‬
‫‪{nB}ks‬‬
‫‪AB:‬‬
‫‪3.‬‬
‫‪ ‬پیام ‪ 2‬به ‪ A‬اطمینان میدهتد کته ‪ B‬زنتده استت و کلیتد ‪ KAB‬را در‬
‫اختیار دارد (چرا که ‪ B‬نانس ‪ A‬را با این کلید تصدیق هویت میکند)‪.‬‬
‫‪‬همننین ‪ B‬کلید ‪ ks‬را دارد‪ ،‬چون آن را تصدیق هویت نموده است‪.‬‬
‫‪ ‬پیام ‪ 3‬به ‪ B‬اطمینان میدهد که ‪ A‬زنده است و کلیتدهای ‪ KAB‬و ‪ks‬‬
‫را در اختیار دارد (چرا که ‪ A‬نانس ‪ B‬را با ‪ ks‬تصدیق هویت میکند‪ ،‬و‬
‫‪ ks‬فقط توسط کسی که ‪ KAB‬را دارد قابل خواندن است)‪.‬‬
‫‪58 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫پروتکل توافق کلید (‪)Key Agreement‬‬
‫‪AB: IDA ║ nA‬‬
‫‪1.‬‬
‫‪BA: IDA ║ IDB ║ nA ║ nBks‬‬
‫‪2.‬‬
‫‪AB: nBks‬‬
‫‪3.‬‬
‫فقط تصدیق هویت پیام‬
‫(بدون محرمانگی)‬
‫‪ ‬در گام ‪ 2‬و ‪ ،3‬مقدار ‪ ks‬با اعمال تابع ویژه ‪ f‬به مقادیر ‪ nB ،nA‬و‬
‫‪ KAB‬بدست میآید‪.‬‬
‫‪ ‬مثالً ‪ f‬میتواند ‪ HMAC‬باشد‪:‬‬
‫) 𝐵𝑛 || 𝐴𝑛( 𝐵𝐴𝐾‪𝑘𝑠 = HMAC‬‬
‫‪59 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫مثال دیگر‪Authenticated Diffie–Hellman :‬‬
‫‪AB: IDA ║ nA ║ gKAB‬‬
‫‪1.‬‬
‫║ ‪BA: gKAB‬‬
‫‪2.‬‬
‫‪ IDA ║ IDB ║ nA ║ nB ks‬‬
‫‪AB:  nB ks‬‬
‫‪3.‬‬
‫‪ ‬در گام ‪ 2‬و ‪ ،3‬مقدار ‪ ks‬با استفاده از روذ دیفی – هلمن بدستت‬
‫میآید (محاسبا به پیمانه ‪:)q‬‬
‫‪ks = g‬‬
‫‪60 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫مبنای طراحی پروتکلهای سری سوم‬
‫‪ ‬مبتنی بر رمز کلید عمومی‬
‫‪‬بدون شخص ثالث معتمد‬
‫‪‬طرفین کلید عمومی یکدیگر را دارند‪.‬‬
‫‪ ‬تصدیق هویت دو طرفه‬
‫‪61 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
)Key Transfer( ‫پروتکل انتقال کلید‬
1.
AB: IDA ║ nA
2.
BA: Sign(PRB , E(PUA , Msg))
3.
AB: Sign(PRA, nB)
Msg = ks ║ IDA ║ IDB ║ nA ║ nB
‫محمد صادق دوستی‬
‫امنیت داده و شبکه‬
62 / 66
‫‪ Authenticated Diffie–Hellman‬با کلید عمومی‬
‫)‪AB: IDA ║ nA ║ Sign(PRA, g‬‬
‫‪1.‬‬
‫║ )‪BA: Sign(PRB, g‬‬
‫‪2.‬‬
‫‪ IDA ║ IDB ║ nA ║ nB ks‬‬
‫‪AB:  nB ks‬‬
‫‪3.‬‬
‫‪ ‬در گام ‪ 2‬و ‪ ،3‬مقدار ‪ ks‬با استفاده از روذ دیفی – هلمن بدستت‬
‫میآید (محاسبا به پیمانه ‪:)q‬‬
‫‪ks = g‬‬
‫‪63 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫پروتکل ‪1 – HMQV‬‬
‫‪ ‬اهداف‪:‬‬
‫‪‬اجرای دیفی – هلمن بدون هیچگونه سربار ارتباطی‬
‫‪‬مقاومت در برابر حمله ‪MITM‬‬
‫‪‬بدون تأیید کلید (‪ )Key Confirmation‬و تصدیق هویت دو‬
‫جانبه‪.‬‬
‫‪ x ‬و ‪ y‬به ترتیب کلید خصوصی ‪ A‬و ‪B‬‬
‫‪ ‬کلیدهای عمومی به صور ‪ X = gx‬و ‪Y = gy‬‬
‫‪ H ‬یک تابع درهمساز (تصادفی) که برد آن ‪ ℤq‬است‪.‬‬
‫‪64 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬
‫پروتکل ‪2 – HMQV‬‬
‫کلید خصوصی‪y :‬‬
‫‪B‬‬
‫کلیدهای عمومی‪:‬‬
‫‪X = gx, Y = gy‬‬
‫‪IDA, D = g‬‬
‫‪IDB, E = g‬‬
‫کلید خصوصی‪x :‬‬
‫‪A‬‬
‫)‪d = H(D║ IDB‬‬
‫)‪e = H(E ║ IDA‬‬
‫‪ks = (DXd) + ey‬‬
‫‪65 / 66‬‬
‫=‬
‫امنیت داده و شبکه‬
‫‪ks = (EYe) + dx‬‬
‫محمد صادق دوستی‬
‫پایان‬
‫صفحه درس‪:‬‬
‫‪http://ce.sharif.edu/courses/94-95/1/ce442-1/‬‬
‫مراجعه حضوری جهت رفع اشکال‪ :‬شنبهها ‪ 15‬الی ‪16‬‬
‫(طبقه پنجم دانشکده‪ ،‬درب شیشهای جنب آسانسور)‬
‫یا در زمانهای دیگر با قرار قبلی‬
‫یا به وسیله رایانامه‪dousti@ce :‬‬
‫‪66 / 66‬‬
‫امنیت داده و شبکه‬
‫محمد صادق دوستی‬