есть 2 приложения которые часто связываються по протоколу TCP. для установки связи используется трехшаговая x509 аутентификация т.е. используется RSA, приложения устанавливают сеансовый ключ, инициализируют HMAC. поскольку соединения происходят часто и не на долго то повторение процедуры аутентификации нагружает сервера. вопрос заключается в следующем: безопасна ли такая схема 1) при первом соединении проходит аутентификация 2) после разрыва соединения оба сервера не уничтожают контексты используемых алгоритмов 3) при повторном соединении используються сохраненные контексты
Как ты определишь второй раз, что оригинальный клиент пересоединился? Разве что по шифрованному каналу какой то секрет передашь.
по IP адресу определяю клиента. посылаю тестовое сообщение. учитывая что трафик шифруется симетричным алгоритом + проверяется HMAC каждого пакета, то из успешного обмена тестовыми сообщениями можно сделать вывод что клиент тот что надо! или я не прав?
может ктото выскажет еще мнения?? хочу реализовать такую схему в своей программе но боюсь что я не учел какойто момент...
дело в том что для каждого сообщения вычисляется HMAC значение которого зависит от всех предидущих сообщений + от сеансового ключа который устанавливается при процедуре аутентификации. поэтому "левый" клиент не может знать текущий HMAC и ключ из этого делается вывод что этот клиент проходил ранее процедуру аутентификации... хотя может в чемто я и не прав...