Одноразовий пароль (one time password, OTP) – це пароль, дійсний лише для одного сеансу автентифікації. Дія одноразового пароля може бути обмежена певним проміжком часу. Перевага одноразового пароля, порівняно зі статичним, полягає в тому, що пароль неможливо використовувати повторно. Таким чином, зловмисник, який перехопив дані з успішної сесії автентифікації, не може використовувати скопійований пароль для отримання доступу до інформаційної системи, що захищається. Використання одноразових паролів не захищає від атак, заснованих на активному втручанні в канал зв’язку, використовуваний для аутентифікації (наприклад, від атак типу «людина посередині»).
Для створення одноразових паролів використовується одноразовий генератор, доступний тільки даному користувачеві. Зазвичай, одноразові паролі представлені у вигляді набору цифр і використовуються для доступу до систем дистанційного обслуговування. Це інтернет-банкінг, платіжні системи, внутрішні інформаційні системи організації.
У банківській галузі найбільш поширеним способом надання одноразового пароля є СМС-повідомлення, яке банк надсилає клієнту, який проводить трансакцію в системі інтернет-банкінгу.
Крім того, одноразові паролі можуть видаватися банком на так званій скретч-карті — пластиковій картці, на якій паролі приховані за покриттям, що стирається. У цьому випадку клієнт, отримавши вказівку від системи інтернет-банкінгу, ввести одноразовий пароль (з певним порядковим номером), стирає покриття поруч із потрібним номером на картці і вводить код у систему.
Практикується, але згодом втрачає актуальність спосіб видачі списку одноразових паролів у банкоматі – на чеку. Як і паролі на скретч-карті, вони мають порядкові номери та вводяться за вказівкою системи інтернет-банкінгу.
Борячись із шахрайством, банки все активніше використовують одноразові паролі не тільки для підтвердження фінансових операцій, але й для початкового входу в систему інтернет-банкінгу.
Деякі системи інтернет-банкінгу пропонують токен – електронний генератор одноразових кодів.
Алгоритми створення OTP зазвичай використовують випадкові числа. Це необхідно, тому що інакше було б легко передбачити наступні паролі на основі попередніх знань. Конкретні алгоритми OTP дуже різняться в деталях. Різні підходи до створення одноразових паролів наведені нижче.
- Які використовують математичні алгоритми для створення нового пароля на основі попередніх (паролі фактично складають ланцюжок, і повинні бути використані в певному порядку).
- Засновані на часовій синхронізації між сервером та клієнтом, що забезпечує пароль (паролі дійсні протягом короткого періоду часу).
- Використовують математичний алгоритм, де новий пароль заснований на запиті (наприклад, випадкове число, яке вибирається сервером або частини вхідного повідомлення) та/або лічильнику.