Лекция: Атака на протокол передачи открытого ключа по открытому каналу от В к А с целью последующей передачи от A к В ключа k симметричной системы.

Для краткости введем следующие обозначения:

Ek – функция шифрования на ключе k;

Dk – функция дешифрования на ключе k;

|| – знак конкатенации (соединения) слов, символов;

id(B) – идентификатор абонента B;

А®В: y – А передает В y.

Рассмотрим протокол передачи открытого ключа по открытому каналу от В к А с целью последующей передачи от A к В ключа k симметричной системы.

Передача открытого ключа стороной B:

B®A:, y=D (M||h(M)),

Проверка стороной А:

А: (m||h)=E (y), удостоверение, что h=h(m).

Здесь М это любое сообщение. – открытый ключ стороны В, – закрытый ключ стороны В. Сторона A убеждается, что получила открытую часть ключа асимметричной системы, секретная часть которого известна стороне B. Заметим, однако, что любой может выдать себя за В. Этот недостаток устраняется посредством системы сертификации открытых ключей: вместо передаётся <сертификат >, при этом А через центр сертификации может проверить, что имеет дело с ключом стороны В.

Передача сертификата открытого ключа стороной B:

B®A: <сертификат >, y=D (M||h(M)).

Проверка стороной А:

А: (m||h)=E (y'), удостоверение, что h=h(m),

удостоверение подлинности сообщения <сертификат >.

Теперь А может передавать для В сообщение x на ключе :

A®B: y=D (x).

Например, что и предполагается ниже, этим сообщением может быть ключ k симметричной криптосистемы. Но С может вносить изменения в у. (С подключается между
А и В). В частности, если секрет х является ключом k симметричной системы, то С может навязать В свой ключ k' и получать от В зашифрованную на этом ключе информацию (из сертификата С знает ключ зашифрования, причём этот ключ сертифицированный!).

Рассмотренный только что протокол по воле постороннего участника C изменится следующим образом. Передача сертификата открытого ключа от B к C (B полагает, что передает его стороне A)

B®C: <сертификат >, y=D (M||h(M)),

Передача сертификата открытого ключа от C к A (A полагает, что получает его от стороны B)

C®A: <сертификат >, y=D (M||h(M))',

Проверка стороной А:

А: (m||h)=E (y'), удостоверение, что h=h(m), удостоверение подлинности сообщения <сертификат >.

Передача стороной A стороне C ключа k симметричной системы (A полагает, что передает его стороне B на ее ключе зашифрования)

A®С: y=E (k).

Передача стороной C стороне B ложного ключа k* симметричной сиcтемы (сторона B полагает, что это истинный ключ k от стороны A):

С®В: z= E (k*), (k*¹k).

Передача стороной B к C секретного сообщения M на ложном ключе k* (В полагает, что передает его стороне A на истинном ключе k)

B®C: y=Ek*(M),

Расшифрование и чтение сообщения стороной C:

C: m=Dk* (y').

Пересылка стороной C полученного от B шифртекста стороне A (последняя полагает, что получила его от B):

С®А: z=y',

Расшифрование стороной A с использованием истинного ключа k симметричной криптоситемы шифртекста z’, зашифрованного с использованием ложного ключа k’:

A: Dk(z').

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

 

Литература

 

1. Simmons G. Proof of Soundness (Integrity) of Cryptographic Protocols, J. Cryptology, 1994, v. 7, с. 69-77.

2. Schneier B. Applied Cryptography Second Edition: protocols, algorithms and source code in C. John Wiley & Sons Inc., 1996.

3. Menzes A., van Oorschot P., Vanstone S. Hadbook of Applied Cryptography, CRC Press, 1997.

4. Грушо А.А., Применко Э.А., Тимонина Е.Е. Анализ и синтез криптоалгоритмов. Курс лекций, Москва, 2000.


Глава 49.

еще рефераты
Еще работы по информатике