EP1415215A1 - Method for making databases secure - Google Patents

Method for making databases secure

Info

Publication number
EP1415215A1
EP1415215A1 EP20020779619 EP02779619A EP1415215A1 EP 1415215 A1 EP1415215 A1 EP 1415215A1 EP 20020779619 EP20020779619 EP 20020779619 EP 02779619 A EP02779619 A EP 02779619A EP 1415215 A1 EP1415215 A1 EP 1415215A1
Authority
EP
European Patent Office
Prior art keywords
server
database
data
request
secure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP20020779619
Other languages
German (de)
French (fr)
Inventor
Philippe Pucheral
Luc Bouganim
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Centre National de la Recherche Scientifique CNRS
Original Assignee
Centre National de la Recherche Scientifique CNRS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Centre National de la Recherche Scientifique CNRS filed Critical Centre National de la Recherche Scientifique CNRS
Publication of EP1415215A1 publication Critical patent/EP1415215A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Definitions

  • the present invention relates to the field of secure information systems, and more particularly to systems and methods for securing databases.
  • the problem is not limited to protecting oneself against external hackers entering the attacked computer system.
  • internal attacks that is, attacks by employees with legal access to all or part of a company's data, are the most frequent and the most expensive.
  • the external hacker is an intruder who infiltrates a computer system and retrieves the data files produced by the DBMS.
  • a natural solution is to encrypt data in order to make their disk imprint unreadable.
  • the external hacker will then try to break the encryption key. Attacks on keys are facilitated in a database context due to the large volume of data encrypted with the same key (statistical attacks).
  • data encryption is static (the keys do not change from one session to another), thereby increasing the vulnerability of the database.
  • the user pirate is a current user of the computer system recognized by the operating system and the DBMS. He has rights to part of a shared database and wants to access data beyond his rights. This pirate potentially has the same power as an external pirate and can also exploit his restricted rights. If the database is encrypted, it also has access to certain decryption keys.
  • the administrator or DBA hacker is an unscrupulous employee of the company whose function is to administer the computer resources of the company or the database (DBA: Data Base Administrator). As such, it has all the system rights, it has information inaccessible to any other (ex: logs memorizing the operations carried out on the base) and can spy on the behavior of the DBMS during its execution. Note that an external hacker or user who manages to grant himself administrative rights has the same powers as the administrator hacker.
  • DBMS database management system
  • Authentication is typically done using a password stored encrypted in a DBMS catalog, the latter checking the correspondence between the user's identity and password on each new connection.
  • the authentication procedure can be reinforced by the use of a dedicated service [Oracle Advanced Security Administrator Guide, Release 8.1.7, September 2000]. This dedicated service avoids the clear passage of the password on the network.
  • a variant is known which makes it possible to authenticate a user by various means such as a smart card or TokenCard.
  • PIN personal code
  • the card hardware element In addition to authentication by a personal code (PIN), the card hardware element must itself be recognized by the server, thereby increasing the degree of security.
  • DBMS DBMS
  • the rights relating to the data can be assigned to the users, either on the basic tables (one thus obtains a primitive management of rights close to that offered by a operating system), either on views (virtual tables calculated by an SQL query), or on stored procedures (the right then relates to the triggering of a processing).
  • These last two cases allow sophisticated and very selective rights management.
  • this management of rights is ineffective against an attack directed against the files containing the database (the DBMS is again short-circuited) or against an attack carried out by a DBA (because it has all the rights, including the right to change the rights).
  • Another solution is based on encryption of communications.
  • Communication encryption can be used in addition to other security mechanisms, in particular to ensure the confidentiality and integrity of messages sent and received over a network. Their use goes far beyond the framework of databases.
  • SSL Secure Soket Layer
  • C-SET Chip-Secured Transaction
  • C-SET Chip-Secured Transaction
  • encryption of communications does not protect against an attack on the files containing the database.
  • the company Oracle offers a PL / SQL package (set of stored procedures) allowing to perform secret key encryption DES (Data Encryption Standard) [Oracle Technical White Paper. Database Security in Oracle 8i, November 1999].
  • the key to encryption must be passed as a parameter to the PL / SQL encryption / decryption procedure.
  • Key management (including confidentiality) is left to the application using this package. This management is all the more delicate since the same keys must be shared by users sharing the same data.
  • this encryption technique does not allow to resist the attacks of a DBA because it has the means to intercept the keys or to replace the encryption package by another. This last problem seems to be unresolved because restricting the rights of the DBA amounts to preventing it from performing its administrative task.
  • Protegrity offers a data encryption solution, called Secure.Data [P. Nilsson, U. Mattsson. Secure. Data Functional Overview, Doc. TWP-0011, Protegrity Inc., January 2000], adaptable to different DBMS.
  • Secure.Data P. Nilsson, U. Mattsson. Secure. Data Functional Overview, Doc. TWP-0011, Protegrity Inc., January 2000
  • Secure. Server is a module integrated into the host DBMS which interfaces with Secure .Manager and executes the data encryption / decryption primitives on the fly, during the execution of requests.
  • the security core and the surrounding SOE must be simple enough to be self-administrating.
  • a DBMS is not self-administered.
  • the aim of the present invention is to remedy these drawbacks by proposing a system and a method guaranteeing a maximum degree of protection against any type of attack (internal or external) targeting data put online on any network and managed by a Traditional Database Management System (DBMS).
  • DBMS Traditional Database Management System
  • the aims of the invention are as follows: - to ensure perfect confidentiality of the data managed by a DBMS,
  • the invention relates, in its most general sense, to a secure management system for confidential databases
  • a server consisting of at least one computer equipped with means for recording databases and means of communication, by at least host computer equipment comprising means of communication with the server and means for constructing requests and processing the results of requests, as well as a means for securing exchanges between the client equipment and the server (also referred to below as C-SDA, for "Chip-Secured Data Access "), characterized in that said securing means is constituted by a secure hardware medium interfacing between the client equipment and the server and comprising a microprocessor for the encryption of the attributes of the requests sent by the client equipment and the decryption of the responses sent by the server, a random access memory for recording intermediate results, a non-writable memory for recording the operating system and a memory for recording user personalization information and that said server saves encrypted data.
  • the client (s) and the server are connected by means of communication connected to a telecommunications network (Internet, intranet, etc.).
  • a telecommunications network Internet, intranet, etc.
  • the client and the server are installed on the same physical machine and the communication means correspond to means of communication internal to a computer, or even to software communication means.
  • the invention takes into account the following constraints: - the database can be managed by any traditional commercial DBMS,
  • the secure hardware support used is current technology (for example, a conventional smart card),
  • the applications of the invention are diverse, and take into account the development of mobile computing which reflects a growing tendency of users to access their data anytime, from anywhere and especially from any terminal (PC, personal assistant, cell phone, unmarked terminal, etc.).
  • PC personal assistant
  • cell phone unmarked terminal, etc.
  • the data hosted in this context is generally personal, for example:
  • the medical file which contains highly confidential data and which a patient wants to be able to access at the doctor, at the pharmacy, at home, while traveling, etc.
  • the virtual or virtual home environment which lists private information of various kinds such as: bank data, calendar, address book, passwords, bookmarks, cookies ..., and which must be able to be accessed by n ' anywhere.
  • the invention also relates to a method implementing a security application which interfaces between a client and a data server and it complies with the following rules:
  • the securing means is constituted by a microprocessor card.
  • the latest generation smart cards include on a monolithic chip, a 32-bit RISC processor at about 30 MIPS, memory modules (about 96 KB of ROM, 4 KB of RAM and 128 KB of EE-PROM), a component of I / O managing communications with the terminal and finally security modules protecting the card against physical attacks.
  • the EEPROM stores persistent information with a very fast access time for reading, comparable to that of RAM (60 to 100 ns / word) but very slow for writing (1 to 10 ms / word).
  • the main interest of the smart card is its very high level of security. This security is obtained thanks to the hardware security modules present in the chip and also thanks to the very small size of the chips used ( ⁇ 25mm_) making physical attacks very complex and costly.
  • the smart card is undoubtedly the smallest and most secure of the "computers". However, the small size of the chips has an immediate impact on the storage capacity of memory components.
  • a microprocessor card has the following characteristics:
  • the security means is constituted by a microprocessor card.
  • the securing means consists of a key connectable to a port of client equipment.
  • the security means further comprises at least one counter for the execution of statistical queries.
  • the securing means further comprises a register for the temporary registration of the rights downloaded during the opening of a session with the server.
  • the securing means further comprises a memory for recording a part of the database.
  • This solution avoids the recording on the server of certain sensitive data.
  • the database is then divided into two parts, one saved on the server, the other saved on the security medium.
  • the invention also relates to a means of securing the exchanges between a client equipment and a server constituted by a secure hardware support connected to the client equipment and comprising a microprocessor for the encryption of the attributes of the requests sent by the client equipment and the decryption. responses from the server, RAM for recording intermediate results, non-writable memory for recording the operating system, and memory for saving user personalization information.
  • the invention also relates to a method for secure management of a database comprising a step of constructing a request comprising at least one attribute characterized in that it comprises a step of encrypting the attributes by a computer integral with a individual security device connected to client equipment, the method consisting in then interrogating a database containing encrypted data with the same encryption means as those used in the previous step, in returning a response containing the data corresponding to the attributes of the requests and to decrypt said data by said computer of an individual security device before transmitting it to the host equipment.
  • the encryption of the attributes of the request and the decryption of the response is carried out according to a DES algorithm.
  • the translation of requests is limited to equality predicates to allow the execution of said requests executable directly by the server on encrypted data.
  • the translation of queries comprising inequality predicates or calculation functions includes a step of decomposing the query Q into a plane Q t (Q c (Q s ))), of interrogating the base of encrypted data (3) by inequality requests from encrypted attributes, a step of recording the results of the requests in a temporary memory of the individual security means after decryption of the data, and of recomposition of the result;
  • Q s symbolizes the portion of the request that can be evaluated by the server directly on the encrypted data
  • Qc symbolizes the complement of this evaluable request by the means of security after decryption
  • Qt symbolizes the portion of request linked to the presentation and which can be deported to the terminal without reducing the degree of security.
  • part of the database is recorded in a memory of the individual security means.
  • FIG. 1 shows a schematic view of a system according to the invention
  • FIG. 2 represents a schematic view of the encryption of a table:
  • FIG. 3 shows a diagram of information flows between the client equipment and the server
  • FIG. 4 shows a diagram of information flows between the client equipment and the server, in an advanced version of the invention
  • FIG. 7 shows a schematic view of the treatments; - Figure 8 shows the architecture of the security card.
  • the description which follows relates to a nonlimiting example of implementation of the invention. It combines software (management of database requests and encryption algorithms) and hardware (code embedded on a smart card or hardware support ensuring the same level of security) technologies.
  • FIG. 1 represents a schematic view of a system according to the invention.
  • client equipment (1) which can be constituted by a microcomputer, or even portable equipment such as a PDA, a cell phone or any other equipment making it possible to consult a database. It is equipped with a calculator and applications for managing a database
  • This server (2) comprises a database (3) of known type.
  • the database contains exclusively data encrypted by the user, as will be explained in the following description.
  • the server (2) manages the data without having access to it.
  • the data server is relational technology (Oracle, DB2, SQL Server, Sybase, Informix ). Taking into account other types of data servers and other query languages can bring about some modifications in the algorithms presented, without calling into question the principles described in the description which follows.
  • the communication between the client equipment (1) and the server (2) passes through a microprocessor card (4) operated by a peripheral of the client equipment (1), for example a terminal connected to a USB port of the client equipment.
  • the encryption of the database is ensured by the card (4) in the following manner.
  • the card (4) intercepts all SQL requests for schema creation / modification as well as all SQL requests for inserting / modifying / destroying tuples in the tables.
  • the schema of the database as well as the data are encrypted by the card, for example with a secret key algorithm of the DES type.
  • the encryption algorithm used is called Encryption. These requests, the parameters of which are now encrypted, are then sent to the data server (2) like conventional requests. This technology therefore requires no modification of the DBMS used.
  • the data recorded in the server (2) is recorded in encrypted form.
  • the Product table (ref, name, type, price) is stored as table P (r, n, t, x) where P Number ("product"), r ⁇ Number (re), n ⁇ Encryption (name), etc.
  • P P Number
  • r Number
  • r Number
  • n Encryption
  • all of the data is encrypted, knowing that partial encryption of the data can also be considered.
  • the encryption is applied to the data as well as to global information such as the name of the table and the names of the items.
  • FIG. 3 represents the steps of a procedure for consulting the encrypted database.
  • the first step is to prepare a clear request on the client equipment (step 1).
  • This request is transmitted by the client equipment to the card (4) where the attributes of the request are encrypted before being transmitted to the server (2).
  • This request is then processed in the usual way, the search being carried out on criteria of equality between the encrypted content of the request and the content encrypted with the same digit, recorded in the database (3). (2nd step) .
  • the server therefore does not require any adaptation, the only difference with a traditional application coming from the fact that the search is carried out on encrypted attributes.
  • the response to this request again passes through the card (4), which converts the content to restore the data corresponding to the request in clear (step 3).
  • This clear data is then retransmitted to the client equipment, for viewing or recording in a local table (step 4).
  • This query evaluation technique is possible when all users sharing the same data have the same encryption key. This brings two important remarks: The encryption must in no case interfere with the access rights. With regard to rights, it is possible to encrypt the entire database with a single key. Each user has access only to the data to which he has a right, the key being known only by the card (4) and not by each user. For example, in the case where the security application is executed in a smart card, the key allowing to decrypt the whole database is present in the smart card of each user without this one n have access to it.
  • the definition of rights is stored on the server and is loaded dynamically (or simply refreshed) on the card when the user connects to the server.
  • the definition of rights must be stored encrypted on the server.
  • the power of the DBMS rights mechanism comes from the ability to assign a right to a user on views, that is to say virtual tables calculated by an SQL query. It then becomes possible to express rights of great finesse, for example: giving the right to a user to consult a view defined as the average salary of employees over 40 years working in the IT department without giving him any right to the data allowing this calculation to be made. Or a view V defined by the Qview request on which the user has the right D.
  • the description which follows relates to an improved version of the invention, making it possible to process any type of SQL request.
  • This extended solution means that the security application actively participates in the processing of the request in order to evaluate the predicates that cannot be evaluated by the server.
  • This interaction of the card security application (4) in the processing has two consequences. The first relates to the performance of the global execution and the second to the appearance of new perspectives to strengthen the protection of the data of the base.
  • the query Q In the case of complex queries (predicates inequality, calculation functions, aggregates 7), the query Q must be decomposed into a Q s evaluable part by the server on the encrypted data and its complement Q c to be assessed by the security application on the partial result, after decryption. It is essential that Q c is executed by the security application and not by the terminal because only C-SDA is executed in a secure environment.
  • user rights generally relate to views whose virtual content is calculated by a query. Therefore, only a treatment of Q c by the security application, without outsourcing confidential data, can guarantee the level of security expected by rights management. For example, a user may have the right to consult the result of an aggregate calculation without having the right to consult the elementary data from which this aggregate is calculated.
  • C-SDA In order to evaluate Q c , C-SDA must contain filtering functions (to deal with inequality predicates) and calculation functions. This is the subject of the second example.
  • Map Decryption of the result of Q s and evaluation of Q c (calculation of the mean).
  • Terminal Display of the result in clear.
  • the evaluation of Q c by the card (4) must be able to be made while respecting the constraints inherent in the card. These constraints make it necessary to evaluate Q c without ever materializing temporary results because the very low capacity of the RAM does not allow such a materialization in volatile memory and the cost of writing the EEPROM also makes this materialization impossible in stable memory.
  • the proposed solution consists in executing the whole of Q c in pipeline mode (ie, tuple to tuple).
  • Order by clause can be systematically transferred to the terminal and therefore constitutes a third request noted Q ⁇ . Indeed, the Order by clause does not influence the value of the result tuples but simply their ordering. This clause therefore has no effect on rights management and can therefore be executed outside of C-SDA.
  • step 1 The evaluation of Q s , as presented above, suggests that the Cartesian products are executed first (step 1). In fact, the assessment all or parts of 2s and 6s can be performed before step 1 by following traditional query optimization techniques (replacement of Cartesian products by joins, application of restrictions and projections as soon as possible). Q s is transmitted to the server as a standard SQL query, it will follow the traditional optimization process.
  • the card's security application decrypts the Date attribute of these tuples, selects only the tuples whose date is greater than 1996 and returns their key to the server in the form of a temporary table R;
  • the volume of data transferred is greatly reduced. Indeed, the additional cost compared to a traditional execution is limited to size (II key / ai (T)) + size ( ⁇ key ( ⁇ ai ⁇ value (T)). This principle applies similarly to inequalities -joints.
  • This technique can be combined with a horizontal fragmentation encryption technique which consists in using several encryption keys for different values of the same attribute.
  • the encryption key applied to each value is determined by applying a hash function to that value.
  • the result of the hash function h (v) gives the index of the encryption key to be used.
  • the pair (h (v), Number h (v) (v)) is stored in the base in place of each value. It is easy to show that the previous constraint is respected. In these two techniques, all of the encryption keys used are managed by the security card.
  • the security application To evaluate a request for data, part of which resides in a smart card, the security application must generate an execution plan distributed between two sites.
  • This task complex for a smart card, can be simplified by imposing a particular way of isolating sensitive data.
  • the idea is to delete sensitive data from the database stored on the server, replacing it with clues in a sensitive area (set of data without duplicates), stored on the smart card.
  • the credit card codes of a set of customers could be stored as indices in the 'credit card codes' area stored in the smart card.
  • This 'coding' of sensitive data can be seen as a very specific encryption of this data, encryption whose particularity is to be definitively unbreakable without the smart card.
  • static sensitive data i.e., without updates
  • This particular case is likely to represent a majority of practical cases (for example, personal or SME identification data).
  • the durability of static data can be ensured by redundant storage of this data in a backup smart card.
  • This backup card is only used in the event of loss, theft or destruction of the initial card.
  • Static sensitive data is shared by copying it to each user's smart cards. For this type of data, the level of security reached is maximum since no copy is accessible on any server and the content of the card is considered inviolable.
  • Figure 7 summarizes a joint use of all the techniques exposed in the previous sections, with C-SDA running in a smart card.
  • the security application contacts the rights and views server to update the list of rights and views of the user. He deciphers them with his key database.
  • the security application contacts the sharing / durability server in order to update the dynamic sensitive data hosted by the smart card.
  • the user issues a Q request.
  • the request if it involves views, is translated into a Q 1 request relating to basic relationships.
  • Q s is sent to the server which executes it on the encrypted data and returns the tuples results to the security application.
  • the result is decrypted by the security application using the key database.
  • the additional request Q c is executed by the security application.
  • the result may be supplemented with the values of sensitive data (DS) during projections.
  • DS sensitive data
  • FIG. 8 represents a view of the architecture of the security card (4).
  • the electronic circuit includes an input-output interface circuit (14) for exchanges with the client equipment (1) and the server (2).
  • the output of this circuit (14) is connected to a buffer memory (15).
  • the card also comprises a microprocessor (10) and an EEPROM memory (11) for recording the operating system and the security application and a memory (12) for recording the personal data of the user and in particular the encryption key or the encryption parameters of the user, as well as the data relating to the rights of the user.
  • a microprocessor (10) and an EEPROM memory (11) for recording the operating system and the security application
  • a memory (12) for recording the personal data of the user and in particular the encryption key or the encryption parameters of the user, as well as the data relating to the rights of the user.
  • the card also comprises a random access memory (15) comprising registers (16) for recording the intermediate data of the calculations, and a counter (17) for carrying out the calculations corresponding to queries containing statistical predicates such as averages.

Abstract

The invention concerns a secure management system of confidential databases comprising a server consisting of at least a computer equipped with means for recording databases and communication means, by at least a host computer equipment comprising means for communicating with the server and means for constructing requests and processing results of the requests, as well as means for making secure exchanges between the client equipment (1) and the server. The invention is characterised in that said securing means consists of a secure hardware support connected to the client equipment (1) and comprising a microprocessor for encrypting attributes of requests transmitted by the client equipment (1) and for decrypting replies transmitted by the server, a storage for recording intermediate results, a storage for recording the operating system and said server records encrypted data. The invention also concerns the method implemented by said system.

Description

PROCEDE DE SECURISATION DE BASES DE DONNEES METHOD FOR SECURING DATABASES
La présente invention concerne le domaine des systèmes d'information sécurisés, et plus particulièrement des systèmes et procédés de sécurisation de bases de données .The present invention relates to the field of secure information systems, and more particularly to systems and methods for securing databases.
La sécurisation des données est devenue un des enjeux majeurs des systèmes informatiques, compte tenu de la prolifération des données mises en ligne sur l'Internet (sites marchands, hébergement de données personnelles ou professionnelles, accès distants à des serveurs d'entreprise par des employés mobiles) et de l'interconnexion croissante de bases de données enrichies et consultées par de multiples acteurs (banques de données scientifiques, techniques, médicales) . Le besoin de sécurité est lié au caractère confidentiel d'un sous- ensemble de ces données. La motivation de pirates s 'attaquant aux données peut être multiple : tentative de fraude (vol de n° de cartes bancaires sur des sites marchands ...) , atteinte à la vie privée des particuliersData security has become one of the major challenges for computer systems, given the proliferation of data put online on the Internet (commercial sites, hosting of personal or professional data, remote access to corporate servers by employees mobile) and the growing interconnection of databases enriched and consulted by multiple actors (scientific, technical, medical databases). The need for security is linked to the confidential nature of a subset of this data. The motivation of hackers attacking the data can be multiple: attempted fraud (theft of bank card numbers on merchant sites ...), invasion of the privacy of individuals
(enquêtes policières, politiques, fiscales, financières, médicales ...) , guerres commerciales, diplomatiques ou militaires (système Echelon, violation de secrets industriels ou commerciaux, violation de la propriété intellectuelle ...) .(police, political, fiscal, financial, medical investigations ...), commercial, diplomatic or military wars (Echelon system, violation of industrial or commercial secrets, violation of intellectual property ...).
Le problème ne se réduit pas à se protéger contre des pirates externes s' introduisant sur le système informatique attaqué. En effet, les attaques internes, c'est-à-dire conduites par des employés ayant légalement accès à tout ou parties des données d'une entreprise, sont les plus fréquentes et les plus coûteuses.The problem is not limited to protecting oneself against external hackers entering the attacked computer system. In fact, internal attacks, that is, attacks by employees with legal access to all or part of a company's data, are the most frequent and the most expensive.
Trois classes de pirates susceptibles d'attaquer des bases de données peuvent être distinguées :Three classes of hackers capable of attacking databases can be distinguished:
Le pirate externe est un intrus qui s'infiltre sur un système informatique et récupère les fichiers de données produits par le SGBD. Pour se prémunir contre ce type d'attaque, une solution naturelle est de chiffrer les données afin de rendre leur empreinte disque illisible. Le pirate externe va alors tenter de casser la clé de chiffrement. Les attaques sur clés sont facilitées dans un contexte bases de données du fait du volume important de données chiffrées avec la même clé (attaques statistiques) . De plus, le chiffrement des données est statique (les clés ne changent pas d'une session à l'autre), augmentant par là-même la vulnérabilité de la base.The external hacker is an intruder who infiltrates a computer system and retrieves the data files produced by the DBMS. To protect against this type of attack, a natural solution is to encrypt data in order to make their disk imprint unreadable. The external hacker will then try to break the encryption key. Attacks on keys are facilitated in a database context due to the large volume of data encrypted with the same key (statistical attacks). In addition, data encryption is static (the keys do not change from one session to another), thereby increasing the vulnerability of the database.
- Le pirate utilisateur est un usager courant du système informatique reconnu par le système d'exploitation et le SGBD. Il possède des droits sur une partie d'une base de données partagée et veut accéder à des données outrepassant ses droits. Ce pirate a potentiellement le même pouvoir qu'un pirate externe et peut en plus exploiter ses droits restreints. Si la base est chiffrée, il possède en outre un accès à certaines clés de déchiffrement.- The user pirate is a current user of the computer system recognized by the operating system and the DBMS. He has rights to part of a shared database and wants to access data beyond his rights. This pirate potentially has the same power as an external pirate and can also exploit his restricted rights. If the database is encrypted, it also has access to certain decryption keys.
Le pirate administrateur ou DBA est un employé peu scrupuleux de l'entreprise dont la fonction est d'administrer les ressources informatiques de l'entreprise ou la base de données (DBA : Data Base Administrator) . A ce titre, il possède tous les droits système, il dispose d'informations inaccessibles à tout autre (ex : journaux mémorisant les opérations effectuées sur la base) et peut espionner le comportement du SGBD pendant son exécution. Notons qu'un pirate externe ou utilisateur arrivant à s'octroyer les droits d'administration possède les mêmes pouvoirs que le pirate administrateur.The administrator or DBA hacker is an unscrupulous employee of the company whose function is to administer the computer resources of the company or the database (DBA: Data Base Administrator). As such, it has all the system rights, it has information inaccessible to any other (ex: logs memorizing the operations carried out on the base) and can spy on the behavior of the DBMS during its execution. Note that an external hacker or user who manages to grant himself administrative rights has the same powers as the administrator hacker.
On connaît dans l'état de la technique plusieurs solutions pour sécuriser l'accès à des bases de données . Une première famille de solutions est basée sur l'identification et authentification des utilisateurs.Several solutions are known in the state of the art for securing access to databases. A first family of solutions is based on the identification and authentication of users.
Pour pouvoir utiliser un système de gestion de bases de données (SGBD) , tout utilisateur doit être identifié et authentifié. L' authentification se fait classiquement par le biais d'un mot de passe stocké de façon chiffrée dans un catalogue du SGBD, ce dernier contrôlant la correspondance entre identité et mot de passe de l'utilisateur à chaque nouvelle connexion. La procédure d' authentification peut être renforcée par l'utilisation d'un service dédié [Oracle Advanced Security Administrator Guide, Release 8.1.7, September 2000] . Ce service dédié évite le cheminement en clair du mot de passe sur le réseau. On connaît une variante qui permet d'authentifier un utilisateur par différents biais tels que carte à puce ou TokenCard. En plus de 1 ' authentification par un code personnel (PIN), l'élément matériel carte doit lui-même être reconnu par le serveur, augmentant ainsi le degré de sécurité. Ces mécanismes sont inopérants contre une attaque dirigée sur les fichiers contenant la base de données par un pirate externe (car le SGBD est alors court-circuité) ou contre une attaque menée par un pirate utilisateur ou DBA (qui n'auront aucun mal à s'authentifier).To be able to use a database management system (DBMS), all users must be identified and authenticated. Authentication is typically done using a password stored encrypted in a DBMS catalog, the latter checking the correspondence between the user's identity and password on each new connection. The authentication procedure can be reinforced by the use of a dedicated service [Oracle Advanced Security Administrator Guide, Release 8.1.7, September 2000]. This dedicated service avoids the clear passage of the password on the network. A variant is known which makes it possible to authenticate a user by various means such as a smart card or TokenCard. In addition to authentication by a personal code (PIN), the card hardware element must itself be recognized by the server, thereby increasing the degree of security. These mechanisms do not work against an attack directed on the files containing the database by an external pirate (because the DBMS is then short-circuited) or against an attack carried out by a user pirate or DBA (which will have no harm in s 'authenticate).
Une autre famille de solutions est basée sur la gestion des droits des utilisateurs. Dans un SGBD, les droits portant sur les données (consultation, insertion, mise à jour, destruction de données) peuvent être affectés aux utilisateurs, soit sur les tables de base (on obtient ainsi une gestion de droits primitive proche de celle offerte par un système d'exploitation), soit sur des vues (tables virtuelles calculées par une requête SQL) , soit encore sur des procédures stockées (le droit porte alors sur le déclenchement d'un traitement). Ces deux derniers cas permettent une gestion de droits sophistiquée et très sélective. Cependant, cette gestion de droit est inopérante contre une attaque dirigée sur les fichiers contenant la base de données (le SGBD est à nouveau court-circuité) ou contre une attaque menée par un DBA (car il possède tous les droits, y compris le droit de changer les droits) . Une autre solution est basée sur le chiffrement des communications. Le chiffrement des communications peut être utilisé en complément d'autres mécanismes de sécurité afin d'assurer notamment la confidentialité et l'intégrité des messages émis et reçus via un réseau. Leur utilisation dépasse largement le cadre des bases de données. Le protocole le plus connu dans ce domaine est SSL (Secure Soket Layer) . C-SET (Chip-Secured Transaction) , utilisé pour les paiements électroniques sur Internet, exploite des cartes à puce pour identifier et authentifier les utilisateurs et assurer le chiffrement des messages. L'identification est de ce fait bien associée au porteur de carte et non au terminal sur lequel il est connecté, la confidentialité des clés de chiffrement est assurée et les algorithmes de chiffrement sont exécutés dans un environnement sécurisé, même si le terminal est lui-même non sécurisé. Bien évidemment, le chiffrement des communications ne permet pas de se prémunir contre une attaque sur les fichiers contenant la base de données.Another family of solutions is based on user rights management. In a DBMS, the rights relating to the data (consultation, insertion, update, destruction of data) can be assigned to the users, either on the basic tables (one thus obtains a primitive management of rights close to that offered by a operating system), either on views (virtual tables calculated by an SQL query), or on stored procedures (the right then relates to the triggering of a processing). These last two cases allow sophisticated and very selective rights management. However, this management of rights is ineffective against an attack directed against the files containing the database (the DBMS is again short-circuited) or against an attack carried out by a DBA (because it has all the rights, including the right to change the rights). Another solution is based on encryption of communications. Communication encryption can be used in addition to other security mechanisms, in particular to ensure the confidentiality and integrity of messages sent and received over a network. Their use goes far beyond the framework of databases. The best known protocol in this field is SSL (Secure Soket Layer). C-SET (Chip-Secured Transaction), used for electronic payments on the Internet, uses smart cards to identify and authenticate users and ensure message encryption. The identification is therefore well associated with the card holder and not with the terminal to which it is connected, the confidentiality of the encryption keys is ensured and the encryption algorithms are executed in a secure environment, even if the terminal is itself even unsecured. Obviously, encryption of communications does not protect against an attack on the files containing the database.
D'autres solutions, complémentaire aux précédentes, consistent à chiffrer le contenu même de la base de données. Cette solution est la seule permettant de se prémunir contre des attaques dirigées sur les fichiers contenant la base de données. Elle n'est exploitée que depuis peu car sa mise en œuvre pose des problèmes complexes, comme mentionné ci-dessous.Other solutions, complementary to the previous ones, consist in encrypting the very content of the database. This solution is the only one making it possible to guard against attacks directed on the files containing the database. It has only been used for a short time because its implementation poses complex problems, as mentioned below.
La société Oracle (nom commercial) propose un package PL/SQL (ensemble de procédures stockées) permettant d'effectuer du chiffrement à clé secrète DES (Data Encryption Standard) [Oracle Technical White Paper. Database Security in Oracle 8i, November 1999] . La clé de chiffrement doit être passée en paramètre à la procédure PL/SQL de chiffrement/déchiffrement. La gestion des clés (notamment leur confidentialité) est laissée à la charge de l'application utilisant ce package. Cette gestion est d'autant plus délicate que les mêmes clés doivent être partagées par les utilisateurs partageant les mêmes données. D'autre part, cette technique de chiffrement ne permet pas de résister aux attaques d'un DBA car celui-ci possède le moyen d'intercepter les clés ou de substituer le package de chiffrement par un autre. Ce dernier problème paraît sans solution car restreindre les droits du DBA revient à l'empêcher d'accomplir sa tâche d'administration.The company Oracle (trade name) offers a PL / SQL package (set of stored procedures) allowing to perform secret key encryption DES (Data Encryption Standard) [Oracle Technical White Paper. Database Security in Oracle 8i, November 1999]. The key to encryption must be passed as a parameter to the PL / SQL encryption / decryption procedure. Key management (including confidentiality) is left to the application using this package. This management is all the more delicate since the same keys must be shared by users sharing the same data. On the other hand, this encryption technique does not allow to resist the attacks of a DBA because it has the means to intercept the keys or to replace the encryption package by another. This last problem seems to be unresolved because restricting the rights of the DBA amounts to preventing it from performing its administrative task.
Un article de recherche [J. He, M. Wang.A research article [J. He, Mr. Wang.
Cryptography and Relational Database Management Systems. Int. Database and Engineering Symposium (IDEAS), 2001] propose une solution de chiffrement plus fortement intégrée au SGBD censée (i) faciliter l'utilisation du chiffrement par les applications et (ii) résister aux attaques du DBA. Le premier objectif est atteint du fait que le SGBD assure lui-même la confidentialité des clés de chiffrementCryptography and Relational Database Management Systems. Int. Database and Engineering Symposium (IDEAS), 2001] offers an encryption solution more highly integrated into the DBMS intended to (i) facilitate the use of encryption by applications and (ii) resist attacks by DBA. The first objective is achieved by the fact that the DBMS itself ensures the confidentiality of the encryption keys
(celles-ci sont stockées dans un catalogue sécurisé) . Pour permettre le partage entre utilisateurs, les données sont chiffrées avec une clé secrète, celle-ci étant à son tour chiffrée avec la clé de chaque utilisateur. Le SGBD effectuant lui-même ce chiffrement, l'utilisateur n'a jamais accès aux clés. Une solution élégante est également proposée pour chiffrer la base de données avec un grand nombre de clés générées dynamiquement par le SGBD, rendant plus difficile les attaques statistiques conduites pour casser la (les) clé (s) de chiffrement. L'atteinte du second objectif (résister aux attaques du DBA) passe par la réalisation du catalogue sécurisé dans lequel sont stockées les clés de chiffrement. Celui-ci est implanté de sorte à constituer un SOE (Secure Operating Environment) dans lequel le pouvoir du DBA est considérablement réduit. Transformer un catalogue en SOE ne rend pas l'intégralité du SGBD SOE. Dans cette méthode, comme dans celle d'Oracle, le chiffrement et le déchiffrement sont toujours assurés par le serveur. Il paraît alors illusoire d'assurer que le DBA ne pourra jamais accéder aux données en clair (par exemple pendant l'exécution d'une requête ou dans les journaux) , à moins de restreindre ses droits à un point tel que toute tâche d'administration s'avérera impossible. Pour cette raison, la solution semble peu convaincante, d'autant plus qu'elle impose la réécriture d'une partie (dont les contours restent à préciser) du noyau du SGBD.(these are stored in a secure catalog). To allow sharing between users, the data is encrypted with a secret key, which in turn is encrypted with the key of each user. Since the DBMS itself performs this encryption, the user never has access to the keys. An elegant solution is also proposed to encrypt the database with a large number of keys dynamically generated by the DBMS, making it more difficult the statistical attacks carried out to break the encryption key (s). Achieving the second objective (to resist attacks from the DBA) requires the creation of the secure catalog in which the encryption keys are stored. This is implemented so as to constitute an SOE (Secure Operating Environment) in which the power of the DBA is considerably reduced. Transforming a catalog into SOE does not make the entire DBMS SOE. In this method, as in that of Oracle, encryption and decryption are always provided by the server. It then seems illusory to ensure that the DBA will never be able to access data in the clear (for example during the execution of a query or in the newspapers), unless his rights are limited to such an extent that any task of administration will prove impossible. For this reason, the solution seems unconvincing, especially since it requires the rewriting of a part (whose contours remain to be specified) of the DBMS core.
La société Protegrity propose une solution de chiffrement de données, appelée Secure.Data [P. Nilsson, U. Mattsson. Secure. Data Functional Overview, Doc. TWP-0011, Protegrity Inc., January 2000], adaptable à différents SGBD. Cette solution, dont le principe est proche de celui proposé par IBM, repose sur deux modules distincts. Secure .Manager est un serveur de sécurité indépendant du SGBD hôte qui prend en charge la gestion des utilisateurs, des droits d'accès et des clés de chiffrement. Il joue donc le rôle du catalogue sécurisé introduit précédemment. Secure . Server est un module intégré au SGBD hôte qui s 'interface avec Secure .Manager et exécute les primitives de chiffrement/déchiffrement de données à la volée, pendant l'exécution des requêtes. Selon Protegrity, la sécurité de la solution repose sur une séparation stricte des rôles de DBA (Database Administrator) et de SA (Security Administrator gérant le Secure .Manager) , ces rôles étant joués par des personnes physiques différentes. Au-delà du fait que ce principe de séparation physique puisse être difficile à garantir dans la pratique, chiffrement et déchiffrement sont toujours assurés par le SGBD. Ce dernier n'étant toujours pas un SOE, la protection vis-à-vis du DBA reste toute relative. Les solutions de l'art antérieur ne sont pas totalement satisfaisantes, car :Protegrity offers a data encryption solution, called Secure.Data [P. Nilsson, U. Mattsson. Secure. Data Functional Overview, Doc. TWP-0011, Protegrity Inc., January 2000], adaptable to different DBMS. This solution, the principle of which is close to that proposed by IBM, is based on two separate modules. Secure .Manager is a security server independent of the host DBMS that supports the management of users, access rights and encryption keys. It therefore plays the role of the secure catalog previously introduced. Secure. Server is a module integrated into the host DBMS which interfaces with Secure .Manager and executes the data encryption / decryption primitives on the fly, during the execution of requests. According to Protegrity, the security of the solution rests on a strict separation of the roles of DBA (Database Administrator) and SA (Security Administrator managing the Secure .Manager), these roles being played by different physical persons. Beyond the fact that this principle of physical separation can be difficult to guarantee in practice, encryption and decryption are always ensured by the DBMS. Since the latter is still not an SOE, the protection vis-à-vis the DBA remains very relative. The solutions of the prior art are not entirely satisfactory, because:
Seul le chiffrement des données permet de résister aux attaques conduites sur les fichiers de la base - Pour résister aux attaques du DBA ou d'un pirate ayant usurpé les droits de ce dernier, le noyau de sécurité (incluant le chiffrement/déchiffrement) doit être géré dans un SOE .Only data encryption can resist attacks on database files - To resist attacks by the DBA or a hacker who has usurped the rights of the latter, the security core (including encryption / decryption) must be managed in an SOE.
Le noyau de sécurité et le SOE l'englobant doivent être suffisamment simples pour être auto- administrables .The security core and the surrounding SOE must be simple enough to be self-administrating.
Un SGBD n'est pas auto-administrable . Le but de la présente invention est de remédier à ces inconvénients en proposant un système et un procédé garantissant un degré de protection maximal contre tout type d'attaque (interne ou externe) visant des données mises en ligne sur un réseau quelconque et gérées par un Système de Gestion de Bases de Données (SGBD) traditionnel. Les buts de l'invention sont les suivants : - assurer une confidentialité parfaite des données gérées par un SGBD,A DBMS is not self-administered. The aim of the present invention is to remedy these drawbacks by proposing a system and a method guaranteeing a maximum degree of protection against any type of attack (internal or external) targeting data put online on any network and managed by a Traditional Database Management System (DBMS). The aims of the invention are as follows: - to ensure perfect confidentiality of the data managed by a DBMS,
- offrir aux utilisateurs un accès sécurisé à toutes données auxquelles ils ont légalement accès depuis n'importe quel terminal connecté à Internet, - permettre à chaque utilisateur de partager ses données avec d'autres utilisateurs,- offer users secure access to all data to which they have legal access from any terminal connected to the Internet, - allow each user to share their data with other users,
- être compatible avec les outils logiciels (SGBD) et matériels (cartes à puce) existants sur le marché.- be compatible with existing software (SGBD) and hardware (smart cards) tools on the market.
A cet effet, l'invention concerne selon son acception la plus générale un système de gestion sécurisée de bases de données confidentielles comprenant un serveur constitué par au moins un ordinateur équipé de moyens d'enregistrement de bases de données et de moyens de communication, par au moins équipement informatique hôte comprenant des moyens de communication avec le serveur et des moyens pour la construction de requêtes et le traitement des résultats des requêtes, ainsi qu'un moyen de sécurisation des échanges entre l'équipement client et le serveur (désigné également dans la suite sous le terme C- SDA, pour "Chip-Secured Data Access"), caractérisé en ce que ledit moyen de sécurisation est constitué par un support matériel sécurisé s ' interfaçant entre l'équipement client et le serveur et comportant un microprocesseur pour le chiffrement des attributs des requêtes émises par l'équipement client et le déchiffrement des réponses émises par le serveur, une mémoire vive pour l'enregistrement de résultats intermédiaires, une mémoire non inscriptible pour l'enregistrement du système d'exploitation et une mémoire pour l'enregistrement des informations de personnalisation de l'utilisateur et que ledit serveur enregistre des données chiffrées.To this end, the invention relates, in its most general sense, to a secure management system for confidential databases comprising a server consisting of at least one computer equipped with means for recording databases and means of communication, by at least host computer equipment comprising means of communication with the server and means for constructing requests and processing the results of requests, as well as a means for securing exchanges between the client equipment and the server (also referred to below as C-SDA, for "Chip-Secured Data Access "), characterized in that said securing means is constituted by a secure hardware medium interfacing between the client equipment and the server and comprising a microprocessor for the encryption of the attributes of the requests sent by the client equipment and the decryption of the responses sent by the server, a random access memory for recording intermediate results, a non-writable memory for recording the operating system and a memory for recording user personalization information and that said server saves encrypted data.
Selon un mode de réalisation préféré de l'invention, le (s) client (s) et le serveur sont reliés par des moyens de communication connectés à un réseau de télécommunication (Internet, intranet, ...) . Selon une variante, le client et le serveur sont installés sur la même machine physique et les moyens de communication correspondent à des moyens de communication internes à un ordinateur, voire à des moyens de communication logiciels. Ce système répond aux objectifs visés en assurant une confidentialité parfaite des données gérées par unAccording to a preferred embodiment of the invention, the client (s) and the server are connected by means of communication connected to a telecommunications network (Internet, intranet, etc.). According to a variant, the client and the server are installed on the same physical machine and the communication means correspond to means of communication internal to a computer, or even to software communication means. This system meets the objectives set by ensuring perfect confidentiality of the data managed by a
SGBD, vis-à-vis des trois classes de pirates citées précédemment, en offrant aux utilisateurs un accèsDBMS, vis-à-vis the three classes of hackers mentioned above, by offering users access
(interrogation / modification) sécurisé à toutes données auxquelles ils ont légalement accès depuis n'importe quel terminal connecté à Internet, et en permettant à chaque utilisateur de partager ses données avec d'autres utilisateurs .(interrogation / modification) secure to all data to which they have legal access from any terminal connected to the Internet, and by allowing each user to share their data with other users.
L'invention prend en compte les contraintes suivantes : - la base de données peut être gérée par tout SGBD commercial traditionnel,The invention takes into account the following constraints: - the database can be managed by any traditional commercial DBMS,
- le support matériel sécurisé utilisé est de technologie courante (par exemple, une carte à puce conventionnelle) ,- the secure hardware support used is current technology (for example, a conventional smart card),
- les algorithmes de chiffrement utilisés sont connus .- the encryption algorithms used are known.
Les applications de l'invention sont diverses, et prennent en compte le développement de l'informatique mobile qui traduit une tendance croissante des utilisateurs à accéder à leurs données à tout moment, de n'importe où et surtout à partir de n' importe quel terminal (PC, assistant personnel, téléphone cellulaire, borne banalisée ...) . Ceci suppose que les données de l'utilisateur sont hébergées par un prestataire de service garantissant un stockage et un accès permanent, tolérant aux pannes et sécurisé à ces données. Les données hébergées dans ce contexte sont généralement personnelles, par exemple :The applications of the invention are diverse, and take into account the development of mobile computing which reflects a growing tendency of users to access their data anytime, from anywhere and especially from any terminal (PC, personal assistant, cell phone, unmarked terminal, etc.). This assumes that the user data is hosted by a service provider guaranteeing permanent storage and access, fault tolerant and secure. The data hosted in this context is generally personal, for example:
- le dossier médical, qui contient des données hautement confidentielles et qu'un patient veut pouvoir accéder chez le médecin, à la pharmacie, chez lui, en voyage, etc.- the medical file, which contains highly confidential data and which a patient wants to be able to access at the doctor, at the pharmacy, at home, while traveling, etc.
- le courrier électronique qui, de plus en plus, devient un outil de travail et contient bien sûr des informations confidentielles.- electronic mail which, more and more, is becoming a working tool and of course contains confidential information.
-l'environnement virtuel ou virtual home, qui répertorie des informations privées de diverses natures telles que : données bancaires, agenda, carnet d'adresses, mots de passes, bookmarks , cookies ..., et qui doivent pouvoir être accédées de n'importe où.-the virtual or virtual home environment, which lists private information of various kinds such as: bank data, calendar, address book, passwords, bookmarks, cookies ..., and which must be able to be accessed by n ' anywhere.
Ces applications personnelles se caractérisent par les besoins suivants :These personal applications are characterized by the following needs:
- données devant être accessibles de n'importe où et à tout moment, - données hautement confidentielles car personnelles ,- data to be accessible from anywhere and at any time, - highly confidential as personal data,
- données partagées par plusieurs acteurs humains (ex : dossier médical) ou logiciels (virtual home) , - petit volume de données,- data shared by several human actors (e.g. medical record) or software (virtual home), - small volume of data,
- interrogations complexes (inégalités sur dates ou valeurs, recherche textuelle sur libellé, calculs d'agrégats et de groupement ...) .- complex interrogations (inequalities on dates or values, textual search on wording, calculations of aggregates and grouping ...).
Elle concerne également les situations où un utilisateur fait appel aux services d'un hébergeur de données pour stocker des données comptables, des données liées à des procédés de fabrication ou des informations confidentielles sur ses clients et fournisseurs. En effet, une PME dispose rarement de l'ensemble des moyens techniques et humains nécessaires à la sécurisation de ces données contre des attaques directes (piratage, vol) ou indirectes (virus informatique). De plus, la motivation initiale d'une PME pour recourir aux services d'un hébergeur peut être en priorité d'assurer la durabilité de ses données (tolérance aux pannes) , le besoin de confidentialité étant alors induit par le fait que les données de l'utilisateur sont externalisées . La confidentialité des données est liée à la protection de l'entreprise vis-à-vis de la concurrence (ex : secret de fabrication, stratégie commerciale ...) et à sa crédibilité vis-à-vis de ses clients (ex : n° de cartes bancaires) . Cette classe d'application introduit le même type de besoin que la précédente, avec la contrainte supplémentaire que le volume de données est potentiellement beaucoup plus grand. L'invention concerne également un procédé mettant en œuvre une application de sécurité qui s 'interface entre un client et un serveur de données et il respecte les règles suivantes :It also relates to situations where a user uses the services of a data host to store accounting data, data related to manufacturing processes or confidential information about his customers and suppliers. Indeed, an SME rarely has all the technical and human resources necessary to secure this data against direct attacks (hacking, theft) or indirect attacks (computer virus). In addition, the initial motivation of an SME to use the services of a host can be primarily to ensure the sustainability of its data (fault tolerance), the need for confidentiality being then induced by the fact that the data of the user are outsourced. Data confidentiality is linked to the company's protection from competition (e.g. manufacturing secrets, business strategy, etc.) and its credibility vis-à-vis its customers (e.g. n ° of bank cards). This application class introduces the same type of requirement as the previous one, with the additional constraint that the volume of data is potentially much larger. The invention also relates to a method implementing a security application which interfaces between a client and a data server and it complies with the following rules:
Chiffrement des données à protéger stockées sur le serveur, Gestion des requêtes portant sur les données chiffrées et le déchiffrement des résultats,Encryption of the data to be protected stored on the server, Management of requests for encrypted data and decryption of results,
Gestion des privilèges (droits d'accès) de chaque utilisateur, Cette application de sécurité est auto- administrable, et s'exécute sur une plateforme matérielle et logicielle sécurisée (SOE). Tout manquement à l'une de ces règles introduit un trou de sécurité tels que ceux identifiés dans la section précédente. Ces cinq règles déterminent les éléments techniques de la solution proposée et en font probablement l'unique solution au problème posé.Management of the privileges (access rights) of each user, This security application is self-administrating, and runs on a secure hardware and software platform (SOE). Any breach of any of these rules introduces a safety hole such as those identified in the previous section. These five rules determine the technical elements of the proposed solution and probably make it the only solution to the problem posed.
Selon une variante préférée, le moyen de sécurisation est constitué par une carte à microprocesseur.According to a preferred variant, the securing means is constituted by a microprocessor card.
Les cartes à puce de dernière génération comprennent sur une puce monolithique, un processeur RISC 32 bits à environ 30 MIPS, des modules mémoire (d'environ 96 Ko de ROM, 4 Ko de RAM et 128 Ko d'EE-PROM) , un composant d' I/O gérant les communications avec le terminal et enfin des modules de sécurité protégeant la carte contre des attaques physiques. L'EEPROM permet de stocker des informations persistantes avec un temps d'accès très rapide en lecture, comparable à celui de la RAM (60 à 100 ns/mot) mais très lent en écriture (1 à 10 ms/mot) . L'intérêt principal de la carte à puce est son très haut niveau de sécurité. Cette sécurité est obtenue grâce aux modules de sécurité matériels présents dans la puce et grâce également à la très faible taille des puces utilisées (< 25mm_) rendant les attaques physiques très complexes et coûteuses . La carte à puce est sans aucun doute le plus petit et le plus sûr des "ordinateurs". Cependant, la faible taille des puces a une incidence immédiate sur la capacité de stockage des composants mémoire. Une carte à microprocesseur se traduit par les caractéristiques suivantes :The latest generation smart cards include on a monolithic chip, a 32-bit RISC processor at about 30 MIPS, memory modules (about 96 KB of ROM, 4 KB of RAM and 128 KB of EE-PROM), a component of I / O managing communications with the terminal and finally security modules protecting the card against physical attacks. The EEPROM stores persistent information with a very fast access time for reading, comparable to that of RAM (60 to 100 ns / word) but very slow for writing (1 to 10 ms / word). The main interest of the smart card is its very high level of security. This security is obtained thanks to the hardware security modules present in the chip and also thanks to the very small size of the chips used (<25mm_) making physical attacks very complex and costly. The smart card is undoubtedly the smallest and most secure of the "computers". However, the small size of the chips has an immediate impact on the storage capacity of memory components. A microprocessor card has the following characteristics:
- sécurité maximale des données et du code hébergés dans la puce, - processeur puissant (notamment pour les fonctions de chiffrement/déchiffrement) ,- maximum security of data and code hosted on the chip, - powerful processor (especially for encryption / decryption functions),
- très faible capacité de la RAM,- very low RAM capacity,
- capacité du stockage persistant en constante extension mais temps d'écriture très lent.- persistent storage capacity in constant extension but very slow writing time.
Selon une variante préférée de l'invention, le moyen de sécurisation est constitué par une carte à microprocesseur.According to a preferred variant of the invention, the security means is constituted by a microprocessor card.
Selon une autre variante, le moyen de sécurisation est constitué par une clé raccordable sur un port d'un équipement client.According to another variant, the securing means consists of a key connectable to a port of client equipment.
De préférence, le moyen de sécurisation comporte en outre au moins un compteur pour l'exécution de requêtes statistiques . De préférence, le moyen de sécurisation comporte en outre un registre pour l'enregistrement temporaire des droits téléchargés lors de l'ouverture d'une session avec le serveur.Preferably, the security means further comprises at least one counter for the execution of statistical queries. Preferably, the securing means further comprises a register for the temporary registration of the rights downloaded during the opening of a session with the server.
Selon une mode de mise en œuvre avantageux, le moyen de sécurisation comporte en outre une mémoire pour l'enregistrement d'une partie de la base de données.According to an advantageous embodiment, the securing means further comprises a memory for recording a part of the database.
Cette solution permet d'éviter l'enregistrement sur le serveur de certaines données sensibles . La base de données est alors divisée en deux parties, l'une enregistrée sur le serveur, l'autre enregistrée sur le support de sécurisation.This solution avoids the recording on the server of certain sensitive data. The database is then divided into two parts, one saved on the server, the other saved on the security medium.
L'invention concerne également un moyen de sécurisation des échanges entre un équipement client et un serveur constitué par un support matériel sécurisé relié à l'équipement client et comportant un microprocesseur pour le chiffrement des attributs des requêtes émises par l'équipement client et le déchiffrement des réponses émises par le serveur, une mémoire vive pour l'enregistrement de résultats intermédiaires, une mémoire non inscriptible pour l'enregistrement du système d'exploitation et une mémoire pour l'enregistrement des informations de personnalisation de l'utilisateur.The invention also relates to a means of securing the exchanges between a client equipment and a server constituted by a secure hardware support connected to the client equipment and comprising a microprocessor for the encryption of the attributes of the requests sent by the client equipment and the decryption. responses from the server, RAM for recording intermediate results, non-writable memory for recording the operating system, and memory for saving user personalization information.
Selon une variante, il comporte en outre au moins un compteur pour l'exécution de requêtes statistiques. L'invention concerne également un procédé de gestion sécurisée d'une base de données comportant une étape de construction d'une requête comprenant au moins un attribut caractérisé en ce qu' il comporte une étape de chiffrement des attributs par un calculateur solidaire d'un dispositif individuel de sécurité relié à un équipement client, le procédé consistant à interroger ensuite une base de données contenant des données chiffrées avec les mêmes moyens de chiffrement que ceux utilisés lors de l'étape précédente, à retourner une réponse contenant les données correspondant aux attributs de la requêtes et à procéder au déchiffrement desdites données par ledit calculateur d'un dispositif individuel de sécurité avant de les transmettre à 1 ' équipement hôte .According to a variant, it further comprises at least one counter for the execution of statistical queries. The invention also relates to a method for secure management of a database comprising a step of constructing a request comprising at least one attribute characterized in that it comprises a step of encrypting the attributes by a computer integral with a individual security device connected to client equipment, the method consisting in then interrogating a database containing encrypted data with the same encryption means as those used in the previous step, in returning a response containing the data corresponding to the attributes of the requests and to decrypt said data by said computer of an individual security device before transmitting it to the host equipment.
Selon un mode de mise en œuvre particulier, le chiffrement des attributs de la requête et le déchiffrement de la réponse est réalisé selon un algorithme DES.According to a particular implementation mode, the encryption of the attributes of the request and the decryption of the response is carried out according to a DES algorithm.
Selon une variante simplifiée, la traduction de requêtes est limitée aux prédicats d'égalité pour permettre l'exécution desdites requêtes exécutables directement par le serveur sur des données chiffrées.According to a simplified variant, the translation of requests is limited to equality predicates to allow the execution of said requests executable directly by the server on encrypted data.
Selon une variante préférée, la traduction de requêtes comportant des prédicats d'inégalité ou fonctions de calcul comporte une étape de décomposition de la requête Q en un plan Qt(Qc(Qs))), d'interrogation de la base de données chiffrées (3) par des requêtes d'inégalités à partir d'attributs chiffrés, une étape d'enregistrement des résultats des requêtes dans une mémoire temporaire du moyen de sécurisation individuel après déchiffrement des données, et de recomposition du résultat ; Qs symbolise la portion de requête évaluable par le serveur directement sur les données chiffrées, Qc symbolise le complément de cette requête évaluable par le moyen de sécurisation après déchiffrement et Qt symbolise la portion de requête liée à la présentation et pouvant être déportée sur le terminal sans réduire le degré de sécurité.According to a preferred variant, the translation of queries comprising inequality predicates or calculation functions includes a step of decomposing the query Q into a plane Q t (Q c (Q s ))), of interrogating the base of encrypted data (3) by inequality requests from encrypted attributes, a step of recording the results of the requests in a temporary memory of the individual security means after decryption of the data, and of recomposition of the result; Q s symbolizes the portion of the request that can be evaluated by the server directly on the encrypted data, Qc symbolizes the complement of this evaluable request by the means of security after decryption and Qt symbolizes the portion of request linked to the presentation and which can be deported to the terminal without reducing the degree of security.
Selon une autre variante, la traduction de requêtes comportant des prédicats d' inégalité ou fonctions de calcul comporte une étape de décomposition d'une requête en un plan Q = Q t (Q C(Q S (* [Q C P (QS P) ] ) ) ) • où Qc? et Qs? sont des requêtes de préparation, d' interrogation de la base de données chiffrées (3) par des requêtes d'inégalités à partir d'attributs chiffrés, une étape d'enregistrement des résultats des requêtes dans une mémoire temporaire du moyen de sécurisation individuel après déchiffrement des données, et de recomposition du résultat.According to another variant, the translation of queries comprising inequality predicates or calculation functions includes a step of decomposing a query into a plane Q = Q t ( Q C ( Q S (* [ Q C P (Q S P )]))) • where Q c ? and Qs ? are preparation requests, interrogation of the encrypted database (3) by inequality requests from encrypted attributes, a step of recording the results of the requests in a temporary memory of the individual security means after decryption of data, and recomposition of the result.
Selon un mode de mise en œuvre particulier, une partie de la base des données est enregistrée dans une mémoire du moyen individuel de sécurisation.According to a particular mode of implementation, part of the database is recorded in a memory of the individual security means.
L' invention sera mieux comprise à la lecture de la description d'un exemple non limitatif de réalisation, se référant aux dessins annexés où :The invention will be better understood on reading the description of a nonlimiting exemplary embodiment, referring to the appended drawings where:
- la figure 1 représente une vue schématique d'un système selon l'invention ;- Figure 1 shows a schematic view of a system according to the invention;
- la figure 2 représente une vue schématique du chiffrement d'une table :FIG. 2 represents a schematic view of the encryption of a table:
- la figure 3 représente un diagramme des flux d'informations entre l'équipement client et le serveur ;- Figure 3 shows a diagram of information flows between the client equipment and the server;
- la figure 4 représente un diagramme des flux d'informations entre l'équipement client et le serveur, dans une version évoluée de l'invention ;- Figure 4 shows a diagram of information flows between the client equipment and the server, in an advanced version of the invention;
- Les figures 5 et 6 représentent les schémas d'exécution de requête 'complexe'- Figures 5 and 6 show the execution diagrams of 'complex' query
- La figure 7 représente une vue schématique des traitements ; - la figure 8 représente l'architecture de la carte de sécurisation.- Figure 7 shows a schematic view of the treatments; - Figure 8 shows the architecture of the security card.
La description qui suit concerne un exemple non limitatif de mise en œuvre de l'invention. Elle associe des technologies logicielles (gestion de requêtes bases de données et algorithmes de chiffrement) et matérielles (code embarqué sur une carte à puce ou un support matériel assurant le même niveau de sécurité) .The description which follows relates to a nonlimiting example of implementation of the invention. It combines software (management of database requests and encryption algorithms) and hardware (code embedded on a smart card or hardware support ensuring the same level of security) technologies.
La figure 1 représente une vue schématique d'un système selon l'invention.FIG. 1 represents a schematic view of a system according to the invention.
Il comporte un équipement client (1) qui peut être constitué par un micro-ordinateur, ou encore un équipement portable tel qu'un PDA, un téléphone cellulaire ou tout autre équipement permettant de consulter une base de données . Il est équipé avec un calculateur et des applications pour la gestion d'une base de donnéesIt includes client equipment (1) which can be constituted by a microcomputer, or even portable equipment such as a PDA, a cell phone or any other equipment making it possible to consult a database. It is equipped with a calculator and applications for managing a database
(insertion de données, consultations, modifications des données) et pour l'établissement d'une session avec un serveur (2) auquel il est relié par un réseau de télécommunication (Internet, extranet, intranet, réseau GSM,...) .(data insertion, consultations, data modifications) and for the establishment of a session with a server (2) to which it is connected by a telecommunications network (Internet, extranet, intranet, GSM network, ...).
Ce serveur (2) comporte une base de données (3) de type connu. La base de données contient exclusivement des données chiffrées par l'utilisateur, comme cela sera exposé dans la suite de la description. Le serveur (2) gère les données sans pour autant y avoir accès . Le serveur de données est de technologie relationnelle (Oracle, DB2 , SQL Server, Sybase, Informix ...) . La prise en compte d'autres types de serveurs de données et d'autres langages de requêtes peut amener quelques modifications dans les algorithmes présentés, sans remettre en cause les principes décrits dans la description qui suit.This server (2) comprises a database (3) of known type. The database contains exclusively data encrypted by the user, as will be explained in the following description. The server (2) manages the data without having access to it. The data server is relational technology (Oracle, DB2, SQL Server, Sybase, Informix ...). Taking into account other types of data servers and other query languages can bring about some modifications in the algorithms presented, without calling into question the principles described in the description which follows.
La communication entre l'équipement client (1) et le serveur (2) transite par une carte à microprocesseur (4) exploitée par un périphérique de l'équipement client (1), par exemple un terminal raccordé sur un port USB de l'équipement client.The communication between the client equipment (1) and the server (2) passes through a microprocessor card (4) operated by a peripheral of the client equipment (1), for example a terminal connected to a USB port of the client equipment.
Le chiffrement de la base de données est assuré par la carte (4) de la façon suivante. La carte (4) intercepte toutes les requêtes SQL de création/modification de schéma ainsi que toutes les requêtes SQL d' insertion/modification/destruction de tuples dans les tables. Le schéma de la base de données ainsi que les données sont chiffrées par la carte, par exemple avec un algorithme à clé secrète de type DES. Dans la suite, l'algorithme de chiffrement utilisé est appelé Chiffre. Ces requêtes, dont les paramètres sont désormais chiffrés, sont ensuite envoyées au serveur de données (2) comme des requêtes classiques. Cette technologie ne demande donc aucune modification du SGBD utilisé.The encryption of the database is ensured by the card (4) in the following manner. The card (4) intercepts all SQL requests for schema creation / modification as well as all SQL requests for inserting / modifying / destroying tuples in the tables. The schema of the database as well as the data are encrypted by the card, for example with a secret key algorithm of the DES type. In the following, the encryption algorithm used is called Encryption. These requests, the parameters of which are now encrypted, are then sent to the data server (2) like conventional requests. This technology therefore requires no modification of the DBMS used.
Les données enregistrées dans le serveur (2) sont enregistrées sous forme chiffrée. Comme illustré sur la figure 2, la table Produit (ref, nom, type, prix) est stockée comme table P(r, n, t, x) où P Chiffre ("produit") , r ≈ Chiffre (re ) , n ≈ Chiffre (nom) , etc.. Dans cet exemple, l'intégralité des données est chiffrée, sachant qu'un chiffrement partiel des données peut également être envisagé.The data recorded in the server (2) is recorded in encrypted form. As illustrated in Figure 2, the Product table (ref, name, type, price) is stored as table P (r, n, t, x) where P Number ("product"), r ≈ Number (re), n ≈ Encryption (name), etc. In this example, all of the data is encrypted, knowing that partial encryption of the data can also be considered.
Le chiffrement est appliqué aux données ainsi qu'aux informations globales telles que le nom de la table et les noms des rubriques.The encryption is applied to the data as well as to global information such as the name of the table and the names of the items.
La figure 3 représente les étapes d'une procédure de consultation de la base de données chiffrées.FIG. 3 represents the steps of a procedure for consulting the encrypted database.
On procède à une première étape consistant à préparer une requête en clair sur l'équipement client (étape 1) .The first step is to prepare a clear request on the client equipment (step 1).
Cette requête est transmise par l'équipement client à la carte (4) où les attributs de la requête sont chiffrés avant d'être transmis au serveur (2). Cette requête est alors traitée de façon habituelle, la recherche s 'effectuant sur critères d'égalité entre le contenu chiffré de la requête et le contenu chiffré avec le même chiffre, enregistré dans la base de données (3) . (étape 2) . Le serveur ne nécessite donc aucune adaptation, la seule différence avec une application traditionnelle venant du fait que la recherche s'effectue sur des attributs chiffrés .This request is transmitted by the client equipment to the card (4) where the attributes of the request are encrypted before being transmitted to the server (2). This request is then processed in the usual way, the search being carried out on criteria of equality between the encrypted content of the request and the content encrypted with the same digit, recorded in the database (3). (2nd step) . The server therefore does not require any adaptation, the only difference with a traditional application coming from the fact that the search is carried out on encrypted attributes.
La réponse à cette requête transite à nouveau par la carte (4) , qui procède à une conversion du contenu pour restituer les données correspondant à la requête en clair (étape 3) . Ces données en clair sont ensuite retransmises à l'équipement client, pour la visualisation ou l'enregistrement dans une table locale (étape 4).The response to this request again passes through the card (4), which converts the content to restore the data corresponding to the request in clear (step 3). This clear data is then retransmitted to the client equipment, for viewing or recording in a local table (step 4).
Cette technique permet d'exécuter toute requête sur des données chiffrées ne faisant intervenir que des prédicats d'égalité (attribut = valeur ou attribut = attribut) sans fonction de calcul (agrégat, ...) . En effet, les propriétés des algorithmes de chiffrement ne permettent pas, de façon générale, d'évaluer des prédicats d'inégalité ni des fonctions de calcul sur des données chiffrées. Cette contrainte est forte car :This technique makes it possible to execute any query on encrypted data using only equality predicates (attribute = value or attribute = attribute) without calculation function (aggregate, ...). Indeed, the properties of encryption algorithms generally do not allow to evaluate inequality predicates or calculation functions on encrypted data. This constraint is strong because:
Elle limite les capacités d'interrogation des utilisateurs,It limits users' interrogation capacities,
Elle limite de la même façon la puissance d'expression des droits d'accès.In the same way, it limits the power of expression of access rights.
La résolution d'une requête SQL simple du type "sélect* from produit where type = 'pentium3'", permettant de retrouver tous les produits de type pentium3, sera effectuée comme suit : 1. Terminal (1) : saisie de la requête en clairThe resolution of a simple SQL request of the type "select * from product where type = 'pentium3'", allowing to find all products of type pentium3, will be carried out as follows: 1. Terminal (1): input of the request in clear
2. Carte (4) : chiffrement et envoi de la requête chiffrée au serveur : sélect * from Chiffre (Produit) where Chiffre (type) = Chiffre ( "pentium3" ) 3. Serveur (2) : Résolution de la requête sur les données chiffrées (transparent pour le SGBD)2. Card (4): encryption and sending of the encrypted request to the server: select * from Cipher (Product) where Cipher (type) = Cipher ("pentium3") 3. Server (2): Resolution of the request on the encrypted data (transparent for the DBMS)
4. Carte (4) : Déchiffrement du résultat4. Card (4): Deciphering the result
5. Terminal : Affichage du résultat en clair.5. Terminal: Display of the result in clear.
Cette technique d' évaluation de requêtes est possible lorsque tous les utilisateurs partageant les mêmes données possèdent la même clé de chiffrement. Ceci amène deux remarques importantes : Le chiffrement ne doit en aucun cas interférer avec les droits d'accès. Vis-à-vis des droits, il est envisageable de chiffrer l'intégralité de la base de données avec une seule clé. Chaque utilisateur n'a accès qu'aux données sur lesquelles il possède un droit, la clé étant connue uniquement par la carte (4) et non par chaque utilisateur. Par exemple, dans le cas où l'application de sécurité s'exécute dans une carte à puce, la clé permettant de déchiffrer l'intégralité de la base de données est présente dans la carte à puce de chaque utilisateur sans que celui-ci n'y ait accès.This query evaluation technique is possible when all users sharing the same data have the same encryption key. This brings two important remarks: The encryption must in no case interfere with the access rights. With regard to rights, it is possible to encrypt the entire database with a single key. Each user has access only to the data to which he has a right, the key being known only by the card (4) and not by each user. For example, in the case where the security application is executed in a smart card, the key allowing to decrypt the whole database is present in the smart card of each user without this one n have access to it.
Plusieurs clés de chiffrement peuvent être utilisées pour augmenter la difficulté de cassage des clés et en réduire l'impact. La gestion des droits faisant partie intégrante du mécanisme de sécurité, celle-ci ne peut en aucun cas être déléguée au serveur de données . Autrement, le DBA n'aura aucune difficulté à s'octroyer tous les droits sur l'ensemble des données. La gestion des droits doit donc être assurée par l'application de sécurité de la carte (4) . Cette gestion pose un problème particulier lorsque cette application s'exécute dans une carte à puce propre à chaque utilisateur. En effet, les droits expriment un partage de données entre plusieurs utilisateurs et ces droits sont dynamiques (de nouveaux droits peuvent être définis et certains existants peuvent être supprimés) . Si la carte à puce est responsable de la vérification des droits, elle ne peut par contre pas stocker elle-même la définition de ces droits du fait du partage entre les utilisateurs. Par conséquent, la définition des droits est stockée sur le serveur et est chargée dynamiquement (ou simplement rafraîchie) sur la carte lors de la connexion de l'utilisateur au serveur. Afin de prévenir toute altération, pouvant introduire un trou de sécurité, la définition des droits doit être stockée chiffrée sur le serveur . La puissance du mécanisme de droits des SGBD provient de la capacité d'affecter un droit à un utilisateur sur des vues, c'est-à-dire des tables virtuelles calculées par une requête SQL. Il devient alors possible d'exprimer des droits d'une grande finesse, par exemple : donner le droit à un utilisateur de consulter une vue définie comme la moyenne des salaires des employés de plus de 40 ans travaillant dans le service informatique sans lui donner aucun droit sur les données permettant de réaliser ce calcul. Soit une vue V définie par la requête Qvue sur laquelle l'utilisateur possède le droit D. Lorsque l'utilisateur exprime une requête Q(V), le gestionnaire de droits vérifie tout d'abord que cette requête est compatible avec le droit D. Si oui, la requête Q(V) est transformée par le gestionnaire de vue en une requête Q(Qvue) = Q' ({Ti}), où {Ti} dénote la liste des tables de base sur laquelle la vue V est définie. Q' est ensuite évaluée comme une requête classique selon la méthode introduite précédemment. La conséquence en est que C-SDA doit intégrer la gestion des vues au même titre que la gestion des droits (la définition des vues est stockée chiffrée sur le serveur et chargée dynamiquement sur la carte) .Several encryption keys can be used to increase the difficulty of breaking keys and reduce their impact. Rights management being an integral part of the security mechanism, this cannot in any case be delegated to the data server. Otherwise, the DBA will have no difficulty in granting itself all rights to all of the data. Rights management must therefore be ensured by the card's security application (4). This management poses a particular problem when this application is executed in a smart card specific to each user. In fact, rights express data sharing between several users and these rights are dynamic (new rights can be defined and some existing ones can be deleted). If the smart card is responsible for checking the rights, it cannot, however, store the definition of these rights itself due to sharing between users. Consequently, the definition of rights is stored on the server and is loaded dynamically (or simply refreshed) on the card when the user connects to the server. In order to prevent any alteration, which could introduce a security hole, the definition of rights must be stored encrypted on the server. The power of the DBMS rights mechanism comes from the ability to assign a right to a user on views, that is to say virtual tables calculated by an SQL query. It then becomes possible to express rights of great finesse, for example: giving the right to a user to consult a view defined as the average salary of employees over 40 years working in the IT department without giving him any right to the data allowing this calculation to be made. Or a view V defined by the Qview request on which the user has the right D. When the user expresses a Q (V) request, the rights manager first checks that this request is compatible with the right D. If yes, the request Q (V) is transformed by the view manager into a request Q (Q view ) = Q '({Ti}), where {Ti} denotes the list of basic tables on which the view V is defined. Q ′ is then evaluated as a conventional query according to the method previously introduced. The consequence is that C-SDA must integrate view management in the same way as rights management (the definition of views is stored encrypted on the server and loaded dynamically on the card).
La description qui suit concerne une version améliorée de l'invention, permettant de traiter tout type de requête SQL. Cette solution étendue implique que l'application de sécurité participe de façon active au traitement de la requête afin d'évaluer les prédicats non évaluables par le serveur. Cette interaction de l'application de sécurité de la carte (4) dans le traitement a deux conséquences. La première porte sur la performance de l'exécution globale et la seconde sur l'apparition de nouvelles perspectives pour renforcer la protection des données de la base.The description which follows relates to an improved version of the invention, making it possible to process any type of SQL request. This extended solution means that the security application actively participates in the processing of the request in order to evaluate the predicates that cannot be evaluated by the server. This interaction of the card security application (4) in the processing has two consequences. The first relates to the performance of the global execution and the second to the appearance of new perspectives to strengthen the protection of the data of the base.
Dans le cas d'interrogations complexes (prédicats d'inégalité, fonctions de calcul, agrégats ...) , la requête Q doit être décomposée en une partie Qs évaluable par le serveur sur les données chiffrées et son complément Qc à évaluer par l'application de sécurité sur le résultat partiel, après déchiffrement. Il est fondamental que Qc soit exécutée par l'application de sécurité et non par le terminal car seul C-SDA s'exécute dans un environnement sécurisé. Comme il a été montré dans la section 5.4, les droits des utilisateurs portent généralement sur des vues dont le contenu virtuel est calculé par une requête. Donc, seul un traitement de Qc par l'application de sécurité, sans externalisation de données confidentielles, peut garantir le niveau de sécurité escompté par une gestion de droits. Par exemple, un utilisateur peut avoir le droit de consulter le résultat .d'un calcul d'agrégat sans pour autant posséder le droit de consulter les données élémentaires à partir desquelles cet agrégat est calculé.In the case of complex queries (predicates inequality, calculation functions, aggregates ...), the query Q must be decomposed into a Q s evaluable part by the server on the encrypted data and its complement Q c to be assessed by the security application on the partial result, after decryption. It is essential that Q c is executed by the security application and not by the terminal because only C-SDA is executed in a secure environment. As shown in section 5.4, user rights generally relate to views whose virtual content is calculated by a query. Therefore, only a treatment of Q c by the security application, without outsourcing confidential data, can guarantee the level of security expected by rights management. For example, a user may have the right to consult the result of an aggregate calculation without having the right to consult the elementary data from which this aggregate is calculated.
Afin d'évaluer Qc , C-SDA doit contenir des fonctions de filtrage (pour traiter les prédicats d'inégalité) et des fonctions de calcul. C'est l'objet du deuxième exemple .In order to evaluate Q c , C-SDA must contain filtering functions (to deal with inequality predicates) and calculation functions. This is the subject of the second example.
La requête "sélect Avg (prix) from produit where type = 'pentium3'" sera effectuée comme suit : 1. Terminal : Saisie de la requête en clair 2. Carte : Chiffrement et envoi d'une sous-requête chiffrée Qs : sélect Chiffre (prix) from Chiffre (Produit ) where Chiffre (type) = Chiffre ( "pentium3" )The request "select Avg (price) from product where type = 'pentium3'" will be carried out as follows: 1. Terminal: Enter the request in plain text 2. Card: Encryption and sending of an encrypted sub-request Q s : select Cipher (price) from Cipher (Product) where Cipher (type) = Cipher ("pentium3")
3. Serveur : Résolution de la requête sur les données chiffrées : Résultat ( Chif f re (prixl ) ,3. Server: Resolution of the request on the encrypted data: Result (Chif f re (prixl),
Chiffre (prix2) , Chiffre (prix3) , ...)Number (price2), Number (price3), ...)
4. Carte : Déchiffrement du résultat de Qs et évaluation de Qc (calcul de la moyenne) .4. Map: Decryption of the result of Q s and evaluation of Q c (calculation of the mean).
5. Terminal : Affichage du résultat en clair. Pour que ce principe soit applicable sur une carte à puce, il faut que l'évaluation de Qc par la carte (4) puisse se faire en respectant les contraintes inhérentes à la carte. Ces contraintes imposent d'évaluer Qc sans jamais matérialiser de résultats temporaires car la très faible capacité de la RAM ne permet pas une telle matérialisation en mémoire volatile et le coût d'écriture de l'EEPROM rend également cette matérialisation impossible en mémoire stable. La solution proposée consiste à exécuter l'intégralité de Qc en mode pipeline (c.à.d, tuple à tuple) . Bien que ce mode d'évaluation ne soit pas traditionnel, surtout pour les requêtes faisant intervenir des groupements et calculs d'agrégats, nous pouvons montrer que toute requête Qc est évaluable en pipeline en suivant le principe d'exécution suivant. La forme générale d'une requête SQL est :5. Terminal: Display of the result in clear. For this principle to be applicable on a smart card, the evaluation of Q c by the card (4) must be able to be made while respecting the constraints inherent in the card. These constraints make it necessary to evaluate Q c without ever materializing temporary results because the very low capacity of the RAM does not allow such a materialization in volatile memory and the cost of writing the EEPROM also makes this materialization impossible in stable memory. The proposed solution consists in executing the whole of Q c in pipeline mode (ie, tuple to tuple). Although this evaluation method is not traditional, especially for queries involving groupings and calculations of aggregates, we can show that any Q c query can be evaluated in pipeline by following the following execution principle. The general form of an SQL query is:
Select liste d'attributs, fonctions From liste de relations Where qualification Group by liste d'attributs - Having qualification sur fonction agrégatSelect list of attributes, functions From list of relationships Where qualification Group by list of attributes - Having qualification on aggregate function
Order by critère de tri La sémantique opérationnelle de SQL précise que le résultat d'une requête SQL doit être équivalent au traitement suivant : 1. Calcul du produit cartésien des relations impliquées dans la clause FromOrder by sorting criteria The operational semantics of SQL specifies that the result of an SQL query must be equivalent to the following processing: 1. Calculation of the Cartesian product of the relationships involved in the From clause
2. Restriction aux seuls tuples produits en (1) satisfaisant la qualification de la clause Where 3. Groupement des tuples issus de (2) ayant même valeur pour la liste d'attributs spécifiée2. Restriction to only tuples produced in (1) satisfying the qualification of the Where clause. 3. Grouping of tuples from (2) having the same value for the list of attributes specified
4. Calcul des fonctions agrégats apparaissant dans les clauses Select, Having et Order by4. Calculation of the aggregate functions appearing in the Select, Having and Order by clauses
5. Restriction aux seuls groupes produits en (4) satisfaisant la qualification de la clause Having5. Restriction only to groups produced in (4) satisfying the qualification of the Having clause
6. Projection des tuples issus de (5) sur la liste d'attributs et fonctions de la clause Select6. Projection of the tuples from (5) on the list of attributes and functions of the Select clause
7. Tri des tuples issus de (6) en fonction du critère de tri spécifié par la clause Order by Le serveur est capable d'exécuter sur des données chiffrées les étapes suivantes, soit Qs :7. Sorting of tuples from (6) according to the sorting criterion specified by the Order by clause The server is able to execute the following steps on encrypted data, ie Q s :
1. Calcul du produit cartésien des relations impliquées dans la clause From1. Calculation of the Cartesian product of the relationships involved in the From clause
2s. Restriction aux seuls tuples produits en (1) satisfaisant les prédicats d'égalité présents dans la qualification de la clause Where2s. Restriction to only tuples produced in (1) satisfying the equality predicates present in the qualification of the Where clause
3. Groupement des tuples issus de (2s) ayant même valeur pour la liste d'attributs spécifiée3. Grouping of tuples from (2s) having the same value for the specified attribute list
6s. Projection des tuples issus de (3) sur la liste d'attributs résultat de l'union des listes d'attributs des clauses Select, Group by, Order by ainsi que de la liste d'attributs nécessaires à l'évaluation des prédicats non traités en 2s de la clause Where et des prédicats de la clause Having. L'application de sécurisation est pour sa part contraint d'exécuter sur la carte à puce en pipeline les étapes suivantes, soit Qc :6s. Projection of the tuples from (3) on the attribute list result of the union of the attribute lists of the Select, Group by, Order by clauses as well as the list of attributes necessary for the evaluation of unprocessed predicates in 2s of the Where clause and predicates of the Having clause. The security application is for its part forced to execute the following steps on the smart card in pipeline, that is to say Q c :
Pour chaque tuple t résultat de Qs, faire : 2c. Vérifier les prédicats de la clause Where non traités en 2s 4. Agréger dans une variable tampon la valeur de (s) attribut (s) de t impliqué (s) dans l'évaluation d'une fonction agrégat (apparaissant dans les clauses Select, Having et Order by) et ce, tant que t appartient au même groupe que le tuple précédent (par exemple, le calcul de la moyenne d'un attribut se réalise en sommant la valeur de l'attribut de chaque tuple du groupe. Lorsque le dernier tuple du groupe est détecté, cette somme est divisée par le nombre de tuples du groupe) . 5. Lorsque la fin de groupe est détectée et que les fonctions agrégats sont calculées, évaluer la qualification de la clause Having.For each tuple t result of Q s , do: 2c. Check the predicates of the Where clause not processed in 2s 4. Aggregate in a buffer variable the value of attribute (s) of t involved in the evaluation of an aggregate function (appearing in the Select, Having and Order by clauses), as long as t belongs to the same group as the previous tuple (for example, the average of an attribute is calculated by summing the value of the attribute of each tuple in the group. When the last tuple in the group is detected, this sum is divided by the number of tuples in the group). 5. When the end of the group is detected and the aggregate functions are calculated, assess the qualification of the Having clause.
6c. S'il est sélectionné, projeter le tuple issu de (5) sur la liste d'attributs et de fonctions spécifiée dans la clause Select6c. If selected, project the tuple from (5) to the list of attributes and functions specified in the Select clause
A noter que la clause Order by peut être systématiquement déportée sur le terminal et constitue donc une troisième requête notée Q^ . En effet, la clause Order by n' influe pas sur la valeur des tuples résultat mais simplement sur leur ordonnancement. Cette clause est donc sans effet vis-à-vis de la gestion des droits et peut de ce fait être exécutée à l'extérieur de C-SDA.Note that the Order by clause can be systematically transferred to the terminal and therefore constitutes a third request noted Q ^. Indeed, the Order by clause does not influence the value of the result tuples but simply their ordering. This clause therefore has no effect on rights management and can therefore be executed outside of C-SDA.
En résumé, et comme illustré par l'exemple de la figure 5, l'évaluation d'une requête SQL quelconque Q se fait de la façon suivante : Q = Q^- (Qc (Qs) . Ce principe d'évaluation respecte bien les contraintes de la carte puisque l'espace mémoire consommé se réduit à la mémorisation d'un tuple courant et de quelques variables tampons destinées au calcul des fonctions agrégats. La figure 5 représente le schéma d'exécution de requête 'complexe'. Ce mode d'évaluation présenté ci-dessus peut être amélioré pour deux raisons :In summary, and as illustrated by the example of FIG. 5, the evaluation of any SQL query Q is done as follows: Q = Q ^ - (Q c (Q s ). This principle of evaluation respects the constraints of the card since the memory space consumed is reduced to the storage of a current tuple and of a few buffer variables intended for the calculation of the aggregate functions Figure 5 represents the diagram for executing a 'complex' query. This evaluation method presented above can be improved for two reasons:
- L'évaluation de Qs , telle que présentée précédemment, laisse à penser que les produits cartésiens sont exécutés en premier (étape 1) . En fait, l'évaluation de tout ou parties de 2s et de 6s peut être réalisée avant l'étape 1 en suivant les techniques d'optimisation de requêtes traditionnelles (remplacement des produits cartésiens par des jointures, application des restrictions et des projections au plus tôt) . Qs étant transmise au serveur comme une requête SQL classique, elle suivra le processus d'optimisation traditionnel.- The evaluation of Q s , as presented above, suggests that the Cartesian products are executed first (step 1). In fact, the assessment all or parts of 2s and 6s can be performed before step 1 by following traditional query optimization techniques (replacement of Cartesian products by joins, application of restrictions and projections as soon as possible). Q s is transmitted to the server as a standard SQL query, it will follow the traditional optimization process.
- Les prédicats d'inégalité (restrictions, inéqui- jointures) ne pouvant être évalués directement par le serveur, le volume de données transféré vers la carte peut être très supérieur au volume du résultat final . Dans l'exemple de la figure 5, toutes les commandes des clients sont transférées à C-SDA, sans distinction de date. La solution à ce problème est détaillée ci-dessous. II est nécessaire d'évaluer les prédicats d'inégalité au plus tôt afin de profiter de leur sélectivité pour simplifier l'ensemble de la chaîne de traitements réalisés sur l'équipement client, la carte et le serveur. Cela nécessite un pré-traitement coopératif entre la carte et le serveur. Soit une requête Q contenant un prédicat de la forme σal θ valeur (T) , où σ dénote l'opérateur de restriction, θ e {<, >, ≤, >} et a1 est un attribut quelconque de la table T. Le principe d'optimisation consiste pour l'application de sécurisation à envoyer au serveur une requête de pré-traitement QS P = πclé/ aι (T) , i dénotant l'opérateur de projection. C-SDA- Since the inequality predicates (restrictions, inequalities) cannot be evaluated directly by the server, the volume of data transferred to the card can be much greater than the volume of the final result. In the example in Figure 5, all customer orders are transferred to C-SDA, regardless of date. The solution to this problem is detailed below. It is necessary to evaluate the inequality predicates as soon as possible in order to take advantage of their selectivity to simplify the entire chain of processing performed on the client equipment, the card and the server. This requires cooperative pre-processing between the card and the server. Consider a query Q containing a predicate of the form σ al θ value (T), where σ denotes the restriction operator, θ e {<,>, ≤,>} and a 1 is an arbitrary attribute of the table T. The optimization principle consists for the security application in sending to the server a pre-processing request Q S P = π key / aι (T), i denoting the projection operator. C-SDA
exécute alors Qc p = ricléaι θ valeur (riciô, Déciffretau (QS P) ) ) et renvoie le résultat R au serveur. C-SDA transforme ensuite la requête Q en remplaçant le prédicat initial σaι θ valeur (T) par le prédicat °=(T, R) , où <≈ dénote l'opérateur de semi- jointure sur clé. Sur l'exemple de la figure 5, ce principe donne l'enchaînement suivant exécuté en pipe-line sur la carte : - l'application de sécurité de la carte rapatrie les tuples de la table Commandes après avoir fait une projection sur l'attribut clé et l'attribut Date;then executes Q c p = ri keyaι θ value (riciô, Decipher t at (Q S P ))) and returns the result R to the server. C-SDA then transforms the query Q by replacing the initial predicate σ aι θ value (T) by the predicate ° = (T, R), where <≈ denotes the semi-join operator on key. On the example of figure 5, this principle gives the following sequence executed in pipeline on the map: - the card security application repatriates the tuples from the Orders table after having made a projection on the key attribute and the Date attribute;
- l'application de sécurité de la carte déchiffre l'attribut Date de ces tuples, sélectionne uniquement les tuples dont la date est supérieure à 1996 et renvoie leur clé au serveur sous la forme d'une table temporaire R;- the card's security application decrypts the Date attribute of these tuples, selects only the tuples whose date is greater than 1996 and returns their key to the server in the form of a temporary table R;
- l'application de sécurité de la carte transforme enfin la requête initiale Q en remplaçant le prédicat (Q.Date > 1996) par (Q.clé = R.clé) et envoie cette requête au serveur pour exécution. Le volume de données transféré est très fortement réduit. En effet, le surcoût par rapport à une exécution traditionnelle se limite à taille (IIclé/ ai(T)) + taille (πcléai θ valeur(T) ) . Ce principe s'applique de façon similaire pour les inéqui-jointures .- the card's security application finally transforms the initial request Q by replacing the predicate (Q.Date> 1996) by (Q.key = R.key) and sends this request to the server for execution. The volume of data transferred is greatly reduced. Indeed, the additional cost compared to a traditional execution is limited to size (II key / ai (T)) + size (π keyai θ value (T)). This principle applies similarly to inequalities -joints.
Comme illustré par la figure 6, le principe général d'évaluation d'une requête contenant des prédicats d'inégalité devient : Q = Qt (Qc (Qs ( * [Qc p (QS P) ] ) ) ) , la composition Qc p (QS P) se répétant pour chaque prédicat d'inégalité.As illustrated in Figure 6, the general principle for evaluating a query containing inequality predicates becomes: Q = Q t (Q c (Q s (* [Q c p (Q S P )]))) , the composition Q c p (Q S P ) repeating for each inequality predicate.
L'utilisation de plusieurs clés de chiffrement pour une même base de données est une idée simple et efficace pour réduire le volume de données dévoilées en cas de cassage d'une clé. Dans notre contexte, l'utilisation de plusieurs clés doit respecter la contrainte suivante : Va,The use of several encryption keys for the same database is a simple and effective idea to reduce the volume of data revealed in the event of a key being broken. In our context, the use of several keys must respect the following constraint: Va,
Vb, a = b <=> Chiffre (a) = Chiffre (b) . Cette contrainte est nécessaire pour permettre au serveur d'exécuter tous les prédicats d'égalité présents dans les requêtes de type Qs .Vb, a = b <=> Digit (a) = Digit (b). This constraint is necessary to allow the server to execute all the equality predicates present in queries of type Q s .
Toutefois, cette contrainte n'a pas lieu d'être si a et b ne sont jamais comparés, soit qu'ils ne sont pas de types comparables (ex : un entier et une chaîne de caractère) , soit que leur comparaison est dépourvue de toute sémantiqueHowever, this constraint does not have to be if a and b are never compared, either that they are not of comparable types (ex: an integer and a character string), or that their comparison is devoid of all semantics
(ex : l'âge d'un client et le numéro de client), soit encore que ces données appartiennent à des utilisateurs ou groupes d'utilisateurs différents ne désirant pas les partager. Dans tous ces cas, il est possible d'utiliser des clés de chiffrement différentes selon une technique que nous appellerons chiffrement à fragmentation verticale.(e.g. age of a customer and customer number), or although this data belongs to different users or groups of users who do not wish to share it. In all these cases, it is possible to use different encryption keys using a technique that we will call vertical fragmentation encryption.
Cette technique peut se combiner avec une technique de chiffrement à fragmentation horizontale qui consiste à utiliser plusieurs clés de chiffrement pour différentes valeurs d'un même attribut. Dans cette technique, la clé de chiffrement appliquée à chaque valeur est déterminée par l'application d'une fonction de hachage à cette valeur. Ainsi, pour chaque valeur v, le résultat de la fonction de hachage h(v) donne l'indice de la clé de chiffrement à utiliser. Le couple (h(v), Chiffreh(v) (v) ) est stocké dans la base en lieu et place de chaque valeur. Il est facile de montrer que la contrainte précédente est respectée. Dans ces deux techniques, l'ensemble des clés de chiffrement utilisées est géré par la carte de sécurisation.This technique can be combined with a horizontal fragmentation encryption technique which consists in using several encryption keys for different values of the same attribute. In this technique, the encryption key applied to each value is determined by applying a hash function to that value. Thus, for each value v, the result of the hash function h (v) gives the index of the encryption key to be used. The pair (h (v), Number h (v) (v)) is stored in the base in place of each value. It is easy to show that the previous constraint is respected. In these two techniques, all of the encryption keys used are managed by the security card.
Les données renvoyées par le serveur à la carte de sécurisation étant déjà chiffrées, l'opportunité de chiffrer les communications n'est pas indispensable. Ce chiffrement s'avère cependant nécessaire, notamment pour résister à des attaques menées par un pirate utilisateur. En effet, celui-ci peut obtenir une paire (texte chiffré / texte clair) en écoutant les communications lors de l'exécution d'une requête autorisée (i.e., sur laquelle il possède les droits) . Cette paire de texte est une arme importante pour casser la clé de chiffrement. Les communications entre le serveur et la carte de sécurisation doivent donc être chiffrées avec une des techniques de l'état de l'art.Since the data sent back by the server to the security card is already encrypted, the opportunity to encrypt communications is not essential. This encryption is however necessary, in particular to resist attacks by a user pirate. Indeed, the latter can obtain a pair (encrypted text / clear text) by listening to communications during the execution of an authorized request (i.e., over which it has the rights). This pair of text is an important weapon in breaking the encryption key. Communications between the server and the security card must therefore be encrypted using one of the techniques of the state of the art.
La carte de sécurisation (4) participant de façon active à l'exécution des requêtes, il devient envisageable de stocker une partie de la base de données, considérée comme très sensible, directement sous le contrôle de la carte. Par exemple, dans le cas où l'application de sécurité s'exécute dans une carte à puce, ces données très sensibles peuvent être stockées dans la mémoire stableThe security card (4) actively participating in the execution of queries, it becomes possible to store a part of the database, considered to be very sensitive, directly under the control of the menu. For example, in the case where the security application is running in a smart card, this very sensitive data can be stored in stable memory
(EEPROM) de la carte à puce. Ceci permet de rendre ces données définitivement inaccessibles à tout type de pirate(EEPROM) of the smart card. This makes this data permanently inaccessible to any type of hacker
(y compris un pirate utilisateur) . Par exemple, si les données stockées dans la carte correspondent aux données d'identification de l'utilisateur, même un pirate arrivant à déchiffrer l'ensemble de la base ne saura pas à qui appartiennent les données correspondantes. Cette approche offre un degré de protection inégalable mais pose trois problèmes importants : (i) augmentation de la complexité de l'évaluation de requêtes ; (ii) durabilité des données sensibles ; et (iii) partage éventuel de ces données entre plusieurs utilisateurs.(including a user hacker). For example, if the data stored in the card corresponds to the user's identification data, even a hacker who can decrypt the entire database will not know who owns the corresponding data. This approach offers an incomparable degree of protection but poses three important problems: (i) increasing the complexity of the evaluation of requests; (ii) sustainability of sensitive data; and (iii) possible sharing of this data between several users.
Pour évaluer une requête sur des données dont une partie réside dans une carte à puce, l'application de sécurisations devra générer un plan d'exécution réparti entre deux sites. Cette tâche, complexe pour une carte à puce, peut être simplifiée en imposant une façon particulière d'isoler les données sensibles. L'idée consiste à supprimer les données sensibles de la base stockée sur le serveur, en les remplaçant par des indices dans un domaine sensible (ensemble de données sans doublons), stocké lui, sur la carte à puce. Par exemple, les codes de cartes de crédit d'un ensemble de clients pourront être stockés comme des indices dans le domaine 'codes de cartes de crédit' stocké dans la carte à puce. Ce 'codage' des données sensibles peut être vu comme un chiffrement très particulier de ces données, chiffrement dont la particularité est d'être définitivement incassable sans la carte à puce. L'intérêt de cette modélisation est qu'elle permet de conserver exactement les mêmes techniques d'évaluation de requêtes, une partie de l'évaluation pouvant se faire sur le serveur puisque la propriété Va, Vb, a = b <=> Chiffre (a) = Chiffre (b) est préservée.To evaluate a request for data, part of which resides in a smart card, the security application must generate an execution plan distributed between two sites. This task, complex for a smart card, can be simplified by imposing a particular way of isolating sensitive data. The idea is to delete sensitive data from the database stored on the server, replacing it with clues in a sensitive area (set of data without duplicates), stored on the smart card. For example, the credit card codes of a set of customers could be stored as indices in the 'credit card codes' area stored in the smart card. This 'coding' of sensitive data can be seen as a very specific encryption of this data, encryption whose particularity is to be definitively unbreakable without the smart card. The interest of this modeling is that it allows to keep exactly the same techniques of request evaluation, part of the evaluation can be done on the server since the property Va, Vb, a = b <=> Cipher (a) = Cipher (b) is preserved.
Pour ce qui concerne la durabilité et le partage, considérons tout d'abord le cas des données sensibles statiques (i.e., sans mises à jour). Ce cas particulier est susceptible de représenter une majorité de cas pratiques (par exemple, les données d'identification de particuliers ou de PME) . La durabilité des données statiques peut être assurée par le stockage redondant de ces données dans une carte à puce de backup . Cette carte de backup n'est utilisée qu'en cas de perte, vol ou destruction de la carte initiale. Le partage des données sensibles statiques est assuré par leur copie dans les cartes à puce de chaque utilisateur. Pour ce type de données, le niveau de sécurité atteint est maximum puisque aucune copie n'est accessible sur aucun serveur et que le contenu de la carte est considéré comme inviolable.Regarding sustainability and sharing, let's first consider the case of static sensitive data (i.e., without updates). This particular case is likely to represent a majority of practical cases (for example, personal or SME identification data). The durability of static data can be ensured by redundant storage of this data in a backup smart card. This backup card is only used in the event of loss, theft or destruction of the initial card. Static sensitive data is shared by copying it to each user's smart cards. For this type of data, the level of security reached is maximum since no copy is accessible on any server and the content of the card is considered inviolable.
Considérons maintenant le cas des données dynamiques. Le partage et la durabilité de ces données doivent être assurés par un serveur connu de l'ensemble des utilisateurs partageant ces données. Ce serveur doit conserver l'historique des mises à jour effectuées sur les données dynamiques et diffuser, sur demande, ces mises à jour aux utilisateurs y ayant accès. Il est préférable que ce serveur soit distinct du serveur de données pour se prémunir contre des attaques internes (outre le cassage des clés de chiffrement, une coalition entre pirates internes des deux sites devient alors nécessaire pour mener une attaque) . Les données stockées sur le serveur de partage et de durabilité sont évidemment chiffrées. Notons qu'il est plus facile d'obtenir un chiffrement efficace sur ces données historiques car ici, aucune contrainte relative à l'exécution de requêtes n'est imposée sur les méthodes de chiffrement. A l'extrême, on peut envisager une clé différente pour chaque donnée historique.Now consider the case of dynamic data. The sharing and sustainability of this data must be ensured by a server known to all of the users sharing this data. This server must keep the history of updates made to dynamic data and distribute these updates, on request, to users who have access to them. It is preferable that this server is separate from the data server to protect against internal attacks (in addition to breaking the encryption keys, a coalition between internal hackers of the two sites then becomes necessary to carry out an attack). The data stored on the sharing and sustainability server is obviously encrypted. Note that it is easier to obtain an effective encryption on this historical data because here, no constraint relating to the execution of queries is imposed on the methods of encryption. In the extreme, we can consider a different key for each historical datum.
La figure 7 résume une utilisation conjointe de l'ensemble des techniques exposées dans les sections précédentes, avec C-SDA s 'exécutant dans une carte à puce.Figure 7 summarizes a joint use of all the techniques exposed in the previous sections, with C-SDA running in a smart card.
Les étapes de l'exécution d'une requête utilisateur sont les suivantes :The steps to execute a user request are as follows:
1. Lors de la connexion, l'application de sécurisation contacte le serveur de droits et de vues pour mettre à jour la liste des droits et des vues de l'utilisateur. Il les déchiffre avec sa base de clés.1. During the connection, the security application contacts the rights and views server to update the list of rights and views of the user. He deciphers them with his key database.
2. l'application de sécurisation contacte le serveur de partage/durabilité afin de mettre à jour les données sensibles dynamiques hébergées par la carte à puce. 3. L'utilisateur émet une requête Q.2. the security application contacts the sharing / durability server in order to update the dynamic sensitive data hosted by the smart card. 3. The user issues a Q request.
4. Les droits sont vérifiés par l'application de sécurisation avec la base de droits et de vues.4. The rights are verified by the security application with the rights and views database.
5. La requête, si elle met en jeu des vues, est traduite en une requête Q1 portant sur les relations de base.5. The request, if it involves views, is translated into a Q 1 request relating to basic relationships.
6. La requête Q' est transformée en un plan d'exécution de la forme Q' = Qt(Qc(Qs)), éventuellement précédé de requêtes de préparation (* [QC P (Qs p) ] ) en cas de prédicats d' inégalité dont la sélectivité est intéressante à exploiter.6. The request Q 'is transformed into an execution plan of the form Q' = Qt (Q c (Q s )), possibly preceded by preparation requests (* [Q C P (Q s p )]) in case of inequality predicates whose selectivity is interesting to exploit.
7. Qs est envoyée au serveur qui l'exécute sur les données chiffrées et renvoie les tuples résultats à l'application de sécurisation. Le résultat est déchiffré par l'application de sécurité en utilisant la base de clés. 8. La requête complément Qc est exécutée par l'application de sécurité.7. Q s is sent to the server which executes it on the encrypted data and returns the tuples results to the security application. The result is decrypted by the security application using the key database. 8. The additional request Q c is executed by the security application.
9. Le résultat est éventuellement complété avec les valeurs des données sensibles (DS) lors des projections . 10. Le résultat final déchiffré est renvoyé au terminal qui exécute Qfc, c.à.d., le tri final s'il est demandé .9. The result may be supplemented with the values of sensitive data (DS) during projections. 10. The decrypted final result is returned to the terminal which performs Q fc , ie, the final sorting if requested.
La figure 8 représente une vue de l'architecture de la carte de sécurité (4) . Le circuit électronique comporte un circuit d'interface entrée-sortie (14) pour les échanges avec l'équipement client (1) et le serveur (2) . La sortie de ce circuit (14) est relié à une mémoire tampon (15) .FIG. 8 represents a view of the architecture of the security card (4). The electronic circuit includes an input-output interface circuit (14) for exchanges with the client equipment (1) and the server (2). The output of this circuit (14) is connected to a buffer memory (15).
La carte comporte également un microprocesseur (10) et une mémoire EEPROM (11) pour l'enregistrement du système d'exploitation et de l'application de sécurité et une mémoire (12) pour l'enregistrement des données personnelles de l'utilisateur et en particulier la clé de chiffrement ou les paramètres de chiffrement de l'utilisateur, ainsi que les données relatives aux droits de l'utilisateur.The card also comprises a microprocessor (10) and an EEPROM memory (11) for recording the operating system and the security application and a memory (12) for recording the personal data of the user and in particular the encryption key or the encryption parameters of the user, as well as the data relating to the rights of the user.
La carte comporte encore une mémoire vive (15) comportant des registres (16) pour l'enregistrement des données intermédiaires des calculs, et un compteur (17) pour la réalisation des calculs correspondant à des requêtes contenant des prédicats statistiques tels que des moyennes .The card also comprises a random access memory (15) comprising registers (16) for recording the intermediate data of the calculations, and a counter (17) for carrying out the calculations corresponding to queries containing statistical predicates such as averages.
L'invention est décrite dans ce qui précède de façon non limitative. L'architecture du moyen de sécurisation peut être réalisé sous différentes formes sans pour autant sortir du cadre de l'invention. The invention is described in the foregoing without limitation. The architecture of the security means can be produced in different forms without departing from the scope of the invention.

Claims

REVENDICATIONS
1 - Système de gestion sécurisée de bases de données confidentielles comprenant un serveur constitué par au moins un ordinateur équipé de moyens d'enregistrement de bases de données et de moyens de communication, par au moins un équipement informatique hôte comprenant des moyens de communication avec le serveur et des moyens pour la construction de requêtes et le traitement des résultats des requêtes, ainsi qu'un moyen de sécurisation des échanges entre l'équipement client (1) et le serveur, caractérisé en ce que ledit moyen de sécurisation est constitué par un support matériel sécurisé relié à l'équipement client (1) et comportant un microprocesseur pour le chiffrement des attributs des requêtes émises par l'équipement client (1) et le déchiffrement des réponses émises par le serveur, une mémoire pour l'enregistrement de résultats intermédiaires, une mémoire pour l'enregistrement du système d'exploitation et que ledit serveur enregistre des données chiffrées.1 - System for secure management of confidential databases comprising a server constituted by at least one computer equipped with means for recording databases and means of communication, by at least one host computer equipment comprising means of communication with the server and means for constructing requests and processing the results of requests, as well as a means for securing the exchanges between the client equipment (1) and the server, characterized in that said securing means is constituted by a secure hardware support connected to the client equipment (1) and comprising a microprocessor for the encryption of the attributes of the requests sent by the client equipment (1) and the decryption of the responses sent by the server, a memory for recording the results intermediaries, a memory for recording the operating system and that said server records data s encrypted.
2 - Système de gestion sécurisée de bases de données selon la revendication 1, caractérisé en ce que le moyen de sécurisation est constitué par une carte à microprocesseur .2 - secure database management system according to claim 1, characterized in that the securing means is constituted by a microprocessor card.
3 - Système de gestion sécurisée de bases de données selon la revendication 1, caractérisé en ce que le moyen de sécurisation est constitué par une clé raccordable sur un port d'un équipement client (1) .3 - secure database management system according to claim 1, characterized in that the security means is constituted by a key connectable to a port of client equipment (1).
4 - Système de gestion sécurisée de bases de données selon l'une quelconque des revendications précédentes, caractérisé en ce que le moyen de sécurisation comprend en outre une mémoire pour l'enregistrement des informations de personnalisation de l'utilisateur. 5 - Système de gestion sécurisée de bases de données selon l'une quelconque des revendications précédentes, caractérisé en ce que le moyen de sécurisation comporte en outre au moins un compteur pour l'exécution de requêtes statistiques.4 - secure database management system according to any one of the preceding claims, characterized in that the securing means further comprises a memory for recording user personalization information. 5 - secure database management system according to any one of the preceding claims, characterized in that the securing means further comprises at least one counter for the execution of statistical queries.
6 - Système de gestion sécurisée de bases de données, selon l'une quelconque des revendications précédentes caractérisé en ce que le moyen de sécurisation comporte en outre un registre pour la gestion des droits téléchargés lors de l'ouverture d'une session avec le serveur.6 - secure database management system according to any one of the preceding claims, characterized in that the securing means further comprises a register for managing the rights downloaded during the opening of a session with the server .
7 - Système de gestion sécurisée de bases de données selon l'une quelconque des revendications précédentes, caractérisé en ce que le moyen de sécurisation comporte en outre une mémoire pour l'enregistrement d'une partie de la base de données.7 - secure database management system according to any one of the preceding claims, characterized in that the securing means further comprises a memory for recording a part of the database.
8 - Procédé de gestion sécurisée d'une base de données comportant une étape de construction d'une requête comprenant au moins un attribut, caractérisé en ce qu'il comporte une étape de chiffrement des attributs par un calculateur solidaire d'un dispositif individuel de sécurité relié à un équipement client, le procédé consistant à interroger ensuite une base de données contenant des données chiffrées avec les mêmes moyens de chiffrement que ceux utilisés lors de l'étape précédente, à retourner une réponse contenant les données correspondant aux attributs de la requête et à procéder au déchiffrement desdites données par ledit calculateur d'un dispositif individuel de sécurité avant de les transmettre à 1 ' équipement hôte . 9 - Procédé de gestion sécurisée d'une base de données selon la revendication 8, caractérisé en ce que le chiffrement des attributs de la requête et le déchiffrement de la réponse est réalisé par une application de sécurité exploitée par une carte à microprocesseur.8 - Method for secure management of a database comprising a step of constructing a request comprising at least one attribute, characterized in that it comprises a step of encrypting the attributes by a computer integral with an individual device of security linked to client equipment, the method consisting in then interrogating a database containing encrypted data with the same encryption means as those used in the previous step, in returning a response containing the data corresponding to the attributes of the request and decrypting said data by said computer of an individual security device before transmitting them to the host equipment. 9 - Method for secure management of a database according to claim 8, characterized in that the encryption of the attributes of the request and the decryption of the response is carried out by a security application operated by a microprocessor card.
10 - Procédé de gestion sécurisée d'une base de données selon la revendication 8, caractérisé en ce que le chiffrement des attributs de la requête et le déchiffrement de la réponse est réalisé par une application de sécurité exploitée par une clé raccordable sur un port d'un équipement client.10 - Method for secure management of a database according to claim 8, characterized in that the encryption of the attributes of the request and the decryption of the response is carried out by a security application operated by a key connectable to a port d '' customer equipment.
11 - Procédé de gestion sécurisée d'une base de données selon la revendication 8, caractérisé en ce que le chiffrement des attributs de la requête et le déchiffrement de la réponse est réalisé selon un algorithme à clé secrète tel que DES.11 - Method for secure management of a database according to claim 8, characterized in that the encryption of the attributes of the request and the decryption of the response is carried out according to a secret key algorithm such as DES.
12 - Procédé de gestion sécurisée d'une base de données selon la revendication 8, caractérisé en ce que la traduction de requêtes est limitée aux prédicats d'égalité pour permettre l'exécution desdites requêtes exécutables directement par le serveur sur des données chiffrées.12 - Method for secure management of a database according to claim 8, characterized in that the translation of requests is limited to equality predicates to allow the execution of said requests executable directly by the server on encrypted data.
13 - Procédé de gestion sécurisée d'une base de données selon la revendication 8, caractérisé en ce que la traduction de requêtes comportant des prédicats d' inégalité ou fonctions de calcul comporte une étape de décomposition de la requête Q en un plan Qt(Qc(Qs))), d'interrogation de la base de données chiffrées (3) par des requêtes d'inégalités à partir d'attributs chiffrés, une étape d'enregistrement des résultats des requêtes dans une mémoire temporaire du moyen de sécurisation individuel après déchiffrement des données, et de recomposition du résultat .13 - Method for secure management of a database according to claim 8, characterized in that the translation of queries comprising inequality predicates or calculation functions includes a step of decomposing the query Q into a plane Q t ( Q c (Q s ))), interrogation of the encrypted database (3) by inequality queries from encrypted attributes, a step of recording the results of the queries in a temporary memory of the means of individual security after decryption of the data, and recomposition of the result.
14 - Procédé de gestion sécurisée d'une base de données selon la revendication 8, caractérisé en ce que la traduction de requêtes comportant des prédicats d' inégalité ou fonctions de calcul comporte une étape de décomposition d'une requête en un plan Q = Qt (Qc (Qa (* [QC P (QS P) ] ) ) ) , où Qc p et Qs p sont des requêtes de préparation, d'interrogation de la base de données chiffrées (3) par des requêtes d'inégalités à partir d'attributs chiffrés, une étape d'enregistrement des résultats des requêtes dans une mémoire temporaire du moyen de sécurisation individuel après déchiffrement des données, et de recomposition du résultat .14 - Method for secure management of a database according to claim 8, characterized in that the translation of queries comprising inequality predicates or calculation functions comprises a step of decomposing a query into a plane Q = Q t (Q c (Q a (* [Q C P (Q S P )]))), where Q c p and Q s p are requests to prepare, query the encrypted database (3) by inequality requests from encrypted attributes, a step of recording the results of the requests in a temporary memory of the individual security means after decryption of the data, and of recomposition of the result.
15 - Procédé de gestion sécurisée d'une base de données selon la revendication 8, caractérisé en ce qu'une partie de la base des données est enregistrée dans une mémoire du moyen individuel de sécurisation.15 - Method for secure management of a database according to claim 8, characterized in that a part of the database is recorded in a memory of the individual security means.
16 - Procédé de gestion sécurisée d'une base de données selon la revendication 8, caractérisé en ce que la résolution d'une requête SQL est réalisée en effectuant les étapes de saisie de la requête en clair sur l'équipement client (1), de chiffrement par l'application de sécurité (4) de l'attribut de la requête et l'envoi de la requête chiffrée au serveur, de résolution de la requête sur les données chiffrées par le serveur (2), déchiffrement du résultat sur la carte (4) et de restitution du résultat en clair sur l'équipement client (1).16 - Method for secure management of a database according to claim 8, characterized in that the resolution of an SQL query is carried out by carrying out the steps of entering the query in clear text on the client equipment (1), encryption by the security application (4) of the attribute of the request and the sending of the encrypted request to the server, resolution of the request on the data encrypted by the server (2), decryption of the result on the card (4) and restitution of the clear result on the client equipment (1).
17 - Procédé de gestion sécurisée d'une base de données selon la revendication 8, caractérisé en ce que la résolution d'une requête SQL comportant des prédicats d'inégalité ou des fonctions de calcul est réalisée en effectuant les étapes de saisie de la requête en clair sur l'équipement client (1), de chiffrement par l'application de sécurité (4) et d'envoi au serveur (2) d'une sous- requête chiffrée Qs , contenant uniquement des prédicats d'égalité, de résolution de la requête sur les données chiffrées par le serveur, de déchiffrement du résultat de Qs et évaluation de Qc et de reconstruction de la réponse à la requête initiale par l'application de sécurisation (4).17 - Method for secure management of a database according to claim 8, characterized in that the resolution of an SQL query comprising predicates inequality or calculation functions is carried out by performing the steps of entering the request in clear on the client equipment (1), encryption by the security application (4) and sending to the server (2) an encrypted subquery Q s , containing only equality predicates, resolving the query on the encrypted data by the server, decrypting the result of Q s and evaluating Q c and reconstructing the response to the initial request by the security application (4).
18 - Procédé de gestion sécurisée d'une base de données selon la revendication 8, caractérisé en ce qu'il comporte un pré-traitement coopératif entre la carte et le serveur, consistant, pour une requête Q contenant un prédicat de la forme σai θ valeur(T) , où σ dénote l'opérateur de restriction, θ G {<, >, ≤, >} et a. est un attribut quelconque de la table T, à envoyer au serveur une requête de pré-traitement QS P = IIclé/ al(T), Il dénotant l'opérateur de projection, à exécuter sur le moyen de sécurisation (4) la fonction Qc p = πclé (σai θ valeur (πclé; Dëchiffe(ai) (QsP) ) ) de renvoyer le résultat R au serveur (2), l'application de sécurisation (4) transformant ensuite la requête Q en remplaçant le prédicat initial σai θ valeur (T) par le prédicat18 - Method for secure management of a database according to claim 8, characterized in that it comprises a cooperative pre-processing between the card and the server, consisting, for a request Q containing a predicate of the form σ ai θ value (T), where σ denotes the restriction operator, θ G {<,>, ≤,>} and a. is any attribute of the table T, to send to the server a pre-processing request Q S P = II key / al (T), It denotes the projection operator, to be executed on the security means (4) the function Q c p = π key ( σ ai θ value ( π key; D decipher (ai) (Qs P ))) to return the result R to the server (2), the security application (4) then transforming the request Q by replacing the initial predicate σ ai θ value (T) with the predicate
°<:(T, R) , où ∞ dénote l'opérateur de semi-jointure sur clé.° <:( T, R), where ∞ denotes the key semi-join operator.
19 - Procédé de gestion sécurisée d'une base de données selon la revendication 8, caractérisé en ce qu'il comporte les étapes suivantes :19 - Method for secure management of a database according to claim 8, characterized in that it comprises the following steps:
- Lors de la connexion, l'application de sécurisation contacte le serveur de droits et de vues pour mettre à jour la liste des droits et des vues de l'utilisateur. Il les déchiffre avec sa base de clés. - L'application de sécurisation contacte le serveur de partage/durabilité afin de mettre à jour les données sensibles dynamiques hébergées par la carte (4), - L'utilisateur émet une requête Q,- During the connection, the security application contacts the rights and views server to update the list of rights and views of the user. He deciphers them with his key database. - The security application contacts the sharing / durability server in order to update the dynamic sensitive data hosted by the card (4), - The user issues a Q request,
- Les droits sont vérifiés par l'application de sécurisation avec la base de droits et de vues,- The rights are verified by the security application with the rights and views database,
- La requête, si elle met en jeu des vues, est traduite en une requête Q1 portant sur les relations de base,- The request, if it involves views, is translated into a Q 1 request relating to basic relationships,
La requête Q ' est transformée en un plan d' exécution de la forme Q' = Qt (Qc ( Qs ) ) , éventuellement précédé de requêtes de préparation (*[QC P (QsP) 1) en cas ^e prédicats d'inégalité dont la sélectivité est intéressante à exploiter,The request Q 'is transformed into an execution plan of the form Q' = Qt (Q c (Q s )), possibly preceded by preparation requests (* [Q C P (Qs P ) 1 ) in case ^ e inequality predicates whose selectivity is interesting to exploit,
- Qs est envoyée au serveur qui l'exécute sur les données chiffrées et renvoie les tuples résultats à l'application de sécurisation, le résultat est déchiffré par l'application de sécurité en utilisant la base de clés,- Q s is sent to the server which executes it on the encrypted data and returns the tuples results to the security application, the result is decrypted by the security application using the key database,
La requête complément Qc est exécutée par l'application de sécurité,The additional request Q c is executed by the security application,
- Le résultat est éventuellement complété avec les valeurs des données sensibles (DS) lors des projections,- The result is possibly supplemented with the values of sensitive data (DS) during projections,
- Le résultat final déchiffré est renvoyé au terminal qui exécute Qfc, c.à.d., le tri final s'il est demandé. - The decrypted final result is sent back to the terminal which performs Q fc , ie, the final sorting if requested.
EP20020779619 2001-08-07 2002-08-07 Method for making databases secure Withdrawn EP1415215A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0110552 2001-08-07
FR0110552A FR2828607B1 (en) 2001-08-07 2001-08-07 METHOD FOR SECURING DATABASES
PCT/FR2002/002824 WO2003014888A1 (en) 2001-08-07 2002-08-07 Method for making databases secure

Publications (1)

Publication Number Publication Date
EP1415215A1 true EP1415215A1 (en) 2004-05-06

Family

ID=8866350

Family Applications (1)

Application Number Title Priority Date Filing Date
EP20020779619 Withdrawn EP1415215A1 (en) 2001-08-07 2002-08-07 Method for making databases secure

Country Status (4)

Country Link
US (1) US20050044366A1 (en)
EP (1) EP1415215A1 (en)
FR (1) FR2828607B1 (en)
WO (1) WO2003014888A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10759973B2 (en) 2015-10-15 2020-09-01 Tesa Se Adhesive mass, in particular for strippable adhesive strips and use for adhering on coated woodchip wallpaper

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7418600B2 (en) * 2003-03-13 2008-08-26 International Business Machines Corporation Secure database access through partial encryption
US7500111B2 (en) * 2003-05-30 2009-03-03 International Business Machines Corporation Querying encrypted data in a relational database system
US7685437B2 (en) * 2003-05-30 2010-03-23 International Business Machines Corporation Query optimization in encrypted database systems
US10339336B2 (en) * 2003-06-11 2019-07-02 Oracle International Corporation Method and apparatus for encrypting database columns
US7512814B2 (en) * 2004-11-09 2009-03-31 Fortiva Inc. Secure and searchable storage system and method
US20070011158A1 (en) * 2005-07-06 2007-01-11 Parikh Prashant S Personal information database with context-driven information retrieval
US8135948B2 (en) * 2006-01-27 2012-03-13 Imperva, Inc. Method and system for transparently encrypting sensitive information
US8510846B1 (en) * 2006-06-29 2013-08-13 Google Inc. Data encryption and isolation
US7599936B2 (en) * 2006-12-22 2009-10-06 Verizon Services Organization Inc. Publication service using web pages and web search engines
US9275249B1 (en) * 2013-03-07 2016-03-01 Amazon Technologies, Inc. Accelerated encrypted database operations
US9311504B2 (en) * 2014-06-23 2016-04-12 Ivo Welch Anti-identity-theft method and hardware database device
CN104348609B (en) * 2014-09-18 2017-06-06 成都西山居互动娱乐科技有限公司 A kind of Password Management algorithm of non-memory
US9767219B2 (en) * 2014-10-27 2017-09-19 Successfactors, Inc. Automatic detection of queries missing order-by via unit test
US10284535B2 (en) * 2016-12-13 2019-05-07 Chronicle Llc Secure database
CN111225051A (en) * 2020-01-03 2020-06-02 湖北民族大学 Novel static data security sharing system and method under cloud environment
US11582208B1 (en) * 2021-10-11 2023-02-14 Cisco Technology, Inc. Detecting domain fronting through correlated connections
CN116861474B (en) * 2023-05-26 2024-02-20 东莞市铁石文档科技有限公司 Online archive security assessment system and method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5913214A (en) * 1996-05-30 1999-06-15 Massachusetts Inst Technology Data extraction from world wide web pages
EP1089194A2 (en) * 1999-09-30 2001-04-04 Casio Computer Co., Ltd. Database management apparatus and encrypting/decrypting system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5559888A (en) * 1994-02-15 1996-09-24 Lucent Technologies Inc. Secure information retrieval service (SIRS)
US5721777A (en) * 1994-12-29 1998-02-24 Lucent Technologies Inc. Escrow key management system for accessing encrypted data with portable cryptographic modules
US5713018A (en) * 1995-09-27 1998-01-27 Sun Microsystems, Inc. System and method for providing safe SQL-level access to a database
US5963642A (en) * 1996-12-30 1999-10-05 Goldstein; Benjamin D. Method and apparatus for secure storage of data
WO2000025247A1 (en) * 1998-10-26 2000-05-04 Gte Service Corporation Data access system
US7272723B1 (en) * 1999-01-15 2007-09-18 Safenet, Inc. USB-compliant personal key with integral input and output devices
US6615349B1 (en) * 1999-02-23 2003-09-02 Parsec Sight/Sound, Inc. System and method for manipulating a computer file and/or program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5913214A (en) * 1996-05-30 1999-06-15 Massachusetts Inst Technology Data extraction from world wide web pages
EP1089194A2 (en) * 1999-09-30 2001-04-04 Casio Computer Co., Ltd. Database management apparatus and encrypting/decrypting system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of WO03014888A1 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10759973B2 (en) 2015-10-15 2020-09-01 Tesa Se Adhesive mass, in particular for strippable adhesive strips and use for adhering on coated woodchip wallpaper

Also Published As

Publication number Publication date
WO2003014888A1 (en) 2003-02-20
US20050044366A1 (en) 2005-02-24
FR2828607B1 (en) 2004-01-30
FR2828607A1 (en) 2003-02-14

Similar Documents

Publication Publication Date Title
US11373192B2 (en) Apparatus for customer authentication of an item
US11652608B2 (en) System and method to protect sensitive information via distributed trust
US8613107B2 (en) System, method and apparatus for electronically protecting data associated with RFID tags
US8826448B2 (en) System, method and apparatus for electronically protecting data and digital content
EP1415215A1 (en) Method for making databases secure
US20170228371A1 (en) Blockchain-enhanced database
TWI388183B (en) System and method for dis-identifying sensitive information and associated records
US8359271B2 (en) Apparatus for customer authentication of an item
US7937579B2 (en) System, method and apparatus for electronically protecting data and digital content
EP3547203A1 (en) Method and system for managing access to personal data by means of an intelligent contract
CN103563325B (en) Systems and methods for securing data
US20100005509A1 (en) System, method and apparatus for electronically protecting data and digital content
Mukherjee Popular SQL server database encryption choices
EP1095491A1 (en) Method, server system and device for making safe a communication network
CN110533417B (en) Digital asset management device, issuing method and system
Madyatmadja et al. Performance testing on Transparent Data Encryption for SQL Server's reliability and efficiency
EP3903463A1 (en) Platform for securing data
Nanda et al. Oracle Privacy Security Auditing: Includes Federal Law Compliance with HIPAA, Sarbanes-Oxley & the Gramm-Leach-Bliley Act GLB
EP3889809A1 (en) Protection of a secret software program and confidential data in a secure enclave
EP3863219A1 (en) Method and device for assessing matching of sets of structured data protected by encryption
KR20230085314A (en) Storage and protection system for genomic data based on blockchain
WO2002065411A2 (en) Method and system for making secure a commercial transaction with a smart card
Doyle Lock up your data
CA3050353A1 (en) Method for information retrieval in an encrypted corpus stored on a server
FR3031824A1 (en) METHOD FOR SECURING DATA BY ANONYMOUSING AND ASSOCIATED SERVER

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20040205

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR IE IT LI LU MC NL PT SE SK TR

17Q First examination report despatched

Effective date: 20061218

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20100420