WolfSSL

wolfSSL
開發者Todd Ouska
首次发布2006年2月19日 (2006-02-19)[1]
当前版本
  • 5.7.0 (2024年3月21日;穩定版本)[2]
編輯維基數據鏈接
源代码库
  • github.com/wolfSSL/wolfssl
編輯維基數據鏈接
编程语言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许可证获得双重许可。[3] 然而,yaSSL是在商业和GPL许可下开发的。[4] yaSSL提供了更现代的API和商业风格的开发人员支持,并含有OpenSSL兼容层。[5] wolfSSL / CyaSSL / yaSSL的第一个主要用户是MySQL.[6] 通过捆绑MySQL,yaSSL已经实现了数百万的极高分发量。

协议

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

  • SSL 3.0、TLS 1.0、TLS 1.1、TLS 1.2、TLS 1.3
  • DTLS 1.0、DTLS 1.2

协议说明:

  • 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 之后的版本默认禁用,但仍可通过编译时选项启用。[8]

算法

wolfSSL 使用以下加密库:

wolfCrypt

默认情况下,wolfSSL使用wolfCrypt提供的加密服务。[9] 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 还支持最近的 Curve25519Ed25519 算法。

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

NTRU

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

软件防护扩展(SGX)

wolfSSL 支持使用英特尔SGX (软件防护扩展[12]). 英特尔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获得许可.[13]

其他

  • 自由软件主题
  • Cryptography主题

参考文献

  1. ^ wolfSSL ChangeLog. [2016-07-15]. (原始内容存档于2016-03-16). 
  2. ^ Release 5.7.0. 2024年3月21日 [2024年3月26日]. 
  3. ^ OpenSSL: Source, License. [2018-06-18]. (原始内容存档于2019-01-18). 
  4. ^ wolfSSL - License. [2018-06-18]. (原始内容存档于2017-07-12). 
  5. ^ wolfSSL – Embedded Communications Products
  6. ^ MySQL, Building MySQL with Support for Secure Connections. [2018-06-18]. (原始内容存档于2017-07-06). 
  7. ^ wolfSSL User Manual | Chapter 4: Features | Documentation. wolfSSL. [2018-06-18]. (原始内容存档于2015-05-29) (美国英语). 
  8. ^ "wolfSSL 3.6.6 is Now Available" (页面存档备份,存于互联网档案馆).
  9. ^ wolfSSL - Docs | wolfSSL Manual - Chapter 10 (wolfCrypt Usage Reference). [2018-06-18]. (原始内容存档于2017-07-03). 
  10. ^ Kerberos: The Network Authentication Protocol. [2018-06-18]. (原始内容存档于2019-08-05). 
  11. ^ 11.0 11.1 NTRU CryptoLabs. [2018-06-18]. (原始内容存档于2013-02-02). 
  12. ^ wolfSSL with Intel® SGX - wolfSSL. 2017-01-17 [2022-08-30]. (原始内容存档于2019-01-13) (美国英语). 
  13. ^ GNU License. [2018-06-18]. (原始内容存档于2009-07-16). 

外部链接

  • wolfSSL/CyaSSL Homepage
  • wolfSSL Now With ChaCha20 and Poly1305 (页面存档备份,存于互联网档案馆

註釋

加密軟體英语Encryption software
電子郵件用戶端
安全通信英语Secure communication
OTR
  • Adium
  • BitlBee英语BitlBee
  • Centericq英语Centericq
  • ChatSecure
  • climm英语climm
  • Jitsi
  • Kopete
  • MCabber英语MCabber
  • Profanity英语Profanity (instant messaging client)
SSH
TLS & SSL(比较)
VPN
ZRTP英语ZRTP
  • CSipSimple英语CSipSimple
  • Jitsi
  • Linphone
  • Jami
  • Zfone英语Zfone
P2P
DRA
磁盘加密(比较英语Comparison of disk encryption software)
  • BestCrypt英语BestCrypt
  • BitLocker
  • CrossCrypt英语CrossCrypt
  • Cryptoloop英语Cryptoloop
  • DiskCryptor英语DiskCryptor
  • dm-crypt
  • DriveSentry英语DriveSentry
  • E4M英语E4M
  • ECryptfs
  • FileVault
  • FreeOTFE英语FreeOTFE
  • GBDE英语GBDE
  • geli英语geli (software)
  • LUKS
  • PGPDisk英语PGPDisk
  • Private Disk英语Private Disk
  • Scramdisk英语Scramdisk
  • Sentry 2020英语Sentry 2020
  • TrueCrypt
    • 历史英语TrueCrypt version history
  • VeraCrypt
匿名软件
文件系统 (列表英语List of cryptographic file systems)
  • EncFS
  • EFS
  • ECryptfs
  • LUKS英语Linux Unified Key Setup
  • PEFS英语PEFS
  • Rubberhose英语Rubberhose (file system)
  • StegFS英语StegFS
  • Tahoe-LAFS英语Tahoe-LAFS
安全聚焦作業系統英语Security-focused operating system
  • Tails
服務供應商
  • 自由网
  • Tresorit英语Tresorit
  • Wuala英语Wuala
教学
  • CrypTool英语CrypTool
相关主题
  • 分类 分类
  • 共享资源页面 共享资源
协议和技术
公钥基础设施
另见
历史
实现
  • 充气城堡英语Bouncy Castle (cryptography)
  • Botan英语Botan (programming library)
  • cryptlib英语cryptlib
  • GnuTLS
  • JSSE英语Java Secure Socket Extension
  • LibreSSL
  • MatrixSSL
  • NSS
  • OpenSSL
  • mbed TLS
  • RSA BSAFE英语RSA BSAFE
  • SChannel英语Security Support Provider Interface
  • SSLeay
  • Stunnel
  • wolfSSL
公证
漏洞
理论
密码本
  • 受诫礼攻击英语Bar mitzvah attack
协议
  • BEAST英语BEAST (security_exploit)
  • BREACH英语BREACH (security exploit)
  • CRIME
  • DROWN英语DROWN attack
  • Logjam英语Logjam (computer security)
实现