Разработчик (и) | Тодд Оуска |
---|---|
Первый выпуск | 19 февраля 2006 г. (19.02.2006) |
Стабильный выпуск | 4.5.0 (19 августа 2020 г.; 2 месяца назад (19.08.2020)) |
Репозиторий | github.com / wolfssl / wolfssl |
Написано на | C |
Операционная система | Многоплатформенность |
Тип | Криптография библиотека |
Лицензия | GPLv2 или проприетарный |
Веб-сайт | www.wolfssl.com |
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.
Предшественник 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, Tron варианты, NonStop OS, OpenCL, Micrium 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 и PikeOS.
Появление yaSSL или еще одного SSL датируется 2004 годом. OpenSSL был доступен в то время и имел двойную лицензию по лицензии OpenSSL и SSLeay. В качестве альтернативы, yaSSL был разработан и получил двойную лицензию как под коммерческой лицензией, так и под GPL. yaSSL предлагал более современный API, поддержку разработчиков в коммерческом стиле и был дополнен уровнем совместимости OpenSSL. Первым крупным пользователем wolfSSL / CyaSSL / yaSSL был MySQL. Благодаря объединению с MySQL yaSSL достигла чрезвычайно высоких объемов распространения в миллионах.
Облегченная библиотека SSL wolfSSL реализует следующие протоколы:
Примечания к протоколу:
wolfSSL использует следующие криптографические библиотеки:
По умолчанию wolfSSL использует криптографические службы, предоставляемые wolfCrypt. wolfCrypt Предоставляет RSA, ECC, DSS, Диффи – Хеллмана, 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, генерация случайных чисел, поддержка больших целых чисел и кодирование / декодирование base 16/64. Также включен экспериментальный шифр под названием Rabbit, программное обеспечение общественного достояния потокового шифра из проекта ЕС eSTREAM. Rabbit потенциально полезен для шифрования потокового мультимедиа в высокопроизводительных средах с высокими требованиями.
wolfCrypt также включает поддержку последних алгоритмов Curve25519 и Ed25519.
wolfCrypt действует как внутренняя криптографическая реализация для нескольких популярных программных пакетов и библиотек, включая MIT Kerberos (где его можно включить с помощью параметра сборки).
CyaSSL + включает NTRU шифрование с открытым ключом. Добавление NTRU в CyaSSL + стало результатом партнерства между yaSSL и Security Innovation. NTRU хорошо работает в мобильных и встроенных средах благодаря уменьшенному размеру бит, необходимому для обеспечения такой же безопасности, как и другие системы с открытым ключом. Кроме того, известно, что он не уязвим для квантовых атак. Несколько наборов шифров, использующих NTRU, доступны с CyaSSL +, включая AES-256, RC4 и HC-128.
wolfSSL поддерживает использование Intel SGX (Software Guard Extensions ). Intel SGX позволяет уменьшить площадь атаки и, как было показано, обеспечивает более высокий уровень безопасности для выполнения кода без значительного отрицательного воздействия на производительность.
В настоящее время wolfSSL поддерживает следующие доверенные элементы:
В следующих таблицах перечислена поддержка wolfSSL для использования аппаратного шифрования различных устройств с различными алгоритмами.
Устройство | AES-GCM | AES-CCM | AES-CBC | AES-ECB | AES-CTR |
---|---|---|---|---|---|
Intel AES-NI (семейства процессоров Xeon и Core) | Все | Все | Все | Все | Все |
Freescale Cryptographic Accelerator and Assurance Module (CAAM) | Все | Все | Все | Все | |
Freescale Coldfire SEC (NXP MCF547X и MCF548X) | Все | ||||
Freescale Kinetis MMCAU K50, K60, K70 и K80 (ARM Cortex-M4 core) | Все | Все | Все | Все | |
STMicroelectronics STM32 F1, F2, F4, L1, W Series (ARM Cortex - M3 / M4) | Все | Все | |||
Cavium NITROX (процессоры III / V PX) | Все | ||||
Microchip PIC32 MX / MZ (Встроенное подключение) | Все | Все | Все | ||
Texas Instruments TM4C1294 (ARM Cortex-M4F) | Все | Все | Все | Все | Все |
Nordic NRF51 (семейство Series SoC, 32-разрядное ядро процессора ARM Cortex M0) | 12 8-бит | ||||
ARMv8 | Все | Все | Все | ||
Технология Intel QuickAssist | Все | Все | |||
Freescale NXP LTC | Все | Все | Все | Все | Все |
Xilinx Zynq UltraScale + | 256-бит |
- «Все» означает, что поддерживается 128, 192 и 256 бит размеры блоков
Устройство | DES-CBC | DES-ECB | 3DES-CBC |
---|---|---|---|
Freescale Coldfire SEC (NXP MCF547X и MCF548X) | 64-битная | 192-битная | |
Freescale Kinetis MMCAU K50, K60, K70 и K80 (ядро ARM Cortex-M4) | 64 бит | 192 бит | |
STMicroelectronics STM32 F1, F2, F4, L1, W Series (ARM Cortex - M3 / M4) | 64 бит | 64 бит (шифрование) | 192 бит |
Cavium NITROX (процессоры III / V PX) | 192 бит | ||
Microchip PIC32 MX / MZ ( Встроенное подключение) | 64-разрядная | 192-разрядная | |
Texas Instruments TM4C1294 (ARM Cortex-M4F) | 64-разрядная | 192-разрядная |
Устройство | RC4 | ChaCha20 |
---|---|---|
AVX1 / AVX 2 (Intel и AMD x86) | Поддерживается | |
Cavium NITROX (процессоры III / V PX) | 2048 бит макс. |
Устройство | MD5 | SHA1 | SHA2 | SHA-256 | SHA -384 | SHA-512 |
---|---|---|---|---|---|---|
AVX1/AVX2 (Intel и AMD x86) | Поддерживается | Поддерживается | Поддерживается | |||
Freescale Kinetis MMCAU K50, K60, K70 и K80 (ядро ARM Cortex-M4) | Поддерживается | Поддерживается | Поддерживается | |||
STMicroelectronics STM32 F1, F2, F4, L1, W Series (ARM Cortex - M3 / M4) | Поддерживается | Поддерживается | ||||
Microchip PIC32 MX / MZ (Встроенное подключение) | Поддерживается | Поддерживается | Поддерживается | |||
ARMv8 | Поддерживается | |||||
Технология Intel QuickAssist | Поддерживается | Поддерживается | Поддерживается | |||
Freescale NXP LTC | Поддерживается | Поддерживается | ||||
Xilinx Zynq UltraScale + | Поддерживается |
Устройство | RSA | ECC | ECC-DHE | Curve25519 | Ed25519 |
---|---|---|---|---|---|
Cavium NITROX (процессоры III / V PX) | 512 - 4096 бит | NIST Prime 192, 224, 256, 384, 521 | |||
Микрочип /Atmel ATECC508A (совместим с любой MPU или MCU, включая: микроконтроллеры Atmel SMART и AVR) | 256 бит (NIST-P256) | ||||
Технология Intel QuickAssist | 512 - 4096 бит | 128, 256 бит | |||
Freescale NXP LTC | 512 - 4096 бит | 128, 256 бит | 128, 256 бит | 256 бит | 256 бит |
Xilinx Zynq UltraScale + | 2048–4096 бит |
Устройство | HMAC-MD5 | HMAC-SHA1 | HMAC-SHA2 | HMAC-SHA256 | SHA-3 | Poly1305 |
---|---|---|---|---|---|---|
AVX1/AVX2 (Intel и AMD x86) | Поддерживается | |||||
Cavium NITROX (процессоры III / V PX) | Поддерживается | Поддерживается | Поддерживается | Поддерживается | ||
Microchip PIC32 MX / MZ (Встроенное подключение) | Поддерживается | Поддерживается | Поддерживается | |||
Технология Intel QuickAssist | Поддерживается | Поддерживается |
Устройство | ГСЧ |
---|---|
S TMicroelectronics STM32 F1, F2, F4, L1, W Series (ARM Cortex - M3 / M4) | Поддерживается |
Cavium NITROX (процессоры III / V PX) | Поддерживается |
Nordic NRF51 (семейство Series SoC, 32-разрядное процессорное ядро ARM Cortex M0) | Поддерживается |
wolfSSL - это бесплатное программное обеспечение, под лицензией GNU Стандартная общественная лицензия GPLv2.