sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cuál es la mejor manera de cifrar SSN en SQL Server 2008?

Si cifra los datos, debe preguntarse quién los descifrará. Si utiliza un sistema de cifrado asimétrico (p. ej., RSA), el cifrado utiliza la clave pública y el descifrado utiliza la clave privada correspondiente; La "asimetría" proviene del hecho de que la clave privada no se puede volver a calcular a partir de la clave pública (aunque ambas claves están vinculadas matemáticamente).

El cifrado asimétrico tiende a tener sobrecarga. Una primera observación es que tal encriptación debe tener alguna parte aleatoria, porque todos pueden encriptar (la clave pública es, sí, pública):si el proceso de encriptación es determinista, cualquiera puede encriptar todos los SSN posibles (hay menos de un mil millones de ellos, que es un número realmente pequeño para una computadora moderna) y coinciden con los valores cifrados. Por lo tanto, debe agregarse algo al azar durante el cifrado, y el SSN cifrado es más grande que el SSN en texto sin formato.

Los sistemas de cifrado asimétrico conocidos utilizan estructuras matemáticas que tienen su propio coste. Básicamente, para el sistema de encriptación RSA, con una clave "suficientemente fuerte", un mensaje encriptado tendrá una longitud de al menos 128 bytes. Algunos sistemas de cifrado funcionan mejor; mientras me apegaba a los caminos trillados de la investigación académica, podía hacerlo en 41 bytes más o menos (con El-Gamal sobre la curva elíptica NIST K-163). Más pequeño parece más difícil.

Por lo tanto, no es de extrañar que un sistema de base de datos determinado no incluya dicha función de forma predeterminada.

Para su problema, primero debe definir (y escribir), tan claramente como pueda:

  • ¿Cuáles son los datos que desea proteger?
  • quién ingresa los datos
  • quién se supone que debe volver a leer los datos

y entonces solo debería preguntarse si el cifrado es una herramienta adecuada para eso. El cifrado es bueno cuando el atacante imaginado puede obtener los datos almacenados sin procesar. Esto significa que el atacante ha pasado por alto las protecciones del sistema operativo. En ese momento, lo que sepa el sistema operativo, el atacante también lo sabe. Si la base de datos está alojada en una máquina y existe una interfaz a través de la cual se puede obtener el SSN descifrado, entonces esa máquina "sabe" cómo obtener los datos, y el atacante también... Por otro lado, si el host el sistema operativo de la máquina se considera lo suficientemente resistente, entonces el cifrado no parece ser necesario en absoluto.

El cifrado simétrico en la base de datos puede abordar un problema más débil, en el que el atacante obtiene una copia del disco duro después . El sistema host conoce la clave de cifrado simétrica, pero solo la conoce en la RAM. Un atacante que robe el disco duro no tendrá esa clave.