Transparent Data Encryption (TDE) Livre Blanc Oracle Mars 2007 Transparent Data Encryption (TDE) L’émergence du vol d’identité comme activité criminelle organisée rend le besoin de protéger les données sensibles contre les attaques externes mais aussi internes. INTRODUCTION Depuis 25 ans, Oracle fournit des solutions pour prendre en charge la sécurité des données quelque soit le type de sociétés ou d’organisations, et ce dans le monde entier. Oracle Database 10g Release 2 continue la tradition en introduisant de nouvelles fonctionnalités pour adresser la sécurité, la conformité envers les autorités de régulation. L’émergence du vol d’identité comme une activité criminelle organisée rend le besoin de protéger les données sensibles à la fois contre les attaques externes mais aussi internes. Aucune technologie ne pouvant fournir une sécurité absolue, les directions informatiques mettent en place des procédures et outils pour mieux verrouiller l’accès aux données et surveiller les activités suspectes. Oracle Database 10g Release 2 propose une fonctionnalité avancée de chiffrement afin de protéger les données sensibles de l’entreprise et permettre aux développeurs de bâtir des applications encore mieux sécurisées. TRANSPARENT DATA ENCRYPTION TDE standardise le chiffrement des données dans la base en intégrant le chiffrement directement dans la base de données au travers d’une solution absolument transparente afin de protéger les données sensibles sur les disques ou dans les sauvegardes En matière de sécurité, l’une des plus importantes fonctionnalités apportées par Oracle Database 10g Release 2 est l’intégration de la fonctionnalité « Transparent Data Encryption (TDE) dans l’option « Advanced Security » (ASO). Oracle peut désormais chiffrer de manière transparente les données sur le réseau, dans la base de données ou dans les fichiers de sauvegardes. Les identifiants de personnes (numéro SS par exemple), les numéros de cartes bancaires, et autres données strictement personnelles et confidentielles peuvent être facilement chiffrés sans impacter les applications existantes. La plupart des solutions de chiffrement nécessitent des appels spécifiques à des fonctions de chiffrements depuis le code applicatif ainsi que la création de vues additionnelles dans la base de données. Ces solutions sont coûteuses tant en terme de développement, qu’en terme de tests, de déploiement et de maintenance dans le temps. Beaucoup d’organisations n’ont ni le temps ni l’expertise pour les gérer. Transparent Data Encryption (TDE) - Page 2 TDE résout ces problèmes en intégrant directement dans la base de données Oracle, les mécanismes de chiffrement. Avec une simple instruction SQL « alter table », un administrateur peut chiffrer les données sensibles d’un applicatif : SQL>Alter table Taux_Credit modify (Identifiant_personne encrypt no salt) Les nouvelles tables spécifient simplement le mot-clé « encrypt » dans leur définition. SQL> Create table commandes (Numero_Commande number (12) not null, Numero_Client number(12) not null, Numero_Carte_Credit varchar2(19) encrypt)); Transparence applicative: aucune vue n’est nécessaire La logique applicative implémentée au travers des requêtes SQL continue à fonctionner sans aucune modification. En d’autres termes, les applications utilisent la même syntaxe pour insérer des données dans les tables, et Oracle va automatiquement chiffrer les données avant de les écrire sur le disque. Les procédures existantes de sauvegarde des données continuent à fonctionner avec l’assurance que les données sensibles seront chiffrées sur les supports physiques des sauvegardes. Les requêtes de lecture des données (« select ») déchiffrent les données en totale transparence (C’est important car ces applications existantes s’attendent à des données non chiffrées). Les numéros de cartes bancaires, les identifiants SS ou toutes autres données sensibles restent chiffrées sur les médias de sauvegarde afin d’être en conformité avec la législation ou avec les autorités de régulation vis-à-vis de la protection des identités. Transparent Data Encryption (TDE) - Page 3 TDE ne nécessite ni la création de vues, ni la création de triggers ni même la modification des requêtes SQL existantes. TDE ne nécessite ni la création de vues, ni la création de triggers ni même la modification des requêtes SQL existantes. Les tables contenant les données sensibles sont seulement modifiées par une instruction ALTER TABLE et ainsi les données stockées dans ces tables seront chiffrées sur le disque. Gestion transparente de la clé et séparation des pouvoirs Historiquement, l’une des tâches les plus difficiles associées au chiffrement des données est la gestion des clés. Oracle a fourni une solution de chiffrement des données à l’intérieur de la base de données depuis la version Oracle8i. Toutefois, cette fonctionnalité nécessite que les responsables d’applications ou bien les utilisateurs gèrent les clés de chiffrement. A l’inverse, TDE prend en charge la gestion des clés de chiffrement d’une manière transparente. Chaque table dans laquelle au moins une colonne est chiffrée, utilise une clé. Celle-ci est générée par la base lors de l’exécution de l’ordre SQL déclarant la colonne comme étant chiffrée. Elle est stockée dans une table interne, mais préalablement chiffrée à son tour par une ‘master key’. Cette ‘master key’ n’est pas stockée dans la base, mais dans un fichier externe au format PKCS#12 qu’il faut ouvrir avec un mot de passe. Une opération d’initialisation de cette clé maîtresse est réalisée avec un ordre SQL. SQL> alter system set encryption key identified by "1wq!r23t"; La gestion de la master key peut être déléguée à un profil particulier indépendamment des autres opérations d’administration. Transparent Data Encryption (TDE) - Page 4 Performance Souvent dans les contextes applicatifs existants, le chiffrement pose problème parce que les index ne sont pas chiffrés. TDE crypte automatiquement les index associés aux tables. Cela signifie qu’il n’y a pas de perte de performance lors du balayage des objets. Par exemple, considérons une application avec une table appelée CREDIT_RATING avec une colonne nommée NUMERO_PERSONNE qui doit être cryptée : SQL>Connect appowner SQL>Alter table TAUX_CREDIT modify(NUMERO_PERSONNE encrypt no salt) SQL>Create index person_id_idx on credit_rating (NUMERO_PERSONNE) SQL>Select score from credit_rating where NUMERO_PERSONNE = '235901'; Dans cet exemple, la valeur de NUMERO_PERSONNE doit être chiffrée à la fois dans la table et dans l’index. Oracle utilisera cet index même si la valeur de NUMERO_PERSONNE est chiffrée Gestion de la master key Oracle fournit une infrastructure technique pour gérer la master key via l’intégration d’un wallet TDE. Cela permet de garantir que toute donnée cryptée lors d’une sauvegarde pourra être décryptée lors d’une opération de restauration. Algorithmes de chiffrement TDE supporte les algorithmes de chiffrement standardisés : 3DES, Advanced Encryption Standard (AES) pour des tailles de clés allant jusqu’à 256 bits. Types de données supportés par TDE La première version de TDE supporte les types de données suivants : varchar2 nvarchar2 number date binary float binary_double timestamp raw char nchar Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes D’autres types de données seront supportés dans les versions futures. Transparent Data Encryption (TDE) - Page 5 API de chiffrement Pour les clients qui souhaitent appeler directement dans leurs programmes des routines de chiffrement, Oracle fournit le package DBMS_CRYPTO. Le toolkit DBMS_CRYPTO a été introduit dans Oracle Database 10g Release 1 et se substitue au toolkit DBMS_OBFUSCATION_TOOLKIT introduit dans Oracle8i. Le toolkit DBMS_CRYPTO est beaucoup plus simple d’utilisation que DBMS_OBFUSCATION_TOOLKIT. Le toolkit DBMS_CRYPTO supporte les algorithmes de chiffrement 3DES et AES. Transparent Data Encryption (TDE) - Page 6 Transparent Data Encryption - TDE Mars 2007 Author: Michel Pignata Contributing Authors: Oracle Corporation World Headquarters 500 Oracle Parkway Redwood Shores, CA 94065 U.S.A. Worldwide Inquiries: Phone: +1.650.506.7000 Fax: +1.650.506.7200 oracle.com Copyright © 2007, Oracle. All rights reserved. This document is provided for information purposes only and the contents hereof are subject to change without notice. This document is not warranted to be error-free, nor subject to any other warranties or conditions, whether expressed orally or implied in law, including implied warranties and conditions of merchantability or fitness for a particular purpose. We specifically disclaim any liability with respect to this document and no contractual obligations are formed either directly or indirectly by this document. This document may not be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without our prior written permission. Oracle, JD Edwards, PeopleSoft, and Siebel are registered trademarks of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.