La privacidad de la computación en la nube a través del uso de almacenamiento en red redundante es un método para organizar el almacenamiento de datos en la nube, lo que reduce la probabilidad de pérdida o interceptación de los datos del usuario, dividiendo la información original en muchos elementos y distribuyendo estos elementos a varios almacenamientos de red independientes. Este enfoque le permite no preocuparse por la seguridad de un elemento de datos de usuario en particular, ya que será imposible restaurar la información original a partir de él.
La falta de privacidad se cita a menudo como uno de los principales obstáculos para la adopción de la computación en la nube. Hay 5 modelos de servicios en la nube diseñados para proteger los datos de los clientes:
El uso de estos métodos, junto con el almacenamiento cifrado de datos, ayudará a eliminar parcialmente los problemas de confidencialidad e integridad de los datos. Sin embargo, incluso cuando se usa almacenamiento encriptado, el cliente debe confiar todos sus datos al servicio de encriptación. Además, al procesar datos en la nube, el proveedor de procesamiento también debe tener acceso a todos los datos.
Por otro lado, el peligro de revelar información confidencial radica en las particularidades de trabajar con servicios en la nube. El hecho es que los datos son almacenados y procesados por uno o más proveedores externos que, a su vez, pueden estar ubicados en una jurisdicción distinta a la jurisdicción del cliente. La falta de información sobre dónde se encuentran físicamente los datos puede ser un inconveniente para el cliente.
Actualmente, existen diversas leyes que prohíben la exportación de datos sensibles fuera de esta jurisdicción. Un ejemplo es el reglamento general sobre protección de datos personales adoptado en la UE. Para cumplir con estos requisitos, los proveedores están introduciendo servicios en la nube geolocalizados: un cliente puede solicitar a un proveedor que se asegure de que los datos confidenciales se almacenen y procesen solo en sistemas que están ubicados físicamente en un área geográfica específica, como dentro de la Unión Europea. Sin embargo, incluso tales medidas son una garantía de seguridad muy controvertida, ya que la mayoría de los proveedores realizan transacciones que van más allá de las fronteras de un país. Como resultado, incluso se puede acceder a los datos almacenados en equipos ubicados en una jurisdicción particular sin restricciones territoriales. Por lo tanto, los servicios en la nube actualmente son vulnerables a ataques externos y, además, los atacantes que trabajan en la empresa proveedora pueden acceder fácilmente a sus datos.
Esta sección describe un protocolo que utiliza un NAS independiente y redundante para mejorar la privacidad en la computación en la nube. Primero, formulemos las condiciones para la operación exitosa de este protocolo:
Esta figura muestra un diagrama de cómo un cliente interactúa con un servicio de procesamiento y almacenamiento en la nube a través de un nodo de control.
El cliente envía sus datos a la entrada C&C del nodo. Luego, el nodo de control los divide en segmentos, que luego se distribuyen entre los almacenamientos en la nube disponibles y se transmiten allí a través de una red criptográfica mixta (mix-net). El proceso inverso sigue un escenario similar, excepto que además de los segmentos de datos solicitados por el cliente, llegan elementos espurios al nodo de control. Este mecanismo hace que sea más difícil interceptar segmentos verdaderos. A continuación, el nodo de control descarta los elementos cuyas ID no coinciden con los valores de la tabla y, utilizando las entradas "ID de elemento - ID de vecino", organiza los segmentos en el orden original. Después de eso, los datos recibidos se transmiten al usuario.
El esquema implica el uso de una red criptográfica mixta en la nube y agentes manejadores. Los agentes mantienen una relación uno a uno con el almacenamiento en la nube. Cada agente tiene una ID que, en principio, debería evitar que el nodo C&C descubra ese agente. A continuación, debe configurar un servicio en la nube que pueda funcionar en modo de transmisión, similar a un canal IRC . En lo que sigue, nos referiremos a dicho servicio como un nodo IRC. El diagrama detallado se muestra a continuación:
Sea D un dato que debe dividirse y cargarse en el almacenamiento en la nube. Algún usuario U envía datos D a un nodo C&C, cifrándolos con la clave pública C&C del nodo K C&C .
U → C&C : {almacenamiento completo, autenticación, ID D , D} K C&CEl nodo C&C ignora este mensaje cuando se reenvía. Un identificador ocupado asignado para datos de entrada solo se puede reutilizar después de que se hayan eliminado los datos.
El nodo C&C divide los datos en segmentos, generando la secuencia H = <D S ,R S > , donde
La secuencia R S indica cómo se relacionan los segmentos de los datos originales, sin esta información es imposible recopilar los datos originales. En la secuencia resultante, a cada elemento de datos d i se le asigna un ID di . A continuación, el nodo C&C distribuye esta secuencia entre los proveedores de almacenamiento en la nube, haciendo coincidir el identificador de cada proveedor con el elemento de datos correspondiente. H = {d1, d2, ..., dn}
(CSx,...,CSy) → (d1,...,dn)
La entrega de fragmentos de datos se produce a través de una red criptográfica mixta a un nodo IRC. El nodo C&C debe mantener una tabla de correspondencias entre los elementos de datos y los servicios en la nube a los que se enviaron estos elementos. Además, es necesario garantizar la unicidad de todos los identificadores de fragmentos de datos, y cada identificador debe elegirse de tal manera que sea imposible determinar si dos de esos identificadores pertenecen a la misma fuente de datos. Una de las condiciones para el funcionamiento exitoso del algoritmo implica una gran cantidad de usuarios y un alto tráfico, lo que llevará a que la mayoría de los mensajes enviados aleatoriamente y de diferentes usuarios no puedan ordenarse y correlacionarse entre sí. . Por lo tanto, con la transferencia eficiente de tablas de búsqueda, la apertura de los datos para la interceptación no conducirá a su pérdida: un atacante potencial puede ver que un fragmento con el identificador X se envía al almacenamiento en la nube con el identificador Y, pero no puede asociar un fragmento específico con los datos originales D o con un usuario específico. Finalmente, el uso de redes mixtas hará que la identificación del proveedor de NAS no se distinga de la identificación del bloque.
Suponemos que hay un conjunto de nnodos de red independientes . Cada uno de ellos desempeña el papel de un servicio en la nube, y el nodo C&C conoce sus claves y direcciones de cifrado públicas. Considere una ruta de mensajes del nodo B al nodo A en una red con un agente m 1 :{m1,...,mn}
decodificación de designaciones:
Los números aleatorios R m , Ra se utilizan como protección contra el envío de mensajes idénticos. Al aplicar recursivamente este esquema de encapsulación, puede obtener una red mixta con un número arbitrario de nodos.
Un nodo IRC recibe una gran cantidad de fragmentos de datos en general de una gran cantidad de nodos C&C (de lo contrario, no tiene sentido en redes mixtas). Cada mensaje contiene un parámetro CS j , que identifica el agente que debe procesar este fragmento. El nodo IRC envía todos los mensajes uno por uno en formato de transmisión a los agentes.
El agente de almacenamiento descarta todos los mensajes con identificadores externos y envía los suyos propios al almacenamiento en la nube. Dependiendo de la configuración y preferencias del usuario, los agentes pueden duplicar sus fragmentos como protección contra la pérdida de información durante la transferencia de datos. Los agentes también contienen registros de fragmentos transferidos al almacenamiento e identificadores asociados. Los proveedores de almacenamiento no tienen acceso a estos identificadores.
Cuando el usuario U solicita los datos almacenados D , se envía el siguiente mensaje al nodo C&C:
U → C&C : {retrieve−full, Auth, IDD } KC&C
Además, el nodo de control, a través del nodo IRC, accede a cada almacenamiento en la nube donde se encuentran los fragmentos de datos. Tenga en cuenta que al solicitar un dato en particular, no se requiere la autenticación del usuario. Sin embargo, no es posible simplemente iniciar el proceso de guardar datos en la dirección opuesta, ya que en este caso un atacante podrá hacer coincidir el identificador de almacenamiento con su dirección. En su lugar, el nodo C&C enviará un comando de "búsqueda de fragmentos de datos" a cada nodo IRC y le dará los ID de todos los fragmentos. Para dificultar a un posible atacante el análisis de la información transmitida, el nodo IRC complementará la lista de identificadores solicitados con identificadores falsos, que luego serán descartados.
Luego, los agentes de almacenamiento en la nube traicionarán los segmentos solicitados, así como fragmentos de datos aleatorios que no están relacionados con los datos del usuario. Se transmitirán datos falsos incluso si el agente de almacenamiento no encuentra fragmentos que coincidan con los identificadores solicitados. Los datos de los almacenamientos en la nube se transmiten de regreso al nodo IRC a través de los respectivos agentes a través de una red mixta (MIX-NET).
El nodo IRC, a su vez, envía los fragmentos encontrados al nodo C&C, nuevamente a través de MIX-NET.
∀i|IRC → C&C : mix({CSj , return−part, IDdi , di }) - mensaje del nodo C&C del IRC al nodo que contiene el i-ésimo fragmento de datos
Finalmente, el nodo C&C descarta los fragmentos que no coinciden con la lista de identificadores y junta el resto. El archivo resultante se devuelve al usuario.
C&C → U : {U, return−full, IDD , D} KU
Cuando el usuario necesita realizar cálculos utilizando los datos almacenados, se envía una solicitud al nodo de control indicando la operación y la clave única N U generada por el usuario.
U → C&C : {process−cnc, operation, Auth, IDD , Nu } KC&C
De manera similar al punto anterior, los datos necesarios se transfieren desde el almacenamiento en la nube a un nodo administrado, se recopilan y se redirigen a los proveedores de computación en la nube. El nodo C&C , según el formato de datos, selecciona la cantidad óptima de nodos de computación en la nube.
C&C → CPj : mix({{CPj , process−cp, operation, D, Kpc , Nc } Kcpj })
Después de los cálculos, el resultado se devuelve al nodo de control a través de una red mixta (MIX-NET). Y el nodo C&C, a su vez, envía el resultado al usuario:
CPj → C&C : mix({{result−cnc, Dresult , Nc } KPC })
C&C → U : {U, result−user, Dresult , Nu } KU