asn1parse - strumento per analizzare ASN.1
openssl asn1parse [-inform PEM/DER][-in filename][-out filename][-noout][-offset number] [-lenght number][-i][-oid filename][-strparse offset]
Il comando asn1parse è una utility di diagnostica che può analizzare le strutture ASN.1. Essa può anche essere usata per estrarre i dati dai Dati Formattati ASN.1
L'output conterrà tipicamente linee come queste:
0:d=0 hl=4 1=681 cons:SEQUENZA | |
?? | |
229:d=3 hl=3 1=141 prim: BIT STRING | |
373:d=2 hl=3 1=162 cons: cont[3] | |
376:d=3 hl=3 1=159 cons: SEQUENZA | |
379:d=4 hl=2 1=29 cons: SEQUENZA | |
381:d=5 hl=2 1=3 prim: OBJECT | :X509v3 Identificatore della chiave Soggetto |
386:d=5 hl=2 1=22 prim: OTTAVA STRINGA | |
410:d=4 hl=2 1=112 cons: SEQUENZA | |
412:d=5 hl=2 1=3 prim: OBJECT | :X509v2 Identificatore delle chiavi delle Autorità |
417:d=5 hl=2 1=105 prim: OTTAVA STRINGA | |
524:d=4 hl=2 1=12 cons: SEQUENZA | |
???? |
Quest'esempio è parte di un certificato self-signed. Ogni linea comincia con l'offset in decimale.
L'opzione -i può essere usata per creare un output più
leggibile.
Per interpretare l'output
sono necessarie alcune conoscenze sulla struttura ASN.1.
In questo esempio il BIT
STRING all'offset 229 è la chiave publica del certificato.
Gli otto versi contenuti
conterranno le informazioni sulla chiave pubblica. Questo può essere esaminato
usando l'opzione –strparse 229 per
produrre:
0:d=0 hl=1 l=137 cons:SEQUENZA | |
3:d=1 hl=3 l=129 prim: INTERO | |
:E5D21E1F5C8D208EA7A2166C7FAF9F6BDF2059669C60876DDB70840 F1A5AAFA59699FE471F379F1DD6A487E7D5409AB6A88D4A9746E24B9 1D8CF55DB352105460C8EDE44EE8A4189F7A7BE77D6CD3A9AF2696F4 86855CF58BF0EDF2B4068058C7A947F52548DDF7E15E96B385F86422B EA9064A3EE9E115A56E4A6F47E5897 | |
135:d=1 hl=2 l=3 prim: INTERI | >:010001 |
Se un OID non è parte della tavola interna dell'OpenSSL, esso sarà
rappresentato in una forma
numerica (per esempio 1.2.3.4).
Il file passato all'opzione -oid permette di includere degli OIDs addizionali.
Ogni linea del file è formata da tre
colonne, la prima colonna è l'OID in
un formato numerico e dovrebbe
essere seguito da uno spazio bianco.
La seconda colonna è lo “short
name”, che è formato da una singola parola, seguito da uno spazio
bianco.
La colonna finale è il resto
della linea ed è il “long name”.
asn1parse visualizza il long name.
La seguente è un esempio di riga del file suddetto.
1.2.3.4 | shortName | A long name |
Ci dovrebbero essere delle opzioni per cambiare il formato delle linee di input. L'output di alcuni tipi ASN.1 non è ben trattato.
passwd - calcola i valori hash delle password.
openssl passwd [-crypt] [-1] [-apr1] [-salt string] [-in file] [-stdin] [-noverify] [-quiet] [-table] {password}
Il comando passwd calcola il valore hash di una password inserita a tempo di esecuzione o di ognuna delle password di una lista. La lista delle password viene prelevata da un file se è indicato nell'opzione -in, dallo standard input se è usata l’opzione -stdin, o dalla linea di comando o dal terminale. Sono disponibili l'algoritmo di cifratura standard Unix e l'algoritmo 1 per le password BSD MD5-based e la sua variante Apache apr1.
1) Il seguente comando stampa xxj31ZMTZzkVA.
openssl passwd -crypt -salt xx password
2) Il seguente comando stampa $1$xxxxxxxx$8XJIc16ZXqBMCK0qFevqT1.
openssl passwd -1 -salt
xxxxxxxx password
3) Il seguente comando stampa $apr1$xxxxxxxx$dxHfLAsjHkDRmG83Uxe8K0.
openssl
passwd -apr1 -salt xxxxxxxx password
pkcs7 - utility PKCS#7.
openssl pkcs7 [-inform PEM | DER] [-outform PEM | DER] [-in filename] [-out filename] [-print_certs] [-text] [-noout]
Il comando pkcs7 processa file PKCS#7 in formato DER o PEM
1) Converte un file PKCS#7 da formato PEM a DER:
openssl
pkcs7 -in file.pem -outform DER -out fil.der
2) Stampa tutti i certificati in un file:
openssl pkcs7 -in file.pem -print_certs -out certs.pem
Il formato PEM PKCS#7 usa le seguenti linee di intestazione e chiusura:
Per compatibilità con alcune CA vengono anche accettate le seguenti linee:
Non ci sono opzioni per stampare tutti i campi di un file PKCS#7.
Questa routine PKCS#7 conosce solo PKCS#7 versione 1.5 come specificato in RFC2315. Essa non può comprendere, ad esempio, il nuovo CMS come descritto in RFC2630.
rand -– genera bytes pseudo-casuali.
openssl rand [-out file] [-rand file(s)] [-base64] num
Il comando rand fornisce in output num bytes pseudo-casuali dopo aver inizializzato il generatore di numeri casuali. Come in altre linee di comando di openssl, l'inizializzazione PRNG usa il file $HOME/.rnd o .rnd in aggiunta al file dato dall'opzione -rand. Un nuovo file .rnd o /HOME.rnd sarà scritto se le sorgenti non bastano per l'inizializzazione.
RAND_bytes(3).
Speed - testa la performance della libreria
openssl speed [-engine id] [md2] [mdc2] [md5] [hmac] [sha1] [rmd160] [idea-cbc] [rc2-cbc] [rc5-cbc] [bf-cbc] [des-cbc] [des-ede3] [rc4] [rsa512] [rsa1024] [rsa2048] [rsa4096] [dsa512] [dsa1024] [dsa2048] [idea] [rc2] [des] [rsa] [blowfish]
Questo comando è usato per testare le performance degli algoritmi crittografici.