TLS/SSL 接続メソッドの設定が正しくありません
プログラムが接続メソッドによって設定された役割と一致しない関数を呼び出す
説明
この欠陥は、SSL コンテキスト用に指定された接続メソッドによって設定された役割と一致しない関数を呼び出した場合に発生します。
クライアント エンティティとサーバー エンティティ間の TLS/SSL 接続の処理中に呼び出す関数は、エンティティの役割によって異なります。たとえば、サーバーとクライアント間の接続はハンドシェイクで開始されます。常に、クライアントがハンドシェイクを開始します。サーバー エンティティで SSL_accept
を使用して、クライアントがハンドシェイクを開始するまで待機します。
通常は、SSL コンテキストの開始時に接続メソッドを設定します。このメソッドがエンティティの役割を指定します。
チェッカーは、SSL コンテキスト用に指定された接続メソッドと一致しない関数の使用にフラグを設定します。SSL コンテキスト用に指定された接続メソッドを確認するには、[結果の詳細] ペインで [イベント] 列を参照してください。
リスク
TLS/SSL 接続メソッドを誤って設定すると、接続の処理に使用する関数がメソッドで指定された役割と一致しなくなります。たとえば、SSL_connect
がサーバーとのハンドシェイクを開始するまで待機するのではなく、クライアント エンティティで SSL_accept
を使用して、クライアントがハンドシェイクを開始するまで待機する場合です。
修正方法
接続の処理に TLS/SSL 接続メソッドと一致する関数が使用されていることを確認してください。
例
結果情報
グループ: 暗号化 |
言語: C | C++ |
既定値: オフ |
コマンド ライン構文: CRYPTO_SSL_BAD_ROLE |
影響度: Medium |
バージョン履歴
R2020a で導入