Dopo il mio precedente articolo 7 usi pratici di openssl ho ricevuto commenti e segnalazioni di altri possibili utilizzi di questo ottimo programma.
Con questo articolo vi presenterò quindi altri utilizzi del comando openssl dalla linea di comando.
Cifratura/decifratura
È possibile usare OpenSSL per criptare i file. Per visualizzare l’elenco delle cifre disponibili, utilizzate
openssl list-cipher-commands. |
Avrete un output simile a
aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecb aes-256-cbc aes-256-ecb base64 bf bf-cbc bf-cfb bf-ecb bf-ofb cast cast-cbc cast5-cbc cast5-cfb cast5-ecb cast5-ofb des des-cbc des-cfb des-ecb des-ede des-ede-cbc des-ede-cfb des-ede-ofb des-ede3 des-ede3-cbc des-ede3-cfb des-ede3-ofb des-ofb des3 desx rc2 rc2-40-cbc rc2-64-cbc rc2-cbc rc2-cfb rc2-ecb rc2-ofb rc4 rc4-40 |
Una volta scelto un cifrario da utilizzare, è possibile crittografare i file utilizzando i seguenti comandi:
openssl enc -aes-256-cbc -salt -in foo.txt -out foo.enc |
Vi verrà richiesta una password due volte e dopo di che avretel vostro file cifrato.In questo esempio il file foo.txt è stato cifrato con AES a 256 bit in modalità CBC, la copia cifrata è salvata come file foo.enc. Guardando il contenuto del file si vedranno stringhe senza senso. Si può decifrare il file usando l’opzione -d, tuttavia, tenete presente che non solo è necessario ricordare la password, è inoltre necessario conoscere il cifrario utilizzato.
Comando per decifrare:
openssl enc -d -aes-256-cbc -in foo.enc |
Base64 encoding
Se si lavora con e-mail raw può essere utile cifrare/decifrare con Base64, per OpenSSL questo è solo una tipologia di cifra quindi si possono utilizzare i segutni comandi:
# inviare contenuti codificati di file.txt su stdout
openssl enc -base64 -in file.txt |
# stesso, ma scrive i contenuti in file.txt.enc
openssl enc -base64 -in file.txt -out file.txt.enc |
interpretare i messaggi di errore SSL
A volte capita di vedere messaggi di errore SSL in relazione ai programmi di altri (http, LDAP, SSH), è possibile utilizzare openssl per ottenere una migliore comprensione di ciò che significa.
Ad esempio:
sshd[31784]: error: RSA_public_decrypt failed: error:0407006A:lib(4):func(112):reason(106) sshd[770]: error: RSA_public_decrypt failed: error:0407006A:lib(4):func(112):reason(106) |
Il primo passo per capire cosa c’è di sbagliato è quello di utilizzare l’opzione errstr per intrepret il codice di errore. Il numero di codice si trova tra “errore” e “lib”. In questo caso, è 0407006A.
$ openssl errstr 0407006A
error:0407006A:rsa routines:RSA_padding_check_PKCS1_type_1:block type is not 01 |
Numeri primi
Le attuali tecniche di crittografia si basano molto sulla produzione e il collaudo dei numeri primi, quindi non c’è da sorprendersi che le librerie OpenSSL contengono routine diverse che hanno a che fare con i numeri primi. A partire dalla versione 0.9.7e (o giù di lì), l’opzione prime è stato aggiunta alle librerie openssl.
Per verificare se un numero è primo basta passare il numero dopo l’opzione prima. OpenSSL risponderà con il numero esadecimale di quel numero dicendoci anche se è primo o meno:
$openssl prime 12123211 B8FC4B is prime $openssl prime 121232111 739DAEF is not prime |
Riferimenti: http://blogs.techrepublic.com.com/opensource/?p=200
Popular Posts:
- None Found