در یک بررسی قانونی جذاب توسط تنظیم کننده حفاظت از داده های فرانسه CNIL (کمیسیون ملی اطلاعات و آزادیشرکت انرژی Électricité de France یا به اختصار EDF بوده است 600,000 یورو جریمه شد (حدود 600,000 دلار)
اعلامیه حقوقی، به شیوه چنین مواردی، نسبتاً طولانی است و (حداقل برای غیر وکلا) از نظر زبانی کاملاً منطقی است، به این معنی که برای درک همه چیزها، اما در کل مورد، به مهارت منطقی در زبان فرانسه نیاز دارید. به چهار تخلف ختم می شود.
سه مورد اول مربوط به تعاملات کلی مرتبط با داده با مشتریان است که شامل موارد زیر است:
- ارسال ایمیل های بازاریابی تجاری بدون رضایت مناسب
- جمع آوری داده ها بدون اینکه مشخص شود چه چیزی و چرا.
- عدم رسیدگی قابل اعتماد به درخواست ها هنگامی که مشتریان از آنها خواسته اند که داده های خود را ببینند، یا آنها را حذف کنند.
اما این آخرین شکایتی است که توجه ما را برانگیخت: Sur le manquement à l'obligation d'assurer la sécurité des données.
در انگلیسی، این به راحتی به این صورت ترجمه می شود عدم ذخیره ایمن داده ها، و به طور خاص به مدیریت ناامن رمزهای عبور مربوط می شود.
MD5 مضر تلقی می شود
رگولاتور، از جمله، اشاره کرد که علیرغم ادعای اینکه EDF با استفاده از یک الگوریتم هش پذیرفته شده، رمزهای عبور را نمک و سپس هش میکند، هنوز تا جولای 25,000 بیش از 5 گذرواژه کاربر با یک هش MD2022 "ایمن" شده است.
همانطور که بارها در Naked Security شنیده اید، ذخیره سازی هش رمزنگاری رمز عبور به این معنی که شما می توانید یک رمز عبور را زمانی که صرفاً با محاسبه مجدد هش آن و مقایسه آن با هش رمز عبوری که در ابتدا انتخاب شده بود، تأیید کنید.
اگر هش ها مطابقت داشته باشند، می توانید با خیال راحت استنباط کنید که گذرواژه ها مطابقت دارند، بدون اینکه نیازی به ذخیره رمز عبور واقعی داشته باشید.
هنگامی که رمز عبور ارائه می شود، فقط نیاز است که به طور موقت در حافظه نگهداری شود، و به محض محاسبه هش آن، می توان آن را کنار گذاشت.
تا زمانی که الگوریتم هش از نظر رمزنگاری ایمن در نظر گرفته میشود، نمیتوان آن را به صورت معکوس اجرا کرد، بنابراین نمیتوانید به عقب از هش کار کنید تا چیزی در مورد رمز عبور فاش کنید. (هش از این نوع در اصطلاح به عنوان a شناخته می شود عملکرد یک طرفه.)
به طور مشابه، یک الگوریتم هش مناسب از شروع با یک هش شناخته شده و ابداع مقداری ورودی – هر ورودی، نه لزوماً رمز عبور اصلی – که هش مورد نظر را تولید میکند، جلوگیری میکند.
باید ورودی پشت سر هم را امتحان کنید تا زمانی که خوش شانس باشید، که برای هشهای حتی 128 بیتی خیلی طول میکشد تا یک حمله عملی باشد. (هش با احتیاط ایمنی که به شما اجازه نمی دهد چندین ورودی با خروجی یکسان را کشف کنید، گفته می شود مقاوم در برابر برخورد.)
اما MD5، همانطور که احتمالا می دانید، مشکلات قابل توجهی در برخورد دارد، همانطور که دارای مشکلات زیادی است جانشین فوری SHA-1 (هر دو این هش در اوایل دهه 1990 منتشر شد).
این روزها، هیچ یک از الگوریتمها برای استفاده در هر مکان، توسط هیچکس و برای هر هدفی توصیه نمیشود، با توجه به اینکه جایگزینهای مشابه اما مطمئنی وجود دارد که میتوان به راحتی برای جایگزینی آنها استفاده کرد، مانند SHA-256 و SHA-512:
هش MD5 128 بیت یا 16 بایت است. SHA-256 و SHA-512 به ترتیب 2x و 4x طول دارند. اما این طول هش اضافی به تنهایی نیست که آنها را مناسب تر می کند. مزیت اصلی آنها نسبت به MD5 این است که آنها هیچ مشکل شناخته شده خاصی در برخورد ندارند، بنابراین ایمنی رمزنگاری آنها به طور کلی مشکوک در نظر گرفته نمی شود.
نمک زدن و کشش
به طور خلاصه، از هیچ شرکتی انتظار ندارید، چه رسد به یک غول بخش انرژی مانند EDF، که اصلاً از MD5 برای هر هدف رمزنگاری استفاده کند، چه رسد به اینکه برای محافظت از رمزهای عبور.
با این حال، بدتر از آن، فقدان بود نمک زدن، جایی است که تکه ای از داده ها که به طور تصادفی برای هر کاربر انتخاب می شود، قبل از محاسبه هش آن با رمز عبور ترکیب می شود.
دلیل نمک ساده است: تضمین می کند که مقادیر هش رمزهای عبور احتمالی را نمی توان از قبل محاسبه کرد و سپس برای کمک به حمله همراه کرد.
بدون نمک، هر بار که هر کاربری رمز عبور را انتخاب می کند 123456
، کلاهبرداران از قبل می دانند که هش آن چیست.
حتی اگر کاربر رمز عبور مناسب تری مانند 34DF6467!Lqa9
، می توانید از قبل بگویید که هش MD5 آن خواهد بود 7063a00e
41866d47
f6226e60
67986e91
.
اگر فهرست به اندازه کافی طولانی از گذرواژههای از پیش محاسبهشده یا گذرواژههای نیمهمحاسشده دارید (بهطور عالی در اصطلاح بهعنوان یک میز رنگین کمان)، ممکن است بتوانید رمز عبور را از طریق جدول بازیابی کنید نه با استفاده از تریلیون ها ترکیب رمز عبور تا زمانی که خوش شانس باشید.
نمک زدن به این معنی است که شما به یک جدول رنگین کمان کامل و از پیش محاسبه شده نیاز دارید برای هر کاربر (جدول با ترکیب نمک + رمز عبور تعیین می شود)، و شما نمی توانید هر جدول رنگین کمانی را محاسبه کنید - کاری که ممکن است چندین هفته طول بکشد و ترابایت فضای دیسک را اشغال کند - تا زمانی که نمک ها را بازیابی کنید.
اما کارهای بیشتری وجود دارد که باید انجام دهید.
حتی اگر یک Salt را وارد کنید، به طوری که از «لغت نامه های هش» از پیش محاسبه شده نتوان استفاده کرد، و از یک الگوریتم رمزنگاری قابل اعتماد مانند SHA-512 استفاده کنید، یک محاسبه هش به تنهایی به اندازه کافی سریع است که مهاجمانی که پایگاه داده ای از هش ها را به دست آورده اند، می توانند هنوز میلیاردها رمز عبور ممکن را در ثانیه یا حتی بیشتر امتحان کنید.
بنابراین شما باید از چیزی که نام دارد استفاده کنید کشش همچنین، جایی که نه تنها رمز عبور اولیه را نمک میزنید، بلکه هزاران بار یا بیشتر در یک حلقه ورودی را از طریق الگوریتم هش ارسال میکنید، در نتیجه حملات برای هر کلاهبردار که میخواهد آن را امتحان کند، بسیار وقتگیرتر میشود.
برخلاف جمع مکرر، که می توانید از یک ضرب به عنوان میانبر برای جایگزینی مثلاً محاسبه 5+5+5+5+5+5 با 6×5 استفاده کنید، هیچ میانبری برای هش های مکرر وجود ندارد. برای هش کردن یک ورودی 1000 بار به 1000 "چرخش" دسته محاسبات رمزنگاری نیاز دارد.
نه فقط مشکل MD5
از قضا، به نظر میرسد که اگرچه EDF فقط ۲۵۸۰۰ رمز عبور هش شده با MD25,800 داشت و در دفاع از خود ادعا کرد که بیشتر از SHA-5 استفاده میکرده است، اما هنوز هم همیشه هشهای ذخیرهشده را نمک نمیزند یا گسترش نمیدهد.
تنظیم کننده گزارش می دهد که 11,200,000،2,400,000،5 رمز عبور به درستی سالت شده و هش شده است، اما با این وجود، 512،XNUMX،XNUMX رمز عبور مستقیماً یک بار، چه با MDXNUMX یا SHA-XNUMX، هش شده اند.
ظاهرا، EDF اکنون ذخیره رمز عبور خود را تا حد زیادی آماده کرده است، اما به هر حال این شرکت 600,000 یورو جریمه شد و تا دو سال آینده به صورت آنلاین در "گام شیطانی" CNIL در فهرست عمومی باقی خواهد ماند.
ما نمیتوانیم مطمئن باشیم که اگر قضاوت فقط شامل هش ضعیف بود، چه جریمهای اعمال میشد، و EDF همچنین مجبور نبود برای سه تخلف دیگر از حفاظت از دادهها که در ابتدا فهرستشده بود پاسخگو باشد…
اما نشان میدهد که انتخابهای رمزنگاری بد میتوانند از راههای بیشتری برای شما هزینه داشته باشند!
چه کاری انجام دهید؟
رمزهای عبور مشتریان خود را ذخیره کنید ایمن!
هزینه محاسباتی اضافی نمک و کشش را می توان به گونه ای انتخاب کرد که کاربران فردی هنگام ورود ناراحت نشوند، با این حال مهاجمان احتمالی سرعت حمله خود را چندین مرتبه افزایش می دهند.
یک حمله بازیابی رمز عبور که ممکن است یک هفته طول بکشد تا 10٪ از رمزهای عبور ذخیره شده به عنوان هش های ساده یک شات را استخراج کند، اگر بخواهید هزینه محاسبه هر رمز عبور آزمایشی را 200 برابر سخت تر کنید، در تئوری 10,000 سال (10,000 هفته) طول می کشد. .
خوانده شده ما مقاله توضیحی عالی در همین موضوع:
به طور خلاصه، ما توصیه می کنیم PBKDF2
الگوریتم "کشش" با SHA-256
به عنوان هش اصلی آن، با یک تصادفی برای هر کاربر salt of 16 bytes
(128 بیت) یا بیشتر.
این با توصیه های آخرین قضاوت CNIL مطابقت دارد.
CNIL توصیه ای برای تعداد تکرارهای PBKDF2 ارائه نمی دهد، اما همانطور که در مقاله ما خواهید دید، توصیه ما (اکتبر 2022) استفاده از 200,000 or more
. (می توانید به طور مرتب تعداد حلقه ها را افزایش دهید تا با افزایش قدرت محاسباتی همگام شوید.)
اگر نمیخواهید از PBKDF2 استفاده کنید، پیشنهاد میکنیم الگوریتمها را مطالعه کنید bcrypt
, scrypt
و Argon2
برای کمک به انتخاب عاقلانه
گرفتار مرحله شیطانی رمزنگاری نشوید!