wolfSSL
開發者Todd Ouska
首次发布2006年2月19日 (2006-02-19)[1]
当前版本
  • 3.9.6 (2016年6月14日)[2]
  • 3.15.3 (2018年6月22日)[3][4]
  • 4.1.0 (2019年7月24日;穩定版本)[5][6]
  • 3.9.10 (2016年10月27日)[7]
  • 3.10.0 (2016年12月23日)[8]
  • 3.10.2 (2017年2月17日)[9]
  • 3.11.0 (2017年5月4日)[10]
  • 3.12.0 (2017年8月7日)[11]
  • 3.12.2 (2017年10月24日)[12]
  • 3.13.0 (2017年12月21日)[13]
  • 3.14.0 (2018年3月2日)[14]
  • 3.15.0 (2018年6月5日)[15]
  • 3.15.5 (2018年11月9日)[16]
  • 3.15.7 (2018年12月26日)[17]
  • 4.0.0 (2019年3月21日)[18]
  • 4.2.0 (2019年10月23日)[19]
  • 4.3.0 (2019年12月21日)[20]
  • 4.4.0 (2020年4月22日)[21]
  • 4.5.0 (2020年8月20日)[22]
  • 4.6.0 (2020年12月23日)[23]
  • 4.7.0 (2021年2月15日)[24]
  • 5.0.0 (2021年11月1日;穩定版本)[25]
  • 5.1.0 (2021年12月27日;穩定版本)[26]
  • 5.1.1 (2022年1月3日;穩定版本)[27]
  • 5.2.0 (2022年2月21日;穩定版本)[28]
  • 5.3.0 (2022年5月3日;穩定版本)[29]
  • 5.4.0 (2022年7月11日;穩定版本)[30]
  • 5.5.0 (2022年8月30日;穩定版本)[31]
  • 5.5.1 (2022年9月28日;穩定版本)[32]
  • 4.8.0 (2021年7月12日)[33]
  • 4.8.1 (2021年7月23日)[34]
  • 5.5.2 (2022年10月28日)[35]
  • 5.5.3 (2022年11月3日)[36]
  • 5.5.4 (2022年12月21日)[37]
  • 5.6.0 (2023年3月24日)[38]
  • 5.6.2 (2023年6月9日)[39]
  • 5.6.3 (2023年6月16日)[40]
  • 5.2.1 (2023年8月28日;穩定版本)[41]
  • 5.6.4 (2023年10月30日;穩定版本)[42]
  • 5.6.6 (2023年12月19日;穩定版本)[43]
編輯維基數據鏈接
源代码库 編輯維基數據鏈接
编程语言C語言
操作系统多平台
类型安全性加密函式庫
许可协议GNU通用公共许可证或商业分销许可证
网站www.wolfssl.com

wolfSSL (原名 CyaSSLyet another SSL),是一个提供传输层安全协议(SSL/TLS)功能的软件库,主要针对嵌入式系系统发展。以开放原始码及商用许可两种方式释出,提供SSL/TLS功能(SSL 3.0、TLS 1.0、TLS 1.1、TLS 1.2、TLS 1.3以及DTLS 1.0、DTLS 1.2),以C语言写成。提供了与OpenSSL兼容的API界面,让原有使用OpenSSL的软件可以容易的移植过來。

wolfSSL的早期版本, yaSSL,基于C++,为嵌入式环境和资源限制的实时操作系统提供SSL功能库。

平台

wolfSSL 现在支持 Win32/64, Linux, macOS, Solaris, ThreadX, VxWorks, FreeBSD, NetBSD, OpenBSD, embedded Linux, WinCE, Haiku, OpenWrt, 苹果iPhone, 安卓Android, Nintendo WiiGamecube系统。通过 DevKitPro 的支持, QNX, MontaVista, Tron variants, NonStop, OpenCL, Micrium's MicroC/OS-II, FreeRTOS, SafeRTOS, Freescale MQX, Nucleus, TinyOS, TI-RTOS, HP-UX, uTasker, 和 embOS.

版本历史

yaSSL, 或 yet another SSL, 始建于2004. OpenSSL 当时可用, 并且根据OpenSSL许可证SSLeay许可证获得双重许可。[44] 然而,yaSSL是在商业和GPL许可下开发的。[45] yaSSL提供了更现代的API和商业风格的开发人员支持,并含有OpenSSL兼容层。[46] wolfSSL / CyaSSL / yaSSL的第一个主要用户是MySQL.[47] 通过捆绑MySQL,yaSSL已经实现了数百万的极高分发量。

协议

主条目:傳輸層安全性協定

wolfSSL 轻量级SSL库实现以下协议:[48]

协议说明:

算法

wolfSSL 使用以下加密库:

wolfCrypt

默认情况下,wolfSSL使用wolfCrypt提供的加密服务。[50] 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, BLAKE2, RIPEMD-160, Poly1305, 随机数生成,大整数支持和基本16/64编码/解码。还包含一个来自欧盟eSTREAM项目的公共领域软件流密码(public domain software)的实验密码,Rabbit。 Rabbit对于那些在高性能,高需求环境中对流媒体进行加密的潜在用户非常有用。

wolfCrypt 还支持最近的 Curve25519 和 Ed25519 算法。

wolfCrypt 充当几个流行软件包和库的后端加密实现,包括MIT Kerberos[51](可使用构建选项启用)。

NTRU

CyaSSL+ 包含 NTRU[52] 公钥加密。在CyaSSL + 中增加NTRU是yaSSL和Security Innovation之间合作的结果。[52] NTRU在移动电话和嵌入式环境中运行良好,这是因为与其他公钥系统相比,提供相同安全性所需的位数大小减少了。另外,还不知道它易受到量子攻击。CyaSSL + 中含有包括AES-256,RC4和HC-128在内的几种使用NTRU的密码套件。

软件防护扩展(SGX)

wolfSSL 支持使用英特尔SGX (软件防护扩展[53]). 英特尔SGX Intel SGX 允许更小的攻击表面积,并且已被证明为执行代码提供更高级别的安全性,而对性能没有显着的负面影响。

硬件加速平台支持

英特尔 AES-NI页面存档备份,存于互联网档案馆) (至强和酷睿处理器系列)
AES-GCM 128, 192, 256 bit
AES-CCM 128, 192, 256 bit
AES-CBC 128, 192, 256 bit
AES-ECB 128, 192, 256 bit
AES-CTR 128, 192, 256 bit
AVX1/AVX2 (英特尔 和 AMD x86)
SHA-256
SHA-384
SHA-512
RDRAND页面存档备份,存于互联网档案馆) (英特尔 64, IA-32 架构)
SHA-256
SHA-512
RDSEED页面存档备份,存于互联网档案馆) (英特尔 Broadwell, AMD Zen)
SHA-256
SHA-512
Freescale Coldfire SEC页面存档备份,存于互联网档案馆) (NXP MCF547X 和 MCF548X)
DES-CBC 64 bit
3DES-CBC 192 bit
AES-CBC 128, 192, 256 bit
Freescale Kinetis MMCAU页面存档备份,存于互联网档案馆) K50, K60, K70 和 K80 (ARM Cortex-M4 核)
MD5 128 bit 摘要
SHA1 160 bit 摘要
SHA256
DES-CBC 64 bit
3DES-CBC 192 bit
AES-CBC 128, 192, 256 bit
AES-CCM 128, 192, 256 bit
AES-GCM 128, 192, 256 bit
AES-ECB 128, 192, 256 bit
STMicroelectronics STM32 F1, F2, F4, L1, W 系列 (ARM Cortex - M3/M4)
RNG
DES-CBC 64 bit
DES-ECB 64 bit 加密
3DES-CBC 192 bit
MD5 128 bit
SHA1 160 bit
AES-CBC 128, 192, 256 bit
AES-CTR 128, 192, 256 bit
CubeMX页面存档备份,存于互联网档案馆) and Std Per Lib页面存档备份,存于互联网档案馆
Cavium NITROX页面存档备份,存于互联网档案馆) (III/V PX 处理器)
RNG
AES-CBC 128, 192, 256 bit
3DES-CBC 192 bit
RC4 2048 bit 上限
HMAC MD5, SHA1, SHA256, SHA3
RSA 512 - 4096 bit
ECC NIST Prime 192, 224, 256, 384 and 521
Microchip PIC32 MX/MZ页面存档备份,存于互联网档案馆) (嵌入式连接)
MD5 128 bit 摘要
SHA1 160 bit 摘要
SHA256
HMAC MD5, SHA1, SHA256
DES-CBC 64 bit
3DES-CBC 192 bit
AES-CBC 128, 192, 256 bit
AES-CTR 128, 192, 256 bit
AES-GCM 128, 192, 256 bit
德州仪器 TM4C1294页面存档备份,存于互联网档案馆) (ARM Cortex-M4F)
DES-CBC 64 bit
3DES-CBC 192 bit
AES-CCM 128, 192, 256 bit
AES-GCM 128, 192, 256 bit
AES-ECB 128, 192, 256 bit
AES-CTR 128, 192, 256 bit
AES-CBC 128, 192, 256 bit
Nordic NRF51 (Series SoC family, 32-bit ARM Cortex M0 核心处理器)
AES-ECB 128 bit
RNG
Microchip页面存档备份,存于互联网档案馆)/Atmel页面存档备份,存于互联网档案馆) ATECC508A (兼容于MPU or MCU)
ECC 256 bit (NIST-P256)
ARMv8页面存档备份,存于互联网档案馆
AES-CBC 128, 192, 256 bit
AES-CTR 128, 192, 256 bit
AES-GCM 128, 192, 256 bit
SHA256
英特尔QuickAssist技术页面存档备份,存于互联网档案馆
RSA 512 - 4096 bit
SHA1 160 bit 摘要
SHA2 224, 256, 384 和 512 bit
AES-CBC 128, 192, 256 bit
AES-GCM 128, 192, 256 bit
ECC 任意位数
HMAC SHA1, SHA2
MD5
Freescale NXP LTC页面存档备份,存于互联网档案馆
Curve25519 256 bit
Ed25519 256 bit
AES-CCM 128, 192, 256 bit
AES-ECB 128, 192, 256 bit
AES-CBC 128, 192, 256 bit
AES-CTR 128, 192, 256 bit
AES-GCM 128, 192, 256 bit
SHA1 160 bit 摘要
SHA256
ECC 128, 256 bit
ECC-DHE 128, 256 bit
RSA 512 - 4096 bit

许可

wolfSSL 开放源代码, 根据GNU通用公共许可证GPLv2获得许可.[54]

其他

参考文献

  1. ^ wolfSSL ChangeLog. [2016-07-15]. (原始内容存档于2016-03-16). 
  2. ^ https://www.wolfssl.com/wolfSSL/Docs-wolfssl-changelog.html.
  3. ^ https://www.wolfssl.com/wolfssl-3-15-3-now-available/; 检索日期: 2018年8月11日.
  4. ^ Release 3.15.3. 2018年6月22日 [2020年3月21日]. 
  5. ^ https://www.wolfssl.com/wolfssl-4-1-0-now-available/; 检索日期: 2019年9月24日.
  6. ^ Release 4.1.0. 2019年7月24日 [2020年3月21日]. 
  7. ^ Release 3.9.10. 2016年10月27日 [2020年3月21日]. 
  8. ^ Release 3.10.0. 2016年12月23日 [2020年3月21日]. 
  9. ^ Release 3.10.2. 2017年2月17日 [2020年3月21日]. 
  10. ^ Release 3.11.0. 2017年5月4日 [2020年3月21日]. 
  11. ^ Release 3.12.0. 2017年8月7日 [2020年3月21日]. 
  12. ^ Release 3.12.2. 2017年10月24日 [2020年3月21日]. 
  13. ^ Release 3.13.0. 2017年12月21日 [2020年3月21日]. 
  14. ^ Release 3.14.0. 2018年3月2日 [2020年3月21日]. 
  15. ^ Release 3.15.0. 2018年6月5日 [2020年3月21日]. 
  16. ^ Release 3.15.5. 2018年11月9日 [2020年3月21日]. 
  17. ^ Release 3.15.7. 2018年12月26日 [2020年3月21日]. 
  18. ^ Release 4.0.0. 2019年3月21日 [2020年3月21日]. 
  19. ^ Release 4.2.0. 2019年10月23日 [2020年3月21日]. 
  20. ^ Release 4.3.0. 2019年12月21日 [2020年3月21日]. 
  21. ^ Release 4.4.0. 2020年4月22日 [2020年4月23日]. 
  22. ^ Release 4.5.0. 2020年8月20日 [2020年9月16日]. 
  23. ^ Release 4.6.0. 2020年12月23日 [2021年1月19日]. 
  24. ^ Release 4.7.0. 2021年2月15日 [2021年2月19日]. 
  25. ^ wolfSSL Release 5.0.0 (Nov 01, 2021). 2021年11月1日 [2021年12月8日]. 
  26. ^ wolfSSL Release 5.1.0 (Dec 27, 2021). 2021年12月27日. 
  27. ^ wolfSSL Release 5.1.1 (Jan 3rd, 2022). 2022年1月3日 [2022年1月28日]. 
  28. ^ https://github.com/wolfSSL/wolfssl/releases/tag/v5.2.0-stable; 出版日期: 2022年2月21日; 检索日期: 2022年3月5日.
  29. ^ https://github.com/wolfSSL/wolfssl/releases/tag/v5.3.0-stable; 出版日期: 2022年5月3日; 检索日期: 2022年5月5日.
  30. ^ https://github.com/wolfSSL/wolfssl/releases/tag/v5.4.0-stable; 出版日期: 2022年7月11日; 检索日期: 2022年7月13日.
  31. ^ https://github.com/wolfSSL/wolfssl/releases/tag/v5.5.0-stable; 出版日期: 2022年8月30日; 检索日期: 2022年9月13日.
  32. ^ https://github.com/wolfSSL/wolfssl/releases/tag/v5.5.1-stable.
  33. ^ Release 4.8.0. 2021年7月12日 [2022年10月24日]. 
  34. ^ Release 4.8.1. 2021年7月23日 [2022年10月24日]. 
  35. ^ Release 5.5.2. 2022年10月28日 [2022年11月9日]. 
  36. ^ Release 5.5.3. 2022年11月3日 [2022年11月9日]. 
  37. ^ Release 5.5.4. 2022年12月21日 [2023年1月8日]. 
  38. ^ Release 5.6.0. 2023年3月24日 [2023年4月3日]. 
  39. ^ Release 5.6.2. 2023年6月9日 [2023年6月30日]. 
  40. ^ wolfssl/ChangeLog.md at master · wolfSSL/wolfssl · GitHub. [2023年7月26日]. 
  41. ^ Release v5.2.1-stable. 2023年8月28日. 
  42. ^ Release 5.6.4. 2023年10月30日 [2023年11月19日]. 
  43. ^ Release 5.6.6. 2023年12月19日 [2023年12月20日]. 
  44. ^ OpenSSL: Source, License. [2018-06-18]. (原始内容存档于2019-01-18). 
  45. ^ wolfSSL - License. [2018-06-18]. (原始内容存档于2017-07-12). 
  46. ^ wolfSSL – Embedded Communications Products
  47. ^ MySQL, Building MySQL with Support for Secure Connections. [2018-06-18]. (原始内容存档于2017-07-06). 
  48. ^ wolfSSL User Manual | Chapter 4: Features | Documentation. wolfSSL. [2018-06-18]. (原始内容存档于2015-05-29) (美国英语). 
  49. ^ "wolfSSL 3.6.6 is Now Available"页面存档备份,存于互联网档案馆).
  50. ^ wolfSSL - Docs | wolfSSL Manual - Chapter 10 (wolfCrypt Usage Reference). [2018-06-18]. (原始内容存档于2017-07-03). 
  51. ^ Kerberos: The Network Authentication Protocol. [2018-06-18]. (原始内容存档于2019-08-05). 
  52. ^ 52.0 52.1 NTRU CryptoLabs. [2018-06-18]. (原始内容存档于2013-02-02). 
  53. ^ wolfSSL with Intel® SGX - wolfSSL. 2017-01-17 [2022-08-30]. (原始内容存档于2019-01-13) (美国英语). 
  54. ^ GNU License. [2018-06-18]. (原始内容存档于2009-07-16). 

外部链接

註釋