Связь может быть уязвима для атак "человек посередине"
Дефект происходит, когда вы правильно не проверяете, что сертификат X.509 раньше аутентифицировал связь TLS/SSL при обработке связи. Чтобы правильно проверять сертификат, необходимо вызвать эти две функции вместе, чтобы получить и проверить сертификат.
SSL_get_peer_certificate
: Получает сертификат от клиента или сервера, который вы пытаетесь аутентифицировать. Функция возвращает NULL, если никакой сертификат не присутствует. Даже если функция возвращает сертификат, сертификат должен все еще проверяться.
SSL_get_verify_result
: Проверяет сертификат, представленный клиентом или сервером. Если вы не получаете сертификат прежде, чем вызвать эту функцию, нет никаких ошибок верификации, и функция возвращается успешно.
Средство проверки повышает дефект на функциях SSL_read
или SSL_write
когда вы пытаетесь читать из или записать в связь TLS/SSL.
Средство проверки не повышает дефекта если:
Вы объявляете контекст SSL вне осциллографа функции, обрабатывающей связь.
Вы используете анонимные комплекты шифра.
Если вы правильно не проверяете валидность сертификата о коллеге, вы пытаетесь аутентифицировать, ваша связь уязвима для атак "человек посередине".
Чтобы правильно проверять валидность сертификата, вызовите оба SSL_get_peer_certificate
и SSL_get_verify_result
.
Группа: криптография |
Язык: C | C++ |
Значение по умолчанию: 'off' |
Синтаксис командной строки:
CRYPTO_SSL_CERT_NOT_CHECKED |
Удар: носитель |
ID CWE: 287 |
Find defects (-checkers)
| Missing X.509 certificate
| Missing certification authority list