7 Manuale - Cifrari

7.1 Il comando ciphers

Nome

Ciphers – uno strumento SSL di cipher display e lista di cifrari.

Sintassi

openssl ciphers [-v] [-ssl2] [-ssl3] [-tls1] [cipherlist]

Descrizione

Il comando cipherlist converte una lista di cifrari OpenSSL una lista ordinata per preferenze di cifrari SSL. Esso può essere usato per determinare l’appropriata lista di cifrari.

Opzioni del comando

  • -v: Opzione verbose. La lista di cifrari con una descrizione completa della versione del protocollo (SSLv2 o SSLv3; il secondo include TLS), scambio di chiavi, autenticazione, cifratura e algoritmi MAC usati con ogni restrizione alla dimensione della chiave e indicazione di se l’algoritmo è classificato come cifrario “export”. Si noti che senza l’opzione –v, i cifrari potrebbero apparire due volte nella lista dei cifrari; ciò avviene quando cifrari simili sono disponibili per SSL v2 e SSL v3/TLS v1.
  • -ssl3: include solo nel cifrario SSL v3.
  • -ssl2: include solo nel cifrario SSL v2.
  • -tls1: include solo nel cifrario TLS v1.
  • -h,-?: stampa un breve messaggio d’uso.
  • cipherlist: una lista di cifrari da convertire in una lista di cifrari ordinata su preferenze. Se essa non è inclusa allora può essere usata la lista dei cifrari di default. Il formato è descritto di seguito.
  • Formato della lista dei cifrari

    La lista dei cifrari consiste di una o più stringhe di cifrari separate da ‘:’. Anche le virgole o gli spazi sono accettati come separatori ma di solito sono usati i ’:’.
    Attuali stringhe di cifrari possono assumere diverse forme.
    Esse possono consistere di una singola cipher suite come RC4-SHA.
    Essa può rappresentare una lista di cipher suite contenente un certo algoritmo, o cipher suite di un certo tipo. Per esempio SHA1 rappresenta tutte le cipher suites che usano l’algoritmo digest SHA1 e SSLv3 rappresenta tutti gli algoritmi SSLv3.
    Le liste di cipher suite possono essere combinate in una singola stringa di cifrari usando il carattere ‘+’. Per esempio SHA1+DES rappresentano tutte le cipher suites contenenti gli algoritmi SHA1 e il DES.
    Ogni stringa di cifrari può essere preceduta opzionalmente dai caratteri ‘!’, ‘-‘ oppure ‘+’.
    Se è usato il carattere ‘!’ allora i cifrari sono cancellati definitivamente dalla lista. I cifrari cancellati non possono più riapparire nella lista anche se ciò viene esplicitamente richiesto.
    Se è usato il carattere ‘-‘, allora i cifrari vengono cancellati dalla lista ma tutti o alcuni possono essere riaggiunti alla lista con altre opzioni.
    Se è usato il carattere ‘+’ allora i cifrari vengono spostati alla fine della lista. Questa opzione non aggiunge nuovi cifrari ma li sposta confrontandoli con quelli già presenti.
    Se nessuno di questi caratteri è presente allora la stringa è interpretata come una lista di cifrari che vengono aggiunti alla attuale lista a priorità. Se la lista include qualche cifrario già presente, esso viene ignorato: ciò significa che esso non è spostato alla fine della lista.
    Inoltre la stringa dei cifrari @STRENGTH può essere usata a questo punto per ordinare l’attuale lista di cifrari secondo l’ordine della lunghezza della chiave dell’algoritmo di cifratura.

    Cipher Strings

    Di seguito è illustrata la lista di tutte le stringhe di cifrari e il loro significato.

  • DEFAULT: La lista dei cifrari di default. Questa è definita a tempo di compilazione ed è normalmente ALL:!ADH:RC4+RSA:+SSLv2:@STRENGHT. Dovrebbe essere la prima stringa di cifrari specificata.
  • ALL: Tutte le cipher suite, tranne il cifrario eNULL, dovrebbero essere esplicitamente abilitati.
  • HIGH: Cipher suite a cifratura “high”. Questo attualmente significa usare una lunghezza della chiave pari a 128 bit.
  • MEDIUM: Cipher suite a cifratura “medium”, attualmente questi usano 128 bit per cifrare.
  • LOW: Cipher suite a cifratura “low”, attualmente questi usano algoritmi di cifratura a 64 o 56 bit escludendo l’esportazione delle cipher suite.
  • EXP,EXPORT: Esporta algoritmi di cifratura. Include algoritmi a 40 e 56 bit.
  • EXPORT40: Esporta algoritmi di cifratura a 40 bit.
  • EXPORT56: Esporta algoritmi di cifratura a 56 bit.
  • eNULL,NULL: I cifrari “NULL”, cioè quelli che non offrono cifratura. Poichè essi non offrono cifratura per niente e sono un rischio per la sicurezza, vengono disabilitati a meno che non vengano esplicitamente inclusi.
  • ANULL: Le cipher suites non offrono l’autenticazione. Questo è fatto attualmente con l’algoritmo anonimo DH. Queste cipher suite sono soggette ad un attacco “man in the middle” per cui il loro uso è di solito scoraggiato.
  • kRSA, RSA: Cipher suite che usano lo scambio di chiavi di RSA.
  • KEDH: Cipher suites che usano l’accordo sulle chiavi DH.
  • kDHr, kDHd: Cipher suite che usano l’accordo sulle chiavi DH ed i certificati DH firmati da CAs con chiavi RSA e DSS rispettivamente. Non implementate.
  • aRSA: Cipher suites che usano l’autenticazione RSA, cioè i certificati portati con le chiavi RSA.
  • aDSS, DSS: Cipher suites che usano l’autenticazione DSS, cioè i certificati portati con le chiavi DSS.
  • aDH: Cipher suites che usano in effetti l’autenticazione DH, cioè i certificati portati con le chiavi DH. Non implementate.
  • kFZA, aFZA, eFZA, FZA: Cipher suites che usano lo scambio di chiavi FORTEZZA, autenticazione, codificazione o tutti gli algoritmi FORTEZZA. Non implementate.
  • TLSv1, SSLv3, SSLv2: TLSv1.0, SSLv3.0, o SSLv2.0 cipher suites rispettivamente.
  • DH: Cipher suites che usano DH, includendo DH anonimi.
  • ADH: Cipher suites DH anonime.
  • 3DES: Cipher suites che usano il DES triplo.
  • DES: Cipher suites che usano il DES (non il DES triplo).
  • RC4: Cipher suites che usano RC4.
  • RC2: Cipher suites che usano RC2.
  • IDEA: Cipher suites che usano IDEA.
  • MD5: Cipher suites che usano MD5.
  • SHA1, SHA: Cipher suites che usano SHA1.
  • Nomi delle Cipher Suites

    Le seguenti liste fissano i nomi delle ciper suites SSL o TLS dalle specifiche relative ed i loro equivalenti OpenSSL.

  • Cipher suites SSL v3.0.
  • SSL_RSA_WITH_NULL_MD5 NULL-MD5
    SSL_RSA_WITH_NULL_SHA NULL-SHA
    SSL_RSA_EXPORT_WITH_RC4_40_MD5 EXP-RC4-MD5
    SSL_RSA_WITH_RC4_128_MD5 RC4-MD5
    SSL_RSA_WITH_RC4_128_SHA RC4-SHA
    SSL_RSA_EXPORT_WITH_RC2_CBC_40_MD5 EXP-RC2-CBC-MD5
    SSL_RSA_WITH_IDEA_CBC_SHA IDEA-CBC-SHA
    SSL_RSA_EXPORT_WITH_DES40_CBC_SHA EXP-DES-CBC-SHA
    SSL_RSA_WITH_DES_CBC_SHA DES-CBC-SHA
    SSL_RSA_WITH_3DES_EDE_CBC_SHA DES-CBC3-SHA
    SSL_DH_DSS_EXPORT_WITH_DES40_CBC_SHA Not implemented
    SSL_DH_DSS_WITH_DES_CBC_SHA Not implemented
    SSL_DH_DSS_WITH_3DES_EDE_CBC_SHA Not implemented
    SSL_DH_RSA_EXPORT_WITH_DES40_CBC_SHA Not implemented
    SSL_DH_RSA_WITH_DES_CBC_SHA Not implemented
    SSL_DH_RSA_WITH_3DES_EDE_CBC_SHA Not implemented
    SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA EXP-EDH-DSS-DES-CBC-SHA
    SSL_DHE_DSS_WITH_DES_CBC_SHA EDH-DSS-CBC-SHA
    SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA EDH-DSS-DES-CBC3-SHA
    SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA EXP-EDH-RSA-DES-CBC-SHA
    SSL_DHE_RSA_WITH_DES_CBC_SHA EDH-RSA-DES-CBC-SHA
    SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA EDH-RSA-DES-CBC3-SHA
    SSL_DH_anon_EXPORT_WITH_RC4_40_MD5 EXP-ADH-RC4-MD5
    SSL_DH_anon_WITH_RC4_128_MD5 ADH-RC4-MD5
    SSL_DH_anon_EXPORT_WITH_DES40_CBC_SHA EXP-ADH-DES-CBC-SHA
    SSL_DH_anon_WITH_DES_CBC_SHA ADH-DES-CBC-SHA
    SSL_DH_anon_WITH_3DES_EDE_CBC_SHA ADH-DES-CBC3-SHA
    SSL_FORTEZZA_KEA_WITH_NULL_SHA Not implemented
    SSL_FORTEZZA_KEA_WITH_FORTEZZA_CBC_SHA Not implemented
    SSL_FORTEZZA_KEA_WITH_RC4_128_SHA Not implemented

  • Cipher suites TLS v1.0.
  • TLS_RSA_WITH_NULL_MD5 NULL-MD5
    TLS_RSA_WITH_NULL_SHA NULL-SHA
    TLS_RSA_EXPORT_WITH_RC4_40_MD5 EXP-RC4-MD5
    TLS_RSA_WITH_RC4_128_MD5 RC4-MD5
    TLS_RSA_WITH_RC4_128_SHA RC4-SHA
    TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 EXP-RC2-CBC-MD5
    TLS_RSA_WITH_IDEA_CBC_SHA IDEA-CBC-SHA
    TLS_RSA_EXPORT_WITH_DES40_CBC_SHA EXP-DES-CBC-SHA
    TLS_RSA_WITH_DES_CBC_SHA DES-CBC-SHA
    TLS_RSA_WITH_3DES_EDE_CBC_SHA DES-CBC3-SHA
    TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA Not implemented
    TLS_DH_DSS_WITH_DES_CBC_SHA Not implemented
    TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA Not implemented
    TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA Not implemented
    TLS_DH_RSA_WITH_DES_CBC_SHA Not implemented
    TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA Not implemented
    TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA EXP-EDH-DSS-DES-CBC-SHA
    TLS_DHE_DSS_WITH_DES_CBC_SHA EDH-DSS-CBC-SHA
    TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA EDH-DSS-DES-CBC3-SHA
    TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA EXP-EDH-RSA-DES-CBC-SHA
    TLS_DHE_RSA_WITH_DES_CBC_SHA EDH-RSA-DES-CBC-SHA
    TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA EDH-RSA-DES-CBC3-SHA
    TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 EXP-ADH-RC4-MD5
    TLS_DH_anon_WITH_RC4_128_MD5 ADH-RC4-MD5
    TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA EXP-ADH-DES-CBC-SHA
    TLS_DH_anon_WITH_DES_CBC_SHA ADH-DES-CBC-SHA
    TLS_DH_anon_WITH_3DES_EDE_CBC_SHA ADH-DES-CBC3-SHA

  • Additional Export 1024 e altre cipher suites
  • Nota: questi cifrari possono essere usati in SSL v3.

    TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA EXP1024-DES-CBC-SHA
    TLS_RSA_EXPORT1024_WITH_RC4_56_SHA EXP1024-RC4-SHA
    TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA EXP1024-DHE-DSS-DES-CBC-SHA
    TLS_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA EXP1024-DHE-DSS-RC4-SHA
    TLS_DHE_DSS_WITH_RC4_128_SHA DHE-DSS-RC4-SHA

  • Cipher suites SSL v2.0.
  • SSL_CK_RC4_128_WITH_MD5 RC4-MD5
    SSL_CK_RC4_128_EXPORT40_WITH_MD5 EXP-RC4-MD5
    SSL_CK_RC2_128_CBC_WITH_MD5 RC2-MD5
    SSL_CK_RC2_128_CBC_EXPORT40_WITH_MD5 EXP-RC2-MD5
    SSL_CK_IDEA_128_CBC_WITH_MD5 IDEA-CBC-MD5
    SSL_CK_DES_64_CBC_WITH_MD5 DES-CBC-MD5
    SSL_CK_DES_192_EDE3_CBC_WITH_MD5 DES-CBC3-MD5

    Note

    Le modalità DH non banali sono attualmente non implementate in OpenSSL perché non c’è supporto ai certificati DH.
    Qualche versione compilata di OpenSSL potrebbe non includere qui tutte le liste di cifrari poiché alcuni cifrari vengono esclusi a tempo di compilazione.

    Esempi

    1) Mostrare un listato di tutti i cifrari OpenSSL inclusi i cifrari NULL.

    2) Includere tutti i cifrari eccetto NULL e i DH anonimi e poi li ordina per forza:

    3) Includere soltanto il cifrario 3DES e poi pone alla fine i cifrari RSA:

    Vedi anche

    s_client(1), s_server(1),ssl(3).

    7.2 Il comando dgst

    Nome

    dgst,md5,md4,md2,sha1, sha, mdc2, ripemd160 – Message Digests.

    Sintassi

    openssl dgst [-md5|-md4|-md2|-sha 1|-sha|-mdc2|-ripemd160|-dss1] [-c] [-d] [-hex] [-binary] [-out filename] [-sign filename] [-verify filename] [-prverify filename] [-signature filename] [file...]

    [md5|md4|md2|sha1|sha|mdc2|ripemd160] [-c] [-d] [file...]

    Descrizione

    Le funzioni digest danno in output dei Message Digests di uno o più file forniti in formato esadecimale. Esso può essere anche usato per firma digitale e verifica.

    Opzioni

  • -c stampa il digest in gruppi di due cifre separate da ‘:’, rilevante solo se viene usato il formato esadecimale di output.
  • -d stampa informazioni di debug BIO.
  • -hex il digest viene dato in output come un dump esadecimale. Questo è caso di per un digest normale a contrario di quanto avviene nella firma digitale.
  • -binary dà in output il digest o la firma in formato binario.
  • -out filename il nome del file di output o di default lo standard output.
  • -sign filename firma digitalmente il digest usando la chiave privata presente in “filename”.
  • -verify filename verifica la firma usando la chiave pubblica nel “filename”. L’output è: “Verifica OK” oppure “Verifica Fallita”.
  • -prverify filename verifica la firma usando la chiave privata presente nel “filename”.
  • -signature filename la firma attuale da verificare.
  • -rand file(s) un file o più files contenenti dati casuali per inizializzare il generatore di numeri casuali, oppure un EGD socket (vedi RAND_edg(3)). File multipli possono essere specificati separati da un carattere dipendente dal SO. Il separatore è ’;’ per MS-WINDOWS,‘,’ per OpenVMS, e ‘:’ per tutti gli altri.
  • file… uno o più file di digest. Se nessun file è specificato allora è usato lo standard input.
  • Note

    Il digest di default per tutte le applicazioni è SHA1. Comunque altri digest sono ancora largamente utilizzati. Se si desidera firmare o verificare un dato usando l’algoritmo DSA, allora deve essere usata il digest dss1. Alcuni algoritmi di firma richiedono una sorgente di numeri casuali, in particolare il DSA. Le opzioni di firma e di verifica dovrebbero essere usate se un singolo file deve essere firmato o verificato.

    7.3 Il comando enc

    Nome

    enc – routine di cifrari simmetrici.

    Sintassi

    openssl enc -ciphername [-in filename] [-out filename] [-pass arg] [-e] [-d] [-a] [-A] [-k password] [-kfile filename] [-K key] [-iv IV] [-p] [-P] [-bufsize number] [-nopad] [-debug]

    Descrizione

    I comandi dei cifrari simmetrici permettono ai dati di essere cifrari o decifrati usando diversi cifrari a blocchi e stream cipher usando chiavi basate su password o esplicitamente fornite. La codifica o decodifica base64 può anche essere eseguita o da sola o in aggiunta alla cifratura e decifratura.

    Opzioni

  • -in filename: il nome del file di input, oppure lo standard input per default.
  • -out filename: il nome del file di output, oppure lo standard output per default.
  • -pass arg: sorgente della password. Per maggiori informazioni circa il formato di arg vedere la PASS PHRASE ARGUMENTS nel paragrafo di openssl(1).
  • -salt: usa un salt nella routines della derivazione delle chiavi. Questa opzione dovrebbe essere SEMPRE usata a meno che non è richiesta la compatibilità con le versioni precedenti di OpenSSL oppure SSLeay. Questa opzione è presente solo nella versione 0.9.5 di OpenSSL o successive.
  • -nosalt: non usa un salt nella routines della derivazione delle chiavi. Questa è di default per la compatibilità con le precedenti versioni di OpenSSL e SSLeay.
  • -e: cifra i dati di input: è di default.
  • -d: decifra i dati di input.
  • -a: elabora i dati base64. Questo significa che se si sta facendo una cifratura i dati dopo la cifratura sono codificati base64. Se la decifratura è settata allora i dati di input in base64 vengono decodificati prima di essere decifrati.
  • -A:se è settata l’opzione –a allora i dati base64 sono processati su una linea.
  • -k password: la password da derivare della chiave. Questa è per la compatibilità con le precedenti versioni di OpenSSL. Sostituito dall’argomento –pass.
  • -kfile filename: legge la password da cui derivare la chiave dalla prima linea del filename. Questa è per la compatibilità con le precedenti versioni di OpenSSL. Sostituito dall’argomento –pass.
  • -S salt: il salt attuale da usare: questa deve essere rappresentata come una stringa comprendente solo cifre esadecimali.
  • -k key: la chiave attuale da usare: questa può essere rappresentata come una stringa comprendente solo cifre esadecimali.
  • -iv IV: l’IV attuale da usare: questa può essere rappresentata come una stringa comprendente solo cifre esadecimali.
  • -p: stampa la chiave e il Vettore di Inizializzazione (IV) usato.
  • -P: stampa la chiave e il IV usato poi esce immediatamente: non fa cifratura e decifratura.
  • -bufsize number: setta la dimensione del buffer di I/O.
  • -nopad: disabilita lo standard block padding.
  • -debug: debug il BIOs usato per lo I/O.
  • Note

    Il programma può essere chiamato come openssl ciphername oppure openssl enc –ciphername.
    Una password sarà richiesta per derivare la chiave e IV se necassario.
    L’opzione –salt dovrebbe essere SEMPRE usata se la chiave deve essere derivata dalla password a meno che non si voglia la compatibilità con versioni precedenti di OpenSSL e SSLeay.
    Senza l’opzione –salt è possibile eseguire un efficiente attacco a dizionario sulla password e attaccare i dati cifrati con lo stream cipher. La ragione di tutto questo è senza il salt la stesse password genera sempre la stessa chiave di cifratura. Quando il salt deve essere usato i primi otto byte dei dati cifrati sono riservati per il salt: esso viene generato in maniera casuale quando si cifra un file e viene letto dal file cifrato quando deve essere decifrato.
    Alcuni cifrari non hanno chiavi grandi e altri hanno problemi di sicurezza se non usati correttamente. I principianti sono avvisati di usare soltanto cifrari a blocchi forti in modalità CBC come bf o des3.
    Tutti i cifrari a blocchi di solito usano PKCS#5 padding anche conosciuto come standard block padding: questa permette di eseguire un rudimentale controllo di integrità o della password. Tuttavia dato che la posssibilità da parte dei dati casuali di passsare il test è maggiore di 1 su 256 questo non è un test molto buono.
    Se il padding è disabilitato allora i dati di input devono essere un multiplo della lunghezza del cipher block.
    Tutti i cifrari RC2 hanno la stessa chiave e effettiva lunghezza della chiave.
    Gli algoritmi Blowfish e RC5 usano una chiave a 128 bit.

    Cifrari supportati

  • base64
  • Base64.
  • bf-cbc
  • Blowfish in CBC mode.
  • bf
  • Alias per bf-cbc.
  • bf-cfb
  • Blowfish in CFB mode.
  • bf-ocb
  • Blowfish in OCB mode.
  • bf-ofb
  • Blowfish in OFB mode.
  • cast-cbc
  • CAST in CBC mode.
  • cast
  • Alias per cast-cbc.
  • cast5-cbc
  • CAST5 in CBC mode.
  • cast5-cfb
  • CAST5 in CFB mode.
  • cast5-ocb
  • CAST5 in OCB mode.
  • cast5-ofb
  • CAST5 in OFB mode.
  • des-cbc
  • DES in CBC mode.
  • des
  • Alias per des-cbc.
  • des-cfb
  • DES in CFB mode.
  • des-ocb
  • DES in OCB mode.
  • des-ofb
  • DES in OFB mode.
  • des-ede-cbc
  • Two key TRIPLE DES in CBC mode.
  • des-ede
  • Alias per des-ede-cbc.
  • des-ede-cfb
  • Two key TRIPLE DES in CFB mode.
  • des-ede-ofb
  • Two key TRIPLE DES in OFB mode.
  • des-ede3-cbc
  • Three key TRIPLE DES in CBC mode.
  • des-ede3
  • Alias per des-ede3-cbc.
  • des3
  • Alias per des-ede3-cbc.
  • des-ede3-cfc
  • Three key TRIPLE DES in CFC mode.
  • des-ede3-ofc
  • Three key TRIPLE DES in OFC mode.
  • desx
  • Algoritmo DESX.
  • idea-cbc
  • IDEA in CBC mode.
  • idea
  • Alias per idea-cbc.
  • idea-cfb
  • IDEA in CFB mode.
  • idea-ocb
  • IDEA in OCB mode.
  • idea-ofb
  • IDEA in OFB mode.
  • rc2-cbc
  • RC2 a 128 bit in CBC mode.
  • rc2
  • Alias per rc2-cbc.
  • rc2-cfb
  • RC2 a 128 bit in CFB mode.
  • rc2-ocb
  • RC2 a 128 bit in OCB mode.
  • rc2-ofb
  • RC2 a 128 bit in OFB mode.
  • rc2-64-cbc
  • RC2 a 64 bit in CBC mode.
  • rc2-40-cbc
  • RC2 a 40 bit in CBC mode.
  • rc4
  • RC4 a 28 bit.
  • rc4-64
  • RC4 a 64 bit.
  • rc4-40
  • RC4 a 40 bit.
  • rc5-cbc
  • RC5 in CBC mode.
  • rc5
  • Alias per rc5-cbc.
  • rc5-cfb
  • RC5 in CFB mode.
  • rc5-ocb
  • RC5 in OCB mode.
  • rc5-ofb
  • RC5 in OFB mode.

    Esempi

    1) Codifica solo base64 un file binario:

    2) Decodifica lo stesso file

    3) Cifra un file usando il DES triplo nella modalità CBC usando una password richiesta

    4) Decifra un file usando una password fornita:

    5) Cifra un file poi lo codifica base64 (così per esempio può essere inviato via email ) usando Blowfish in modalità CBC:

    6) Decodifica un file base64 poi lo decifra

    7) Decifra alcuni dati usando la chiave RC4 a 40 bit

    Bugs

    L’opzione –A quando è usata con file grandi non lavora correttamente.
    Ci dovrebbe essere un opzione che permetta che consenta di includere il conteggio delle iterazioni.
    Il programma enc supporta solo un numero fissato di algoritmi con certi parametri. Così se, per esempio, tu vuoi usare lo RC2 con chiave a 76 bit oppure lo RC4 con chiave a 84 bit, non si può usare questo programma.

    7.4 Il comando dhparam

    Nome

    dhparam – manipolazione e generazione di parametri DH

    Sintassi

    openssl dhparam [-inform DER | PEM] [-outform DER | PEM] [-in nome_file] [-out nome_file] [-dsaparam] [-noout] [-text] [-C] [-2] [-5] [-rand file(s)] [numbits]

    Descrizione

    Questo comando viene usato per manipolare files di parametri DH.

    Opzioni

  • -inform DER | PEM: Specifica il formato di input. L’opzione DER usa il formato codificato ASN1 DER compatibile con la struttura dei parametri DH PKCS#3. Il formato PEM è il formato di default: esso consiste del formato DER codificato base64 con linee di intestazione e di chiusura addizionali.
  • -outform DER | PEM:Specifica il formato di output. Le opzioni hanno lo stesso significato delle opzioni di –inform.
  • -in nome_file: Specifica il nome del file di input da cui leggere i parametri o lo standard input se questa opzione non viene specificata.
  • -out nome_file: Specifica il nome del file di output su cui scrivere. Se questa opzione non è presente viene utilizzato lo standard output. Il nome del file di output non dovrebbe essere lo stesso del file di input.
  • -dsaparam: Se viene usata questa opzione, vengono letti o creati parametri DSA piuttosto che DH; essi vengono poi convertiti in formato DH. Altrimenti, per le generazioni di parametri DH saranno usati dei numeri primi “forti” (ad esempio (p-1)/2). La generazione di parametri DH con l’opzione –dsaparam è più veloce, e la lunghezza consigliata dell’esponente è più corta, il che rende lo scambio di chiavi DH più efficiente. Si noti che con tali parametri DH stile DSA, una nuova chiave DH dovrebbe essere creata per ogni utilizzo per evitare attacchi small-subgroup che altrimenti sarebbero possibili.
  • -2, -5: Il generatore da usare (2 o 5). Il generatore 2 è quello di default. Se è presente il file di input viene ignorato ed i parametri vengono generati.
  • -rand file(s): Uno o più file contenenti dati casuali usati per inizializzare il generatore di numeri casuali, o un socket EGD (vedi RAND_egd(3)). File multipli possono essere specificati separati da un carattere dipendente dal sistema operativo. Il separatore è ‘;’ per MS-Windows, ‘,’ per OpenVMS e ‘:’ per tutti gli altri.
  • numbits: Questa opzione specifica che dovrebbe essere generato un insieme di parametri di dimensione numbits. Essa deve sempre essere l’ultima opzione. Se non è presente viene usato un valore di 512 bits. Se questa opzione è presente, il file di input viene ignorato e vengono invece creati i parametri.
  • -noout: Questa opzione inibisce l’output della versione codificata dei parametri.
  • -text: Questa opzione stampa i parametri DH in un formato leggibile.
  • -C: Questa opzione converte i parametri in codice C. I parametri possono allora essere caricati usando la funzione get_dhnumbits().
  • Warnings

    Il programma dhparam combina le funzionalità dei programmi dh e gendh delle versioni precedenti di OpenSSL e SSLeay. I programmi dh e gendh per il momento sono stati mantenuti, ma in future versioni di OpenSSL si potrebbero avere situazioni diverse.

    Note

    Il formato PEM dei parametri DH usa le linee di intestazione e chiusura:

    Attualmente OpenSSL supporta solo il più vecchio DH PKCS#3 e non il più nuovo DH X9.42.
    Questo programma manipola parametri DH e non chiavi.

    Bugs

    Ci dovrebbe essere un modo per generare e manipolare chiavi DH.

    Vedi Anche

    dsaparam(1)

    Storia

    Il comando dhparam fu aggiunto in OpenSSL 0.9.5. L’opzione –dsaparam è stata aggiunta in OpenSSL 0.9.6.