Похоже, что один из основных авторов этой статьи тесно связан с ее предметом. ( Ноябрь 2020 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) |
Использование внешних ссылок в этой статье может не соответствовать политикам или рекомендациям Википедии . ( Июль 2017 г. ) ( Узнайте, как и когда удалить этот шаблон сообщения ) |
Разработчики) | Тодд Оуска |
---|---|
Первый выпуск | 19 февраля 2006 г. [1] |
Стабильный выпуск | 4.7.0 (16 февраля 2021 г . [2] ) [±] |
Репозиторий | github |
Написано в | C |
Операционная система | Мультиплатформенность |
Тип | Библиотека криптографии |
Лицензия | GPLv2 или проприетарный |
Веб-сайт | www |
wolfSSL - это небольшая портативная встроенная библиотека SSL / TLS, предназначенная для использования разработчиками встроенных систем. Это открытая исходный код реализация TLS (SSL 3.0, TLS 1.0, 1.1, 1.2, 1.3, и 1.0, DTLS 1.2 и 1.3) записывается в языке программирования Си . Он включает в себя клиентские библиотеки SSL / TLS и реализацию сервера SSL / TLS, а также поддержку нескольких API, в том числе определенных SSL и TLS . wolfSSL также включает интерфейс совместимости OpenSSL с наиболее часто используемыми функциями OpenSSL. [3] [4]
Предшественник 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'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 и PikeOS . [5]
История [ править ]
Появление yaSSL, или еще одного SSL, датируется 2004 годом. OpenSSL был доступен в то время и имел двойную лицензию по лицензии OpenSSL и SSLeay . [6] yaSSL, в качестве альтернативы, был разработан и получил двойную лицензию как под коммерческой лицензией, так и под GPL. [7] yaSSL предлагал более современный API, поддержку разработчиков в коммерческом стиле и был дополнен уровнем совместимости с OpenSSL. [3] Первым крупным пользователем wolfSSL / CyaSSL / yaSSL был MySQL . [8] Благодаря объединению с MySQL, yaSSL достиг чрезвычайно высоких объемов распространения в миллионы.
В феврале 2019 года к проекту wolfSSL присоединился Дэниел Стенберг , создатель cURL . [9]
Протоколы [ править ]
Облегченная библиотека SSL wolfSSL реализует следующие протоколы: [10]
- 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. В ответ на атаку POODLE SSL 3.0 был отключен по умолчанию, начиная с wolfSSL 3.6.6, но его можно включить с помощью параметра времени компиляции. [11]
Алгоритмы [ править ]
wolfSSL использует следующие библиотеки криптографии:
wolfCrypt [ править ]
По умолчанию wolfSSL использует криптографические сервисы, предоставляемые wolfCrypt. [12] 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 , генерация случайных чисел, поддержка больших целых чисел и кодирование / декодирование base 16/64. Также включен экспериментальный шифр Rabbit , программный потоковый шифр общественного достояния из проекта ЕС eSTREAM. Rabbit потенциально полезен для шифрования потокового мультимедиа в высокопроизводительных средах с высокими требованиями.
wolfCrypt также включает поддержку последних алгоритмов Curve25519 и Ed25519 .
wolfCrypt действует как внутренняя криптографическая реализация для нескольких популярных программных пакетов и библиотек, включая MIT Kerberos [13] (где его можно включить с помощью параметра сборки).
NTRU [ править ]
CyaSSL + включает шифрование с открытым ключом NTRU [14] . Добавление NTRU в CyaSSL + стало результатом партнерства между yaSSL и Security Innovation. [14] NTRU хорошо работает в мобильных и встроенных средах благодаря уменьшенному размеру бит, необходимому для обеспечения такой же безопасности, как и другие системы с открытым ключом. Кроме того, известно, что он не уязвим для квантовых атак. Несколько наборов шифров, использующих NTRU, доступны с CyaSSL +, включая AES-256, RC4 и HC-128.
SGX [ править ]
wolfSSL поддерживает использование Intel SGX ( Software Guard Extensions ). [15] 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) | Все | Все | Все | Все | Все |
Nordic NRF51 архивации 2018-06-19 в Wayback Machine (Семейство 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 | |||
Микрочип / 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 | Поли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) | Поддерживается |
Nordic NRF51 архивации 2018-06-19 в Wayback Machine (Семейство Series SoC, 32-разрядное процессорное ядро ARM Cortex M0) | Поддерживается |
Лицензирование [ править ]
wolfSSL - бесплатное программное обеспечение, работающее под лицензией GNU General Public License GPLv2. [16]
См. Также [ править ]
- Безопасность транспортного уровня
- Сравнение реализаций TLS
- Сравнение криптографических библиотек
- GnuTLS
- Услуги сетевой безопасности
- OpenSSL
Ссылки [ править ]
- ^ "wolfSSL ChangeLog" .
- ^ "wolfSSL ChangeLog" . 2021-02-16 . Проверено 16 февраля 2021 .
- ^ a b wolfSSL - Продукты для встраиваемых коммуникаций
- ^ «Что нужно знать о протоколе TLS 1.3 и библиотеках SSL / TLS wolfSSL» . www.allaboutcircuits.com . Проверено 28 декабря 2018 .
- ^ "Встроенная библиотека SSL / TLS wolfSSL | Продукты wolfSSL" . Проверено 31 января 2019 .
- ^ OpenSSL: исходный код, лицензия
- ^ wolfSSL - Лицензия
- ^ «MySQL, построение MySQL с поддержкой безопасных подключений» . Архивировано из оригинала на 2017-07-06 . Проверено 12 июня 2016 .
- ^ Даниэль Стенберг, основатель и главный архитектор cURL, присоединяется к wolfSSL
- ^ wolfSSL - Документы | Руководство CyaSSL - Глава 4 (Возможности)
- ^ «Теперь доступен wolfSSL 3.6.6» .
- ^ wolfSSL - Документы | Руководство wolfSSL - Глава 10 (Справочник по использованию wolfCrypt)
- ^ Kerberos: протокол сетевой аутентификации
- ^ a b NTRU CryptoLabs Архивировано 2 февраля 2013 г. в Archive.today
- ^ wolfSSL - wolfSSL с Intel® SGX
- ^ Лицензия GNU
Внешние ссылки [ править ]
- wolfSSL / CyaSSL Домашняя страница
- wolfSSL теперь с ChaCha20 и Poly1305