¿Por qué esta clave se codifica en Base64 antes de usarla?

2

Deseo que mi servidor cifre los mensajes a los clientes que han proporcionado al servidor una clave pública RSA, así como que los clientes autentiquen sus mensajes en el servidor utilizando su clave privada correspondiente. Antes de iniciar el desarrollo, para ayudarnos a mí ya los demás desarrolladores a comprender en qué consistiría, creé scripts de juguete que realizaban cada paso utilizando OpenSSL (v0.9.8zg, julio de 2015).

Cuando descubrí cuáles serían los comandos de OpenSSL, usé esta página como referencia , pero me dejó con dos preguntas:

  1. ¿Por qué la clave generada utilizada para AES-256 está codificada en Base64 antes de su uso en AES-256 y su cifrado bajo RSA?
  2. ¿Es incluso seguro cifrar una clave de 256 bits sin saber qué tan grande es la clave RSA? Según esta respuesta , si se trata de una clave RSA de 2048 bits, a lo sumo podría usar AES- 192. (Como lo señaló @AgentME, esto se basó en una mala lectura de esa respuesta).
pregunta Jason Whittle 30.03.2016 - 00:04
fuente

1 respuesta

2

Respuesta corta: porque no es realmente una clave, es una contraseña y las contraseñas deben estar formadas por caracteres imprimibles.

En esta línea, que cifra el archivo:

openssl enc -aes-256-cbc -salt -in SECRET_FILE -out SECRET_FILE.enc -pass file:./key.bin

la opción -pass file:filename para el openssl enc command se usa para pasar una contraseña o frase de contraseña, no para pasar la clave AES de 256 bits con la que se cifrará el archivo. La clave en sí se deriva de la contraseña de OpenSSL mediante un algoritmo de derivación de claves.

En el ejemplo que publicaste, key.bin parece que podría tratarse de una clave de cifrado binario, pero en realidad solo es un archivo con un nombre muy engañoso.

El motivo para generar una contraseña de cifrado como lo están haciendo es que si un usuario no tiene que recordarla o escribirla (en este caso, se almacena en un archivo cifrado con una clave pública RSA), También puede generar uno aleatorio con el mismo número de bits de entropía que la clave que se derivará de él (ya que es una pérdida de tiempo), para hacerlo lo más fuerte posible.

    
respondido por el samgak 30.03.2016 - 04:19
fuente

Lea otras preguntas en las etiquetas