wolfSSL

Programmbibliothek für Entwickler von Embedded Systemen

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 Bearbeiten

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 Bearbeiten

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 Bearbeiten

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 Bearbeiten

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 Bearbeiten

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 Bearbeiten

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

Siehe auch Bearbeiten

Einzelnachweise Bearbeiten

  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