Utente:Maria Cristina Longo/WolfSSL

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
wolfSSL
software
Logo
Logo
GenereSecurity library,

Liberia di Sicurezza (non in lista)

SviluppatoreTodd Ouska
Data prima versione 19 Febbraio, 2006 (2006-02-19)
Sistema operativoMultipiattaforma
 (non in lista)
Linguaggioc language, linguaggio c
LicenzaGNU General Public License o Commercial Distribution License
(licenza libera)
Sito web wolfssl.com, https://www.wolfssl.com.


wolfSSL (precedentemente conosciuto come CyaSSL o yet another SSL) e’ una libreria piccola, trasportabile, integrata in sistema SSL/TLS rivolta principalmente ad utilizzatori quali gli sviluppatori di sistemi integrati. E’ un’ implementazione “ a sorgente aperta”, open source del sistema crittogafico TLS (SSL 3.0, TLS 1.0, 1.1, 1.2, 1.3, DTLS 1.0 e 1.2) scritta nel linguaggio C. Include librerie clienti tipo SSL/TLS e server ad implementazione SSL/TLS cosi’ come il supporto per multiple interfacce di programmazione di applicazioni (API)includendo quelle denifite da SSL e TLS. wolfSSL include anche una interfaccia di compatibilita’OpenSSL con le funzioni piu’ comunemente usate.

yaSSL, predecessore di wolfSSL e’ una libreria in linguaggio C++per sistemi integrati che operano in tempo reale con risorse limitate.

Piattaforme[modifica | modifica wikitesto]

wolfSSL e’ attualmente disponibile per Win32/64, Linux, macOSOracle Solaris, Threadx, VxWorks, FreeBSD, NetBSD, OpenBSD, embedded Linux,WinCE, Haiku, OpenWrt, iPhone, Android, Nintendo Wii e Gamecube attraverso il supporto DevKitPro, QNX, MontaVista le varianti Tron, NonStop, OpenCL, Micrium's MicroC/OS-II, FreeRTOS, SafeRTOS, Freescale MQX, Nucleus, TinyOS, TI-RTOS, HP-UX, uTasker, ed embOS.

Storia[modifica | modifica wikitesto]

L’origine di yaSSL o yet another SSL risale al 2004. OpenSSL era gia’ disponibile all’epoca ed aveva una doppia licenza con licenza OpenSSL  e licenza SSLeay [1]. yaSSL, diversamente, e’ stato sviluppato con doppia licenza, sia con licenza commerciale che con GNU General Public License[2][2][2][2][./WolfSSL#cite_note-5 [5]]. yaSSL ha proposto una interfaccia di programmazione di applicazioni (API) piu’ moderna, con sviluppatore in stile commerciale e completo di interfaccia di compatibilita’ OpenSSL. L’utilizzo maggiormente diffuso di wolfSSL/CyaSSL/yaSSL e’ stato MySQL[3]. Attraverso l’unione con MySQL, yaSSL ha raggiunto un volume di distribuzione e vendita estremamente elevato raggiungendo cifre che si aggirano intorno ai milioni.

Protocolli[modifica | modifica wikitesto]

wolfSSL, libreria ultraleggera implementa i seguenti protocolli:[4] •SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2, TLS 1.3 •DTLS 1.0, DTLS 1.2

Note sul Protocollo

 • SSL 2.0 - SSL 2.0 e’ stato deprecato e proibito nel 2011 da RFC 6176. wolfSSL non lo supporta
• SSL 3.0 - SSL 3.0 e’ stato deprecato e proibito nel 2016 da RFC 7568. In risposta ad attacchi di tipo POODLE (Padding Oracle On Downgraded Legacy Encryption), SSL 3.0 e’ stato disabilitato di default dal momento che wolfSSL 3.6.6 puo’ essere abilitato con un opzione in fase di compilazione.

Algoritmi[modifica | modifica wikitesto]

wolfSSL usa le seguenti librerie crittografiche:

wolfCrypt[modifica | modifica wikitesto]

Per impostazione predefinita, wolfSSL utilizza i servizi crittografici forniti da wolfCrypt.[9]  wolfCrypt produce 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, generazione di numeri casuali, supporto grandi numeri interi Large Integer e base di codifica/decodifica 16/64. E’ incluso anche un cifrario di flusso sperimentale chiamato Rabbit e un software di Pubblico Dominio originato dal Progetto Europeo eSTREAM. Rabbit e’ potenzialmente utile a quei mezzi di trasmissione  criptati ad alta performance e con ambienti ad elevata domanda.

wolfCrypt include anche il supporto per i piu’ recenti algoritmi Curve25519 e Ed25519.

wolfCrypt agisce anche come applicazione crittografica “back-end” per diversi pacchetti software popolari e librerie, incluso MIT Kerberos[5] (in cui puo’ essere abilitata usando l’opzione “build).

NTRU[modifica | modifica wikitesto]

CyaSSL+ include la chiave pubblica di criptazione [6] L’aggiunta di NTRU in CyaSSL+ e’ stato il risultato ottenuto dalla partnership tra yaSSL e Security Innovation. NTRU funziona bene in sistemi mobili e integrati dovuto alla ridotta misura di bit necessaria a fornire la stessa sicurezza degli altri sistemi a chiave pubblica. In aggiunta, non e’ noto che sia vulnerabile ad attacchi di tipo Quantum. Numerosi sono i“cipher suite” (insieme di algoritmi crittografici) che utilizzano NTRU e sono disponibili con CyaSSL+ , inclusi AES-256, RC4 e HC-128.

SGX[modifica | modifica wikitesto]

wolfSSL supporta l’uso di Intel SGX (Software Guard Extensions)[7]. Intel SGX consente soltanto una ridotta superficie di attacco ed ha provato di poter fornine un maggiore livello di sicurezza per eseguire il codice senza significativi impatti sulla performance.

Piattaforme hardware di accelerazione supportate[modifica | modifica wikitesto]

Intel AES-NI (Xeon e famiglie del processore  Core)
AES-GCM 128, 192, 256 bit
AES-CCM 128, 192, 256 bit
AES-CBC 128, 192, 256 bit
AES-ECB 128, 192, 256 bit
AES-CTR 128, 192, 256 bit
AVX1/AVX2 (Intel e AMD x86)
SHA-256
SHA-384
SHA-512
RDRAND (Intel 64,  architetture IA-32 )
SHA-256
SHA-512
RDSEED (Intel Broadwell, AMD Zen)
SHA-256
SHA-512
Freescale Coldfire SEC (NXP MCF547X e MCF548X)
DES-CBC 64 bit
3DES-CBC 192 bit
AES-CBC 128, 192, 256 bit
Freescale Kinetis MMCAU K50, K60, K70 e K80 (ARM Cortex-M4 core)
MD5 128 bit digest
SHA1 160 bit digest
SHA256
DES-CBC 64 bit
3DES-CBC 192 bit
AES-CBC 128, 192, 256 bit
AES-CCM 128, 192, 256 bit
AES-GCM 128, 192, 256 bit
AES-ECB 128, 192, 256 bit
STMicroelectronics STM32 F1, F2, F4, L1, W Series (ARM Cortex - M3/M4)
RNG
DES-CBC 64 bit
DES-ECB 64 bit Encrypt
3DES-CBC 192 bit
MD5 128 bit
SHA1 160 bit
AES-CBC 128, 192, 256 bit
AES-CTR 128, 192, 256 bit
CubeMX and Std Per Lib
Cavium NITROX ( processori III/V PX )
RNG
AES-CBC 128, 192, 256 bit
3DES-CBC 192 bit
RC4 2048 bit maximum
HMAC MD5, SHA1, SHA256, SHA3
RSA 512 - 4096 bit
ECC NIST Prime 192, 224, 256, 384 and 521
Microchip PIC32 MX/MZ (Connettivita' integrata)
MD5 128 bit digest
SHA1 160 bit digest
SHA256
HMAC MD5, SHA1, SHA256
DES-CBC 64 bit
3DES-CBC 192 bit
AES-CBC 128, 192, 256 bit
AES-CTR 128, 192, 256 bit
AES-GCM 128, 192, 256 bit
Texas Instruments TM4C1294 (ARM Cortex-M4F)
DES-CBC 64 bit
3DES-CBC 192 bit
AES-CCM 128, 192, 256 bit
AES-GCM 128, 192, 256 bit
AES-ECB 128, 192, 256 bit
AES-CTR 128, 192, 256 bit
AES-CBC 128, 192, 256 bit
Nordic NRF51 (Series SoC family, 32-bit ARM Cortex M0 processor core)
AES-ECB 128 bit
RNG
Microchip/Atmel ATECC508A (compatibile con  MPU o MCU)
ECC 256 bit (NIST-P256)
ARMv8
AES-CBC 128, 192, 256 bit
AES-CTR 128, 192, 256 bit
AES-GCM 128, 192, 256 bit
SHA256
Intel QuickAssist Technology
RSA 512 - 4096 bit
SHA1 160 bit digest
SHA2 224, 256, 384 and 512 bit
AES-CBC 128, 192, 256 bit
AES-GCM 128, 192, 256 bit
ECC Any curve or bit strength
HMAC SHA1, SHA2
MD5
Freescale NXP LTC
Curve25519 256 bit
Ed25519 256 bit
AES-CCM 128, 192, 256 bit
AES-ECB 128, 192, 256 bit
AES-CBC 128, 192, 256 bit
AES-CTR 128, 192, 256 bit
AES-GCM 128, 192, 256 bit
SHA1 160 bit digest
SHA256
ECC 128, 256 bit
ECC-DHE 128, 256 bit
RSA 512 - 4096 bit

Licenze[modifica | modifica wikitesto]

wolfSSL ha licenza OpenSource riconosciuta dal sistema GNU General Public License GPLv2.

Vedere anche[modifica | modifica wikitesto]

Referenze[modifica | modifica wikitesto]

Link esterni[modifica | modifica wikitesto]