Si cifra datos, entonces debe preguntarse quién lo descifrará. Si usa un sistema de cifrado asimétrico (por ejemplo, RSA), el cifrado utiliza la clave pública y el descifrado usa la clave privada correspondiente; La "asimetría" proviene del hecho de que la clave privada no puede ser recalculada desde la clave pública (aunque ambas claves están unidas matemáticamente).
La encriptación asimétrica tiende a tener una sobrecarga. Una primera observación es que dicha encriptación debe tener alguna parte aleatoria, porque todo el mundo puede encriptar (la clave pública es, sí, pública): si el proceso de encriptación es determinista, entonces cualquiera puede encriptar todos los posibles SSN (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 encriptados. Por lo tanto, debe haber algo aleatorio agregado durante el cifrado, y el SSN encriptado es más grande que el SSN de texto simple.
Los sistemas de encriptación asimétricos conocidos utilizan estructuras matemáticas que tienen su propio costo. 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 encriptación funcionan mejor; aunque me apegue a los caminos trillados de la investigación académica, podrí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 duro.
Por lo tanto, no es de extrañar que un sistema de base de datos dado no incluya dicha función de forma predeterminada.
para su problema, primero debe definir (y escribir), tan claramente como sea posible:
- lo son los datos que desea proteger
- que introduce los datos
- que es se supone que debe leer los datos
y luego solo debe usted preguntarse si el cifrado es una herramienta adecuada para eso. El cifrado es bueno cuando el atacante previsto puede tener acceso a los datos sin procesar y almacenados. Esto significa que el atacante ha pasado por alto las protecciones del sistema operativo. En ese momento, sea lo que sea que sepa el sistema operativo, el atacante también lo sabe. Si la base de datos está alojada en una máquina y hay 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 también lo hace el atacante ... 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 solucionar 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 encriptación simétrica, pero solo la conoce en RAM. Un atacante que robe el disco duro no tendrá esa clave.
¿Está seguro ** de que necesita almacenar SSN? ¿De verdad quieres esta responsabilidad legal masiva sobre tus hombros? – ceejayoz
Estoy haciendo lo mejor que no puedo. Pero este será un sistema de inscripción abierta de beneficios, y si agrega un nuevo dependiente, se requiere información del SSN. –
Eso tiene sentido. Solo me aseguro de que no sea una situación en la que algo como los últimos cuatro dígitos o un hash de una sola dirección sea suficiente. – ceejayoz