wolfSSL | |
---|---|
Típusú | Könyvtár |
Fejlesztő | Todd Ouska |
Beírva | C nyelv |
Operációs rendszer | többplatformos szoftver |
Első kiadás | 2006. február 19. [1] |
legújabb verzió |
|
Engedély | GNU általános nyilvános licenc vagy kereskedelmi terjesztési licenc |
Weboldal | wolfssl.com |
A wolfSSL (korábbi nevén CyaSSL, vagy egy másik SSL) egy kicsi, hordozható, beépített SSL / TLS könyvtár, amely a beágyazott rendszerek fejlesztőit célozza meg . Ez a TLS (SSL 3.0, TLS 1.0, 1.1, 1.2, 1.3 és DTLS 1.0 és 1.2) nyílt forráskódú megvalósítása C nyelven . Tartalmazza az SSL/TLS klienskönyvtárakat és az SSL/TLS szerver megvalósítását, valamint számos API támogatását , beleértve bizonyos SSL-t és TLS-t. A wolfSSL egy OpenSSL - kompatibilitási felületet is tartalmaz a leggyakrabban használt OpenSSL-szolgáltatásokkal. [12] [13]
A wolfSSL elődje, a yaSSL egy C++ alapú SSL-könyvtár erőforrás-korlátozott beágyazott környezetekhez és valós idejű operációs rendszerekhez .
A wolfSSL jelenleg elérhető Win32/64 , Linux , macOS , Solaris , Threadx , VxWorks , FreeBSD , NetBSD , OpenBSD , Embedded Linux , Yocto Project , OpenEmbedded , WinCE , Haiku , OpenWrt , iPhone , Wii Android és DevKPro támogatással, Ncuitbe rendszerekkel , QNX , MontaVista Linux , Tron rendszerváltozatok , NonStop, OpenCL , Micrium's MicroC/OS-II , FreeRTOS , SafeRTOS , Freescale MQX, Nucleus , TinyOS , TI-RTOS, HP-UX , uTasker, uT-kernel, embOS, INtime mbed , RIOT, CMSIS-RTOS, FROSTED, Green Hills INTEGRITY , Keil RTX, TOPPERS, PetaLinux és Apache Mynewt.
A yaSSL vagy egy másik SSL létrehozása 2004-re nyúlik vissza. Ekkor már létezett az OpenSSL , amelyet az OpenSSL License és az SSLeay licenc kettős licence alatt terjesztettek . [14] Alternatív megoldásként a yaSSL kettős kereskedelmi és GPL licenccel rendelkezik . [15] A yaSSL egy modernebb API-t kínált, támogatja a kereskedelmi szoftvereket, és kibővült egy OpenSSL kompatibilitási réteggel. [12] A MySQL lett a wolfSSL/CyaSSL/yaSSL első nagy kliense. [16] A MySQL támogatásának köszönhetően a yaSSL rendkívül nagy, több millió példányra kiterjedő terjesztési mennyiséget ért el.
A wolfSSL könnyű SSL könyvtár a következő protokollokat valósítja meg:
További megjegyzések a protokollokhoz:
A wolfSSL a következő kriptográfiai könyvtárakat használja:
Alapértelmezés szerint a wolfSSL a wolfCrypt könyvtár kriptográfiai szolgáltatásait használja. [19] A wolfCrypt biztosít RSA , ECC , DSS , Diffie-Hellman , EDH , NTRU, DES , Triple DES , AES (CBC, CTR, CCM, GCM), Camellia , IDEA , ARC4 , HC- 128 , ChaCha20 , MD4MD2 , MD5 , SHA-1 , SHA-2 , SHA-3 , BLAKE2 , RIPEMD-160 , Poly1305, véletlenszám generálás, nagy egész számok támogatása és Base16/64 kódolás/dekódolás. Tartalmaz továbbá egy kísérleti Rabbit titkosítást és egy adatfolyam titkosítót a köztulajdonban lévő szoftverekhez az eSTREAM projektből . A Rabbit potenciálisan hasznos lehet azok számára, akik titkosítják a streaming médiát csúcskategóriás, nagy igényű környezetekben.
A wolfCrypt támogatja a legújabb Curve25519 és Ed25519 algoritmusokat is .
A wolfCrypt háttérkriptográfiai megvalósításként működik számos népszerű szoftvercsomaghoz és könyvtárhoz, köztük az MIT Kerberoshoz [20] (ahol ez egy build opción keresztül engedélyezhető).
A CyaSSL+ lehetővé teszi az NTRU nyilvános kulcsú titkosítását [21] . Az NTRU hozzáadása a CyaSSL+-hoz a yaSSL és a Security Innovation közötti partnerség eredménye. [21] Az NTRU jól működik mobil és beágyazott rendszerekben, mivel kevesebb bitre van szükség ahhoz, hogy ugyanolyan biztonságot nyújtsanak, mint más nyilvános kulcsú rendszerek. Azt sem erősítették meg, hogy sebezhető lenne a kvantumtámadásokkal szemben. A CyaSSL+ csomagban számos NTRU rejtjelkészlet áll rendelkezésre, köztük az AES-256, RC4 és HC-128.
A wolfSSL támogatja az Intel SGX (Software Guard Extensions) [22] használatát . Az Intel SGX csökkenti a támadási felületet, és bebizonyosodott, hogy magasabb szintű biztonságot nyújt a kódvégrehajtáshoz anélkül, hogy jelentős negatív hatással lenne a teljesítményre.
Jelenleg a wolfSSL a következő ellenőrzött elemeket támogatja:
Az alábbi táblázatok felsorolják a wolfSSL hardveres titkosítási képességeit különböző eszközökön, különböző algoritmusokkal.
Eszköz | AES-GCM | AES-CCM | AES-CBC | AES-ECB | AES-CTR |
---|---|---|---|---|---|
Intel AES-NI
(Xeon és Core processzorok családjai) |
Összes | Összes | Összes | Összes | Összes |
Freescale
Cryptographic Accelerator and Assurance Module (CAAM) |
Összes | Összes | Összes | Összes | |
Freescale Coldfire SEC
(NXP MCF547X és MCF548X) |
Összes | ||||
Freescale Kinetis MMCAU
K50, K60, K70 és K80 (ARM Cortex-M4 mag) |
Összes | Összes | Összes | Összes | |
STMicroelectronics STM32
F1, F2, F4, L1, W sorozat (ARM Cortex – M3/M4) |
Összes | Összes | |||
Cavium NITROX
(III/V PX processzorok) |
Összes | ||||
Mikrochip PIC32 MX/MZ
(beágyazott kapcsolat) |
Összes | Összes | Összes | ||
Texas Instruments TM4C1294
(ARM Cortex-M4F) |
Összes | Összes | Összes | Összes | Összes |
Északi NRF51
(Sorozatos SoC család, 32 bites ARM Cortex M0 processzormag) |
128 bites | ||||
ARMv8 | Összes | Összes | Összes | ||
Intel QuickAssist technológia | Összes | Összes | |||
Freescale NXP LTC | Összes | Összes | Összes | Összes | Összes |
Az "összes" azt jelenti, hogy a 128, 192 és 256 bites blokkméretek támogatottak.
eszköz | DES-CBC | DES-ECB | 3DES-CBC |
---|---|---|---|
Freescale Coldfire SEC
(NXP MCF547X és MCF548X) |
64 bites | 192 bites | |
Freescale Kinetis MMCAU
K50, K60, K70 és K80 (ARM Cortex-M4 mag) |
64 bites | 192 bites | |
STMicroelectronics STM32
F1, F2, F4, L1, W sorozat (ARM Cortex – M3/M4) |
64 bites | 64 bites (kódolás) | 192 bites |
Cavium NITROX
(III/V PX processzorok) |
192 bites | ||
Mikrochip PIC32 MX/MZ
(beágyazott kapcsolat) |
64 bites | 192 bites | |
Texas Instruments TM4C1294
(ARM Cortex-M4F) |
64 bites | 192 bites |
Eszköz | RC4 | ChaCha20 |
---|---|---|
AVX1/AVX2
(Intel és AMD x86) |
Támogatott | |
Cavium NITROX
(III/V PX processzorok) |
Maximum 2048 bit |
Eszköz | MD5 | SHA1 | SHA2 | SHA-256 | SHA-384 | SHA-512 |
---|---|---|---|---|---|---|
AVX1/AVX2
(Intel és AMD x86) |
Támogatott | Támogatott | Támogatott | |||
Freescale Kinetis MMCAU
K50, K60, K70 és K80 (ARM Cortex-M4 mag) |
Támogatott | Támogatott | Támogatott | |||
STMicroelectronics STM32
F1, F2, F4, L1, W sorozat (ARM Cortex – M3/M4) |
Támogatott | Támogatott | ||||
Mikrochip PIC32 MX/MZ
(beágyazott kapcsolat) |
Támogatott | Támogatott | Támogatott | |||
ARMv8 | Támogatott | |||||
Intel QuickAssist technológia | Támogatott | Támogatott | Támogatott | |||
Freescale NXP LTC | Támogatott | Támogatott |
Eszköz | RSA | ECC | ECC-DHE | Görbe 25519 | Ed25519 |
---|---|---|---|---|---|
Cavium NITROX
(III/V PX processzorok) |
512-4096 bit | NIST Prime
192, 224, 256, 384, 521 |
|||
Mikrochip / Atmel
ATECC508A (kompatibilis bármely MPU-val vagy MCU-val, beleértve az Atmel SMART és AVR MCU-t) |
256 bites
(NIST-P256) |
||||
Intel QuickAssist technológia | 512-4096 bit | 128, 256 bites | |||
Freescale NXP LTC | 512-4096 bit | 128, 256 bites | 128, 256 bites | 256 bites | 256 bites |
Eszköz | HMAC-MD5 | HMAC-SHA1 | HMAC-SHA2 | HMAC-SHA256 | SHA-3 | Poly1305 |
---|---|---|---|---|---|---|
AVX1/AVX2
(Intel és AMD x86) |
Támogatott | |||||
Cavium NITROX
(III/V PX processzorok) |
Támogatott | Támogatott | Támogatott | Támogatott | ||
Mikrochip PIC32 MX/MZ
(beágyazott kapcsolat) |
Támogatott | Támogatott | Támogatott | |||
Intel QuickAssist technológia | Támogatott | Támogatott |
Eszköz | RNG |
---|---|
STMicroelectronics STM32
F1, F2, F4, L1, W sorozat (ARM Cortex – M3/M4) |
Támogatott |
Cavium NITROX
(III/V PX processzorok) |
Támogatott |
Északi NRF51
(Sorozatos SoC család, 32 bites ARM Cortex M0 processzormag) |
Támogatott |
A wolfSSL egy nyílt forráskódú szoftver , amely a GNU General Public License GPLv2 licenc alatt áll. [23]