
Boîte à outils open-source complète implémentant les protocoles SSL/TLS et une bibliothèque de cryptographie à usage général avec des chiffrements symétriques/asymétriques, des condensés de messages, une infrastructure à clé publique et la gestion de certificats X.509.
OpenSSL 1.0.1g 7 avr. 2014
Copyright (c) 1998-2011 The OpenSSL Project Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson Tous droits réservés.
Le projet OpenSSL est un effort collaboratif visant à développer une boîte à outils robuste, de qualité commerciale, complète et open source implémentant les protocoles Secure Sockets Layer (SSL v2/v3) et Transport Layer Security (TLS v1) ainsi qu'une bibliothèque de cryptographie générale à part entière. Le projet est géré par une communauté mondiale de bénévoles qui utilisent Internet pour communiquer, planifier et développer la boîte à outils OpenSSL et sa documentation connexe.
OpenSSL est basé sur l'excellente bibliothèque SSLeay développée par Eric A. Young et Tim J. Hudson. La boîte à outils OpenSSL est distribuée sous une double licence (la licence OpenSSL plus la licence SSLeay), ce qui signifie essentiellement que vous êtes libre de l'obtenir et de l'utiliser à des fins commerciales et non commerciales tant que vous remplissez les conditions des deux licences.
La boîte à outils OpenSSL comprend :
libssl.a: Implémentation de SSLv2, SSLv3, TLSv1 et du code nécessaire pour prendre en charge à la fois SSLv2, SSLv3 et TLSv1 dans un même serveur et client.
libcrypto.a: Chiffrement général et éléments X.509 v1/v3 nécessaires à SSL/TLS mais qui n'en font pas réellement partie logiquement. Il comprend des routines pour :
Chiffrements
libdes - le package de chiffrement DES libdes d'EAY qui circulait
sur le net depuis quelques années, puis a été relicencié par
lui dans le cadre de SSLeay. Il inclut 15 'modes/variations'
de DES (versions à 1, 2 et 3 clés de ecb, cbc, cfb et ofb;
pcbc et une forme plus générale de cfb et ofb) y compris desx
en mode cbc, un crypt(3) rapide et des routines pour lire
les mots de passe au clavier.
Chiffrement RC4,
Chiffrement RC2 - 4 modes différents, ecb, cbc, cfb et ofb.
Chiffrement Blowfish - 4 modes différents, ecb, cbc, cfb et ofb.
Chiffrement IDEA - 4 modes différents, ecb, cbc, cfb et ofb.
Condensats
Algorithmes de condensat MD5 et MD2, implémentations rapides,
Algorithmes de condensat SHA (SHA-0) et SHA-1,
Condensat MDC2. Une fonction de hachage basée sur DES, populaire sur les cartes à puce.
Clé publique
Chiffrement/déchiffrement/génération RSA.
Il n'y a aucune limite sur le nombre de bits.
Chiffrement/déchiffrement/génération DSA.
Il n'y a aucune limite sur le nombre de bits.
Échange de clés/génération de clés Diffie-Hellman.
Il n'y a aucune limite sur le nombre de bits.
Certificats X.509v3
Encodage/décodage X509 vers/depuis l'ASN1 binaire et un
encodage ASCII-binaire basé sur PEM qui prend en charge le chiffrement avec une
clé privée. Programme pour générer des demandes de certificats RSA et DSA
et pour générer des certificats RSA et DSA.
Systèmes
Les routines normales d'enveloppe numérique et l'encodage base64. Un accès
de plus haut niveau aux chiffrements et condensats par nom. De nouveaux chiffrements peuvent être
chargés à l'exécution. Le système d'E/S BIO, qui est une abstraction d'E/S simple
non bloquante. Les méthodes actuellement prises en charge sont les descripteurs de fichiers,
les sockets, l'acceptation de socket, la connexion de socket, le tampon mémoire, la mise en tampon, SSL
client/serveur, pointeur de fichier, chiffrement, condensat, test non bloquant
et nul.
Structures de données
Un système de hachage à croissance dynamique
Une pile simple.
Un chargeur de configuration utilisant un format similaire aux fichiers MS .ini.
openssl: Un outil en ligne de commande pouvant être utilisé pour : Création de paramètres de clés RSA, DH et DSA Création de certificats X.509, de CSR et de CRL Calcul de condensats de messages Chiffrement et déchiffrement avec des chiffrements Tests de client et serveur SSL/TLS Traitement de courriers S/MIME signés ou chiffrés
Diverses entreprises détiennent divers brevets sur divers algorithmes dans divers endroits du monde. VOUS êtes responsable de vous assurer que votre utilisation de tout algorithme est légale en vérifiant s'il existe des brevets dans votre pays. Ce fichier contient certains des brevets dont nous avons connaissance ou qui sont présumés exister. Ce n'est pas une liste exhaustive.
RSA Security détient des brevets logiciels sur l'algorithme RC5. Si vous avez l'intention d'utiliser ce chiffrement, vous devez contacter RSA Security pour les conditions de licence. Leur page web est http://www.rsasecurity.com/.
RC4 est une marque commerciale de RSA Security, donc l'utilisation de ce label devrait peut-être n'être faite qu'avec la permission de RSA Security.
L'algorithme IDEA est breveté par Ascom en Autriche, France, Allemagne, Italie, Japon, Pays-Bas, Espagne, Suède, Suisse, Royaume-Uni et États-Unis. Ils doivent être contactés si cet algorithme doit être utilisé ; leur page web est http://www.ascom.ch/.
NTT et Mitsubishi détiennent des brevets et des demandes de brevets sur l'algorithme Camellia mais autorisent son utilisation gratuitement sans exiger d'accord de licence explicite : http://info.isl.ntt.co.jp/crypt/eng/info/chiteki.html
Pour installer ce package sur un dérivé d'Unix, lisez le fichier INSTALL. Pour une plateforme Win32, lisez le fichier INSTALL.W32. Pour les systèmes OpenVMS, lisez INSTALL.VMS.
Lisez la documentation dans le répertoire doc/. Elle est assez sommaire, mais elle liste les fonctions ; vous devrez probablement examiner le code pour comprendre comment les utiliser. Regardez les exemples de programmes.
Pour certaines plateformes, il existe des problèmes connus qui peuvent affecter l'utilisateur ou l'auteur d'applications. Nous essayons de les rassembler dans doc/PROBLEMS, avec les réflexions actuelles sur la façon de les résoudre dans une future version d'OpenSSL.
Consultez le site web d'OpenSSL www.openssl.org pour plus de détails sur la façon d'obtenir une assistance technique commerciale.
Si vous avez des problèmes avec OpenSSL, veuillez d'abord suivre les étapes suivantes :
- Téléchargez l'instantané actuel depuis ftp://ftp.openssl.org/snapshot/
pour voir si le problème a déjà été traité
- Supprimez les versions ASM des bibliothèques
- Supprimez les options d'optimisation du compilateur
Si vous souhaitez signaler un bogue, veuillez inclure les informations suivantes dans tout rapport de bogue :
- Sur les systèmes Unix :
Rapport d'auto-test généré par 'make report'
- Sur les autres systèmes :
Version d'OpenSSL : sortie de 'openssl version -a'
Nom du système d'exploitation, version, plateforme matérielle
Détails du compilateur (nom, version)
- Détails de l'application (nom, version)
- Description du problème (étapes pour reproduire le problème, si connues)
- Trace de la pile (si l'application génère un fichier core)
Signalez le bogue au projet OpenSSL via le Request Tracker (http://www.openssl.org/support/rt.html) par courrier à :
Notez que le request tracker ne doit PAS être utilisé pour l'assistance générale ou les demandes de support. Ce n'est pas parce que quelque chose ne fonctionne pas comme prévu que c'est nécessairement un bogue dans OpenSSL.
Notez que le courrier adressé à [email protected] est enregistré dans la base de données publique du request tracker et est transmis à une liste de diffusion publique. Le courrier confidentiel peut être envoyé à [email protected] (clé PGP disponible auprès des serveurs de clés).
Le développement est coordonné sur la liste de diffusion openssl-dev (voir http://www.openssl.org pour des informations sur l'abonnement). Si vous souhaitez soumettre un correctif, envoyez-le à [email protected] avec la chaîne "[PATCH]" dans l'objet. Veuillez vous assurer d'inclure une explication textuelle de ce que fait votre correctif.
Si vous n'êtes pas sûr qu'une fonctionnalité sera utile à la communauté OpenSSL en général, veuillez d'abord en discuter sur la liste de diffusion openssl-dev. Quelqu'un travaille peut-être déjà sur la même chose ou il peut y avoir une bonne raison pour laquelle cette fonctionnalité n'est pas implémentée.
Les correctifs doivent être aussi à jour que possible, de préférence par rapport au Git actuel ou au dernier instantané. Ils doivent suivre le style de codage d'OpenSSL et compiler sans avertissements. Certaines cibles de développement de l'équipe principale peuvent être utilisées à des fins de test (debug-steve64, debug-geoff, etc.). OpenSSL compile sur de nombreuses plateformes variées : essayez de n'utiliser que des fonctionnalités portables.
Remarque : Pour des raisons légales, les contributions en provenance des États-Unis ne peuvent être acceptées que si une notification TSU et une copie du correctif sont envoyées à [email protected] (anciennement BXA) avec une copie au ENC Encryption Request Coordinator ; veuillez prendre le temps de consulter http://www.bis.doc.gov/Encryption/PubAvailEncSourceCodeNofify.html [sic] et http://w3.access.gpo.gov/bis/ear/pdf/740.pdf (EAR Section 740.13(e)) pour les détails. Si « votre code source de chiffrement est trop volumineux pour être envoyé en pièce jointe à un e-mail », ils seront heureux de le recevoir par fax à la place ; espérons que vous avez un forfait longue distance avantageux.
Le format que nous préférons pour les modifications est la sortie "diff -u". Vous pouvez la générer comme ceci :