Quando una chiave viene generata con openssl genrsa
, la crittografia viene selezionata con un argomento della riga di comando, ad esempio -aes128
. Dopo aver generato la chiave, possiamo vedere quale crittografia è stata utilizzata nel file. Es:
cat host.key
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,AF4EBC2AE861F6FE8C751F7DAD5D4721
...
-----END RSA PRIVATE KEY-----
Quando una chiave viene generata tramite openssl req -newkey rsa:2048 -keyout host.key
, il file non indica quale crittografia è stata utilizzata.
-----BEGIN ENCRYPTED PRIVATE KEY-----
...
-----END ENCRYPTED PRIVATE KEY-----
Che cos'è?
In che modo openssl rsa -in host.key
sa come decrittografare la chiave?
Aggiornamento
openssl req
cripta per impostazione predefinita con DES-EDE3-CBC.
openssl req -new -x509 -out server.cer -keyout server.key -subj "/CN=toto/"
Generating a 1024 bit RSA private key
..................++++++
..++++++
writing new private key to 'server.key'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
-----
cat server.key
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,02306CD22AAC94CD
-----END RSA PRIVATE KEY-----
Il problema è con il mio comando originale. Ha specificato una configurazione che influenza in qualche modo la generazione delle chiavi che mi sfugge ancora.
Per impostazione predefinita, la configurazione assumerà encrypt_key = yes
. Ciò porta alla crittografia della chiave con un algo non specificato. Specificare encrypt_key = no
nella sezione [req]
equivale all'argomento -nodes
.
Le seguenti domande rimangono comunque:
- Quale crittografia viene applicata da openssl req quando viene specificata una configurazione?
- L'algoritmo può essere controllato?
- In che modo
openssl rsa
indovina il codice corretto per la decrittografia? Ovviamente deve essere codificato da qualche parte nei dati ...
All'inizio sembra bello avere openssl req
generare la chiave per me. Ma genrsa
offre più controllo.