サーバー証明書の共通名が確認されていません
攻撃者が有効な証明書を使用して信頼できるホストになりすます可能性がある
説明
この欠陥は、サーバー証明書で指定された共通名をサーバーのドメイン名に照らしてチェックしなかった場合に発生します。
通常は、クライアントがサーバーに接続すると、サーバーを信頼できるエンティティとして識別するデジタル証明書をそのサーバーからクライアントに送信します。この証明書には、サーバーの共通名などのサーバーに関する情報が含まれています。共通名は、証明書によって信頼できるエンティティとして識別されるサーバー ドメイン名と一致します。
チェッカーは以下の場合に欠陥を報告しません。
SSL_newを呼び出す関数に引数として SSL コンテキストを渡す。接続を処理する関数のスコープの外部で SSL コンテキストを宣言する。
リスク
悪意のある攻撃者が有効な証明書を使用して信頼できるホストになりすました結果、クライアントが信頼されていないサーバーと相互に対話する可能性があります。
修正方法
以下のいずれかの関数を使用して、プログラムによってサーバー証明書で指定された共通名に照らしてチェックされるサーバー ドメイン名を指定します。
SSL_set_tlsext_host_nameSSL_set1_hostSSL_add1_host
例
結果情報
| グループ: 暗号化 |
| 言語: C | C++ |
| 既定値: オフ |
コマンド ライン構文: CRYPTO_SSL_HOSTNAME_NOT_CHECKED |
| 影響度: Medium |
バージョン履歴
R2020a で導入