2009-10-29 6 views
1

Selon mysql documentCompile MySQL pour AES 256bits

« L'encodage avec une longueur de clé de 128 bits est utilisé, mais vous pouvez l'étendre jusqu'à 256 bits en modifiant la source. »

Mais ils ne semblaient pas indiquer où changer. Quelqu'un a-t-il vécu cette situation? quel fichier source devrait changer?

Remarque: J'utilise these steps to compile.

+1

Le plus gros problème avec la fonction ce n'est pas la longueur de la clé mais le mode. Il utilise la BCE donc il n'y a pas de chaînage de bloc et pas de vecteur initial. Ce n'est pas approprié pour crypter des données sensibles. Par exemple, le même mot de passe générera toujours le même texte chiffré, il est donc très facile de deviner les mots de passe courants. –

+0

Vous avez raison. C'est un état très primaire pour sécuriser les données d'application. CBC est la prochaine étape, qui crypter/décrypter à la couche d'accès aux données. – Jirapong

Répondre

3

J'ai trouvé peu d'aide de MySQL mailing list

fichier

include/my_aes.h

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

que j'utilise openSUSE 11.1 besoin d'avoir des outils suivants

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

puis juste compiler par cette instruction - here

Crédit à LenZ et tripanel.net

+0

J'utilise mysql dans linux, pouvez-vous expliquer clairement? – Karthik

0

Il va probablement être une solution plus maintenable pour effectuer le chiffrement dans l'application cliente. De plus, vous aurez aussi l'avantage de crypter les données sur le réseau et de ne pas envoyer la clé sur le réseau (bien sûr, vous pouvez utiliser SSL pour vous connecter à mysql afin de l'atténuer de toute façon).

Si cela ne vous semble pas être une bonne approche, veuillez poster vos exigences.

Vous ne voulez probablement pas compiler vos propres binaires mysql; il y a des choses plus utiles pour les développeurs que de construire leurs propres binaires mysql. Les versions de MySQL/Sun sont largement testées et ne contiendront pas de régressions de performance (nous espérons).


Les fonctions mysql AES_ENCRYPT() sont également sécuriser potentiellement non pas parce qu'ils ne sont pas documentés

  • Comment ils Hacher le mot de passe dans la clé
  • Quel est le mode de chiffrement utilisent

Si elles sont effectuées de manière vulnérable, le chiffrement pourrait être très faible. Cela dépend de votre cas d'utilisation, que cela soit important ou non.

+0

L'exigence est d'utiliser le cryptage AES256 dans la base de données avec la fonction AES_ENCRYPT. Le document de mysql n'est pas très clair mais ils sont assez bien documentés dans le code source. Je me suis débrouillé pour résoudre le problème. Merci pour votre suggestion. – Jirapong