WolfSSL - WolfSSL
![]() | Zdá se, že hlavní přispěvatel do tohoto článku má úzké spojení s jeho předmětem.Listopad 2020) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
![]() | Tento článek je Použití externí odkazy nemusí dodržovat zásady nebo pokyny Wikipedie.Července 2017) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Vývojáři | Todd Ouska |
---|---|
První vydání | 19. února 2006[1] |
Stabilní uvolnění | 4.5.0 (19. srpna 2020[2]) [±] |
Úložiště | github |
Napsáno | C |
Operační systém | Multiplatformní |
Typ | Kryptografie knihovna |
Licence | GPLv2 nebo proprietární |
webová stránka | www |
wolfSSL je malá, přenosná vestavěná knihovna SSL / TLS zaměřená na použití vývojáři vestavěných systémů. Je to otevřený zdroj implementace TLS (SSL 3.0, TLS 1.0, 1.1, 1.2, 1.3 a DTLS 1.0, 1.2 a 1.3) napsané v Programovací jazyk C.. Zahrnuje klientské knihovny SSL / TLS a implementaci serveru SSL / TLS, stejně jako podporu více API, včetně těch definovaných SSL a TLS. wolfSSL zahrnuje také OpenSSL rozhraní kompatibility s nejčastěji používanými funkcemi OpenSSL.[3][4]
YaSSL, předchůdce wolfSSL, je C ++ založená knihovna SSL pro vestavěná prostředí a operační systémy v reálném čase s omezenými prostředky.
Platformy
wolfSSL je aktuálně k dispozici pro Win32 / 64, Linux, Operační Systém Mac, Solaris, Threadx, VxWorks, FreeBSD, NetBSD, OpenBSD, vestavěný Linux, Yocto Project, OpenEmbedded, Zašklebit se bolestí, Haiku, OpenWrt, iPhone, Android, Nintendo Wii a Hrací kostka prostřednictvím podpory DevKitPro, QNX, MontaVista, Tron varianty, NonStop OS, OpenCL, Mikrium MicroC / OS-II, FreeRTOS, SafeRTOS, Freescale MQX, Jádro, TinyOS, TI-RTOS, HP-UX, uTasker, uT-jádro, embOS, Včas, mbed, RIOT, CMSIS-RTOS, FROSTED, INTEGRITA Green Hills Keil RTX, TOPPERS, PetaLinux, Apache Mynewt, a PikeOS.[5]
Dějiny
Vznik yaSSL, nebo ještě dalšího SSL, sahá až do roku 2004. OpenSSL byl v té době k dispozici a měl dvojí licenci pod Licence OpenSSL a Licence SSLeay.[6] yaSSL, alternativně, byl vyvinut a duální licencován na základě komerční licence i GPL.[7] yaSSL nabídla modernější API, podporu pro komerční vývojáře a byla doplněna vrstvou kompatibility OpenSSL.[3] Prvním velkým uživatelem wolfSSL / CyaSSL / yaSSL byl MySQL.[8] Díky propojení s MySQL dosáhla yaSSL extrémně vysokých distribučních objemů v milionech.
Protokoly
Lehká knihovna SSL wolfSSL implementuje následující protokoly:[9]
- SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2, TLS 1.3
- DTLS 1.0, DTLS 1.2, DTLS 1.3
Poznámky k protokolu:
- SSL 2.0 - Podpora SSL 2.0 byla v roce 2011 zastaralá (zakázána) RFC 6176. wolfSSL to nepodporuje.
- SSL 3.0 - Podpora SSL 3.0 byla v roce 2015 zastaralá (zakázána) RFC 7568. V reakci na POODLE útok, SSL 3.0 je ve výchozím nastavení zakázán od wolfSSL 3.6.6, ale lze jej povolit pomocí možnosti kompilace.[10]
Algoritmy
wolfSSL používá následující kryptografické knihovny:
vlčí krypta
Ve výchozím nastavení používá wolfSSL kryptografické služby poskytované wolfCrypt.[11] wolfCrypt poskytuje RSA, ECC, DSS, Diffie – Hellman, EDH, NTRU, DES, Triple DES, AES (CBC, CTR, CCM, GCM), Kamélie, NÁPAD, ARC4, HC-128, ChaCha20, MD2, MD4, MD5, SHA-1, SHA-2, SHA-3, BLAKE2, RIPEMD-160, Poly1305, Generování náhodných čísel, podpora velkých celých čísel a základní 16/64 kódování / dekódování. Volala experimentální šifra Králičí, a software pro veřejné domény zahrnuta je také proudová šifra z projektu EU eSTREAM. Rabbit je potenciálně užitečný pro ty, kteří šifrují streamovaná média ve vysoce výkonných prostředích s vysokou poptávkou.
wolfCrypt také zahrnuje podporu pro poslední Křivka25519 a Ed25519 algoritmy.
wolfCrypt funguje jako back-endová krypto implementace pro několik populárních softwarových balíčků a knihoven, včetně MIT Kerberos[12] (kde ji lze povolit pomocí možnosti sestavení).
NTRU
CyaSSL + zahrnuje NTRU[13] šifrování veřejného klíče. Přidání NTRU do CyaSSL + bylo výsledkem partnerství mezi yaSSL a Security Innovation.[13] NTRU funguje dobře v mobilních a vestavěných prostředích kvůli zmenšené bitové velikosti potřebné k zajištění stejného zabezpečení jako jiné systémy veřejného klíče. Kromě toho není známo, že je zranitelný vůči kvantovým útokům. U CyaSSL + je k dispozici několik šifrovacích sad využívajících NTRU, včetně AES-256, RC4 a HC-128.
SGX
wolfSSL podporuje použití Intel SGX (Software Guard Extensions ).[14] Intel SGX umožňuje menší útočnou plochu a bylo prokázáno, že poskytuje vyšší úroveň zabezpečení pro provádění kódu bez významného negativního dopadu na výkon.
Podporovány hardwarové akcelerační platformy
Podporované důvěryhodné prvky
V současné době má wolfSSL jako podporované důvěryhodné prvky následující:
- STSAFE
- ATECC508A
Podpora hardwarového šifrování
V následujících tabulkách je uvedena podpora wolfSSL pro použití hardwarového šifrování různých zařízení s různými algoritmy.
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 Kryptografický akcelerátor a zajišťovací modul (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 Řady F1, F2, F4, L1, W (ARM Cortex - M3 / M4) | Všechno | Všechno | |||
Cavium NITROX (Procesory III / V PX) | Všechno | ||||
Microchip PIC32 MX / MZ (Integrované 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) | 128 bitů | ||||
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 |
Xilinx Zynq UltraScale + | 256 bitů |
- „Vše“ označuje 128, 192 a 256 bitů podporované velikosti bloků
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 Řady F1, F2, F4, L1, W (ARM Cortex - M3 / M4) | 64 bitů | 64 bitů (šifrování) | 192 bitů |
Cavium NITROX (Procesory III / V PX) | 192 bitů | ||
Microchip PIC32 MX / MZ (Integrované připojení) | 64 bitů | 192 bitů | |
Texas Instruments TM4C1294 (ARM Cortex-M4F) | 64 bitů | 192 bitů |
přístroj | RC4 | ChaCha20 |
---|---|---|
AVX1 / AVX2 (Intel a AMD x86) | Podporováno | |
Cavium NITROX (Procesory III / V PX) | 2048 bitů max. |
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 Řady F1, F2, F4, L1, W (ARM Cortex - M3 / M4) | Podporováno | Podporováno | ||||
Microchip PIC32 MX / MZ (Integrované 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 | ||||
Xilinx Zynq UltraScale + | Podporováno |
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ě: MCU Atmel SMART a AVR) | 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ů |
Xilinx Zynq UltraScale + | 2048 - 4096 bitů |
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 | ||
Microchip PIC32 MX / MZ (Integrované připojení) | Podporováno | Podporováno | Podporováno | |||
Technologie Intel QuickAssist | Podporováno | Podporováno |
přístroj | RNG |
---|---|
STMicroelectronics STM32 Řady F1, F2, F4, L1, W (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 |
Licencování
wolfSSL je svobodný software s licencí GNU General Public License GPLv2.[15]
Viz také
- Zabezpečení transportní vrstvy
- Porovnání implementací TLS
- Porovnání kryptografických knihoven
- GnuTLS
- Služby zabezpečení sítě
- OpenSSL
Reference
- ^ "wolfSSL ChangeLog".
- ^ "wolfSSL ChangeLog". 2020-08-19. Citováno 2020-08-22.
- ^ A b wolfSSL - produkty vestavěné komunikace
- ^ „Co potřebujete vědět o protokolu TLS 1.3 a knihovnách SSL / TLS wolfSSL“. www.allaboutcircuits.com. Citováno 2018-12-28.
- ^ "Integrovaná knihovna SSL / TLS wolfSSL | Produkty wolfSSL". Citováno 2019-01-31.
- ^ OpenSSL: Zdroj, Licence
- ^ wolfSSL - Licence
- ^ MySQL, vytváření MySQL s podporou zabezpečeného připojení
- ^ wolfSSL - Dokumenty | CyaSSL Manual - Kapitola 4 (Funkce)
- ^ „wolfSSL 3.6.6 je nyní k dispozici“.
- ^ wolfSSL - Dokumenty | Příručka wolfSSL - Kapitola 10 (Reference k použití wolfCrypt)
- ^ Kerberos: Síťový ověřovací protokol
- ^ A b NTRU CryptoLabs Archivováno 02.02.2013 v Archiv. Dnes
- ^ wolfSSL - wolfSSL s Intel® SGX
- ^ Licence GNU