¿El cifrado AES 256 admite una clave maestra y las claves generadas (bombardeadas por el tiempo)?

1

Tengo un escenario donde los datos semi-sensibles [1] para una aplicación web corporativa se almacenan en el almacenamiento localizado del navegador (la base de datos indexada es específica, a través de JavaScript).

La intención es cifrar los datos ( AES 256 ) en el nivel del servidor con una clave / frase " maestra ", pero luego enviar un 'bombardeo de tiempo' clave generada que permitiría descifrar los datos ... pero solo por un cierto tiempo, por ejemplo 2-4 horas.

Me han llevado a creer que esto es posible , sin embargo, no he encontrado ninguna documentación que indique cómo generar claves temporales.

Si este concepto es posible, sería útil un enlace a, o una indicación de cómo se llamaría la API / llamada de método. Si esto es posible, pero solo en otros esquemas de encriptación (por ejemplo, ¿SHA-512?), Agradecería un empujón en la dirección correcta.

[1] - No se aceptan tarjetas de crédito, ni financieros ni de otro tipo. Solo cosas que el usuario podría no querer que una persona casual pase para poder leer. Sí, soy plenamente consciente de que "seguridad" y "JavaScript" probablemente no deberían pronunciarse en la misma frase, pero esto es todo lo que ofrece HTML5.

    
pregunta David 11.05.2015 - 22:54
fuente

1 respuesta

4

Primero, sobre AES-256 en particular: AES-256 es un sistema criptográfico simétrico. El descifrado y el cifrado utilizan la misma clave; Si encriptas cosas con una clave maestra, debes darle esa clave maestra a lo que sea que esté descifrando cosas o, de lo contrario, no podrá descifrarlas. Es posible que haya leído sobre las claves maestras y de sesión, pero se trata de cosas que ocurren antes del cifrado AES: para descifrar la salida de AES-Encrypt(k,m) , el cliente debe conocer k .

Segundo, para el descifrado basado en el tiempo: los algoritmos de cifrado y descifrado son funciones matemáticas. No tienen ni idea de una hora; no se les puede hacer trabajar de una manera hoy y de una manera diferente en seis semanas. Una función toma una entrada y da una salida; siempre da la misma salida si se le da la misma entrada, sin importar dónde o cuándo se esté ejecutando. Dado que ni la clave ni el texto cifrado se degradan con el tiempo a menos que lo destruyas activamente, no hay forma de que el descifrado "bombardee el tiempo" que ocurra completamente en el lado del cliente. Esto no es específico de AES; En cada sistema de encriptación, si tiene la información necesaria para descifrar los datos ahora, puede usar esa información en cualquier momento.

La única forma de obtener algún tipo de cifrado de bomba de tiempo es hacer que el cliente simplemente no tenga toda la información que necesita para descifrar. Necesita un sistema en el que no se pueda descifrar sin ponerse en contacto con un servidor que usted controla y obtener información que de otra manera no se podría averiguar. Incluso entonces, si esa información se almacena localmente, un atacante no necesita ponerse en contacto con usted para utilizarla por segunda vez a menos que vuelva a cifrar los datos.

    
respondido por el cpast 12.05.2015 - 00:03
fuente

Lea otras preguntas en las etiquetas