Обеспечение безопасности зашифрованных строк с помощью нескольких шифров
Система, над которой я работал некоторое время, требует DPA и задала вопрос о сохранности паролей данных в безопасности. С тех пор, как они придумали, как это исправить, необходимо ввести пароль для расшифровки данных для базы данных, хранящейся в базе данных, но зашифровать его с помощью проверенного пароля пользователя (который хранится в виде ключа MD5) после другого типа. хэширования.
Вопрос заключается в том, позволяет ли шифрование пароля несколько раз разными ключами (длиной не менее 20 символов с возможным расширением) значительно облегчить дешифрование без предварительного знания или информации о пароле?
2 ответа
Нет, в общем, хороший шифр должен обладать свойством, что вы не можете получить данные, даже если вы знаете открытый текст. Зашифрованные данные не должны иметь большого влияния, даже хороший шифр и достаточно большое пространство ключей.
Во-первых, MD5 больше не считается безопасным алгоритмом шифрования. См. http://www.kb.cert.org/vuls/id/836068 для получения подробной информации.
Во-вторых, ключ шифрования данных не должен храниться в самой базе данных. Он должен храниться отдельно. Таким образом, для расшифровки данных необходимо получить как минимум две вещи (файл базы данных и ключ). Если ключ хранится в самой базе данных, вероятно, не займет много времени, чтобы найти его, когда у кого-то есть файл базы данных.
Найдите отдельный способ хранения ключа. Он должен быть либо закодирован в приложении, либо сохранен в файле, который каким-то образом запутывается.