
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 livello 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 a piena potenza. Il progetto è gestito da una comunità mondiale di volontari che usano Internet per comunicare, pianificare e sviluppare il toolkit OpenSSL e la relativa documentazione.
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 usarlo per scopi commerciali e non commerciali, a condizione che tu 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 necessario per SSL/TLS ma che non ne fa logicamente parte. Include routine per quanto segue:
Cifrari
libdes - il pacchetto di cifratura DES libdes di EAY che è circolato
in rete per alcuni anni, ed è stato poi rilicenziato 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 crypt(3) veloce e routine per leggere
le password dalla tastiera.
Cifratura RC4,
Cifratura RC2 - 4 modalità diverse: ecb, cbc, cfb e ofb.
Cifratura Blowfish - 4 modalità diverse: ecb, cbc, cfb e ofb.
Cifratura 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 che è popolare sulle smart card.
Chiave pubblica
Cifratura/decifratura/generazione RSA.
Non c'è limite al numero di bit.
Cifratura/decifratura/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 cifratura 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 digital envelope e la codifica base64. Accesso
di livello superiore a cifrari e digest per nome. Nuovi cifrari possono
essere caricati in fase di esecuzione. Il sistema di I/O BIO, che è una
semplice astrazione di I/O non bloccante. I metodi attualmente supportati
sono descrittori di file, socket, socket accept, socket connect, buffer
di memoria, buffering, client/server SSL, puntatore a file, cifratura,
digest, test non bloccante e null.
Strutture dati
Un sistema di hashing a crescita dinamica
Una semplice pila (stack).
Un caricatore di configurazione che usa un formato simile ai file MS .ini.
openssl: Uno strumento a riga di comando che può essere usato per: Creazione di parametri di chiave RSA, DH e DSA Creazione di certificati X.509, CSR e CRL Calcolo di message digest Cifratura e decifratura con cifrari Test client e server SSL/TLS Gestione di posta S/MIME firmata o cifrata
Varie aziende detengono vari brevetti per vari algoritmi in varie località in tutto il mondo. TU sei responsabile di garantire che il tuo utilizzo di qualsiasi algoritmo sia legale, controllando se esistono brevetti nel tuo paese. Il file contiene alcuni dei brevetti che conosciamo o che si sospetta esistano. Questa non è una lista definitiva.
RSA Security detiene brevetti software sull'algoritmo RC5. Se intendi usare questo cifrario, devi contattare RSA Security per le condizioni di licenza. La loro pagina web è http://www.rsasecurity.com/.
RC4 è un marchio di fabbrica 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 Stati Uniti. Devono essere contattati se si intende usare tale algoritmo; la loro pagina web è http://www.ascom.ch/.
NTT e Mitsubishi hanno brevetti e brevetti pendenti sull'algoritmo Camellia, ma ne consentono l'uso gratuitamente 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, leggi il file INSTALL. Per una piattaforma Win32, leggi il file INSTALL.W32. Per sistemi OpenVMS, leggi INSTALL.VMS.
Leggi la documentazione nella directory doc/. È piuttosto approssimativa, ma elenca le funzioni; probabilmente dovrai guardare il codice per capire come usarle. Guarda i programmi di esempio.
Per alcune piattaforme, ci sono alcuni problemi noti che possono riguardare l'utente o l'autore dell'applicazione. Cerchiamo di raccoglierli in doc/PROBLEMS, con le attuali riflessioni su come dovrebbero essere risolti in una versione futura di OpenSSL.
Vedi il sito web OpenSSL www.openssl.org per i dettagli su come ottenere supporto tecnico commerciale.
Se hai problemi con OpenSSL, segui prima i seguenti passaggi:
- Scarica lo snapshot 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 in qualsiasi segnalazione di bug:
- Su sistemi Unix:
Report di autotest generato da 'make report'
- Su altri sistemi:
Versione di 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 noti)
- Tracce di stack (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:
Nota che il request tracker non dovrebbe essere usato per assistenza generale o richieste di supporto. Il fatto che qualcosa non funzioni come previsto non significa necessariamente che sia un bug di 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 di chiavi).
Lo sviluppo è coordinato nella 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.
Se non sei sicuro che una funzionalità possa essere utile per la comunità generale di OpenSSL, discutine prima nella mailing list openssl-dev. Qualcuno potrebbe già star lavorando sulla stessa cosa o potrebbe esserci una buona ragione per cui quella funzionalità non è implementata.
Le patch dovrebbero essere il più aggiornate possibile, preferibilmente relative al Git corrente o all'ultimo snapshot. Dovrebbero seguire lo stile di codifica di OpenSSL e compilare senza avvisi. Alcuni target di sviluppo del team principale possono essere usati a scopo di test (debug-steve64, debug-geoff ecc.). OpenSSL compila su molte piattaforme diverse: cerca di assicurarti di usare solo funzionalità portabili.
Nota: per motivi legali, i contributi dagli Stati Uniti possono essere accettati solo se una notifica TSU e una copia della patch vengono inviate a [email protected] (ex BXA) con copia al Coordinatore delle richieste di cifratura ENC; prenditi del tempo per leggere http://www.bis.doc.gov/Encryption/PubAvailEncSourceCodeNofify.html [sic] e http://w3.access.gpo.gov/bis/ear/pdf/740.pdf (EAR Sezione 740.13(e)) per i dettagli. Se "il tuo codice sorgente di cifratura è troppo grande per essere inviato come allegato email", saranno lieti di riceverlo via fax; si spera che tu abbia un piano economico per le lunghe distanze.
Il nostro formato preferito per le modifiche è l'output "diff -u". Puoi generarlo così: