WolfSSL

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 23 februarie 2021; verificările necesită 2 modificări .

wolfSSL
Tip de Bibliotecă
Dezvoltator Todd Ouska
Scris in limbajul C
Sistem de operare software multiplatform
Prima editie 19 februarie 2006 [1] ( 19.02.2006 )
ultima versiune
Licență Licență publică generală GNU sau licență de distribuție comercială
Site-ul web wolfssl.com

wolfSSL (nume anterior: CyaSSL, sau încă un alt SSL) este o bibliotecă SSL / TLS mică, portabilă, încorporată, destinată dezvoltatorilor de sisteme încorporate . Este o implementare open source a TLS (SSL 3.0, TLS 1.0, 1.1, 1.2, 1.3 și DTLS 1.0 și 1.2) scrisă în limbajul C. Include biblioteci client SSL/TLS și o implementare de server SSL/TLS, precum și suport pentru mai multe API-uri , inclusiv anumite SSL și TLS. wolfSSL include, de asemenea, o interfață de compatibilitate OpenSSL cu cele mai frecvent utilizate funcții OpenSSL. [12] [13]

Predecesorul lui wolfSSL, yaSSL, este o bibliotecă SSL bazată pe C++ pentru medii încorporate cu resurse limitate și sisteme de operare în timp real .

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 GameKcuitbePro , QNX , MontaVista Linux , variante de sistem Tron , 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 și Apache Mynewt.

Istoricul creației

Crearea yaSSL, sau încă un alt SSL, datează din 2004. La acel moment, OpenSSL exista deja , care era distribuit sub o licență duală a licenței OpenSSL și a licenței SSLeay . [14] În mod alternativ, yaSSL a primit licență comercială duală și GPL . [15] yaSSL a oferit un API mai modern, suport pentru software comercial și a fost extins cu un strat de compatibilitate OpenSSL. [12] MySQL a devenit primul client important al lui wolfSSL/CyaSSL/yaSSL. [16] Datorită suportului MySQL, yaSSL a realizat volume de distribuție extrem de mari de milioane de copii.

Protocoale

Biblioteca SSL ușoară wolfSSL implementează următoarele protocoale:

Note suplimentare despre protocoale:

Algoritmi

wolfSSL utilizează următoarele biblioteci criptografice:

wolfCrypt

În mod implicit, wolfSSL utilizează serviciile criptografice ale bibliotecii wolfCrypt. [19] wolfCrypt oferă 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 pentru numere întregi mari și codificare/decodificare Base16/64 . De asemenea, este inclus un cifru Rabbit experimental și un cifru flux pentru software de domeniu public din proiectul eSTREAM . Rabbit este potențial util pentru cei care criptează conținut media în flux în medii high-end, cu cerere mare.

wolfCrypt include, de asemenea, suport pentru cei mai recenti algoritmi Curve25519 și Ed25519 .

wolfCrypt acționează ca o implementare criptografică back-end pentru mai multe pachete software și biblioteci populare, inclusiv MIT Kerberos [20] (unde poate fi activată printr-o opțiune de construire).

NTRU

CyaSSL+ permite criptarea cheii publice NTRU [21] . Adăugarea NTRU la CyaSSL+ a fost rezultatul unui parteneriat dintre yaSSL și Security Innovation. [21] NTRU funcționează bine în sistemele mobile și încorporate datorită numărului redus de biți necesari pentru a oferi aceeași securitate ca și alte sisteme cu cheie publică. De asemenea, nu a fost confirmat a fi vulnerabil la atacuri cuantice. Mai multe suite de criptare NTRU sunt disponibile în pachetul CyaSSL+, inclusiv AES-256, RC4 și HC-128.

SGX

wolfSSL acceptă utilizarea Intel SGX (Software Guard Extensions) [22] . Intel SGX reduce suprafața de atac și s-a dovedit că oferă un nivel mai ridicat de securitate pentru execuția codului fără un impact negativ semnificativ asupra performanței.

Platforme de accelerare hardware acceptate

Suport pentru elemente verificate

În prezent, wolfSSL acceptă următoarele elemente verificate:

Suport pentru criptarea hardware

Tabelele de mai jos listează capabilitățile wolfSSL pentru utilizarea criptării hardware pe diferite dispozitive cu diferiți algoritmi.

Moduri de criptare AES
Dispozitiv AES-GCM AES-CCM AES-CBC AES-ECB AES-CTR
Intel AES-NI

(Familii 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

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

Toate Toate
Caviu NITROX

(Procesoare III/V PX)

Toate
Microcip PIC32 MX/MZ

(conexiune încorporată)

Toate Toate Toate
Texas Instruments TM4C1294

(ARM Cortex-M4F)

Toate Toate Toate Toate Toate
Nordic NRF51

(Familia SoC seria, nucleu procesor ARM Cortex M0 pe 32 de biți)

128 de biți
ARMv8 Toate Toate Toate
Tehnologia Intel QuickAssist Toate Toate
Freescale NXP LTC Toate Toate Toate Toate Toate

„Toate” înseamnă că sunt acceptate dimensiunile de bloc de 128, 192 și 256 de biți.

Moduri de criptare DES/3DES
dispozitiv DES-CBC DES-ECB 3DES-CBC
Freescale Coldfire SEC

(NXP MCF547X și MCF548X)

64 de biți 192 de biți
Freescale Kinetis MMCAU

K50, K60, K70 și K80 (nucleu ARM Cortex-M4)

64 de biți 192 de biți
STMicroelectronics STM32

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

64 de biți 64 de biți (codificare) 192 de biți
Caviu NITROX

(Procesoare III/V PX)

192 de biți
Microcip PIC32 MX/MZ

(conexiune încorporată)

64 de biți 192 de biți
Texas Instruments TM4C1294

(ARM Cortex-M4F)

64 de biți 192 de biți
Cifruri în flux
Dispozitiv RC4 ChaCha20
AVX1/AVX2

(Intel și AMD x86)

Sprijinit
Caviu NITROX

(Procesoare III/V PX)

2048 de biți maxim
Suport pentru hashing
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

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

Sprijinit Sprijinit
Microcip PIC32 MX/MZ

(conexiune încorporată)

Sprijinit Sprijinit Sprijinit
ARMv8 Sprijinit
Tehnologia Intel QuickAssist Sprijinit Sprijinit Sprijinit
Freescale NXP LTC Sprijinit Sprijinit
Operații cheie: generare și schimb, criptografie eliptică
Dispozitiv RSA ECC ECC-DHE Curba25519 Ed25519
Caviu NITROX

(Procesoare III/V PX)

512 - 4096 biți NIST Prime

192, 224, 256, 384, 521

Microcip / Atmel

ATECC508A (compatibil cu orice MPU sau MCU, inclusiv Atmel SMART și AVR MCU)

256 de biți

(NIST-P256)

Tehnologia Intel QuickAssist 512 - 4096 biți 128, 256 de biți
Freescale NXP LTC 512 - 4096 biți 128, 256 de biți 128, 256 de biți 256 de biți 256 de biți
algoritmi MAC
Dispozitiv HMAC-MD5 HMAC-SHA1 HMAC-SHA2 HMAC-SHA256 SHA-3 Poly1305
AVX1/AVX2

(Intel și AMD x86)

Sprijinit
Caviu NITROX

(Procesoare III/V PX)

Sprijinit Sprijinit Sprijinit Sprijinit
Microcip PIC32 MX/MZ

(conexiune încorporată)

Sprijinit Sprijinit Sprijinit
Tehnologia Intel QuickAssist Sprijinit Sprijinit
Generarea numerelor aleatorii
Dispozitiv RNG
STMicroelectronics STM32

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

Sprijinit
Caviu NITROX

(procesoare III/V PX)

Sprijinit
Nordic NRF51

(Familia SoC seria, nucleu procesor ARM Cortex M0 pe 32 de biți)

Sprijinit

Licențiere

wolfSSL este un software cu sursă deschisă licențiat conform GNU General Public License GPLv2. [23]

Vezi și

Referințe

  1. wolfSSLChangeLog . Preluat la 13 ianuarie 2019. Arhivat din original la 16 martie 2016.
  2. https://www.wolfssl.com/wolfssl-4-1-0-now-available/
  3. Versiunea 4.1.0 - 2019.
  4. wolfSSL Versiunea 5.0.0 (01 noiembrie 2021) - 2021.
  5. wolfSSL Versiunea 5.1.0 (27 decembrie 2021) - 2021.
  6. wolfSSL Versiunea 5.1.1 (3 ianuarie 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 - Produse de comunicații încorporate . Consultat la 13 ianuarie 2019. Arhivat din original la 8 septembrie 2017.
  13. Ce trebuie să știți despre protocolul TLS 1.3 și bibliotecile SSL/TLS ale  wolfSSL . www.allaboutcircuits.com . Preluat la 28 decembrie 2018. Arhivat din original la 29 decembrie 2018.
  14. OpenSSL: Sursă, Licență . Preluat la 13 ianuarie 2019. Arhivat din original la 18 ianuarie 2019.
  15. wolfSSL-Licență . Consultat la 13 ianuarie 2019. Arhivat din original la 12 iulie 2017.
  16. MySQL, Construirea MySQL cu suport pentru conexiuni sigure (downlink) . Consultat la 13 ianuarie 2019. Arhivat din original la 6 iulie 2017. 
  17. „wolfSSL 3.6.6 is Now Available” Arhivat 14 martie 2017 la Wayback Machine .
  18. wolfSSL - Documente | Manual wolfSSL - Capitolul 10 (Referință de utilizare wolfCrypt) . Preluat la 13 ianuarie 2019. Arhivat din original la 3 iulie 2017.
  19. Kerberos: Protocolul de autentificare în rețea . Preluat la 13 ianuarie 2019. Arhivat din original la 5 august 2019.
  20. 1 2 NTRU CryptoLabs Arhivat 2 februarie 2013.
  21. wolfSSL - wolfSSL cu Intel® SGX . Preluat la 13 ianuarie 2019. Arhivat din original la 13 ianuarie 2019.
  22. Licență GNU . Data accesului: 13 ianuarie 2019. Arhivat din original pe 24 iulie 2010.

link- uri externe