PDA

View Full Version : MD5 or SHA1؟



iran400
چهارشنبه 12 مهر 1385, 14:14 عصر
با سلام
برای تبدیل پسورد و ذخیره تو دیتابیس از کدام روش استفاده کنیم؟
MD5 یا SHA1؟ از نظر امنیتی با هم تفاوت دارند؟
آیا روش بهتری وجود داره؟


با تشکر از شما

once4ever
چهارشنبه 12 مهر 1385, 21:04 عصر
ازنظر امنیتی هیچکدام خوب نیستند.
شما باید یک انکدینگ برای خودت (ترکیبی از اینها ) درست کنی

Milad Mohseny
چهارشنبه 12 مهر 1385, 22:37 عصر
ولی در قسمت [ امنیت در نرم افزار ] روش های من در آوردی توصیه نشده

once4ever
چهارشنبه 12 مهر 1385, 23:44 عصر
ولی در قسمت [ امنیت در نرم افزار ] روش های من در آوردی توصیه نشده
مرجعت چیه؟ و همینطور منظورت؟

iran400
پنج شنبه 13 مهر 1385, 11:29 صبح
با سلام
با تشکر از راهنماییتان

به نظر من اهمیت امنیت نرم به اندازه ارزش نرم‌افزاری است که قراره ساخته و استفاده شود.
اگه یه برنامه در حد معمول داریم که البته قرار است روی سرور اجرا بشه چی پیشنهاد می‌دید؟

ARA
پنج شنبه 13 مهر 1385, 11:31 صبح
میشه در مورد هر کدوم بحث کنیم تا ببینیم کدوم بهتره ؟ نه

مثلا MD5 یک الگوریتم رمز نگاری یک طرفه است
که اطلاعات رمز شده قابل برگست نیست و به درد مقایسه میخوره مقایسه نام کاربری و رمز

ضعفش رو نمیدونم دوستانی که میدونند لطف میکننین

Milad Mohseny
پنج شنبه 13 مهر 1385, 11:49 صبح
مرجعت چیه؟
گفتم که قسمت [ امنیت در نرم افزار ] .
البته فعلاً اون قسمت ها در دسترس نیست.

titbasoft
پنج شنبه 13 مهر 1385, 15:22 عصر
گفتم که قسمت [ امنیت در نرم افزار ] .
البته فعلاً اون قسمت ها در دسترس نیست.
http://barnamenevis.org/forum/forumdisplay.php?f=66
بخش امنیت شبکه غیرفعاله.

همونطور که اشاره شد بهترین روش ترکیب الگوریتم های فوق الذکره. چیزی مثل:

F(x)=SHA1(MD5(MD5(x)))
علتش هم اینه که برای هر دوی این الگوریتم ها به تنهایی کرکرهایی وجود داره.

once4ever
پنج شنبه 13 مهر 1385, 17:59 عصر
همونطور که گفته شد. باید از ترکیبی از اینها استفاده کنید
ولی اگر دربرنامه نویسی (مخصوصا XOR ) مهارت کافی دارید و امنیت براتون خیلی مهم هست پس باید ازخودتون هم خلاقیت نشون بدید تا ازحالت شناخته شده عمومی دربیاد.
Good Bye MD5 (http://www.codeproject.com/useritems/GoodbyeMD5.asp)

iran400
جمعه 14 مهر 1385, 00:14 صبح
با سلام

ممنون از راهنمایی شما دوستان عزیز
بنده دارم برنامه را تحت وب می‌نویسم و اطلاعات از جمله پسوردها داخل دیتابیس ذخیره می‌شوند.
اگر کسی تونست وارد دیتابیس بشه دیگه براش پسوردها ارزشی نداره و به راحتی می‌تواند هر تغییری که مایل بود انجام دهد.
حالا با این فرض آیا بازهم باید روش ترکیبی استفاده کنم یا MD5 یا SH1 جواب گوی کار بنده هست؟

البته لازم به ذکر است که بنده از راهنمایی شما دوستان استفاده می‌کنم و روش ترکیبی می‌سازم.

با تشکر

titbasoft
جمعه 14 مهر 1385, 15:19 عصر
1) همیشه دسترسی به قسمتی از اطلاعات به معنای در دست گرفتن کنترل دیتابیس شما نیست. مثلا نفوذگر می تونه با استفاده از تکنیک هایی مثل SQL Injection با تلاش فراوون به اطلاعات کاربران شما دسترسی داشته باشه. در اون موقع اگر پسوردها به صورت Clear Text ذخیره شده باشند، نفوذگر خیلی خوشحال میشه، چون دیگه زندگی براش شیرین میشه، کافیه که یکی از کاربران شما که بالاترین سطح دسترسی داره رو انتخاب کنه و با استفاده از اون Account وارد بشه و هر کاری رو بدون کوچکترین زحمتی انجام بده.

2) گاها طراحی مناسب + ادمین صحیح می تونه جلوی این مشکل رو بگیره. مثلا یک جدول می تونه با یک جدول دیگه در ارتباط باشه و شما فقط با استفاده از سطح دسترسی غیر مجازی که پیدا کردید، توانایی دستکاری جدول Parent رو داشته باشید. اینجا وجود Constraint ها می تونه دست شما رو تا حد مناسبی ببنده.