PDA

View Full Version : پیدا کردن بازه حروف در رموز هش شده



leaping
چهارشنبه 01 مرداد 1393, 23:01 عصر
سلام
میخواستم بدونم تا چه حد میشه فهمید از یک رشته هش شده بازه حروف و یا کاراکتر هارو مشخص کرد
مثلا آیا از روی یک رشته هش شده میشه فهمید این رشته شامل چه بازه رشته ای هست؟
حروف بزرگ/حروف کوچک و اعداد؟

tux-world
پنج شنبه 02 مرداد 1393, 09:58 صبح
فهمیدنش میشه ولی باید از Regular استفاده کنید که یه خورده سخته در اوردنش

eshpilen
پنج شنبه 02 مرداد 1393, 10:34 صبح
اگر از الگوریتم های هش امنیتی استفاده شده باشه، خیر به هیچ وجه نمیشه چیزی ازش فهمید!
البته با الگوریتمهای ضعیفی مثل md5 ممکنه تاحدی بشه اطلاعاتی بدست آورد، ولی اونم تاحالا شخصا نشنیدم.
الگوریتم های هش امنیتی طوری هستن که حتی اگر یک بیت از ورودی تغییر بکنه، بیت های خروجی به شکل غیرقابل پیشبینی تغییر میکنن.
شما اگر نگاه کنید مثلا هش چند رشتهء خیلی شبیه هم، با هم به کلی تفاوت دارن، و نمیتونید هیچ الگو و ارتباط خاصی رو در اونها پیدا کنید.
این یکی از معجزات علم رمزنگاری مدرنه!
از الگوریتم های هش امنیتی در توابع رندوم امنیتی (CSPRNG) هم استفاده میشه بخاطر همین خصوصیاتی که دارن.
هرچند این الگوریتم ها از نظر ریاضی اثبات نشده باقی موندن. یعنی معلوم نیست شاید در آینده بشه روشهایی برای کرک یا بدست آوردن اطلاعاتی از اونا بدست آورد، ولی تاحالا که بعد از سالها هنوز چنین اتفاقی نیافتاده.

eshpilen
پنج شنبه 02 مرداد 1393, 10:37 صبح
مثلا آیا از روی یک رشته هش شده میشه فهمید این رشته شامل چه بازه رشته ای هست؟
اگر میشد فهمید که کرکرها خیلی خوشحال میشدن!
چون اونوقت میتونستن بازه های خیلی کوچکتری رو Brute-force کنن.

leaping
پنج شنبه 02 مرداد 1393, 12:27 عصر
اگر میشد فهمید که کرکرها خیلی خوشحال میشدن!
چون اونوقت میتونستن بازه های خیلی کوچکتری رو Brute-force کنن.
بسیار زیبا
منم میخواستم همینو بگم
چندی پیش در مورد همین رمز های هش شده با دوستان توی انجمن بحث شد و همه دوستانی که ادعای قرنها کار امنیت کد نویسی و امنیت سرور و اینا میکردن با تندی اومدن و گفتن که شرکتهیا بزرگی مثل گوگل و یاهو و فیسبوک همه رمز ها رو به صورت هش شده در میارن که خودشونم هیچ دسترسی بهش ندارن
امروز با توضیحات تکمیلی شما و چیزهایی که خودم میدونستم خواستم اینجا بگم که خیر شرکتها بزرگی مثل یاهوو و گوگل و فیسبوک کاملا از رمزهای خام شما اطلاع دارن و بدون دسترسی نیستن بهش
موفق باشید.

eshpilen
پنج شنبه 02 مرداد 1393, 13:33 عصر
منکه نفهمیدم چی گفتی بالاخره تایید کردی رد کردی موافقت کردی مخالفت کردی و ربطش به موضوع و مطالب این تاپیک چی بود :متفکر:

بدیهی هست که اگر سایتی بخواد (برخلاف توصیه ها و اصول امنیت حرفه ای، و شایدم از روی نیات نامشروع!) میتونه موقع ثبت نام و تغییر رمز یک نسخهء از پسورد اصلی رو جایی ذخیره کنه به شکلی (مثلا رمز شده توسط RSA) و بعد موقعی که خواست بازیابی یا ازش (سوء)استفاده کنه. ولی اینکه بگید این کار رو با معکوس کردن هش انجام میدن، حرف بی سند و دلیلی است. البته اگر پسورد ضعیف باشه میشه با Brute-force کشفش کرد، که میزان موفقیت در این امر و میزان ضعف مورد نیاز در پسورد بستگی به الگوریتم هش استفاده شده هم داره (مثلا تفاوت md5 با bcrypt از زمین تا آسمان است در این زمینه، ولی بازم پسوردهای خیلی ضعیف رو حتی اگر با bcrypt هش شده باشن میشه Brute-force کرد).

eshpilen
پنج شنبه 02 مرداد 1393, 13:41 عصر
شما اگر بخواید اصول امنیت و رفتار صادقانه و نیت خوب را رعایت کنید، نباید پسورد رو به شکلی که قابل بازگشت باشه ذخیره کنید.
حالا اگر میگید کسی این کار رو میکنه، باید دید که اولا اثبات و سندش چیه، شاید برداشت اشتباه از چیز دیگر و روش دیگری بوده، دوما باید دید اسناد و دلایل و توجیهی که خود اون طرفها برای این کارشون ارائه میکنن چیه، سوما باید تفاوت در سایتها و امکانات و امنیت و نیازهایی رو که دارن درنظر گرفت در نهایت. مثلا اگر فیسبوک چنین کاری میکنه و دلایلی میاره میگه به فلان دلایل ما این کار رو میکنیم، با این فرض که دلایلشون کم و بیش قانع کننده بنظر برسه (این کار به دلیلی براشون ضروری باشه یا در نظرمون مزایاش به معایب و ریسکش بیارزه) دلیل نمیشه بقیه هم همون کار رو بکنن، چون مسلما نیازها و سطح برنامه نویسی و امنیت تفاوت فاحشی داره بین یک سایت اونقدر حرفه ای با اون همه سیستم و امکانات و سرمایه که مسلما خوب هم در زمینهء امنیت درش سرمایه گذاری و کار شده با یک سایت معمولی تر. هرچند نمیدونم چه توجیهی بیارن که این رو توجیه بکنه، چون تاحالا شخصا ندیدم و نشنیدم و دلیل روشن و قاطعی هم به ذهنم نمیرسه، و دیگه اینکه بارها سایتهای بزرگ و معروف هم هک شدن و اطلاعات شخصی کاربران که اصل پسورد یکی از موارد مهمش هست بر اثر همینطور ضعفها دست دیگران افتاده. در هیچ منبع امنیت معتبری هم نیامده غیر از این بگه!
ضمنا مسائل امنیت و رمزنگاری چیزی هست که حتی بزرگترین و معروف ترین شرکتها و برنامه نویسان هم تاحالا بارها درش مرتکب اشتباهات فاحش شدن. حیطه ای است که نیاز به تخصص و بینش خاص خودش داره و جدای از تخصص برنامه نویسی است.

leaping
پنج شنبه 02 مرداد 1393, 13:43 عصر
منکه نفهمیدم چی گفتی بالاخره تایید کردی رد کردی موافقت کردی مخالفت کردی و ربطش به موضوع و مطالب این تاپیک چی بود :متفکر:

بدیهی هست که اگر سایتی بخواد (برخلاف توصیه ها و اصول امنیت حرفه ای، و شایدم از روی نیات نامشروع!) میتونه موقع ثبت نام و تغییر رمز یک نسخهء از پسورد اصلی رو جایی ذخیره کنه به شکلی (مثلا رمز شده توسط RSA) و بعد موقعی که خواست بازیابی یا ازش (سوء)استفاده کنه. ولی اینکه بگید این کار رو با معکوس کردن هش انجام میدن، حرف بی سند و دلیلی است. البته اگر پسورد ضعیف باشه میشه با Brute-force کشفش کرد، که میزان موفقیت در این امر و میزان ضعف مورد نیاز در پسورد بستگی به الگوریتم هش استفاده شده هم داره (مثلا تفاوت md5 با bcrypt از زمین تا آسمان است در این زمینه، ولی بازم پسوردهای خیلی ضعیف رو حتی اگر با bcrypt هش شده باشن میشه Brute-force کرد).
دوست عزیز تایید کردم که نمیشه کرکش کرد
درادامه هم گفتم شرکتهای بزرگ رمزها رو نسخه خامش رو یا در همان دیتابیس با رمزنگاری مختص به خودشون ذخیره میکنن و یا در جای دیگه ای و به هر ترتیب ازش استفاده های بعدی میشه
دلیل این جبهه گیری سخنی شما دوست عزیز رو هم نفهمیدم

leaping
پنج شنبه 02 مرداد 1393, 14:51 عصر
شما اگر بخواید اصول امنیت و رفتار صادقانه و نیت خوب را رعایت کنید، نباید پسورد رو به شکلی که قابل بازگشت باشه ذخیره کنید.
حالا اگر میگید کسی این کار رو میکنه، باید دید که اولا اثبات و سندش چیه، شاید برداشت اشتباه از چیز دیگر و روش دیگری بوده، دوما باید دید اسناد و دلایل و توجیهی که خود اون طرفها برای این کارشون ارائه میکنن چیه، سوما باید تفاوت در سایتها و امکانات و امنیت و نیازهایی رو که دارن درنظر گرفت در نهایت. مثلا اگر فیسبوک چنین کاری میکنه و دلایلی میاره میگه به فلان دلایل ما این کار رو میکنیم، با این فرض که دلایلشون کم و بیش قانع کننده بنظر برسه (این کار به دلیلی براشون ضروری باشه یا در نظرمون مزایاش به معایب و ریسکش بیارزه) دلیل نمیشه بقیه هم همون کار رو بکنن، چون مسلما نیازها و سطح برنامه نویسی و امنیت تفاوت فاحشی داره بین یک سایت اونقدر حرفه ای با اون همه سیستم و امکانات و سرمایه که مسلما خوب هم در زمینهء امنیت درش سرمایه گذاری و کار شده با یک سایت معمولی تر. هرچند نمیدونم چه توجیهی بیارن که این رو توجیه بکنه، چون تاحالا شخصا ندیدم و نشنیدم و دلیل روشن و قاطعی هم به ذهنم نمیرسه، و دیگه اینکه بارها سایتهای بزرگ و معروف هم هک شدن و اطلاعات شخصی کاربران که اصل پسورد یکی از موارد مهمش هست بر اثر همینطور ضعفها دست دیگران افتاده. در هیچ منبع امنیت معتبری هم نیامده غیر از این بگه!
ضمنا مسائل امنیت و رمزنگاری چیزی هست که حتی بزرگترین و معروف ترین شرکتها و برنامه نویسان هم تاحالا بارها درش مرتکب اشتباهات فاحش شدن. حیطه ای است که نیاز به تخصص و بینش خاص خودش داره و جدای از تخصص برنامه نویسی است.
هیچی در دو اتفاق جالب میشه کامل این نتیجه رو گرفت
اتفاق اول
یاهو برام ایمیل فرستاد که رمز عبور شما شامل حروف و اعداد و کاراکتر نیست و طول آن بیشتر از 8 کاراکتر نیست لطفا ان را تغییر دهید
اتفاق دوم
گوگل هنگام ورود بهم گیر داد که رمز عبور شما دارای امنیت مناسب نیست و باید تغییر کنه

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

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

eshpilen
پنج شنبه 02 مرداد 1393, 18:29 عصر
راستی مواظب باش خیلی از اینا اصلا از یاهو نیست و جعلیه.
بعضی موارد حتی حرفه ایها رو هم گول میزنن. من خودم یکی دوبار حداقل در قدمهای اولش گول خوردم! بعدش میخواست بره توی یک سایتی که خوشبختانه از قبل شناسایی و بلاک شده بود و فایرفاکس جلوی دسترسی بهش رو گرفت.

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

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