волкSSL
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Разработчик(и) | Тодд Оуска |
---|---|
Первоначальный выпуск | 19 февраля 2006 г. [ 1 ] |
Стабильная версия | 5.7.2 [ 2 ]
/ 8 июля 2024 г. |
Репозиторий | github |
Написано в | С |
Операционная система | Мультиплатформенность |
Тип | Криптографическая библиотека |
Лицензия | GPL-2.0 или более поздняя версия или проприетарная [ 3 ] |
Веб-сайт | 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. [ 4 ] [ 5 ]
Предшественник wolfSSL, yaSSL — это библиотека SSL на основе C++ для встроенных сред и операционных систем реального времени с ограниченными ресурсами.
Платформы
[ редактировать ]wolfSSL в настоящее время доступен для Microsoft Windows , Linux , macOS , Solaris , ESP32 , ESP8266 , Threadx , VxWorks , FreeBSD , NetBSD , OpenBSD , Embedded Linux , Yocto Project , OpenEmbedded , WinCE , Haiku , OpenWrt , iPhone , Android , 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 . [ 6 ]
История
[ редактировать ]Возникновение yaSSL, или еще одного SSL, относится к 2004 году. OpenSSL был доступен в то время и имел двойную лицензию: OpenSSL License и SSLeay . [ 7 ] yaSSL, напротив, был разработан и лицензирован как по коммерческой лицензии, так и по лицензии GPL. [ 8 ] yaSSL предлагал более современный API, поддержку разработчиков коммерческого стиля и был дополнен уровнем совместимости OpenSSL. [ 4 ] Первым крупным пользователем wolfSSL/CyaSSL/yaSSL был MySQL . [ 9 ] Благодаря объединению с MySQL yaSSL достиг чрезвычайно высоких объемов распространения, исчисляемых миллионами.
В феврале 2019 года Дэниел Стенберг , создатель cURL , был нанят проектом wolfSSL для работы над cURL. [ 10 ]
Протоколы
[ редактировать ]Облегченная библиотека SSL wolfSSL реализует следующие протоколы: [ 11 ]
- SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2, TLS 1.3
- ДТЛС 1.0, ДТЛС 1.2, ДТЛС 1.3
- Расширения: указание имени сервера (SNI), максимальная длина фрагмента, усеченный HMAC , согласование протокола прикладного уровня (ALPN), расширенный главный секрет.
- Наборы шифров: безопасный удаленный пароль TLS , предварительный общий ключ TLS
- Постквантовая криптография : QSH (квантово-безопасное рукопожатие).
- Стандарты криптографии с открытым ключом :
- PKCS #1 — криптография RSA
- PKCS #3 — Ключевое соглашение Диффи-Хеллмана
- PKCS #5 — шифрование на основе пароля
- PKCS #7 — синтаксис криптографического сообщения (CMS)
- PKCS #8 — Синтаксис информации о закрытом ключе
- PKCS #9 — выбранные типы атрибутов
- PKCS #10 — Запрос на подпись сертификата (CSR)
- PKCS #11 — Интерфейс криптографического токена
- PKCS #12 — Стандарт синтаксиса обмена сертификатами/персональной информацией
Примечания к протоколу:
- 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, но его можно включить с помощью опции во время компиляции. [ 12 ]
Алгоритмы
[ редактировать ]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 хорошо работает в мобильных и встроенных средах благодаря уменьшенному размеру битов, необходимому для обеспечения той же безопасности, что и другие системы с открытым ключом. Кроме того, неизвестно, что он уязвим для квантовых атак. С CyaSSL+ доступно несколько наборов шифров, использующих NTRU, включая AES-256, RC4 и HC-128.
Интеграция оборудования
[ редактировать ]Поддержка безопасных элементов
[ редактировать ]wolfSSL поддерживает следующие элементы безопасности :
- STMicroelectronics STSAFE
- Микрочип криптоаутентификации ATECC508A
- NXP EdgeLock SE050 Элемент безопасности
Технологическая поддержка
[ редактировать ]wolfSSL поддерживает следующие аппаратные технологии:
- Intel SGX ( расширения защиты программного обеспечения ) [ 16 ] - Intel SGX обеспечивает меньшую поверхность атаки и, как было показано, обеспечивает более высокий уровень безопасности при выполнении кода без существенного влияния на производительность.
Поддержка аппаратного шифрования
[ редактировать ]В следующих таблицах перечислена поддержка wolfSSL использования аппаратного шифрования различных устройств с различными алгоритмами.
Устройство | AES-GCM | AES-CCM | AES-CBC | АЕС-ЕЦБ | AES-CTR |
---|---|---|---|---|---|
Intel AES-NI
(семейства процессоров Xeon и Core) |
Все | Все | Все | Все | Все |
Фрискейл
Криптографический ускоритель и модуль обеспечения безопасности (CAAM) |
Все | Все | Все | Все | |
ТРЦ Freescale Coldfire
(NXP MCF547X и MCF548X) |
Все | ||||
Freescale Kinetis MMCAU
K50, K60, K70 и K80 (ядро ARM Cortex-M4) |
Все | Все | Все | Все | |
СТМикроэлектроника СТМ32
Серия F1, F2, F4, L1, W (ARM Cortex — M3/M4) |
Все | Все | |||
Кавиум НИТРОКС
(процессоры III/V PX) |
Все | ||||
Микрочип PIC32 MX/MZ
(встроенное подключение) |
Все | Все | Все | ||
Техасские инструменты TM4C1294
(ARM Cortex-M4F) |
Все | Все | Все | Все | Все |
Nordic NRF51. Архивировано 19 июня 2018 г. в Wayback Machine.
(Семейство SoC Series, 32-битное процессорное ядро ARM Cortex M0) |
128-битный | ||||
ARMv8 | Все | Все | Все | ||
Технология Intel QuickAssist | Все | Все | |||
Freescale NXP LTC | Все | Все | Все | Все | Все |
Xilinx Zynq UltraScale+ | 256-битный | ||||
Ренесас RX65N (R5F565NEHDFB) | Все | Все | |||
Ренесас RX72N (RTK5RX72N0C00000BJ) | Все | Все | |||
Микропроцессор Renesas RX (R5F571MLDDFC) | Все | Все | |||
Ренесас Синергия ДК-С7Г2 | 128-битный |
- «Все» обозначает поддерживаемые размеры блоков 128, 192 и 256 бит.
Устройство | DES-CBC | DES-ECB | 3DES-CBC |
---|---|---|---|
ТРЦ Freescale Coldfire
(NXP MCF547X и MCF548X) |
64 бит | 192 бит | |
Freescale Kinetis MMCAU
K50, K60, K70 и K80 (ядро ARM Cortex-M4) |
64 бит | 192 бит | |
СТМикроэлектроника СТМ32
Серия F1, F2, F4, L1, W (ARM Cortex — M3/M4) |
64 бит | 64 бит (шифрование) | 192 бит |
Кавиум НИТРОКС
(процессоры III/V PX) |
192 бит | ||
Микрочип PIC32 MX/MZ
(встроенное подключение) |
64 бит | 192 бит | |
Техасские инструменты TM4C1294
(ARM Cortex-M4F) |
64 бит | 192 бит |
Устройство | RC4 | ЧаЧа20 |
---|---|---|
AVX1/AVX2
(Intel и AMD x86) |
Поддерживается | |
Кавиум НИТРОКС
(процессоры III/V PX) |
2048 бит макс. |
Устройство | MD5 | SHA1 | SHA2 | ША-256 | ША-384 | ША-512 |
---|---|---|---|---|---|---|
AVX1/AVX2
(Intel и AMD x86) |
Поддерживается | Поддерживается | Поддерживается | |||
Freescale Kinetis MMCAU
K50, K60, K70 и K80 (ядро ARM Cortex-M4) |
Поддерживается | Поддерживается | Поддерживается | |||
СТМикроэлектроника СТМ32
Серия F1, F2, F4, L1, W (ARM Cortex — M3/M4) |
Поддерживается | Поддерживается | ||||
Микрочип PIC32 MX/MZ
(встроенное подключение) |
Поддерживается | Поддерживается | Поддерживается | |||
ARMv8 | Поддерживается | |||||
Технология Intel QuickAssist | Поддерживается | Поддерживается | Поддерживается | |||
Freescale NXP LTC | Поддерживается | Поддерживается | ||||
Xilinx Zynq UltraScale+ | Поддерживается | |||||
Ренесас Синергия ДК-С7Г2 | Поддерживается | Поддерживается | ||||
Ренесас RX65N (R5F565NEHDFB) | Поддерживается | Поддерживается | ||||
Ренесас RX72N (RTK5RX72N0C00000BJ) | Поддерживается | Поддерживается | Поддерживается | |||
Микропроцессор Renesas RX (R5F571MLDDFC) | Поддерживается | Поддерживается | Поддерживается |
Устройство | ЮАР | И Т. Д | ECC-И | X25519 | Эд25519 |
---|---|---|---|---|---|
Кавиум НИТРОКС
(процессоры III/V PX) |
512–4096 бит | НИСТ Прайм
192, 224, 256, 384, 521 |
|||
Микрочип / Атмел
ATECC508A (совместим с любым MPU или MCU, включая микроконтроллеры Atmel SMART и AVR) |
256 бит
(НИСТ-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 | ША-3 | Поли1305 |
---|---|---|---|---|---|---|
AVX1/AVX2
(Intel и AMD x86) |
Поддерживается | |||||
Кавиум НИТРОКС
(процессоры III/V PX) |
Поддерживается | Поддерживается | Поддерживается | Поддерживается | ||
Микрочип PIC32 MX/MZ
(встроенное подключение) |
Поддерживается | Поддерживается | Поддерживается | |||
Технология Intel QuickAssist | Поддерживается | Поддерживается | ||||
Ренесас RX65N (R5F565NEHDFB) | Поддерживается | Поддерживается | ||||
Ренесас RX72N (RTK5RX72N0C00000BJ) | ||||||
Микропроцессор Renesas RX (R5F571MLDDFC) | Поддерживается | Поддерживается | ||||
Ренесас Синергия ДК-С7Г2 | Поддерживается |
Устройство | ГСЧ |
---|---|
СТМикроэлектроника СТМ32
Серия F1, F2, F4, L1, W (ARM Cortex — M3/M4) |
Поддерживается |
Кавиум НИТРОКС
(процессоры III/V PX) |
Поддерживается |
Nordic NRF51. Архивировано 19 июня 2018 г. в Wayback Machine.
(Семейство SoC Series, 32-битное процессорное ядро ARM Cortex M0) |
Поддерживается |
Сертификаты
[ редактировать ]wolfSSL поддерживает следующие сертификаты:
- Федеральные стандарты обработки информации ( FIPS 140 )
- ФИПС 140-2 и ФИПС 140-3 [ 17 ]
- Модуль wolfCrypt FIPS: 3.6.0 ( сертификат NIST № 2425 ) — исторический
- Модуль wolfCrypt FIPS: 4.0 ( сертификат NIST № 3389 ) — исторический
- Модуль wolfCrypt FIPS: v5.2.1 ( сертификат NIST № 4718 ) — активный
- ФИПС 140-2 и ФИПС 140-3 [ 17 ]
- Радиотехническая комиссия по аэронавтике (RTCA)
Лицензирование
[ редактировать ]WolfSSL имеет двойную лицензию:
- Лицензия GPL-2.0 или более поздней версии . Это хорошо для проектов и оценок с открытым исходным кодом GPL.
- Лицензия распространяется по коммерческой лицензии, отличной от GPL. Он поставляется с дополнительными пакетами поддержки и обслуживания и стоит 6000 долларов США за продукт или артикул по состоянию на 2022 год.
См. также
[ редактировать ]- Безопасность транспортного уровня
- Сравнение реализаций TLS
- Сравнение криптографических библиотек
- ГнуTLS
- Службы сетевой безопасности
- OpenSSL
Ссылки
[ редактировать ]- ^ «Журнал изменений wolfSSL» .
- ^ «Выпуск 5.7.2» . 8 июля 2024 г. Проверено 16 июля 2024 г.
- ^ «ЛИЦЕНЗИРОВАНИЕ» . Гитхаб .
- ^ Jump up to: а б wolfSSL – Продукты для встраиваемых коммуникаций
- ^ «Что нужно знать о протоколе TLS 1.3 и библиотеках SSL/TLS wolfSSL» . www.allaboutcircuits.com . Проверено 28 декабря 2018 г.
- ^ «Встроенная библиотека wolfSSL SSL/TLS | Продукты wolfSSL» . Проверено 31 января 2019 г.
- ^ OpenSSL: Источник, Лицензия
- ^ wolfSSL - Лицензия
- ^ «MySQL, построение MySQL с поддержкой безопасных соединений» . Архивировано из оригинала 6 июля 2017 г. Проверено 12 июня 2016 г.
- ^ Дэниел Стенберг, основатель и главный архитектор cURL, присоединяется к wolfSSL.
- ^ wolfSSL – Документы | Руководство по CyaSSL – Глава 4 (Функции)
- ^ «WolfSSL 3.6.6 теперь доступен» .
- ^ wolfSSL – Документы | Руководство wolfSSL – Глава 10 (Справочник по использованию wolfCrypt)
- ^ Kerberos: протокол сетевой аутентификации
- ^ Jump up to: а б NTRU CryptoLabs. Архивировано 2 февраля 2013 г. на archive.today.
- ^ wolfSSL – wolfSSL с Intel® SGX
- ^ WOLFCRYPT FIPS 140-2 и FIPS 140-3
- ^ wolfSSL Поддержка DO-178C DAL A