
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 community 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 è distribuito con una doppia licenza (la licenza OpenSSL e la licenza SSLeay), il che significa sostanzialmente che sei libero di ottenerlo e utilizzarlo per scopi commerciali e non commerciali, a condizione di soddisfare i termini di entrambe le licenze.
Il toolkit OpenSSL include:
libssl.a: Implementazione di SSLv2, SSLv3, TLSv1 e del codice necessario per supportare SSLv2, SSLv3 e TLSv1 in un unico server e client.
libcrypto.a: Funzioni generali di crittografia e materiale X.509 v1/v3 necessari a SSL/TLS ma che non ne fanno logicamente parte. Include routine per:
Cifrari
libdes - il pacchetto di crittografia DES libdes di EAY, che è
circolato in rete per alcuni anni ed è stato poi
riconsegnato 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 le 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, diffuso sulle 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 busta digitale e la codifica base64. Accesso
di livello superiore a cifrari e digest tramite nome. Nuovi cifrari
possono essere caricati a runtime. Il sistema di I/O BIO, 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, puntatori
a file, crittografia, digest, test non bloccanti e null.
Strutture dati
Un sistema di hashing che cresce dinamicamente
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 utilizzato per: Creazione di parametri per chiavi 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 S/MIME firmata o crittografata
Varie aziende detengono vari brevetti per vari algoritmi in vari luoghi del mondo. TU sei responsabile di garantire che il tuo uso di qualsiasi algoritmo sia legale, verificando se esistono brevetti nel tuo paese. Il file contiene alcuni dei brevetti di cui siamo a conoscenza o che si presume esistenti. 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 di RSA Security, quindi questa etichetta dovrebbe forse essere utilizzata 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 utilizzare tale algoritmo; la loro pagina web è http://www.ascom.ch/.
NTT e Mitsubishi hanno brevetti e brevetti in corso 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, leggi il file INSTALL. Per una piattaforma Win32, leggi il file INSTALL.W32. Per i 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. Dai un'occhiata ai programmi di esempio.
Per alcune piattaforme ci sono alcuni problemi noti che possono influire sull'utente o sull'autore dell'applicazione. Cerchiamo di raccoglierli in doc/PROBLEMS, con le attuali riflessioni su come dovrebbero essere risolti in una futura versione di OpenSSL.
Consulta il sito web di OpenSSL www.openssl.org per i dettagli su come ottenere supporto tecnico commerciale.
Se hai problemi con OpenSSL, segui innanzitutto i seguenti 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 nella segnalazione:
- Su sistemi Unix:
Rapporto 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 per riprodurre il problema, se noti)
- 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 e-mail a:
Nota che il request tracker NON deve essere utilizzato per assistenza generale o richieste di supporto. Il fatto che qualcosa non funzioni come ti aspetti non significa necessariamente che sia un bug di OpenSSL.
Nota che la posta inviata a [email protected] viene registrata nel database del request tracker, leggibile pubblicamente, e viene inoltrata a una mailing list pubblica. La posta confidenziale può essere inviata a [email protected] (chiave PGP disponibile dai key server).
Lo sviluppo è coordinato sulla mailing list openssl-dev (vedi http://www.openssl.org per informazioni su come iscriversi). Se vuoi inviare una patch, mandala a [email protected] con la stringa "[PATCH]" nell'oggetto. Assicurati di includere una spiegazione testuale di ciò che la patch fa.
Se non sei sicuro che una funzionalità possa essere utile per la comunità generale di OpenSSL, discutila prima sulla mailing list openssl-dev. Qualcuno potrebbe già star lavorando alla stessa cosa o potrebbe esserci un buon motivo per cui tale funzionalità non è implementata.
Le patch dovrebbero essere quanto più aggiornate possibile, preferibilmente relative al Git corrente o all'ultima istantanea. Dovrebbero seguire lo stile di codifica di OpenSSL e compilare senza warning. Alcuni target di sviluppo del team principale possono essere usati per test, (debug-steve64, debug-geoff ecc.). OpenSSL compila su molte piattaforme diverse: cerca 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 all'ENC Encryption Request Coordinator; prenditi del tempo per guardare http://www.bis.doc.gov/Encryption/PubAvailEncSourceCodeNofify.html [sic] e http://w3.access.gpo.gov/bis/ear/pdf/740.pdf (sezione EAR 740.13(e)) per i dettagli. Se "il tuo codice sorgente di crittografia è troppo grande per essere inviato come allegato e-mail", sono lieti di riceverlo via fax; spero tu abbia un piano economico per le lunghe distanze.
Il nostro formato preferito per le modifiche è l'output "diff -u". Puoi generarlo così: