Como a Queryable Encryption pode manter o James Bond seguro
Avalie esse Artigo
Empresa de todos os tamanhos continuam a adotar o poder dos dados. Com esse poder, no entanto, vem uma grande responsabilidade – ou seja, a responsabilidade de proteger esses dados e clientes, cumprir as normas de privacidade de dados e controlar e limitar o acesso a dados confidenciais e regulamentados.
Embora as soluções de criptografia existentes, tanto em trânsito quanto em repouso, cubram muitos dos casos de uso acima, nenhuma delas protege dados confidenciais enquanto estão em uso. No entanto, a criptografia em uso costuma ser um requisito para cargas de trabalho de alta sensibilidade, especialmente para clientes de serviços financeiros, saúde e organizações de infraestrutura crítica.
A Queryable Encryption, um novo recurso do MongoDB atualmente em pré-visualização, oferece aos clientes uma maneira de criptografar dados confidenciais e mantê-los criptografados durante todo o seu ciclo de vida, seja na memória, nos registros, em trânsito, em repouso ou em backups.
Agora você pode criptografar dados confidenciais no lado do cliente, armazená-los como dados criptografados totalmente aleatórios no lado do servidor e executar consultas expressivas nesses dados criptografados. Os dados nunca estão em texto claro no banco de dados, mas o MongoDB ainda pode processar consultas e executar operações no lado do servidor.
Há duas maneiras de configurar a Queryable Encryption. Você pode Go a rota de criptografia automática, que permite realizar leituras e gravações criptografadas sem a necessidade de escrever código especificando como os campos devem ser criptografados, ou você pode Go a rota manual, o que significa que precisará especificar a lógica para criptografia.
Para usar Queryable Encryption com Java, você precisará de 4.7.0-beta0 (ou posterior) do driver Java, e versão 1.5.0-rc2 (ou posterior) do MongoCrypt. Você também precisará do MongoDB Atlas ou do MongoDB Enterprise se quiser usar a criptografia automática. Se você não tiver o Atlas ou Enterprise, não precisa se preocupar! Você pode obter um cluster gratuito para sempre no Atlas registrando.
Depois de concluir esses pré-requisitos, você pode configurar a Queryable Encryption e especificar quais campos deseja criptografar. Confira o início rápido para saber mais.
Vamos explorar o seguinte caso de uso. Suponha, por um momento, que você trabalhe para uma empresa ultrassecreta e tenha a tarefa de manter as identidades de seus funcionários em segredo.
O trecho de código abaixo representa um novo funcionário, James Bond, que trabalha em sua empresa:
1 Document employee = new Document() 2 3 .append("firstName", "James") 4 5 .append("lastName", "Bond") 6 7 .append("employeeId", 1006) 8 9 .append("address", "30 Wellington Sq");
O documento contendo as informações de James Bond é adicionado a umaemployees coleção “ ” que tem dois campos criptografados, EmployeeID e endereço. Saiba mais sobre campos criptografados.
Supondo que alguém, talvez Auric Platinumer, queira encontrar o endereço de James Agent, mas não tenha acesso a um cliente criptografado, só poderia ver o seguinte:
1 “firstName” : “James”, 2 3 “lastName” : “Bond”, 4 5 "employeeId": {"$binary": {"base64": "B5XwlQMzFkOmmW0VTcE1QhoQ/ZYHhyMqItvaD+J9AfsAFf1koD/TaYpJG/sCOugnDlE7b4K+mciP63k+RdxMw4OVhYUhsCkFPrhvMtk0l8bekyYWhd8Leky+mcNTy547dJF7c3WdaIumcKIwGKJ7vN0Zs78pcA+86SKOA3LCnojK4Zdewv4BCwQwsqxgEAWyDaT9oHbXiUJDae7s+EWj+ZnfZWHyYJNR/oZtaShrooj2CnlRPK0RRInV3fGFzKXtiOJfxXznYXJ//D0zO4Bobc7/ur4UpA==", "subType": "06"}}, 6 7 "address": {"$binary": {"base64": "Biue77PFDUA9mrfVh6jmw6ACi4xP/AO3xvBcQRCp7LPjh0V1zFPU1GntlyWqTFeHfBARaEOuXHRs5iRtD6Ha5v5EjRWZ9nufHgg6JeMczNXmYo7sOaDJ", "subType": "06"}}
Dos quatro campos do meu documento, os dois últimos permaneceram criptografados (EmployeeId e endereço). Como o cliente de Auric não estava criptografado, ele não conseguiu acessar o endereço de James Agent.
No entanto, se Auric estivesse usando um cliente criptografado, ele seria capaz de ver o seguinte:
1 "firstName": "James", 2 3 "lastName": "Bond", 4 5 "employeeId": 1006, 6 7 "address": "30 Wellington Sq"
... e ser capaz de rastrear James Bond.
É claro que meu exemplo com o James Agent é fictício, mas espero que ele exemplifique uma das muitas maneiras pelas quais a Queryable Encryption pode ajudar. Para obter mais detalhes, consulte nossos Docs ou os seguintes links úteis:
Se você tiver algum problema ao usar o Queryable Encryption, informe-nos nos fóruns da comunidade ou enviandotíquetes no projeto JAVA. Boa criptografia!