Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 12357|Відповідь: 0

Різниця OTP динамічних токенів, TOTP і HOTP

[Копіювати посилання]
Опубліковано 25.07.2020 16:41:17 | | | |
Огляд

Двофакторна автентифікація (також відома як 2FA) — це механізм, який поєднує два різні методи автентифікації для автентифікації користувачів. У березні 2011 року Google оголосила про використання двофакторної автентифікації онлайн, за нею з'явилися MSN і Yahoo.

Окрім перевірки імені користувача та пароля, двофакторна автентифікація також потребує комбінації іншого фізичного пристрою, такого як токен RSA або мобільний телефон.
Двофакторні сертифіковані продукти можна загалом поділити на дві категорії:

Апаратні пристрої, які можуть генерувати токени
Додаток для смартфона

OTP

Пароль, який використовується для двоетапної верифікації, є одноразовим паролем (OTP), також відомим як динамічний пароль. Це потужна технологія автентифікації, яка використовує криптографію для обміну ключами між клієнтами та серверами, і є дуже зручним технічним засобом для покращення актуальної статичної автентифікації за паролем, а також важливою двоетапною технологією автентифікації.

OTP — це скорочення від One-Time Password, що означає одноразовий пароль. Він поділяється на два типи:

HOTP (алгоритм одноразового пароля на основі HMAC)

HOTP — це одноразовий пароль, створений на основі алгоритму HMAC, також відомого як динамічний пароль для синхронізації подій, який є специфікацією алгоритму, опублікованою ITEF, а псевдокод має наступний вигляд:



Клієнт і сервер заздалегідь домовляються про ключ K для генерації одноразового пароля. Клієнт і сервер мають лічильник подій C і попередньо синхронізують значення підрахунку. Truncate — це алгоритм, який перетворює 20-байтовий рядок, згенерований HMAC-SHA-1, у кілька десяткових цифр.

TOTP (Алгоритм одноразового пароля на основі часу)

TOTP — це покращена версія HOTP, яка використовує час для заміни лічильника подій C, також відомого як динамічний шифр для синхронізації часу. Псевдокод:


T0 — це початковий час тестування, який за замовчуванням дорівнює 0  
X — це крок часу, який за замовчуванням становить 30 секунд
Офіційна документація дає «каштан», припускаючи поточний unix час = 59, T0 = 0, X = 30, а потім T=1
Припускаючи, що поточний unix час ==60, T0=0, X=30, тоді T=2
Тобто значення T округляється вниз, а десяткова — відкидається



З наведеного вище рисунка видно, що алгоритм введення має два основні елементи: один — спільний ключ (також відомий як насіння), а інший — підрахунок (або часовий коефіцієнт), який обчислюється певним алгоритмом. Якщо обидва елементи узгоджені, серверний і клієнтський сторони обчислять однаковий результат, що дозволяє функціональність автентифікації.





Попередній:Серія Angular 9 (XII) генерує динамічні токени на основі OTP
Наступний:.NET/C# генерує одноразові паролі на основі TOTP
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com