موبایل – چگونه این تنظیم ثبت نام آسیب پذیر است؟

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

بعضی از زمینه ها؛ هنگامی که ثبت نام کاربر را پیاده سازی می کنیم، دو گزینه برای انجام این کار وجود دارد: شماره تلفن همراه را پر کنید (و تأیید SMS را فعال کنید یا با فیس بوک ارتباط برقرار کنید. Backend یک API RESTful است.

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

دومین نکته این است که وقتی ما با استفاده از شماره تلفن همراه ما ثبت نام می کنیم، آنها می خواهند پسورد بعد از مرحله تأیید تأیید را پر کنند. بنابراین جریان:

  1. با یک شماره تلفن ثبت نام کنید،
  2. یک تأیید اس ام اس
  3. دریافت رمز عبور را دریافت کنید. این به این معنی فردی است که آنها را ثبت کرده است
    شماره تلفن همراه تضمین شده است همان کسی است که هم هست
    تأیید گذرواژه

البته کاربر ورودی چیزی است که شما انتظار دارید – شماره تلفن و شماره تلفن و رمز عبور را پر کنید. همیشه، حتی زمانی که آنها از طریق فیس بوک ثبت نام کردند.

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

رمز عبور یک بار – جلوگیری از سوء استفاده از OTP در جریان ثبت نام برنامه

این ممکن است به نظر یک سوال open ended باشد، اما من می خواهم شانس خود را بگیرم و درک کنم که آیا بقیه جامعه در حال رسیدگی به این مسئله هستند.

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

پلتفرم برنامه

  1. Android
  2. iOS

برنامه جریان

  1. کاربر برنامه را باز میکند
  2. او با یک دکمه ورود / ثبت نام ارائه میشود
  3. اکنون میخواهد ثبت نام کند او یک کاربر جدید است. بنابراین او بر روی دکمه ثبت نام کلیک می کند و از او برای شماره تلفن او
  4. خواسته می شود وقتی شماره تلفن خود را ارسال می کند، او را از طریق SMS دریافت می کند. بگو که برنامه در واقع از API / ثبت نام که اس ام اس را راه اندازی می کند تماس می گیرد

خطر:
در حال حاضر برای هر SMS خروجی، هزینه های مالی درگیر است.

اقدامات پیشگیرانه / واکنشی کاهش یافته

  1. API نرخ محدود است (بر اساس شماره تلفن)
  2. نظارت و هشدار درست در محل وجود دارد. بنابراین اگر در همه موارد موارد سوء استفاده وجود داشته باشد، اقدامات شدید مثل مسدود کردن IP ممکن است رخ دهد.

مسائل

  1. اگر یک دشمن (به طور بالقوه یک رقیب) با API برخورد کند
    شماره تلفن های مختلف، منطق محدود کردن سرعت را به راحتی دور می اندازد.
  2. مسدود کردن IP همیشه ممکن نیست. بگو: اگر دشمن پشت شبکه NATed باشد، تمام کاربران واقعی پشت شبکه نیز از انجام هر گونه ثبت نام موفقیت آمیز مسدود می شوند.
  3. اگر دشمن تغییر آی پی ها (شاید با استفاده از Tor)، مرحله دوم کاهش در موارد فوق نیز از بین می رود.
  4. Captcha یک راه حل نیست زیرا آن را از بین می برد UX، مخصوصا هنگام برخورد با برنامه های تلفن همراه
  5. داشتن نام کاربری رمز عبور به جای OTP برای تأیید ثبت نام یک گزینه نیست، زیرا برنامه نیاز به یک شماره تلفن تأیید شده برای کارکردن دارد
  6. امضای دستگاه در هر دستگاه نیز می تواند به عنوان یک عامل برای محدود کردن سرعت استفاده شود، اما واقعیت این است که از دستگاه نیز بیش از HTTP (ها) می آید. از این رو، به راحتی قابل تغییر است. بنابراین این گزینه نیز غیرقانونی است.

در چنین وضعیتی، چگونه در برابر ریسک محافظت شود یا شاید بتوان آن را برای آن آماده کرد، اگر در کل نمیتوان آنرا مرتب کرد؟