رمزهایی که هنگام انجام تراکنشهای مالی از بانک دریافت میکنید، یک نوع OTP است؛ کدهایی که برای بازیابی رمز عبور و ورود به حساب کاربریتان برای شما ارسال میشود هم نوعی OTP هستند!
پس OTP چیست؟
رمزهای یکبار مصرف و رشتهای از اعداد تصادفی هستند که بهجای رمزهای ثابت و قدیمی استفاده میشوند و امنیت اکانتهای آنلاینتان را بالا میبرند.
اگر کنجکاوید درباره این رمزهای یکبار مصرف و کاربرد و سازوکار آنها بیشتر بدانید، حتماً این مقاله را تا انتها بخوانید!
بهترین سرویسهای میزبانی وب را از لیموهاست بخواهید
شروع قیمت از
سالیانه ۵۹۰ هزار تومان
رمز یکبار مصرف یا کد OTP چیست؟
کد OTP در دستهبندی ابزارهای تأیید هویت قرار میگیرد. در واقع، صحبت از یک سازوکار امنیتی موقتی است که زمان وارد شدن به یک اکانت آنلاین یا انجام تراکنشهای مالی، مورد استفاده قرار میگیرد.
برای آنهایی که میپرسند OTP مخفف چیست، باید بگوییم این عبارت کوتاهشدۀ One Time Password است؛ یعنی کلمۀ عبور یکبار مصرف یا همان پویا! به همین خاطر است که این از کد، با عنوان رمز یکبار مصرف OTP هم یاد میشود.
وقتی کاربرها قصد ورود به اکانت خود در شبکه یا سیستمی را داشته باشند، اگر آن شبکه یا سیستم با سازوکار OTP کار کند، بعد از اقدام به ورود از طرف کاربر، کدی حاوی رشتهای از اعداد یا حروف برای او ارسال خواهد شد. برای ورود به اکانت، الزاماً آن کد باید در قسمت مخصوص خودش وارد شود.
نکتۀ دیگر هم اینکه علاوهبر یکبار مصرف بودن، کدهای OTP در بازۀ زمانی کوتاهی منقضی خواهند شد.
🧩 پیشنهاد خواندنی: SNI چیست و چه کاربردی برای امنیت وبسایتها دارد؟ (به زبان ساده) |
طبیعتاً این نوع کدها از پسوردهای ثابتی که برای اکانتهای خود انتخاب میکنید قویتر هستند؛ چرا؟ چون:
- خیلی زود از رده خارج میشوند و بعد از چند ثانیه دیگر اعتباری ندارند،
- برخلاف پسوردهای انتخابی توسط کاربران روی چندین اکانت مورد استفاده قرار نمیگیرند،
- و از همه مهمتر یکبار مصرف هستند.
این کدها بهصورت خودکار ساخته میشوند و از طریق پیامک، تماس تلفنی یا پوشنوتیفیکشن به دست کاربر اصلی میرسند؛ یعنی امکان ندارد قبل از صدور، بتوان حدس زد که کدام حروف و اعداد، با چه ترتیبی کد رمز یکبار مصرف را تشکیل میدهند و همان کاربری که اکانت را ساخته و حق ورود به آن را دارد.
رایجترین شکل کدهای OTP، اعداد شش رقمی هستند؛ البته همانطور که بالاتر هم گفتیم، ممکن است از حروف یا ترکیبی از عدد و حرف هم برای ساخت کد OTP استفاده شود.
این نوع کدها، توانستهاند خود را بهعنوان یک استاندارد جهانی مطرح کنند و تقریباً همۀ سایتها، شبکهها و ارگانهای معتبر در سراسر دنیا، از کد OTP برای تأمین امنیت حداکثری استفاده میکنند.
مخصوصاً هرجا که پای تراکنشهای مالی و اطلاعات بانکی در میان باشد، چنین کدهایی ارزش بالای خود را خیلی خوب نشان میدهند.
ملموسترین مثالی که میتوانیم در این رابطه بیاوریم، رمز دوم پویا است که توسط بانکها برای صاحب حساب ارسال میشوند. فارغ از اینکه این سیستم در نظام بانکی ما ممکن است با ایراداتی مواجه باشد (که هست!)، کلا کدهای OTP خیال کاربران و سایتها را بابت ایمنی تا حد زیادی راحت میکنند.
تا اینجا فهمیدیم OTP چیست. خوب است بدانید این نوع کدها اسامی دیگری هم دارند؛ مثل One Time Pin ،One Time Authorization Code و Dynamic Password یا کلمۀ عبور پویا.
بیایید کمی موشکافانهتر به ماجرا نگاه کنیم و ببینیم چه لزومی به استفاده از کدهای OTP وجود دارد؟
چرا باید از رمز OTP استفاده کنیم؟
اگر بخواهیم خیلی کوتاه به این پرسش پاسخ دهیم، باید بگوییم تأمین امنیت! اصلیترین دلیل استفاده از رمز یکبار مصرف OTP، تأمین امنیت، در بالاترین حد ممکن است؛ اما خب اگر مقالات دیگر ما را خوانده باشید، میدانید ما هیچوقت به جوابهای مختصر بسنده نمیکنید و تا تهوتوی قضایا را درنیاوریم، بیخیال نمیشویم 😁
بهلطف کدهای OTP، دسترسی هکرها به اکانتها از همیشه سختتر شده است. حتی اگر کلمۀ عبوری که برای اکانت خود انتخاب کردهاید لو برود، چون OTP یکبار مصرف است و تنها تا چند دقیقه بعد از صدور اعتبار دارد، احتمال ورود غیرمجاز به اکانت خیلی پایین است.
بالاتر گفتیم که رمز OTP از کلمۀ عبور انتخابی شما برای اکانتتان قویتر است! پسوردهای ثابت که شما آنها را تعیین میکنید، ممکن است توسط دیگران (بخوانید دزدها!) حدس زده شوند، بهدنبال یک رخنۀ امنیتی به دست افرادی که نباید بیفتند، یا فریب بخورید و بهنحوی خودتان آن را دودستی تقدیم هکرها کنید؛ در کل که میخواهیم بگوییم پسوردهای ثابت در معرض خطرات و ریسکهای زیادی قرار دارند.
حالا اینجا نقش OTP چیست؟ این کدهای یکبار مصرف، لایۀ امنیتی اضافهای روی اکانتتان میکشند؛ یعنی حتی اگر مجرمان سایبری تمام اطلاعات اکانتتان را داشته باشند، نمیتوانند هیچ کاری از پیش ببرند! مگر اینکه به گوشی موبایل، ایمیل، یا هر کانال ارتباطیای که کد OTP آنجا فرستاده میشود هم دسترسی پیدا کنند و آن وقت دیگر واویلا!
نکتۀ جالب اینکه درصد خیلی زیادی از آنها در قالب SMS، به موبایل کاربرها فرستاده میشوند؛ چون طی سالهای اخیر، زندگی بشر به شکلی پیش رفته که اغلب مردم، تلفنهای همراه خود را بهصورت ۲۴ ساعته به خود میچسبانند.
بهعلاوه، از آنجایی که راجعبه دستگاهی کاملاً شخصی صحبت میکنیم (حتی شخصیتر از مسواک!)، معمولاً فقط صاحب موبایل به آن دسترسی خواهد داشت.
این دلایل را که کنار هم میگذاریم، میبینیم که گوشیهای موبایل کانال خیلی خوبی برای دریافت کدهای OTP محسوب میشوند و به همین دلیل درصد قابل توجهی از این کدها توسط SMS جابهجا میشوند.
بنابراین، بهطور خلاصه، هدف اصلی بهکارگیری کدهای OTP، افزودن یک لایۀ امنیتی قوی است. لایهای که با احراز هویت کاربر متقاضی ورود به اکانت، دست کلاهبردارها و هکرها را قبل از رسیدن به گوشت سر سفره قطع میکند!
حالا بیایید ببینیم روال کار کد OTP چیست.
🧩 پیشنهاد خواندنی: چرا باید یک گذرواژه قوی بسازیم؟ ۱۰ تکنیک برای ساخت پسورد سخت |
سازوکار رمزهای یکبار مصرف چگونه است؟
وقتی قرار است تراکنشی صورت بگیرد، یا زمانی که کاربری قصد ورود به سیستمی را داشته باشد، OTP وارد عمل میشود و با افزودن یک لایۀ امنیتی، خیال همۀ طرفین مجاز را راحت میکند.
مثلاً وقتی کاربر درخواستی برای بازیابی پسورد ثبت میکند، یا زمانی که بانکی میخواهد تراکنشی غیرمعمول را تأیید کند، یا…، درخواست ساخت توکن OTP ثبت میشود. حالا یا از طرف مشتری یا از طرف مجموعهای که با آنها کار میکند.
اگر بخواهیم فنیتر به کلیت ماجرا نگاه کنیم، باید بگوییم یک OTP Generator با یک Authentication Server همکاری میکند و حاصل این کار تیمی، تأیید یا عدم تأیید هویت کاربر خواهان ورود است.
OTP Generator با استفاده از الگوریتم HMCA (مخفف Hashed Message Authentication Code) یک کد جدید و تصادفی میسازد و آن را برای کاربر میفرستد تا بتواند بدون مشکل وارد سیستم شود. بهمحض صدور کد، سرور بکاند هم به آن دسترسی پیدا میکند تا هروقت کاربر آن را وارد کرد، با استفاده از الگوریتمی مشابه، درستی آن را بررسی کند.
همۀ کدهای OTP، همانطور که از نام آنها برمیآید (اشاره به One Time)، یکبار مصرف هستند! اما میتوان آنها را به دو دستۀ جداگانه، یعنی زمانمحور (TOTP) و هشمحور (HOTP) تقسیم کرد.
قبل از اینکه گیج شوید و فکر کنید فهم این موضوعات برایتان سخت است، بیایید با زبان خیلی ساده بگوییم که هرکدام از این مخففهای انگلیسی چه مفهومی دارند.
🧩 پیشنهاد خواندنی: چطور از هک شدن سایتمان در برابر هکرها محافظت کنیم؟ |
فرق کدهای HOTP و TOTP و OTP چیست؟
OTP را که بالاتر تعریف کردیم؛ فقط تا اینجا چندباری از عبارت OTP TOKEN استفاده کردیم و شاید برای خیلیها سؤال پیش آمده باشد که OTP TOKEN چیست؟ کلاً منظور همان رمز یکبار مصرف OTP است و نیازی نیست دنبال مفهوم فنی و دقیق آن باشید.
HOTP و TOTP، هر دو نوعی OTP محسوب میشوند و در واقع، زیرشاخههای آن محسوب میشوند.
TOTP مخفف Time-based One Time Password است؛ زمانمحور بودن یعنی اینکه کدهای TOTP مطابق با زمان ثبت درخواستشان ساخته میشوند؛ یعنی زمان دقیق ثبت درخواست، همان اعداد تشکیلدهندۀ کد خواهند بود؛ مثلاً اگر درخواست در ساعت ۱۲:۰۵:۲۱ ثبت شود، کد OTP که قرار است صادر شود، ۱۲۰۵۲۱ خواهد بود!
این کدها علاوهبر یکبار مصرف بودن، بعد از گذشت مدتزمان کوتاهی (در حد یکی دو دقیقه) منقضی میشوند.
به این دسته از کدهای یکبار مصرف Software Token هم میگویند.
و اما HOTP چیست؟
برخلاف TOTP که با توجه به زمان ثبت درخواست ساخته میشد، HOTP با تبعیت از یک الگوریتم به وجود میآید.
HOTP با گذر زمان منقضی نمیشود. فقط در صورت استفاده یا صدور OTP جدید، دیگر فایده نخواهد داشت.
بهطور مشخص، فرق اصلی بین این دو نوع OTP، در Moving Factor آنها است. این عبارت به عاملی اشاره دارد که درون الگوریتم است و پس از هر بار خلق رمز جدید، تغییر میکند.
همانطور که گفتیم، در TOTP زمان بهعنوان Moving Factor شناخته میشود و در HOTP، شمارندهای که بعد از هر بار ورود موفق تغییر میکند.
حالا میدانید انواع رمز OTP چیست. اما یک سؤال مهم:
کدام یکی بهتر است؟
پاسخ یک کلمهای میشود TOTP! ولی چرا و به چه دلیل؟!
از آنجایی که TOTP به زمان وابسته است، احتمال نفوذپذیری را به کمترین حد ممکن میرساند! حتی اگر احیاناً هکر به کد یکبار مصرف هم دسترسی پیدا کند، با توجه به اینکه کد در مدتزمان کوتاهی منقضی خواهد شد، احتمال بروز مشکل بسیار کم است.
اما در رابطه با کدهای HOTP، رمزی که استفاده نشود میتواند دردسرهای زیادی ایجاد کند و فرصتهای طلایی به تهبکاران اینترنتی بدهد.
این دلیل اصلی بود؛ اما علاوهبر آن، TOTP در مقایسه با HOTP کاربرپسندتر است. رمز بهصورت کاملاً خودکار و با توجه به زمان دستگاهها ساخته میشود. نیاز به انجام هیچ اقدام جداگانهای توسط کاربر نیست! منتهی کدهای HOTP در برخی موارد، مشکلاتی ایجاد میکنند که به تجربۀ کاربری آسیب میرسانند و این اتفاق خوبی برای سایت محسوب نمیشود.
بنابراین، حتی اگر تجربۀ کاربری را لحاظ نکنیم، انواع TOTP کدهای OTP بهخاطر امنیت بیشتری که فراهم میکنند، بهتر و کارآمدتر از انواع HOTP هستند.
اگر موافق باشید، در بخش بعدی ببینیم نقاط قوت کد OTP چیست.
🧩 پیشنهاد خواندنی: ۷ راهکار برای افزایش امنیت وب سرور (راهنمایی برای تازهکارها!) |
مزایای OTP چیست؟
بارها در خلال این مقاله گفتیم و باز هم میگوییم که اصلیترین مزیت کدهای OTP امنیت بالای آنهاست؛ اما خب مزایای دیگری هم در کار است.
از سرقت اطلاعات هویتی جلوگیری میکند
سایتها، ارگانها و سیستمهایی که OTP را به کار میگیرند، کار هکرها برای نفوذ به اکانت مشتریان یا کارمندان خود را بسیار سخت و پیچیده میکنند؛ در نتیجه، احتمال سرقت اطلاعات هویتی آنها به حداقل میرسد.
در حالی که این مسئله در کشور ما شوخیای بیش نیست و تقریباً تمام اطلاعات هویتی ایرانیها، از شمارۀ ملی و نام پدر گرفته تا آدرس و شماره تلفن کف اینترنت پخش است، در بیشتر نقاط دنیا، برای حفظ امنیت اطلاعات هویتی، اهمیت ویژهای قائل هستند. همانطور که گفتیم، OTP کمک بزرگی در این راستا از خود نشان میدهد.
بیایید یک سناریوی احتمالی را تصویر کنیم تا بدانید نقش کد OTP چیست.
فرضاً شخصی میخواهد وارد اکانت فردی دیگر شود؛ بنابراین، رمزی یکبار مصرف برای صاحب اصلی اکانت فرستاده میشود؛ چون خود او درخواست دریافت کد OTP را صادر نکرده، میفهمد کاسهای زیر نیمکاسه است.
سایت یا سیستم نهایتاً بتواند حدس بزند که ورود غیرمجاز است؛ اما صاحب اکانت میتواند با اطمینان بگوید یک جای کار میلنگد؛ در نتیجه، وارد حساب کاربری خود میشود و با تغییر کلمۀ عبور و انجام اقدامات تکمیلی دیگر، امنیت را تأمین و تهدید را خنثی میکند.
حدس آن تقریباً غیرممکن است!
با اینکه ساختار کدهای OTP بسیار ساده است، عملاً حدس زدن آنها ممکن نیست؛ یادآور میشویم که ورژن بهتر آن، یعنی TOTP، در بازۀ زمانی کوتاهی منقضی میشود و کلاً دست هکر در پوست گردو میماند! به همین خاطر است که این رمزهای یکبار مصرف، برای کاهش خطر ناشی از پسوردهای ضعیف، بسیار کارآمد نشان میدهند.
بیایید پای ریاضیات را وسط بکشیم تا بهتر بفهمید چرا حدس زدن کدهای OTP ناممکن است. با فرض اینکه رمز یکبارمصرف ۶ رقم باشد، هکر باید ۱۰ احتمال را برای هرکدام از ارقام در نظر بگیرد. به عبارتی دیگر، ۱۰ بهتوان ۶! سادهتر بگوییم، شانس تبهکار برای حدس درست کد OTP یک در میلیون است!
تازه اگر کد ۸ رقم باشد یا شامل حروف هم بشود که دیگر هیچ؛ در این صورت، شانس هکر برای بردن جایزۀ لاتاری بیشتر از شانس او برای پیدا کردن رمز یکبار مصرف است! بازهم تأکید میکنیم که بعد از مدتی کوتاه، رمز دیگر به هیچ کاری نمیآید و هکر باید دنبال حدس زدن کد OTP جدید برود.
🧩 پیشنهاد خواندنی: آموزش تغییر پسورد ورود به پیشخوان وردپرس (۳ روش) |
فرایند بازیابی کلمۀ عبور سادهتر انجام میشود
همۀ ما کلی اکانت در سرویسهای مختلف اینترنتی داریم که شاید هرکدام پسوردهای جداگانهای داشته باشند. کدهای OTP و انوع روشهای احراز هویت، برای بازیابی کلمات عبور هم کاربرد دارند.
روال کار هم ساده است. حتماً قبلاً ایمیل یا شمارۀ موبایل خود را در اکانت وارد کردهاید، یک کد OTP برایتان فرستاده میشود که میتوانید با استفاده از آن، وارد اکانت خود شوید و پسورد خود را تغییر دهید.
به این ترتیب، هم کاربر تجربۀ خیلی بهتر و روانتری خواهد داشت و هم بار سنگینی از رو دوش تیم پشتیبانی IT برداشته میشود؛ آنها میتوانند از این زمان اصافه برای بهینهسازی جنبههای دیگر سیستم استفاده کنند.
نصب و فعالسازی آنها بسیار راحت است
با کمک APIهای احراز هویتی، ارگانها، شرکتها و انواع کسبوکارهای آنلاین میتوانند از OTP روی اپلیکیشن، محصول و سایت خود بهره ببرند.
بنابراین، در زمانی بسیار کوتاه، این ملزومات احراز هویتی که کاملاً قابل برنامهریزی هستند، به سایت یا اپلیکیشن اضافه میشوند و باعث میشوند:
- امنیت در برابر خطرات داخلی و خارجی چند برابر شود و خطرات ناشی از دسترسی غیرمجاز از بین برود؛
- مشتریها و کاربران راحتتر به سایت یا اپلیکیشن اعتماد کنند؛ چون میفهمند علاوهبر پسوردهای ثابت، رمزهای یکبار مصرف هم در تأمین امنیت اکانتشان نقش دارند؛
- وقت نیروی انسانی که ارزشمندترین دارایی هر کسبوکار است، خالی شود؛ چراکه نیازی نیست به تماسهای پرشمار برای احراز هویت به شیوۀ سنتی پاسخ دهند.
تجربۀ کاربری را به میزان چشمگیری بهتر میکند
طبق آمار منتشرشده در وبسایت Sinch، بیشتر از ۷۰ درصد مشتریها، وقتی خیالشان بابت امنیت اکانت و اطلاعاتشان راحت باشد، اعتماد خیلی بیشتری به سایت و کسبوکار نشان میدهند.
فرقی نمیکند سایتتان چه موضوعی دارد و مخاطبانتان چه کسانی هستند، در هرصورت به اعتماد مشتریها نیاز دارید، چون تمام کسبوکار روی همین اعتماد بنا میشود.
با استفاده از کد OTP، خیال مشتریها از این جهت راحت میشود و خواهید دید که به کسبوکار شما اعتماد میکنند.
در کنار همۀ این مزایا، ایراداتی هم هستند که باید از آنها مطلع باشید.
معایب OTP چیست؟
با در نظر گرفتن امنیت بیشتری که بهلطف رمزهای یکبار مصرف OTP حاصل میشود، خیلی راحت میتوانیم این معدود عیبها را نادیده بگیریم؛ اما خب در مرام ما نیست که نقصانها و کاستیها را از شما پنهان کنیم! پس این شما و این نقاط ضعف کدهای OTP.
ممکن است برای برخی کاربران اعصابخردکن باشد
اقدامات اضافۀ هرچند اندک برای دریافت و استفاده از رمز یکبار مصرف، حوصلۀ برخی کاربران را سر میبرد و آنها را کلافه میکند. طبیعتاً اگر فقط پسوردهای ثابت مورد استفاده قرار بگیرند، فرایند ورود به سایت خیلی سریعتر انجام میشود، اما خب امنیت هم در این حد نخواهد بود.
بنابراین، برخی کاربران کمحوصله اعصابشان خرد میشود و در نقطۀ مقابل، کلی کاربر دیگر بهخاطر همین سازوکار امنیتی تکمیلی راحتتر به سایت اعتماد میکنند؛ و از همه مهمتر اینکه هکرها بیشتر از همه کلافه میشوند و به نقطۀ جوش میرسند؛ لذتبخش است!
🧩 پیشنهاد خواندنی: آموزش ساخت آدرس اختصاصی برای ورود به پنل مدیریت وردپرس |
SMSها ذاتاً آسیبپذیر هستند
همانطور که بالاتر گفتیم، معمولاً برای ارسال و دریافت OTP از پیامک استفاده میشود؛ در حالی که این کانال در مقایسه با کانالهای دیگر مثل ایمیل مزیتهایی دارد، باید این را هم بدانید که برخی مشکلات و ضعفهای ذاتی هم در رابطه با SMS وجود دارد؛ یعنی ممکن است SMS ارسالی توسط افرادی که نباید دیده شود.
کاملاً به توکن سختافزاری وابسته است
همین اول بگوییم رمز سخت افزاری OTP TOKEN چیست. منظور دستگاه فیزیکیای است که برای ساخت رمزهای یکبار مصرف OTP استفاده میشود. مثل یک USB فلش معمولی یا حتی کارتی که نمایشگر کوچکی روی آن تعبیه شده است.
بههرحال، این سختافزارها ممکن است گم شوند یا به سرقت بروند! اتفاقاتی که به اختلالات امنیتی و بروز مشکل در دسترسی به سایت منجر میشوند.
قبل از اینکه عیبوایراد بیشتری به این سازوکار کارراهانداز ببندیم، بیایید نحوۀ استفاده از کدهای OTP را یاد بگیریم.
نحوه فعالسازی رمز یک بار مصرف یا OTP
سرویسهای گوناگونی وجود دارند که امکان استفاده از کدهای OTP را برای سایتها و کاربرانشان فراهم میکنند.
با تهیۀ یک پلتفرم ایمن برای دریافت درخواست و ساخت کدهای OTP، میتوان رمز یکبار مصرف ساختهشده را بهراحتی در قالب متن (پیامک، ایمیل، پوش نوتیفیکیشن و…) یا صوت (تماس تلفنی) برای کاربر فرستاد.
همان پلتفرم هم وظیفۀ صحتسنجی کد واردشده و تطابق آن با OTP درست را بر عهده میگیرد؛ اگر همهچیز درست باشد، کاربر میتواند اکانت شود؛ یا تراکنش تکمیل خواهد شد.
زیرساخت لازم برای ساخت کدهای OTP با کمک یک API به سایت یا اپلیکیشن میچسبد. بنابراین، سایت میتواند بفهمد کد OTP که توسط کاربر وارد میشود درست است یا نه!
برویم برای جمعبندی مقاله.
افزایش قابل توجه امنیت با راهکاری ساده و دمدستی با نام OTP
اگر از ابتدا همراه ما بوده باشید، حالا خوب میدانید که کد OTP چیست. کدهای چند رقمی که نسخههای بهدردبخورشان، نهایتاً طی چند دقیقه منقضی میشوند و بهطور کلی، امنیت حساب کاربران داخلی و خارجی روی سایتها و سیستمهای مختلف را بهبود میبخشند.
انواع این رمزهای یکبار مصرف را بررسی کردیم. ضمن اینکه هم به مزایای آنها پرداختیم و هم به معایبی که گفتیم اگر منطقی به قضیه نگاه کنیم، خیلی مهم نیستند!
اگر سایت دارید، پیشنهاد میکنیم در اولین فرصت این سازوکار امنیتی ساده را به آن اضافه کنید؛ اگر در انواع سایتها و سرویسهای اینترنتی اکانت دارید، توصیه میکنیم حتماً کد OTP را برای ورود به اکانتتان فعال کنید تا اطلاعاتتان در معرض خطر نباشند.
و در نهایت، اگر همچنان سؤالی در این رابطه دارید، برایمان کامنت بگذارید.
دیدگاه ها
اولین نفری باشید که دیدگاه خود را ثبت می کنید