0

Extension chiffrage RSA pour MySQL & MariaDB

Dans le cadre d’un de nos développement, nous avions besoins de pouvoir gérer un chiffrement d’une base de données, directement en base de données, sans que le logiciel client n’ait à échanger de données en claire ou cryptée.

Nous avons donc développé une extensions pour MySQL et MariaDB permettant :

  • De créer une paire de clef asymétrique, directement en base de données
  • Chiffrer des données (issues d’une autre colonne, ou donnée directement) par clef privée ou publique, retourner le résultat ou le stocker dans une colonne
  • Déchiffrer des données (issues d’une autre colonne, ou donnée directement) par clef privée ou publique, retourner le résultat ou le stocker dans une colonne

Cela permet de chiffrer l’intégralité d’une base de données, par exemple avec une clef par utilisateurs, sans jamais n’avoir à divulguer la clef privée et la clef publique. L’utilisation est très souple par des appels de fonction dans le corps d’une requête, et sans connaissances particulière dans le chiffrage asymétrique.

Les fonctions fournies sont les suivantes :

RSA_CREATEKEY_PRIVATE() : créé la clef privée en base64

RSA_CREATEKEY_PUBLIC(STRING PrivateKey) : Création de la clef publique à l’aide de la clef privée donnée en argument (directement en argument, ou depuis le contenu d’une rubrique de la base de données).

RSA_PRIVATE_DECRYPT(STRING some_texte, STRING pemPrivateKey)

RSA_PUBLIC_ENCRYPT (STRING some_texte, STRING pemPublicKey)

RSA_PUBLIC_DECRYPT(STRING some_texte, STRING pemPublicKey)

RSA_PRIVATE_ENCRYPT(STRING some_texte, STRING pemPrivateKey)

L’installation est aisée, après la copie du fichier dans le répertoire des extensions de votre moteur de base de données MySQL ou MariaDB, vous l’activez simplement en executant le script sql fourni :

DROP FUNCTION IF EXISTS rsa_private_encrypt;
DROP FUNCTION IF EXISTS rsa_public_decrypt;

DROP FUNCTION IF EXISTS rsa_public_encrypt;
DROP FUNCTION IF EXISTS rsa_private_decrypt;

DROP FUNCTION IF EXISTS rsa_createkey_private;
DROP FUNCTION IF EXISTS rsa_createkey_public;


CREATE FUNCTION rsa_private_encrypt RETURNS string SONAME 'cta_rsa_udf.so';
CREATE FUNCTION rsa_public_decrypt RETURNS string SONAME 'cta_rsa_udf.so';

CREATE FUNCTION rsa_public_encrypt RETURNS string SONAME 'cta_rsa_udf.so';
CREATE FUNCTION rsa_private_decrypt RETURNS string SONAME 'cta_rsa_udf.so';

CREATE FUNCTION rsa_createkey_private RETURNS string SONAME 'cta_rsa_udf.so';
CREATE FUNCTION rsa_createkey_public RETURNS string SONAME 'cta_rsa_udf.so';

Et voilà, vos fonctions sont prêtes à utiliser, vous êtes prêt à crypter intégralement votre base de données, réaliser des signatures numériques, directement en interne dans les requêtes SQL.

Nous ne disposons pas de pack téléchargeables immédiatement, contactez nous avec la configuration de vos serveurs (Linux, Windows, Unix, 32/64bits, MySQL ou MariaDB, etc), et nous vous compilerons un module sur-mesure.

Une fois la licence achetée, vous pouvez déployer la librairie sur autant de poste/serveurs que vous le souhaitez, et pouvez obtenir sur demande, la librairie compilée pour plusieurs plateforme.

Le tarif unique demandé est de 129 Euros TTC (TVA non applicable, art. 293b du CGI).

En vous remerçiant pour votre intérêt,

L’équipe des développeurs de CALEPSUM Technologies

ludovic

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *