• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
هش پسورد قبل از ارسال فرم
#1
امروز به یه برنامه ای برخوردم که هم از خودم راضی شدم و مو به تنم سیخ شد

برنامه میومد و پسوردهایی رو که مرورگر ها save کردن رو نشون میداد

شما در نظر بگیر که یک برنامه چند کیلوبایتی که نیاز به نصب هم نداره، پسورد تمام سایت هایی رو که داری میری نشون میده

درسته که معمولاً توی سیستم خودمون این پسوردها رو save میکنیم ( و البته بعضی هام که اصلاً نمیدونم اون save password که مرورگر نشون میده چی هست و فکر میدونن بدون اون لاگین نمیشه Wink ) استفاده میکنیم، اما فکر کنید فقط در اثر سی ثانیه غفلت ممکنه با چنین برنامه ای، کسی پای سیستم ما بشینه و رمز فیس بوکمون که احتمالاً شاه کلید هم هست رو برداره و بعدش هم حمله های خاموش Undecided

متأسفانه سایت های زیر رو که من در مرورگرم داشتم، پسوردهاشون عین هلو نشون داده شد:

گوگل اکانت
ایران پی اچ پی
فیس بوک
ایران هاست
بانک سپه
و خیلی سایت های دیگه

چیزی که باعث خوشحالیم شد این بود که که سایت هایی خودم طراحی کرده بودم این مشکل رو نداشت
چون قبل از ارسال فرم، فیلد پسورد رو با جاوا اسکریپت هش (با استفاده از SHA1 و یا توابع ترکیبی مثل تلفیق SHA1 و MD5) میکردم و بعد ارسال میکردم، به این ترتیب سایت های من یه سور به گوگل میزنه Tongue

اما باید بگم همچین چیزی واقعاً تکان دهنده بود، فکر کنید من تو روز شاید راحت 2 ساعت تو شرکت پای سیستم خودم نباشم، باید زندگیم به باد بره اونوقت؟ Undecided Confused

من اسم این نرم افزار رو نمیگم که تو یه پست آموزشی ازش سوء استفاده نشه...
دو تا تصویر ضمیمه رو مقایسه کنید فقط :|


فایل‌های پیوست تصاویر بندانگشتی
       
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط : shgninc
#2
خود فایر فاکس برو منوی tools>options
بعد تب security بعد گزینه saved passwords رو بزن ، بعد که صفحه باز شد گزینه show password رو بزن ، آدرس سایتها با یوزر و پسورد در خدمت شماست Big Grin

در حقیقت فکر کنم اون نرم افزار میاد از اینجا اطلاعات رو میخونه .
البته چیزی که شما میگی هم نشدنی نیست .
بذار اینجا برنامه رو یا پخ کن برام یه تستی بزنم.
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط : behz4d nimaee samisenos
#3
نقل قول:البته چیزی که شما میگی هم نشدنی نیست .
شدنی رضا جون، شدنیه Wink

فکر کن شما بجای اینکه
کد:
encrypt(password)
رو تو دیتابیس ذخیره کنی،
کد:
encrypt(hash(password))
رو ذخیره کنی
کاری که من مدت هاست میکنم
اینطوری غیر از نرم افزار فوق برای sniff هم خوبه Undecided

نرم افزار رو فردا برات پ.خ میکنم رضا Rolleyes

نقل قول:خود فایر فاکس برو منوی tools>options
بعد تب security بعد گزینه saved passwords رو بزن ، بعد که صفحه باز شد گزینه show password رو بزن ، آدرس سایتها با یوزر و پسورد در خدمت شماست
تازه امشب فهمیدم کروم هم همچین چیزی داره Undecided
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط : Reza
#4
نمیدونستید اینو؟ Tongue

همونطوری که دوستمون هم گفت، احتیاج به برنامه خاصی نیست و با خود firefox هم میشه اینکارو کرد.

اما برنامه‌های زیادی هم هستند که این کارو برای انواع مرورگرها میکنند:
کد:
http://www.nirsoft.net/utils/web_browser_password.html

کد:
http://securityxploded.com/browser-password-decryptor.php
...

در مورد اینکه واسه سایت‌های شما کار نمیکنه این روش، یک مثال عملی میتونید ضمیمه این تاپیک بکنید؟ ممنون میشم
  پاسخ
تشکر شده توسط : hamid_80386
#5
آها اونی که من دیدم اون اولی هست

نقل قول:در مورد اینکه واسه سایت‌های شما کار نمیکنه این روش، یک مثال عملی میتونید ضمیمه این تاپیک بکنید؟ ممنون میشم

نیاز به مثال عملی نیست، تو پست اول توضیح دادم
کافیه فقط فیلد پسورد رو قبل از submit فرم با جاوا اسکریپت هش کنید...
اینطوری تو storage مرورگر هم هش پسورد ذخیره میشه...
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط : Reza
#6
سمت کلاینت با چه تابعی هش میکنی؟
بعد چه طوری دقیقا بعد از سابمیت کردن مقادیر رو تغییر میدی و میفرستی؟
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط :
#7
منکه اصلا تاحالا از این ویژگی مرورگرها هیچوقت استفاده نکردم.
یکی بخاطر اینکه دربارهء مکانیزم و امنیتش مطمئن نبودم.
بهرحال هم مرورگر میره توی اینترنت و اگر حفره ای داشته باشه اونوقت ممکنه از طریق همون حفره پسوردها رو از طریق اینترنت هم بدست بیارن.

اما در کل اینکه روی سیستم لوکال کسی دسترسی مستقیم داشته باشه و این کارها رو بکنه، ضعف و حفره ای محسوب نمیشه.
چنین سیستمی قبلا هک/ناامن شده.
مثلا ممکنه هکر یک برنامهء key logger روش کار بذاره.

اما از اون طرف هش کردن پسورد قبل از ارسال هم کار خوبیه.
  پاسخ
تشکر شده توسط : hamid_80386 nimaee
#8
نقل قول:سمت کلاینت با چه تابعی هش میکنی؟
بعد چه طوری دقیقا بعد از سابمیت کردن مقادیر رو تغییر میدی و میفرستی؟

رضا با توابع sha1 و md5

بعد از سابمیت این کار رو نمیکنم رضا

دکمه سابمیت رو از نوع button در نظر میگیریم و وقتی کلیک شد روش اول فیلد پسورد رو هش میکنیم و بعدش فرم رو ارسال میکنیم

کد:
    document.getElementById('frm1').onclick = function()
    {
        document.getElementById('pass').value = SHA1( document.getElementById('pass').value );
        document.getElementById('frm1').submit();    
    }

نقل قول:بهرحال هم مرورگر میره توی اینترنت و اگر حفره ای داشته باشه اونوقت ممکنه از طریق همون حفره پسوردها رو از طریق اینترنت هم بدست بیارن.

این که درست، ولی این ربطی به اون کوکی که مرورگر ذخیره میکنه هم نداره، صرفاً تو برنامه خودش میاد و یوزرنیم و پسورد رو کپی میکنه تو دیتابیس خودش...

نقل قول:اما در کل اینکه روی سیستم لوکال کسی دسترسی مستقیم داشته باشه و این کارها رو بکنه، ضعف و حفره ای محسوب نمیشه.
چنین سیستمی قبلا هک/ناامن شده.
بنظر من اصلاً نیازی به همچین چیزی تو مرورگر ها نیست، پسورد باید تو ذهن آدم باشه، سیستم مدیریت پسورد باید خودش حداقل یه پسوردی داشته باشه
البته کروم داره، فایرفاکس رو نمیدونم، ولی همین کروم رو هم کسی sign in نمیشه باهاش اصولاً

حداقل اگر با الگوریتم های بازگشت پذیر پسورد رو هش نمیکنن، لااقل encode ش کنن Wink

جالبه خود من این همه سال کارم هم اینه، تا حالا این ویژگی مرورگرها رو ندیده بودم، یعنی خب اصلاً فکر نمیکردم همچین چیزی اصلاً تو مرورگر باشه Confused


فایل‌های پیوست
.zip   SHA1.zip (اندازه 1.33 KB / تعداد دانلود: 10)
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط : behz4d pary_daryayi Reza
#9
مشکلی که در این روش شما پیش میاد اینه که در صورتیکه کاربر remember me رو بزنه، دفعه بعد که به همون صفحه میاد و پسورد ذخیره شده رو میبینه، با یک string با طول 40 کارکتر مواجه میشه و از اونجایی که کاربر عادی هست فکر میکنه که اشتباهی شده و مجدد تایپ میکنه پسورد رو... .
  پاسخ
تشکر شده توسط : hamid_80386
#10
نقل قول:مشکلی که در این روش شما پیش میاد اینه که در صورتیکه کاربر remember me رو بزنه، دفعه بعد که به همون صفحه میاد و پسورد ذخیره شده رو میبینه، با یک string با طول 40 کارکتر مواجه میشه و از اونجایی که کاربر عادی هست فکر میکنه که اشتباهی شده و مجدد تایپ میکنه پسورد رو... .

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

اما باید دید امنیت مهم تر هست یا راحتی کاربر

به نظر من امنیت مهم تر هست، این کار هم برای این پسوردهایی که تو مرورگر ذخیره میشه خوبه و در مورد snif مؤثر هست Wink

البته مهمتر از اون اینه که این قضیه اصلاً به remember ربطی نداره
چون اگه remember کرده باشه که با کوکی مرتبط به اون سرو کار داریم و اصلاً لاگین میکنه

این داده هایی هست که تو مرورگر بدون هیچ رمزنگاری ذخیره شد و نقش assistant رو داره...
هر که با مرغ هوا دوست شود - خوابش آرامترین خواب جهان خواهد بود.
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان