2012-01-23 13 views
7

私たちは、クライアントと別のサービスの間のゲートウェイとして機能するWebサービスを持っています。クライアントはサードパーティのサービスにメッセージを送信し、サードパーティのサービスからランダムなメッセージを受信します。クライアントのサーバーは、着信メッセージを受信するためにセキュアソケット経由でWebサーバーへのチャネルを開きます(数分ごとにサーバーをポーリングする必要はありません)。オープンで安全なTCPチャネルはどのくらい安全ですか?

私の質問は:このチャンネルを無期限に開いておくことは安全ですか、定期的に閉じてから新しいクレデンシャル(セッションキー)を取得する必要がありますか?後者の場合、(時間別、日別、週別)の頻度は「ベストプラクティス」とみなされます。セキュリティで保護された通信に関する多くの情報が見つかりましたが、この特定の質問には答えません。 (私はあなたがここで話していると仮定するつもりです)

+0

IPSECは間違いなく1時間ごとにセッションキーを再ネゴシエートします。私はSSLもそうすると思いますか? [RFC5746](http://tools.ietf.org/html/rfc5746)から、あなたのコードによって開始される必要があるように見えますが、自動的に起こるわけではありません。 – Rup

答えて

4

SSL/TLSが自動的に使用されているセッションキーの再ネゴシエーション/更新されません

感謝。セッションキーがアクティブなセッション内で変更できるようにプロトコルに組み込まれた再ネゴシエーション手順がありますが、その手順は数年前に重大な脆弱性が発見され、問題を解決するために再交渉プロセスが変更されました(in RFC 5746, see here)。 。 SSL/TLSのセッション鍵を再交渉する必要がある場合は、このRFCで説明されている方法で実行していることを確認してください。

しかし、元の質問IFにセッションキーを変更する必要はありません。答えは...それはあなたのセキュリティ要件に依存します。暗号化されたデータが十分に見える場合(実際に/実行可能であることがどれほど変わっているか)、暗号化された通信は最終的に解読できるというのが良いガイドラインです。だから、毎回あなたのキーを変えることは、とても良いことです。セキュリティで保護された接続を介して少量のデータを渡していて、そのデータがそれほど重要ではない場合、定期的にこれを行うことで逃れることができます(実際にSSL/TLSセッションはおそらくとにかく、どちらかといえば、どちらか一方の当事者のタイムアウトのために壊れて再建された)。非常に機密性の高いデータセットを持っていて、たくさんのデータを送信している場合、このリスクを軽減するためにキーを毎回回転するようにしてください(ちょうど安全な方法で行う)。

関連する問題