wolfSSL - wolfSSL
| Dezvoltatori | Todd Ouska |
|---|---|
| Eliberarea inițială | 19 februarie 2006 |
| Versiune stabila | 4.7.0 (16 februarie 2021 ) [±] |
| Repertoriu | github |
| Scris in | C |
| Sistem de operare | Multi-platformă |
| Tip | Biblioteca de criptografie |
| Licență | GPLv2 sau proprietar |
| Site-ul web | www |
wolfSSL este o bibliotecă SSL / TLS încorporată mică, portabilă, destinată utilizării de către dezvoltatorii de sisteme încorporate. Este o sursă deschisă implementarea TLS (SSL 3.0, TLS 1.0, 1.1, 1.2, 1.3 și DTLS 1.0, 1.2 și 1.3) , scris în limbajul de programare C . Include biblioteci client SSL / TLS și o implementare a serverului SSL / TLS, precum și suport pentru mai multe API-uri, inclusiv cele definite de SSL și TLS . wolfSSL include, de asemenea, o interfață de compatibilitate OpenSSL cu cele mai utilizate funcții OpenSSL.
Un predecesor al wolfSSL, yaSSL este o bibliotecă SSL bazată pe C ++ pentru medii încorporate și sisteme de operare în timp real cu resurse constrânse.
Platforme
wolfSSL este disponibil în prezent pentru Win32 / 64 , Linux , MacOS , Solaris , ThreadX , VxWorks , FreeBSD , NetBSD , OpenBSD , embedded Linux , yocto Project , OpenEmbedded , WinCE , Haiku , OpenWRT , iPhone , Android , Nintendo Wii și GameCube prin sprijin DevKitPro , QNX , MontaVista , variante Tron , sistem de operare NonStop , OpenCL , MicroC / OS-II de la Micrium , 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, Apache Mynewt și PikeOS .
Istorie
Geneza yaSSL, sau a unui alt SSL, datează din 2004. OpenSSL era disponibil în acel moment și era licențiat dublu sub licența OpenSSL și licența SSLeay . yaSSL, în mod alternativ, a fost dezvoltat și dual-licențiat atât sub o licență comercială, cât și sub licența GPL. yaSSL a oferit un API mai modern, suport pentru dezvoltatori în stil comercial și a fost completat cu un strat de compatibilitate OpenSSL. Primul utilizator major al wolfSSL / CyaSSL / yaSSL a fost MySQL . Prin gruparea cu MySQL, yaSSL a realizat volume de distribuție extrem de mari în milioane.
În februarie 2019, Daniel Stenberg , creatorul cURL , s-a alăturat proiectului wolfSSL.
Protocoale
Biblioteca SSL ușoară wolfSSL implementează următoarele protocoale:
- SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2, TLS 1.3
- DTLS 1.0, DTLS 1.2, DTLS 1.3
Note de protocol:
- SSL 2.0 - SSL 2.0 a fost depreciat (interzis) în 2011 de RFC 6176 . wolfSSL nu o acceptă.
- SSL 3.0 - SSL 3.0 a fost depreciat (interzis) în 2015 de RFC 7568 . Ca răspuns la atacul POODLE , SSL 3.0 a fost dezactivat în mod implicit de la wolfSSL 3.6.6, dar poate fi activat cu o opțiune de compilare.
Algoritmi
wolfSSL folosește următoarele biblioteci de criptografie:
wolfCrypt
În mod implicit, wolfSSL folosește serviciile criptografice furnizate de wolfCrypt. wolfCrypt Asigură RSA , ECC , DSS , Diffie-Hellman , EDH , NTRU , DES , Triple DES , AES (CBC, CTR, CCM, GCM), Camellia , IDEA , ARC4 , HC-128 , ChaCha20 , MD2 , MD4 , MD5 , SHA-1 , SHA-2 , SHA-3 , BLAKE2 , RIPEMD-160 , Poly1305 , Generare de numere aleatorii, suport întreg întreg și codare / decodare de bază 16/64. Este inclus și un cifru experimental numit Rabbit , un cod de flux de software din domeniul public din proiectul eSTREAM al UE. Rabbit este potențial util pentru cei care criptează mass-media în flux în medii de înaltă performanță și cerere ridicată.
wolfCrypt include, de asemenea, suport pentru algoritmii recenți Curve25519 și Ed25519 .
wolfCrypt acționează ca o implementare de criptare back-end pentru mai multe pachete software și biblioteci populare, inclusiv MIT Kerberos (unde poate fi activat folosind o opțiune de construire).
NTRU
CyaSSL + include criptarea cheii publice NTRU . Adăugarea NTRU în CyaSSL + a fost rezultatul parteneriatului dintre yaSSL și Security Innovation. NTRU funcționează bine în medii mobile și încorporate datorită dimensiunii reduse a bitului necesară pentru a oferi aceeași securitate ca și alte sisteme de chei publice. În plus, nu se știe că este vulnerabil la atacurile cuantice. Mai multe suite de cifrare care utilizează NTRU sunt disponibile cu CyaSSL +, inclusiv AES-256, RC4 și HC-128.
SGX
wolfSSL acceptă utilizarea Intel SGX ( Software Guard Extensions ). Intel SGX permite o suprafață de atac mai mică și s-a dovedit că oferă un nivel mai ridicat de securitate pentru executarea codului fără un impact negativ semnificativ asupra performanței.
Platforme de accelerare hardware acceptate
Elemente de încredere acceptate
În prezent, wolfSSL are următoarele elemente de încredere acceptate:
- STSAFE
- ATECC508A
Suport criptare hardware
Următoarele tabele listează suportul wolfSSL pentru utilizarea criptării hardware a diferitelor dispozitive cu diverși algoritmi.
| Dispozitiv | AES-GCM | AES-CCM | AES-CBC | AES-BCE | AES-CTR |
|---|---|---|---|---|---|
|
Intel AES-NI
(Familiile de procesoare Xeon și Core) |
Toate | Toate | Toate | Toate | Toate |
|
Freescale
Accelerator criptografic și modul de asigurare (CAAM) |
Toate | Toate | Toate | Toate | |
|
Freescale Coldfire SEC
(NXP MCF547X și MCF548X) |
Toate | ||||
|
Freescale Kinetis MMCAU
K50, K60, K70 și K80 (nucleu ARM Cortex-M4) |
Toate | Toate | Toate | Toate | |
|
STMicroelectronics STM32
Seriile F1, F2, F4, L1, W (ARM Cortex - M3 / M4) |
Toate | Toate | |||
|
Cavium NITROX
(Procesoare PX III / V) |
Toate | ||||
|
Microchip PIC32 MX / MZ
(Conectivitate încorporată) |
Toate | Toate | Toate | ||
|
Texas Instruments TM4C1294
(ARM Cortex-M4F) |
Toate | Toate | Toate | Toate | Toate |
|
Nordic NRF51 Arhivat 2018-06-19 la Wayback Machine
(Familia SoC Seria, nucleu procesor ARM Cortex M0 pe 32 de biți) |
128 de biți | ||||
| ARMv8 | Toate | Toate | Toate | ||
| Tehnologie Intel QuickAssist | Toate | Toate | |||
| Freescale NXP LTC | Toate | Toate | Toate | Toate | Toate |
| Xilinx Zynq UltraScale + | 256 de biți |
- „Toate” indică dimensiunile blocurilor acceptate pe 128, 192 și 256 de biți
| Dispozitiv | DES-CBC | DES-ECB | 3DES-CBC |
|---|---|---|---|
|
Freescale Coldfire SEC
(NXP MCF547X și MCF548X) |
64 de biți | 192 biți | |
|
Freescale Kinetis MMCAU
K50, K60, K70 și K80 (nucleu ARM Cortex-M4) |
64 de biți | 192 biți | |
|
STMicroelectronics STM32
Seriile F1, F2, F4, L1, W (ARM Cortex - M3 / M4) |
64 de biți | 64 biți (criptare) | 192 biți |
|
Cavium NITROX
(Procesoare PX III / V) |
192 biți | ||
|
Microchip PIC32 MX / MZ
(Conectivitate încorporată) |
64 de biți | 192 biți | |
|
Texas Instruments TM4C1294
(ARM Cortex-M4F) |
64 de biți | 192 biți |
| Dispozitiv | RC4 | ChaCha20 |
|---|---|---|
|
AVX1 / AVX2
(Intel și AMD x86) |
Sprijinit | |
|
Cavium NITROX
(Procesoare PX III / V) |
2048 biți max. |
| Dispozitiv | MD5 | SHA1 | SHA2 | SHA-256 | SHA-384 | SHA-512 |
|---|---|---|---|---|---|---|
|
AVX1 / AVX2
(Intel și AMD x86) |
Sprijinit | Sprijinit | Sprijinit | |||
|
Freescale Kinetis MMCAU
K50, K60, K70 și K80 (nucleu ARM Cortex-M4) |
Sprijinit | Sprijinit | Sprijinit | |||
|
STMicroelectronics STM32
Seriile F1, F2, F4, L1, W (ARM Cortex - M3 / M4) |
Sprijinit | Sprijinit | ||||
|
Microchip PIC32 MX / MZ
(Conectivitate încorporată) |
Sprijinit | Sprijinit | Sprijinit | |||
| ARMv8 | Sprijinit | |||||
| Tehnologie Intel QuickAssist | Sprijinit | Sprijinit | Sprijinit | |||
| Freescale NXP LTC | Sprijinit | Sprijinit | ||||
| Xilinx Zynq UltraScale + | Sprijinit |
| Dispozitiv | RSA | ECC | ECC-DHE | Curba25519 | Ed25519 |
|---|---|---|---|---|---|
|
Cavium NITROX
(Procesoare PX III / V) |
512 - 4096 biți | NIST Prime
192, 224, 256, 384, 521 |
|||
|
Microchip / Atmel
ATECC508A (compatibil cu orice MPU sau MCU, inclusiv: Atmel SMART și AVR MCU) |
256 biți
(NIST-P256) |
||||
| Tehnologie Intel QuickAssist | 512 - 4096 biți | 128, 256 biți | |||
| Freescale NXP LTC | 512 - 4096 biți | 128, 256 biți | 128, 256 biți | 256 biți | 256 biți |
| Xilinx Zynq UltraScale + | 2048 - 4096 biți |
| Dispozitiv | HMAC-MD5 | HMAC-SHA1 | HMAC-SHA2 | HMAC-SHA256 | SHA-3 | Poly1305 |
|---|---|---|---|---|---|---|
|
AVX1 / AVX2
(Intel și AMD x86) |
Sprijinit | |||||
|
Cavium NITROX
(Procesoare PX III / V) |
Sprijinit | Sprijinit | Sprijinit | Sprijinit | ||
|
Microchip PIC32 MX / MZ
(Conectivitate încorporată) |
Sprijinit | Sprijinit | Sprijinit | |||
| Tehnologie Intel QuickAssist | Sprijinit | Sprijinit |
| Dispozitiv | RNG |
|---|---|
|
STMicroelectronics STM32
Seriile F1, F2, F4, L1, W (ARM Cortex - M3 / M4) |
Sprijinit |
|
Cavium NITROX
(Procesoare PX III / V) |
Sprijinit |
|
Nordic NRF51 Arhivat 2018-06-19 la Wayback Machine
(Familia SoC Seria, nucleu procesor ARM Cortex M0 pe 32 de biți) |
Sprijinit |
Licențierea
wolfSSL este software liber, licențiat sub licența publică generală GNU GPLv2.
Vezi si
- Securitatea stratului de transport
- Compararea implementărilor TLS
- Compararea bibliotecilor de criptografie
- GnuTLS
- Servicii de securitate a rețelei
- OpenSSL