wolfSSL — это небольшая, переносимая, встроенная библиотека SSL/TLS, предназначенная для использования разработчиками встроенных систем. Это реализация TLS с открытым исходным кодом (SSL 3.0, TLS 1.0, 1.1, 1.2, 1.3 и DTLS 1.0, 1.2 и 1.3), написанная на языке программирования C. Она включает клиентские библиотеки SSL/TLS и реализацию сервера SSL/TLS, а также поддержку нескольких API, включая те, которые определены SSL и TLS . wolfSSL также включает интерфейс совместимости с OpenSSL с наиболее часто используемыми функциями OpenSSL. [4] [5]
Предшественник wolfSSL, yaSSL — это SSL-библиотека на основе C++ для встраиваемых сред и операционных систем реального времени с ограниченными ресурсами.
wolfSSL в настоящее время доступен для Microsoft Windows , Linux , macOS , Solaris , ESP32 , ESP8266 , Threadx , VxWorks , FreeBSD , NetBSD , OpenBSD , встроенного Linux , Yocto Project , OpenEmbedded , WinCE , Haiku , OpenWrt , iPhone , Android , Wii и GameCube через поддержку DevKitPro, QNX , MontaVista , вариантов Tron , NonStop OS , OpenCL , MicroC/OS-II от 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 и PikeOS . [6]
Возникновение yaSSL, или еще одного SSL, датируется 2004 годом. OpenSSL был доступен в то время и имел двойную лицензию OpenSSL License и SSLeay license . [7] yaSSL, в свою очередь, был разработан и имел двойную лицензию как по коммерческой лицензии, так и по GPL. [8] yaSSL предлагал более современный API, поддержку разработчиков в коммерческом стиле и был полностью совместим с OpenSSL layer. [4] Первым крупным пользователем wolfSSL/CyaSSL/yaSSL был MySQL . [9] Благодаря объединению с MySQL yaSSL достиг чрезвычайно высоких объемов распространения в миллионах.
В феврале 2019 года Дэниел Стенберг , создатель cURL , был нанят проектом wolfSSL для работы над cURL. [10]
Облегченная библиотека SSL wolfSSL реализует следующие протоколы: [11]
Примечания к протоколу:
wolfSSL использует следующие криптографические библиотеки:
По умолчанию wolfSSL использует криптографические службы, предоставляемые wolfCrypt. [13] 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 , генерацию случайных чисел, поддержку больших целых чисел и кодирование/декодирование с базой 16/64.
wolfCrypt также поддерживает последние алгоритмы X25519 и Ed25519 .
wolfCrypt выступает в качестве внутренней реализации шифрования для нескольких популярных программных пакетов и библиотек, включая MIT Kerberos [14] (где его можно включить с помощью параметра сборки).
CyaSSL+ включает шифрование с открытым ключом NTRU [15] . Добавление NTRU в CyaSSL+ стало результатом партнерства между yaSSL и Security Innovation. [15] NTRU хорошо работает в мобильных и встроенных средах из-за уменьшенного размера бита, необходимого для обеспечения той же безопасности, что и другие системы с открытым ключом. Кроме того, неизвестно, уязвим ли он для квантовых атак. Несколько наборов шифров, использующих NTRU, доступны с CyaSSL+, включая AES-256, RC4 и HC-128.
wolfSSL поддерживает следующие элементы безопасности :
wolfSSL поддерживает следующие аппаратные технологии:
В следующих таблицах перечислены возможности wolfSSL по использованию аппаратного шифрования различных устройств с различными алгоритмами.
- «Все» означает поддерживаемые размеры блоков 128, 192 и 256 бит.
wolfSSL поддерживает следующие сертификации:
wolfSSL имеет двойную лицензию: