Los investigadores del MIT y la Universidad de Harvard han desarrollado una plataforma, llamado Riverbed, que garantiza que los servicios web se adhieran a las preferencias de los usuarios sobre cómo se almacenan y comparten sus datos en la nube. Crédito:Chelsea Turner, MIT
Una nueva plataforma desarrollada por investigadores del MIT y de la Universidad de Harvard asegura que los servicios web se adhieran a las preferencias de los usuarios sobre cómo se almacenan y comparten sus datos en la nube.
En el mundo actual de la computación en la nube, los usuarios de aplicaciones móviles y servicios web almacenan datos personales en servidores de centros de datos remotos. Estos datos pueden incluir fotos, perfiles de redes sociales, correos electrónicos, e incluso datos de fitness de dispositivos portátiles. Los servicios a menudo agregan datos de múltiples usuarios a través de servidores para obtener información sobre, decir, patrones de compra de los consumidores para ayudar a recomendar nuevos artículos a usuarios específicos, o puede compartir datos con anunciantes. Tradicionalmente, sin embargo, los usuarios no han tenido el poder de restringir cómo se procesan y comparten sus datos.
En un documento que se presenta en la conferencia de diseño e implementación de sistemas en red de USENIX de esta semana, los investigadores describen una plataforma, llamado Riverbed, que obliga a los servidores del centro de datos a utilizar los datos únicamente en formas que los usuarios aprueben explícitamente.
En Riverbed, El navegador web o la aplicación para teléfono inteligente de un usuario no se comunica directamente con la nube. En lugar de, un proxy de Riverbed se ejecuta en el dispositivo de un usuario para mediar en la comunicación. Cuando el servicio intenta cargar datos de usuario a un servicio remoto, el proxy etiqueta los datos con un conjunto de usos permitidos para sus datos, llamada una "política".
Los usuarios pueden seleccionar cualquier número de restricciones predefinidas, como, "no almacene mis datos en almacenamiento persistente" o "mis datos solo se pueden compartir con el servicio externo x.com". El proxy etiqueta todos los datos con la política seleccionada.
En el centro de datos, Riverbed asigna los datos cargados a un grupo aislado de componentes de software, con cada clúster procesando solo datos etiquetados con las mismas políticas. Por ejemplo, un clúster puede contener datos que no se pueden compartir con otros servicios, mientras que otro puede contener datos que no se pueden escribir en el disco. Riverbed monitorea el código del lado del servidor para asegurarse de que se adhiera a las políticas del usuario. Si no es así, Riverbed da por terminado el servicio.
Riverbed tiene como objetivo hacer cumplir las preferencias de datos del usuario, manteniendo las ventajas de la computación en la nube, como realizar cálculos a gran escala en servidores subcontratados. "Los usuarios proporcionan una gran cantidad de datos a las aplicaciones web para los servicios, pero pierde el control de cómo se utilizan los datos o hacia dónde van, "dice el primer autor Frank Wang SM '16, Doctor. '18, Recién egresado del Departamento de Ingeniería Eléctrica e Informática y del Laboratorio de Informática e Inteligencia Artificial. "Les damos a los usuarios el control para decirles a las aplicaciones web, 'Así es exactamente como puedes usar mis datos' ".
En ese hilo un beneficio adicional para los desarrolladores de aplicaciones, Wang agrega, está estableciendo más confianza con los usuarios. "Eso es algo importante ahora, "Dice Wang". Un argumento de venta para su aplicación sería decir:'El objetivo de mi aplicación es proteger los datos del usuario' ".
Junto a Wang en el papel están Ph.D. el estudiante Ronny Ko y el profesor asociado de informática James Mickens, ambos de Harvard.
Creando "universos"
En 2016, la Unión Europea aprobó el Reglamento general de protección de datos (GDPR), que establece que los usuarios deben dar su consentimiento para que se acceda a sus datos, que tienen derecho a solicitar la supresión de sus datos, y que las empresas deben implementar las medidas de seguridad adecuadas. Para desarrolladores web, sin embargo, estas leyes proporcionan poca orientación técnica para escribir aplicaciones sofisticadas que necesitan aprovechar los datos del usuario.
En el pasado, Los informáticos han diseñado sistemas de "control de flujo de información" (IFC) que permiten a los programadores etiquetar las variables del programa con políticas de datos. Pero con tantas variables y muchas interacciones posibles entre variables, estos sistemas son difíciles de programar. Por lo tanto, Ningún servicio web a gran escala utiliza técnicas IFC.
Ante todo, Riverbed aprovecha el hecho de que el código del lado del servidor de una aplicación puede ejecutarse sobre un programa especial de "monitorización":programas que rastrean, regular, y verificar cómo otros programas manipulan los datos. El monitor crea una copia separada del código de la aplicación para cada política única asignada a los datos. Cada copia se llama "universo". El monitor garantiza que los usuarios que comparten la misma política tengan sus datos cargados en, y manipulado por, el mismo universo. Este método permite al monitor terminar el código de un universo, si ese código intenta violar la política de datos del universo.
Este proceso incorpora un intérprete personalizado, un programa que compila el lenguaje de programación en un código que es entendido por una computadora. Los intérpretes también se utilizan para ayudar a los programas en tiempo de ejecución a implementar comandos de bajo nivel en un programa original mientras se ejecuta. Los investigadores modificaron un intérprete tradicional para extraer políticas definidas de los datos de usuario entrantes y etiquetar ciertas variables con una dirección de política específica. Las etiquetas por ejemplo, denota servicios web en lista blanca para compartir datos o restringe el almacenamiento persistente, lo que significa que los datos no se pueden almacenar cuando el usuario deja de usar el servicio web.
"Supongamos que quiero que mis datos se agreguen a otros usuarios. Esos datos se colocan en su propio universo con otros datos de usuario con la misma política, "Dice Wang." Si un usuario no quiere compartir ningún dato con nadie, entonces ese usuario tiene todo su propio universo. De esta manera, no tiene ninguna polinización cruzada de datos ".
Para desarrolladores, esto hace que sea mucho más fácil cumplir con GDPR y otras leyes de privacidad, Wang dice:porque los usuarios han dado su consentimiento explícito para el acceso a los datos. "Todos los usuarios de cada universo tienen las mismas políticas, para que pueda realizar todas sus operaciones y no preocuparse por los datos que se colocan en un algoritmo, porque todos tienen la misma política sobre los datos en ese universo, "Dice Wang.
Copiado eficiente
En el peor de los casos, Wang dice:cada usuario de cada servicio tendría un universo separado. Generalmente, esto podría causar una sobrecarga de cálculo significativa y ralentizar el servicio. Pero los investigadores aprovecharon una técnica relativamente nueva, denominada "virtualización basada en contenedores, "que permiten al monitor Riverbed crear de manera más eficiente varios universos del mismo programa. Como resultado, la gestión del universo es rápida, incluso si un servicio tiene cientos o miles de universos.
En su papel los investigadores evaluaron Riverbed en varias aplicaciones, demostrar que la plataforma mantiene los datos seguros con pocos gastos generales. Los resultados muestran que más de 1, 000 universos pueden exprimirse en un solo servidor, con cálculo adicional que ralentiza el servicio en aproximadamente un 10 por ciento. Eso es lo suficientemente rápido y eficiente para uso en el mundo real, Wang dice.
Los investigadores visualizan las políticas como redactadas por grupos de defensa, como Electronic Frontier Foundation (EFF), un grupo internacional de derechos digitales sin fines de lucro. Las nuevas políticas se pueden "incluir" en un servicio administrado por Riverbed en cualquier momento, lo que significa que los desarrolladores no necesitan reescribir el código.