2009-10-29 3 views
1

Согласно mysql documentCompile MySQL для AES 256bits

«Кодирование с длиной ключа 128-битным используется, но вы можете расширить его до 256 бит путем изменения источника.»

Но они, похоже, не дают инструкции, где можно изменить. Кто-нибудь сталкивается с такой ситуацией? какой исходный файл должен измениться?

Примечание: Я использую these steps to compile.

+1

Самая большая проблема с функцией - это не длина ключа, а режим. Он использует ECB, поэтому нет цепочки блоков и нет начального вектора. Он не подходит для шифрования конфиденциальных данных. Например, один и тот же пароль всегда будет генерировать один и тот же шифротекст, поэтому очень легко угадать общие используемые пароли. –

+0

Вы правы. Это очень первичное состояние для защиты данных приложения. CBC - это следующий шаг, который шифрует/дешифрует на уровне доступа к данным. – Jirapong

ответ

3

я нашел небольшую помощь от MySQL mailing list

файл включает/my_aes.h

#define AES_KEY_LENGTH 128 /* must be 128 192 or 256 */ 

, как я использую OpenSUSE 11.1 необходимо иметь следующие инструменты

sudo zypper install gcc gcc-c++ ncurses-devel 

затем просто скомпилировать по этой инструкции - here

Кредит LenZ и tripanel.net

+0

Я использую mysql в linux, вы можете объяснить ясно? – Karthik

0

Возможно, это будет более удобное решение для выполнения шифрования в клиентском приложении.

Кроме того, вы также получите выгоду от того, что данные передаются по сети зашифрованными и не отправляют ключ по сети (конечно, вы можете использовать SSL для подключения к mysql для смягчения этого в любом случае).

Если это не похоже на хороший подход, пожалуйста, напишите ваши требования.

Возможно, вы не хотите скомпилировать свои собственные бинарные файлы mysql; для разработчиков есть более полезные вещи, чем создание собственных бинарных файлов mysql. MySQL/Sun тщательно протестированы и не будут содержать регрессии производительности (мы надеемся).


для MySQL AES_ENCRYPT() функции также потенциально не безопасен, потому что они не документированы

  • Как они хэш пароля в ключевой
  • Что шифра режим они используют

Если они сделаны уязвимым способом, шифрование может быть очень слабым. Это зависит от вашего случая использования, имеет ли это значение.

+0

Требование заключается в использовании шифрования AES256 в базе данных с функцией AES_ENCRYPT. Документ из mysql не очень ясен, но они хорошо документированы в исходном коде. Я сумел решить проблему. Спасибо за ваше предложение. – Jirapong