STS (протокол)

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Протокол STS или Протокол Station-To-Station (англ. Station-to-Station protocol, STS) — криптографический протокол, позволяющий двум сторонам получить общий секретный ключ, используя незащищенный от прослушивания канал связи. Полученный ключ используется для дальнейшего обмена с помощью симметричного шифрования. В его основе лежит алгоритм Диффи-Хеллмана.

Кроме защиты полученного ключа от взломщика, прослушивающего канал, в STS не используются временные метки и предоставляется свойство perfect forward secrecy. Также в протоколе проводится двухстороннее подтверждение ключа[1], что позволяет отнести протокол к классу «authenticated key agreement with key confirmation» (AKC).

Изначально STS представлен в 1987 в контексте безопасности для телефонной сети ISDN (O’Higgins et al. 1987)[2], дополнен в 1989 и окончательно представлен У.Диффи (Whitfield Diffie), П.Ван Ооршортом (Paul C. van Oorschot) и М.Вейнером (Michael J. Wiener) в 1992 году.

Описание обыкновенного алгоритма STS[править | править исходный текст]

Рассмотрим процесс обмена информацией между Алисой и Бобом. У Алисы есть сертифицированный открытый ключ Боба, а у Боба есть сертифицированный открытый ключ Алисы. Эти сертификаты подписаны некоторым заслуживающим доверия органом власти, непосредственно не участвующем в протоколе. Перед началом работы протокола должны быть сгенерированы:[3][4]

асимметричная пара подписей
необходима для аутентификации.
параметры создания ключей
модуль p по которому создается циклическая группа, и её генератор g.

Генерация секретного ключа k происходит так:

(1) Алиса → Боб : mA = gx mod p,
(2) Алиса ← Боб : mB, Ek(SigB(mB,mA)),
(3) Алиса → Боб : Ek(SigA(mA,mB)),

Здесь SigA и SigB — цифровые подписи пользователей Алисы и Боба соответственно, k = gxy mod p — искомый общий ключ. Вставка во второе и третье сообщения протокола значений цифровых подписей позволяет гарантировать[5] достоверность получения сообщения именно от того пользователя, от которого это сообщение получено. Шифрование значений подписей пользователей с помощью симметричного алгоритма E введено для того, чтобы обеспечить взаимное подтверждение правильности вычисления значения ключа, так как при неверно вычисленном ключе невозможно получить верные значения цифровых подписей.

Атака на обыкновенный STS[править | править исходный текст]

Существует возможность Атака с неизвестным сеансовым ключом (англ.) (UKS attack)[4] В данном случае Ева пытается узнать переписку.

(1) Алиса → Ева(Боб) : mA = gx mod p,
(2) Ева → Боб : mC,
(3) Ева ← Боб : mB = gy mod p, Ek(SigB(mB,mC)),
(4) Алиса ← Ева(Боб) : mC1, Ek(SigB(mB,mC)),
(5) Алиса → Ева(Боб) : Ek1(SigA(mA,mC1)),

Нарушитель Ева, находясь посередине между Алисой и Бобом, использует свой законный обмен с Бобом для убеждения Алисы в том, что она выступает от имени Боба. Сеанс с Бобом остается незавершенным, так как Ева, не зная конкретного ключа Алисы, не сможет подобрать правильный ответ для Боба. Поэтому любое сообщение Евы на третьем шаге будет отвергнуто. Данная атака не представляет реальной опасности[5],так как при этом секретный ключ k так и остается не известным для Евы. Однако в этом случае Алиса будет принимать Еву за Боба. Боб же будет думать, что сформировал общий ключ с Евой, а на самом деле — с Алисой.

Модифицированный протокол STS[править | править исходный текст]

В 2004 году К.Бойд и А.Матура предложили следующую спецификацию протокола STS:[5]

(1) Алиса → Боб : g, p, mA = gx mod p
(2) Алиса ← Боб : mB = gy mod p, SigB(mB,mA), hK0(mB,mA)
(3) Алиса → Боб : SigA(mA,mB), hK0(mA,mB)

где K0 = f(k) — ключевой параметр хеш-функции, вычисляемый как значение некоторой функции от результирующего сеансового ключа k = αxy mod p

Атака на модифицированный STS[править | править исходный текст]

Существует возможность «двусторонней атаки с неизвестным общим ключом» (англ. Bilateral unknown key-share attack, BUKS attack)[5] В данном случае Ева и Мэллори пытаются узнать переписку.

(1) Алиса → Ева : mA = gx mod p
(2) Ева → Мэллори : mA
(3) Мэллори → Боб : mA
(4) Мэллори ← Боб : mB = gy mod p, SigB(mB,mA), hK0(mB,mA)
(5) Ева ← Мэллори : mB, hK0(mB,mA)
(6) Алиса ← Ева : mB, SigС(mB,mA), hK0(mB,mA)
(7) Алиса → Ева : SigA(mA,mB), hK0(mA,mB)
(8) Ева → Мэллори : hK0(mA,mB)
(9) Мэллори → Боб : SigD(mA,mB), hK0(mA,mB)

В результате Ева и Мэллори, вступившие в сговор, вводят в заблуждение Алису и Боба, сформировавших общий ключ. При этом Алиса уверена, что она сформировала общий ключ с Евой, а Боб уверен, что он сформировал общий ключ с Мэллори.

Упрощенный STS[править | править исходный текст]

Упрощенный алгоритм используется для исключительно взаимной аутентификации без создания общего секрета. Реализация выглядит так:[6]

(1) Алиса → Боб : mA = gx mod p
(2) Алиса ← Боб : mB  = gy mod p, SigB(mB,mA)
(3) Алиса → Боб : SigA(mA,mB)

Атака на упрощенный STS[править | править исходный текст]

Прежде всего, Ева перехватит mA и заменит его mА’. Затем Ева получит mB , SigB(mB,mA) от Боба. Чтобы сделать подмену составляющей публичного ключа и остаться незамеченной надо так же изменить соответствующие подписанные значения, что ей не под силу ввиду того, что Ева не знает алгоритм генерации подписи Боба. Так же Ева не сможет подменить и подпись Алисы по аналогичной причине.[6]

STS-MAC[править | править исходный текст]

В случаях, когда невозможный выбор при установлении сессии, k = gxy может быть использован для создания имитовставки:[7]

(1) Алиса → Боб : mA = gx mod p
(2) Алиса ← Боб : mB = gy mod , SigB(mB, mA), MACK(SigB(gy, gx))
(3) Алиса → Боб : SA(gx, gy), MACK(SigA(gx, gy))

См. также[править | править исходный текст]

Примечания[править | править исходный текст]

  1. Station-to-Station Protocol. Sterling Connect:Direct Secure Plus for z/OS Overview. IBM. — «Station-to-Station (STS) protocol is a three-pass variation of the basic Diffie-Hellman protocol. It enables you to establish a shared secret key between two nodes with mutual entity authentication»  Проверено 18 ноября 2013.
  2. Introduction to Cryptography: Principles and Applications: «4.1.4 Station-to-Station Protocol»
  3. Брюс Шнаер «Прикладная криптография» Глава 22 пункт 22.2
  4. 1 2 А. В. Черемушкин «Криптографические протоколы: основные свойства и уязвимости», журнал «Прикладная дискретная математика» УДК 003.26(075.8)
  5. 1 2 3 4 А. В. Черемушкин «Криптографические протоколы: основные свойства и уязвимости», журнал «Прикладная дискретная математика» УДК 003.26(075.8)
  6. 1 2 Cryptography Theory And Practice — Douglas Stinson
  7. Blake-Wilson, S.; Menezes, A. (1999), «Unknown Key-Share Attacks on the Station-to-Station (STS) Protocol», Public Key Cryptography, Lecture Notes in Computer Science 1560, Springer, pp. 154—170

Литература[править | править исходный текст]

  • Blake-Wilson, S. & Menezes, A. (1999), "Unknown Key-Share Attacks on the Station-to-Station (STS) Protocol", «Public Key Cryptography», vol. 1560, Lecture Notes in Computer Science, Springer, сс. 154–170 
  • Diffie, W. (1988), "«The first ten years of public-key cryptography»", Proceedings of the IEEE (IEEE) . — Т. 76 (5): 560–577, DOI 10.1109/5.4442 
  • Diffie, W.; van Oorschot, P. C. & Wiener, M. J. (1992), "«Authentication and Authenticated Key Exchanges»", Designs, Codes and Cryptography (Kluwer Academic Publishers) . — Т. 2 (2): 107–125, DOI 10.1007/BF00124891 
  • Menezes, A.; van Oorschot, P. C. & Vanstone, S. (1997), «Handbook of Applied Cryptography», CRC Press, сс. 519–520 
  • O'Higgins, B.; Diffie, W.; Strawczynski, L. & do Hoog, R. (1987), "Encryption and ISDN - A Natural Fit", «1987 International Switching Symposium (ISS87)» 
  • Брюс Шнайер Прикладная криптография. — Триумф, 2002. — 610 с.
  • А.В. Черемушкин Криптографические протоколы:основные свойства и уязвимости // Прикладная дискретная математика. — Издательство научно-технической литературы, 2009. — № 2. — P. 14—16.
  • Douglas Stinson Cryptograhy: theory and practice. — CRC Press LLC, 1995. — 573 с.

Ссылки[править | править исходный текст]

  • Station-to-Station Protocol, proof // A Weakest Precondition Calculus for Analysis of Cryptographic Protocols, Jim Alves-Foss, August 1997