Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Qual é a melhor maneira de criptografar SSNs no SQL Server 2008?


Se você criptografar dados, deve se perguntar quem irá descriptografá-los. Se você usar um sistema de criptografia assimétrica (por exemplo, RSA), a criptografia usará a chave pública e a descriptografia usará a chave privada correspondente; "assimetria" vem do fato de que a chave privada não pode ser recalculada a partir da chave pública (embora ambas as chaves estejam matematicamente vinculadas).

A criptografia assimétrica tende a ter sobrecarga. Uma primeira observação é que tal criptografia deve ter alguma parte aleatória, porque todos podem criptografar (a chave pública é, sim, pública):se o processo de criptografia é determinístico, então qualquer um pode criptografar todos os SSNs possíveis (há menos de um bilhões deles, que é um número muito pequeno para um computador moderno) e correspondem aos valores criptografados. Portanto, deve haver alguma adição aleatória durante a criptografia e o SSN criptografado é maior que o SSN de texto simples.

Os sistemas de criptografia assimétrica conhecidos usam estruturas matemáticas que têm seu próprio custo. Basicamente, para o sistema de criptografia RSA, com uma chave "forte o suficiente", uma mensagem criptografada terá comprimento de pelo menos 128 bytes. Alguns sistemas de criptografia funcionam melhor; enquanto seguia os caminhos bem trilhados da pesquisa acadêmica, eu poderia fazê-lo em 41 bytes ou mais (com El-Gamal sobre a curva elíptica NIST K-163). Menor parece mais difícil.

Portanto, não é de admirar que um determinado sistema de banco de dados não inclua esse recurso por padrão.

Para o seu problema, você deve primeiro definir (e escrever), da forma mais clara possível:
  • quais são os dados que você deseja proteger
  • quem insere os dados
  • quem deve ler os dados de volta

e só então você deve se perguntar se a criptografia é uma ferramenta adequada para isso. A criptografia é boa quando o invasor imaginado pode colocar as mãos nos dados brutos armazenados. Isso significa que o invasor ignorou as proteções do sistema operacional. Nesse ponto, o que quer que o sistema operacional saiba, o invasor também sabe. Se o banco de dados está hospedado em uma máquina e existe uma interface através da qual o SSN descriptografado pode ser obtido, então essa máquina "sabe" como obter os dados, e o invasor também... sistema operacional da máquina é considerado resiliente o suficiente, então a criptografia não parece ser necessária.

A criptografia simétrica no banco de dados pode resolver um problema mais fraco, no qual o invasor obtém uma cópia do disco rígido depois . O sistema host conhece a chave de criptografia simétrica, mas a conhece apenas na RAM. Um invasor que roube o disco rígido não terá essa chave.