Privacidade diferencial no Snowflake¶
A privacidade diferencial é um padrão amplamente reconhecido para a privacidade de dados que limita o risco de um usuário vazar informações confidenciais de um conjunto de dados confidenciais. Ele protege a identidade e as informações de entidades individuais nos dados, por exemplo, pessoas, corporações e locais. Embora as informações de cada entidade individual sejam protegidas, a privacidade diferencial ainda permite que os consumidores de dados aprendam estatísticas, tendências e comportamentos sobre grupos de indivíduos.
A privacidade diferencial oferece uma forte proteção contra a reidentificação, que é particularmente eficaz contra ataques direcionados à privacidade. Essa proteção permite o compartilhamento de dados confidenciais entre equipes, fora da organização e entre linhas regulatórias. A privacidade diferencial atenua o aumento do risco de reidentificação associado à união de dois conjuntos de dados confidenciais, adicionando novos campos, desmascarando campos existentes ou fornecendo linhas individuais em vez de dados pré-agregados.
Ao contrário de outras metodologias de privacidade, a privacidade diferencial faz o seguinte:
Protege contra ataques de privacidade direcionados, por exemplo, ataques de diferenciação e amplificação.
Quantifica e gerencia a compensação entre privacidade e utilidade, ou seja, controla a quantidade de informações não confidenciais que os consumidores de dados podem saber sobre os dados.
Elimina a necessidade de os provedores de dados transformarem dados confidenciais para reduzir o risco de reidentificação (por exemplo, mascaramento, redação e agrupamento em bucket).
Como a privacidade diferencial protege informações confidenciais?¶
De acordo com a privacidade diferencial, os resultados de consulta não devem revelar informações que possam ser usadas para identificar uma entidade individual. O Snowflake faz o seguinte para impor a privacidade diferencial:
Agregados com ruído¶
Consultas privadas diferenciais devem agregar dados para retornar resultados; consultas em nível de linha, como SELECT *
são bloqueadas. Esses agregados contêm ruídos; eles não são o resultado exato de uma computação. Ruído (isto é, variação ou aleatoriedade) é introduzido no resultado para ocultar se alguma linha ou entidade específica foi incluída na agregação.
A adição de ruído protege contra ataques de privacidade, como fatiamento fino e diferenciação. A quantidade de ruído adicionada ao resultado de consulta depende de vários fatores que influenciam a sensibilidade da consulta, incluindo o número de registros consultados, o tipo de agregação e os tipos de transformações de dados. O Snowflake calcula a sensibilidade de uma consulta com base em matemática rigorosa, mas ela pode ser entendida vagamente como o potencial da consulta de vazar informações sobre uma entidade individual. Em geral, consultas menos sensíveis têm menos ruído, potencialmente a ponto de ser estatisticamente insignificante. Consultas muito sensíveis, por exemplo, uma consulta que tenta destacar uma entidade individual, têm uma grande quantidade de ruído para evitar que informações sensíveis vazem.
O Snowflake não introduz ruído em agregações intermediárias que ocorrem antes da agregação final da consulta; o ruído é introduzido apenas uma vez por consulta.
O Snowflake considera o número de linhas na tabela protegida por privacidade como público. Por exemplo, executar SELECT COUNT(*) FROM t
, onde a tabela t
é protegida por uma política de privacidade, retorna um resultado exato sem incorrer em nenhuma perda de privacidade.
Para obter mais informações sobre como entender o nível de ruído, consulte Como entender os resultados de consulta.
Como limitar a perda de privacidade¶
Cada consulta em um conjunto de dados protegido pode resultar na exposição de informações privadas associadas a um indivíduo, incluindo os resultados agregados com ruídos que consultas diferencialmente privadas produzem. Na privacidade diferencial, essa divulgação de informações é conhecida como perda de privacidade e é uma unidade de medida quantificável. Quanto mais informações privadas forem reveladas por uma consulta, maior será a perda de privacidade associada a essa consulta. Como a perda de privacidade é quantificável, o Snowflake pode usar a privacidade diferencial para proteger dados confidenciais em um histórico de consultas até um certo grau de confiança estatística.
A perda de privacidade se acumula à medida que o usuário executa consultas nos dados protegidos. Quando a perda cumulativa de privacidade atinge um determinado limite, permitir que o usuário veja mais resultados permitiria, teoricamente, que ele identificasse indivíduos com um nível inaceitável de confiança. Um orçamento de privacidade define um limite para quanta perda de privacidade é aceitável. O Snowflake contabiliza a perda de privacidade das consultas executadas por um usuário ou grupo de usuários e garante que essa contagem nunca exceda o orçamento de privacidade associado a esses usuários. A Snowflake oferece um orçamento de privacidade personalizável com um valor padrão predefinido que define o limite de perda de privacidade.
O Snowflake usa uma política de privacidade, que é um objeto de nível de esquema, para associar um orçamento de privacidade a um usuário ou grupo de usuários. Quando um administrador atribui essa política de privacidade a uma tabela ou exibição, ela se torna protegida por privacidade. Quando um usuário executa uma consulta em uma tabela protegida por privacidade, o Snowflake usa a política de privacidade para determinar qual orçamento de privacidade está associado ao usuário e garante que a perda de privacidade na qual a consulta incorre não excederá o limite do orçamento.
Privacidade diferencial na teoria e na prática¶
O padrão de privacidade diferencial vem da literatura acadêmica e foi formulado para ter garantias de privacidade fortes e matematicamente comprovadas, particularmente contra ataques teóricos de privacidade. Em particular, configurações de privacidade como o orçamento de privacidade são definidas de forma mais conservadora quando discutidas em ambientes acadêmicos. Essas configurações favorecem uma proteção forte contra ataques teóricos de privacidade, em detrimento da utilidade dos dados (fidelidade analítica, precisão e disponibilidade). Ao considerar a compensação entre privacidade e utilidade para seu caso de uso, incluindo dados altamente confidenciais como PII e PHI, considere o seguinte:
Os ataques práticos à privacidade não são tão eficazes quanto os ataques teóricos à privacidade descritos na literatura acadêmica, que pressupõem que os invasores tenham recursos de computação ilimitados e acesso a todos os conjuntos de dados, exceto ao que estão atacando.
Normalmente, os consumidores de dados não querem lançar ataques intencionalmente porque o provedor de dados pode revogar o acesso aos dados do consumidor, e o valor analítico dos dados é muito alto para que eles corram o risco de perdê-los.
O Snowflake selecionou configurações padrão que equilibram razoavelmente a proteção da privacidade e a utilidade de acordo com os objetivos dos casos de uso reais, mas você sempre pode definir configurações diferentes para atender às suas necessidades específicas.
Fluxo de trabalho de privacidade diferencial¶
O fluxo de trabalho a seguir consiste em tarefas executadas pelo provedor de dados que está protegendo seus dados com privacidade diferencial e tarefas para um analista que está consultando os dados depois de protegidos.
Provedor de dados:
Se você deseja implementar a privacidade em nível de entidade, estruture seus dados para atender aos requisitos.
Crie uma política de privacidade que associe orçamentos de privacidade a usuários com base em fatores como função ou conta.
Atribua a política de privacidade a uma tabela ou exibição para que as consultas sejam privadas de forma diferenciada.
Defina um domínio de privacidade para colunas numéricas e categóricas na tabela ou exibição protegida por privacidade.
Conceda privilégios aos analistas para que eles possam acessar os dados protegidos por privacidade.
À medida que os analistas executam consultas nos dados protegidos por privacidade, você pode gerenciar os orçamentos de privacidade associados aos usuários.
Analista:
Visualize os domínios de privacidade que o provedor de dados definiu para as colunas na tabela protegida por privacidade para entender melhor o conteúdo da coluna.
Se o provedor de dados esqueceu de definir um domínio de privacidade para uma coluna que você deseja usar em uma agregação ou em uma cláusula GROUP BY, especifique o domínio de privacidade para a coluna.
Execute consultas privadas diferenciadas em tabelas e exibições protegidas por privacidade.
Use o intervalo de ruído para ajudar a entender os resultados de uma agregação.
Se desejar, restrinja o domínio de privacidade do provedor de dados para tentar melhorar os resultados da consulta.
Limitações¶
Quando uma tabela é protegida por privacidade, os analistas só podem consultar os seguintes tipos de dados:
Tipos de dados de cadeia de caracteres. Tipos binários não são suportados.
Tipos de dados de data e hora. Para carimbos de data/hora, somente TIMESTAMP_NTZ é suportado.
Alguns recursos do Snowflake não são suportados atualmente ao usar privacidade diferencial. Para obter mais detalhes, consulte Interações com recursos do Snowflake.
A funcionalidade de consulta é limitada para proteger a privacidade. Para obter uma lista de operadores suportados, sintaxe de consulta e funções, consulte Referência de SQL da privacidade diferencial.
Quando uma consulta é executada em uma tabela protegida por privacidade, o Snowflake primeiro calcula estatísticas que influenciam a quantidade de ruído que será adicionada e, em seguida, executa a consulta. Se os dados mudarem entre essas duas etapas, a quantidade de ruído adicionada pode estar incorreta. A Snowflake recomenda que os provedores de dados programem as atualizações de dados para que elas não ocorram quando os analistas puderem executar consultas.
Próximos passos¶
Se você é um provedor de dados que usa privacidade diferencial para proteger seu conjunto de dados, consulte Implementação de privacidade diferencial.
Se você for um analista que está consultando um conjunto de dados protegido por privacidade diferencial, consulte Como consultar dados protegidos por privacidade diferencial.