نوید یحیی پور
متخصص شبکه های سیسکو و امنیت زیرساخت

Hash چگونه برای امن کردن پروتکل ها استفاده می شود؟

امروز داشتم در مورد Securing BGP و مباحث مربوط به Authentication این پروتکل مطالعه می کردم یه مطلبی یادم افتاد. یه زمانی واسم جای سوال بود: وقتی یه پروتکلی واسه مسائل امنیتی از ارسال Hash کلید مربوطه به جای ارسال کلید به صورت Plain Text استفاده می کنه، اگه کسی بیاد و محتویات بسته رو استخراج کنه و Hash مربوطه رو تو بسته های خودش جا کنه، اونوقت این وسط امنیتی که قرار بود Hash واسمون ایجاد کنه چی میشه!؟ مسئله یکم گنگ شد! ولی بیشتر توضیح میدم تا متوجه منظورم بشید

تو پروتکل BGP یا هر پروتکل مسیریابی دیگه (مثل EIGRP یا OSPF) که میتونه از MD5 واسه Authentication و چک کردن Integrity بسته ها استفاده کنه، به همراه بسته این MD5 Hash ارسال میشه و گیرنده بسته با استفاده از این MD5 دریافتی و تولید MD5 لوکال خودش و مقایسه این دو باهم نتیجه می گیره که بله بسته از مبداء مربوطه اومده و مورد تأییده. این جریان باعث میشه هرکسی که بتونه بسته رو تو مسیر Capture کنه و از MD5 اون استفاده کنه (یعنی Hash رو تو بسته های خودش جا کنه) در واقع میتونه این مرحله Authentication رو دور بزنه!
ولی در عمل اینطور نیست!

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
سرفصل های این مطلب
  1. استفاده از Hash در عمل

متاسفانه تو خیلی از کتاب ها و مطالب موجود تو اینترنت نوشته شده که: Hash تولید شده از کلید مربوطه، به همراه بسته فرستاده میشه که این باعث سردرگمی خواننده و من شده بود.

استفاده از Hash در عمل

وقتی پروتکلی بخواد بسته ای رو به صورت امن بفرسته (در اینجا منظور از امن یعنی عمل تأیید Authentication و Integrity رو بسته ها انجام بگیره)، تنها از کلید مربوطه نمیاد Hash بگیره و تو بسته قرار بده و ارسالش کنه، بلکه میاد Hash ترکیبی از بسته و کلید رو تولید میکنه و نتیجه رو به همراه بسته می فرسته. یعنی Hash مربوطه با استفاده از اطلاعات کلید و اطلاعات کل بسته تولید میشه.

پس برای هر بسته ای این Hash تولیدی منحصر به فرد هست چون اطلاعات داخل هر بسته منحصر به فرد هست. و ما نمیتونیم صرفاً با کپی Hash و قرار دادنش تو بسته های خودمون، سر دریافت کننده بسته کلاه بذاریم! دریافت کننده میاد با استفاده از کلید خودش و اطلاعات بسته دریافتی، Hash رو محاسبه میکنه، اگه نتیجه این دو با هم برابر بود: Authentication و Integrity تأمین شده، یعنی بسته رو کسی که انتظارشو داشتیم فرستاده و اطلاعاتش تو مسیر دستکاری نشده.به عنوان مثال MD5 Hash کلمه (کلید) nmaxi میشه:

$1$BciR$hemi.KLrPcxzceNb5hhVi.
BGP Authentication MD5


توجه: از دستور username صرفاً برای نشان دادن خروجی md5 استفاده کردم و این دستور هیچ ارتباطی به BGP Authentication نداره

پروتکل ها چگونه در بسته های خود از Hash برای تأمین امنیت استفاده می کنند

ولی ببینید داخل بسته BGP که من کلید Authentication اونو nmaxi تعیین کردم چه Hash ای منتقل میشه:

پروتکل ها چگونه در بسته های خود از Hash برای تأمین امنیت استفاده می کنند

نویسنده : نوید یحیی پور
منبع : توسینسو
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.


نوید یحیی پور
نوید یحیی پور

متخصص شبکه های سیسکو و امنیت زیرساخت

مدرس دوره های CCIE Enterprise Infrastructure و CCIE Service Provider شرکت مشاوره و آموزشی Orhan Ergun LLC

نظرات