WolfSSL
wolfSSL (рання назва: CyaSSL, or yet another SSL) — це невелика, портативна, вбудована бібліотека SSL / TLS, яка призначена для розробників вбудованих систем. Це реалізація TLS з відкритим вихідним кодом (SSL 3.0, TLS 1.0, 1.1, 1.2, 1.3 i DTLS 1.0, 1.2), яка написана на мові С. Включає в себе клієнтські бібліотеки SSL / TLS і реалізацію сервера SSL / TLS, а також підтримку декількох API, в тому числі певних SSL і TLS. wolfSSL також включає інтерфейс сумісності OpenSSL з найчастіше використовуваними функціями OpenSSL.

Попередник wolfSSL yaSSL — це бібліотека SSL на основі C++ для вбудованих середовищ і операційних систем реального часу з обмеженими ресурсами.

Платформи 
В даний час wolfSSL доступна для Win32 / 64, Linux, macOS, Solaris, Threadx, VxWorks, FreeBSD, NetBSD, OpenBSD, Вбудований Linux, Yocto Project, OpenEmbedded, WinCE, Haiku , OpenWrt, iPhone, Android, Nintendo Wii і Gamecube через підтримку DevKitPro, QNX, MontaVista Linux, варіантів системи 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 і Apache Mynewt.

Історія створення 
Створення yaSSL, or yet another SSL датується 2004 роком. У той час вже існувала OpenSSL, яка поширювалася під подвійною ліцензією OpenSSL License і SSLeay license. В якості альтернативи yaSSL отримав подвійну комерційну і GPL ліцензію. yaSSL запропонував більш сучасний API, підтримку для комерційного ПЗ і був доповнений рівнем сумісності з OpenSSL. MySQL стала першим великим клієнтом wolfSSL/yaSSL/yaSSL. Завдяки підтримці MySQL, yaSSL досягла надзвичайного поширення об'ємом в мільйони копій.

Протоколи 

Легка SSL-бібліотека wolfSSL реалізує наступні протоколи:
 SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2, TLS 1.3
 DTLS 1.0, DTLS 1.2

Додаткові зауваження до протоколів:
 SSL 2.0 — протокол SSL 2.0 застарів і, згідно RFC 6176, заборонений для використання з 2011 року. wolfSSL її не підтримує.
 SSL 3.0 — протокол SSL 3.0 застарів і, згідно RFC 7568, заборонений для використання з 2015 року. SSL 3.0 був відключений за замовчуванням, починаючи з wolfSSL 3.6.6 у відповідь на атаку POODLE, але його можна включити за допомогою параметру часу компіляції.

Алгоритми 
wolfSSL використовує такі криптографічні бібліотеки:

wolfCrypt 
За замовчуванням, wolfSSL використовує криптографічні сервіси бібліотеки wolfCrypt. wolfCrypt підтримує 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, генерацію випадкових чисел, великі цілі числа, і Base16/64 кодування/декодування. Також включені експериментальний шифр Rabbit і потоковий шифр для ПЗ в суспільному надбанні з проекту eSTREAM. Rabbit потенційно корисний для тих, хто шифрує потокове мультимедіа в високопродуктивних середовищах з високими вимогами.

wolfCrypt також включає в себе підтримку останніх алгоритмів Curve25519 і Ed25519.

wolfCrypt виступає в якості програмно-апаратної (бекенд) криптографічної реалізації для декількох популярних пакетів програмного забезпечення та бібліотек, включаючи MIT Kerberos (де його можна включити за допомогою опції збірки).

NTRU 
CyaSSL+ включає шифрування відкритим ключем NTRU. Додавання NTRU в CyaSSL+ стало результатом партнерства між компаніями yaSSL і Security Innovation. NTRU добре працює в мобільних та вбудованих системах, завдяки зменшеній кількості біт, необхідних для забезпечення такого ж рівня безпеки, як і в інших системах з відкритим ключем. Крім того, не підтверджено, що він вразливий для квантових атак. У пакеті CyaSSL+ доступні кілька наборів шифрів, що використовують NTRU, включаючи AES-256, RC4 і HC-128.

SGX 
wolfSSL підтримує використання Intel SGX (Software Guard Extensions). Intel SGX дозволяє зменшити площу атаки і, як було показано, забезпечує вищий рівень безпеки для виконання коду без істотного негативного впливу на продуктивність.

Підтримувані платформи апаратного прискорення

Підтримка перевірених елементів 
В даний час, wolfSSL підтримує такі перевірені елементи:

 STSAFE
 ATECC508A

Підтримка апаратного шифрування 
У наведених нижче таблицях перераховані можливості wolfSSL для використання апаратного шифрування різних пристроїв з різними алгоритмами.

«Усі» означає, що підтримуються розміри блоків 128, 192 і 256 біт.

Ліцензування 
wolfSSL — це ПЗ з відкритим вихідним кодом, яке розповсюджується за ліцензією GNU General Public License GPLv2.

Див. також 
 Transport Layer Security
 
 
 GnuTLS
 Network Security Services
 OpenSSL

Примітки

Посилання 
 wolfSSL/CyaSSL Homepage
 wolfSSL Now With ChaCha20 and Poly1305 

Бібліотеки C
Вільне програмне забезпечення
Криптографічні програми
wolfSSL ( рання назва : CyaSSL , or yet another SSL ) — це невелика , портативна , вбудована бібліотека SSL / TLS , яка призначена для розробників вбудованих систем . Це реалізація TLS з відкритим вихідним кодом ( SSL0 , TLS0 , 1 , 2 , 3 i DTLS0 , 2 ) , яка написана на мові С . Включає в себе клієнтські бібліотеки SSL / TLS і реалізацію сервера SSL / TLS , а також підтримку декількох API , в тому числі певних SSL і TLS . wolfSSL також включає інтерфейс сумісності OpenSSL з найчастіше використовуваними функціями OpenSSL . Попередник wolfSSL yaSSL — це бібліотека SSL на основі C+ + для вбудованих середовищ і операційних систем реального часу з обмеженими ресурсами . Платформи В даний час wolfSSL доступна для Win32 / Linux , macOS , Solaris , Threadx , VxWorks , FreeBSD , NetBSD , OpenBSD , Вбудований Linux , Yocto Project , OpenEmbedded , WinCE , Haiku , OpenWrt , iPhone , Android , Nintendo Wii і Gamecube через підтримку DevKitPro , QNX , MontaVista Linux , варіантів системи 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 і Apache Mynewt . Історія створення Створення yaSSL , or yet another SSL датуєтьсяроком . У той час вже існувала OpenSSL , яка поширювалася під подвійною ліцензією OpenSSL License і SSLeay license . В якості альтернативи yaSSL отримав подвійну комерційну і GPL ліцензію . yaSSL запропонував більш сучасний API , підтримку для комерційного ПЗ і був доповнений рівнем сумісності з OpenSSL . MySQL стала першим великим клієнтом wolfSSL/yaSSL/yaSSL . Завдяки підтримці MySQL , yaSSL досягла надзвичайного поширення об'ємом в мільйони копій . Протоколи Легка SSL- бібліотека wolfSSL реалізує наступні протоколи : SSL0 , TLS0 , TLS1 , TLS2 , TLS3 DTLS0 , DTLS2 Додаткові зауваження до протоколів : SSL0 — протокол SSL0 застарів і , згідно RFC заборонений для використання зроку . wolfSSL її не підтримує . SSL0 — протокол SSL0 застарів і , згідно RFC заборонений для використання зроку . SSL0 був відключений за замовчуванням , починаючи з wolfSSL6 . 6 у відповідь на атаку POODLE , але його можна включити за допомогою параметру часу компіляції . Алгоритми wolfSSL використовує такі криптографічні бібліотеки : wolfCrypt За замовчуванням , wolfSSL використовує криптографічні сервіси бібліотеки wolfCrypt . wolfCrypt підтримує 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 , генерацію випадкових чисел , великі цілі числа , і Base16 / 64 кодування / декодування . Також включені експериментальний шифр Rabbit і потоковий шифр для ПЗ в суспільному надбанні з проекту eSTREAM . Rabbit потенційно корисний для тих , хто шифрує потокове мультимедіа в високопродуктивних середовищах з високими вимогами . wolfCrypt також включає в себе підтримку останніх алгоритмів Curve25519 і Ed25519 . wolfCrypt виступає в якості програмно - апаратної ( бекенд ) криптографічної реалізації для декількох популярних пакетів програмного забезпечення та бібліотек , включаючи MIT Kerberos ( де його можна включити за допомогою опції збірки ) . NTRU CyaSSL+ включає шифрування відкритим ключем NTRU . Додавання NTRU в CyaSSL + стало результатом партнерства між компаніями yaSSL і Security Innovation . NTRU добре працює в мобільних та вбудованих системах , завдяки зменшеній кількості біт , необхідних для забезпечення такого ж рівня безпеки , як і в інших системах з відкритим ключем . Крім того , не підтверджено , що він вразливий для квантових атак . У пакеті CyaSSL+ доступні кілька наборів шифрів , що використовують NTRU , включаючи AES - 256 , RC4 і HC - 128 . SGX wolfSSL підтримує використання Intel SGX ( Software Guard Extensions ) . Intel SGX дозволяє зменшити площу атаки і , як було показано , забезпечує вищий рівень безпеки для виконання коду без істотного негативного впливу на продуктивність . Підтримувані платформи апаратного прискорення Підтримка перевірених елементів В даний час , wolfSSL підтримує такі перевірені елементи : STSAFE ATECC508A Підтримка апаратного шифрування У наведених нижче таблицях перераховані можливості wolfSSL для використання апаратного шифрування різних пристроїв з різними алгоритмами . « Усі » означає , що підтримуються розміри блоківібіт . Ліцензування wolfSSL — це ПЗ з відкритим вихідним кодом , яке розповсюджується за ліцензією GNU General Public License GPLv2 . Див . також Transport Layer Security GnuTLS Network Security Services OpenSSL Примітки Посилання wolfSSL/ CyaSSL Homepage wolfSSL Now With ChaCha20 and Poly1305 Бібліотеки C Вільне програмне забезпечення Криптографічні програми