Esquema de cifrado para la
ejecución de consultas en bases de datos cifradas
Lil María Xibai Rodríguez
Henríquez
|
Texto completo de la Tesis
Resumen
En la actualidad la mayoría de
compañías requieren manejar una gran cantidad de
información para que su funcionamiento sea correcto. Con el
objetivo de que estos datos sean almacenados, administrados y
procesados; el dueño (el cliente) debe invertir recursos
especializados con los que posiblemente no cuente. Por ello el cliente
puede delegar esta tarea a un tercero (el servidor). Este modelo es
conocido como Database as a Service (DAS) y ha cobrado popularidad e
importancia para la tendencia del cómputo nube. Además
brinda a los clientes la capacidad de crear, almacenar, modificar y
consultar información desde un lugar remoto; todas estas
operaciones son realizadas por el servidor como representante del
cliente. Al delegar la gestión de la base de datos a un tercero
surgen nuevos problemas, entre los más importantes se encuentran
la confidencialidad y la disponibilidad de los datos. Debido a que el
servidor tiene acceso a toda la información, éste
podría divulgarla, modificarla o destruirla. Por lo que surge
una importante pregunta que debe ser resuelta en este contexto:
¿Bajo qué condiciones es posible delegar una base de
datos a un servidor que no es confiable?
La solución obvia es el cifrado de la información. El
cliente puede cifrar sus datos antes de almacenarlos en el servidor y
con esto se soluciona el problema de confidencialidad. El servidor
tiene otras responsabilidades además de almacenar la
información, como es el ejecutar ciertas operaciones: procesar
consultas, modificar, etc. El utilizar criptografía
clásica trae consigo otros problemas, ya que un buen esquema de
cifrado debe destruir la estructura natural presente en la
información, lo que generalmente causa la reducción de la
eficiencia en el procesamiento de consultas y otro tipo de operaciones
como (insertar, modificar, consultar, etc.), debido a que no pueden ser
efectuadas bajo los mecanismos que una base de datos utiliza
normalmente. Entonces, el reto consiste en construir un esquema de
cifrado que permita que la información del cliente sea cifrada y
almacenada en el servidor no confiable sin que la confidencialidad
pueda ser violada, además las primitivas criptográficas
utilizadas deben permitir que las operaciones que son de interés
para el cliente puedan ser ejecutadas por el servidor en la
información cifrada sin tener conocimiento de los datos
originales.
El esquema de cifrado propuesto en esta tesis logra dos objetivos que
se encuentran en conflicto, el brindar seguridad y también
permitir que las consultas puedan ser procesadas. Nuestra propuesta
utiliza diferentes tipos de primitivas criptográficas: un
cifrador por bloques (AES), un cifrador basado en homomorfismo
(Paillier 1999) y un cifrador que preserva el orden (Boldyreva et.al.
2009); los cuales se aplican a diferentes tipos de datos, permitiendo
así que una gran variedad de operaciones puedan ser procesadas
en información cifrada de manera eficiente.
Abstract
Now-a-days almost every company needs
to handle an enormous amount of information for its proper functioning.
Storage, maintenance and processing of such enormous amount of data
needs lot of resources and expertise which the owner of the data (the
client) may not have. Thus the client may delegate the duty of storage
and maintenance of his/her data to a third party (the server). This
model commonly known as as Database as a Service (DAS) has gained lot
of popularity in the recent times, also this model is very important in
the context of the emerging concept of cloud computing. The DAS model
allows the client to perform operations like create, modify and
retrieve from a remote location. These operations are performed by the
server on behalf of the client. Delegating the duty of storing and
maintaining the database to a third party brings in some new problems.
The privacy and availability of the data being of primary importance
among them. As the server which stores and maintains the data has
access to all the information, can potentially disclose, modify or
damage the stored information. Thus the important question which has to
be solved in this context is: under what conditions one can delegate a
database to an un-trusted server.
The most obvious solution comes through data encryption. The client can
encrypt the data before delegating it to the server and thus may
provide a solution to the problem of privacy. However, normal
encryption brings in some new problems. The server is not only
responsible for storing the data, but it also performs certain
operations on the data like processing queries, updating etc. on behalf
of the client. A good encryption scheme is supposed destroy all natural
structure present in the data which is generally detrimental to
efficient query processing and performing other important operations on
the stored data. Moreover, the normal database mechanisms to perform
the operations (like create, modify, retrieve etc.) can no longer be
used on the encrypted information. Thus, the challenge is to come up
with an encryption mechanism which allows the storage of the encrypted
information in an un-trusted server without breach of privacy, moreover
the encryption applied should be such that normal operations which are
of interest to the client can be performed on the encrypted data by the
server without the knowledge of the original data. In this thesis we
propose an encryption mechanism which achieves the two conflicting
objectives of providing security and also being friendly to query
processing. Our proposal uses different types of encryption primitives
depending on the type of the data. In particular, we use a block cipher
(AES), a homomorphic encryption scheme (Paillier 1999) and an order
preserving encryption scheme (Boldyreva et al. 2009) in a specific
manner such that it allows a variety of operations can be carried out
on the encrypted data. Our encryption mechanism allows a large class of
queries to be processed on the encrypted data with significant
efficiency.