このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
SSL/TLS プロトコルがセキュリティで保護されていません
SSL/TLS 接続の処理に使用されるコンテキストが脆弱なプロトコルに関連付けられている
説明
この欠陥は、SSL/TLS 接続を処理する目的で SSL_CTX
または SSL
コンテキスト オブジェクトを使用する前に、セキュリティで保護されていないプロトコルをそのオブジェクトで無効にしなかった場合に発生します。
たとえば、プロトコル SSL2.0 および TLS1.0 は無効にしているものの、同じく脆弱と見なされているプロトコル SSL3.0 は無効にするのを忘れているとします。
/* Create and configure context */ ctx = SSL_CTX_new(SSLv23_method()); SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv2|SSL_OP_NO_TLSv1); /* Use context to handle connection */ ssl = SSL_new(ctx); SSL_set_fd(ssl, NULL); ret = SSL_connect(ssl);
リスク
暗号化コミュニティでは、プロトコル SSL2.0、SSL3.0、および TLS1.0 は脆弱と見なされています。これらのいずれかのプロトコルを使用すると、接続がクロスプロトコル攻撃にさらされる可能性があります。攻撃者は、RSA 秘密鍵がわからなくても RSA 暗号文を復号化できます。
修正方法
コンテキスト オブジェクトを使用して接続を処理する前に、セキュリティ保護されていないプロトコルをそのオブジェクトで無効にします。
/* Create and configure context */ ctx = SSL_CTX_new(SSLv23_method()); SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv2|SSL_OP_NO_SSLv3|SSL_OP_NO_TLSv1);
例
結果情報
グループ: 暗号化 |
言語: C | C++ |
既定値: オフ |
コマンド ライン構文: CRYPTO_SSL_WEAK_PROTOCOL |
影響度: Medium |
バージョン履歴
R2018a で導入