پیدا کردن پسورد در شبکه های اجتماعی

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

همش کشکه
اگر چیزی رو بخوان عرضه کنن در بهترین حالت اینکه ی سری پسورد لیست میدن با نرم افزار کرک میگن برو جلو که الانم تقریبا غیر ممکنه بتونی دسترسی پیدا کنی به اکانت کسی…

1 Like

ترجیحا این سایت تبلیغ کننده یا فیشینگی هستند یا الکی غیر از این دو مورد وجود نداره اینستاگرام یک قابلیت جالب داره به نام تایید دو مرحله که هک کردن اکانت رو غیر ممکن میکنه که معمولا مسئول امنیت پیج از این روش استفاده میکنند

1 Like

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

عرض کنم خدمتتون که به این روش، میگن brute-force و به این شکله که من مثلا ثانیه‌ای ۱۰۰۰تا پسورد حدث میزنم و ریکوئست میدم به اون وبسایت، اگه یکیش درست بود خوشحال میشم.
ولی حقیقت ماجرا اینه که این روش عملا غیر ممکنه. به چند دلیل:

  • وبسایتها معمولا محدودیتهایی برای تعداد لاگین در هر دقیقه (یا هر ساعت یا…) دارن و وقتی از این محدودیت رد بشیم (مثلا روزی ۵بار میتونیم پسورد اشتباه بزنیم) بعدش سیستم ip مارو میبنده و دیگه اجازه‌ی تست پسورد جدید نداریم.
  • حتی اگه بخوایم از این روش برای شکستن پسورد یک هارددیسک یا یک فایل که روی کامپیوتر خودمون هست و چیزی مثل firewall دسترسی ما رو بهش کنترل نمیکنه استفاده کنیم، باز هم عملا غیر ممکنه چون الگوریتمهای رمزنگاری طوری طراحی شدن که (حتی اگه واقعا پیچیده نباشه و واقعا تایم زیادی از cpu درگیر نکنه) باز هم یه مقدار زمان تاخیر داره توی پردازشش. دلیلش هم این بوده که جلوی این حملات امنیتی رو بگیره. (پس مثلا ثانیه‌ای ۱۰۰تا ریکوئست بیشتر نمیتونیم بزنیم. که اینم بستگی به الگوریتممون داره. ممکنه ثانیه‌ای ۱بار بیشتر نتونیم پسورد جدید حدث بزنیم!!!)

بنابر این، پیدا کردن یه پسورد مثلا ۸کاراکتری به روش brute-force ممکنه ۵سال زمان ببره. چون ما باید تمام احتمالات ممکن رو تست کنیم که تعدادشون خیلی بالاست.
روش محاسبش هم نسبتا راحته. تنوع کاراکترها به توان تعدادشون.
مثلا پسورد ۸ کاراکتری که فقط عدد توش داریم میشه:

10^8 = 100000000

اگه عدد و حروف کوچک داشته باشیم میشه:

36^8 = 2821109907456

اگه مخلوط اعداد کوچک و بزرگ و علامتهایی مثل [email protected]#$%^ هم داخلش باشه میشه:

87^8 = 3282116715437121

بنابر این، حتی به مرحله‌ی ارسال ایمیل به گوشی نمیرسیم!
ورود دو مرحله‌ای (ارسال کد به ایمیل یا شماره موبایل) برای وقتیه که پسوردمون رو یه نفر بدونه یا تقریبا بدونه و بخواد چندتا حالت ممکن رو تست کنه و به جواب برسه.


یه نکته‌ی دیگه هم درمورد brute-farce عرض کنم.
این واقعا یک روش «کارآمد» برای کرک کردن چیزی نیست. بلکه یک معیار برای اندازه‌گیری میزان اثرگذاری روشهای کرک هست.

به بیان دیگه، هر روشی که بهتر از brute-force باشه، به عنوان یک روش کرک و یک نقص امنیتی به حساب میاد.


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

3 Likes

عالی بود.

گفتی 5 سال سرم سوت کشید، تو بگو 1 سال اصلا.

16 کاراکتری رو تصور کردم و کلی خندیدم!

یاد linear research برای الگوریتمای جستجو افتادم.

میخونمش.

سریع و خشن!

1 Like

مختصر و مفید گفتی. یه جا دیدم میگفت برای دریافت پسورد باید اس ام اس بفرستی با گوشیت. خیلی تابلوعه دیگه دارن چکار میکنن!

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

2 Likes

خخخ. خیلی باید دوست داشته باشه که پسوردشو بده یا باید تحدیدش کنی :wink:

مساله اینجاست که من الآن میتونم کل هارددیسک کامپیوترمو encrypt کنم که فقط با یه پسورد خیلی سخت و طولانی بشه بازش کرد.
برای کرک کردن این هارددیسک، شاید نیاز به یه دیتاسنتر چندملیارد دلاری باشه. پیش خودم فکر میکنم که دیگه کسی نمیتونه به این اطلاعات دسترسی پیدا کنه.
ولی واقعیت قضیه اینه که یه نفر میتونه با یه تیکه چوب که به صورت رایگان از درخت جدا کرده اینقدر منو کتک بزنه که پسورد رو اعتراف کنم :grinning:

یه نکته‌ی دیگه هم یادآور بشم.
دسترسی فیزیکی، ساده ترین و کارآمدترین راه برای کرک کردن یه سیستمه. اگه کسی که موبایل شما دسترسی فیزیکی داشته باشه میتونه یه اپلیکیشن روش نصب کنه که smsها رو بخونه و بفرسته به یه سروری. بعد یارو درخواست لاگین به تلگرام بده و وقتی sms به گوشی شما اومد، اون پیام رو از طریق اپلیکیشنی که رو گوشی شما نصب کرده و سرور خودش به دست بیاره و لاگین کنه. (البته اگه پسورد مجزا برای لاگین به تلگرام گذاشته باشید نمیتونه لاگین کنه)

یا اگه کسی دسترسی فیزیکی به کامپیوتر من داشته باشه میتونه یه key logger سخت‌افزاری سر راه کیبوردم قرار بده و پسوردم رو وقتی تایپ میکنم به دست بیاره.

خلاصه این فقط یه مثال بود. خواستم بگم که راههای رسیدن به خدا به عدد آدمهاست و نکته‌ی دیگه اینه که هیچوقت امنیت ۱۰۰درصد نیست. فقط تلاش میکنیم کرک شدن سیستم رو سخت کنیم.

1 Like

خیلی ممنون از نظرتون من خودم این روشی که در آخر گفتید خوندم به این روش میگن مهندسی :joy:

1 Like

کلمه‌ی «مهندسی» رو دیدم یاد «مهندسی اجتماعی» افتادم.
باید بگم که در حال حاضر، مهندسی اجتماعی یکی از بهترین راههای کرک کردن سیستمهاست، چون الآن ضعیفترین نقطه‌ای که میشه بهش ضربه زد، انسانهایی هستن که از تکنولوژی استفاده میکنن.

یه زمانی حدود دهه‌ی ۸۰ و ۹۰ میلادی، دوران طلایی هکرها بود چون برنامه نویسها به اندازه‌ی کافی اطلاعات نداشتن و حفره‌های امنیتی خطرناکی توی سیستمهاشون جا میذاشتن. مثلا هرکی میخواست خیلی امنیت خفن داشته باشه، الگوریتم رمزنگاری خودشو اختراع میکرد (کلی هم هزینه میکرد) و مدتها طول کشید (و هنوزهم ادامه داره) تا متخصصین امنیت به برنامه نویسها بفهمونن که این‌کار اشتباهه و باید از الگوریتمهایی استفاده کنید که متخصصین امنیتی و ریاضیدانها درست کردن.
ولی الآن حتی اگه برنامه نویس سواد درست‌حسابی هم نداشته باشه، میشینه پای یه فریموورک و داکیومنت اون فریموورک رو باز میکنه از روی داکیومنت پروژشو درست میکنه و خیلی چیزا اتوماتیک هندل میشن.

و تا داریم درمورد برنامه نویسهای بیسواد صحبت میکنیم، خدمتتون عرض کنم که تقریبا مطمئنم وبسایت talahost[dot]com پسوردها رو هش نمیکنه و همینطوری میذاره تو دیتابیس :joy:
خلاصه که هنوز میشه همچین چیزهایی پیدا کرد.

1 Like

foolproof

موقع طراحی سیستمهای خیلی امن، باید حواسمون به کاربرهای خیلی احمق باشه.
مواردی مثل:

  • اجبار کاربر به استفاده از پسوردهای قوی
  • اجبار کاربر به تعویض پسورد
  • جلوگیری از ثبت پسورد تکراری
  • اجبار به ثبت «ورود دو مرحله‌ای»
  • چک کردن ip و سیستم کاربر (user-agent) که اگه با ip یه کشور دیگه یا سیستم جدید خواست وارد بشه یه مقدار سخت‌گیری بیشتر توی لاگین داشته باشیم.
  • خلاصه هرکاری که گوگل و شبکه‌های اجتماعی انجام دادن ما هم باید انجام بدیم :grinning:

پ.ن:
با اجازتون دسته‌بندی این موضوع رو عوض کردم و فرستادمش توی بخش امنیت.

1 Like

کار خوبی کردی. «امنیت» دسته بندی بهتریه اتفاقا.
جمله خیلی خیلی جالبی بود.

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

حماسه ای دیگر :smile:

لامصب خیلی قویه، فک کنم بشه باش هر پیام encrypt شده ای رو decrypt کرد :smile:

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

همواره بخشی از ریاضیات بوده و هست.

تمام کسانی که ما بهشون میگیم «برنامه نویس» توی این سه دسته بندی جا میگیرن:

  • مهندس کامپیوتر - که بیشتر کارش با ریاضیات هست و طراحی سیستم
  • برنامه نویس - که نتیجه‌ی کار مهندس کامپیوتر رو تبدیل به یه لایبرری میکنه
  • دولوپر - که چندتا لایبرری رو کنار هم میذاره و محصول نهایی رو میده به end-user

البته مرز بین این سه تا دقیق نیست و یه نفر میتونه توی ۲تا از این زمینه‌ها حضور فعال داشته باشه (انصافا فعالیت توی هر ۳ بخش از عهده‌ی یک انسان خارجه)
اینم بگم که اینا دسته‌بندیهای ذهنی شخص من هستن. وقتی با یه نفر آشنا میشم توی یکی از این دسته‌ها قرارش میدم. شاید دسته‌بندی مناسبتری با تعریف بهتر وجود داشته باشه.

ساختن سیستم رمزنگاری، در حقیقت خارج از این سه قسمته. شاید یه مهندس کامپیوتر بتونه یه سیستم رمزنگاری خوب درست کنه ولی واقعا تخصصش این نیست. دو تای دیگه هم بهتره اصلا سعی نکنن چون زمینه‌ی کاریشون و مطالعاتشون خیلی فرق میکنه.
سیستمهای رمزنگاری نیاز زیادی به ریاضیات دارن و البته الگوریتمهاشون رو میتونید پیدا کنید (احتمالا اگه چیزی مثل «sha256 whitepaper» سرچ کنید به نتیجه برسید) و خودتون این الگوریتمها رو میتونید پیاده سازی کنید و لایبرری بسازید.
یه سریاشون مثلا همین sha256 خیلی سادست. من یه ویدیو دیدم یه نفر با مداد و کاغذ محاسباتشو انجام میداد و میگفت که با این روش میتونه روزی ۴تا هش بسازه. هدفش این بود که نشون بده سیستم رمزنگاری بیتکوین چطوری کار میکنه.
و البته یه سریاشون پیچیده‌تره. مثل scrypt.
الآن sha256 برای رمزنگاری بیتکوین استفاده میشه و scrypt برای رمزنگاری litcoin. میدونیم که برای ماین کردن بیتکوین سخت‌افزارهای مخصوصی ساخته شده (ASIC) که میتونه هش‌های sha256جنریت کنه ولی برای لیتکوین نتونستن سخت‌افزار اختصاصی بسازن و باید با کامپیوتر ماین بشه. (شاید به خاطر پیچیده‌تر بودنش باشه و شاید به خاطر نیازش به مقدار ram زیاد)

پیشنهاد میکنم فیلم The Imitation Game رو ببینید. درمورد زندگی Alan Turing هست. اسمش از یه paper با همین نام که Alan Turing در سال ۱۹۵۰ (فکر کنم) منتشر کرد گرفته شده. البته ما این قضیه رو با نام Turing test میشناسیم.

به شخصه معتقدم ریاضیات «کشف» میشه و «اختراع» نمیشه. ولی شاید درست باشه مباحث رمزنگاری رو جزء اختراعات به حساب بیاریم.
البته اصلا تخصصی در این مورد ندارم و حتی مطالعه‌ی کافی هم درموردش ندارم. فقط اینطور حس میکنم.

1 Like

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

آیا پسورد شما 1234 هست؟

نه ولی چهار رقمی هستش

پس احتمالا باید دنبال یه پسورد قویتر بگردید.
مگر اینکه این پسورد مال کامپیوتری باشه که هیچوقت به شبکه‌های ناامن وصل نمیشه (مثلا یه pc که همیشه توی خونه هست و router طوری تنظیم شده که ترافیکهای خارجی رو به این سیستم منتقل نکنه.

یه چیزی الآن به ذهنم رسید.
توی یه جاهایی مثل کیف‌پولهای پول‌های الکترونیکی و سکه‌های نمادینی که برای پولهای الکترونیکی ضرب میکنن یه جمله به لاتین نوشته شده:

vires in numeris

به معنای «قدرت در اعداد».

پشت کیف‌پول ledger nano s:

یه سکه‌ی نمادین که زیر هولوگرامش یه qr-code هست و محتویات اون qr آدرس کیف پولی هست که داخلش یک بیتکوین وجود داره. تولید سال 2011. احتمالا بیتکوین اونموقع چیزی حدود ۱۰دلار ارزش داشت. الآن ۱۰هزاردلاره.

2 Likes