رمزگذاری ، هش کردن و نمک زدن همه تکنیک های مرتبط هستند ، اما هرکدام از این فرایندها دارای خواصی هستند که آنها را به اهداف مختلفی می رساند.
به اختصار, رمزگذاری شامل رمزگذاری داده ها است به گونه ای که فقط توسط کسانی که این کلید را دارند ، می توان به آنها دسترسی پیدا کرد. این امر آن را از احزاب غیرمجاز محافظت می کند.
هشین رمزنگاری شامل محاسباتی است که قابل برگشت نیست. این کارکردها دارای برخی خصوصیات خاص هستند که آنها را برای امضای دیجیتال و سایر شکل های تأیید اعتبار مفید می سازد.
نمک زدن شامل اضافه کردن داده های تصادفی قبل از استفاده از یک عملکرد هش رمزنگاری است. بیشتر از آن برای ایمن نگه داشتن رمزهای عبور هنگام ذخیره استفاده می شود ، اما می تواند در انواع دیگر داده ها نیز استفاده شود.
رمزگذاری چیست?
به عبارت ساده, رمزگذاری فرآیند استفاده از کد برای جلوگیری از دسترسی طرفین به اطلاعات است. وقتی داده ها رمزگذاری شده اند ، فقط کسانی که کلید دارند می توانند به آن دسترسی پیدا کنند. تا زمانی که از یک سیستم به اندازه کافی پیچیده استفاده شده و به درستی مورد استفاده قرار گیرد ، از حمله مهاجمان جلوگیری می شود.
داده ها با الگوریتم های رمزگذاری رمزگذاری می شوند ، که به عنوان رمز نیز شناخته می شوند. یکی از مهمترین تفاوت های رمزگذاری و هشی کردن (که بعداً به آن خواهیم رسید) این است که رمزگذاری به گونه ای طراحی شده است که هر دو راه را طی کند. این بدان معنی است که به محض رمزگذاری چیزی با یک کلید ، می توان آن را رمزگشایی کرد.
این امر باعث می شود رمزنگاری در موارد متنوعی ، مانند ذخیره ایمن یا انتقال اطلاعات ، مفید باشد. پس از رمزگذاری داده های صحیح ، ایمن در نظر گرفته می شود و فقط توسط کسانی که کلید را دارند می توان به آنها دسترسی پیدا کرد. معروف ترین نوع رمزنگاری کلید متقارن است که شامل استفاده از همان کلید در فرآیندهای رمزگذاری و رمزگشایی است..
رمزگذاری کلید عمومی کمی پیچیده تر است زیرا از یک کلید عمومی برای رمزگذاری داده ها استفاده می شود ، در حالی که از کلید خصوصی آن برای رمزگشایی استفاده می شود. این ویژگی به افرادی که هرگز با یکدیگر ملاقات نکرده اند امکان برقراری ارتباط ایمن را می دهد. رمزگذاری کلید عمومی نیز بخش مهمی از امضاهای دیجیتال است که برای اعتبارسنجی صحت و صحت داده ها و پیام ها استفاده می شود..
همچنین مشاهده کنید: انواع رمزگذاری رایج توضیح داده شده است
الگوریتم های رمزگذاری رایج
- رمز سزار – این یک کد ساده است که شامل تغییر مکان های مختلف در هر حرف می باشد. اگر رمزگذاری سزار از سه تغییر برخوردار باشد ، هر “a” به یک “d” تبدیل می شود ، هر “b” به یک “e” تبدیل می شود ، هر “c” به یک “f” تبدیل می شود و غیره. این نام به نام جولیوس سزار ، اولین کسی است که از این طرح ضبط شده است.
- AES – استاندارد رمزگذاری پیشرفته یک الگوریتم پیچیده متقارن است که بخش مهمی از ارتباطات مدرن ما را تضمین می کند. این شامل چندین مرحله پیچیده است و اغلب برای رمزگذاری داده ها در TLS ، برنامه های پیام رسانی ، در حالت استراحت و در بسیاری از موقعیت های دیگر استفاده می شود. ما در اینجا عمیق تر به رمزگذاری AES می پردازیم.
- 3DES – Triple DES بر اساس الگوریتم DES است. با افزایش قدرت رایانه DES ناامن ، 3DES به عنوان یک الگوریتم تقویت شده توسعه داده شد. در 3DES ، داده ها از طریق الگوریتم DES به جای فقط یک بار از طریق الگوریتم DES اجرا می شوند ، که ترک خوردگی را سخت تر می کند. 3DES می تواند برای بسیاری از موارد مشابه AES مورد استفاده قرار گیرد ، اما فقط اجرای خاصی در نظر گرفته نمی شود.
- RSA – رمزنگاری Rivest-Shamir-Adleman اولین شکل رمزنگاری کلید عمومی است که به طور گسترده مورد استفاده قرار می گرفت. به اشخاص این امکان را می دهد تا ارتباطات امن برقرار کنند حتی اگر آنها ملاقات نکرده اند یا فرصتی برای تبادل کلید ندارند می توان از آن در تعدادی از پروتکل های امنیتی مختلف مانند PGP و TLS استفاده کرد. ما در اینجا یک راهنمای عمیق برای رمزگذاری RSA داریم.
- ECDSA – الگوریتم امضای دیجیتال منحنی Elliptic Curve نوعی از DSA است که از رمزنگاری منحنی بیضوی استفاده می کند. به عنوان یک الگوریتم کلید عمومی ، می تواند در موقعیت های مشابه با RSA اعمال شود ، اگرچه به دلیل برخی از مسائل امنیتی کمتر اجرا می شود..
رمزگذاری در عمل
برای اینکه ایده ای در مورد عملکرد رمزنگاری به شما ارائه دهیم ، از رمزنگاری سزار به عنوان نمونه استفاده خواهیم کرد. اگر می خواستیم پیامی را رمزگذاری کنیم “بیا بخوریم“با یک تغییر سه ،”ل“تبدیل به”ای“،”ه“تبدیل به”ساعتو غیره این یک پیام رمزگذاری شده به ما می دهد:
اوو hdw
برای رمزگشایی پیام ، گیرنده باید بداند که الگوریتم رمزگذاری شامل یک تغییر سه عدد است ، سپس هر حرف را به سه مکان برگردانید. اگر می خواستیم می توانستیم کد را با جابجایی هر حرف به عدد متفاوت تغییر دهیم. ما حتی می توانستیم از یک الگوریتم بسیار پیچیده تر استفاده کنیم.
یک نمونه AES است. اگر از یک ماشین حساب آنلاین AES 128 بیتی برای رمزگذاری استفاده کنیم “بیا بخوریم“با کلید”1234“، این به ما می دهد:
FeiUVFnIpb9d0cbXP / Ybrw ==
این متن رمزنگاری فقط با رمز “” رمزگشایی می شود1234” اگر ما می خواستیم از یک کلید پیچیده تر استفاده کنیم و آن را به صورت خصوصی حفظ کنیم ، می توانیم اطلاعات را از نظر مهاجمان در نظر بگیریم.
چه حسی دارد?
توابع هش رمزنگاری نوع خاصی از محاسبه یک طرفه است. آنها رشته ای از داده ها به هر اندازه را می گیرند و همیشه بازده ای با طول از پیش تعیین شده دارند. این خروجی نام دارد هش, مقدار هش یا پیام هضم. از آنجا که این عملکردها از کلیدها استفاده نمی کنند ، نتیجه برای یک ورودی مشخص همیشه یکسان است.
فرقی نمی کند ورودی شما کلیت باشد یا خیر جنگ و صلح یا به سادگی دو حرف, نتیجه یک عملکرد هش همیشه به همان طول خواهد بود. توابع هش چندین ویژگی مختلف دارند که آنها را مفید می کند:
- آنها توابع یک طرفه هستند – این بدان معناست که هیچ روش عملی برای فهمیدن ورودی اصلی از مقدار هش داده شده وجود ندارد.
- بعید است که دو ورودی دارای یک مقدار هش یکسان باشند – در حالی که ممکن است دو ورودی مختلف به یک مقدار هش یکسان برسند ، شانس این اتفاق چنان اندک است که ما واقعاً نگران آن نیستیم. برای اهداف عملی می توان مقادیر هش را بی نظیر دانست.
- همان ورودی همیشه نتیجه مشابهی را ارائه می دهد – هربار که اطلاعات مشابه را در یک عملکرد هش داده شده قرار دهید ، همیشه همان خروجی را ارائه می دهد.
- حتی کوچکترین تغییر نتیجه کاملاً متفاوتی می دهد – اگر حتی یک کاراکتر واحد تغییر کند ، مقدار هش بسیار متفاوت خواهد بود.
هش برای چیست استفاده می شود?
توابع هش ممکن است خصوصیات جالبی داشته باشد ، اما ما واقعاً با آنها چه کار داریم؟ قادر به بیرون کشیدن یک خروجی با اندازه ثابت و منحصر به فرد برای ورودی از هر طول ممکن است چیزی بیش از یک ترفند حزب مبهم به نظر نرسد ، اما توابع هش در واقع تعدادی کاربرد دارد.
آنها یک جزء اصلی هستند امضاهای دیجیتال, که جنبه مهمی در تأیید صحت و صحت در اینترنت است. کدهای تأیید اعتبار پیام هش (HMACs) همچنین از توابع هش برای دستیابی به نتایج مشابه استفاده می کند.
توابع هش رمزنگاری نیز می تواند به عنوان توابع هش معمولی استفاده شود. در این سناریوها ، آنها می توانند به عنوان الگوریتم های اثر انگشت که باعث حذف داده های تکراری می شوند ، یا بعنوان چک لیست برای تأیید صحت داده ها عمل کنند ، یا برای ایجاد ایندکس ها جدول جداشوایی ایجاد کنند..
توابع هش رمزنگاری معمول
- MD5 – این یک کارکرد هش است که برای اولین بار در سال 1991 توسط ران ریوست منتشر شد. اکنون این امر ناامن تلقی می شود و نباید از آن برای اهداف رمزنگاری استفاده شود. با وجود این ، هنوز هم می توان از آن برای بررسی صحت اطلاعات استفاده کرد.
- SHA-1 – الگوریتم Secure Hash از سال 1995 مورد استفاده قرار می گیرد ، اما از سال 2005 ، هنگامی كه تعدادی از حمله های موفقیت آمیز موفقیت آمیز صورت گرفت ، ایمن تلقی نشده است. اکنون توصیه می شود که به جای آن ، SHA-2 یا SHA-3 را پیاده سازی کنید.
- SHA-2 – این یک خانواده از توابع هش است که به عنوان جانشین SHA-1 عمل می کند. این توابع شامل پیشرفت های بیشماری است که باعث می شود آنها در طیف گسترده ای از برنامه ها ایمن شوند. علیرغم این ، SHA-256 و SHA-512 در برابر حملات طولانی مدت آسیب پذیر هستند ، بنابراین موقعیت های خاصی وجود دارد که بهتر است SHA-3 را پیاده سازی کنید.
- SHA-3 – SHA-3 جدیدترین عضو خانواده الگوریتم Secure Hash است ، اما کاملاً متفاوت از پیشینیان خود ساخته شده است. در این مرحله ، هنوز جایگزین SHA-2 نشده است ، اما به سادگی گزینه رمزنگاری را به گزینه دیگری ارائه می دهد که می تواند امنیت را در شرایط خاص بهبود بخشد..
- RIPEMD – RIPEMD یکی دیگر از خانواده های توابع است که توسط جامعه دانشگاهی ایجاد شده است. این مبتنی بر بسیاری از ایده های MD4 (سلف MD5) است و هیچ گونه حق ثبت اختراعی محدود نمی شود. RIPEMD-160 هنوز هم نسبتاً ایمن به حساب می آید ، اما تصویب گسترده ای از آن دیده نشده است.
- گرداب – گرداب تابعی از خانواده رمزنگاری مربع است. این مبتنی بر اصلاح AES است و هیچگونه حق ثبت اختراعی ندارد. آن را امن ، اما تا حدودی کندتر از برخی از گزینه های آن در نظر گرفته است ، و این منجر به پذیرش محدود شده است.
توابع هشینگ در عمل
اکنون که می فهمید عملکردهای هش چیست ، وقت آن است که آنها را عملی کنید. اگر همان متن “بیا بخوریم“به یک ماشین حساب آنلاین SHA-256 ، آن را به ما می دهد:
5c79ab8b36c4c0f8566cee2c8e47135f2536d4f715a22c99fa099a04edbbb6f2
اگر حتی یک کاراکتر را با یک موقعیت واحد تغییر دهیم ، کل هش کلی را به شدت تغییر می دهد. تایپی مانند “می خورم“نتیجه کاملاً متفاوتی می دهد:
4be9316a71efc7c152f4856261efb3836d09f611726783bd1fef085bc81b1342
برخلاف رمزگذاری ، ما نمی توانیم این مقدار هش را از طریق عملکرد معکوس قرار دهیم تا بار دیگر ورودی خود را بدست آوریم. اگرچه این توابع هش به همان روش رمزگذاری قابل استفاده نیستند ، خواص آنها را به بخشی ارزشمند از امضاهای دیجیتال و بسیاری از برنامه های دیگر تبدیل می کند.
توابع و گذرواژه هاش
توابع هش یک کاربرد مشترک دیگر دارند که ما هنوز در مورد آنها بحث نکرده ایم. آنها همچنین یک مؤلفه اصلی هستند ایمن نگه داشتن کلمات عبور ما در حین ذخیره سازی.
احتمالاً دهها حساب آنلاین با گذرواژه دارید. برای هر یک از این حساب ها ، رمز عبور شما باید در جایی ذخیره شود. چگونه می توان ورود به سیستم را تأیید کرد اگر وب سایت نسخه شخصی رمز عبور خود را ندارد?
شرکت هایی مانند Facebook یا Google میلیاردها کلمه عبور کاربر را ذخیره می کنند. اگر این شرکتها گذرواژهها را به عنوان متن ساده نگه داشته باشند ، پس هر مهاجمی که بتواند راه خود را در پایگاه داده رمز عبور کار کند ، قادر به دسترسی به هر حساب کاربری است که پیدا کرد.
این یک فاجعه امنیتی جدی خواهد بود ، هم برای شرکت و هم برای کاربران آن. اگر تک رمز عبور در معرض مهاجمان باشد ، تمام حساب ها و داده های کاربر در معرض خطر قرار می گیرند.
بهترین راه برای جلوگیری از وقوع این کار است برای ذخیره رمزهای عبور خود ، اما در عوض مقدار هش برای رمزهای عبور است. همانطور که در بخش قبلی بحث کردیم ، توابع هش رمزنگاری در یک جهت کار می کنند ، یک خروجی با اندازه ثابت تولید می کنند که امکان پذیر نیست تا معکوس شود.
اگر یک سازمان به جای رمز عبور ، هش یک رمزعبور را ذخیره کند ، می تواند تأیید کند که دو کاربر در هنگام ورود به سیستم با یکدیگر مطابقت دارند. سپس این هش با هش رمز عبور که در پایگاه داده ذخیره می شود مقایسه می شود. اگر دو هش با هم مطابقت داشته باشند ، پسورد صحیح وارد شده و به کاربر دسترسی داده می شود.
این تنظیم به این معنی است رمز عبور هرگز نباید ذخیره شود. اگر یک مهاجم راه خود را به پایگاه داده وارد کند ، آنگاه همه آنها را پیدا می کند و نه رمزهای عبور ، هش رمز عبور است.
در حالی که گوش دادن به گذرواژه ها برای ذخیره سازی مانع از حمله هشدار دهنده ها برای تشخیص رمزهای عبور نمی شود ، این کار باعث می شود کار آنها به طرز چشمگیری دشوارتر و وقت گیر شود. این موضوع آخرین مسئله ما است ، نمکی.
چه نمکی است?
نمک زدن در اصل است اضافه کردن داده های تصادفی قبل از اینکه از طریق یک تابع هش قرار داده شود, و آنها بیشتر با رمزهای عبور استفاده می شوند.
بهترین راه برای توضیح با استفاده از نمک ها بحث در مورد این است که چرا در وهله اول به آنها احتیاج داریم. شاید فکر کرده باشید که ذخیره کردن هشدارهای کلمه عبور همه مشکلات ما را حل می کند ، اما متأسفانه ، همه چیز پیچیده تر از آن است.
رمزهای عبور ضعیف
بسیاری از افراد رمزهای عبور بدی دارند ، شاید شما هم همینطور باشید. مشکل این است که انسان ها تمایل دارند که در الگوهای قابل پیش بینی فکر کنند و رمزهایی را انتخاب کنند که به راحتی قابل یادآوری هستند. این گذرواژهها در معرض حملات فرهنگ لغت قرار دارند که در هر ثانیه هزاران یا میلیونها رایج ترین رمز عبور در هر ثانیه ، به منظور پیدا کردن رمز صحیح یک حساب کاربری ، آسیب پذیر هستند..
اگر به جای هش رمز عبور ذخیره شود ، موارد کمی متفاوت است. هنگامی که یک مهاجم به یک پایگاه داده از رمز عبور دسترسی پیدا می کند ، می تواند از آنها استفاده کند جداول هش یا جداول رنگین کمان برای جستجوی هش های منطبق که می توانند برای یافتن کلمه عبور استفاده کنند.
جدول هش یک لیست از پیش محاسبه شده هش ها برای کلمات عبور معمولی است که در یک پایگاه داده ذخیره می شود. آنها نیاز به کار بیشتری قبل از زمان دارند ، اما پس از اتمام جدول ، خیلی سریعتر از جستجوی هش در جدول بسیار سریعتر از آن است که محاسبه هش برای هر رمز عبور ممکن باشد. مزیت دیگر این است که می توان از این جداول بطور مکرر استفاده کرد.
جداول رنگین کمان شباهت زیادی به جداول هش دارند ، به جز اینکه فضای کمتری را با هزینه بیشتر برای محاسبه انرژی اشغال می کنند.
در صورت استفاده از رمزهای عبور ضعیف ، هر دو روش حمله بسیار عملی تر می شوند. اگر کاربر رمز عبوری مشترک داشته باشد ، احتمالاً هش رمز عبور در جدول هش یا جدول رنگین کمان قرار دارد. اگر این مورد باشد ، فقط قبل از دسترسی یک مهاجم به گذرواژه کاربر ، مدت زمان زیادی است.
کاربران می توانند با انتخاب رمزهای عبور طولانی تر و پیچیده تر که احتمالاً در جداول ذخیره نمی شوند ، برای خنثی کردن این حملات کمک کنند. در عمل ، این اتفاق به هیچ وجه نزدیک به اندازه آنچه اتفاق می افتد رخ نمی دهد ، زیرا کاربران تمایل دارند رمزهایی را انتخاب کنند که به راحتی به خاطر سپرده می شوند. به عنوان یک قاعده شل ، چیزهایی که به راحتی قابل یادآوری هستند ، اغلب برای مهاجمان پیدا کردن آسان است.
نمکها روش دیگری برای حل این مسئله ارائه می دهند. با افزودن یک رشته تصادفی از داده به گذرواژه قبل از هشدار ، در اصل آن را پیچیده تر می کند که مانع موفقیت این حملات می شود..
چگونه نمک در عمل کار می کند
به عنوان نمونه ، بگذارید بگوییم که شما یک حساب ایمیل دارید و رمزعبور شما “1234” هنگامی که از یک ماشین حساب آنلاین SHA-256 استفاده می کنیم ، به عنوان مقدار هش زیر را دریافت می کنیم:
03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4
این هش همان چیزی است که در بانک اطلاعاتی برای حساب شما ذخیره می شود. وقتی گذرواژه خود را وارد می کنید “1234“، هش شده است و سپس مقدار در برابر مقدار ذخیره شده مقایسه می شود. از آنجا که دو مقدار یکسان هستند ، به شما امکان دسترسی داده می شود.
اگر یک مهاجم وارد پایگاه داده شود ، آنها به این مقدار و همچنین همه هش رمزهای دیگر موجود در آنجا دسترسی خواهند داشت. سپس مهاجمان این مقدار هش را می گرفت و آن را در جدول هش از پیش محاسبه شده یا جدول رنگین کمان خود جستجو می کرد. از آنجا که “1234“یکی از رایج ترین رمزهای عبور است ، آنها هشیار متناسب را خیلی سریع پیدا می کنند.
جدول هش به آنها می گوید:
03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4
مربوط به:
1234
سپس مهاجمان می دانند که رمز عبور شما است “1234” سپس می توانند از این رمز عبور برای ورود به حساب کاربری خود استفاده کنند.
همانطور که می بینید ، این کار کاملاً زیاد برای مهاجم نبود. برای دشوارتر کردن کارها ، قبل از هشدار ، نمکی از داده های تصادفی را به رمز عبور اضافه می کنیم. نمک زدن به کاهش چشمگیر احتمالات جداول هش و میزهای رنگین کمان از بازگشت نتیجه مثبت کمک می کند.
بگذارید 16 نمک از داده های تصادفی بگیریم:
H82BV63KG9SBD93B
ما آن را به رمزعبور ساده ما اضافه می کنیم “1234“مثل این:
1234H82BV63KG9SBD93B
فقط اکنون که آنرا شور کرده ایم ، آن را با همان عملکرد hash که قبلاً انجام داده ایم ، قرار می دهیم:
91147f7666dc80ab5902bde8b426aecdb1cbebf8603a58d79182b750c10f1303
مطمئناً ، این مقدار هش طولانی تر یا پیچیده تر از نسخه قبلی نیست ، اما این نکته نیست. در حالی که هر دو به طول یکسان هستند ، “1234H82BV63KG9SBD93B“یک رمز عبور بسیار کمتر رایج است ، بنابراین بسیار کمتر احتمال دارد که هش آن در جدول هش ذخیره شود.
هرچه احتمال رمز عبور در جدول هش ذخیره شود ، احتمال موفقیت در حمله بیشتر خواهد بود. اینگونه است که اضافه کردن نمک به ایمن تر کردن هراس رمز عبور کمک می کند.
هک کردن بانکهای اطلاعاتی کامل
وقتی یک مهاجم به کل پایگاه داده هش رمز عبور دسترسی داشته باشد ، لازم نیست هر هشی را در برابر هر ورودی آزمایش کنید. درعوض ، آنها می توانند کل پایگاه داده را برای مسابقات منطبق با جدول هش خود جستجو کنند. اگر پایگاه داده به اندازه کافی بزرگ باشد ، یک مهاجم می تواند تعداد زیادی حساب را به خطر بیاندازد, حتی اگر آنها فقط پنج درصد موفقیت داشته باشند.
اگر قبل از هشدار به رمزهای عبور نمکهای منحصر به فردی داده شود ، این کار روند پیچیده تر را پیچیده تر می کند. اگر نمک ها به اندازه کافی طولانی باشند ، شانس موفقیت بسیار کم می شود ، که این امر به آن نیاز دارد جداول هش و جداول رنگین کمان از نظر مضرات بسیار زیاد هستند تا بتوانند هش های منطبق را پیدا کنند.
یکی دیگر از مزایای نمک ها زمانی به دست می آید که چندین کاربر در همان بانک اطلاعاتی دارای همان رمز عبور باشند ، یا اگر یک کاربر واحد دارای رمز عبور یکسان برای چندین حساب باشد. اگر هشدارهای گذرواژه از قبل نمک زده نشده باشند ، آنگاه مهاجمان می توانند هش ها را با یکدیگر مقایسه کنند و تعیین کنند که هر حساب با همان مقدار هش نیز با همان رمز عبور مشترک است.
این باعث می شود هکرها راحت ترین مقادیر هشی را هدف قرار دهند که بیشترین پاداش را به آنها می دهد. اگر گذرواژهها از قبل نمک زده شده باشند ، حتی هنگام استفاده از همان رمزعبورها ، مقادیر هش متفاوت خواهد بود.
ضعف های بالقوه نمک
نمک زدن اگر کار نادرست انجام شود اثر خود را از دست می دهد. دو مسئله رایج در چه زمانی رخ می دهد نمک ها خیلی کوتاه هستند یا اگر برای هر رمز عبور بی نظیر نیستند. نمک های کوتاه تر هنوز هم در برابر حملات سفره رنگین کمان آسیب پذیر هستند ، زیرا این هش حاصل را به اندازه کافی نادر نمی کند.
در صورت استفاده مجدد از نمک به ازای هر رمز عبور hashed ، و نمک کشف شده ، تشخیص هر رمز عبور در پایگاه داده بسیار ساده تر می شود. استفاده از همان نمک همچنین بدان معنی است که هرکسی با همان رمز عبور ، هش یکسانی داشته باشد.
الگوریتم های نمک مشترک
توصیه نمی شود برای ذخیره رمزهای عبور از توابع عادی هشیاری استفاده کنید. در عوض ، تعدادی کارکرد با ویژگی های خاص طراحی شده اند که به تقویت امنیت کمک می کند. اینها شامل Argon2 ، scrypt ، bcrypt و PBKDF2 است.
آرگون2
Argon2 برنده مسابقه رمز عبور رمز عبور 2015 بود. هنوز نسبتاً جدید است تا جایی که الگوریتم ها پیش می روند ، اما به سرعت به یکی از عملکردهای قابل اعتماد برای رمزهای عبور هشیار تبدیل شده است.
علی رغم جوانی ، تاکنون در تعدادی از مقاله های تحقیقاتی که به دلیل ضعف ها تحقیق کرده اند ، خود را حفظ کرده است. Argon2 نسبت به سایر الگوریتم های دارای رمز عبور انعطاف پذیرتر است و می تواند به روش های مختلفی اجرا شود.
رمزگذاری
تلفظ شده “رمز“، این دومین الگوریتم جوان سازی رمز عبور است که در حال استفاده مشترک است. طراحی شده در سال 2009 ، scrypt از حجم زیادی از حافظه اما در عین حال قابل تنظیم در محاسبات خود استفاده می کند. ماهیت قابل تنظیم آن بدان معنی است که حتی با افزایش قدرت محاسباتی با گذشت زمان ، می تواند در مقابل حملات نیز مقاوم باشد.
bcrypt
bcrypt در سال 1999 توسعه یافت و بر پایه رمزنگاری Blowfish است. این یکی از متداول ترین الگوریتم هایی بود که سالها در رمز عبور استفاده می کرد ، اما اکنون در برابر آرایه های دروازه قابل برنامه ریزی درست (FPGAs) آسیب پذیرتر است. به همین دلیل است که Argon2 اغلب در پیاده سازیهای جدید ترجیح داده می شود.
PKFD2
این عملکرد مشتق کلید برای جایگزینی PBKDF1 ، که دارای طول کلید کوتاه تر و کمتر ایمن است ، توسعه داده شد. دستورالعمل های NIST از سال [year] هنوز هم PKFD2 را برای رمزهای عبور هشدار توصیه می کند ، اما Argon2 به برخی از موارد امنیتی خود می پردازد و می تواند در بسیاری از مواقع گزینه بهتری باشد..
رمزگذاری ، هش کردن و نمک زدن: یک جمع بندی
اکنون که ما جزئیات رمزگذاری ، هشدار و نمکی را مرور کرده ایم ، زمان آن رسیده است که به سرعت به اختلافات اصلی بپردازیم تا آنها درون آن غرق شوند. در حالی که هر یک از این فرایندها مرتبط هستند ، هر یک از آنها هدف دیگری را ارائه می دهند.
رمزگذاری فرآیند رمزگذاری اطلاعات برای محافظت از آن است. هنگامی که داده ها رمزگذاری می شوند ، فقط توسط کسانی که کلید درستی دارند می توانند رمزگشایی و دسترسی پیدا کنند. الگوریتم های رمزگذاری قابل برگشت هستند که به ما امکان می دهد داده های خود را از مهاجمان دور نگه داریم ، اما هنوز هم در صورت نیاز می توانیم به آن دسترسی داشته باشیم. این مورد استفاده گسترده ای برای ایمن نگه داشتن آنلاین ما می شود ، و در بسیاری از پروتکل های امنیتی ما که داده های ما را هنگام ذخیره و انتقال در آن ایمن نگه می دارند ، نقش اساسی دارد..
متقابلا, hashing یک فرآیند یک طرفه است. وقتی چیزی را می زنیم ، نمی خواهیم بتوانیم آن را به شکل اولیه خود برگردانیم. توابع هش رمزنگاری تعدادی ویژگی منحصر به فرد دارند به ما اجازه می دهد صحت و تمامیت داده ها را اثبات کنیم, از جمله امضاهای دیجیتال و کدهای تأیید صحت پیام.
انواع خاصی از توابع هپ رمزنگاری نیز برای ذخیره کلمه عبور ما استفاده می شود. ذخیره یک hash یک رمز عبور به جای رمز عبور ، لایه امنیتی بیشتری را فراهم می کند. این بدان معناست که اگر یک مهاجم به یک پایگاه داده دسترسی پیدا کند ، نمی تواند بلافاصله به کلمه عبور دسترسی پیدا کند.
اگرچه وجود رمز عبور ، زندگی را برای هکرها دشوارتر می کند ، اما هنوز هم می توان آن را دور زد. اینجاست که نمکی وارد می شود. قبل از اینکه هشدار داده شود ، داده های اضافی به گذرواژات اضافه می کند, که باعث می شود حملات بیشتر وقت گیر و منابع سنگین شوند. اگر به طور صحیح از نمک و رمز عبور استفاده شود ، آنها میزهای هش و جداول رنگین کمان را از وسایل حمله غیر عملی می سازند.
با هم ، رمزگذاری ، هشیار و نمک ، همه جنبه های مهم ایمن نگه داشتن آنلاین ما هستند. اگر این فرایندها در دسترس نباشند ، مهاجمان با حساب و داده های شما مجانی را در اختیار شما قرار می دهند و هیچ امنیتی در اینترنت ندارند.
فناوری-1 توسط tec_estromberg under CC0
شود. این الگوریتم برای امضای دیجیتال و تأیید اعتبار استفاده می شود و در بسیاری از پروتکل های امنیتی مانند TLS و SSH استفاده می شود. ECDSA به دلیل اندازه کوچک کلید و سرعت بالا برای بسیاری از موارد مورد استفاده قرار می گیرد. در کل ، رمزگذاری ، هش کردن و نمک زدن همه تکنیک های مرتبطی هستند که برای محافظت از اطلاعات در برابر دسترسی غیرمجاز استفاده می شوند. هر یک از این فرایندها دارای خصوصیات خاصی هستند که آنها را برای اهداف مختلفی مفید می سازد. به طور کلی ، رمزگذاری برای جلوگیری از دسترسی طرفین به اطلاعات استفاده می شود ، هش برای تأیید اعتبار و امضای دیجیتال و نمک زدن برای ایمن نگه داشتن رمزهای عبور و داده های حساس استفاده می شود.
کند. این الگوریتم برای امضای دیجیتال و تأیید اعتبار استفاده می شود و در بسیاری از پروتکل های امنیتی مانند TLS و SSH استفاده می شود. ECDSA به دلیل اندازه کوچک کلید و سرعت بالا برای بسیاری از موارد مورد استفاده قرار می گیرد. همچنین مشاهده کنید: رمزگذاری کلید عمومی چیست؟ رمزگذاری در عمل در عمل ، رمزگذاری برای بسیاری از موارد مورد استفاده قرار می گیرد. برخی از موارد استفاده شامل: ذخیره ایمن داده ها – برای محافظت از داده های حساس مانند رمزهای عبور و اطلاعات بانکی. ارتباطات امن – برای ارتباطات امن در اینترنت و شبکه های داخلی. امضاهای دیجیتال – برای تأیید اعتبار و صحت اطلاعات و پیام ها. هش کردن چیست؟ هش کردن فرایند تبدیل داده های ورودی به یک مقدار هش است که به طور یکتا مشخص می شود. این فرایند غیرقابل برگشت است ، به این معنی که نمی توان داده های ورودی را از مقدار هش به دست آورد. هش کردن برای بسیاری از موارد مورد استفاده قرار می گیرد ، از جمله: تأیید اصالت – برای تأیید اصالت اطلاعات و پیام ها. ذخیره ایمن رمزهای عبور – برای افزایش امنیت رمزهای عبور ، مقدار هش آنها در دیتابیس ذخیره می شود. تولید امضاهای دیجیتال – برای تولید امضاهای دیجیتال برای تأیید اعتبار و صحت اطلاعات و پیام ها. توابع هش رمزنگاری معمول توابع هش رمزنگاری معمول شامل: MD5 – یک تابع هش 128 بیتی است که برای تأیید اصالت و تولید امضاهای دیجیتال استفاده می شود. SHA-1 – یک تابع هش 160 بیتی است که برای تأیید اصالت و تولید امضاهای دیجیتال استفاده می شود. SHA-256 – یک تابع هش 256 بیتی است که برای تأیید اصالت و تولید امضاهای دیجیتال استفاده می شود. توابع هشینگ در عمل توابع هشینگ در عمل برای بسیاری از موارد مورد استفاده قرار می گیرند. برخی از موارد استفاده شامل: تأیید اصالت – ب
کند. این الگوریتم برای امضای دیجیتال و تأیید اعتبار استفاده می شود و در بسیاری از پروتکل های امنیتی مانند TLS و SSH استفاده می شود. ECDSA به دلیل اندازه کوچک کلید و سرعت بالا برای بسیاری از موارد مورد استفاده قرار می گیرد. در کل ، رمزگذاری ، هش کردن و نمک زدن همه تکنیک های مرتبطی هستند که برای محافظت از اطلاعات در برابر دسترسی غیرمجاز استفاده می شوند. هر یک از این فرایندها دارای خصوصیات خاصی هستند که آنها را برای اهداف مختلفی مفید می سازد. به طور کلی ، رمزگذاری برای جلوگیری از دسترسی طرفین به اطلاعات استفاده می شود ، هش برای تأیید اعتبار و امضای دیجیتال و نمک زدن برای ایمن نگه داشتن رمزهای عبور و داده های حساس استفاده می شود.