پرش به محتویات

امنیت و کنترل سوءاستفاده OTP

OTP یک مرز احراز هویت پرریسک است. کنترل‌های این صفحه جای WAF، Monitoring یا محدودیت Provider را نمی‌گیرند و پیش از Production به Security Review نیاز دارند.

تولید و نگهداری OTP

  • کد دقیقا شش رقم از 000000 تا 999999 است.
  • تولید با crypto/rand و Sampling بدون Bias انجام می‌شود.
  • Database فقط HMAC-SHA256 دامنه‌بندی‌شده با Pepper حداقل 32 Byte را نگه می‌دارد.
  • Salt جدا لازم نیست، چون Challenge ID یکتا و Domain Separation وارد HMAC می‌شوند؛ Pepper محرمانه مقاومت در برابر حدس آفلاین را فراهم می‌کند.
  • مقایسه Verification آینده باید Constant-time باشد.
  • OTP، Pepper، Mobile کامل و Headerهای امنیتی نباید در Log عمومی قرار گیرند.

عدم افشای Account

درخواست Mobile ثبت‌نشده همان Status و Shape درخواست Mobile موجود را دریافت می‌کند. Account فقط پس از Verification موفق و در Transaction کنترل‌شده ایجاد یا بازیابی می‌شود. تفاوت قابل مشاهده در Timing، Error و Delivery باید تا حد عملی کمینه شود.

Limitهای فعلی

Scope بازه کوتاه بازه روزانه
Mobile 5 در 1 ساعت 10 در 24 ساعت
Device 10 در 1 ساعت 20 در 24 ساعت
IP 30 در 10 دقیقه 200 در 24 ساعت
Service 300 در 1 دقیقه —

این مقادیر Baseline محافظه‌کارانه هستند، نه عدد نهایی Production. افزایش یا کاهش آن‌ها فقط با Metric نرخ موفقیت، Abuse، هزینه SMS، NAT Carrier و False Positive انجام می‌شود. Mobile Limit پایین‌تر از IP است تا کاربران متعدد پشت NAT اپراتور بدون دلیل مسدود نشوند.

Atomicity

Repository با Advisory Lock روی Scopeهای موثر از Race میان Requestهای هم‌زمان جلوگیری می‌کند. بررسی Limit و ثبت Challenge در یک Transaction است؛ Rate Limit فقط در Memory Process نگهداری نمی‌شود.

Client IP

IP فقط از Headerهای Proxy مورد اعتماد و زنجیره تاییدشده استخراج می‌شود. اعتماد مستقیم به X-Forwarded-For عمومی امکان دورزدن Limit را ایجاد می‌کند. مقدار IP پیش از ذخیره با HMAC جداگانه Hash می‌شود.

کنترل‌های لازم پیش از Production

  • MelliPayamak Adapter با Timeout، Error Classification و Outbox؛
  • Alert نرخ 429، 503، Delivery Failure و الگوی حمله؛
  • Rotation Pepper با راهبرد سازگار با Challengeهای فعال؛
  • سیاست Retention و حذف داده؛
  • سقف تلاش Verification و Lock موقت Challenge؛
  • Refresh Token Rotation، Reuse Detection و Revocation؛
  • تست Load، Race، Enumeration و Header Spoofing.