Dec 102010
 

opensslDopo 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:

Flattr this!

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

*