Как долго работает открытый, безопасный канал TCP? - PullRequest
6 голосов
/ 23 января 2012

У нас есть веб-сервис, который действует как шлюз между нашими клиентами и другим сервисом.Клиенты отправляют сообщения и получают случайные сообщения от сторонней службы.Клиентский сервер открывает канал для нашего веб-сервера через защищенный сокет для получения входящих сообщений (и не должен опрашивать сервер каждые несколько минут).

Мой вопрос: безопасно ли оставить этоканал открыт на неопределенное время, или мы должны периодически закрывать и повторно открывать его, чтобы получить новые учетные данные (сеансовые ключи)?Если последнее, как часто (ежечасно, ежедневно, еженедельно) будет считаться «лучшей практикой»?Я нашел много информации о безопасных коммуникациях, но ничего не ответил на этот конкретный вопрос.

Спасибо

1 Ответ

4 голосов
/ 23 января 2012

SSL / TLS (о котором я собираюсь предположить, вы говорите здесь) НЕ автоматически обновляет / пересматривает используемые ключи сеанса. В протокол встроена процедура повторного согласования, позволяющая изменять ключи сеанса в активном сеансе, но было обнаружено, что эта процедура имеет существенную уязвимость несколько лет назад, и процесс повторного согласования был изменен ( в RFC 5746 см. здесь ) для решения проблемы. Если вы хотите пересмотреть сеансовые ключи для SSL / TLS, убедитесь, что вы делаете это способом, описанным в этом RFC.

Это, однако, не отвечает на ваш первоначальный вопрос ЕСЛИ ключи сеанса должны быть изменены. Ответ ... это зависит от ваших требований безопасности. Хорошее правило, которое следует использовать, заключается в том, что любая зашифрованная связь может быть в конечном итоге дешифрована, если вы увидите достаточно зашифрованных данных (насколько это практично / выполнимо, может сильно отличаться). Таким образом, смена ключей каждый раз очень хорошая вещь. Если вы передаете небольшой объем данных по защищенному соединению и данные не настолько чувствительны, то вы можете делать это не так регулярно (действительно, ваш сеанс SSL / TLS, вероятно, будет проходить быть сломанным и восстановленным из-за тайм-аутов на одной из двух сторон в любом случае на регулярной основе ...). Если у вас очень чувствительный набор данных и вы отправляете много данных, я бы рекомендовал поворачивать клавиши каждый день или около того, чтобы уменьшить этот риск (просто сделайте это безопасным способом).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...