WolfSSL

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 23. februar 2021; checks kræver 2 redigeringer .

wolfSSL
Type Bibliotek
Udvikler Todd Ouska
Skrevet i C sprog
Operativ system software på tværs af platforme
Første udgave 19. februar 2006 [1] ( 2006-02-19 )
nyeste version
Licens GNU General Public License eller Commercial Distribution License
Internet side wolfssl.com

wolfSSL (tidligere navn: CyaSSL, eller endnu en SSL) er et lille, bærbart, indbygget SSL / TLS -bibliotek rettet mod udviklere af indlejrede system . Det er en open source- implementering af TLS (SSL 3.0, TLS 1.0, 1.1, 1.2, 1.3 og DTLS 1.0 og 1.2) skrevet på C-sproget . Inkluderer SSL/TLS-klientbiblioteker og en SSL/TLS-serverimplementering samt understøttelse af flere API'er , herunder visse SSL og TLS. wolfSSL inkluderer også en OpenSSL -kompatibilitetsgrænseflade med de mest almindeligt anvendte OpenSSL-funktioner. [12] [13]

wolfSSLs forgænger yaSSL er et C++- baseret SSL -bibliotek til ressourcebegrænsede indlejrede miljøer og realtidsoperativsystemer .

Platforme

wolfSSL er i øjeblikket tilgængelig til Win32/64 , Linux , macOS , Solaris , Threadx, VxWorks , FreeBSD , NetBSD , OpenBSD , Embedded Linux , Yocto Project , OpenEmbedded , WinCE , Haiku , OpenWrt , iPhone og Android DevK cube Nintendo Wii , QNX , MontaVista Linux , Tron systemvarianter , NonStop, OpenCL , Micrium's MicroC/OS-II , FreeRTOS , SafeRTOS , Freescale MQX, Nucleus , TinyOS , TI-RTOS, HP-UX , uTasker, uT-kernel IN, embOS mbed , RIOT, CMSIS-RTOS, FROSTED, Green Hills INTEGRITY , Keil RTX, TOPPERS, PetaLinux og Apache Mynewt.

Oprettelseshistorie

Oprettelsen af ​​yaSSL, eller endnu en SSL, går tilbage til 2004. På det tidspunkt eksisterede allerede OpenSSL , som blev distribueret under en dobbeltlicens af OpenSSL-licensen og SSLeay-licensen . [14] Alternativt har yaSSL fået licens til dobbelt kommerciel og GPL . [15] yaSSL tilbød en mere moderne API, understøttelse af kommerciel software og blev udvidet med et OpenSSL-kompatibilitetslag. [12] MySQL blev wolfSSL/CyaSSL/yaSSL's første store klient. [16] Takket være støtten fra MySQL har yaSSL opnået ekstremt store distributionsmængder på millioner af eksemplarer.

Protokoller

wolfSSL letvægts SSL-biblioteket implementerer følgende protokoller:

Yderligere bemærkninger om protokoller:

Algoritmer

wolfSSL bruger følgende kryptografiske biblioteker:

wolfCrypt

Som standard bruger wolfSSL de kryptografiske tjenester fra wolfCrypt-biblioteket. [19] wolfCrypt leverer RSA , ECC , DSS , Diffie-Hellman , EDH, NTRU, DES , Triple DES , AES (CBC, CTR, CCM, GCM), Camellia , IDEA , ARC4 , HC-128 , ChaCha20 , MD4MD2 , MD , MD5 , SHA-1 , SHA-2 , SHA-3 , BLAKE2 , RIPEMD-160 , Poly1305, generering af tilfældige tal, understøttelse af stort heltal og Base16/64 encode/decode. Der er også inkluderet en eksperimentel kanin -ciffer og en stream-ciffer til public domain-software fra eSTREAM- projektet . Kanin er potentielt nyttig for dem, der krypterer streamingmedier i avancerede miljøer med høj efterspørgsel.

wolfCrypt inkluderer også understøttelse af de nyeste Curve25519 og Ed25519 algoritmer .

wolfCrypt fungerer som en back-end kryptografisk implementering for adskillige populære softwarepakker og biblioteker, inklusive MIT Kerberos [20] (hvor det kan aktiveres via en byggemulighed).

NTRU

CyaSSL+ muliggør NTRU offentlig nøglekryptering [21] . Tilføjelsen af ​​NTRU til CyaSSL+ var resultatet af et partnerskab mellem yaSSL og Security Innovation. [21] NTRU fungerer godt i mobile og indlejrede systemer på grund af det reducerede antal bit, der kræves for at give samme sikkerhed som andre offentlige nøglesystemer. Det er heller ikke blevet bekræftet at være sårbart over for kvanteangreb. Adskillige NTRU-krypteringspakker er tilgængelige i CyaSSL+-pakken, inklusive AES-256, RC4 og HC-128.

SGX

wolfSSL understøtter brugen af ​​Intel SGX (Software Guard Extensions) [22] . Intel SGX reducerer angrebsoverfladen og har vist sig at give et højere sikkerhedsniveau for kodeudførelse uden væsentlig negativ indvirkning på ydeevnen.

Understøttede hardwareaccelerationsplatforme

Understøttelse af verificerede elementer

I øjeblikket understøtter wolfSSL følgende verificerede elementer:

Understøttelse af hardwarekryptering

Tabellerne nedenfor viser wolfSSL's muligheder for at bruge hardwarekryptering på forskellige enheder med forskellige algoritmer.

AES -krypteringstilstande
Enhed AES-GCM AES-CCM AES-CBC AES-ECB AES-CTR
Intel AES-NI

(Familie af processorer Xeon og Core)

Alle Alle Alle Alle Alle
Freescale

Cryptographic Accelerator and Assurance Module (CAAM)

Alle Alle Alle Alle
Freescale Coldfire SEC

(NXP MCF547X og MCF548X)

Alle
Freescale Kinetis MMCAU

K50, K60, K70 og K80 (ARM Cortex-M4 kerne)

Alle Alle Alle Alle
STMicroelectronics STM32

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

Alle Alle
Cavium NITROX

(Processorer III/V PX)

Alle
Mikrochip PIC32 MX/MZ

(indlejret forbindelse)

Alle Alle Alle
Texas Instruments TM4C1294

(ARM Cortex-M4F)

Alle Alle Alle Alle Alle
Nordisk NRF51

(Serie SoC-familie, 32-bit ARM Cortex M0-processorkerne)

128-bit
ARMv8 Alle Alle Alle
Intel QuickAssist-teknologi Alle Alle
Freescale NXP LTC Alle Alle Alle Alle Alle

"Alle" betyder, at blokstørrelser på 128, 192 og 256 bit understøttes.

DES/3DES krypteringstilstande
enhed DES-CBC DES-ECB 3DES-CBC
Freescale Coldfire SEC

(NXP MCF547X og MCF548X)

64 bit 192 bit
Freescale Kinetis MMCAU

K50, K60, K70 og K80 (ARM Cortex-M4 kerne)

64 bit 192 bit
STMicroelectronics STM32

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

64 bit 64 bit (kodning) 192 bit
Cavium NITROX

(Processorer III/V PX)

192 bit
Mikrochip PIC32 MX/MZ

(indlejret forbindelse)

64 bit 192 bit
Texas Instruments TM4C1294

(ARM Cortex-M4F)

64 bit 192 bit
Stream-cifre
Enhed RC4 ChaCha20
AVX1/AVX2

(Intel og AMD x86)

Understøttet
Cavium NITROX

(Processorer III/V PX)

2048 bit maksimum
Hashing support
Enhed MD5 SHA1 SHA2 SHA-256 SHA-384 SHA-512
AVX1/AVX2

(Intel og AMD x86)

Understøttet Understøttet Understøttet
Freescale Kinetis MMCAU

K50, K60, K70 og K80 (ARM Cortex-M4 kerne)

Understøttet Understøttet Understøttet
STMicroelectronics STM32

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

Understøttet Understøttet
Mikrochip PIC32 MX/MZ

(indlejret forbindelse)

Understøttet Understøttet Understøttet
ARMv8 Understøttet
Intel QuickAssist-teknologi Understøttet Understøttet Understøttet
Freescale NXP LTC Understøttet Understøttet
Nøgleoperationer: generering og udveksling, elliptisk kryptografi
Enhed RSA ECC ECC-DHE Kurve25519 Ed25519
Cavium NITROX

(Processorer III/V PX)

512 - 4096 bit NIST Prime

192, 224, 256, 384, 521

Mikrochip / Atmel

ATECC508A (kompatibel med enhver MPU eller MCU inklusive Atmel SMART og AVR MCU)

256 bit

(NIST-P256)

Intel QuickAssist-teknologi 512 - 4096 bit 128, 256 bit
Freescale NXP LTC 512 - 4096 bit 128, 256 bit 128, 256 bit 256 bit 256 bit
MAC algoritmer
Enhed HMAC-MD5 HMAC-SHA1 HMAC-SHA2 HMAC-SHA256 SHA-3 Poly1305
AVX1/AVX2

(Intel og AMD x86)

Understøttet
Cavium NITROX

(Processorer III/V PX)

Understøttet Understøttet Understøttet Understøttet
Mikrochip PIC32 MX/MZ

(indlejret forbindelse)

Understøttet Understøttet Understøttet
Intel QuickAssist-teknologi Understøttet Understøttet
Generering af tilfældige tal
Enhed RNG
STMicroelectronics STM32

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

Understøttet
Cavium NITROX

(III/V PX-processorer)

Understøttet
Nordisk NRF51

(Serie SoC-familie, 32-bit ARM Cortex M0-processorkerne)

Understøttet

Licensering

wolfSSL er open source-software licenseret under GNU General Public License GPLv2. [23]

Se også

Referencer

  1. wolfSSLChangeLog . Hentet 13. januar 2019. Arkiveret fra originalen 16. marts 2016.
  2. https://www.wolfssl.com/wolfssl-4-1-0-now-available/
  3. Udgivelse 4.1.0 - 2019.
  4. wolfSSL Release 5.0.0 (1. nov. 2021) - 2021.
  5. wolfSSL Release 5.1.0 (27. december 2021) - 2021.
  6. wolfSSL Release 5.1.1 (3. januar 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 . Hentet 13. januar 2019. Arkiveret fra originalen 8. september 2017.
  13. Hvad du behøver at vide om TLS 1.3-protokollen og wolfSSL's SSL/TLS-  biblioteker . www.allaboutcircuits.com . Hentet 28. december 2018. Arkiveret fra originalen 29. december 2018.
  14. OpenSSL: Kilde, Licens . Hentet 13. januar 2019. Arkiveret fra originalen 18. januar 2019.
  15. wolfSSL-licens . Hentet 13. januar 2019. Arkiveret fra originalen 12. juli 2017.
  16. MySQL, opbygning af MySQL med understøttelse af sikre forbindelser (downlink) . Hentet 13. januar 2019. Arkiveret fra originalen 6. juli 2017. 
  17. "wolfSSL 3.6.6 er nu tilgængelig" Arkiveret 14. marts 2017 på Wayback Machine .
  18. wolfSSL - Docs | wolfSSL Manual - Kapitel 10 (reference til wolfCrypt-brug) . Hentet 13. januar 2019. Arkiveret fra originalen 3. juli 2017.
  19. Kerberos: Network Authentication Protocol . Hentet 13. januar 2019. Arkiveret fra originalen 5. august 2019.
  20. 1 2 NTRU CryptoLabs Arkiveret 2. februar 2013.
  21. wolfSSL - wolfSSL med Intel® SGX . Hentet 13. januar 2019. Arkiveret fra originalen 13. januar 2019.
  22. GNU-licens . Dato for adgang: 13. januar 2019. Arkiveret fra originalen 24. juli 2010.

eksterne links