ORACLE ADVANCED SECURITY 10gR2

publicité
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.
Téléchargement