Encriptando un campo de base de datos vacío en lugar de dejarlo vacío

8

En un sistema donde la información personal almacenada en una base de datos está encriptada, pero uno de los campos solo contiene datos en una minoría de casos, tendría más sentido dejar el campo vacío, en lugar de ¿cifrando una cadena vacía?

Por un lado, si elijo dejar el campo vacío, estaría filtrando información sobre el contenido del registro (completado o no)

Por otra parte, si cifro el campo vacío, la mayoría del tiempo le estoy dando a un atacante potencial un texto sin formato conocido.

El algoritmo que se está utilizando es AES-256.

Soy consciente de que un atacante aún tendría que utilizar la fuerza bruta de la clave, incluso si obtuvieran un par de texto cifrado / texto sin formato, sin embargo, tengo curiosidad por la opinión de la comunidad de que el enfoque de la mejor práctica sería aquí.

    
pregunta Leigh 10.06.2013 - 11:03
fuente

2 respuestas

6

Dado que solo una minoría de los registros puede contener datos reales en ese campo (no vacío), un atacante puede adivinar el texto sin formato (los vacíos) con una alta probabilidad. Así que tu suposición es correcta. Por suerte, para usted y para nosotros, por lo que sabemos, AES no es realmente susceptible a ataques de texto sin formato conocido .

Los ataques que ya conocemos requieren grandes cantidades de texto simple y su correspondiente texto cifrado , y tienen una muy alta complejidad computacional (2 254.4 para una clave de 256 bits).

Yo diría que no te preocupes por eso. Vaya con el cifrado de ese campo de datos.

    
respondido por el Adi 10.06.2013 - 12:37
fuente
3

Le sugiero que intente agregar sus datos (cualquier forma de sal variable). De esa manera, incluso un campo vacío tiene "datos" y será un blob aleatorio una vez cifrado.

    
respondido por el Jan Doggen 10.06.2013 - 16:27
fuente

Lea otras preguntas en las etiquetas