Escolher um comprimento de beacon - AWS Criptografia de banco SDK

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Escolher um comprimento de beacon

Nossa biblioteca de criptografia do lado do cliente foi renomeada como SDK de criptografia de banco de dados da AWS. Este guia do desenvolvedor ainda fornece informações sobre o DynamoDB Encryption Client.

Quando você grava um novo valor em um campo criptografado configurado para criptografia pesquisável, o SDK de criptografia de banco de dados da AWS calcula um HMAC sobre o valor de texto sem formatação. Essa saída de HMAC é uma correspondência de um para um (1:1) para o valor de texto sem formatação desse campo. A saída de HMAC é truncada para que vários valores de texto simples distintos sejam mapeados para a mesma etiqueta de HMAC truncada. Essas colisões, ou falsos positivos, limitam a capacidade de um usuário não autorizado de identificar informações diferenciadas sobre o valor do texto sem formatação.

O número médio de falsos positivos gerados para cada beacon é determinado pelo comprimento do beacon restante após o truncamento. Você só precisa definir o comprimento do beacon ao configurar os beacons padrão. Os beacons compostos usam os comprimentos dos beacons padrão a partir dos quais são construídos.

O beacon não altera o estado criptografado do campo. No entanto, quando você usa beacons, há uma compensação inerente entre a eficiência de suas consultas e a quantidade de informações reveladas sobre a distribuição dos dados.

O objetivo da criptografia pesquisável é reduzir os custos de desempenho associados aos bancos de dados criptografados do lado do cliente usando beacons para realizar consultas em dados criptografados. Os beacons são armazenados junto com os campos criptografados a partir dos quais são calculados. Isso significa que eles podem revelar informações diferenciadas sobre a distribuição do seu conjunto de dados. Em casos extremos, um usuário não autorizado pode analisar as informações reveladas sobre sua distribuição e usá-las para identificar o valor em texto simples de um campo. Escolher o comprimento certo do beacon pode ajudar a mitigar esses riscos e preservar a confidencialidade de sua distribuição.

Analise seu modelo de ameaça para determinar o nível de segurança de que você precisa. Por exemplo, quanto mais pessoas tiverem acesso ao seu banco de dados, mas não devem ter acesso aos dados em texto simples, mais você pode querer proteger a confidencialidade da distribuição do conjunto de dados. Para aumentar a confidencialidade, um beacon precisa gerar mais falsos positivos. O aumento da confidencialidade resulta na redução do desempenho das consultas.

Segurança versus desempenho
  • Um comprimento de beacon muito longo produz poucos falsos positivos e pode revelar informações diferenciadas sobre a distribuição do seu conjunto de dados.

  • Um comprimento de beacon muito curto produz muitos falsos positivos e aumenta o custo de desempenho das consultas porque exige uma varredura mais ampla do banco de dados.

Ao determinar o comprimento adequado do beacon para sua solução, você deve encontrar um comprimento que preserve adequadamente a segurança de seus dados sem afetar o desempenho de suas consultas mais do que o absolutamente necessário. A quantidade de segurança preservada por um beacon depende da distribuição do seu conjunto de dados e da correlação dos campos a partir dos quais seus beacons são construídos. Os tópicos a seguir pressupõem que seus beacons estejam distribuídos uniformemente e não contenham dados correlacionados.

Cálculo do tamanho do beacon

O comprimento do beacon é definido em bits e se refere ao número de bits da tag HMAC que são mantidos após o truncamento. O comprimento recomendado do beacon varia de acordo com a distribuição do conjunto de dados, a presença de valores correlacionados e seus requisitos específicos de segurança e desempenho. Se seu conjunto de dados estiver distribuído uniformemente, você poderá usar as equações e procedimentos a seguir para ajudar a identificar o melhor comprimento de beacon para sua implementação. Essas equações estimam apenas o número médio de falsos positivos que o beacon produzirá, mas não garantem que cada valor exclusivo em seu conjunto de dados produza um número específico de falsos positivos.

nota

A eficácia dessas equações depende da distribuição do seu conjunto de dados. Se seu conjunto de dados não estiver distribuído uniformemente, consulte. Os beacons são adequados para meu conjunto de dados?

Em geral, quanto mais longe seu conjunto de dados estiver de uma distribuição uniforme, mais você precisará reduzir o comprimento do beacon.

  1. Estimar a população

    A população é o número esperado de valores exclusivos no campo a partir do qual seu beacon padrão é construído, não é o número total esperado de valores armazenados no campo. Por exemplo, considere um Room campo criptografado que identifica o local das reuniões dos funcionários. Espera-se que o Room campo armazene 100.000 valores totais, mas existem apenas 50 salas diferentes que os funcionários podem reservar para reuniões. Isso significa que a população é 50 porque há apenas 50 valores exclusivos possíveis que podem ser armazenados no Room campo.

    nota

    Se seu beacon padrão for construído a partir de um campo virtual, a população usada para calcular o comprimento do beacon é o número de combinações exclusivas criadas pelo campo virtual.

    Ao estimar sua população, não se esqueça de considerar o crescimento projetado do conjunto de dados. Depois de gravar novos registros com o beacon, não será possível atualizar o comprimento do beacon. Analise seu modelo de ameaças e todas as soluções de banco de dados existentes para criar uma estimativa do número de valores exclusivos que você espera que esse campo armazene nos próximos cinco anos.

    A sua população não precisa ser precisa. Primeiro, identifique o número de valores exclusivos em seu banco de dados atual ou estime o número de valores exclusivos que você espera armazenar no primeiro ano. Em seguida, use as perguntas a seguir para ajudá-lo a determinar o crescimento projetado de valores exclusivos nos próximos cinco anos.

    • Você espera que os valores exclusivos se multipliquem por 10?

    • Você espera que os valores exclusivos se multipliquem por 100?

    • Você espera que os valores exclusivos se multipliquem por 1000?

    A diferença entre 50.000 e 60.000 valores exclusivos não é significativa e ambos resultarão no mesmo comprimento de beacon recomendado. No entanto, a diferença entre 50.000 e 500.000 valores exclusivos afetará significativamente o comprimento recomendado do beacon.

    Considere analisar os dados públicos com base na frequência de tipos de dados comuns, como códigos postais ou sobrenomes. Por exemplo, existem 41.707 CEPs nos Estados Unidos. A população que você usa deve ser proporcional ao seu próprio banco de dados. Se o ZIPCode campo em seu banco de dados incluir dados de todos os Estados Unidos, você poderá definir sua população como 41.707, mesmo que o ZIPCode campo não tenha atualmente 41.707 valores exclusivos. Se o ZIPCode campo em seu banco de dados incluir apenas dados de um único estado e sempre incluirá dados de um único estado, você poderá definir sua população como o número total de CEPs nesse estado, em vez de 41.704.

  2. Calcule a faixa recomendada para o número esperado de colisões

    Para determinar o comprimento adequado do beacon para um determinado campo, você deve primeiro identificar um intervalo apropriado para o número esperado de colisões. O número esperado de colisões representa o número médio esperado de valores de texto simples exclusivos que são mapeados para uma tag HMAC específica. O número esperado de falsos positivos para um valor de texto simples exclusivo é um a menos do que o número esperado de colisões.

    Recomendamos que o número esperado de colisões seja maior ou igual a dois e menor que a raiz quadrada da sua população. As equações a seguir só funcionam se sua população tiver 16 ou mais valores exclusivos.

    2 ≤ number of collisions < √(Population)

    Se o número de colisões for menor que dois, o beacon produzirá poucos falsos positivos. Recomendamos dois como o número mínimo de colisões esperadas, pois isso significa que, em média, cada valor exclusivo no campo gerará pelo menos um falso positivo ao ser mapeado para outro valor exclusivo.

  3. Calcule o intervalo recomendado para comprimentos de beacon

    Depois de identificar o número mínimo e máximo de colisões esperadas, use a equação a seguir para identificar uma faixa de comprimentos de beacon apropriados.

    number of collisions = Population * 2-(beacon length)

    Primeiro, resolva o comprimento do beacon em que o número de colisões esperadas é igual a dois (o número mínimo recomendado de colisões esperadas).

    2 = Population * 2-(beacon length)

    Em seguida, calcule o comprimento do beacon em que o número esperado de colisões é igual à raiz quadrada da sua população (o número máximo recomendado de colisões esperadas).

    √(Population) = Population * 2-(beacon length)

    Recomendamos arredondar a saída produzida por essa equação para o menor comprimento do beacon. Por exemplo, se a equação produzir um comprimento de beacon de 15,6, recomendamos arredondar esse valor para 15 bits em vez de arredondar para 16 bits.

  4. Escolher um comprimento de beacon

    Essas equações identificam apenas uma faixa recomendada de comprimentos de beacon para seu campo. Recomendamos usar um comprimento de beacon menor para preservar a segurança do seu conjunto de dados sempre que possível. No entanto, o comprimento do beacon que você realmente usa é determinado pelo seu modelo de ameaça. Considere seus requisitos de desempenho ao analisar seu modelo de ameaça para determinar o melhor comprimento do beacon para seu campo.

    Usar um comprimento de beacon menor reduz o desempenho da consulta, enquanto usar um comprimento de beacon maior diminui a segurança. Em geral, se seu conjunto de dados estiver distribuído de forma desigual ou se você construir beacons distintos a partir de campos correlacionados, precisará usar beacons menores para minimizar a quantidade de informações reveladas sobre a distribuição de seus conjuntos de dados.

    Se você analisar seu modelo de ameaça e decidir que qualquer informação distintiva revelada sobre a distribuição de um campo não representa uma ameaça à sua segurança geral, você pode optar por usar um comprimento de beacon maior do que o intervalo recomendado calculado. Por exemplo, se você calculou o intervalo recomendado de comprimentos de beacon para um campo como 9 a 16 bits, você pode optar por usar um comprimento de beacon de 24 bits para evitar qualquer perda de desempenho.

    Escolha o comprimento do beacon com cuidado. Depois de gravar novos registros com o beacon, não será possível atualizar o comprimento do beacon.

Exemplo

Considere um banco de dados que marcou o unit campo como ENCRYPT_AND_SIGN nas ações criptográficas. Para configurar um beacon padrão para o campo unit, precisamos determinar o número esperado de falsos positivos e o comprimento do beacon para o campo unit.

  1. Estimar a população

    Depois de analisar nosso modelo de ameaças e a solução atual de banco de dados, esperamos que o campo unit eventualmente tenha 100.000 valores exclusivos.

    Isso significa que População = 100.000.

  2. Calcule a faixa recomendada para o número esperado de colisões.

    Neste exemplo, o número esperado de colisões deve estar entre 2 e 316.

    2 ≤ number of collisions < √(Population)
    1. 2 ≤ number of collisions < √(100,000)
    2. 2 ≤ number of collisions < 316
  3. Calcule o intervalo recomendado para o comprimento do beacon.

    Neste exemplo, o comprimento do beacon deve estar entre 9 e 16 bits.

    number of collisions = Population * 2-(beacon length)
    1. Calcule o comprimento do beacon em que o número esperado de colisões é igual ao mínimo identificado na Etapa 2.

      2 = 100,000 * 2-(beacon length)

      Comprimento do beacon = 15,6 ou 15 bits

    2. Calcule o comprimento do beacon em que o número esperado de colisões é igual ao máximo identificado na Etapa 2.

      316 = 100,000 * 2-(beacon length)

      Comprimento do beacon = 8,3 ou 8 bits

  4. Determine o comprimento do beacon adequado aos seus requisitos de segurança e desempenho.

    Para cada bit abaixo de 15, o custo de desempenho e a segurança dobram.

    • 16 bits

      • Em média, cada valor exclusivo será mapeado para 1,5 outras unidades.

      • Segurança: dois registros com a mesma tag HMAC truncada têm 66% de probabilidade de ter o mesmo valor em texto simples.

      • Desempenho: uma consulta recuperará 15 registros para cada 10 registros que você realmente solicitou.

    • 14 bits

      • Em média, cada valor exclusivo será mapeado para 6,1 outras unidades.

      • Segurança: dois registros com a mesma tag HMAC truncada têm 33% de probabilidade de ter o mesmo valor em texto simples.

      • Desempenho: uma consulta recuperará 30 registros para cada 10 registros que você realmente solicitou.