Procedimiento para el almacenamiento de datos en un servidor central.

Procedimiento para grabar datos en un servidor central, cada uno de una pluralidad de usuarios que tiene una palabra de paso de usuario que es utilizada por lo menos para generar una llave de usuario y por lo menos un cliente sobre el cual son grabados los datos siendo atribuido a cada uno por lo menos una parte de los dichos usuarios y por lo menos una parte de los dichos datos que son atribuidos según las necesidades por lo menos a un bloque de datos a ser transferido y cada bloque de datos que es comparado con los bloques de datos sobre el servidor con la ayuda de un valor único de identidad de bloque de datos para determinar si los bloques de datos ya están presentes sobre el servidor y los bloques de datos que no están presentes sobre el servidor que son transferidos sobre el servidor central y una lista de datos / bloques de datos que hay que transferir sobre el servidor

, con la ayuda de la cual los datos pueden ser regenerados en su estado original en el curso de una etapa de recuperación de datos después de una petición del usuario, estando establecida y transferida sobre el servidor central, Caracterizado por

que cada bloque de datos no cifrado sobre el cliente está sometido a las etapas siguientes para identificar los bloques de datos que hay que transferir sobre el servidor central y establecer la lista de datos / bloques de datos que hay que transferir sobre el servidor central:

- Generar una llave de bloque de datos teniendo exclusivamente como base un bloque de datos no cifrado utilizando un protocolo de generación de llave, de manera que la palabra de paso del usuario y otros datos del usuario no son utilizados para generar dicha llave,

- Cifrar el bloque de datos no cifrado utilizando un protocolo de encriptación teniendo como base dicha llave de bloque de datos generada para obtener un bloque de datos cifrado,

- Generar un valor único de identificación de bloque de datos teniendo como base el bloque de datos no cifrado y, según el caso, sobre un protocolo de recuperación de informaciones y/o de generación de llave y/o de encriptación y atribuir dicho valor de identidad de bloque de datos al bloque de datos cifrado utilizando un protocolo de generación de identidad de bloque de datos predefinido para el usuario,

- Transferir dicho valor único de identificación de bloque de datos del cliente sobre el servidor central para obtener una respuesta del servidor si el bloque de datos cifrado atribuido a dicho valor de identificación de bloque de datos está ya presente sobre el servidor central y transferir el bloque de datos cifrado sobre el servidor central si no está todavía allí presente,

- Inscribir dicho valor único de identificación de bloque de datos en la lista de datos / bloques de datos que hay que transferir sobre el servidor central,

- Inscribir dicho valor de identificación de bloque de datos y dicha llave de datos en una lista de bloques de datos / llaves si dicho valor de identificación de bloque de datos no está comprendido todavía en dicha lista de bloques de datos / llaves, dicha lista de bloques de datos / llaves que puede formar parte de la lista de datos / bloques de datos,

y por que las etapas siguientes pueden ser realizadas para todos los bloques de datos identificados para ser transferidos sobre el servidor central:

- Cifrar la lista de datos / bloques de datos utilizando una llave de lista de datos / bloques de datos que es generada utilizando un protocolo de generación de llave de lista de datos / bloques de datos exclusivamente por el usuario,

- Cifrar dicha lista de bloques de datos / llaves utilizando la llave de usuario,

- Transferir la lista cifrada de datos / bloques de datos y la lista cifrada de bloques de datos / llaves del cliente sobre el servidor central,

Los bloques de datos no cifrados, la lista no cifrada de datos / bloques de datos, la lista no cifrada de bloques de datos / llaves y las llaves fechadas de bloques generadas y la llave de usuario que se quede sobre el cliente,

el servidor que enviaba datos que son grabados sobre el servidor en su estado cifrado y no pueden ser descifrados por el servidor al cliente en el curso de la etapa de recuperación de datos, para que sea solo sobre el cliente se puedan recuperar los datos.

Tipo: Patente Internacional (Tratado de Cooperación de Patentes). Resumen de patente/invención. Número de Solicitud: PCT/AT2011/000216.

Solicitante: SECLOUS GmbH.

Nacionalidad solicitante: Alemania.

Dirección: Heimeranstrasse 39 80339 München ALEMANIA.

Inventor/es: RAUDASCHL,WOLFGANG.

Fecha de Publicación: .

Clasificación Internacional de Patentes:

  • SECCION H — ELECTRICIDAD > TECNICA DE LAS COMUNICACIONES ELECTRICAS > TRANSMISION DE INFORMACION DIGITAL, p. ej. COMUNICACION... > Disposiciones, aparatos, circuitos o sistemas no... > H04L29/06 (caracterizadas por un protocolo)
  • SECCION H — ELECTRICIDAD > TECNICA DE LAS COMUNICACIONES ELECTRICAS > TRANSMISION DE INFORMACION DIGITAL, p. ej. COMUNICACION... > Disposiciones, aparatos, circuitos o sistemas no... > H04L29/08 (Procedimiento de control de la transmisión, p. ej. procedimiento de control del nivel del enlace)
  • SECCION G — FISICA > COMPUTO; CALCULO; CONTEO > TRATAMIENTO DE DATOS DIGITALES ELECTRICOS (computadores... > Equipo o métodos de tratamiento de datos o de cálculo... > G06F17/30 (Recuperación de la información; Estructura de bases de datos a este efecto)
  • SECCION G — FISICA > COMPUTO; CALCULO; CONTEO > TRATAMIENTO DE DATOS DIGITALES ELECTRICOS (computadores... > G06F21/00 (Disposiciones de seguridad para la protección de computadores sus componentes, programas o datos contra actividades no autorizadas)

PDF original: ES-2536654_T3.pdf

 

google+ twitter facebook

Fragmento de la descripción:

PROCEDIMIENTO PARA EL ALMACENAMIENTO DE DATOS EN UN SERVIDOR CENTRAL

[0001]La invención se refiere a un procedimiento para el almacenamiento de datos en un servidor central. Este procedimiento se caracteriza porque hay múltiples usuarios, cada uno con una contraseña, que será utilizada al menos para crear una clave de usuario, y al menos a algunos de estos usuarios les corresponde al menos una 5 máquina-cliente con datos almacenados, y al menos partes de estos datos, en caso necesario, se dividen en al menos un bloque de datos para su subida, y cada bloque de datos se compara, con ayuda de un valor ID del bloque de datos, para determinar si hay otro bloque de datos idéntico en el servidor, y los bloques de datos no disponibles se suben al servidor central. Se genera entonces una lista de bloques de datos que se sube al servidor central, a partir de la cual, cuando el usuario solicita datos que están almacenados en el servidor central, dichos datos pueden 10 volver a generarse en su formato original mediante un proceso de recuperación de datos.

En la patente US 2010/332401 ya ha sido publicado un procedimiento de este tipo.

En la patente US 2009/313483 A1 se muestra cómo se almacenan el valor ID del bloque de datos y el valor ID de la clave del bloque de datos en una lista de claves del bloque de datos siempre y cuando este valor ID del bloque de datos todavía no esté disponible, así como cómo se sube la lista de claves del bloque de datos de la 15 máquina-cliente al servidor central.

De la patente US 2010/058013 A1 se deriva una clave de bloque de datos que se genera exclusivamente a partir de un bloque de datos cifrado mediante el uso de un procedimiento de generación de claves.

De manera muy general, se entiende por datos cualquier tipo de información, sobre todo cuando se presenta de forma estructurada como ficheros, como por ejemplo imágenes, documentos, programas y archivos. Asimismo, 20 los datos también pueden ser registros de un servidor de bases de datos u otro tipo de información que, por ejemplo, deba almacenarse en el servidor central mediante la memoria de trabajo de la máquina-cliente. En el presente documento el término ficheros se emplea como sinónimo de datos y viceversa. El nombre de los ficheros equivaldría por ejemplo a la descripción de los datos.

Por servidor central se entiende también una infraestructura en la nube, en la que un conjunto de servidores o 25 granjas de servidores están conectados entre sí, pudiendo estar también repartidos en diferentes lugares geográficos. En lo sucesivo, el término servidor se utilizará como sinónimo de servidor central. Los servidores centrales son controlados por proveedores de espacio de almacenamiento en línea (proveedores de servicio) para que en estos espacios de almacenamiento en línea se puedan cubrir además los recursos necesarios para las operaciones del lado del servidor. 30

En la mayoría de ejemplos de aplicación, el concepto de servidor central hace referencia a un servidor externo que se comunica con el usuario a través de una red de información, como por ejemplo Internet. Asimismo, el servidor central puede estar disponible en un edificio de una empresa solo para sus empleados.

Se entiende como usuario tanto los usuarios particulares, como las empresas y sus empleados; un proveedor de servicios de almacenamiento en línea tiene una multitud de usuarios como clientes. 35

En la presente solicitud se utiliza el término máquina cliente para describir ordenadores personales, ordenadores portátiles, netbooks, iPhones y similares, es decir, cualquier dispositivo en el que los usuarios han almacenado sus datos, por ejemplo en forma de ficheros, y desde los cuales quieren guardarlos en el servidor. En las máquinas-cliente, una aplicación ejecuta los pasos del procedimiento en el modelo de aplicación correspondiente. 40

Se parte de que, para la transmisión de datos entre el servidor y la máquina-cliente, se emplea una conexión cifrada que proporciona el proveedor de servicio y que se adecua al estado actual de la técnica, por ejemplo una conexión SSL (Secure Sockets Layer) .

Cuando en la solicitud se haga referencia al cifrado, se puede utilizar cualquier algoritmo de cifrado apropiado, aunque preferentemente el AES de 256 bits. 45

De forma análoga, si deben calcularse valores hash, el inventor recomienda uno de los candidatos finalistas SHA3 de 256 bits, ya que son considerablemente más rápidos que los SHA2.

Cabe recalcar que en la presente invención no es necesaria la utilización de RSA o curvas elípticas, si bien su empleo es opcional como algoritmo de cifrado. Los algoritmos de cifrado asíncronos son unas 1000 veces más lentos, por lo que se recomienda evitar su uso. 50

Según el Grupo Gartner y otras empresas de investigación de mercados de tecnología, la computación en la nube es una de las tendencias tecnológicas más relevantes del futuro próximo.

La computación en la nube ofrece a los clientes el acceso dinámico y escalable a recursos en la red, con la ventaja de que el usuario solo paga por aquellos recursos que realmente necesita y únicamente durante el tiempo que los necesita de verdad. Además es posible compartir recursos, ya sean en el seno interno de la empresa o con 5 otros clientes o socios, pudiéndose definir estos recursos como espacio de almacenamiento o capacidad del procesamiento o servicios, entre otros.

Un aspecto fundamental para trabajar en la nube es la elevada disponibilidad de recursos y la máxima seguridad para que no pueda perderse ningún dato.

Los diferentes modelos de la computación en la nube se clasifican en: 10

SaaS - Software como servicio (aplicación alojada en la red) ;

DaaS - Datos como servicio (consultas del cliente a la base de datos del proveedor) ;

PaaS - Plataforma como servicio (plataforma de desarrollo de software alojada en la red) ;

IaaS - Infraestructura como servicio (el proveedor aloja las máquinas virtuales del cliente o proporciona almacenamiento en la red) ; 15

IPMaaS - Gestión de identidad y política como servicio (el proveedor gestiona la identidad o la política de control de accesos para el cliente) ;

NaaS - Red como servicio (el proveedor ofrece redes virtuales, como redes VPN) , que son utilizadas en la actualidad por millones de clientes en todo el mundo.

En el ámbito de la computación en la nube, la presente invención hace referencia principalmente al modelo 20 DaaS, si bien no está limitada únicamente a este modelo ni a la computación en la nube.

Por ejemplo, la empresa norteamericana Dropbox lleva trabajando en este ámbito desde 2008 y en 2011 ya había alcanzado 25 millones de usuarios que almacenaban diariamente 200 millones de ficheros. Dropbox ofrece a sus usuarios espacio de almacenamiento en línea con control simultáneo de versiones, con la particularidad de que este espacio virtual de almacenamiento no solo se puede utilizar para guardar datos en línea, sino para mantener 25 sincronizados los ficheros en este espacio de almacenamiento en todas las máquinas-cliente que desee el usuario.

Otros ejemplos de empresas que ofrecen servicios en la nube son Amazon, Google, Cisco o Microsoft, entre muchas otras. Empresas como IBM, Microsoft, Oracle o Apple ven la computación en la nube como el servicio informático con más crecimiento de los próximos años y así lo han promocionado.

Sin embargo, a pesar de las ventajas de la computación en la nube, existen ciertos obstáculos para los 30 usuarios potenciales (desde usuarios con fines particulares hasta grandes empresas internacionales) . Estos obstáculos son, entre otros:

El cumplimiento de la legislación... [Seguir leyendo]

 


Reivindicaciones:

1. Procedimiento para grabar datos en un servidor central, cada uno de una pluralidad de usuarios que tiene una palabra de paso de usuario que es utilizada por lo menos para generar una llave de usuario y por lo menos un cliente sobre el cual son grabados los datos siendo atribuido a cada uno por lo menos una parte de los dichos usuarios y por lo menos una parte de los dichos datos que son atribuidos según las necesidades por lo menos a un 5 bloque de datos a ser transferido y cada bloque de datos que es comparado con los bloques de datos sobre el servidor con la ayuda de un valor único de identidad de bloque de datos para determinar si los bloques de datos ya están presentes sobre el servidor y los bloques de datos que no están presentes sobre el servidor que son transferidos sobre el servidor central y una lista de datos / bloques de datos que hay que transferir sobre el servidor, con la ayuda de la cual los datos pueden ser regenerados en su estado original en el curso de una etapa de 10 recuperación de datos después de una petición del usuario, estando establecida y transferida sobre el servidor central,

Caracterizado por

que cada bloque de datos no cifrado sobre el cliente está sometido a las etapas siguientes para identificar los bloques de datos que hay que transferir sobre el servidor central y establecer la lista de datos / bloques 15 de datos que hay que transferir sobre el servidor central:

- Generar una llave de bloque de datos teniendo exclusivamente como base un bloque de datos no cifrado utilizando un protocolo de generación de llave, de manera que la palabra de paso del usuario y otros datos del usuario no son utilizados para generar dicha llave,

- Cifrar el bloque de datos no cifrado utilizando un protocolo de encriptación teniendo como base dicha 20 llave de bloque de datos generada para obtener un bloque de datos cifrado, - Generar un valor único de identificación de bloque de datos teniendo como base el bloque de datos no cifrado y, según el caso, sobre un protocolo de recuperación de informaciones y/o de generación de llave y/o de encriptación y atribuir dicho valor de identidad de bloque de datos al bloque de datos cifrado utilizando un protocolo de generación de identidad de bloque de datos predefinido para el 25 usuario,

- Transferir dicho valor único de identificación de bloque de datos del cliente sobre el servidor central para obtener una respuesta del servidor si el bloque de datos cifrado atribuido a dicho valor de identificación de bloque de datos está ya presente sobre el servidor central y transferir el bloque de datos cifrado sobre el servidor central si no está todavía allí presente, 30

- Inscribir dicho valor único de identificación de bloque de datos en la lista de datos / bloques de datos que hay que transferir sobre el servidor central, - Inscribir dicho valor de identificación de bloque de datos y dicha llave de datos en una lista de bloques de datos / llaves si dicho valor de identificación de bloque de datos no está comprendido todavía en dicha lista de bloques de datos / llaves, dicha lista de bloques de datos / llaves que puede 35 formar parte de la lista de datos / bloques de datos,

y por que las etapas siguientes pueden ser realizadas para todos los bloques de datos identificados para ser transferidos sobre el servidor central:

- Cifrar la lista de datos / bloques de datos utilizando una llave de lista de datos / bloques de datos que es generada utilizando un protocolo de generación de llave de lista de datos / bloques de datos 40 exclusivamente por el usuario,

- Cifrar dicha lista de bloques de datos / llaves utilizando la llave de usuario,

- Transferir la lista cifrada de datos / bloques de datos y la lista cifrada de bloques de datos / llaves del cliente sobre el servidor central,

Los bloques de datos no cifrados, la lista no cifrada de datos / bloques de datos, la lista no cifrada de bloques de 45 datos / llaves y las llaves fechadas de bloques generadas y la llave de usuario que se quede sobre el cliente,

el servidor que enviaba datos que son grabados sobre el servidor en su estado cifrado y no pueden ser descifrados por el servidor al cliente en el curso de la etapa de recuperación de datos, para que sea solo sobre el cliente se puedan recuperar los datos.

2. Procedimiento según la reivindicación 1, caracterizado por que la llave de bloque de datos es un valor hash del 50 bloque de datos no cifrado.

3. Procedimiento según la reivindicación 1, caracterizado por que informaciones de base de llaves son generadas con la ayuda del bloque de datos no cifrado utilizando un protocolo de recuperación de informaciones y por que la llave de bloque de datos es generada exclusivamente con la ayuda de las dichas informaciones de base de llaves, preferentemente utilizando una parte predeterminada suficientemente larga de un valor hash del bloque de datos no 55 cifrado y las informaciones de base de llaves que son preferentemente inscritas en la lista de bloques de datos / llaves en lugar de la llave de bloque de datos.

4. Procedimiento según la reivindicación 1 ó 3, caracterizado por que la llave de bloque de datos es generada con la ayuda de las informaciones de llave de datos en un número predeterminado de ciclos de generación de valores hash que proceden del valor hash de las informaciones de llave de datos, el valor hash que resulta del ciclo hash precedente siendo utilizado como nuevo valor hash de salida.

5. Procedimiento según una de las reivindicaciones precedentes, caracterizado por que el bloque de datos no 5 cifrado primero es comprimido y luego cifrado utilizando la llave de bloque de datos.

6. Procedimiento según la reivindicación 5, caracterizado por que la llave de bloque de datos es un valor hash del bloque de datos comprimido.

7. Procedimiento según la reivindicación 5, caracterizado por que las informaciones de base de llave son una parte definida suficientemente larga de un valor hash del bloque de datos comprimido y por que la verdadera llave de 10 bloque de datos es calculada teniendo como base este valor hash.

8. Procedimiento según una de las reivindicaciones precedentes, caracterizado por que el valor de identificación de bloque de datos corresponde a un valor hash del valor hash del bloque de datos no cifrado.

9. Procedimiento según una de las reivindicaciones 1 a 7, caracterizado por que el valor de identificación de bloque de datos corresponde al valor hash del bloque de datos cifrado. 15

10. Procedimiento según una de las reivindicaciones precedentes, caracterizado por que el valor de identificación de bloque de datos es enviado al servidor y el servidor anuncia si el bloque de datos correspondiente está ya presente sobre el servidor o debe ser transferido allí y por que el servidor le envía un número único para cada valor de identificación de bloque de datos, atribuido a dicho valor de identificación de bloque de datos por el servidor, al cliente, donde dicho número es inscrito sobre la lista de datos / bloques de datos y la lista de bloques de datos / 20 llaves como nuevo valor de identificación de bloque de datos y utilizado para la etapa de recuperación de datos.

11. Procedimiento según una de las reivindicaciones precedentes, caracterizado por que todo valor de identificación de bloque de datos, con el que el servidor determina si los bloques correspondientes de datos están ya presentes sobre el servidor, son generados primero sobre el cliente y luego enviados al servidor en una orden aleatoria para la petición. 25

12. Procedimiento según una de las reivindicaciones 1 a 11, caracterizado por que un número variable de bytes de cada bloque de datos no cifrado es quitado de una posición variable y añadido como información suplementaria para cada bloque de datos a la lista de datos / bloques de datos con las informaciones que conciernen al número de bytes quitados y su posición.

13. Procedimiento según una de las reivindicaciones precedentes, caracterizado por que un valor que no puede 30 ser modificado para la lista de datos / bloques de datos y es conocido públicamente es utilizado como una base para calcular el vector de inicialización de un procedimiento de encadenamiento para cifrar dicha lista de datos / bloques de datos.

14. Procedimiento según una de las reivindicaciones precedentes, caracterizado por que datos aleatorios, específicamente marcados, pero de otro modo insignificantes, de una longitud variable son añadidos a la lista de 35 datos / bloques de datos.

15. Procedimiento según una de las reivindicaciones precedentes, caracterizado por que un valor aleatorio de manipulación de llave para modificar la llave de bloque de datos es determinado para cada bloque de datos no cifrado antes de cada encriptación y por que dicho valor aleatorio de manipulación de llave es registrado en la lista de datos / bloques de datos. 40