WolfSSL

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 23. února 2021; kontroly vyžadují 2 úpravy .

wolfSSL
Typ Knihovna
Vývojář Todd Ouška
Zapsáno v jazyk C
Operační systém multiplatformní software
První vydání 19. února 2006 [1] ( 2006-02-19 )
Nejnovější verze
Licence GNU General Public License nebo Commercial Distribution License
webová stránka wolfssl.com

wolfSSL (dřívější název: CyaSSL nebo další SSL) je malá, přenosná, vestavěná knihovna SSL / TLS zaměřená na vývojáře vestavěných systémů . Jedná se o open source implementaci TLS (SSL 3.0, TLS 1.0, 1.1, 1.2, 1.3 a DTLS 1.0 a 1.2) napsanou v jazyce C. Zahrnuje klientské knihovny SSL/TLS a implementaci serveru SSL/TLS a také podporu několika rozhraní API , včetně určitých SSL a TLS. wolfSSL také obsahuje rozhraní kompatibilní s OpenSSL s nejběžněji používanými funkcemi OpenSSL. [12] [13]

Předchůdce wolfSSL yaSSL je knihovna SSL založená na C++ pro vestavěná prostředí s omezenými zdroji a operační systémy pracující v reálném čase .

Platformy

wolfSSL je aktuálně k dispozici pro Win32/64 , Linux , macOS , Solaris , Threadx, VxWorks , FreeBSD , NetBSD , OpenBSD , Embedded Linux , Yocto Project, OpenEmbedded , WinCE , Haiku , OpenWrt , iPhone , Android , Nintendo Wii a GamePro Game , QNX , MontaVista Linux , varianty systému Tron , NonStop, OpenCL , Micrium's MicroC/OS-II , FreeRTOS , SafeRTOS , Freescale MQX, Nucleus , TinyOS , TI-RTOS, HP-UX , uTasker, uT-kernel, embOS, IN mbed , RIOT, CMSIS-RTOS, FROSTED, Green Hills INTEGRITY , Keil RTX, TOPPERS, PetaLinux a Apache Mynewt.

Historie vytvoření

Vznik yaSSL nebo dalšího SSL se datuje do roku 2004. V té době již existoval OpenSSL , který byl distribuován pod duální licencí OpenSSL License a SSLeay licencí . [14] Alternativně byla yaSSL licencována dvojí komerční a GPL . [15] yaSSL nabídl modernější API, podporu komerčního softwaru a byl rozšířen o vrstvu kompatibility OpenSSL. [12] MySQL se stalo prvním velkým klientem wolfSSL/CyaSSL/yaSSL. [16] Díky podpoře MySQL dosáhl yaSSL extrémně velkých distribučních objemů v řádu milionů kopií.

Protokoly

Lehká knihovna wolfSSL SSL implementuje následující protokoly:

Další poznámky k protokolům:

Algoritmy

wolfSSL používá následující kryptografické knihovny:

wolfCrypt

Ve výchozím nastavení používá wolfSSL kryptografické služby knihovny wolfCrypt. [19] wolfCrypt poskytuje RSA , ECC , DSS , Diffie-Hellman , EDH, NTRU, DES , Triple DES , AES (CBC, CTR, CCM, GCM), Camellia , IDEA , ARC4 , HC-128 , ChaCha20 , MD4 , MD2 , MD5 , SHA-1 , SHA-2 , SHA-3 , BLAKE2 , RIPEMD-160 , Poly1305, generování náhodných čísel, podpora velkých celých čísel a kódování/dekódování Base16/64 . Součástí je také experimentální králičí šifra a proudová šifra pro software ve veřejné doméně z projektu eSTREAM . Králík je potenciálně užitečný pro ty, kteří šifrují streamovaná média ve špičkových prostředích s vysokou poptávkou.

wolfCrypt také obsahuje podporu pro nejnovější algoritmy Curve25519 a Ed25519 .

wolfCrypt funguje jako back-endová kryptografická implementace pro několik populárních softwarových balíčků a knihoven, včetně MIT Kerberos [20] (kde ji lze povolit pomocí možnosti sestavení).

NTRU

CyaSSL+ umožňuje šifrování veřejného klíče NTRU [21] . Přidání NTRU do CyaSSL+ bylo výsledkem partnerství mezi yaSSL a Security Innovation. [21] NTRU funguje dobře v mobilních a vestavěných systémech díky sníženému počtu bitů potřebných k zajištění stejné bezpečnosti jako jiné systémy s veřejným klíčem. Také nebylo potvrzeno, že by byl zranitelný vůči kvantovým útokům. V balíčku CyaSSL+ je k dispozici několik šifrovacích sad NTRU, včetně AES-256, RC4 a HC-128.

SGX

wolfSSL podporuje použití Intel SGX (Software Guard Extensions) [22] . Intel SGX snižuje plochu útoku a ukázalo se, že poskytuje vyšší úroveň zabezpečení pro spouštění kódu bez výrazného negativního dopadu na výkon.

Podporované platformy hardwarové akcelerace

Podpora ověřených prvků

V současné době wolfSSL podporuje následující ověřené prvky:

Podpora hardwarového šifrování

V níže uvedených tabulkách jsou uvedeny možnosti wolfSSL pro použití hardwarového šifrování na různých zařízeních s různými algoritmy.

Režimy šifrování AES
přístroj AES-GCM AES-CCM AES-CBC AES-ECB AES-CTR
Intel AES-NI

(rodiny procesorů Xeon a Core)

Všechno Všechno Všechno Všechno Všechno
Freescale

Cryptographic Accelerator and Assurance Module (CAAM)

Všechno Všechno Všechno Všechno
Freescale Coldfire SEC

(NXP MCF547X a MCF548X)

Všechno
Freescale Kinetis MMCAU

K50, K60, K70 a K80 (jádro ARM Cortex-M4)

Všechno Všechno Všechno Všechno
STMicroelectronics STM32

F1, F2, F4, L1, W Series (ARM Cortex - M3/M4)

Všechno Všechno
Cavium NITROX

(Procesory III/V PX)

Všechno
Mikročip PIC32 MX/MZ

(vestavěné připojení)

Všechno Všechno Všechno
Texas Instruments TM4C1294

(ARM Cortex-M4F)

Všechno Všechno Všechno Všechno Všechno
severské NRF51

(Řada SoC, 32bitové jádro procesoru ARM Cortex M0)

128bitový
ARMv8 Všechno Všechno Všechno
Technologie Intel QuickAssist Všechno Všechno
Freescale NXP LTC Všechno Všechno Všechno Všechno Všechno

"Vše" znamená, že jsou podporovány velikosti bloků 128, 192 a 256 bitů.

Režimy šifrování DES/3DES
přístroj DES-CBC DES-ECB 3DES-CBC
Freescale Coldfire SEC

(NXP MCF547X a MCF548X)

64 bit 192 bit
Freescale Kinetis MMCAU

K50, K60, K70 a K80 (jádro ARM Cortex-M4)

64 bit 192 bit
STMicroelectronics STM32

F1, F2, F4, L1, W Series (ARM Cortex - M3/M4)

64 bit 64 bit (kódování) 192 bit
Cavium NITROX

(Procesory III/V PX)

192 bit
Mikročip PIC32 MX/MZ

(vestavěné připojení)

64 bit 192 bit
Texas Instruments TM4C1294

(ARM Cortex-M4F)

64 bit 192 bit
Streamové šifry
přístroj RC4 ChaCha20
AVX1/AVX2

(Intel a AMD x86)

Podporováno
Cavium NITROX

(Procesory III/V PX)

Maximálně 2048 bitů
Podpora hashování
přístroj MD5 SHA1 SHA2 SHA-256 SHA-384 SHA-512
AVX1/AVX2

(Intel a AMD x86)

Podporováno Podporováno Podporováno
Freescale Kinetis MMCAU

K50, K60, K70 a K80 (jádro ARM Cortex-M4)

Podporováno Podporováno Podporováno
STMicroelectronics STM32

F1, F2, F4, L1, W Series (ARM Cortex - M3/M4)

Podporováno Podporováno
Mikročip PIC32 MX/MZ

(vestavěné připojení)

Podporováno Podporováno Podporováno
ARMv8 Podporováno
Technologie Intel QuickAssist Podporováno Podporováno Podporováno
Freescale NXP LTC Podporováno Podporováno
Klíčové operace: generování a výměna, eliptická kryptografie
přístroj RSA ECC ECC-DHE Křivka25519 Ed25519
Cavium NITROX

(Procesory III/V PX)

512 - 4096 bitů NIST Prime

192, 224, 256, 384, 521

Mikročip / Atmel

ATECC508A (kompatibilní s jakýmkoli MPU nebo MCU včetně Atmel SMART a AVR MCU)

256 bit

(NIST-P256)

Technologie Intel QuickAssist 512 - 4096 bitů 128, 256 bitů
Freescale NXP LTC 512 - 4096 bitů 128, 256 bitů 128, 256 bitů 256 bit 256 bit
Algoritmy MAC
přístroj HMAC-MD5 HMAC-SHA1 HMAC-SHA2 HMAC-SHA256 SHA-3 Poly1305
AVX1/AVX2

(Intel a AMD x86)

Podporováno
Cavium NITROX

(Procesory III/V PX)

Podporováno Podporováno Podporováno Podporováno
Mikročip PIC32 MX/MZ

(vestavěné připojení)

Podporováno Podporováno Podporováno
Technologie Intel QuickAssist Podporováno Podporováno
Generování náhodných čísel
přístroj RNG
STMicroelectronics STM32

F1, F2, F4, L1, W Series (ARM Cortex - M3/M4)

Podporováno
Cavium NITROX

(procesory III/V PX)

Podporováno
severské NRF51

(Řada SoC, 32bitové jádro procesoru ARM Cortex M0)

Podporováno

Licence

wolfSSL je open source software licencovaný pod GNU General Public License GPLv2. [23]

Viz také

Reference

  1. wolfSSLChangeLog . Staženo 13. ledna 2019. Archivováno z originálu 16. března 2016.
  2. https://www.wolfssl.com/wolfssl-4-1-0-now-available/
  3. Vydání 4.1.0 – 2019.
  4. Vydání wolfSSL 5.0.0 (1. listopadu 2021) – 2021.
  5. Vydání wolfSSL 5.1.0 (27. prosince 2021) – 2021.
  6. Vydání wolfSSL 5.1.1 (3. ledna 2022) – 2022.
  7. https://github.com/wolfSSL/wolfssl/releases/tag/v5.2.0-stable - 2022.
  8. https://github.com/wolfSSL/wolfssl/releases/tag/v5.3.0-stable - 2022.
  9. https://github.com/wolfSSL/wolfssl/releases/tag/v5.4.0-stable - 2022.
  10. https://github.com/wolfSSL/wolfssl/releases/tag/v5.5.0-stable - 2022.
  11. https://github.com/wolfSSL/wolfssl/releases/tag/v5.5.1-stable
  12. 1 2 wolfSSL - Embedded Communications Products . Staženo 13. ledna 2019. Archivováno z originálu 8. září 2017.
  13. Co potřebujete vědět o protokolu TLS 1.3 a knihovnách SSL/TLS  wolfSSL . www.allaboutcircuits.com . Získáno 28. prosince 2018. Archivováno z originálu dne 29. prosince 2018.
  14. OpenSSL: Zdroj, Licence . Staženo 13. ledna 2019. Archivováno z originálu 18. ledna 2019.
  15. Licence wolfSSL . Získáno 13. ledna 2019. Archivováno z originálu 12. července 2017.
  16. MySQL, budování MySQL s podporou zabezpečených připojení (downlink) . Získáno 13. ledna 2019. Archivováno z originálu 6. července 2017. 
  17. „wolfSSL 3.6.6 je nyní k dispozici“ Archivováno 14. března 2017 na Wayback Machine .
  18. wolfSSL - Dokumenty | Příručka wolfSSL - Kapitola 10 (Reference použití wolfCrypt) . Staženo 13. ledna 2019. Archivováno z originálu 3. července 2017.
  19. Kerberos: The Network Authentication Protocol . Staženo 13. ledna 2019. Archivováno z originálu 5. srpna 2019.
  20. 1 2 NTRU CryptoLabs Archivováno 2. února 2013.
  21. wolfSSL - wolfSSL s Intel® SGX . Staženo 13. ledna 2019. Archivováno z originálu 13. ledna 2019.
  22. Licence GNU . Datum přístupu: 13. ledna 2019. Archivováno z originálu 24. července 2010.

externí odkazy