نمایش نتایج 1 تا 11 از 11

نام تاپیک: روش های بازیابی پسورد در نرم افزار

  1. #1
    کاربر دائمی آواتار حمید محمودی
    تاریخ عضویت
    آذر 1387
    محل زندگی
    0x0001
    پست
    642

    روش های بازیابی پسورد در نرم افزار

    سلام،

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

    * بازیابی با ایمیل (جایی که برنامه اجرا میشه، به دلایلی نمیشه با اینترنت متصل شد)
    * پسورد مادر (یه وقت لو میره گندش در میاد :دی)
    * برنامه ای جدا بنوسیم که بیاد به بانک متصل بشه و پسورد را پیدا کنه و خودمون داشته باشیمش و کاربرها ازمون درخواست کنن و مابریم با اون برنامه پسوردشونو دربیاریم. (تعداد کاربرها زیاده و نمیشه/سخته)
    * بازیابی با پیام کوتاه (مهمترین دلیلش اینه که دردسر سازه برای کاربر چون اطلاعات کامپیوتری بسیار پایینی دارند)
    آخرین ویرایش به وسیله حمید محمودی : سه شنبه 30 شهریور 1389 در 01:43 صبح

  2. #2

    نقل قول: روش های بازیابی پسورد در نرم افزار

    خسته نباشید شما که همهء راههای رو میبندی بعد میگی چطوری راه بریم!
    اگر بازیابی پسورد کشکی بود که دیگه بدرد نمیخورد. باید امنیت داشته باشه. وقتی کاربر همه چیز رو یادش بره و چیزی هم برای اعتماد بهش موجود نباشه، دیگه سیستم نمیتونه بهش اعتماد کنه. مگر اینکه از چیزایی مثل شناسایی بیولوژیک و غیره استفاده بشه (مثلا اثرانگشت).

  3. #3
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: روش های بازیابی پسورد در نرم افزار

    من توی چنین موقعیتی از این روش استفاده کردم:
    هر کاربر یک moderator داشته باشه.
    هر moderator میتونه چند تا کاربر زیرمجموعه داشته باشه.
    moderator بتونه پسوورد زیرمجموعه هاش رو فقط Set بکنه.چون پسوورد طبق قانون باید hash شده باشه.
    به همین راحتی.
    اگر moderator پسووردش رو یادش رفت میتونه گریه کنه.

  4. #4

    نقل قول: روش های بازیابی پسورد در نرم افزار

    راهي كه من به نظرم ميرسد اين است كه هنگام تعريف كاربر يك سوال كه يك جواب منحصر به فرد كه فقط خودش جوابش راميداندبه طور الزامي ازش بخواهيد وبه اوهشدار دهيد كه اگر بادقت عمل نكند مسئوليت مفقود شدن ارتباط باخودش است مانند گوگل و ياهو

  5. #5
    کاربر دائمی آواتار حمید محمودی
    تاریخ عضویت
    آذر 1387
    محل زندگی
    0x0001
    پست
    642

    نقل قول: روش های بازیابی پسورد در نرم افزار

    از دوستان بابت پاسخی که دادند تشکر میکنم.


    یه توضیحی بدم و اونم اینکه این کاربرا باید در سایت ثبت نام کنن بعد برنامه رو دریافت کرده و شروع به ثبت نام کاربر در برنامه میکنن.
    با توجه به این حالت نمیشه کاری کرد؟؟

    خسته نباشید شما که همهء راههای رو میبندی بعد میگی چطوری راه بریم!
    اگر بازیابی پسورد کشکی بود که دیگه بدرد نمیخورد. باید امنیت داشته باشه. وقتی کاربر همه چیز رو یادش بره و چیزی هم برای اعتماد بهش موجود نباشه، دیگه سیستم نمیتونه بهش اعتماد کنه. مگر اینکه از
    چیزایی مثل شناسایی بیولوژیک و غیره استفاده بشه (مثلا اثرانگشت).
    من راه ها رو نبستم؛ مشتری بسته! البته اونم شرایطی براش پیش اومده که مجبوره.

    این اثر انگشت که گفتید برای پیاده سازی چقدر هزینه بره؟؟ (احیانا برای کاربرای خیلی مبتدی مشکل ساز نمیشه؟)

    @FastCode:
    ما یه کاربر سطح ادمین داریم که هرکاری که میخاد میتونه انجام بده. اما موضوع اینه که اگه اونم رمز رو یادش بره چه باید بکنه؟ (گریه؟! :دی)

    @shpegah:
    این کار قبلا انجام شده :)

  6. #6

    نقل قول: روش های بازیابی پسورد در نرم افزار

    نقل قول نوشته شده توسط dcamera مشاهده تاپیک
    این اثر انگشت که گفتید برای پیاده سازی چقدر هزینه بره؟؟ (احیانا برای کاربرای خیلی مبتدی مشکل ساز نمیشه؟)
    کاربرد شما دقیقا چیه؟
    یعنی اینقدر مهم هست و میتونید هر مقداری براش هزینه کنید؟

    ما یه کاربر سطح ادمین داریم که هرکاری که میخاد میتونه انجام بده. اما موضوع اینه که اگه اونم رمز رو یادش بره چه باید بکنه؟ (گریه؟! :دی)
    خب چطوره یک فایل حاوی اطلاعات رمز شده بهش بدین که بعنوان کلید بازیابی نقش ایفا بکنه. باید به کاربر توصیه بکنید این فایل رو روی هارد نگه نداره و مثلا روی سی دی یا فلش دیسک توی خونش بذاره (اگر خیلی مهم باشه بهتره توی گاوصندوقی چیزی بذاره که دم دست نباشه!!).
    یعنی هروقت پسورد رو یادش رفت اون فایل رو بده به سرور شما و سرور با توجه به تایید اعتبار محتویات فایل مورد نظر (که حاوی اطلاعات رمز شده با پسورد محرمانهء سرور هست) پسورد جدید تولید بکنه. البته برای اینکه خطر سرقت و سوء استفادهء احتمالی از این فایل کاهش پیدا بکنه، میشه تمهیدهای خاصی براش درنظر گرفت. مثلا بعد از یک بار چنین استفاده ای، این فایل از اعتبار خارج بشه و فایل جدید دیگری به کاربر داده بشه و غیره.
    البته این فایل میتونه با پسورد خود کاربر رمز شده باشه، ولی در اینصورت باید پسورد کاربر هم حتما در سمت سرور ذخیره بشه (که کار خطرناکی هست). این رو به این خاطر گفتم چون اگر پسورد محرمانهء سرور لو بره که بازم مثل ذخیرهء پسورد کاربر این امکان وجود داره، امنیت کل سیستم از بین میره. هرچند برای اینهم میشه تمهیداتی اندیشید. مثلا پسورد اصلی بجای اینکه روی سرور باشه، پیش خود شما باشه یا روی سیستم شخصی شما، و فقط در موارد ضرورت برای باز کردن گرهء کار سرور ازش استفاده کنید.
    شما کاربر و شرایط خودتون رو دقیقا بگید شاید روشنتر بشه و بتونیم ایده های بهتری بدیم.
    سیستمها و پروتکل های امنیتی کلی نکات ظریف دارن که باید درنظر گرفت و بهترین سیستم ممکن رو پیاده کرد. برای پیاده سازی کامل و دقیق هم نیاز به دونستن دقیق نوع و کاربرد سیستم و امکاناتی که در اختیار داریم هست. بطور مثال سوالاتی مثل این هست که وقتی کاربر پسوردش رو گم میکنه آیا باید بلافاصله امکان بازیابی پسورد رو داشته باشه یا اینکه میتونه صبر کنه تا ادمین به درخواستش رسیدگی کنه و غیره.
    آخرین ویرایش به وسیله eshpilen : سه شنبه 30 شهریور 1389 در 19:52 عصر

  7. #7

    نقل قول: روش های بازیابی پسورد در نرم افزار

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

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

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

  8. #8

    نقل قول: روش های بازیابی پسورد در نرم افزار

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

  9. #9

    نقل قول: روش های بازیابی پسورد در نرم افزار

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

  10. #10

    نقل قول: روش های بازیابی پسورد در نرم افزار

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

  11. #11
    کاربر دائمی آواتار FastCode
    تاریخ عضویت
    تیر 1388
    محل زندگی
    /dev/null
    پست
    3,486

    نقل قول: روش های بازیابی پسورد در نرم افزار

    میتونید از یک private/public key استفاده کنید و وقتی برنامه برای اولین بار نصب میشه private key رو بریزه توی یه فلش مموری و بده دست ادمین.برنامه رمز ها رو با public key رمز گزاری کنه و هر جا دوست داره بنویسه.
    اصلاً توی task bar زیر نویس کنه.

    من همین الان یه سوال برام پیش اومد:
    شما مطمئنی هیچ راه نفوذی توی برنامت وجود نداره؟
    "همیشه امنیت برنامه شما به اندازه ضعیف ترین نقطه اونه"

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •