wolfSSL

wolfSSL (ehemals CyaSSL oder yet another SSL, yaSSL) ist eine kleine, portable, integrierte SSL/TLS-Programmbibliothek, welche besonders für Entwickler von Embedded-Systemen geeignet ist. Es ist eine Open-Source-Implementierung von TLS (SSL 3.0, TLS 1.0, 1.1, 1.2, 1.3, und DTLS 1.0 und 1.2), die in der Programmiersprache C erstellt wurde. Sie beinhaltet SSL/TLS Client-Bibliotheken und SSL/TLS Server-Implementierungen sowie Unterstützung multipler Programmierschnittstellen, einschließlich derer, die von SSL und TLS definiert werden. wolfSSL enthält außerdem eine OpenSSL-Kompatibilitätsschnittstelle mit den meist genutzten OpenSSL Funktionen.[3]

wolfSSL
Basisdaten
Entwickler Todd Ouska[1]
Erscheinungsjahr 19. Februar 2006
Aktuelle Version 4.5.0
(19. August 2020[2])
Betriebssystem Plattformunabhängig
Programmiersprache C
Kategorie Kryptografiebibliothek
Lizenz GNU General Public License oder kommerzielle Lizenz
www.wolfssl.com

Als Nachfolger von CyaSSL ist wolfSSL eine C++ basierte SSL-Bibliothek für Embedded-Umgebungen und Echtzeitbetriebssysteme mit beschränkten Ressourcen.

Plattformen

Der Quelltext von wolfSSL ist portabel, wodurch es für eine Vielzahl von Plattformen verfügbar ist.[4] Intel empfahl 2015, mit Intel Galileo wolfSSL zu nutzen, um in der Arduino-Umgebung eine sichere Kommunikationsmethode verfügbar zu haben.[5]

Geschichte

Der Ursprung von yaSSL, oder yet another SSL (was soviel bedeutet wie: noch ein anderes SSL), liegt im Jahr 2004. OpenSSL war zu dieser Zeit verfügbar und war doppelt lizenziert unter der OpenSSL Lizenz und der SSLeay Lizenz.[6] yaSSL, als Alternative, wurde ebenfalls entwickelt und doppelt lizenziert – mit einer gewerblichen Lizenz und der GPL.[7] yaSSL bot eine modernere API, kommerziellen Entwicklersupport und wurde von OpenSSL-Kompatibilität abgerundet.[8] Der erste große Nutzer von wolfSSL /CyaSSL /yaSSL war MySQL.[9] Durch Bündelung mit MySQL erreichte yaSSL extrem hohe Verteilungszahlen in Millionenhöhe.

Heute wird wolfSSL sowohl im Open-Source-Bereich,[10] als auch für kommerzielle Projekte genutzt.[11] wolfSSL ist in vielen Arten von Netzwerkgeräten enthalten, wie etwa Smart Devices in Autos, IP-Telefone, Mobiltelefone, Router, Drucker und Kreditkartenscanner.

Protokolle

Die leichtgewichtige SSL-Bibliothek wolfSSL implementiert die folgenden Protokolle:[12]

  • SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2, TLS 1.3
  • DTLS 1.0, DTLS 1.2

Notizen:

SSL 2.0 – wolfSSL unterstützt SSL 2.0 nicht, aufgrund von Sicherheitsbedenken

SSL 3.0 – wolfSSL hat SSL 3.0 während der Kompilierung seit wolfSSL 3.6.6 deaktiviert; es kann jedoch noch immer aktiviert werden.

wolfSSL nutzt die folgenden Kryptographie-Bibliotheken:

wolfCrypt

wolfSSL nutzt standardmäßig die kryptographischen Dienste von wolfCrypt.[13] wolfCrypt bietet RSA, ECC, DSS, Diffie-Hellman, EDH, NTRU, DES, Triple DES, AES (CBC, CTR, CCM, GCM), Camellia, IDEA, ARC4, HC-128, ChaCha20, MD2, MD4, MD5, SHA-1, SHA-2, BLAKE2, RIPEMD-160, Poly1305, Zufallszahlengenerator, weitreichende Integer-Unterstützung und Base64-Codierung.

wolfCrypt beinhaltet außerdem Unterstützung für die neuen Algorithmen Curve25519 und Ed25519.

wolfCrypt agiert als Backend für einige beliebte Softwarepakete und -bibliotheken, unter anderem MIT Kerberos.[14]

wolfCrypt wurde 2015 vom National Institute of Standards and Technology der USA als Verschlüsselungssoftware entsprechend dem FIPS 140-2 Standard validiert.[15] Im März 2019 erfolgte eine Revalidierung der Version 4.0.0.[16]

NTRU

CyaSSL+ enthält die NTRUEncrypt[17] Public-Key-Verschlüsselung. Das Hinzufügen von NTRU zu CyaSSL+ entstand durch eine Kooperation zwischen yaSSL und Security Innovation. NTRU ist besonders für mobile und Embedded-Umgebungen geeignet, da es nur eine reduzierte Bitgröße benötigt, um die gleiche Sicherheit wie andere Public-Key-Systeme zu gewährleisten. Außerdem ist nicht bekannt, dass es anfällig für Angriffe von Quantencomputern wäre. Einige Cipher Suites, die NTRU verwenden, sind mit CyaSSL+ verfügbar, dazu gehören AES-256, RC4 und HC-128.

Lizenzierung

wolfSSL ist ein Open-Source-Programm, welches unter der GNU General Public License GPLv2 (alternativ unter einer kommerziellen Lizenz) lizenziert ist.[18]

Siehe auch

Einzelnachweise

  1. Meet the Team: Todd Ouska, 22. Mai 2014
  2. wolfSSL ChangeLog
  3. wolfssl.com
  4. A. Johny, J.S. Jayasudha: Secure Socket Layer Implementations – A Review. In: International Journal of Computer Science & Engineering Technology (IJCSET). Band 4, Nr. 2, 2013, S. 118–124 (ijcset.com [PDF]).
  5. Bringing SSL to Arduino on Galileo Through wolfSSL. (PDF) Intel, 23. März 2015
  6. Quelle, Lizenz. OpenSSL
  7. Lizenz. wolfSSL
  8. compatibility/
  9. MySQL, Using SSL Connections (Memento vom 18. August 2014 im Internet Archive)
  10. wolfSSL – Community
  11. wolfSSL And Whitewood Come Together For netRandom Integration, To Safeguard IoT. iotleague.com vom 15. März 2016
  12. wolfSSL – Docs | CyaSSL Anleitung – Kapitel 4 (Features)
  13. wolfSSL – Docs | wolfSSL Anleitung – Kapitel 10 (wolfCrypt Usage Reference)
  14. Kerberos: The Network Authentication Protocol
  15. FIPS 140-2 Consolidated Validation Certificate No. 0056 (PDF; 325 kB) NIST, 2. September 2015
  16. FIPS 140-2 Consolidated Validation Certificate No. 3389 NIST, 12. Mai 2019
  17. NTRU CryptoLabs (Memento vom 2. Februar 2013 im Webarchiv archive.today)
  18. GNU License
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.