WikiDer > WolfSSL
Похоже, что один из основных авторов этой статьи тесная связь со своим предметом. (Ноябрь 2020) (Узнайте, как и когда удалить этот шаблон сообщения) |
Эта статья использование внешняя ссылка может не следовать политикам или рекомендациям Википедии. (Июль 2017 г.) (Узнайте, как и когда удалить этот шаблон сообщения) |
Разработчики) | Тодд Оуска |
---|---|
изначальный выпуск | 19 февраля 2006 г.[1] |
Стабильный выпуск | 4.5.0 (19 августа 2020 г.[2]) [±] |
Репозиторий | github |
Написано в | C |
Операционная система | Мультиплатформенность |
Тип | Криптография библиотека |
Лицензия | GPLv2 или же проприетарный |
Интернет сайт | www |
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.[3][4]
Предшественник wolfSSL, yaSSL - это C ++ библиотека на основе SSL для встроенных сред и операционных систем реального времени с ограниченными ресурсами.
Платформы
wolfSSL в настоящее время доступен для Win32 / 64, Linux, macOS, Солярис, Threadx, VxWorks, FreeBSD, NetBSD, OpenBSD, встроенный Linux, Yocto Project, OpenEmbedded, WinCE, Хайку, OpenWrt, iPhone, Android, Nintendo Wii и Gamecube через поддержку DevKitPro, QNX, MontaVista, Трон варианты, NonStop OS, OpenCL, Микриум MicroC / OS-II, FreeRTOS, SafeRTOS, Freescale MQX, Ядро, TinyOS, TI-RTOS, HP-UX, uTasker, uT-ядро, embOS, Во время, mbed, БУНТ, CMSIS-RTOS, ЗАМОРОЖЕННЫЙ, Green Hills ЦЕЛОСТНОСТЬ, Keil RTX, ТОПЕРЫ, PetaLinux, Apache Mynewt, и PikeOS.[5]
История
Появление yaSSL, или еще одного SSL, датируется 2004 годом. OpenSSL был доступен в то время и имел двойную лицензию под Лицензия OpenSSL и Лицензия SSLeay.[6] В качестве альтернативы, yaSSL был разработан и получил двойную лицензию как под коммерческой лицензией, так и под GPL.[7] yaSSL предлагал более современный API, поддержку разработчиков в коммерческом стиле и был дополнен уровнем совместимости OpenSSL.[3] Первым крупным пользователем wolfSSL / CyaSSL / yaSSL был MySQL.[8] Благодаря объединению с MySQL yaSSL достигла чрезвычайно высоких объемов распространения в миллионах.
Протоколы
Облегченная библиотека SSL wolfSSL реализует следующие протоколы:[9]
- SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2, TLS 1.3
- DTLS 1.0, DTLS 1.2, DTLS 1.3
Примечания к протоколу:
- SSL 2.0 - SSL 2.0 устарел (запрещен) в 2011 г. RFC 6176. wolfSSL его не поддерживает.
- SSL 3.0 - SSL 3.0 устарел (запрещен) в 2015 г. RFC 7568. В ответ на ПУДЕЛЬ нападение, SSL 3.0 был отключен по умолчанию, начиная с wolfSSL 3.6.6, но его можно включить с помощью параметра времени компиляции.[10]
Алгоритмы
wolfSSL использует следующие библиотеки криптографии:
волк
По умолчанию wolfSSL использует криптографические сервисы, предоставляемые wolfCrypt.[11] wolfCrypt предоставляет ЮАР, ECC, DSS, Диффи – Хеллмана, EDH, НТРУ, DES, Тройной DES, AES (CBC, CTR, CCM, GCM), Камелия, ИДЕЯ, ARC4, HC-128, ChaCha20, MD2, MD4, MD5, SHA-1, SHA-2, SHA-3, BLAKE2, РИПЭМД-160, Поли1305, Генерация случайных чисел, поддержка больших целых чисел и базовое кодирование / декодирование 16/64. Экспериментальный шифр под названием Кролик, а программное обеспечение общественного достояния также включен потоковый шифр из проекта ЕС eSTREAM. Rabbit потенциально полезен для шифрования потокового мультимедиа в высокопроизводительных средах с высокими требованиями.
wolfCrypt также включает поддержку последних Подкрутка25519 и Ed25519 алгоритмы.
wolfCrypt действует как внутренняя криптографическая реализация для нескольких популярных программных пакетов и библиотек, включая MIT Kerberos[12] (где его можно включить с помощью параметра сборки).
НТРУ
CyaSSL + включает НТРУ[13] шифрование с открытым ключом. Добавление NTRU в CyaSSL + стало результатом партнерства между yaSSL и Security Innovation.[13] NTRU хорошо работает в мобильных и встроенных средах благодаря уменьшенному размеру бит, необходимому для обеспечения такой же безопасности, как и другие системы с открытым ключом. Кроме того, известно, что он не уязвим для квантовых атак. Несколько наборов шифров, использующих NTRU, доступны с CyaSSL +, включая AES-256, RC4 и HC-128.
SGX
wolfSSL поддерживает использование Intel SGX (Расширения Software Guard).[14] Intel SGX обеспечивает меньшую поверхность атаки и, как было показано, обеспечивает более высокий уровень безопасности для выполнения кода без значительного отрицательного воздействия на производительность.
Поддерживаемые платформы аппаратного ускорения
Поддерживаемые доверенные элементы
В настоящее время wolfSSL поддерживает следующие доверенные элементы:
- STSAFE
- ATECC508A
Поддержка аппаратного шифрования
В следующих таблицах перечислены возможности wolfSSL для использования аппаратного шифрования различных устройств с различными алгоритмами.
Устройство | AES-GCM | AES-CCM | AES-CBC | AES-ECB | AES-CTR |
---|---|---|---|---|---|
Intel AES-NI (Семейства процессоров Xeon и Core) | Все | Все | Все | Все | Все |
Freescale Модуль криптографического ускорителя и обеспечения безопасности (CAAM) | Все | Все | Все | Все | |
Freescale Coldfire SEC (NXP MCF547X и MCF548X) | Все | ||||
Freescale Kinetis MMCAU K50, K60, K70 и K80 (ядро ARM Cortex-M4) | Все | Все | Все | Все | |
STMicroelectronics STM32 F1, F2, F4, L1, W серии (ARM Cortex - M3 / M4) | Все | Все | |||
Cavium NITROX (Процессоры III / V PX) | Все | ||||
Микрочип PIC32 MX / MZ (Встроенное подключение) | Все | Все | Все | ||
Техасские инструменты TM4C1294 (ARM Cortex-M4F) | Все | Все | Все | Все | Все |
Скандинавский NRF51 (Семейство Series SoC, 32-разрядное процессорное ядро ARM Cortex M0) | 128 бит | ||||
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 серии (ARM Cortex - M3 / M4) | 64 бит | 64 бит (шифрование) | 192 бит |
Cavium NITROX (Процессоры III / V PX) | 192 бит | ||
Микрочип PIC32 MX / MZ (Встроенное подключение) | 64 бит | 192 бит | |
Техасские инструменты TM4C1294 (ARM Cortex-M4F) | 64 бит | 192 бит |
Устройство | RC4 | ChaCha20 |
---|---|---|
AVX1 / AVX2 (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 серии (ARM Cortex - M3 / M4) | Поддерживается | Поддерживается | ||||
Микрочип PIC32 MX / MZ (Встроенное подключение) | Поддерживается | Поддерживается | Поддерживается | |||
ARMv8 | Поддерживается | |||||
Технология Intel QuickAssist | Поддерживается | Поддерживается | Поддерживается | |||
Freescale NXP LTC | Поддерживается | Поддерживается | ||||
Xilinx Zynq UltraScale + | Поддерживается |
Устройство | ЮАР | ECC | ECC-DHE | Подкрутка25519 | Ed25519 |
---|---|---|---|---|---|
Cavium NITROX (Процессоры III / V PX) | 512 - 4096 бит | NIST Prime 192, 224, 256, 384, 521 | |||
Микрочип/Атмель 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 | Поли1305 |
---|---|---|---|---|---|---|
AVX1 / AVX2 (Intel и AMD x86) | Поддерживается | |||||
Cavium NITROX (Процессоры III / V PX) | Поддерживается | Поддерживается | Поддерживается | Поддерживается | ||
Микрочип PIC32 MX / MZ (Встроенное подключение) | Поддерживается | Поддерживается | Поддерживается | |||
Технология Intel QuickAssist | Поддерживается | Поддерживается |
Устройство | ГСЧ |
---|---|
STMicroelectronics STM32 F1, F2, F4, L1, W серии (ARM Cortex - M3 / M4) | Поддерживается |
Cavium NITROX (Процессоры III / V PX) | Поддерживается |
Скандинавский NRF51 (Семейство Series SoC, 32-разрядное процессорное ядро ARM Cortex M0) | Поддерживается |
Лицензирование
wolfSSL - бесплатное программное обеспечение, работающее под лицензией GNU General Public License GPLv2.[15]
Смотрите также
- Безопасность транспортного уровня
- Сравнение реализаций TLS
- Сравнение криптографических библиотек
- GnuTLS
- Услуги сетевой безопасности
- OpenSSL
Рекомендации
- ^ "wolfSSL ChangeLog".
- ^ "wolfSSL ChangeLog". 2020-08-19. Получено 2020-08-22.
- ^ а б wolfSSL - Продукты для встраиваемых коммуникаций
- ^ «Что вам нужно знать о протоколе TLS 1.3 и библиотеках SSL / TLS wolfSSL». www.allaboutcircuits.com. Получено 2018-12-28.
- ^ "Встроенная библиотека SSL / TLS wolfSSL | Продукты wolfSSL". Получено 2019-01-31.
- ^ OpenSSL: исходный код, лицензия
- ^ wolfSSL - Лицензия
- ^ MySQL, построение MySQL с поддержкой безопасных подключений
- ^ wolfSSL - Документы | Руководство CyaSSL - Глава 4 (Возможности)
- ^ "wolfSSL 3.6.6 уже доступен".
- ^ wolfSSL - Документы | Руководство wolfSSL - Глава 10 (Справочник по использованию wolfCrypt)
- ^ Kerberos: протокол сетевой аутентификации
- ^ а б NTRU CryptoLabs В архиве 2013-02-02 в Archive.today
- ^ wolfSSL - wolfSSL с Intel® SGX
- ^ Лицензия GNU