rus | ua | other
Home
Random lecture
|
Як перший приклад, надамо протокол односторонної автентифікації на основі паролів, так звану систему S-keys.
Date: 2015-10-07; view: 433.
Приклади протоколів автентифікації
В цій системі користувач володіє паролем та сберігає, скажимо на смарт-карті, послідовність , , , і так далі, наприклад, до , где стійка геш-функція.
При попередній реєстрації користувача системі надається .
При необхідності війти у систему, користувач пред'являє , а система перевіряє співвідношення . Якщо рівність не виконується, користувач вважається незаконним.
Якщо рівність виконується, користувач отримає доступ у систему, а система змінює значення на значення , яке щойно пред'явив користувач, тобто, наступним разом, він має пред'являти .
Очевидно, на смарт-карті достатньо зберігати пароль і номер чергового севнса автентифікації.
Розглянемо типовий протокол взаємної автентифікації в симетричній криптосистемі зі спільним секретним ключем
Таблиця 12.1 Взаємна автентифікація в симетричній криптосистемі
| Напрям
| Дані, що пе-
редаються
| Коментар
|
| Від А к В
| А, В, n1
| А, В - ідентифікатори учасників обміну,
n1 - випадкове двійкове число
|
| Від В к А
| К(A, f(n1), n2, k1)
| Повідомлення, що зашифроване на ключі К, в якому f - зворотна функція-модифікатор, скажимо f(n)=n+1, n2 - випадкове двійкове число, k1 - за необхідності, новий ключ для подальшої роботи.
На цьому кроці А перевіряє, чи зміг В зашифрувати модифіковані випадкові дані, тобто, чи є він власником ключа К.
|
| Від А к В
| К(B, f(n2))
| На цьому кроці B перевіряє, чи зміг A зашифрувати модифіковані випадкові дані, тобто, чи є він власником ключа К.
|
Покажемо тепер як здійснюється взаємна автентифікація за наявності сервера ключів S.
Кожний користувач є власником ключа для захищеного обміну даними з сервером. Сервер організовує процедуру взаємної автентифікації користувачів и , а також формування та доставку сеансового ключа для обміну даними між ними.
Позначимо через і ключи користувачів, що відомі серверу S.
Таблиця 12.2 Взаємна автентифікація за наявності сервера ключів
| Напрям
| Дані, що передаються
| Коментар
|
| От А к S
| A, К[A](n1, B, text)
(В не знає ключа К[A])
| Ідентифікатор абонента А і зашифроване на ключі К[A]повідомлення, в якому n1 - випадкове двійкове число, В - ідентифікатор абонента В, а text - додаткова (смислова) інформація, задля попередження атаки з використанням довільних двійкових даних.
Абонент А запитує сервер щодо организації обміну з В.
|
| От S к А
| К[A](f(n1), K, B, К[B](K,A))
| Зашифроване на ключі К[A]повідомлення, в якому f - зворотна функція-модифікатор, скажимо, f(n)=n+1, K - сеансовий ключ для обміну між А и В; К[B](K,A) - частина відкритого тексту повідомлення, що є результатом зашифрування даних K,A на ключі К[B].
Після розшифрування, на цьому кроці А отримує від сервера ключ K, а також криптограму для В, що є зашифрованою на ключе К[B]. Ця криптограма містить ключ K та ідентифікатор абонента А.
|
| От А к В
| К[B](K,A), K(n2)
(А не знає ключа К[В])
| А пересилає криптограму, що підготовив сервер для абонента В, а також випадкове двійкове число n2, що зашифроване на сеансовому ключі K , який запропоновано сервером як спільний ключ для А і В.
|
| От В к А
| К(f(n2), n3)
| Після розшифрування криптограми від сервера, B отримує сеансовий ключ K і число n2, яке він модифікує і пересилає А разом із випадковим числом n3, у повідомленні, яке зашифроване на ключі K .
Після розшифрування повідомлення, А може переконатися в істинності В.
|
| От А к В
| К(f(n3))
| Аналогічно, після розшифрування повідомлення, В може переконатися в істинності А.
|
Перед тим як викладати протоколи взаємної автентифікації на основі криптосистем з відкритим ключем, розглянемо дещо більш формалізований підхід для запису криптопротоколів.
Деякі позначення:
- абонент надсилає дані абоненту ;
- вибрано випадково, рівномірно та незалежно з множини ;
- шифрування на (відкритому) ключі абонента ;
- конкатенація (послідовний запис) та ;
- множина двійкових послідовностей скінченої довжини, крим послідовності, що складається з нулів;
- множина двійкових послідовностей довжини ( = );
- множина ненульових квадратичних лишків за модулем .
В таб. 12.3 надано приклад запису криптопротоколу між абонентами .
Таблиця 12.3 Протокол встановлення сеансового ключа
1.
|
|
| ,
| знатиме , якщо він володіє відповідним секретним ключем.
| 2.
|
|
|
|
| 3.
|
|
|
| ключ абонента для шифрування даних в ході поточного сеансу
|
|