Introduction à la sécurité sous Oracle
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
Introduction à la sécurité sous Oracle Pratique Mikoláš Panský Degré de difficulté Cet article porte essentiellement sur le niveau de sécurité des serveurs de base de données Oracle. Dans cet article nous parlerons de l'histoire d'Oracle, des produits autour des bases de données et de leur architecture, aux techniques de base de Hacking sur Oracle et aux techniques permettant de se protéger de ce genre d’attaques. L 'histoire d'Oracle Corporation commence Application Clusters). Aujourd’hui, la version en 1977, date à laquelle son activité est actuelle 10g Release 2 supporte le Grid. fondée sur les laboratoires de développe- Oracle est disponible dans différentes ment logiciel. En 1979 : SDL est renommé Re- versions. Chacune a des applications spécifiques. lation Software, Inc (RSI). Cette même année, Nous verrons ici les jeux de données d'Oracle. La l’entreprise lance Oracle v2 en tant qu'un des base de données d'Oracle a plusieurs éditions : premiers systèmes commerciaux de bases de l'édition standard (utilisation de 4 CPU maximum, données relationnelles. sans limite de mémoire et est utilisable en Cette version implémentait des fonctions Cluster), l'édition d'entreprise (EE) inclut basiques de SQL : requêtes et jointures. quelques fonctions avancées de sécurité. Il est Oracle Corporation a ce nom depuis 1983, possible d'ajouter le Database Vault, qui permet la date à laquelle a été lancée la version 3 protection des données contre les administrateurs écrite en C et supportant les transactions. de bases de données (DBA), la sécurité avancée En 1984, paraît la version 4, 1985 version 5 permet la communication réseau cryptée : (modèle client-serveur), 1989 Oracle Corp. sur le marché des applications avec Oracle Financial et implémentation de PL/SQL. En Cet article explique... 1992, sort la version 7h – entrepôt de données • Des informations générales sur Oracle. (DataWarehouse) avec le support de l’intégrité • Les hacks de base sur Oracle. référentielle, les procédures stockées et • Techniques basiques pour se défendre. les triggers. En 1997, la version 8 supporte l’approche orientée objet et les applications multimédia, en 1999 la version 8i supporte Ce qu'il faut savoir... Internet et la Machine Virtuel Java (mieux connue sous le nom : JVM). L’année 2001 voit la • Élements de base sur le serveur de base de sortie de Oracle 9i avec la possibilité de lire les données Oracle. documents XML, et également les RAC (Real 36 hakin9 Nº 5/2007 www.hakin9.org
Hacking et Preuve sous une Bdd Oracle cryptage des données dans une System Identifier, qui resout les recherche pourrait également être base de données, authentification instances de bdd et identifient les bdd), utilisé pour trouver un système précis plus forte et finalement un Label le protocole et le port sont stockés suivant les termes de la recherche, de Sécurité qui permet de définir les dans : listener.ora. Le Listener écoute qui est un identifiant unique pour la privilèges de sécurité et le label des pour des requêtes sur la base de bonne page. Ce terme pourrait par utilisateurs – la sécurité de base. données. Après avoir perçu n’importe exemple rechercher isqlplus (interface Il y a également l’édition standard Ed : quelle connexion, il envoie le numéro web pour tapper des requêtes sur Standard Edition One avec support de port au client. Le client se connecte des bdd Oracle), des fichiers de de 2 CPU maximum, l’édition ensuite au port et s’authentifie. Le configuration ou les Editions Express. personnelle : Personal Edition sans Listener pourrait aussi être utilisé Ces termes pourraient ressembler à : la RAC ciblée pour les développeurs par le package PL/SQL ou par des intitle:icql intitle:release inurl:isqlplus, et l’Edition Express avec 1 CPU, 1Go procédures externes. listener filetype:ora či inurl:apex intitle: de RAM et 4 Go limite. La structure logique de la Application Express Login. Le système de base de données base est composée d’utilisateurs, La prochaine étape est un scan d'Oracle, d’un point de vue physique, se schemas (objects appartenant plus approfondi de l’OS, à l'aide compose de processus, qui s’exécutent à l’utilisateur), droits, rôles, profils d'outils comme (nmap, amap, tsnping) ou sur des systèmes d'exploitation hôtes, et objets. Les utilisateurs dans la passifs (scanrad ). La première étape la structure de la mémoire logique base ont des identités uniques, consiste à voir les ports ouverts. Ora- (Instance) et la structure physique qui ont accès à des objets de la cle, dans sa configuration standard, des fichiers - base de données. Les base. Les utilisateurs sont le plus écoute sur les ports basiques qui processus sont divisés en processus fréquemment identifiés par des mots pourraient être identifiés. Pour trouver utilisateur et en processus serveurs. de passe. Chaque utilisateur a un des Listeners en exécution, utilisez Quand l'utilisateur exécute l'application, Schema, lui appartenant et où ses des outils comme : TSNPING. Après le processus utilisateur se connecte objets sont stockés. Les privilèges que le serveur de bdd ait été trouvé, à l’instance. Si la communication est sont un ensemble d’opérations qu’un essayons d’obtenir sa version, la établie, la session démarre. utilisateur pourrait utiliser. Les profils Plate-forme, le SID et la configuration, Pour chaque utilisateur, le serveur sont un ensemble d'options qui limite ceci grâce à TSNLSNR IP Client, qui alloue un PGA (Program Global Area) l'utilisation de la base de données. permet les commandes pings, et qui dans lequel il stocke les variables de Ils pourraient définir des tentatives obtient la version, les services et l’état session. Une instance d’Oracle est maximum d’essais de mot de passe en cours du serveur. L’information faite par la mémoire principale : SGA avant que le compte ne se ferme etc. demandée n'est obtenue que lorsque (System Global Area) et les processus Les Tables ont des lignes et colon- l’Administrateur n’a pas mis de mot en tâches de fond. Les processus nes. L'accès aux tables peut être de passe au Listener d’Oracle. Si un les plus importants sont le System défini et limité sur la base des lignes mot de passe est attribué au Listener, Monitor – SMON (prend soin d’une avec le Virtual Private Database il n'est plus possible d'obtenir des in- restauration en cas de problème, (Base de donnée virtuel privé). Les formations. Il y a d’autres outils dispo- compacte l’espace libre dans une triggers (déclencheurs) sont des ins- nibles pour l’exploration des Listeners : Base de Données), Process Monitor tructions stockées, qui s’exécutent TNSCmd et OScanner. NGSSQuirrel – PMON (surveillance des processus sur des événements comme : une est quant à lui, un produit commercial. actifs et assure leur support), DBW – insertion dans une table ou l’arrêt de Ce programme est complexe mais Database Writer et Log Writer – LGWR la base de données. Les procédu- dispose de nombreuses fonctions. (écrit les enregistrements permettant res stockées sont des programmes Certaines sont seulement disponibles un retour en arrière). Oracle est écrits sous PL/SQL (langage de avec un compte Oracle, cependant composé de fichiers de contrôle programmation SQL). Toutes les il permet également des attaques (les contrôles de fichiers incluent le informations sur la base de données de type : Brute Force ou avec des nom de la base, l’emplacement des sont stockées en dictionnaire de Dictionnaires sur un compte utilisa- fichiers de données and refont des données. teur. Si un Listener est non-sécurisé, Logs), de fichiers de données et les plusieurs angles d’attaques sont en- Redo Logs (enregistrant l’ensemble Hacking Oracle visageables. Dans le passé, il y avait des changements dans une Bdd). Avant de commencer, il doit y avoir beaucoup d’alertes de sécurité. Cer- L’information sur les processus en une phase d’analyse du réseau. taines sont des attaques : NERP DoS, cours est placée dans les tableaux Cette phase nécessite la recherche requêtes de versions illégales, trans- V$PROCESS et V$SESSION. d’informations essentielles, qui fert de données trop faible, attaques La communication avec le monde pourraient être récupérées par une de fragmentations ou des attaques extérieur est gérée par le Listener base de données Whois, des moteurs SERVICE_NAME DoS. De plus, il est d’Oracle. Sa configuration se situe de recherche, Serveurs DNS ou par possible de changer le mot de passe dans le fichier :.ora. SID (Oracle du Social Engineering. Le moteur de du Listener qui conduit au HiJacking, www.hakin9.org hakin9 Nº 5/2007 37
Pratique à l'arrêt du Listener ou de l’ensemble Créer un Rootkit pour installer une M-CODE, ensuite passé à la Machine des paramètres avec la commande porte dérobée (backdoor) ou mettre Virtuel. Dans la version 9i il y avait la SET. Quand le SID et la version sont en place d’autres choses plus mali- possibilité de deviner le but d’un code connus, différents noms d’utilisateurs cieuses sans être découvert. grâce au reverse engineering. Dans et mots de passe peuvent être testés : Une autre technique pour par- ce code, les éléments de base étaient d'abord, les mêmes noms d’utili- courir en cascade les privilèges retrouvés (structure de données, sateurs et mots de passe. Ensuite, est de décrypter les mots de passe pointant sur la variable, fonction testez les noms d’utilisateurs et mots d’autres utilisateurs depuis la table d’un type de données dans le code de passe usuels. La prochaine étape SYS.USER$. Oracle utilise des source). Dans la version 10g, la Table dans l’ordre serait une attaque par algorithmes de hashing basés eux- Symbol n’est plus visible. Oracle 10g dictionnaire et finalement une brute mêmes sur des algorithmes DES. Le R2 a de nouvelles fonctionnalités pour force. Hydra permet de vérifier les principe de cet algorithme de cryp- empaqueter par DBMS_DLL (fonction noms d’utilisateurs et mots de passe. tage le salt (pass aléatoire) d’un mot CREATE _ WRAPPED). L’autre possibilité, pour obtenir de passe. Dans Oracle, cependant, Même pour le système de base l’accès au serveur de bdd Oracle il y a une vulnérabilité à choisir salt, de données, il pouvait exister un ver. est de sniffer la connexion. Si la caractères non sensibles à la casse Il y a déjà un Proof of Concept (Preuve communication entre l’utilisteur et le et des algos de hash vulnérables. L’ac- par concept) nommé Oracle Voyager client n’est pas sécurisée, elle peut être cès aux tables SYS.USER$ est lié au Worm. Ce ver essaye d’effectuer cer- sniffée par n’importe quel sniffer sur le droit d’accès SELECT ANY DICTIONARY. taines actions : grant DBA to PUBLIC, réseau. En premier lieu, l’utilisateur Les vecteurs d’attaque consistent supprimer le trigger et créer un trigger, envoie le nom d’utilisateur à la base de à sniffer les communications sur le exécuté après login entré et accès données. Si le nom d’utilisateur existe réseau, à procéder à des injections à Google, il essaye également d’en- alors le serveur vérifie le cryptage SQL ou accéder à la table SYSTEM voyer des mails avec le Oracle pas- hash du mot de passe de l’utilisateur. (system.dbf) depuis l’OS hôte. Le sword Hashes. Par la suite, il essaye Il utilise un numéro secret basé sur langage PL/SQL est basé sur le de scanner l’existence d’une autre l’heure du système. langage de programmation ADA. PL/ base et tente de s’y connecter et éta- Après avoir obtenu l’accès à la SQL permet de compiler le code en blir un lien. base, il est nécessaire de vérifier s'il est possible d’avoir accès en Listing 1. Création d’un nouveau profil chaîne aux droits sur le système. Les méthodes les plus connues sont : les CREATE PROFILE paranoid LIMIT FAILED_LOGIN_ATTEMPTS 3 Injections SQL, Buffer Overflow et PASSWORD_LOCK_TIME 30 le Cross – Site Scripting. La logique PASSWORD_LIFE_TIME 90 de base des injections PL/SQL est PASSWORD_GRACE_TIME 3 d’attaquer les programmes, autorisant PASSWORD_VERIFY_FUNCTION check_the_password; les entrées utilisateur. Cette entrée permet à un hacker Listing 2. Exemple de fonction qui vérifie le mot de passe d’écrire son propre code. Cette mé- CREATE OR REPLACE FUNCTION check_the_password thode est utilisée par exemple pour (i_am_user_id VARCHAR2, new_magic_word VARCHAR2, old_magic_word VARCHAR2) outrepasser le DBMS_ASSERT RETURN BOOLEAN IS (Oracle 10g R2) – ceci est utilisé BEGIN IF length(new_magic_word) < 5 THEN pour vérifier les données saisies. Il raise_application_error(-20001, 'Your Magic Word Is Too Short!'); y a aussi une autre méthode appe- END IF; lée le Dangling Cursos Snarfing. Le IF NLS_LOWER(new_magic_word) IN ('password', 'drowssap') THEN principe réside sur le fait qu’Oracle raise_application_error(-20002, 'I will Not Accept Your Magic ne ferme pas tous les curseurs après Word'); END IF; son utilisation. Si un utilisateur avec RETURN TRUE; des privilèges crée un curseur, ce END; dernier peut être utilisé par utilisa- teurs ayant moins de privilèges pour Listing 3. Fonction qui retourne la chaîne qui sera ajoutée à la requête parcourir en cascade les droits sur les utilisateurs ayant plus de privi- CREATE OR REPLACE FUNCTION deny_table_rows ( usr_schema VARCHAR2, lèges. Pour contrer cette méthode, usr_object VARCHAR2) RETURN VARCHAR2 AS les curseurs ouverts devraient être BEGIN fermés juste après leur utilisation. RETURN 'user != SYS'; Après avoir parcouru les privilèges, END; plusieurs choses sont possibles. 38 hakin9 Nº 5/2007 www.hakin9.org
Hacking et Preuve sous une Bdd Oracle Se défendre les adresses MAC connues). Il est d’authentification, il est bon de dé- sous une base important aussi de placer le serveur finir des droits, rôles, profils et res- de données Oracle de Bdd derrière un pare-feu lequel treindre les ressources disponibles. La première chose à faire pour sécuri- doit être placé en dehors du réseau Les droits courants du système sont ser la bdd est une restriction physique protégé et il est nécessaire d’ouvrir obtenus à partir de la vue USER_ à celle-ci. Il est important d’effectuer les ports et protocoles sécurisés. SYS_PRIVS. Les droits d’accès aux cette étape afin de se prémunir des re- Enfin, il est recommandé d’utiliser tables sont stockés dans USER_ démarrages ou d'un arrêt. La tendance l’Oracle Connection Manager. TAB_PRIVS. pour l’authentification sont les disposi- OCM permet de sécuriser de La colonne ADMIN_OPTION tifs biométriques. Ceux-ci incluent les façon significative l’accès au serveur montre, s'il est possible d’accorder empreintes digitales, l’identification au de base de données via le réseau. des droits à un autre utilisateur. niveau de l’iris ou une identification du Il est important également de sé- En raison du besoin de grouper visage. curiser le Listener d’Oracle, chan- les droits, groupons-les au sein La prochaine étape au niveau ger les ports par défaut, utiliser le du rôle. Il y a des rôles prédéfinis : sécurité est de protéger les systèmes Node Filtering, filtrant les clients CONNECT, RESOURCE et DBA. d’exploitation hôtes. Cette partie inclut selon leurs adresses IP. Une des Il est essentiel d’en prendre soin, car le la désinstallation de l’ensemble des tâches courantes doit être la vérifi- rôle CONNECT ne sert pas seulement services non nécessaires (ftp, telnet cation des Logs du Listener d’Oracle. à connecter l’utilisateur à la base, mais etc.), permettre l’activation du pare-feu Il y a une option dans l’authentifica- il permet aussi la création de tables, et la mise en place d’une politique de tion utilisateur : l’Identification par synonymes ou vues. Pour récupérer sécurité. Avant de raccorder Oracle Système d’Exploitation. le rôle d’un utilisateur, utilisez la vue au réseau, il est important de contrôler Cette option n’est plus sûre. USER_ROLE_PRIVS. Pour protéger les droits d’accès pour chaque fichier Il n’est pas recommandé de l’utili- les ressources de la base, utilisez et répertoire. Supprimer les comptes ser, tout simplement parce qu’elle les profils.. DBA_PROFILES liste les utilisateurs qui ne sont pas indispen- est vulnérable. Dans le processus enregistrements de la base à propos sables, supprimer les logiciels non indispensables et les Systèmes de Listing 4. Police, qui ajoute la fonction deny _table_rows à la table Detections d’Intrusions (IDS). sec_table Désinstaller également les ban- nières pour empêcher la détection BEGIN DBMS_RLS.add_policy ( object_schema => 'sec_user', du système d’exploitation, avoir un object_name => 'sec_table', anti-virus, des points de contrôles policy_name => 'sec_table_policy', réguliers, la surveillance au niveau policy_function => 'deny_table_rows'); des logs et restreindre le nombre de END; super-utilisateurs. Hormis la sécurité relative aux systèmes d’exploitations, Listing 5. Bloque PL/SQL anonyme qui crypte la chaîne en AES il est également important de sécuriser 256-bit les stations de travail. Celles-ci doivent /* CRYPT IT ROUTINE IN AES 256-bit */ être sécurisées en différents niveaux DECLARE selon leur type d’utilisation (Adminis- k4y RAW (32); tration des Bdd, Developpement, les t0p_s3cr3t_3nc RAW (2000); t0p_s3cr3t_d3c RAW (2000); applications en cours). Certains vec- BEGIN teurs d’attaque utilisent les fonctionna- /* 256 bit key - 32 byte */ lités des clients SQL comme TOAD ou k4y := DBMS_CRYPTO.RANDOMBYTES(256/8); SQL*Plus. t0p_s3cr3t_3nc := DBMS_CRYPTO.ENCRYPT ( L’attaque pourrait cibler les fichiers src => UTL_I18N.STRING_TO_RAW ('h4x0rIzN0tD34d', 'AL32UTF8'), typ => 4360, ou les enregistrements du registre /* encryption type - DBMS.CRYPTO.ENCRYPT_AES256 + DBMS_CRYPTO.CHAIN_CBC qui permettent l’exécution de code + DMBS_CRYPTO.PAD_PKCS5 */ après authentification. Beaucoup de key => k4y clients stockent également des mots ); de passe. Même si le mot de passe t0p_s3cr3t_d3c := DBMS_CRYPTO.DECRYPT ( src => t0p_s3cr3t_3nc, stocké est crypté, il est indiqué. Dans typ => 4360, le domaine de la sécurité réseau, key => k4y il est indispensable d’implémenter ); des restrictions physiques au réseau DBMS_OUTPUT.PUT_LINE (UTL_I18N.RAW_TO_CHAR (t0p_s3cr3t_d3c, 'AL32UTF8')); (Cf. Limiter l’obtention des adresses END; IP avec le DHCP seulement pour www.hakin9.org hakin9 Nº 5/2007 39
Pratique des profils. L’administrateur crée son possible de travailler avec le Dictio- être compromis. Ceux-ci incluent : propre profil (Cf. Listing 1). naire des Données, ce qui est à éviter. UTL _ SMTP (pour l’envoi d’e-mails), En outre, dans le profil, peut être Ajouter le paramètre d’initialisation UTL _ TCP (pour l’utilisation de TCP/ déterminé le nombre d’essais que 07 _ DICTIONARY _ ACCESSIBILITY = IP), UTL _ HTTP ( pour l’accès au Web), possède un utilisateur pour entrer un FALSE étend la protection du diction- UTL _ FILE (pour l’accès au système mot de passe avant que le compte ne naire des données. Ce paramètre de fichier) et un paquet de cryptage soit bloqué. PASSWORD_LOCK_TI- restreind le privilège DELETE ANY. Il est DBMS_CRYPTO. Un contrôle effec- ME définit le temps de blocage du également intéressant de ne donner tif est atteint en utilisant un paramètre compte après le nombre maximum à l’utilisateur que les privilèges né- d’initialisation REMOTE _ OS _ AUTH = d’essais pour entrer le mot de passe. cessaires, rien de plus, tout comme FALSE. PASSWORD_LIFE_TIME définit la il convient de restreindre le rôle par Pour les tâches courantes d’ad- durée de vie du mot de passe en défaut PUBLIC. ministration (démarrage, fermeture, jours. PASSWORD_GRACE_TIME Le rôle PUBLIC est attribué par sauvegarde, restauration et archi- définit le nombre de jours avant défaut à chaque nouvel utilisateur vage) utilisez le rôle : SYSOPER (au l’expiration du mot de passe lorsque Oracle. Dans la configuration de lieu de SYSDBA). La base de données Oracle affiche l’avertissement sur base, ce rôle permet de travailler Oracle offre plusieurs niveaux de l’expiration du mot de passe. Il y a avec des paquetages qui pourraient sécurité. Ce type de sécurité fait une possibilité intéressante : créer sa propre fonction (Cf. Listing 2) qui vérifiera le mot de passe avant son À propos de l’auteur changement. Mikoláš Panský est employé chez Czech computer company Cleverlance Enterprise La fonction de vérification permet Solutions en tant que développeur de bases de données. Il est également professeur de contrôler la bonne longueur du à la Charles University Faculty of Education, où il est allé après avoir passé son mot de passe ou s'il ne s’agit pas d’un master d’informatique. Contact avec l’auteur : mikolas.pansky@gmail.com mot de passe issu d’un dictionnaire. Le profil est accordé à l’utilisateur lors de sa création ou avec la com- mande : Sur Internet ALTER USER n1c3_us3r PROFILE paranoid • http://en.wikipedia.org/wiki/Oracle_Database, • http://www.oracle.com/database, Une autre fonctionnalité au niveau de • http://www.red-database-security.com/whitepaper/oracle_default_ports.html, la sécurité est la restriction de l’espace • http://www.dokfleed.net/duh/modules.php?name=News&file=article&sid=35, dans la table. Voici un exemple d’une • http://www.jammed.com/~jwa/hacks/security/tnscmd/tnscmd, commande à utiliser : • http://www.ngssoftware.com/squirrelora.htm, • http://xforce.iss.net/xforce/alerts/id/advise82, ALTER USER n1c3_us3r 100M ON USERS; • http://www.appsecinc.com/resources/alerts/oracle/02-0013.shtm, • http://www.thc.org/thc-hydra/, D’autres étapes apportent la preuve • http://www.cqure.net/wp/?page_id=3, du hacking de la base de données • http://www.petefinnigan.com/orasec.htm, Oracle. L’une de ces étapes est • http://www.dba-oracle.com/t_oracle_biometrics_security.htm, l’installation des composants juste • http://www.databasejournal.com/features/oracle/article.php/3644956. nécessaires. Il est recommandé d’uti- liser le principe de la configuration la plus minime possible. Les options installées sont récupérées depuis la Référence vue V$OPTION. • Alexander Kornbrust, 2006. Oracle rootkits, Hakin9 1/2006, Selon les vecteurs d’attaque, il • Joshua Wright, Carlos Sid, 2005. An Assesment of the Oracle Password Hashing est nécessaire de se défendre contre Algorhytm, l’intrus, vérifiant le couple usernames/ • Alexander Kornbrust, 2005. Hardening Oracle Administration– and Developer passwords. Il est bon de vérouiller ces Workstations, comptes par une requête ALTER USER • William Heney, Marlene Theriault, 1998. O’Reilly – Oracle Security, hr ACCOUNT LOCK et/ou changer le mot • David Know, 2004. Effective Oracle Database 10g Security, de passe : ALTER USER hr IDENTIFIED • Integrity, 2004. Oracle Database Listener Security Guide, BY n1c3n3wp4ss; Attention à ne pas • Pete Finningan, 2006. How to unwrap PL/SQL, donner des privilèges : ANY. Si ce • Marlene Theriault, Aaron Newman, 2001. Oracle Security Handbook. privilège est accordé, il devient alors 40 hakin9 Nº 5/2007 www.hakin9.org
partie du Virtual Private Database (VPD). Le VPD assure les briques de base de la sécurité. Ces derniers définissent des fontions PL/SQL, retournant des chaînes. Cette fonction est par la suite ajoutée à l’objet sélectionné (table, vue ou synonyme), que nous souhaiterions protéger avec le paquetage PL/SQL DBMP_RLS. Si une requête SQL est produite, Oracle ajoute en fin de requête la chaîne résultante de la fonction définie. Cette fonction peut ensuite être une restriction, supprimant des lignes, et qui contient dans la colonne utilisateur la valeur : SYS (Cf. Listing 3). La règle, qui assure, que la répon- se de la requête SELECT ne contient pas certaines lignes, est également définie par le paquetage : DBMS _ RLS (Cf. Listing 4). Pour de plus amples informations, Cf. l’article sur le VPD à : www.databasejournal.com. Il y a plusieurs raisons au cryptage des données d’une base : par exem- ple, se protéger et cacher les infor- mations contre les administrateurs : DBA ; ou atteindre une sécurité standard. Pour crypter les données, utilisez DMBS_CRYPTO (il devrait remplacer : DBMS_OBFUSCATION_ TOOLKIT). DBMS_CRYPTO est orienté sur le travail avec des types de données RAW. Cela n’empêche pas la possibilité de convertir VARCHAR2 vers du RAW et vice-versa avec le pack UTL_RAW. Ce paquetage offre DES (qui n’est par ailleurs plus recommandé aujourd’hui), triple-DES avec 3 clés, AES avec plu- sieurs clés de tailles différentes et des algorithmes RC4. Le Listing 5 montre un exemple d’un cryptage AES de 256-bit avec Cipher-Block-Chaining selon le standard PKCS#5 (Cf. RFC 2898). Conclusion Je voulais vous présenter au travers de cet article des concepts de base en sécurité des Bases de Données Oracle de 2 points de vues diffé- rents: l’attaque et la défense. l
Vous pouvez aussi lire