Концепція одноразових паролів в системі аутентифікації


Технологія One-Time Password - одне з найбільш перспективних рішень задачі аутентифікації користувачів при передачі інформації по відкритих каналах зв'язку.

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

Підводні камені віддаленого доступу

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

Досить поширений сьогодні і такий вид комп'ютерного шахрайства, як сніффінг (від англ. Sniff - нюхати) - перехоплення зловмисником мережевих пакетів з метою виявлення його цікавить. Використовуючи цей прийом, хакер може "винюхати" пароль користувача і використовувати його для несанкціонованого доступу. Серйозним випробуванням піддає просту парольний захист (особливо при віддаленому доступі) нове покоління вірусів-шпигунів, непомітно потрапляють на комп'ютер користувача в ході звичайного "перегортання" web-сторінок. Вірус може бути запрограмований на фільтрацію інформаційних потоків конкретного комп'ютера з метою виявлення комбінацій символів, які можуть бути паролями. Ці комбінації "шпигун" пересилає своєму творцеві, а тому залишається тільки виявити потрібний пароль.

Якраз для мобільних додатків, а також для організації доступу до потрібної інформації з тих місць, де не можливо встановити спеціальне програмне забезпечення, була розроблена концепція одноразових паролів OTP - One-Time Password.

Одноразовий пароль: ввів і забув

Одноразовий пароль - це ключове слово, дійсне тільки для одного процесу аутентифікації протягом обмеженого проміжку часу. Такий пароль повністю вирішує проблему можливого перехоплення інформації або банального підглядання. Навіть якщо зловмисник зможе отримати пароль "жертви", шанси скористатися ним для отримання доступу дорівнюють нулю.

Перші реалізації концепції одноразових паролів були засновані на статичному наборі ключових слів, тобто спочатку генерувався список паролів (ключів, кодових слів і т.п.), які потім могли застосовувати користувачі. Подібний механізм використовувався в перших банківських системах з можливістю віддаленого управління рахунком. При активації цієї послуги клієнт отримував конверт зі списком своїх паролів. Потім при кожному доступі до системи він використовував чергове ключове слово. Дійшовши до кінця списку, клієнт знову їхав в банк за новим. Таке рішення мало цілий ряд недоліків, головний з яких - низька надійність. Все-таки постійно носити з собою список паролів небезпечно, його легко можна втратити або його можуть вкрасти зловмисники. І потім, список не нескінченний, а що якщо в потрібний момент не буде можливості доїхати до банку?

На щастя, сьогодні ситуація змінилася самим кардинальним чином. Взагалі, в західних країнах використання одноразових паролів для аутентифікації саме в інформаційних системах стало звичним явищем. Однак в нашій країні технологія OTP до недавнього часу залишалася недоступною. І лише недавно керівництво компаній почало усвідомлювати ризик несанкціонованого доступу, в кілька разів збільшується при віддаленому доступі. Попит, як відомо, народжує пропозицію. Тепер продукти, які використовують для віддаленої аутентифікації одноразові паролі, стали поступово займати своє місце і на українському ринку.

У сучасних технологіях аутентифікації за допомогою OTP застосовується динамічна генерація ключових слів за допомогою сильних криптографічних алгоритмів. Тобто аутентифікаційні дані - це результат шифрування будь-якого початкового значення за допомогою секретного ключа користувача.

Дана інформація є і у клієнта, і у сервера. Вона не передається по мережі і не доступна для перехоплення. В якості початкового значення використовується загальновідома для обох сторін процесу аутентифікації інформація, а ключ шифрування створюється для кожного користувача при його ініціалізації в системі. (Рис. 1)


Мал. 1. Приклад генерації одноразових паролів на стороні користувача.

Варто зазначити, що на даному етапі розвитку технологій OTP існують системи, що використовують як симетричну, так і асиметричну криптографію. У першому випадку секретним ключем повинні володіти обидві сторони. У другому секретний ключ потрібен тільки користувачеві, а у сервера аутентифікації він відкритий.

Сьогодні розроблено і використовується на практиці кілька методів реалізації систем аутентифікації по одноразових паролів.

Принцип його роботи такий: на початку процедури аутентифікації користувач відправляє на сервер свій логін. У відповідь на це останній генерує якусь випадкову рядок і посилає її назад. Користувач за допомогою свого ключа зашифровує ці дані і відправляє їх назад. Сервер ж у цей час "знаходить" у своїй пам'яті секретний ключ даного користувача і кодує з його допомогою вихідну рядок. Далі проводиться порівняння обох результатів шифрування. При їх повному збігу вважається, що аутентифікація пройшла успішно. Цей метод реалізації технології одноразових паролів, на відміну від всіх інших, називається асинхронним, оскільки процес аутентифікації не залежить від історії роботи користувача з сервером і інших чинників.

Метод "тільки відповідь"

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

Метод "синхронізація за часом"

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

Метод "синхронізація по події"

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

У деяких системах реалізуються так звані змішані методи, де в якості початкового значення використовується два або навіть більше типів інформації. Наприклад, існують системи, які враховують як лічильники аутентифікації, так і показання вбудованих таймерів. Такий підхід дозволяє уникнути безлічі недоліків окремих методів.

Уразливості технологій ОТР

Технологія одноразових паролів вважається досить надійною. Однак заради об'єктивності зазначимо, що і у неї є свої недоліки, до яких схильні всі системи, що реалізують принцип OTP в чистому вигляді. Подібні уразливості можна розділити на дві групи. До першої відносяться потенційно небезпечні "дірки", властиві всім методам реалізації. Найбільш серйозною з них є можливість підміни сервера аутентифікації. При цьому користувач буде відправляти свої дані прямо зловмисникові. Ну а він може тут же використовувати їх для доступу до цього сервера. У разі застосування методу "Запит-відповідь" алгоритм атаки трохи ускладнюється (комп'ютер хакера повинен зіграти роль "посередника", пропускаючи через себе процес обміну інформацією між сервером і клієнтом). Втім, варто зазначити, що на практиці здійснити таку атаку зовсім непросто.

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

Зрозуміло, що для такої атаки зловмисник повинен мати можливість "прослуховування" трафіку, а також швидкого блокування комп'ютера клієнта, а реально здійснити це - завдання не з легких. Найпростіше виконати ці умови тоді, коли атака замислюється наперед, причому для підключення до віддаленої системи "жертва" буде використовувати комп'ютер з чужої локальної мережі. В цьому випадку хакер може заздалегідь "попрацювати" над одним з ПК, отримавши можливість керувати ним з іншої машини. Захиститися від такої атаки можна тільки шляхом використання "довірених" робочих машин (наприклад, власний ноутбук або КПК) і "незалежних" захищених, наприклад, за допомогою SSL, каналів виходу в Інтернет.

Надійність будь-якої системи безпеки в значній мірі залежить від якості її реалізації. Тобто у практичних рішень є свої недоліки, які можуть бути використані зловмисниками в своїх цілях. Причому ці "дірки" часто не мають прямого відношення до реалізованої технології. Повною мірою це правило може бути застосовано і до систем аутентифікації на базі одноразових паролів. Як вже говорилося вище, в їх основі лежить використання криптографічних алгоритмів. Це накладає певні зобов'язання на розробників таких продуктів. Адже неякісне виконання будь-якого алгоритму або, наприклад, генератора випадкових чисел, може поставити під загрозу безпеку інформації.

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

Приклад реалізації ОТР

Варто відзначити, що компанія Aladdin бере активну участь в просуванні згаданої вище ініціативи OATH, а розглянутий тут ключ був обраний в якості основного компонента рішення VeriSign Unified Authentication. Правда, називається він у цій системі трохи інакше: eToken VeriSign. Головне призначення цього рішення - підвищити довіру до угод, укладених через Інтернет, а в основі його лежить сувора двофакторна аутентифікація на основі апаратного ключа. Такі OEM-постачання продукту eToken NG-OTP підтверджують його якість і відповідність всім специфікаціям OATH.

Концепція одноразових паролів в системі аутентифікації

Пристрої серії eToken досить широко поширені вУкаіни. Такі провідні виробники як Microsoft, Cisco, Oracle, Novell та ін. Забезпечують їх підтримку в своїх продуктах (в "послужному списку" eToken більше 200 реалізацій з додатками для інформаційної безпеки).

У ключі eToken NG-OTP крім модулів, що реалізують описані вище можливості, є апаратний генератор одноразових паролів (див. Рис.4). Працює він за методом "синхронізація по події". Це найбільш надійна з синхронних варіантів реалізація технології OTP (з мінімальним ризиком рассинхронизации). Алгоритм генерації одноразових паролів, реалізований в ключі eToken NG-OTP, розроблений в рамках ініціативи OATH (він заснований на технології HMAC). Суть його полягає в обчисленні значення HMAC-SHA-1, а потім виконанні операції усічення (виділення) з отриманого 160-бітового значення 6-ти цифр. Саме вони і є тим самим одноразовим паролем.

Найбільш надійний змішаний режим роботи даного ключа. Для його використання пристрій має бути підключений до ПК. У цьому випадку мова йде вже про двофакторної аутентифікації, яка може бути реалізована кількома способами. В одному випадку для отримання доступу до мережі необхідно застосовувати власний пароль користувача для входу в неї, а також значення ОТР. Інший варіант - вимагає використання одноразового пароля і значення OTP PIN (відображається на екрані ключа).

Природно, ключ eToken NG-OTP може працювати в якості стандартного USB-токена - для аутентифікації користувачів за допомогою цифрових сертифікатів і технології PKI, для зберігання персональних ключів і т.п. Таким чином, розглянутий продукт доцільно використовувати для реалізації широкого спектру проектів, пов'язаних з необхідністю безпечного віддаленого доступу і двофакторної аутентифікації. Застосування таких ключів-гібридів в масштабі підприємства дозволить отримати можливість використовувати свої ключі як в офісі, так і поза його межами. Цей підхід зменшує витрати на створення системи інформаційної безпеки, не знижуючи її надійності.

Отже, концепція одноразових паролів укупі з сучасними криптографічними методами можуть використовуватися для реалізації надійних систем віддаленої аутентифікації. При цьому дана технологія має ряд серйозних переваг. По-перше, це, надійність. Сьогодні розроблено не так вже й багато способів дійсно "сильної" аутентифікації користувачів з передачею інформації по відкритих каналах зв'язку. Тим часом таке завдання з'являється все частіше і частіше. І одноразові паролі - один з найперспективніших її рішень.

Друга перевага одноразових паролів - це використання "стандартних" криптографічних алгоритмів. Так що для реалізації системи аутентифікації з їх застосуванням прекрасно підходять вже існуючі розробки. Власне кажучи, це наочно доводить той же eToken NG-OTP, сумісний з вітчизняними криптопровайдерами. Ну а це тягне за собою можливість використання таких токенов в уже існуючих системах корпоративної безпеки без їх перебудови. Таким чином, впровадження технології одноразових паролів можна провести з відносно невеликими витратами.

Ще один плюс одноразових паролів полягає в низькій залежності захисту від людського фактора. Правда, це стосується не всіх її реалізацій. Як ми вже говорили, надійність багатьох програм для створення одноразових паролів залежить від якості використовуваного користувачем PIN-коду. В апаратних генераторах на базі USB-токенів використовується повноцінна двофакторна аутентифікація. І нарешті, четверте перевага концепції OTP - зручність її для користувачів. Отримувати доступ до необхідної інформації за допомогою одноразових паролів не складніше ніж застосовувати для цієї мети статичні ключові слова. Особливо приємно те, що деякі апаратні реалізації розглянутої технології можна використовувати на будь-яких пристроях незалежно від існуючих на ньому портів і встановленого ПО.