هشینگ در امنیت اطلاعات چیست؟ – به زبان ساده
عملیات هشینگ نوعی بهمریختن اطلاعات با هدف تضمین امنیت یا ناخوانا شدن پیامها برای افراد غیر مجاز است. در زمان برقراری هر نوع ارتباطی در بستر اینترنت امکان لو رفتن پیامها و هک شدن دادهها وجود دارد. هدف مهندسان کامپیوتر از عملیات هشینگ در امنیت اطلاعات این است که هم دادههای خود را برای هکرها ناخوانا کنند و هم از درستی و دستکاری نشدن این اطلاعات در مقصد مطمئن بشوند. بنابراین شناخت مفهوم هشینگ و تکنیکهای مربوط به رمزنگاری دادهها تاثیر بسیار زیادی در مدیریت و حفظ امنیت ارتباطات دارد.
- به شکل کامل با مفهوم هشینگ در امنیت اطلاعات آشنا شده و کاربردهای هش را میشناسید.
- متوجه میشوید که عملیات هشینگ از چند بخش تشکیل شده است و این بخشها چه هستند.
- با انواع دستهبندی الگوریتمهای هشینگ آشنا شده و در هر دسته چند مورد را میشناسید.
- دو شرط مهم برای کار با توابع هش در امنیت سایبری را یاد میگیرید.
- الگوریتمهای MD5 یا SHA را به شکل کامل شناخته و میتوانید آنها را با هم مقایسه کنید.
- چند مورد از ابزارهای رایج هش کردن دادهها و کاربرد آنها را میشناسید.


در این مطلب از مجله فرادرس به بررسی هشینگ در امنیت اطلاعات پرداختهایم. ابتدا خود هشینگ را تعریف میکنیم. سپس انواع الگوریتمهای پرکاربرد و عملیاتی مربوط به این حوزه را بررسی کرده و با هم مقایسه میکنیم. در بخش انتهایی هم چند مورد از ابزارهای هشینگ را معرفی خواهیم کرد.
هشینگ در امنیت اطلاعات چیست؟
هشینگ به عملیاتی گفته میشود که برای رمزنگاری اطلاعات در دنیای کامپیوتر به کار برده میشود. این عملیات، یکطرفه است. یعنی دادهها را گرفته و به رمز تبدیل میکند، ولی نمیتواند رمز تولید شده را به داده تبدیل کند. در عملیات هشینگ، ورودی میتواند هر اندازهای داشته باشد اما طول خروجی، همیشه ثابت است. برای هر چیزی میتوان مقدار هش را حساب کرد. برای مثال، فیلم، عکس یا پیام متنی، بدون محدودیت میتوانند به هش تبدیل بشوند.
در هشینگ سه بخش مهم وجود دارد.
- پیام: این بخش به همان دادهای اشاره میکند که میخواهیم هش شود. همینطور که اشاره کردیم هر نوع دادهای را میتوان به هش تبدیل کرد.
- تابع هش: تابع هش یا «H» تابع یکطرفهای است که دادهها را دریافت کرده و مقدار هش آن را محاسبه میکند. این تابع امکان برعکس انجام دادن عملیات، یعنی رسیدن از هش به پیام را ندارد.
- کد هش: به بخش آخر یا نتیجه بدست آمده از این تابع، نتیجه، خلاصه پیام، اثر انگشت دیجیتال، کد هش یا موارد دیگر گفته میشود. همیشه طول کد هش ثابت است.
تا به اینجای کار شناخت کلی از مفهوم هش و هشینگ بدست آوردهاید. در ادامه با کاربردها و مهمترین الگوریتمهای این حوزه هم آشنا میشوید. در صورت تمایل به مطالعه مطالبی مانند این مورد، پیشنهاد میکنیم که حتما از اپلیکیشن مجله فرادرس استفاده کنید.
برای نصب اپلیکیشن رایگان مجله فرادرس، کلیک کنید.
کاربردهای هشینگ در امنیت اطلاعات
هشینگ در امنیت اطلاعات چند کاربرد مهم دارد. در این قسمت از مطلب مهمترین آنها را معرفی میکنیم.
- هشینگ برای بررسی درستی پیامهای ارسال شده به کار برده میشود. یعنی اگر خطایی در پیام به وجود آمده باشد یا اصل پیام دستکاری شده باشد، گیرنده آن میتواند این مسئله را متوجه شده و مشکل را حل کند.
- این تکنیک با هدف طراحی پروتکلهایی برای اطمینان از محرمانگی و احراز هویت گیرنده و فرستنده پیام نیز به کار برده میشود.
- هشینگ، کاربردهای وسیعی در الگوریتمهای رمزنگاری مانند امضای دیجیتال، «PGP» و «SSL» و «Kerberos» و غیره دارد.
- این تکنیک پرکاربردترین روش برای ذخیره کلمههای عبور در پایگاه داده است. یعنی اینکه هیچگاه خود اصل کلمه عبور در پایگاه داده ذخیره نمیشود. بلکه نسخه هش شده آن را ذخیره میکنیم. سپس هربار که کاربر کلمه عبور خود را وارد میکند، ابتدا آن را هش کرده و سپس با نسخه ذخیره شده مقایسه میکنیم. اگر برابر بودند یعنی کاربر، کلمه عبور درست را وارد کرده است.
- در امنیت سایبری یا جرمشناسی سایبری از هشینگ به عنوان وسیلهای برای بررسی دستکاری دیجیتالی استفاده میکنند. با کمک هشینگ میتوان دستکاری شدن پیام در فضای مجازی را بررسی کرد.
در بخشهای بعد، مهمترین الگوریتمهای هش در امنیت سایبری را بررسی میکنیم.
یادگیری امنیت سایبری با کمک فرادرس
همینطور که در ابتدای مطلب اشاره کردیم، داشتن مهارت حفظ امنیت در دنیای سایبری از چند جهت مختلف اهمیت دارد. نکته اصلی این است که آمار جرایم سایبری در دنیای امروز هر لحظه بیشتر میشود. بنابراین باید با حداقل مهارتها برای محافظت از خودمان و سیستمهای تحت مدیریتمان آشنا شویم. به غیر از این موارد، فرصتهای شغلی بسیار زیادی هم در مقابل متخصص امنیت سایبری قرار دارند. بنابراین افراد زیادی به منظور دستیابی به این موقعیتهای شغلی، تلاش میکنند مهارتها و تواناییهای خود را افزایش بدهند.

از طرف دیگر با توجه به کمبود نیروهای متخصص امنیت سایبری، نسبت به نیاز کشور، فرادرس تلاش کرده است تا مهمترین و مفیدترین دورههای مرتبط با این حوزه را تهیه کرده و در اختیار علاقهمندان به آن قرار دهد. در این دورهها تمام جنبههای مختلف امنیت بررسی شدهاند. در پایین چند مورد از فیلمهای آموزشی مربوط به حوزه امنیت سایبری را مشاهده میکنید.
- فیلم آموزش امنیت سایبری همراه با بررسی مدیریت ریسک و استانداردها
- فیلم آموزش رایگان نقشه راه امنیت سایبری، دوره تخصصی حفاظت از اتوماسیون و کنترل صنعتی ICS/OT
- فیلم آموزش امنیت کاربری فناوری اطلاعات (اکفا) + گواهینامه
- فیلم آموزش آشنایی با حملات سایبری در مهندسی کنترل
- فیلم آموزش امنیت «شبکه های بی سیم» (Wireless Networks)، بخش یکم + گواهینامه
الگوریتمهای هشینگ در امنیت اطلاعات
الگوریتمهای مختلفی برای هشینگ استفاده میشوند. اما برای استفاده در حوزه امنیت سایبری لازم است که دو شرط مهم را داشته باشند.
- یکطرفه باشند: یعنی با داشتن نتیجه H(M) دسترسی به مقدار M غیرممکن باشد.
- در برابر برخورد، مقاوم باشند: یعنی با فرض اینکه دو ورودی مجزای M1 و M2 را داریم، احتمال برقرار بودن تساوی H(M2) = H(M1) غیرقابل محاسبه باشد. به زبان سادهتر به هیچوجه امکان برابر شدن مقدار هش دو پیام مختلف وجود نداشته باشد.
خود توابع مورد استفاده برای هشینگ به دو دسته اصلی تقسیم میشوند.
- هشهای کلید نشده یا MDCs: برای مثال الگوریتمهای MD5 یا SHA در این دسته قرار میگیرند.
- هشهای کلید شده یا MACs: برای مثال الگوریتمهای HMAC یا CMAC در این دسته قرار میگیرند.
انواع الگوریتمهای هش کلید نشده
الگوریتمهای هش کلید نشده ساختار اصلی تمامی الگوریتمهای دیگر را تشکیل میدهند. حتی الگوریتم HMAC خودش از الگوریتم SHA استفاده میکند. بنابراین لازم است که با این الگوریتمها به شکل بهتری آشنا بشویم.
الگوریتمهای متنوعی برای هش کردن به کار برده میشوند. دو دسته از این الگوریتمها پیشرفتهتر و کاربردیتر از دیگر گزینهها هستند. در فهرست پایین این الگوریتمها را معرفی کردهایم.
- MD5
- SHA

در بخش بعدی هر دوی این الگوریتمها را با جزئیات بیشتری توضیح میدهیم. برنامه نویسها باید بیشتر از همه با تکنیکهای مختلف رمزنگاری آشنا باشند. نکته مهم در تفاوت سینتکسهاست. وگرنه برای مثال، الگوریتمها و تکنیکهای رمزنگاری در پایتون با زبانی مانند جاوا تفاوت چندانی ندارد. برای آشنایی با این تکنیکها میتوانید مطلب مربوط به آن را در مجله فرادرس مطالعه کنید.
MD5
این الگوریتم نسخه ارتقایافتهای از الگوریتم «MD4» است. کاربرد گستردهای دارد اما در مقابل بعضی از حملات آسیبپذیر است. بنابراین بیشترین محل استفاده آن در بررسی خرابیهای غیرعمدی بر روی پیامها است. خروجی این الگوریتم، بلوک هش شده ۱۲۸ بیتی است.
روش استفاده از الگوریتم MD5
در این بخش چند راه حل برای هش کردن دادهها با کمک الگوریتم MD5 را معرفی کردهایم.
- روش اول: در لینوکس میتوانیم به کمک دستور md5sum<space>filename پیامهای خود را با کمک MD5 هش بکنیم.
- روش دوم: کاربران ویندوز میتوانند از فایل «Microsoft File Checksum Integrity Verifier» برای انجام این کار کمک بگیرند. البته این فایل باید قبل از استفاده دانلود شود.
- روش سوم: برای تبدیل متنهای ساده و گذرواژهها به کد هش با این الگوریتم میتوان از ابزارهای آنلاین و رایگانی مانند «Tools4noobs» هم استفاده کرد.
- روش چهارم: برنامه نویسان کامپیوتر میتوانند از کتابخانههای تخصصی و ابزارهای خاص این زبانها مانند «Input Stream Decorator» در جاوا استفاده کنند.
معایب MD5
در فهرست زیر، رایجترین معایب MD5 را نوشتهایم.
- MD5 تابع آسیبپذیری است. به خصوص در حوزه کریپتوگرافی زیاد از این تابع استفاده نمیشود.
- در برابر حملات برخوردی بسیار ضعیف عمل میکند. یعنی امکان تولید کد هش یکسان برای دو پیام مختلف بیشتر است.
- پیشتر از این تابع برای مقایسه رشتهها و بررسی صحت آنها براساس تکنیک هزینه-فایده استفاده میشد. بنابراین چندان به درد عملیات هشینگ نمیخورد.
SHA
کلمه SHA مخفف عبارت «Secure Hash Algorithm» به معنای «الگوریتم هش ایمن» است. تابع SHA از خانواده توابع هش کریپتوگرافی است. در این خانواده چند الگوریتم مختلف مانند «SHA-0» و «SHA-1» و «SHA-2» و «SHA-3» و «SHA-4» وجود دارد.
این تابع میتواند پیامهایی را با طولهای مختلف دریافت کرده و بر روی آنها عملیات خاص خود را اجرا بکند. در نهایت خروجی را به صورت بلوک ۲۵۶ بیتی ارائه میدهد.
روش استفاده از الگوریتم SHA
در این بخش چند روش برای هش کردن دادهها با کمک الگوریتم SHA را معرفی کردهایم.
- روش اول: در ترمینال لینوکس هم میتوان از تابع SHA و الگوریتمهای مختلف آن استفاده کرد. به این منظور دستور sha256sum<space><filename> را تایپ میکنیم. در این دستور عبارت <space> به معنی فضای خالی است. عبارت <filename> هم نام و آدرس کامل فایل یا متن یا هر چیزی است که باید هش شود.
- روش دوم: کاربران ویندوز میتوانند از فایل « Microsoft File Checksum Integrity Verifier» برای دسترسی به SHA-1 کمک بگیرند. البته این فایل باید قبل از استفاده دانلود شود.
- روش سوم: برای تبدیل متنهای ساده و گذرواژهها به کد هش (با این الگوریتم) میتوان از ابزارهای آنلاین رایگانی مانند وبسایت «Tools4noobs» هم استفاده کرد.
- روش چهارم: برنامه نویسان کامپیوتر میتوانند از کتابخانههای تخصصی و ابزارهای خاص این زبانها مانند «java.security.MessageDigest» یا کتابخانه «Bouncy Castle» در جاوا استفاده کنند. برنامه نویسان PHP هم میتوانند از تابع sha(variable_name) برای هش کردن اطلاعات در PHP مختلف استفاده کنند.
مزایای استفاده از الگوریتم SHA
در فهرست زیر مهمترین مزیتهای استفاده از الگوریتم SHA را نوشتهایم.
- در برابر حملات برخوردی بسیار مقاوم است.
- در پروتکلهای کریپتوگرافی زیادی مانند «SSI» و «PGP» و «SSH» و «S-MIME» و غیره استفاده میشود.
- برای بررسی صحت و درستی فایلهای سیستمی، رشتههای متنی و کدها قابل استفاده است.
مقایسه الگوریتم های MD5 و SHA
در جدول پایین، تمام ویژگیهای مهم الگوریتمهای MD5 و SHA را به شکل خلاصه مقایسه کردهایم.
| پارامتر | MD5 | SHA |
| اندازه خروجی | 128 بیت | 160 بیت |
| تعداد تلاش لازم برای شکستن رمز | بیت عملیات | بیت عملیات |
| تعداد تلاش لازم برای حملات برخوردی | بیت عملیات | بیت عملیات |
| امنیت | کمتر از SHA | بیشتر از MD5 |
| سرعت | کمی سریعتر | کندتر |
| احتمال هک | چندبار گزارش حمله موفق | هیچ گزارشی از حمله موفق نشده است. |
ابزارهای هشینگ در امنیت اطلاعات
در این بخش از مطلب سه مورد از رایجترین ابزارها در حوزه هشینگ را معرفی کردهایم.
- Hash Calculator: این دسته از ابزارها با کمک الگوریتمهای MD5 و SHA کار میکنند. «Hash Calculator» از هشینگ فایلهایی با فرمتهای مختلف به پشتیبانی میکند. وظیفه این ابزارها فقط تولید کد هش انواع پیامهای ورودی است.
- FTK-Access Data: این ابزار بیشتر برای جرمشناسی سایبری به کار برده میشود. توانایی هش کردن کل هارد دیسک به شکل کامل و یکپارچه را هم دارد.
- SIFT: این ابزار هم از نوع الگوریتمهای جرمشناسی است. SIFT به وسیله جامعه SANS به وجود آمده است و میتواند کل هارددیسک را به صورت یکجا هش بکند.
یادگیری نکات مهم امنیت شبکه در فرادرس
امنیت شبکه، بخشی از امنیت سایبری است. هدف در این حوزه برقراری امنیت و تضمین انتقال صحیح اطلاعات در بستر شبکههای کامپیوتری است. با توجه به نیاز روز افزون دنیای کامپیوتر، صنایع مدرن و بازار به متخصصین این حوزه، فرادرس تلاش دارد تا بهترین فیلمهای آموزشی را در اینباره تولید و منتشر کند. به همین دلیل مجموعه آموزشی با نام مجموعه آموزش امنیت شبکه توسط فرادرس تولید شده است. تمام فیلمهای این حوزه در این مجموعه جمعآوری شدهاند.
- فیلم آموزش ساخت برنامه طبقه بندی کننده فایل های مشکوک در پایتون + تحلیل بدافزار و امنیت
- فیلم آموزش حملات DoS و DDoS در شبکه مجازی از شناسایی تا روشهای مقابله + گواهینامه
- فیلم آموزش شناخت انواع هک و روش های مقابله با آن + گواهینامه
- فیلم آموزش امنیت در شبکه های کامپیوتری و اینترنت + گواهینامه
- فیلم آموزش امنیت شبکه با پایتون از مبانی تا تست نفوذ + گواهینامه
برای مشاهده فیلمهای بیشتر بر روی تصویر زیر کلیک کنید. این مجموعه آموزشی به صورت مداوم و از جهت محتوا در حال غنیتر شدن خواهد بود.

جمعبندی
در این مطلب از مجله فرادرس هشینگ در امنیت اطلاعات را بررسی کردیم. هشینگ، تکنیک امنیتی و بسیار مهمی است که اطلاعات را به کد یکتا (هش) تبدیل میکند. این عملیات، فرآیندی یکطرفه است. یعنی بازگشت به داده اصلی غیرممکن است. هشینگ برای محافظت از دادهها در برابر دستکاری و اطمینان از صحت آنها نیز به کار برده میشود. اما هدف اصلی آن مخفی کردن دادههایی است که افراد دیگر نباید به آنها دسترسی داشته باشند.
الگوریتمهای مختلفی مانند MD5 و SHA وجود دارند. البته استفاده از MD5 به دلیل آسیبپذیریهای مختلف کمتر توصیه میشود، در حالی که SHA امنیت بالاتری ارائه میدهد. هش کردن کاربردهای گوناگونی از ذخیره امن رمزهای عبور گرفته تا بررسی یکپارچگی فایلها و تحلیل جرمشناسی سایبری دارد. به طور خلاصه، هشینگ عنصری اساسی در حفظ امنیت اطلاعات و اطمینان از صحت آنهاست.












