wolfSSL - wolfSSL

wolfSSL
Dezvoltatori Todd Ouska
Eliberarea inițială 19 februarie 2006  ( 19.02.2006 )
Versiune stabila 4.7.0 (16 februarie 2021 ; acum 22 de zile ) [±]  ( 16.02.2021 )
Repertoriu github .com / wolfssl / wolfssl
Scris in C
Sistem de operare Multi-platformă
Tip Biblioteca de criptografie
Licență GPLv2 sau proprietar
Site-ul web www .wolfssl .com

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.

Moduri de cifrare AES
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

Moduri de cifrare DES / 3DES
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
Cifrări de flux
Dispozitiv RC4 ChaCha20
AVX1 / AVX2

(Intel și AMD x86)

Sprijinit
Cavium NITROX

(Procesoare PX III / V)

2048 biți max.
Suport algoritm 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

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
Operații cheie: generare și schimb, criptografie cu curbă eliptică
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
Algoritmi MAC
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
Generarea de numere aleatorii
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

Referințe

linkuri externe