2012-01-23 3 views
7

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

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

Благодаря

+0

IPSEC определенно пересматривает сессионный ключ каждый час или около того, и я думаю, что SSL тоже может это сделать? Из [RFC5746] (http://tools.ietf.org/html/rfc5746) похоже, что его, возможно, потребуется инициировать вашим кодом, однако, несправедливо происходит автоматически. – Rup

ответ

4

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

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

Смежные вопросы