Perché questa chiave ottiene codifica Base64 prima dell'uso?

2

Desidero che il mio server crittografi i messaggi ai client che hanno fornito a ciascuno il server con una chiave pubblica RSA, nonché che i client autenticano i loro messaggi al server utilizzando la chiave privata corrispondente. Prima di iniziare lo sviluppo, per aiutare me e gli altri sviluppatori a capire cosa sarebbe implicato, ho creato script giocattolo che eseguivano ogni passaggio utilizzando OpenSSL (v0.9.8zg luglio 2015).

Quando capisco quali sarebbero i comandi di OpenSSL, ho usato questa pagina come riferimento , ma mi ha lasciato con due domande:

  1. Perché la chiave generata utilizzata per AES-256 è codificata in Base64 prima del suo utilizzo in AES-256 e la sua crittografia sotto RSA?
  2. È anche sicuro crittografare una chiave a 256 bit senza sapere quanto è grande la chiave RSA? Secondo questa risposta , se si tratta di una chiave RSA a 2048 bit, al massimo sarei in grado di utilizzare AES- 192. (Come sottolineato da @AgentME, ciò si basava su una lettura errata di tale risposta).
posta Jason Whittle 30.03.2016 - 00:04
fonte

1 risposta

2

Risposta breve: perché non è in realtà una chiave, è una password e le password devono essere costituite da caratteri stampabili.

In questa riga, che crittografa il file:

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

l'opzione -pass file:filename del comando openssl enc viene utilizzata per passare una password o passphrase, non per passare la chiave AES a 256 bit effettiva con cui il file verrà crittografato. La chiave stessa è derivata dalla password di OpenSSL utilizzando un algoritmo di derivazione della chiave.

Nell'esempio che hai postato, key.bin assomiglia molto a una chiave di crittografia binaria, ma in realtà è solo un file con un nome molto fuorviante.

Il motivo per cui si genera una password di crittografia come quella che stanno facendo è che se la password non deve essere ricordata da un utente o digitata (in questo caso viene memorizzata in un file crittografato usando una chiave pubblica RSA), può anche generare uno casuale con lo stesso numero di bit di entropia come la chiave che ne deriverà (più è una perdita di tempo), per renderlo il più strong possibile.

    
risposta data 30.03.2016 - 04:19
fonte

Leggi altre domande sui tag