Mbed-TLS - Mbed TLS

Mbed-TLS
Entwickler Kollaboratives Projekt, das von TrustedFirmware (ehemals von Arm ) verwaltet wird
Erstveröffentlichung 15. Januar 2009 ( 2009-01-15 )
Stabile Version 3.0.0 (7. Juli 2021 ; vor 1 Monat ) [±] ( 2021-07-07 )
Repository
Geschrieben in C
Betriebssystem Multi-Plattform
Typ Sicherheitsbibliothek
Lizenz Apache 2.0
Webseite tls .mbed .org

Mbed TLS (früher PolarSSL ) ist eine Implementierung der TLS- und SSL- Protokolle und der entsprechenden kryptografischen Algorithmen und des erforderlichen Support-Codes. Es wird unter der Apache-Lizenzversion 2.0 vertrieben. Auf der Website heißt es, dass Mbed TLS „leicht zu verstehen, zu verwenden, zu integrieren und zu erweitern“ sein soll.

Geschichte

Die PolarSSL SSL-Bibliothek ist der offizielle Fortsetzungszweig der XySSL- SSL-Bibliothek. XySSL wurde vom französischen „ White Hat HackerChristophe Devine erstellt und am 1. November 2006 unter GNU GPL v2 und BSD- Lizenzen erstmals veröffentlicht. 2008 konnte Christophe Devine XySSL nicht mehr unterstützen und erlaubte Paul Bakker, den offiziellen Fork namens PolarSSL zu erstellen. Im November 2014 wurde PolarSSL von ARM Holdings übernommen .

Im Jahr 2011 genehmigte die niederländische Regierung eine Integration zwischen OpenVPN und PolarSSL, die OpenVPN-NL heißt. Diese Version von OpenVPN wurde für den Schutz der Regierungskommunikation bis zur Stufe "Eingeschränkt" zugelassen.

Mit der Veröffentlichung von Version 1.3.10 wurde PolarSSL in Mbed TLS umbenannt, um seine Anpassung an das Mbed- Ökosystem besser zu zeigen . Ab Version 2.1.0 wurde die Bibliothek sowohl unter der GPL v2 als auch unter der Apache License v2.0 zur Verfügung gestellt.

Seit Version 2.17 wird Mbed TLS ausschließlich unter der Apache License Version 2.0 lizenziert.

Im Jahr 2020 trat Mbed TLS dem TrustedFirmware- Projekt bei.

Bücherei

Die SSL- Kernbibliothek ist in der Programmiersprache C geschrieben und implementiert das SSL-Modul, die grundlegenden kryptografischen Funktionen und stellt verschiedene Dienstprogrammfunktionen bereit. Im Gegensatz zu OpenSSL und anderen Implementierungen von TLS ist Mbed TLS wie wolfSSL insofern , als es auf kleine eingebettete Geräte passt, wobei der minimale vollständige TLS-Stack weniger als 60 KB Programmspeicher und weniger als 64 KB RAM benötigt. Darüber hinaus ist es hochmodular: Jede Komponente, beispielsweise eine kryptografische Funktion, kann unabhängig vom Rest des Frameworks verwendet werden. Versionen sind auch für Microsoft Windows und Linux verfügbar . Da Mbed TLS in der Programmiersprache C ohne externe Abhängigkeiten geschrieben ist, funktioniert es auf den meisten Betriebssystemen und Architekturen.

Spätere Versionen von PolarSSL als 1.3.0 fügen dem Kern Abstraktionsschichten für die Speicherzuweisung und das Threading hinzu, "um eine bessere Integration mit bestehenden eingebetteten Betriebssystemen zu unterstützen".

Designprioritäten

Die Mbed TLS-Bibliothek legt den Fokus auf Lesbarkeit des Codes, Dokumentation, automatisierte Regressionstests, ein lose gekoppeltes Design und portablen Code.

Entwicklungsdokumentation

Für Entwickler steht folgende Dokumentation zur Verfügung:

  • High-Level-Design: eine High-Level-Beschreibung der verschiedenen Module innerhalb der Bibliothek mit UML-Diagrammen, Anwendungsfällen und Interaktionen in gängigen Szenarien.
  • API-Dokumentation: Doxygen -generierte Dokumentation aus den Header-Dateien der Bibliothek.
  • Quellcode-Dokumentation: Der Quellcode der Bibliothek wird dokumentiert, um Strukturen, Entscheidungen und Code-Konstrukte zu verdeutlichen.

Automatisiertes Testen

Das automatisierte Testen von Mbed TLS umfasst:

  • Im Quellcode ist ein Testframework enthalten, das über 5000 automatisierte Tests (basierend auf der Anzahl der Tests in Version 1.3.2 der Bibliothek) enthält, um Regressionen und Kompatibilität auf verschiedenen Plattformen zu testen.
  • Ein Kompatibilitätsskript (compat.sh), das die Kompatibilität der SSL-Kommunikation mit OpenSSL und GnuTLS testet .
  • Ein kontinuierliches Integrationssystem basierend auf Travis CI und Jenkins .

Verwenden

Mbed TLS wird als SSL-Komponente in großen Open-Source-Projekten verwendet:

Plattformen

Mbed TLS ist derzeit für die meisten Betriebssysteme verfügbar, einschließlich Linux , Microsoft Windows , OS X , OpenWrt , Android , iOS und FreeRTOS . Zu den unterstützten Chipsätzen gehören mindestens ARM, x86, PowerPC, MIPS.

Algorithmen

Mbed TLS unterstützt eine Reihe verschiedener kryptografischer Algorithmen:

Kryptografische Hash-Funktionen
MD2 , MD4 , MD5 , RIPEMD160 , SHA-1 , SHA-2
MAC- Modi
CMAC , HMAC
Chiffren
AES , ARIA , Kugelfisch , Kamelie , ChaCha , DES , RC4 , Triple DES , XTEA
Verschlüsselungsmodi
EZB , CBC , CFB , CTR , OFB , XTS
Authentifizierte Verschlüsselung Modi
CCM , GCM , NIST Key Wrap ,
ChaCha20 - Poly1305
Schlüsselableitung
HKDF
Tastendehnung
PBKDF2 , PKCS #5 PBE2, PKCS #12 Schlüsselableitung
Kryptografie mit öffentlichem Schlüssel
RSA , Diffie-Hellman-Schlüsselaustausch ,
Elliptische Kurvenkryptographie (ECC) , Elliptische Kurve Diffie-Hellman (ECDH) , Elliptische Kurve DSA (ECDSA) , Elliptische Kurve J-PAKE

Siehe auch

Verweise

Externe Links