
OpenSSL-Toolkit, das SSL/TLS-Protokolle und eine Allzweck-Kryptographie-Bibliothek mit Chiffren, Digests, Public-Key-Algorithmen und X.509-Zertifikatsverarbeitung implementiert.
OpenSSL 1.0.1g 7 Apr 2014
Copyright (c) 1998-2011 The OpenSSL Project Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson Alle Rechte vorbehalten.
Das OpenSSL-Projekt ist eine gemeinschaftliche Initiative zur Entwicklung einer robusten, professionellen, voll ausgestatteten Open-Source-Toolkit-Bibliothek, die die Protokolle Secure Sockets Layer (SSL v2/v3) und Transport Layer Security (TLS v1) sowie eine umfassende Kryptographie-Bibliothek implementiert. Das Projekt wird von einer weltweiten Gemeinschaft von Freiwilligen verwaltet, die das Internet nutzen, um das OpenSSL-Toolkit und die dazugehörige Dokumentation zu kommunizieren, zu planen und zu entwickeln.
OpenSSL basiert auf der hervorragenden SSLeay-Bibliothek, die von Eric A. Young und Tim J. Hudson entwickelt wurde. Das OpenSSL-Toolkit wird unter einer Doppellizenz (der OpenSSL-Lizenz plus der SSLeay-Lizenz) vertrieben, was im Grunde bedeutet, dass Sie es für kommerzielle und nicht-kommerzielle Zwecke frei erhalten und nutzen können, sofern Sie die Bedingungen beider Lizenzen erfüllen.
Das OpenSSL-Toolkit umfasst:
libssl.a: Implementierung von SSLv2, SSLv3, TLSv1 sowie des erforderlichen Codes, um sowohl SSLv2, SSLv3 als auch TLSv1 in einem Server und Client zu unterstützen.
libcrypto.a: Allgemeine Verschlüsselungs- und X.509 v1/v3-Funktionen, die von SSL/TLS benötigt werden, aber nicht logisch dazu gehören. Es enthält Routinen für:
Chiffren
libdes - EAY's libdes DES-Verschlüsselungspaket, das einige Jahre im
Netz kursierte und dann von ihm als Teil von SSLeay neu lizenziert
wurde. Es enthält 15 'Modi/Varianten' von DES (1-, 2- und 3-Schlüssel-
Versionen von ecb, cbc, cfb und ofb; pcbc sowie eine allgemeinere
Form von cfb und ofb), einschließlich desx im cbc-Modus, einen
schnellen crypt(3) sowie Routinen zum Lesen von Passwörtern von der
Tastatur.
RC4-Verschlüsselung,
RC2-Verschlüsselung - 4 verschiedene Modi: ecb, cbc, cfb und ofb.
Blowfish-Verschlüsselung - 4 verschiedene Modi: ecb, cbc, cfb und ofb.
IDEA-Verschlüsselung - 4 verschiedene Modi: ecb, cbc, cfb und ofb.
Digests
MD5- und MD2-Nachrichtendigest-Algorithmen, schnelle Implementierungen,
SHA (SHA-0) und SHA-1 Nachrichtendigest-Algorithmen,
MDC2-Nachrichtendigest. Ein auf DES basierender Hash, der auf
Smartcards verbreitet ist.
Öffentliche Schlüssel
RSA-Verschlüsselung/Entschlüsselung/Generierung.
Es gibt keine Begrenzung der Bitanzahl.
DSA-Verschlüsselung/Entschlüsselung/Generierung.
Es gibt keine Begrenzung der Bitanzahl.
Diffie-Hellman-Schlüsselaustausch/Schlüsselgenerierung.
Es gibt keine Begrenzung der Bitanzahl.
X.509v3-Zertifikate
X509-Kodierung/Dekodierung in/aus binärem ASN1 und einer PEM-basierten
ASCII-Binärkodierung, die die Verschlüsselung mit einem privaten Schlüssel
unterstützt. Programm zur Erstellung von RSA- und DSA-Zertifikatsanfragen
und zur Generierung von RSA- und DSA-Zertifikaten.
Systeme
Die üblichen digitalen Umschlagsroutinen und Base64-Kodierung. Höherer
Zugriff auf Chiffren und Digests nach Namen. Neue Chiffren können zur
Laufzeit geladen werden. Das BIO-IO-System, eine einfache nicht-blockierende
IO-Abstraktion. Derzeit unterstützte Methoden sind: Dateideskriptoren,
Sockets, Socket-Accept, Socket-Connect, Speicherpuffer, Pufferung,
SSL-Client/Server, Dateizeiger, Verschlüsselung, Digest, nicht-blockierende
Tests und Null.
Datenstrukturen
Ein dynamisch wachsendes Hashing-System
Ein einfacher Stack.
Ein Konfigurations-Loader, der ein Format ähnlich MS .ini-Dateien verwendet.
openssl: Ein Kommandozeilen-Tool, das verwendet werden kann für: Erstellung von RSA-, DH- und DSA-Schlüsselparametern Erstellung von X.509-Zertifikaten, CSRs und CRLs Berechnung von Nachrichtendigests Verschlüsselung und Entschlüsselung mit Chiffren SSL/TLS-Client- und Server-Tests Verarbeitung von S/MIME-signierten oder -verschlüsselten E-Mails
Verschiedene Unternehmen halten verschiedene Patente für verschiedene Algorithmen in verschiedenen Regionen der Welt. SIE sind dafür verantwortlich, dass Ihre Nutzung von Algorithmen legal ist, indem Sie prüfen, ob in Ihrem Land Patente existieren. Die Datei enthält einige der Patente, von denen wir wissen oder die vermutlich existieren. Dies ist keine endgültige Liste.
RSA Security besitzt Software-Patente auf den RC5-Algorithmus. Wenn Sie diese Chiffre verwenden möchten, müssen Sie für Lizenzbedingungen RSA Security kontaktieren. Die Webseite ist http://www.rsasecurity.com/.
RC4 ist ein Warenzeichen von RSA Security, daher sollte diese Bezeichnung möglicherweise nur mit Genehmigung von RSA Security verwendet werden.
Der IDEA-Algorithmus ist von Ascom in Österreich, Frankreich, Deutschland, Italien, Japan, den Niederlanden, Spanien, Schweden, der Schweiz, dem Vereinigten Königreich und den USA patentiert. Sie sollten kontaktiert werden, wenn dieser Algorithmus verwendet werden soll; ihre Webseite ist http://www.ascom.ch/.
NTT und Mitsubishi besitzen Patente und anhängige Patente auf den Camellia- Algorithmus, erlauben jedoch die Nutzung kostenlos ohne ausdrückliche Lizenzvereinbarung: http://info.isl.ntt.co.jp/crypt/eng/info/chiteki.html
Um dieses Paket unter einem Unix-Derivat zu installieren, lesen Sie die Datei INSTALL. Für eine Win32-Plattform lesen Sie die Datei INSTALL.W32. Für OpenVMS-Systeme lesen Sie INSTALL.VMS.
Lesen Sie die Dokumentation im Verzeichnis doc/. Sie ist recht grob, listet aber die Funktionen auf; Sie werden wahrscheinlich den Code ansehen müssen, um herauszufinden, wie sie zu verwenden sind. Schauen Sie sich die Beispielprogramme an.
Für einige Plattformen gibt es bekannte Probleme, die den Benutzer oder Anwendungsautor betreffen können. Wir versuchen, diese in doc/PROBLEMS zu sammeln, zusammen mit aktuellen Gedanken, wie sie in einer zukünftigen Version von OpenSSL gelöst werden sollten.
Informationen zur kommerziellen technischen Unterstützung finden Sie auf der OpenSSL-Website www.openssl.org.
Wenn Sie Probleme mit OpenSSL haben, führen Sie bitte zuerst die folgenden Schritte aus:
- Laden Sie den aktuellen Schnappschuss von ftp://ftp.openssl.org/snapshot/
herunter, um zu sehen, ob das Problem bereits behoben wurde.
- Entfernen Sie ASM-Versionen der Bibliotheken.
- Entfernen Sie Compiler-Optimierungsflags.
Wenn Sie einen Fehler melden möchten, fügen Sie bitte die folgenden Informationen in den Fehlerbericht ein:
- Auf Unix-Systemen:
Selbsttestbericht, generiert mit 'make report'
- Auf anderen Systemen:
OpenSSL-Version: Ausgabe von 'openssl version -a'
Betriebssystemname, -Version, Hardware-Plattform
Compiler-Details (Name, Version)
- Anwendungsdetails (Name, Version)
- Problembeschreibung (Schritte, die das Problem reproduzieren, falls bekannt)
- Stack-Traceback (falls die Anwendung einen Core-Dump erzeugt)
Melden Sie den Fehler an das OpenSSL-Projekt über den Request Tracker (http://www.openssl.org/support/rt.html) per E-Mail an:
Beachten Sie, dass der Request Tracker NICHT für allgemeine Hilfe- oder Supportanfragen verwendet werden sollte. Nur weil etwas nicht so funktioniert, wie Sie es erwarten, bedeutet das nicht unbedingt, dass es sich um einen Fehler in OpenSSL handelt.
Beachten Sie, dass E-Mails an [email protected] in der öffentlich einsehbaren Request-Tracker-Datenbank aufgezeichnet und an eine öffentliche Mailingliste weitergeleitet werden. Vertrauliche E-Mails können an [email protected] gesendet werden (PGP-Schlüssel von den Schlüsselservern erhältlich).
Die Entwicklung wird auf der Mailingliste openssl-dev koordiniert (siehe http://www.openssl.org für Informationen zum Abonnieren). Wenn Sie einen Patch einreichen möchten, senden Sie ihn an [email protected] mit dem String "[PATCH]" im Betreff. Bitte fügen Sie eine textliche Erklärung bei, was Ihr Patch bewirkt.
Wenn Sie unsicher sind, ob eine Funktion für die allgemeine OpenSSL-Gemeinschaft nützlich sein wird, diskutieren Sie dies bitte zuerst auf der Mailingliste openssl-dev. Möglicherweise arbeitet bereits jemand an demselben Thema oder es gibt einen guten Grund, warum diese Funktion nicht implementiert ist.
Patches sollten so aktuell wie möglich sein, vorzugsweise relativ zum aktuellen Git oder zum letzten Schnappschuss. Sie sollten dem Codierungsstil von OpenSSL folgen und ohne Warnungen kompilieren. Einige der Zielplattformen des Kern-Teams können zu Testzwecken verwendet werden (debug-steve64, debug-geoff usw.). OpenSSL kompiliert auf vielen verschiedenen Plattformen: Versuchen Sie sicherzustellen, dass Sie nur portable Funktionen verwenden.
Hinweis: Aus rechtlichen Gründen können Beiträge aus den USA nur akzeptiert werden, wenn eine TSU-Meldung und eine Kopie des Patches an [email protected] (früher BXA) gesendet werden, mit einer Kopie an den ENC Encryption Request Coordinator; bitte nehmen Sie sich etwas Zeit, um http://www.bis.doc.gov/Encryption/PubAvailEncSourceCodeNofify.html [sic] und http://w3.access.gpo.gov/bis/ear/pdf/740.pdf (EAR Section 740.13(e)) für die Details anzusehen. Wenn "Ihr Verschlüsselungsquellcode zu groß ist, um als E-Mail-Anhang zu dienen", empfangen sie diesen gerne stattdessen per Fax; hoffentlich haben Sie einen günstigen Ferngesprächstari.
Unser bevorzugtes Format für Änderungen ist "diff -u"-Ausgabe. Sie könnten es wie folgt generieren: