OTP مخفف عبارت One Time Password به معنی رمز یک بار مصرف است که میتواند رشتهای از اعداد یا الفبایی از کاراکترها باشد.
رمز عبور یکبار مصرف یک کد امنیتی است که برای استفاده یک بار ورود به سیستم و برای به حداقل رساندن خطرات ورود جعلی و حفظ امنیت بالا طراحی شده است و به طور خودکار توسط نرم افزار تولید شده و از طریق پنل اس ام اس، به تلفن کاربر ارسال میشود. OTPها ممکن است جایگزین اطلاعات ورود به سیستم شوند یا علاوه بر آن ممکن است برای افزودن یک لایه امنیتی اضافهتر استفاده گردند.
OTP به عنوان یک روش استاندارد در سراسر جهان برای ورود به سیستم در شرایط خاص، مانند تأیید اعتبار یک حساب جدید یا تأیید قانونی بودن تراکنش شناخته میشوند و معمولا یک شماره شش رقمی هستند که از طریق پنل پیامکی به تلفن مشتری ارسال میشوند و سپس، مشتری توسط آن رمز میتواند در سایت یا برنامه وارد گردد.
OTPها چگونه تولید میشوند؟
تولید OTPها متکی به سرور است و به دو نوع تولید میشوند:
HOTP (رمز عبور یکبار مصرف مبتنی بر هش): این کدها بر اساس یک شمارنده هستند که هر بار که یک کد تولید میشود، شمارنده افزایش مییابد. به این ترتیب از یک کد را هرگز نمیتوان دو بار استفاده کرد و به محض تولید کد بعدی، کد قبلی منقضی میشود.
TOTP (گذرواژه یکبار مصرف مبتنی بر زمان): همانطور که از نام آن پیداست، این کدها دستهای از OTPها هستند که فقط برای یک دوره زمانی معین، معمولا کمتر از ۳ دقیقه معتبر هستند و امنیت آنها بیشتر است.
چرا از رمزهای عبور یکبار مصرف استفاده میکنیم؟
میلیونها OTP هر روز در سراسر جهان از طریق پیامک ارسال میشوند. با این دلایل که:
- مردم سعی میکنند، تلفنهای همراه خود را ۲۴ ساعت شبانه روز در دسترس نگه دارند.
- معمولا هر تلفن مختص یک نفر است.
- تلفنهای همراه دارای رمز شخصی هستند.
ایده کلی ایجاد رمز عبور یکبار مصرف، اضافه کردن لایه دوم برای احراز هویت است تا از جرایم سایبری جلوگیری کند و از سازمان شما در برابر اثرات فاجعه بار کلاهبرداری محافظت نماید.
اگر کاربر نه تنها نام کاربری و رمز عبور خود را (رمزی که میداند) بلکه اطلاعات دیگری برای تکمیل احراز هویت و ورود به سیستم پر کند، با اینکار، خطر کلاهبرداری به شدت کاهش مییابد. این اطلاعات میتواند شماره تلفن کاربر برای دریافت کد OTP باشد.
چگونه یک رمز عبور یک بار مصرف کار میکند؟
OTPها زمانی استفاده میشوند که امنیتی فراتر از نام کاربری و کلمه عبور برای اثبات هویت مشتری نیاز است. در زیر چند نمونه از مواردی که OTP در آن ها کاربرد دارد را آوردهایم:
- هنگامی که برای دسترسی به بخشی از سیستم نیاز به ورود به حساب کاربری باشد.
- هنگامی که کاربر نیاز به بازیابی رمز عبور خود دارد.
- هنگامی که بانکی بخواهد تراکنش خود را تأیید کند، همانند رمزهای پویا که در بانک ها برای تایید ارسال میشود.
- هنگامی که برای امنیت بیشتر نیاز به پیاده سازی ورود دو مرحله ای (Two Factor Authentication) باشد.
OTP به صورت خودکار یک عدد نیمه تصادفی یا رشتهای از کاراکترها را تولید میکند و هیچ راهی برای پیش بینی اینکه OTP از قبل چه خواهد بود، وجود ندارد. همچنین، OTPها معمولاً با زمان محدود و فقط برای چند دقیقه قابل استفاده هستند.
روشهای ارسال رمز یکبار مصرف
راههای مختلفی برای ارسال OTP وجود دارد. برخی گزینه دریافت OTP از طریق ایمیل را (اگرچه امنیت کمتری دارد) انتخاب میکنند. سایر ارائهدهندگان، OTP ها را به عنوان تماس فعال میکنند و زمانی که مشتری تماس را جواب میدهد، رمز را با صدای بلند اعلام میکنند. اما تا حد زیادی، رایجترین و امنترین راه برای ارسال OTP از طریق پیامک است که معمولاً یک پیام کوتاه به تلفن همراه مشتری است که در ادامه هر کدام را توضیح دادیم.
ارسال رمز یکبار مصرف به عنوان پیامک
همانطور که گفتیم، بیشتر OTPها به صورت پیامک ارسال میشوند. هنگامی که کاربر تلاش خود را برای ورود به سیستم آغاز کرد و نام کاربری و رمز عبور صحیح را وارد کرد، یک پیامک OTP به شماره موبایل متصل به حساب کاربری وی ارسال میشود. سپس، کاربر کد ارسال شده را در صفحه ورود وارد میکند و فرآیند احراز هویت تکمیل شده و وارد سایت یا نرم افزار میشود.
ارسال رمز یکبار مصرف به عنوان پیام صوتی
جایگزینی برای رمز عبور یکبار مصرف پیامکی، ارسال رمز از طریق تماس تلفنی است. رمز عبور گفته شده به عنوان یک تماس تلفنی در تلفن همراه کاربر دریافت میشود، اما رمز عبور ذخیره نمیشود و ممکن است نتوانید درست متوجه رمز عبور شده و وارد سایت شوید. همچنین، میتوانید گزینه تماس تلفنی را در صورت عدم تحویل پیامک خود در تنظیمات پیادهسازی کنید.
چرا رمز یک بار مصرف ایمن است؟
در حالی که OTPها ساده به نظر میرسند، عمق شگفت انگیزی از فناوری در ارسال یک رمز عبور یکتا به تلفن همراه مشتری هستند. OTPهای ارسال شده توسط پیامک در حین انتقال رمزگذاری نمیشوند، آنها از روشهای دیگری برای اطمینان از اینکه فقط کاربر مجاز میتواند از آنها استفاده کند، تولید میشوند.
در ابتداییترین حالت مدلهای رمزگذاری، اطلاعات شخصی (مانند تلفن همراه شخصی) و اطلاعاتی که خود شخص میداند (مانند آدرس ایمیل خودش) با سؤالات چالشی مانند محل تولد والدین ترکیب میکند. در مجموع، ترکیبی از یک اطلاعات شخصی، یک کد دسترسی نیمه تصادفی (OTP) را برای ورود ایمن ایجاد میکند.
اما رمزی که به تلفن مشتری میرسد، برای مدت زمان زیادی ذخیره نمیشود. به همان روشی تولید میشود که کلیدهای رمزنگاری از حسابهای بانکی محافظت میکنند: یک «تابع هش یک طرفه» که شامل تولید و ضرب اعداد اول بزرگ است. این روش امنیت زیادی دارد، هک کردن و تولید چنین کدهایی توسط نفوذگران به نظر آسان، اما عملاً غیرممکن است، اگر به عقب برگردید، با مشاهده نتیجه نمیتوانید کشف کنید که چگونه کد ایجاد شده است.
این بدان معناست OTPکه کاربر میبیند واقعاً غیرقابل پیش بینی است، حتی اگر یک هکر فهرستی از میلیونها OTP داشته باشد، هیچ “الگویی” وجود ندارد که به او اجازه دهد اطلاعاتی درباره آنچه OTP برای یک مشتری معین در آینده میفرستد، بدست آورد.
OTP ها قابلیت استفاده در زمان محدود دارند، علاوه بر موضع امنیتی، ماندگاری OTP بسیار کوتاه است، به ندرت بیش از نیم ساعت و گاهی فقط چند دقیقه کار میکند.
یک مزیت دیگر برای ارسال OTP به صورت پیامک نسبت به کانالهای دیگر این است که اکثر شبکههای تلفن همراه جهانی تنها در چند ثانیه پیام متنی را از مبدأ به گیرنده منتقل میکنند و برای استفاده رمزهای یک بار مصرف، بستر مناسبی هستند و این در حالی است که اس ام اس در ابتدا به عنوان یک فناوری پیامرسانی فوری طراحی نشده بود!
چگونه رمزهای یکبار مصرف ارسال کنیم؟
برای استفاده از OTPها لازم نیست یک سرور شبکه تلفن همراه داشته باشید. ما در فراپیامک بهعنوان یک سرویس، با یک پلتفرم امن برای دریافت یا شروع درخواستهای ارسالOTP، رمز عبور را به عنوان یک متن و کد تأیید برای کاربر ارسال میکنیم تا تراکنش یا ورود به سیستم بتواند انجام شود.
زیرساخت استفاده از رمزهای عبور یکبار مصرف با وب سایت یا برنامه شما با استفاده از یک API ادغام میشود. به این صورت که یک سایت با تدابیری مانند بررسی برهه زمانی، میداند که آیا OTP وارد شده صحیح است یا خیر. هنگامی که یک OTP برای ورود به حساب بانکی خود یا انجام تراکنش دریافت میکنید، سازمان از نرم افزاری که در داخل شرکت توسعه داده است، استفاده نمیکند بلکه از یک ارائه دهنده خدمات ارسال OTP مانند پنل پیامکی، استفاده میکند تا رمز به دست کاربر برسد.