A nova plataforma atua como um porteiro para garantir que os serviços da web cumpram as restrições de dados personalizados dos usuários
p Pesquisadores do MIT e da Universidade de Harvard desenvolveram uma plataforma, chamado Riverbed, que garante que os serviços da web sigam as preferências dos usuários sobre como seus dados são armazenados e compartilhados na nuvem. Crédito:Chelsea Turner, MIT
p Uma nova plataforma desenvolvida por pesquisadores do MIT e da Universidade de Harvard garante que os serviços da web sigam as preferências dos usuários sobre como seus dados são armazenados e compartilhados na nuvem. p No mundo atual da computação em nuvem, usuários de aplicativos móveis e serviços da web armazenam dados pessoais em servidores de data center remotos. Esses dados podem incluir fotos, perfis de mídia social, endereço de e-mail, e até mesmo dados de condicionamento físico de dispositivos vestíveis. Os serviços geralmente agregam dados de vários usuários em servidores para obter insights sobre, dizer, padrões de compra do consumidor para ajudar a recomendar novos itens para usuários específicos, ou pode compartilhar dados com anunciantes. Tradicionalmente, Contudo, os usuários não têm o poder de restringir como seus dados são processados e compartilhados.
p Em um artigo apresentado na conferência de implementação e design de sistemas em rede USENIX desta semana, os pesquisadores descrevem uma plataforma, chamado Riverbed, que força os servidores do data center a usar os dados apenas de maneiras que os usuários aprovam explicitamente.
p Em Riverbed, O navegador da web ou aplicativo de smartphone de um usuário não se comunica diretamente com a nuvem. Em vez de, um proxy Riverbed é executado no dispositivo de um usuário para mediar a comunicação. Quando o serviço tenta fazer upload de dados do usuário para um serviço remoto, o proxy marca os dados com um conjunto de usos permitidos para seus dados, chamada de "política".
p Os usuários podem selecionar qualquer número de restrições predefinidas, como, "não armazene meus dados em armazenamento persistente" ou "meus dados só podem ser compartilhados com o serviço externo x.com." O proxy marca todos os dados com a política selecionada.
p No datacenter, A Riverbed atribui os dados carregados a um cluster isolado de componentes de software, com cada cluster processando apenas dados marcados com as mesmas políticas. Por exemplo, um cluster pode conter dados que não podem ser compartilhados com outros serviços, enquanto outro pode conter dados que não podem ser gravados no disco. A Riverbed monitora o código do lado do servidor para garantir que ele esteja de acordo com as políticas do usuário. Se não, Riverbed encerra o serviço.
p Riverbed visa reforçar as preferências de dados do usuário, ao mesmo tempo em que mantém as vantagens da computação em nuvem, como a realização de cálculos em grande escala em servidores terceirizados. "Os usuários fornecem muitos dados para aplicativos da web para serviços, mas perder o controle de como os dados são usados ou para onde estão indo, "diz o primeiro autor Frank Wang SM '16, Ph.D. '18, recém-graduado pelo Departamento de Engenharia Elétrica e Ciência da Computação e pelo Laboratório de Ciência da Computação e Inteligência Artificial. "Damos aos usuários controle para informar aos aplicativos da web, 'É exatamente assim que você pode usar meus dados.' "
p Nesse tópico, uma vantagem adicional para desenvolvedores de aplicativos, Wang acrescenta, está estabelecendo mais confiança com os usuários. "Isso é uma grande coisa agora, "Wang diz." Um argumento de venda para seu aplicativo seria dizer, 'O objetivo do meu aplicativo é proteger os dados do usuário.' "
p Juntando-se a Wang no papel estão os Ph.D. estudante Ronny Ko e professor associado de ciência da computação James Mickens, ambos de Harvard.
p
Criando "universos"
p Em 2016, a União Europeia aprovou o Regulamento Geral de Proteção de Dados (GDPR), que afirma que os usuários devem consentir que seus dados sejam acessados, que eles têm o direito de solicitar que seus dados sejam excluídos, e que as empresas devem implementar medidas de segurança adequadas. Para desenvolvedores da web, Contudo, essas leis fornecem pouca orientação técnica para escrever aplicativos sofisticados que precisam aproveitar os dados do usuário.
p No passado, os cientistas da computação desenvolveram sistemas de "controle de fluxo de informações" (IFC) que permitem aos programadores rotular as variáveis do programa com políticas de dados. Mas com tantas variáveis e muitas interações possíveis entre as variáveis, esses sistemas são difíceis de programar. Assim, nenhum serviço da web em grande escala usa técnicas IFC.
p Principalmente, A Riverbed aproveita o fato de que o código do lado do servidor de um aplicativo pode ser executado em um programa especial de "monitoramento" - programas que rastreiam, regular, e verificar como outros programas manipulam dados. O monitor cria uma cópia separada do código do aplicativo para cada política exclusiva atribuída aos dados. Cada cópia é chamada de "universo". O monitor garante que os usuários que compartilham a mesma política tenham seus dados carregados para, e manipulado por, o mesmo universo. Este método permite que o monitor encerre o código de um universo, se esse código tentar violar a política de dados do universo.
p Este processo incorpora um intérprete personalizado, um programa que compila a linguagem de programação em um código que é compreendido por um computador. Os intérpretes também são usados para ajudar os programas em tempo de execução a implementar comandos de baixo nível em um programa original à medida que ele é executado. Os pesquisadores modificaram um intérprete tradicional para extrair políticas definidas dos dados de entrada do usuário e rotular certas variáveis com direção de política específica. As etiquetas vão, por exemplo, denotam serviços da web na lista de permissões para compartilhamento de dados ou restringem o armazenamento persistente - o que significa que os dados não podem ser armazenados quando o usuário para de usar o serviço da web.
p "Digamos que eu queira que meus dados sejam agregados a outros usuários. Esses dados são colocados em seu próprio universo com outros dados de usuário com a mesma política, "Diz Wang." Se um usuário não quiser compartilhar nenhum dado com ninguém, então esse usuário tem todo o seu universo. Por aqui, você não tem nenhuma polinização cruzada de dados. "
p Para desenvolvedores, isso torna muito mais fácil cumprir o GDPR e outras leis de privacidade, Wang diz, porque os usuários deram consentimento explícito para o acesso aos dados. "Todos os usuários em cada universo têm as mesmas políticas, para que você possa fazer todas as suas operações e não se preocupar com quais dados são colocados em um algoritmo, porque todos têm a mesma política de dados nesse universo, "Wang diz.
p
Cópia eficiente
p Na pior das hipóteses, Wang diz, cada usuário de cada serviço teria um universo separado. Geralmente, isso pode causar sobrecarga de computação significativa e tornar o serviço mais lento. Mas os pesquisadores alavancaram uma técnica relativamente nova, chamada de "virtualização baseada em contêiner, "que permitem ao monitor da Riverbed criar vários universos do mesmo programa com mais eficiência. Como resultado, a gestão do universo é rápida, mesmo se um serviço tiver centenas ou milhares de universos.
p Em seu jornal, os pesquisadores avaliaram o Riverbed em vários aplicativos, a demonstração da plataforma mantém os dados seguros com pouca sobrecarga. Os resultados mostram que mais de 1, 000 universos podem ser espremidos em um único servidor, com computação adicional que retarda o serviço em cerca de 10 por cento. Isso é rápido e eficiente o suficiente para uso no mundo real, Wang diz.
p Os pesquisadores imaginam as políticas como sendo escritas por grupos de defesa, como Electronic Frontier Foundation (EFF), um grupo internacional de direitos digitais sem fins lucrativos. Novas políticas podem ser "inseridas" em um serviço administrado pela Riverbed a qualquer momento, o que significa que os desenvolvedores não precisam reescrever o código.