هش چیست و چگونه امنیت اطلاعات و احراز هویت را متحول کرده است ؟

هش چیست و چگونه امنیت اطلاعات و احراز هویت را متحول کرده است ؟
درود بر دوستان عزیز و همراهان سایت زودیاک ، مرجع آموزش هک و امنیت.
در این آموزش قصد داریم بصورت کامل به بررسی هش (hash) بپردازیم.
بدون شک یکی از ارزشمند ترین دارایی های امروز ، داده ها هستند.
امروزه که دیگر حتی برای جنگ هم کشور ها به سراغ لشکر کشی های فیزیکی نمی روند
و هر کشور ارتش سایبری خود را گسترش داده است ، اهمیت فضای سایبر و داده های در آن بیش از پیش خود نمایی میکند. در این میان مکانیزم های امنیتی بسیاری است که بتوان دست مهاجمان را از شبکه و داده های خود کوتاه کرد اما اولین مکانیزم امنیتی ، رمزنگاری و هشینگ است.
الگوریتم های رمزنگاری و هش کاملا با هم متفاوت هستند.
در کل علم رمزنگاری از علم هشینگ کاملا جدا است و حتی کاربرد های متفاوتی دارد اما بسیاری به اشتباه آنها را یکی می داند. در ادامه تفاوت کاربرد هر دو را کامل توضیح می دهیم.
در نیای امنیت ما یک مثلت امنیت داریم که از 3 ضلع تشکیل شده است.
- دسترسی پذیری داده
- محرمانگی داده
- جامعیت داده
دسترسی پذیری در این خصوص است که سند با حفظ مسایل امنیتی باید بصورت کامل و همیشه در دسترس باشد.
محرمانگی حول این مسایل است که افراد غیر مجاز قادر به خواندن داده یا سند نباشند
جامعیت داده بر این اساس است که یک سند آزادانه در اینترنت جابجا شود ، همه هم بتوانند آن را بخوانند اما هیچ کس نتواند آن را ذره ای هم تغییر بدهد.
الگوریتم های رمزنگاری بیشتر حول محرمانگی داده هستند در صورتی که الگوریتم های هش حول جامعیت هستند.

پس اگر قصد داریم که بدانیم هش چیست باید بیشتر در خصوص جامعیت داده بدانیم.
در گذشته ما برای اعتبار بخشیدن به سند از امضا و اثر انگشت یا مهر استفاده می کردیم
و آن را دلیل محمکی بر اصل بودن سند عنوان می کردیم.
روزش های احراز هویت بالا شاید در گذشته کاربرد داشت اما با رشد فناوری اطلاعات دیگر روش های بالا کاربرد ندارد. هرچند هم که روش بالا یک ایراد اساسی هم داشت. بزرگترین ایراد روش سنتی این است که متن پیام به امضا ، اثر انگشت یا مهر هیچ ربطی ندارد. یک متن نوشته شده و امضا شده است. اما در دنیای کامپیوتری به این شکل نیست. ما برای احراز هویت از امضا دیجیتال و digest (بخوانید دایجست ، به جای اثر انگشت از آن استفاده می شود ) استفاده می کنیم.
digest در اینجا مستقیما از متن پیام توسط الگوریتم هشینگ تولید می شود.
یعنی یک پیام ساده توسط الگوریتم های هشینگ ، هش می شود و دایجست پیام بر اساس محتوا آن تولید می شود. حال اصل متن سند می تواند در اینترنت جابجا شود. اگر یک کلمه از آن تغییر کند ، برای اثبات اصل بودن سند می توان آن را توسط همان الگوریتم هشینگ، هش کرد. اگر digest تولید شده با digest اول برابر نبود یعنی تغییر کرده است. اما اگر یک digest تولید شد یعنی سند اصل است. این تکنیک که digest به سند وابسته است بسیار قوی تر از روش سنتی قدیمی است که پیام و اثر انگشت هی ارتباطی بهم ندارند. همانطور که متوجه شدید digest بر اساس الگوریتم هش و متن پیام تولید می شود.
اثر انگشت one to many یا یک به چند است. یعنی یک اثر انگشت برای تمامی اسناد. همین نکته امکان جعل جاداگانه به سند می دهد. اما digest یک عملیات one to one است . یعنی یک به است و برای هر سند جداگامه تولید می شود. همین کار یعنی جلوگیری از جعل سند و digest .
حال بریم به سراغ اینکه خود هش چیست و چکار میکند.
هش چیست ؟

هش مانند رمزنگاری یک عملیات ریاضی است اما بصورت یک طرفه . برخلاف رمزنگاری که دو طرفه است ، هش یک عملیات ریاضی یک طرفه است یعنی شما نمی توانید از متن هش شده به اصل پیام برسید اما در الگوریتم های رمزنگاری که دو طرفه هستند شما می توانید متن را رمزگشایی کنید. یعنی دو طرفه است. برای جامعیت داده ما الگوریتم های هشینگ را بر روی داده پیداه سازی میکنیم و digest تولید می شود. بعد از آن دیگر digest ملاک احراز هویت و اعتبار سند است چون اگر حتی یک کاراکتر پیام عوض شود ، digest کاملا تغییر می کند.
به Hash در زبان فارسی درهم ساز یا چکیده ساز گفته می شود
حال که به سوال هش چیست پاسخ دادیم به سراغ ویژگی های آن می رویم.
ویژگی های کلیدی hash :
هس 3 ویژگی کلیدی دارد :
- پیدا شدن 2 پیام که دارای هش یکسان باشند تقریبا غیر ممکن است. به همین دلیل هش در برابر تصادم قوی و ضعیف مقاوم است.
- بر خلاف رمزنگاری که هرچند الگوریتم ثابت باشد اما با تغییر کلید ، متن رمز شده عوض می شود ، در هشینگ این گونه نیست و اگر 100 بار هم یه متن را توسط یک الگوریتم هش کنید ، به خروجی های یکسانی دست پیدا می کیند. این نکته در جامعیت بسیار مهم است. چون اگر خروجی تغییر کند ، رهگیری تغییرات و ورودی ها غیر ممکن می شود.
- هش یک طرفه است. شما نمی توانید به هیچ عنوان با انجام عملیات ریاضی از متن هش شده به پیام دست پیدا کنید اما جالب است بدانید با مقایسه می شود به اصل متن دست پیدا کرد. یعنی اگر کلمه زودیاک را هش کنیم و از طرفی دیگر یک هش داشته باشم و ندانیم آن هش چیست و آن را با هش زودیاک مقاسه کنم و برابر باشد ، نتیجه میگیرم هش من ، کلمه زودیاک است. احتمالا تا حالا واژه کرک هش را شنیده اید. ابزار های مانند ابزار john the ripper یا hashcat که کارشان کرک هش است یا سایت های آنلاین که اینکار را می کنند یک پایگاه داده از تعداد بسیاری کلمه و جمله به همراه هش دارند. هنگامی که شما هش را وارد می کنید در پایگاه داده می گردند و هش شما را با هش های پایگاه داده خود مقایسه می کنند. اگر هش مشابه پیدا شد ، اصل کلمه را به شما بر می گرداند.
روش های احراز هویت به کمک الگوریتم های hashing
در دنیای امنیت و احراز هویت ، ما دو روش داریم.
- Modification detection code) MDC)
- Message authentication code) MAC)
حال به بررسی 2 روش کی پردازیم :
روش MDC

این روش برای بانک ها، ارگان های دولتی ، ادرات و در کل مکان های که امنیت بسیار مهم است کاربرد دارد. چون در کنار امنیت بسیار بالای که دارد، پیاده سازی سخت و مدیریت مشکلی را به همراه دارد. در این روش سند توسط الگوریتم ها هش می شود و یک کد شناسایی تغییر یا همان MDC بر اساس محتوا پیام تولید می شود. سپس دو کانال میان فرستنده و گیرنده باز می شود. متن ساده پیام توسط یکی از کانل ها ارسال می شود و MDC از طریق کانال امن دوم فرستاده می شود. حال گیرنده از طرفی متن ساده و MDC اصلی را در اختیار دارد.
حال برای احراز هویت باید خود توسط همان الگوریتم هشینگ ، پیام را هش کند و MDC تولید کند. سپس MDC خود را با MDC که از کانال امن دریافت کرد مقایسه کند. اگر برابر بود ، اصالت پیام مشخص می شود در غیر این صورت پیام جعلی است.
روش MAC

در این روش تنها یک کانال بین فرستنده و گیرنده ایجاد می شود.
متن سند به همراه یک کلید رمزنگاری توسط الگوریتم های هشینگ هش می شود و بر اساس محتوا پیام، یک MAC که کد تایید پیام است تولید می شود. سپس پیام به همراه خود MAC از یک کانل برای گیرنده ارسال می شود. سپس گیرنده متن را تویط کلید رمزگشایی میکند و خود توسط همان الگوریتم هشینگ ، هش میکند. سپس MAC را تولید می کند و MAC خود را با MAC همراه پیام مقایسه می کند. اگر برابر بود اصالت پیام تایید می شود در غیر این صورت پیام جعلی است.
همانطور که متوجه شدید دنیای احراز هویت کاملا بر روی الگورتیم های هشینگ می چرخد نه رمزنگاری.
حتی در دنیای ارز های دیجیتال و فناوری بلاک چین هم برای احراز هویت از الگوریتم های hashing استفاده می شود.
معروفترین استاندارد های هش :
- MD5 : یک دایجست با اندازه 128 بیت تولید می کند
- SHA1 : یک دایجست با اندازه 160 بیت تولید می کند
- SHA256 : یک دایجست با اندازه 256 بیت تولید می کند
- SHA512 : یک دایجست با اندازه 512 بیت تولید می کند
- Keccak : یک دایجست با اندازه 256 بیت تولید می کند
نکته مهم : هر چه که دایجست تولید شده بزرگتر شود امنیت بالاتر می رود چون امکان تصادم کمتر میشود.
دیدگاهتان را بنویسید