Протокол Station-to-Station является двусторонним криптографическим протоколом формирования общего ключа и взаимной аутентификации сторон.
Кратко, суть протокола можно описать так:
-
Сначала производится формирование общего ключа по алгоритму Диффи-Хеллмана
-
Затем стороны обмениваются сообщениями, зашифрованными с помощью этого ключа, в которых содержатся 2 открытых ключа Диффи-Хеллмана (свой и полученный от партнера), подписанные с помощью секретного ключа отправляющей стороны.
То есть, в протоколе используются две криптосистемы: одна — симметричная, для шифрования передаваемых сообщений, и одна - ассиметричная, для подписи и аутентификации сторон.
Можно выделить две формы этого протокола:
-
Базовая версия — параметры DH и публичный ключ партнера переданы обоим сторонам заранее;
-
Полная версия — стороны обмениваются сертификатами, подписанными доверенной третьей стороной, в которых содержатся публичные ключи и параметры DH.
На основе библиотеки OpenSSL реализована базовая версия протокола с использованием AES и RSA. Ключи и параметры DH должны храниться в формате PEM.
- Authentication and Authenticated Key Exchanges (1992) Whitfield Diffie, Paul C. Van Oorschot, Michael J. Wiener, Designs, Codes and Cryptography, Volume 2, 1992 http://www.scs.carleton.ca/~paulv/papers/sts-final.pdf