Mbed TLS - Mbed TLS

Mbed TLS
Vývojáři Společný projekt spravovaný TrustedFirmware (dříve Arm )
První vydání 15. ledna 2009 ( 2009-01-15 )
Stabilní uvolnění 3.0.0 (7. července 2021 ; před 1 měsícem ) [±] ( 2021-07-07 )
Úložiště
Napsáno C
Operační systém Multiplatformní
Typ Bezpečnostní knihovna
Licence Apache 2.0
webová stránka tls .mbed .org

Mbed TLS (dříve PolarSSL ) je implementace protokolů TLS a SSL a příslušných kryptografických algoritmů a požadovaného podpůrného kódu. Je distribuován pod licencí Apache verze 2.0. Na webu je uvedeno, že cílem Mbed TLS je „snadné porozumění, používání, integrace a rozšiřování“.

Dějiny

Knihovna PolarSSL SSL je oficiální pokračovací vidličkou knihovny XySSL SSL. XySSL vytvořil francouzský „ white hat hackerChristophe Devine a poprvé byl vydán 1. listopadu 2006 pod licencemi GNU GPL v2 a BSD . V roce 2008 Christophe Devine již nebyl schopen podporovat XySSL a umožnil Paulu Bakkerovi vytvořit oficiální vidličku s názvem PolarSSL. V listopadu 2014 společnost PolarSSL získala společnost ARM Holdings .

V roce 2011 schválila nizozemská vláda integraci mezi OpenVPN a PolarSSL, která nese název OpenVPN-NL. Tato verze OpenVPN byla schválena pro použití při ochraně vládní komunikace až do úrovně Omezeno.

Od vydání verze 1.3.10 byl PolarSSL přejmenován na Mbed TLS, aby lépe ukázal, jak se hodí do ekosystému Mbed . Počínaje verzí 2.1.0 byla knihovna zpřístupněna pod licencí GPL v2 a Apache License v2.0.

Od verze 2.17 je Mbed TLS licencován výhradně pod licencí Apache License verze 2.0.

V roce 2020 se Mbed TLS připojil k projektu TrustedFirmware .

Knihovna

Základní knihovna SSL je napsána v programovacím jazyce C a implementuje modul SSL, základní kryptografické funkce a poskytuje různé obslužné funkce. Na rozdíl od OpenSSL a jiných implementací TLS je Mbed TLS jako wolfSSL v tom, že je navržen tak, aby vyhovoval malým vestavěným zařízením, s minimálním kompletním zásobníkem TLS, který vyžaduje méně než 60 kB programového prostoru a méně než 64 kB RAM. Je také vysoce modulární: každou komponentu, například kryptografickou funkci, lze použít nezávisle na zbytku rámce. Verze jsou k dispozici také pro Microsoft Windows a Linux . Protože je Mbed TLS napsán v programovacím jazyce C , bez externích závislostí, funguje na většině operačních systémů a architektur.

Novější verze PolarSSL než 1.3.0 přidávají do jádra vrstvy abstrakce pro přidělování paměti a vytváření vláken „pro podporu lepší integrace se stávajícími integrovanými operačními systémy“.

Priority designu

Knihovna Mbed TLS vyjadřuje zaměření na čitelnost kódu, dokumentaci, automatizované regresní testy, volně spojený design a přenosný kód.

Vývojová dokumentace

Pro vývojáře je k dispozici následující dokumentace:

  • Design na vysoké úrovni: popis různých modulů uvnitř knihovny na vysoké úrovni s diagramy UML, případy použití a interakce v běžných scénářích.
  • Dokumentace API: Dokumentace generovaná doxygenem z hlavičkových souborů knihovny.
  • Dokumentace zdrojového kódu: Zdrojový kód knihovny je zdokumentován za účelem objasnění struktur, rozhodnutí a konstruktů kódu.

Automatické testování

Automatizované testování Mbed TLS zahrnuje:

  • Součástí zdrojového kódu je testovací rámec, který obsahuje více než 5 000 automatizovaných testů (na základě počtu testů ve verzi 1.3.2 knihovny) pro testování regresí a kompatibility na různých platformách.
  • Skript kompatibility (compat.sh), který testuje kompatibilitu komunikace SSL s OpenSSL a GnuTLS .
  • Systém kontinuální integrace založený na Travis CI a Jenkins .

Použití

Mbed TLS se používá jako součást SSL ve velkých open source projektech:

Platformy

Mbed TLS je v současné době k dispozici pro většinu operačních systémů včetně Linuxu , Microsoft Windows , OS X , OpenWrt , Android , iOS a FreeRTOS . Mezi podporované čipové sady patří alespoň ARM, x86, PowerPC, MIPS.

Algoritmy

Mbed TLS podporuje řadu různých kryptografických algoritmů:

Kryptografické hashovací funkce
MD2 , MD4 , MD5 , RIPEMD160 , SHA-1 , SHA-2
Režimy MAC
CMAC , HMAC
Šifry
AES , ARIA , Blowfish , Camellia , ChaCha , DES , RC4 , Triple DES , XTEA
Šifrovací režimy
ECB , CBC , CFB , CTR , OFB , XTS
Ověřené režimy šifrování
CCM , GCM , NIST Key Wrap ,
ChaCha20 - Poly1305
Odvození klíče
HKDF
Protahování klíčů
PBKDF2 , PKCS # 5 PBE2, PKCS # 12 odvození klíče
Kryptografie veřejného klíče
RSA , výměna klíčů Diffie – Hellman ,
Kryptografie eliptické křivky (ECC) , eliptická křivka Diffie – Hellman (ECDH) , eliptická křivka DSA (ECDSA) , eliptická křivka J-PAKE

Viz také

Reference

externí odkazy