Система Orphus

Построение, плюсы и минусы, криптографическая стойкость на примере протокола DASS, Деннинга-Сакко или Ву-Лама

DASS

1 этап Алиса посылает Тренту сообщение состоящее из имени Боба B

Alice\to\{B\}\to Trent

2 этап Трент посылает Алисе имя Боба B и открытый ключ Боба PK_B, подписывая своим закрытым ключом SK_T.

Trent\to\{S_{SK_T}(B,PK_B)\}\to Alice

3 этап

  1. Алиса проверяет подпись Трента SK_T с помощью открытого ключа Трента PK_T, убеждаясь, что она действительно получила открытый ключ Боба PK_B.
  2. Генерирует случайный сеансовый ключ, K, и случайную пару ключей открытый/закрытый, PK_P и SK_P.
  3. Шифрует метку времени T_A ключом K,
  4. Подписывает своим закрытым ключом SK_A время жизни L, свое имя A и открытый ключ PK_p.
  5. Зашифровывает K открытым ключом Боба PK_B и подписывает его с помощью закрытого ключа SK_P.
  6. Все это она отправляет Бобу
Alice\to\{E_K(T_A),S_{SK_A}(L,A,PK_P), S_{SK_P}(E_{SK_B}(K))\}\to Bob

4 этап Боб посылает Тренту сообщение, состоящее из имени Алиcы

Bob\to\{A\}\to Trent

5 этап Трент посылает Бобу сообщение из открытого ключ Алисы PK_A и имени Алисы A, подписанное закрытым ключом Трента SK_T.

Trent\to\{S_{SK_T}(A,PK_A)\}\to Bob

6 этап

  1. Боб проверяет подпись Трента SK_T с помощью открытого ключа Трента PK_T, убеждаясь, что он действительно получил открытый ключ Алисы PK_A и имя Алисы A.
  2. Проверяет подпись Алисы PK_A на сообщение S_{SK_A}(L,A,PK_P) при помощи PK_A и извлекает PK_P.
  3. Боб проверяет подпись на сообщении S_{SK_P}(E_{PK_B}(K)) и использует свой закрытый ключ SK_B, расшифровывает E_{PK_B}(K) и извлекает K.
  4. Расшифровывает E_{K}(T_A) с помощью K, проверяя, что это сообщение - текущее.

7 этап Если требуется свободная проверка подлинности, Боб шифрует новую метку времени ключом K и посылает её Алисе.

Bob\to\{E_K(T_B)\}\to Alice

8 этап Алиса расшифровывает T_B ключом K, проверяя, что это сообщение - текущее.

Denning-Sacco

В этом протоколе также используется криптография с открытым ключом. Трент ведет базу данных, хранящую открытые ключи всех пользователей.

1 этап Алиса посылает Тренту сообщение, состоящее из её имени и имени Боба.

Alice\to\{A,B\}\to Trent

2 этап Трент посылает Алисе открытый ключ Алисы PK_A и имя A Алисы, открытый ключ Боба PK_B и имя B Боба , подписанный закрытым ключом Трента SK_T.

Trent\to\{S_{SK_T}(B,PK_B),S_{SK_T}(A,PK_A)\}

3 этап Алиса генерирует и посылает Бобу случайный сеансовый ключ K и метку времени T_A, подписав их своим закрытым ключом SK_A и зашифровав открытым ключом Боба PK_B, вместе с обоими подписанными ключами.

Alice\to\{E_{PK_B}(S_{SK_A}(K,T_A)),S_{SK_T}(B,PK_B),S_{SK_T}(A,PK_A)\}\to Bob

4 этап Боб расшифровывает сообщение Алисы с помощью своего закрытого ключа SK_B и проверяет подпись Алисы с помощью её открытого ключа PK_A. Он также убеждается, что метка времени T правильна.

С этого момента Алиса и Боб получили K и могут провести безопасный сеанс связи.

Woo-Lan

В этом протоколе также используется криптография с открытыми ключами

1 этап Алиса посылает Тренту сообщение, состоящее из её имени A и имени Боба B.

Alice\to\{A,B\}\to Trent

2 этап Трент посылает Алисе открытый ключ Боба PK_B, подписанный закрытым ключом Трента, SK_T.

Trent\to\{S_{SK_T}(PK_B)\}\to Alice

3 этап Алиса проверяет подпись Трента. Затем она посылает Бобу свое имя и случайное число, шифрованное открытым ключом Боба

Alice\to\{A,E_{PK_B}(R_A)\}\to Bob

4 этап Боб посылает Тренту свое имя B, имя Алисы A и случайное число Алисы R_A, шифрованное открытым ключом Трента PK_T

Bob\to\{A,B,E_{PK_T}(R_A))

5 этапТрент посылает Бобу открытый ключ Алисы PK_A, подписанный закрытым ключом Трента SK_T. Он также посылает Бобу случайное число Алисы R_A, случайный сеансовый ключ K, имена Алисы A и Боба B, подписав все это закрытым ключом Трента SK_T и зашифровав открытым ключом Боба PK_B.

Trent\to\{S_{SK_T}(PK_A),E_{PK_B}(S_{SK_T}(R_A,K,A,B))\}\to Bob

6 этап Боб проверяет подписи Трента. Затем он посылает Алисе вторую часть сообщения Трента, полученного на 5ом этапе, и новое случайное число R_B, зашифровав все открытым ключом Алисы PK_A.

Bob\to\{E_{PK_A}(S_{SK_T}(R_A,K,A,B),R_B)\}\to Alice

7 этап Алиса проверяет подпись Трента и свое случайное число. Затем она посылает Бобу случайное число Боба R_B, шифрованное сеансовым ключом.

Alice\to\{E_{K}(R_B)\}\to Bob

8 этап Боб расшифровывает свое случайное число и проверяет, что оно не изменилось.


Шнайер стр 59


Система Orphus

Комментарии