wolfSSL - wolfSSL

редактировать
wolfSSL
Разработчик (и) Тодд Оуска
Первый выпуск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 ++ для встроенных сред и реальных время операционных систем с ограниченными ресурсами.

Содержание
  • 1 Платформы
  • 2 История
  • 3 Протоколы
  • 4 Алгоритмы
    • 4.1 wolfCrypt
    • 4.2 NTRU
  • 5 SGX
  • 6 Поддерживаемые платформы аппаратного ускорения
    • 6.1 Поддерживаемые доверенные элементы
    • 6.2 Поддержка аппаратного шифрования
  • 7 Лицензирование
  • 8 См. Также
  • 9 Ссылки
  • 10 Внешние ссылки
Платформы

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 реализует следующие протоколы:

  • 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, но его можно включить с помощью параметра времени компиляции.
Алгоритмы

wolfSSL использует следующие криптографические библиотеки:

wolfCrypt

По умолчанию 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 (где его можно включить с помощью параметра сборки).

NTRU

CyaSSL + включает NTRU шифрование с открытым ключом. Добавление NTRU в CyaSSL + стало результатом партнерства между yaSSL и Security Innovation. NTRU хорошо работает в мобильных и встроенных средах благодаря уменьшенному размеру бит, необходимому для обеспечения такой же безопасности, как и другие системы с открытым ключом. Кроме того, известно, что он не уязвим для квантовых атак. Несколько наборов шифров, использующих NTRU, доступны с CyaSSL +, включая AES-256, RC4 и HC-128.

SGX

wolfSSL поддерживает использование Intel SGX (Software Guard Extensions ). Intel SGX позволяет уменьшить площадь атаки и, как было показано, обеспечивает более высокий уровень безопасности для выполнения кода без значительного отрицательного воздействия на производительность.

Поддерживаемые платформы аппаратного ускорения

Поддерживаемые доверенные элементы

В настоящее время wolfSSL поддерживает следующие доверенные элементы:

  • STSAFE
  • ATECC508A

Поддержка аппаратного шифрования

В следующих таблицах перечислена поддержка wolfSSL для использования аппаратного шифрования различных устройств с различными алгоритмами.

AES режимы шифрования
УстройствоAES-GCMAES-CCMAES-CBCAES-ECBAES-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 / 3DES режимы шифрования
УстройствоDES-CBCDES-ECB3DES-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-разрядная
Потоковые шифры
УстройствоRC4ChaCha20
AVX1 / AVX 2

(Intel и AMD x86)

Поддерживается
Cavium NITROX

(процессоры III / V PX)

2048 бит макс.
Алгоритм хеширования поддержка
УстройствоMD5SHA1SHA2SHA-256SHA -384SHA-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 + Поддерживается
Ключевые операции: генерация и обмен, криптография с эллиптической кривой
УстройствоRSAECCECC-DHECurve25519Ed25519
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 бит
MAC алгоритмы
УстройствоHMAC-MD5HMAC-SHA1HMAC-SHA2HMAC-SHA256SHA-3Poly1305
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.

См. Также
  • Портал бесплатного программного обеспечения с открытым исходным кодом
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-21 13:14:12
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте