PDA

View Full Version : حرفه ای: جلوگیری از دیدن پسورد هش شده در داخل بانک اطلاعاتی



soheilbehro
دوشنبه 08 فروردین 1390, 17:47 عصر
من برای امنیت بیشتر برنامه ام اومدم کلمه عبور رو با md5 هش کرده و در داخل بانک اطلاعاتی ذخیره کردم
حالا یه مشکل هست!!!!!!!!!!:ناراحت:
اگه کسی بیاد این بانک اطلاعاتی رو باز کنه خوب نمی فهمه پسورد من چی هست ولی می تونه اون پسورد هش شده رو برداره و به جاش یه md5 دیگه که خودش می دونه اون چیه بگذاره و از این طریق می تونه داخل برنامه بشه!:متفکر:
حالا به نظر شما من باید چیکار کنم که کاربر نتونه ایت کارو انجام بده
راستی بانک اطلاعاتی من اکسس هستش ، به خود بانک هم رمز گذاشتم ولی به اون نمیشه زیاد اعتماد کرد
منتظر راهکارهاتون هستم

shedayat
دوشنبه 08 فروردین 1390, 18:42 عصر
سلام.
می تونی پسوورد هش شدت رو جاهای دیگه مثل رجیستری یا توی یه فایل بزاری و در زمان اجرای برنامه ها پسووردی که توی بانکه رو با پسوورد توی فایل یا رجیستری تطبیق بدین که اگه یکی بود برنامه باز بشه در غیر این صورت....

حمید محمودی
دوشنبه 08 فروردین 1390, 21:39 عصر
سلام،

به نظر من راه بهتر این هست که شما بیاید طبق روش زیر عمل کنید.

به جای اینکه Hash خود فیلد پسورد رو در بانک اطلاعاتی قرار بدید. بیاید مقدار رمز نگاری شده فیلد پسورد رو ذخیره کنید. به این ترتیب که مثلا فرض کنید (البته این فقط یه مثال فرضی هست و داده ها درست نیستن) هش پسورد که کلمه MyPassword هست برابر مقدار روبرو هست : 33A31CF201

در اینجا به جای اینکه خود این مقدار رو در بانک ذخیره کنید ، بیاید مقدار اون رو با کلید خصوصی که میتونید یا خودتون در برنامه تعیین کنید یا حتی بهتر از اون میشه این اجازه رو به کاربر بدید که این کلید رو تعریف و با خودش داشته باشه، رمزنگاری کنید. مثلا هش بالا رو با کلید مربوطه رمز میکنیم مثلا میشه 0FA13000CB

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

موفق باشید.

soheilbehro
سه شنبه 09 فروردین 1390, 00:03 صبح
سلام،

به جای اینکه Hash خود فیلد پسورد رو در بانک اطلاعاتی قرار بدید. بیاید مقدار رمز نگاری شده فیلد پسورد رو ذخیره کنید. به این ترتیب که مثلا فرض کنید (البته این فقط یه مثال فرضی هست و داده ها درست نیستن) هش پسورد که کلمه MyPassword هست برابر مقدار روبرو هست : 33A31CF201

در اینجا به جای اینکه خود این مقدار رو در بانک ذخیره کنید ، بیاید مقدار اون رو با کلید خصوصی که میتونید یا خودتون در برنامه تعیین کنید یا حتی بهتر از اون میشه این اجازه رو به کاربر بدید که این کلید رو تعریف و با خودش داشته باشه، رمزنگاری کنید. مثلا هش بالا رو با کلید مربوطه رمز میکنیم مثلا میشه 0FA13000CB

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

موفق باشید.
ای ول ، به نظر من این خیلی عالیه!