عملکرد هش در رمزنگاری: چگونه کار می کند؟

عملکرد هش در رمزنگاری: چگونه کار می کند؟

 

شما در هنگام گشت و گذار آنلاین به صورت روزانه از هشینگ استفاده می کنید اما ممکن است آن را ندانید! بیایید بررسی کنیم که چگونه یک هش رمزنگاری به زبان عادی کار می کند
رمزنگاری شامل همه ابزارها و تکنیک هایی است که به محافظت از داده ها در هنگام انتقال و در حالت استراحت کمک می کند. عملکرد هش در رمزنگاری یکی از بازیگران بزرگ است ، با این حال بسیاری از مردم نمی دانند آن چیست و چه کار می کند.

صادقانه بگویم ، هشینگ همه جا وجود دارد. به عنوان مثال ، آیا می دانید گذرواژه های شما اغلب در وب سایت های برجسته با هش ذخیره می شوند؟ در واقع ، قفل اثر انگشت روی گوشی ها و لپ تاپ های ما از فناوری هش استفاده می کند!

بنابراین ، بیایید بررسی کنیم که عملکرد هش در رمزنگاری چیست و چرا مهم است. ما نحوه عملکرد هش ، عملکرد هش رمزنگاری (و انجام نمی دهد) ، و نحوه ایمن سازی هش از نظر ذخیره رمز عبور را توضیح خواهیم داد.

 

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

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

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

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

عملکرد هش در رمزنگاری: چگونه کار می کند؟

مقادیر خروجی که توسط یک تابع هش بازگردانده می شوند با چند نام مختلف نامیده می شوند:

  • مقادیر هش
  • گوارش
  • کدهای هش
  • هش
    برای هر ورودی ، یک خروجی هش منحصر به فرد دریافت می کنید. پس از ایجاد یک هش ، تنها راه برای به دست آوردن یک هش دقیق ، وارد کردن متن یکسان است. اگر حتی یک کاراکتر را تغییر دهید ، مقدار هش نیز تغییر می کند. به زودی در مورد آن بیشتر صحبت خواهیم کرد.

Hashing vs Encryption – آیا آنها یکسان نیستند؟

در یک کلمه؟ شماره هش کردن و رمزگذاری دو فرایند رمزنگاری جدا هستند. رمزگذاری چیزی است که می توانید با استفاده از الگوریتم ها و کلید ، داده های متن ساده (قابل خواندن) را به چیزی غیر قابل رمزگشایی تبدیل کنید. با این حال ، می توانید این داده ها را با استفاده از یکسان (رمزگذاری متقارن) یا یک کلید رمزنگاری ریاضی متفاوت اما مرتبط (رمزگذاری نامتقارن) رمزگشایی کنید.

عملکرد هش رمزنگاری متفاوت است. هنگامی که داده ها را هش می کنید ، نمی توانید آنها را به فرمت اصلی خود بازگردانید زیرا یک فرایند یک طرفه است.

اما عملکردهای هش چگونه هستند و چگونه کار می کنند؟ بیایید به بخش اول س addressال بپردازیم و سپس کمی بعد به قسمت دیگر برسیم.

نمونه هایی از توابع هش رمزنگاری

این یک تصویر سریع برای نشان دادن نحوه عملکرد یک هش در رمزنگاری است.
طول خروجی یا هش به الگوریتم هش مورد استفاده شما بستگی دارد. مقادیر هش می تواند 160 بیت برای هش های SHA-1 ، یا 256 بیت ، 384 بیت یا 512 بیت برای هش های خانواده SHA-2 باشد. آنها معمولاً با کاراکترهای هگزادسیمال نمایش داده می شوند. مقدار و اندازه داده های ورودی می تواند متفاوت باشد ، اما مقدار خروجی از نظر اندازه همیشه ثابت است.

در این مثال ، می بینید که طول مقدار هش یکسان است ، اگر مقدار ورودی فقط یک کلمه کوچک باشد یا یک جمله کامل. (برای مثال ، یک مقدار هش 160 بیتی دارای 40 کاراکتر هگزادسیمال است ، در حالی که یک هش 256 بیتی دارای 64 کاراکتر شش ضلعی است.) بنابراین ، حتی اگر یکی از کتابهای هری پاتر -یا کل مجموعه آنها-را با استفاده از همان الگوریتم ، طول مقادیر هش ثابت می ماند!

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

1-اطمینان از یکپارچگی داده ها ،
2-ایجاد و تأیید امضای دیجیتال (که هش رمزگذاری شده است) ، و
3-تسهیل ذخیره سازی امن رمز عبور

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

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

1-خانواده SHA ( SHA-1 ، SHA-2 [شامل SHA-256 و SHA-512] ، و SHA-3)
2-خانواده MD (MD)
3-گرداب
4-ببر
5-NTLM
6-LanMan (هش LM)
در حال حاضر ، همه این الگوریتم های امن برای هر نوع برنامه یا مقصدی در نظر گرفته نمی شوند. برخی از عملکردهای هش سریع هستند ، در حالی که برخی دیگر کند هستند. به عنوان مثال ، وقتی صحبت از استفاده از توابع هش رمزنگاری برای هش رمز عبور می شود ، می خواهید از تابع هش آهسته استفاده کنید نه تابع سریع (هرچه کندتر بهتر).

ویژگیهای رمزنگاری هش

بنابراین ، چه ویژگی هایی یک تابع هش رمزنگاری قوی را تشکیل می دهند؟

جبرگرایی – صرف نظر از اندازه ورودی یا مقدار کلیدی ، عملیات باید همیشه به یک خروجی طول ثابت یا مقدار هش منجر شود.
سرعت محاسباتی – سرعت یک تابع هش مهم است و باید بر اساس نحوه استفاده از آن متفاوت باشد. به عنوان مثال ، در برخی موارد ، شما نیاز به یک تابع سریع هش دارید ، در حالی که در برخی موارد بهتر است از یک تابع هش آهسته استفاده کنید.
مقاومت در برابر تصویر -برگشتن هاش ها باید بسیار غیرعملی باشد (یعنی باید به عنوان یک تابع یک طرفه برای همه مقاصد و اهداف عمل کند). عملکرد هش باید آنقدر دشوار باشد و داده ها را آنقدر مبهم کند که بعید باشد کسی مهندس معکوس را برای تعیین مقدار اصلی آن معکوس کند. حتی یک تغییر کوچک در ورودی اصلی باید یک مقدار هش کاملاً متفاوت ایجاد کند.
ویژگی های یک عملکرد هش در رمزنگاری
این دو ویژگی بارز توابع هش رمزنگاری هستند.

عملکرد هش در رمزنگاری: چگونه کار می کند؟

 

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

به عبارت دیگر ، اگر تابع هش h باشد و مقدار ورودی x باشد ، مقدار هش h (x) خواهد بود. اگر شما به اینترنت دسترسی دارند ساعت (x) و که ارزش تابع هش ساعت ، آن را ( تقریبا ) غیر ممکن به شکل ارزش X .

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

بنابراین ، اگر تابع هش h باشد و دو مجموعه داده ورودی متفاوت x و y وجود داشته باشد ، مقدار هش h (x) همیشه باید با h (y) متفاوت باشد. بنابراین ، h (x) ≠ h (y) . این بدان معناست که اگر کوچکترین تغییری در داده های اصلی ایجاد کنید ، مقدار هش آن تغییر می کند. بنابراین ، هیچ گونه دستکاری در داده ها بدون توجه نمی ماند.

هشینگ چگونه کار می کند؟

اکنون که می دانیم عملکرد هش در رمزنگاری چیست ، بیایید نحوه عملکرد آن را شرح دهیم.

اول از همه ، الگوریتم هش داده های ورودی بزرگ را به بلوک هایی با اندازه یکسان تقسیم می کند. سپس الگوریتم فرآیند هشینگ را برای هر بلوک داده به طور جداگانه اعمال می کند.

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

این بدان معناست که اگر داده های هر بلوک دستکاری شود ، مقدار هش آن تغییر می کند. و چون مقدار هش آن به عنوان ورودی در بلوک های بعدی تغذیه می شود ، همه مقادیر هش تغییر می کنند. به این ترتیب حتی کوچکترین تغییر در داده های ورودی قابل تشخیص است زیرا کل مقدار هش را تغییر می دهد.

فرایندی که با یک تابع هش در رمزنگاری همراه است
در نمودار ، مقدار ورودی بلوک داده 1 (B1) و مقدار هش h (B1) است. مقدار ورودی B2 بلوک بعدی 2 با مقدار هش قبلی h (B1) ترکیب می شود تا مقدار هش h (B2) تولید شود. این فرایند ترکیب مقدار خروجی یک بلوک با مقدار ورودی بلوک بعدی در خط تمام بلوک ها ادامه می یابد.

عملکرد هش در رمزنگاری: چگونه کار می کند؟

3 ویژگی اصلی یک عملکرد Hash در رمزنگاری

در این بخش بعدی ، بیایید بررسی کنیم که هشینگ در رمزنگاری چه کار می کند و چه کاری انجام نمی دهد.

1) کاربران را قادر می سازد تا تشخیص دهند که آیا داده ها دستکاری شده است یا خیر
هنگامی که با استفاده از یک عدد منحصر به فرد و تصادفی ایجاد می شود ، همه مقادیر هش متفاوت است. بنابراین ، اگر مهاجمی سعی کند قسمتی از داده های اصلی ورودی (داده های متنی ، نرم افزار ، برنامه ، محتوای ایمیل و حتی فایل رسانه ای) را تغییر داده ، تغییر دهد یا حذف کند ، مقدار هش آن تغییر می کند. به محض تغییر مقدار هش ، کاربران در مورد آن مطلع می شوند. کاربران بلافاصله می دانند که محتوای پیام یا برنامه نرم افزاری در وضعیتی نیست که توسط فرستنده/توسعه دهنده اصلی ارسال یا ایجاد شده است.

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

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

از آنجا که مقدار هش را نمی توان به راحتی با استفاده از منابع مدرن معکوس کرد ، بعید است که هکرها مقدار هش را رمزگشایی کنند ، حتی اگر بدانند از کدام تابع هش (الگوریتم) برای هش داده استفاده شده است. به دلیل میزان منابع و زمانی که چنین روندی در مقیاس بزرگ نیاز دارد ، غیرممکن است. بنابراین ، هش رمزنگاری به عنوان ابزاری برای محافظت از داده ها در هنگام سفر یا استراحت داده ها عمل می کند.

3) نمی توانید داده ها را بازیابی کنید زیرا وجود ندارند
از آنجا که هشینش ماهیت برگشت پذیر ندارد ، نمی توانید داده های اصلی را از مقدار هش بازیابی کنید. در حال حاضر ، این امر خوبی است وقتی قصد شما این است که هکرها از دسترسی به داده های متن اصلی خود جلوگیری کنند. اما هنگامی که شما به دلایلی نیاز به بازیابی اطلاعات دارید ، عملکرد هش در رمزنگاری می تواند یک مشکل باشد.

به عنوان مثال ، در مورد ذخیره گذرواژه ، اگر رمزهای عبور را ذخیره کرده اید ، اگر شما یا کاربران آن را فراموش کرده اید ، نمی توانید آن را بازیابی کنید. تنها گزینه ای که شما یا کاربران شما در اختیار دارید بازنشانی رمز عبور است. در عین حال ، شما فقط مقدار هش یک فایل را ارسال می کنید ، گیرنده می تواند از تمامیت آن مطلع باشد ، اما در واقع نمی تواند مقدار هش را به متن ساده تبدیل کند. برای این کار ، باید نسخه رمزگذاری شده فایل را به همراه مقدار هش آن ارسال کنید.

عملکرد هش در رمزنگاری: چگونه کار می کند؟

کاربردهای توابع هش رمزنگاری

همه موارد فوق در مورد عملکرد هش رمزنگاری نظری است. اما کاربرد عملی آن چیست؟ یک تابع هش در رمزنگاری برای ترسیم یکپارچگی داده ها استفاده می شود. هش کردن از داده ها در برابر نشت محافظت می کند ، تکه های بزرگ داده را مقایسه می کند و در صورت وجود دستکاری داده ها را تشخیص می دهد.

برخی از موارد استفاده از هشینگ عبارتند از:

  • امضای دیجیتال
  • بیومتریک
  • ذخیره سازی رمز عبور
  • گواهینامه های SSL/TLS
  • گواهی های امضای کد
  • گواهی امضای سند
  • گواهی امضای ایمیل
    هنگامی که مجبور هستید یک بخش بزرگ از داده یا نرم افزار را مقایسه کنید ، نمی توانید هر کد و کلمه آن را بررسی کنید. اما اگر آن را هش کرده اید ، داده های بزرگ را به مقادیر هش کوچک و با طول ثابت تبدیل می کند ، که می توانید آنها را به راحتی بررسی و مقایسه کنید.

نحوه عملکرد هشینگ در امضای کد

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

پس از آماده شدن نسخه نهایی کد خود ، می توانید گواهی امضای کد را فعال کنید. این بدان معناست که گواهی امضای کد کل نرم افزار را درهم می شکند و هش رمزگذاری می شود ، که امضای دیجیتالی ناشر یا توسعه دهنده را ایجاد می کند.

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

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

عملکرد هش در رمزنگاری: چگونه کار می کند؟

نحوه عملکرد Hashing در ذخیره رمز عبور

اگر شما یک شرکت یا سازمانی هستید که به کاربران اجازه می دهد رمزهای عبور خود را در سایت شما ذخیره کنند ، این قسمت بعدی برای شما اهمیت ویژه ای دارد. هنگامی که یک کاربر رمز عبور خود را در سایت شما ذخیره می کند (به عنوان مثال ، در سرور شما) ، فرآیندی رخ می دهد که یک تابع هش را برای رمز عبور ساده خود (ورودی هش) اعمال می کند. این یک هش خلاصه می کند که سرور شما در لیست رمز عبور یا پایگاه داده خود ذخیره می کند.

لیستی از گذرواژه های اصلی متن اصلی کاربران شما در هیچ کجای سرور شما وجود ندارد که کارکنان شما (یا مجرمان سایبری) به آنها دست پیدا کنند. فرآیند هش در سرور انجام می شود و هیچ “فایل اصلی” از داده های متن ساده برای استفاده آنها وجود ندارد.

این با رمزگذاری متفاوت است ، که شامل استفاده از کلید رمزگذاری برای رمزگذاری داده ها و کلید رمزگشایی است که می تواند آن را رمزگشایی کند. به یاد داشته باشید، با هش کردن، هدف این است که برای داده ها را نمی توان به فرمت متن اصلی آن (یعنی به تنها تابع یک طرفه می شود) بازگشته است. از طرف دیگر ، با رمزگذاری ، هدف این است که داده های رمزگذاری شده با کلید مناسب (یعنی یک عملکرد دو طرفه) قابل رمزگشایی باشند.

با این حال ، این لزوما به این معنا نیست که گذرواژه ها کاملاً ایمن هستند (حتی در صورت هش). اینجاست که چیزی به نام نمک زدن مطرح می شود – که به زودی در مورد آن صحبت خواهیم کرد. اما ابتدا بیایید مثالی از نحوه عملکرد هشینگ را در نظر بگیریم.

هشینگ چگونه کار می کند؟ یک مثال فرضی

آلیس فروشنده ای است که مشاغلش به صورت اعتباری لوازم التحریر به دفتر باب می دهد. بعد از یک ماه ، فاکتور با فهرست موجودی ، مبلغ صورتحساب و جزئیات حساب بانکی اش را به باب می فرستد. او امضای دیجیتالی خود را بر روی سند اعمال می کند و قبل از ارسال آن برای باب ، آن را هش می کند. با این حال ، تاد ، هکر ، سند را در حالی که در حال انتقال است رهگیری می کند و اطلاعات حساب بانکی آلیس را با نام خود جایگزین می کند.

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

بدون سند هش شده ، باب به راحتی به محتوای سند اعتماد می کرد زیرا می دانست که آلیس و جزئیات معامله در سند مشروع است. اما چون مقادیر هش منطبق نبود ، باب از تغییر آگاه شد. اکنون ، او با آلیس تماس تلفنی برقرار می کند و اطلاعاتی را که در سند دریافت کرده با او در میان می گذارد. آلیس تأیید می کند که حساب بانکی او با آنچه در سند نوشته شده متفاوت است.

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

نمک چیست و چرا از آن با توابع هش رمز عبور استفاده می کنید؟

نمک به معنی افزودن کاراکترهای تصادفی ایجاد شده به مقادیر ورودی قبل از هش کردن آنها است. این یک تکنیک است که در هش رمز عبور استفاده می شود. ارزش هش را منحصر به فرد می کند و شکستن آن دشوارتر است. اما چرا اهمیت دارد؟

فرض کنید باب و آلیس رمز عبور یکسانی (“Sunshine”) برای یک سایت رسانه های اجتماعی دارند. این سایت از SHA-2 برای ذخیره گذرواژه ها استفاده می کند. از آنجا که مقدار ورودی یکسان است ، مقدار هش آنها یکسان خواهد بود “8BB0CF6EB9B17D0F7D22B456F121257DC1254E1F01665370476383EA776DF414”.

حال ، فرض کنید یک هکر با استفاده از بدافزار ، حملات بی رحمانه یا با استفاده از سایر ابزارهای پیشرفته هک کردن رمز عبور ، رمز عبور باب (مقدار ورودی) را کشف می کند . آنها می توانند مکانیزم احراز هویت همه حساب های دیگر که دارای رمز عبور مشابه “Sunshine” هستند را دور بزنند. آنها فقط باید جدول مقادیر هش را ببینند و شناسه های کاربری با مقدار هش یکسان را در ستون رمز عبور خود بیابند.

اینجاست که نمک زدن مفید است. در اینجا ، برخی از نویسه های عددی تصادفی به مقادیر ورودی اضافه می شوند. بنابراین ، فرض کنید نمک “ABC123” به رمز باب و “ABC567” به رمز آلیس اضافه شده است. هنگامی که سیستم رمز عبور را ذخیره می کند ، مقدار هش ورودی های “SunshineABC123” و “SunshineABC567” را ذخیره می کند. در حال حاضر ، حتی اگر هر دو رمز عبور اصلی یکسان باشند ، مقدار هش آنها به دلیل نمک هایی که اضافه شده است متفاوت است. و هکر نمی تواند به حساب آلیس دسترسی پیدا کند حتی اگر بتواند رمز باب را بدزدد.

این تفاوت بزرگ بین رمزگذاری و هش کردن است. در حالی که رمزگذاری نیز فرآیندی است که داده های متنی ساده را با استفاده از یک کلید به فرمت نامفهوم تبدیل می کند ، می توانید از کلید یکسان یا دیگری برای رمزگشایی آن استفاده کنید. از طرف دیگر ، با هش کردن ، از یک تابع هش برای ترسیم داده های ورودی شما به یک خروجی با طول ثابت استفاده می کند. این چیزی است که شما نمی توانید آن را بازیابی کنید زیرا اساساً به عنوان یک فرآیند یک طرفه عمل می کند.

عملکرد هش در رمزنگاری: چگونه کار می کند؟

ضعف های عملکرد هش

درست مانند سایر فناوری ها و فرایندها ، عملکردهای هش در رمزنگاری نیز کامل نیستند. چند مسئله کلیدی وجود دارد که ذکر آنها ضروری است.

در گذشته ، مواردی وجود داشت که الگوریتم های محبوب مانند MD5 و SHA-1 مقدار هش یکسانی را برای داده های مختلف تولید می کردند. از این رو ، کیفیت مقاومت در برابر برخورد به خطر افتاده است.
یک فناوری به نام ” جداول رنگین کمان ” وجود دارد که هکرها از آن برای شکستن مقادیر هش بدون نمک استفاده می کنند. به همین دلیل است که نمک زدن قبل از هشینگ برای حفظ امنیت رمز عبور بسیار مهم است.
برخی از خدمات نرم افزاری و ابزارهای سخت افزاری (موسوم به ” hash cracking rigs “) وجود دارد که مهاجمان ، محققان امنیتی یا حتی سازمان های دولتی از آنها برای شکستن رمزهای عبور هش استفاده می کنند.
برخی از انواع حملات brute force می توانند داده های هش شده را خرد کنند.

جمع بندی بر روی موضوع یک عملکرد هش در رمزنگاری

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

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

 

دیدگاهتان را بنویسید