💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۱۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ امیر ابوئی
رمزنگاری کردن پسورد و اطلاعات
محسن موحد حل شده توسط محسن موحد

سلام 

ببخشید درباره هش کردن پسورد چندتا سوال داشتم :

1. تو الگوریتم‌های هش کردن اطلاعات که امکان استفاده ازشون رو داریم بهترینش همین BYCRYPT هست یا بهتر از اون هم وجود داره ؟

2. این الگوریتم‌های هش کردن اطلاعات، الگوریتمش مشخص هست که مثلا بشه برش گردوند ؟

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

سلام.

الگوریتم‌های هش، برگشت پذیر نیستن و یک سویه هستن، منتهی با روش هایی مثل بروت فورس با داشتن پسورد لیست‌های بزرگ و سیستم‌های قوی هش‌های متفاوتی تولید میکنن و با هش سایت مورد نظر بررسی میکنن یا اینکه دیتا تیبل هایی از هش پسورد لیست هاشون درست میکنن و هر هشی رو بدید و اگر قبلا داخل دیتابیسشون وجود داشته باشه، رمز اصلیو بهت نشون میده.

مثلا الگوریتم md۵ که بعنوان یک الگوریتم سوراخ :دی نامبرده میشه، بعلت سرعت بالایی که در تولید هش داره، در زمان کمی میتونه تعداد زیادی هش تولید کنه. بنابراین یک نکته ی امنیتی الگوریتم‌های هش، زمان تولید هش هست.

هش md۵ عدد ۱۲۳ برابر:

202cb962ac59075b964b07152d234b70

و اگر این هش رو به این سایت بدید، عدد ۱۲۳ رو برمیگردونه. این به معنی دیکریپت شدن نیست. بخاطر وجود داشتن این هش در دیتابیسشونه. پس اگر کاربر در همین الگوریتم یک رمز قوی انتخاب کرده باشد، از کشف شدنش میشه جلوگیری کرد. برای مثال در همون سایت هش https://۷learn.com وجود نداره.

8e1a94b90339e37121e2a60c91b37ee4

در مورد برگشت ناپذیر بودن هش هم یک مثال بیارم، اگر یک کتاب پر از مطلب رو هم به الگوریتم md5 بدید، یک هش 32 کاراکتره برمیگردونه که مشخصا هر رابطه ای هم نمیتونه برگشت بزنه.

 

چند سال پیش کنفرانسی هشینگ رو میدیم یک مقایسه ای رو نشون داد که با یک سیستم کلاستر با ۲۵ gpu , در هر ثانیه ۳۰۰ هزار پسورد با الگوریتم pbkdf۲ رو چک کنه. 

در نتیجه الگوریتم pkbdf۲:

پسورد ۶ کاراکتری میتونست در ۲۸ روز 

و ۷ کاراکتری در ۷ سال 

و ۸ کاراکتری ۳۰۰ سال طول بکشه تا کشف بشه.

اما bcrypt: 

۶ کاراکتری: ۱۲۰ روز 

۷ کاراکتری: ۳۱ سال 

۸ کاراکتری: ۳۰۰۰ سال

مواردیرو باید هش کرد که نیاز به برگشتش نباشه وگرنه باید از encoding یا encryption استفاده کنید.

در مورد رمز نگاری که در سیستم هایی مانند چت انجام میشه، بر اساس پروتوکل نرم افزار، داده‌ها encrypt میشن که قابل decrypt شدن و برگشت پذر هستن.

بهترین پاسخ
محسن موحد ۱۹ اسفند ۱۳۹۹، ۱۱:۳۵