Хешированные данные уязвимы для табличного нападения радуги
Отсутствие соли для хеширования операции происходит, когда вы используете контекст обзора в этих функциях, но вы хешируете данные в контекст только однажды, или вы используете пустую соль во всех последующих операциях хеширования. Соль является случайными данными, которые вы используете, чтобы улучшить безопасность операции хеширования. Операция хеширования берет соль в качестве входа, чтобы произвести более безопасное хешированное значение.
EVP_DigestFinal
EVP_DigestSignUpdate
EVP_DigestVerifyUpdate
SHA*_Final семейство функций
Отсутствие соли для хеширования операции не повышает дефекта, если никакая информация не доступна о контексте. Например, если контекст передается в качестве аргумента функции, которая вызывает операцию хеширования или если контекст объявляется вне осциллографа функции. Например, никакой дефект не повышен в этом фрагменте кода.
EVP_MD_CTX ctx_global;
void foo(EVP_MD_CTX* ctx) {
//ctx passed as argument of func()
EVP_DigestFinal(ctx, out_buf, &out_len); //no defect
}
void bar() {
// ctx_global declared outside of bar()
EVP_DigestFinal(&ctx_glob, out_buf, &out_len); //no defect
}
|
Хеширование тех же данных без соли приводит к тому же хешированному значению. Например, если вы хешируете пароли пользователя, и у двух пользователей есть те же пароли, хешированные пароли идентичны. Хеширование затем уязвимо для предварительно вычисленных нападений радуги.
Обеспечьте соль, когда вы хешируете данные.
| Группа: криптография |
| Язык: C | C++ |
| Значение по умолчанию: 'off' |
Синтаксис командной строки:
CRYPTO_MD_NO_SALT |
| Удар: носитель |
| ID CWE: 759 |