> Tech > Interfaces natives et cryptage DB2

Interfaces natives et cryptage DB2

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

Les applications qui utilisent l’interface native (non SQL) peuvent aussi bénéficier des nouveautés de DB2. Il faudra bien sûr utiliser un peu de SQL, mais sans aller jusqu’à réécrire les applications pour utiliser SQL. Les utilisateurs natifs doivent bien comprendre que la table sous-jacente qui contiendra les données cryptées n’a

pas à être créée avec SQL. Il suffit que la colonne cryptée satisfasse aux exigences évoquées précédemment.
Les déclencheurs de base de données sont un excellent moyen pour offrir des services de cryptage sans changer toutes vos applications pour l’utilisation de SQL. Vous pouvez définir les triggers Before Insert et Update pour intercepter les requêtes d’écriture adressées à votre base de données, puis crypter les données d’éventuelles colonnes sensibles, avant de les confier au moteur DB2. Ce mode d’utilisation du déclencheur signifie que le seul programme qui devra utiliser SQL pour invoquer la fonction ENCRYPT_ RC2 sera le programme déclencheur. On peut utiliser indifféremment des déclencheurs SQL et externes.
L’exemple suivant utilise les déclencheurs SQL pour crypter des numéros de sécurité sociale insérés dans la table employee :
CREATE TRIGGER protect_ssnumber
BEFORE INSERT ON emp
REFERENCING NEW ROW AS n
FOR EACH ROW
BEGIN
DECLARE encrypt_key VARCHAR(127);
SET encrypt_key = get_passwordUDF( ‘EMP’);
SET n.socialSecurity = ENCRYPT_RC2( n.socialSecurity, encrypt_key);
END
Toute écriture native (ou SQL Insert) dans la table employee aura pour effet d’invoquer ce déclencheur Before Insert. Ensuite, le déclencheur SQL protect_id appelle d’abord la fonction définie par l’utilisateur get_password- UDF() pour obtenir le mot de passe de cryptage pour la table employee. Ce mot de passe est ensuite utilisé pour crypter le numéro de sécurité sociale dans l’image d’enregistrement avant que DB2 UDB l’utilise pour générer une nouvelle ligne dans la table employee.
Les vues SQL sont probablement la méthode la plus courante pour permettre aux programmes natifs de lire la version décryptée de données sensibles. Voici un exemple de vue que l’on pourrait utiliser de cette manière :
CREATE VIEW my_logins( System, login, passwd) AS
SELECT system,login,char( decrypt_char(passwd),6)
FROM regusers WHERE userid=USER

La vue SQL my_logins peut ensuite être ouverte comme un fichier logique par le programme natif, et la fonction decrypt column contenue dans la vue SQL permettra de renvoyer au programme natif la version non cryptée des données de la colonne. Le décryptage n’aura lieu que si le programme natif a défini la clé de cryptage appropriée – soit directement en exécutant l’instruction Set Encryption Password SQL, soit indirectement en appelant un autre programme. Comme les colonnes cryptées sont plus longues, les programmes natifs devront soit décrypter les données, soit être modifiés pour traiter la plus grande longueur de colonne quand les données cryptées seront renvoyées.

Téléchargez cette ressource

Guide de technologie 5G pour l’entreprise

Guide de technologie 5G pour l’entreprise

Pourquoi la 5G est-elle faite pour votre entreprise ? La 5G peut améliorer la vitesse, la fiabilité et la capacité de votre réseau, permettant ainsi une meilleure collaboration, une productivité accrue et une prise de décision plus rapide. Notre livre blanc " The Big Book of Enterprise 5G" vous fournit les informations stratégiques dont vous avez besoin pour prendre des décisions éclairées et préparer votre entreprise à prospérer dans l'ère de la 5G. Cradlepoint, part of Ericsson est le leader mondial des solutions de réseau sans fil 4G LTE et 5G fournies via le cloud. Connectez vos employés, lieux et objets avec la 4G LTE et la 5G pour un WAN sans fil d'entreprise.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010