web-dev-qa-db-ja.com

1回限りの事前共有キーによる対称暗号化は安全ですか?

適切な証明書の検証など(実際にはsshセッション)を使用して、クライアントとサーバー間に安全なチャネルがあるとします。

サーバー上の独自のアプリケーションとクライアントの間に安全な接続を確立したいが、TLSや何らかの証明書の検証を実装したり、SSHトンネル経由でデータを送信したりしたくありません。

強力なランダムキーを生成してsshセッションで送信し、そのキーを対称暗号化、たとえばAESに使用するだけで十分ですか?

編集私の質問は十分に明確ではないことに気付きました。実際の質問は次のようになります:

事前共有のワンタイムキーがある場合、TLSを使用する価値はありますか? AESなどの強力な対称暗号化を使用する独自の実装で発生する可能性のある問題は何ですか?

2
deniss

基本的にはありません。

あなたはあなたのシステムを説明することまで半分も行っていません。ストリーム暗号またはブロック暗号を使用しますか?このトラフィックをどのように認証しますか?リプレイ攻撃、ビットフリッピング攻撃、タイミング攻撃などからどのように保護しますか?

システムのすべての脆弱性を修正したら、とにかくTLSに似ていることがわかると思います。あなたがたはおそらく途中でいくつかのことを逃したでしょう。すでに無料で入手できる何かの欠陥のある実装を作ることに多大な労力を費やすことになります。

最初からTLSを使用することは、ここで行うのが賢明なことのようです。

8
r3mainer