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

رئوس مطالب:

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

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

از آنجا که مدافع هیچ راهی برای اعتبارسنجی ورودی ندارد ، ما از رمزعبور "0" استفاده می کنیم (در صورتی که از قبل تأیید شود. برای صحت نیاز گذرواژه قبل از ارسال ، سپس از هر ورودی که اعتبار را تصویب کند ، استفاده کنید. تنها چیزی که در این مرحله مهم است اینست که گذرواژه شما عبور می کند و ثابت است )
یک جدول رنگین کمان را برای هش (پاس + نمک) برای "هر مقدار" نمک و یک رمز عبور ثابت محاسبه کنید.
اکنون ما یک جدول رنگین کمان داریم که به ما می گوید برای [نمکهای رمزعبور "0" کار می کند. ما با استفاده از گذرواژه های واقعی رمزهای عبور را با استفاده از نمک پیدا کردیم.

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

مثال:
عبور + (بدون نمک) = 1 هش یافت شد ، 1 هش معتبر است.
pass + (1 بیت نمک) = 2 هش یافت شده ، یکی برای هر حالت بیت ، هر یک به طور یکنواخت از "فضای هضم" انتخاب شد.

اگر این واقعیت را در نظر بگیریم که هر رشته ترکیبی + رشته نمکی که 1 بیت طولانی تر از اندازه هضم باشد ، باید دارای 50٪ برخورد در تمام ورودی های ممکن باشد. و ما همچنین این واقعیت را در نظر می گیریم که ما با داشتن بیت های ایستا (رمز عبور ما) ، فقط زیرمجموعه ای از همه ورودی های ممکن را نمونه می گیریم ، سپس نمکی بزرگتر از اندازه هضم توسط N بیت ها به 2 ^ N می دهد. برای آن رمز عبور طول رمز عبور با برخورداری از ایستا بودن از برخورد تخفیف می یابد.

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

بنابراین بهترین حالت نمکی دقیقاً به اندازه هضم است. این بدان معناست که به طور متوسط ​​می توان انتظار داشت که حداکثر 1 برخورد داشته باشیم. با توجه به این که 1 برخورد در هر جدول رنگین کمان با رمز جعلی وجود دارد که از نظر امنیتی معقول است.

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

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

فرضیات حذف شده بودند. موارد زیر را در نظر بگیرید:

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

سؤال:

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