فرض کنید در یک برنامه از کاربر نام و رمز را دریافت می کنید و در صورت درستی وارد برنامه می شوید. مراحل این کار معمولا بدین شکل است:
۱- نام کاربری را وارد کنید
۲- رمز عبور را وارد کنید
۳- رمز وارد شده توسط کاربر را رمزنگاری میکنید
۴- حاصل رمزنگاری مرحله ۳ را با رمز ذخیره شده و رمزنگاری شده (درون پایگاه داده و یا هر جایی که فیلا دخیره کرده اید) مقایسه می کنید و اگر درست بود ادامه ....
۴- اگر نادرست بود به تعداد محدودی اجازه وارد کردن رمز را می دهید و مثلا پس از ۳ تلاش برای مدت ۱ ساعت در لیست سیاه قرار می گیرد
و....
این الگوریتم نیز در دو شرایط ممکن است مخاطرات امنیتی داشته باشد! و بهتر است پس از دریافت رمز از کاربر بدین شکل عمل کنید
۱- مانند قبل
۲- مانند قیل
۳- رمزنگاری رمز گرفته شده در مرحله دو
۴- مرحله بسیار مهم —> پاک کردن رمز گرفته شده در مرحله دو از حافظه
۵- ادامه مانند قبل
چرا؟
۱- ممکن است برنامه crash کند و یک dump فایل برای ان بوجود آید و رمز وارد شده توسط کاربر بدین شکل expose میشود
۲- در شرایط swap کردن توسط سیستم عامل امکان expose شدن رمز کاربر نیز وجود دارد
حالا واقعا باید اینقدر سخت بگیریم؟ بله :)
در لینک زیر خیلی مختصر یک برنامه نمونه آورده ام از کتاب برنامه نویسی لینوکس که قبلا معرفی کردم
https://telegra.ph/Erase-the-unencrypted-password-from-memory-11-27
۱- نام کاربری را وارد کنید
۲- رمز عبور را وارد کنید
۳- رمز وارد شده توسط کاربر را رمزنگاری میکنید
۴- حاصل رمزنگاری مرحله ۳ را با رمز ذخیره شده و رمزنگاری شده (درون پایگاه داده و یا هر جایی که فیلا دخیره کرده اید) مقایسه می کنید و اگر درست بود ادامه ....
۴- اگر نادرست بود به تعداد محدودی اجازه وارد کردن رمز را می دهید و مثلا پس از ۳ تلاش برای مدت ۱ ساعت در لیست سیاه قرار می گیرد
و....
این الگوریتم نیز در دو شرایط ممکن است مخاطرات امنیتی داشته باشد! و بهتر است پس از دریافت رمز از کاربر بدین شکل عمل کنید
۱- مانند قبل
۲- مانند قیل
۳- رمزنگاری رمز گرفته شده در مرحله دو
۴- مرحله بسیار مهم —> پاک کردن رمز گرفته شده در مرحله دو از حافظه
۵- ادامه مانند قبل
چرا؟
۱- ممکن است برنامه crash کند و یک dump فایل برای ان بوجود آید و رمز وارد شده توسط کاربر بدین شکل expose میشود
۲- در شرایط swap کردن توسط سیستم عامل امکان expose شدن رمز کاربر نیز وجود دارد
حالا واقعا باید اینقدر سخت بگیریم؟ بله :)
در لینک زیر خیلی مختصر یک برنامه نمونه آورده ام از کتاب برنامه نویسی لینوکس که قبلا معرفی کردم
https://telegra.ph/Erase-the-unencrypted-password-from-memory-11-27
Telegraph
Erase the unencrypted password from memory
The Password File: /etc/passwd The system password file, /etc/passwd , contains one line for each user account on the system. Each line is composed of seven fields separated by colons ( : )
Forwarded from mobile_programming
دانشجویان عزیر ترمهای گذشته، در صورت تمایل به TA شدن برای درس موبایل لطفا یک پیغام برای من ارسال کنید
در ترم آینده تلاش خواهد شد بخش iOS کمی پررنگ تر شود نسبت به دو ترم گذشته و وزنی تقریبا برابر بین دو بخش بوجود آید
در صورت تمایل مشخصات و علاقه مندی خودتان را برایم ارسال کنید
نام: ...
تمایل به مشارکت در بخش اندروید/iOS و یا هر دو
در ترم آینده تلاش خواهد شد بخش iOS کمی پررنگ تر شود نسبت به دو ترم گذشته و وزنی تقریبا برابر بین دو بخش بوجود آید
در صورت تمایل مشخصات و علاقه مندی خودتان را برایم ارسال کنید
نام: ...
تمایل به مشارکت در بخش اندروید/iOS و یا هر دو
سوال تا چه حجمی از داده ها بر روی mysql و یا postgres بودن؟
بعد ما در ایران درباره cassandra یک آشنایی مقدماتی پیدا میکنیم و همه کارها را میخواهیم با آن انجام دهیم.
میتوانید درباره اینستاگرام نیز در وبلاگش بخوانید که انها هم اول postgres بودن و بعد رفتند سراغ cassandra با موتور rockdb
نکته انکه در هر مرحله از رشد نرم افزار از ابزار مناسب استفاده کرده اند :)
این خوب است و آن بد است معنی ندارد. در این شرایط و با در نظر گرفتن چند گام جلوتر این خوب است و آن دیگر انتخاب احتمالا خیلی مناسب این شرایط نیست، شاید عبارت بهتری باشد
بعد ما در ایران درباره cassandra یک آشنایی مقدماتی پیدا میکنیم و همه کارها را میخواهیم با آن انجام دهیم.
میتوانید درباره اینستاگرام نیز در وبلاگش بخوانید که انها هم اول postgres بودن و بعد رفتند سراغ cassandra با موتور rockdb
نکته انکه در هر مرحله از رشد نرم افزار از ابزار مناسب استفاده کرده اند :)
این خوب است و آن بد است معنی ندارد. در این شرایط و با در نظر گرفتن چند گام جلوتر این خوب است و آن دیگر انتخاب احتمالا خیلی مناسب این شرایط نیست، شاید عبارت بهتری باشد
Forwarded from mobile_programming
@contest
در این کانال میتوانید در مسابقات برنامه نویسی و... تلگرام شرکت کنید
در این کانال میتوانید در مسابقات برنامه نویسی و... تلگرام شرکت کنید
اینکه در مورد یک شرکت نکاتی مطرح میشود در اینجا برای ما مهم نیست هدف من از انتشار این مطلب توجه به به نکات کاربردی و امنیتی است.
https://memoryleaks.ir/cafebazaar-subdomain-takeover/
https://memoryleaks.ir/cafebazaar-subdomain-takeover/
مموریلیکس - نگاشتههایی پیرامون امنیت، شبکه و رمزنگاری
کافه بازار و SubdomainTakeover - مموریلیکس - نگاشتههایی پیرامون امنیت، شبکه و رمزنگاری
در اینجا به مباحث پایه ای آسیب پذیری Subdomain Takeover میپردازیم و بررسی میکنیم که این آسیب پذیری چگونه در کافه بازار وجود داشت و حالا پچ شده. Subdomain Takeover یا تصاحب ساب دامنه به پروسه ثبت یک دامنهای ناموجود جهت تصاحب تمامی دامنه های موجود میباشد…