
Robustes Open-Source-Toolkit, das SSL/TLS-Protokolle implementiert und eine vollwertige, allgemeine Kryptographie-Bibliothek mit Chiffren, Digests, Public-Key-Algorithmen und X.509-Zertifikatsverwaltung bietet.
OpenSSL 1.0.1g 7. April 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 Anstrengung zur Entwicklung eines robusten, kommerziell nutzbaren, voll ausgestatteten und quelloffenen Toolkits, das die Secure Sockets Layer (SSL v2/v3) und Transport Layer Security (TLS v1) Protokolle sowie eine vollwertige, allgemein einsetzbare Kryptografiebibliothek implementiert. Das Projekt wird von einer weltweiten Gemeinschaft Freiwilliger verwaltet, die das Internet nutzen, um zu kommunizieren, zu planen und das OpenSSL-Toolkit und seine zugehörige Dokumentation zu entwickeln.
OpenSSL basiert auf der exzellenten SSLeay-Bibliothek, die von Eric A. Young und Tim J. Hudson entwickelt wurde. Das OpenSSL-Toolkit steht unter einer Doppellizenz (der OpenSSL-Lizenz plus der SSLeay-Lizenz), was im Grunde bedeutet, dass Sie es frei erhalten und für kommerzielle und nicht-kommerzielle Zwecke nutzen können, solange Sie die Bedingungen beider Lizenzen erfüllen.
Das OpenSSL-Toolkit umfasst:
libssl.a: Implementierung von SSLv2, SSLv3, TLSv1 und des erforderlichen Codes zur Unterstützung sowohl von SSLv2, SSLv3 als auch TLSv1 in einem einzigen Server und Client.
libcrypto.a: Allgemeine Verschlüsselungs- und X.509 v1/v3-Funktionalitäten, die von SSL/TLS benötigt werden, aber nicht wirklich logischer Bestandteil davon sind. Es umfasst Routinen für Folgendes:
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üsselversionen von ecb, cbc, cfb und ofb;
pcbc und 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.
Digest
MD5- und MD2-Nachrichten-Digest-Algorithmen, schnelle Implementierungen,
SHA- (SHA-0) und SHA-1-Nachrichten-Digest-Algorithmen,
MDC2-Nachrichten-Digest. Ein auf DES basierender Hash, der auf Smart Cards verbreitet ist.
Öffentlicher Schlüssel
RSA-Verschlüsselung/-Entschlüsselung/-Generierung.
Es gibt keine Beschränkung der Bitanzahl.
DSA-Verschlüsselung/-Entschlüsselung/-Generierung.
Es gibt keine Beschränkung der Bitanzahl.
Diffie-Hellman-Schlüsselaustausch/-Schlüsselgenerierung.
Es gibt keine Beschränkung der Bitanzahl.
X.509v3-Zertifikate
X509-Kodierung/-Dekodierung in/aus binärem ASN1 und einer auf PEM
basierenden ASCII-Binärkodierung, die Verschlüsselung mit einem
privaten Schlüssel unterstützt. Programm zum Generieren von RSA- und DSA-Zertifikatsanforderungen
und zum Erstellen von RSA- und DSA-Zertifikaten.
Systeme
Die üblichen digitalen Umschlagroutinen und base64-Kodierung. Höherwertiger
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-blockierendes Testen
und Null.
Datenstrukturen
Ein dynamisch wachsendes Hashing-System
Ein einfacher Stack.
Ein Konfigurationslader, der ein Format ähnlich wie MS .ini-Dateien verwendet.
openssl: Ein Kommandozeilenwerkzeug, das verwendet werden kann für: Erstellung von RSA-, DH- und DSA-Schlüsselparametern Erstellung von X.509-Zertifikaten, CSRs und CRLs Berechnung von Nachrichten-Digests 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 an verschiedenen Orten auf der Welt. SIE sind dafür verantwortlich, sicherzustellen, dass Ihre Nutzung jeglicher Algorithmen legal ist, indem Sie prüfen, ob es in Ihrem Land Patente gibt. Die Datei enthält einige der Patente, von denen wir wissen oder die angeblich existieren. Dies ist keine vollständige Liste.
RSA Security besitzt Softwarepatente auf den RC5-Algorithmus. Wenn Sie beabsichtigen, diese Chiffre zu verwenden, müssen Sie RSA Security bezüglich der Lizenzbedingungen kontaktieren. Ihre Webseite ist http://www.rsasecurity.com/.
RC4 ist eine Marke von RSA Security, daher sollte dieses Label 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, Großbritannien und den USA patentiert. Sie sollten kontaktiert werden, wenn dieser Algorithmus verwendet werden soll; ihre Webseite ist http://www.ascom.ch/.
NTT und Mitsubishi haben 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 INSTALL-Datei. Für eine Win32-Plattform lesen Sie die INSTALL.W32-Datei. Für OpenVMS-Systeme lesen Sie INSTALL.VMS.
Lesen Sie die Dokumentation im doc/-Verzeichnis. Sie ist recht grob, aber sie listet die Funktionen auf; Sie werden wahrscheinlich den Code ansehen müssen, um herauszufinden, wie man sie verwendet. Schauen Sie sich die Beispielprogramme an.
Für einige Plattformen gibt es bekannte Probleme, die den Benutzer oder den Anwendungsautor beeinträchtigen können. Wir versuchen, diese in doc/PROBLEMS zu sammeln, mit aktuellen Gedanken dazu, wie sie in einer zukünftigen Version von OpenSSL gelöst werden sollten.
Weitere Informationen zum Erhalt von kommerziellem technischen Support finden Sie auf der OpenSSL-Website www.openssl.org.
Wenn Sie Probleme mit OpenSSL haben, führen Sie bitte zunächst die folgenden Schritte durch:
- Laden Sie den aktuellen Snapshot von ftp://ftp.openssl.org/snapshot/
herunter, um zu sehen, ob das Problem bereits behoben wurde
- Entfernen Sie ASM-Versionen der Bibliotheken
- Entfernen Sie Compileroptimierungsflags
Wenn Sie einen Fehler melden möchten, fügen Sie bitte die folgenden Informationen in jeden 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 dem 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 Unterstützung 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 lesbaren Request-Tracker-Datenbank aufgezeichnet und an eine öffentliche Mailingliste weitergeleitet werden. Vertrauliche E-Mails können an [email protected] gesendet werden (PGP-Schlüssel ist auf den Schlüsselservern verfügbar).
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 der Zeichenfolge "[PATCH]" im Betreff. Bitte fügen Sie eine textuelle Erklärung hinzu, was Ihr Patch bewirkt.
Wenn Sie unsicher sind, ob eine Funktion für die allgemeine OpenSSL-Community nützlich sein wird, besprechen Sie sie bitte zuerst auf der openssl-dev-Mailingliste. Möglicherweise arbeitet bereits jemand an derselben Sache, 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 Snapshot. Sie sollten dem Codierungsstil von OpenSSL folgen und ohne Warnungen kompilieren. Einige der Kernentwickler-Ziele können zu Testzwecken verwendet werden (debug-steve64, debug-geoff usw.). OpenSSL lässt sich auf vielen verschiedenen Plattformen kompilieren: Versuchen Sie, nur portable Funktionen zu 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] (ehemals 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 Abschnitt 740.13(e)) für die Details anzusehen. Wenn "Ihr Verschlüsselungsquellcode zu groß ist, um als E-Mail-Anhang zu dienen", nehmen sie ihn gerne auch per Fax entgegen; hoffentlich haben Sie einen günstigen Ferngesprächs-Tarif.
Unser bevorzugtes Format für Änderungen ist "diff -u"-Ausgabe. Sie können es wie folgt generieren: