
Libreria di crittografia generica e toolkit SSL/TLS che implementa cifrari, digest, algoritmi a chiave pubblica e certificati X.509 per comunicazioni sicure.
OpenSSL 1.0.1g 7 apr 2014
Copyright (c) 1998-2011 The OpenSSL Project Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson Tutti i diritti riservati.
Il progetto OpenSSL è uno sforzo collaborativo per sviluppare un toolkit robusto, di qualità commerciale, completo e open source che implementa i protocolli Secure Sockets Layer (SSL v2/v3) e Transport Layer Security (TLS v1) oltre a una libreria crittografica generica di elevata potenza. Il progetto è gestito da una comunità mondiale di volontari che utilizzano Internet per comunicare, pianificare e sviluppare il toolkit OpenSSL e la sua documentazione correlata.
OpenSSL si basa sull'eccellente libreria SSLeay sviluppata da Eric A. Young e Tim J. Hudson. Il toolkit OpenSSL è concesso in licenza con una doppia licenza (la licenza OpenSSL più la licenza SSLeay), il che significa fondamentalmente che sei libero di ottenerlo e utilizzarlo per scopi commerciali e non commerciali, purché soddisfi le condizioni di entrambe le licenze.
Il toolkit OpenSSL include:
libssl.a: Implementazione di SSLv2, SSLv3, TLSv1 e del codice necessario per supportare sia SSLv2, SSLv3 che TLSv1 in un unico server e client.
libcrypto.a: Materiale generale di crittografia e X.509 v1/v3 richiesto da SSL/TLS ma non logicamente parte di esso. Include routine per:
Cifrari
libdes - Package di crittografia DES libdes di EAY che circolava
in rete da alcuni anni, e poi è stato ri-licenziato da lui
come parte di SSLeay. Include 15 'modalità/variazioni'
di DES (versioni a 1, 2 e 3 chiavi di ecb, cbc, cfb e ofb;
pcbc e una forma più generale di cfb e ofb) incluso desx
in modalità cbc, un veloce crypt(3), e routine per leggere
password dalla tastiera.
Crittografia RC4,
Crittografia RC2 - 4 modalità diverse, ecb, cbc, cfb e ofb.
Crittografia Blowfish - 4 modalità diverse, ecb, cbc, cfb e ofb.
Crittografia IDEA - 4 modalità diverse, ecb, cbc, cfb e ofb.
Digest
Algoritmi di message digest MD5 e MD2, implementazioni veloci,
Algoritmi di message digest SHA (SHA-0) e SHA-1,
Message digest MDC2. Un hash basato su DES popolare nelle smart card.
Chiave pubblica
Crittografia/decrittografia/generazione RSA.
Non c'è limite al numero di bit.
Crittografia/decrittografia/generazione DSA.
Non c'è limite al numero di bit.
Scambio di chiavi/generazione di chiavi Diffie-Hellman.
Non c'è limite al numero di bit.
Certificati X.509v3
Codifica/decodifica X509 da/verso ASN1 binario e una codifica
ASCII-binaria basata su PEM che supporta la crittografia con una
chiave privata. Programma per generare richieste di certificato
RSA e DSA e per generare certificati RSA e DSA.
Sistemi
Le normali routine di envelope digitale e codifica base64. Accesso
di livello superiore a cifrari e digest per nome. Nuovi cifrari
possono essere caricati in fase di esecuzione. Il sistema IO BIO che
è un'astrazione IO semplice non bloccante. I metodi attuali supportati
sono: descrittori di file, socket, socket accept, socket connect,
buffer di memoria, buffering, client/server SSL, puntatore a file,
crittografia, digest, test non bloccante e null.
Strutture dati
Un sistema di hashing a crescita dinamica
Uno stack semplice.
Un caricatore di configurazione che utilizza un formato simile ai file
.ini di MS.
openssl: Uno strumento a riga di comando che può essere utilizzato per: Creazione di parametri chiave RSA, DH e DSA Creazione di certificati X.509, CSR e CRL Calcolo di message digest Crittografia e decrittografia con cifrari Test client e server SSL/TLS Gestione di posta firmata o crittografata S/MIME
Varie aziende detengono vari brevetti per vari algoritmi in varie località del mondo. TU sei responsabile di assicurarti che il tuo uso di qualsiasi algoritmo sia legale controllando se esistono brevetti nel tuo paese. Il file contiene alcuni dei brevetti di cui siamo a conoscenza o che si suppone esistano. Questa non è una lista definitiva.
RSA Security detiene brevetti software sull'algoritmo RC5. Se intendi utilizzare questo cifrario, devi contattare RSA Security per le condizioni di licenza. La loro pagina web è http://www.rsasecurity.com/.
RC4 è un marchio registrato di RSA Security, quindi l'uso di questa etichetta dovrebbe forse essere fatto solo con il permesso di RSA Security.
L'algoritmo IDEA è brevettato da Ascom in Austria, Francia, Germania, Italia, Giappone, Paesi Bassi, Spagna, Svezia, Svizzera, Regno Unito e USA. Devono essere contattati se si intende utilizzare tale algoritmo; la loro pagina web è http://www.ascom.ch/.
NTT e Mitsubishi hanno brevetti e brevetti in sospeso sull'algoritmo Camellia, ma ne consentono l'uso gratuito senza richiedere un accordo di licenza esplicito: http://info.isl.ntt.co.jp/crypt/eng/info/chiteki.html
Per installare questo pacchetto su un derivato Unix, leggere il file INSTALL. Per una piattaforma Win32, leggere il file INSTALL.W32. Per sistemi OpenVMS, leggere INSTALL.VMS.
Leggere la documentazione nella directory doc/. È piuttosto grezza, ma elenca le funzioni; probabilmente dovrai guardare il codice per capire come usarle. Guardare i programmi di esempio.
Per alcune piattaforme, ci sono alcuni problemi noti che possono influenzare l'utente o l'autore dell'applicazione. Cerchiamo di raccoglierli in doc/PROBLEMS, con i pensieri attuali su come dovrebbero essere risolti in una versione futura di OpenSSL.
Vedi il sito web di OpenSSL www.openssl.org per i dettagli su come ottenere supporto tecnico commerciale.
Se hai problemi con OpenSSL, segui prima questi passaggi:
- Scarica l'istantanea corrente da ftp://ftp.openssl.org/snapshot/
per vedere se il problema è già stato affrontato
- Rimuovi le versioni ASM delle librerie
- Rimuovi i flag di ottimizzazione del compilatore
Se desideri segnalare un bug, includi le seguenti informazioni nel report:
- Su sistemi Unix:
Rapporto di autotest generato da 'make report'
- Su altri sistemi:
Versione OpenSSL: output di 'openssl version -a'
Nome del sistema operativo, versione, piattaforma hardware
Dettagli del compilatore (nome, versione)
- Dettagli dell'applicazione (nome, versione)
- Descrizione del problema (passaggi che riproducono il problema, se noto)
- Stack traceback (se l'applicazione genera un core dump)
Segnala il bug al progetto OpenSSL tramite il Request Tracker (http://www.openssl.org/support/rt.html) via email a:
[email protected]
Nota che il request tracker NON deve essere utilizzato per assistenza generale o domande di supporto. Solo perché qualcosa non funziona come ti aspetti non significa necessariamente che sia un bug in OpenSSL.
Nota che la posta a [email protected] viene registrata nel database del request tracker pubblicamente leggibile e viene inoltrata a una mailing list pubblica. La posta riservata può essere inviata a [email protected] (chiave PGP disponibile dai server delle chiavi).
Lo sviluppo è coordinato sulla mailing list openssl-dev (vedi http://www.openssl.org per informazioni su come iscriversi). Se desideri inviare una patch, inviala a [email protected] con la stringa "[PATCH]" nell'oggetto. Assicurati di includere una spiegazione testuale di cosa fa la tua patch.