web-dev-qa-db-ja.com

TLSリプレイ攻撃-serverHello nonceの要件

ご存じのとおり、SSL/TLSプロトコルでは、クライアントとサーバーの両方が(クリアテキストで)乱数またはナンスを交換する必要があります。これはおそらく、リプレイ攻撃を防ぐために使用されます。

サーバー側のnonce要件が何であるかは私には明確ではありません。単にniqueである必要がありますか?または、それはnpredictable?でもある必要がありますサーバー側で生成されたnonceを攻撃者が予測した場合、どのような影響がありますか?

サーバー側のナンス要件の理解を深めるのに役立つ、リプレイ攻撃に関する深刻な作業のあらゆるソースを歓迎します。

ありがとう。

ルイス

11
Louis

SSL/TLS内では、ナンスは対称鍵の生成、およびハンドシェイク時の署名とチェックの一部として使用されます。これらすべての使用法について、ナンスは単に(他のデータと)連結され、ハッシュされます。ハッシュ関数が「ランダムオラクル」(神秘的な完全ハッシュ関数)のように動作すると仮定すると、一意のナンスで十分です。

ただし、TLS 1.1まで(およびそれを含む)のSSL/TLSは、ハッシュ関数としてMD5およびSHA-1を使用しますが、その弱点が実証されています。それらはランダムな神託ではありません。私はこれらの弱点をSSL/TLS自体への攻撃に変えた結果については知りません。ただし、後悔するよりは安全である方がいいです。予測できないナンスを使用してください。これは害を及ぼさず、クライアントとサーバーの両方がaleaの暗号化された安全なソースにすでにアクセスできる必要があります。したがって、予測不可能なノンスはそれほど重い要件ではありません。

11
Thomas Pornin