wolfSSL (原名 CyaSSL 或 yet 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 Wii 和 Gamecube系统。通过 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 还支持最近的 Curve25519 和 Ed25519 算法。
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)
- RDRAND (页面存档备份,存于互联网档案馆) (英特尔 64, IA-32 架构)
- RDSEED (页面存档备份,存于互联网档案馆) (英特尔 Broadwell, AMD Zen)
- 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 (页面存档备份,存于互联网档案馆) (嵌入式连接)
- 德州仪器 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 核心处理器)
- Microchip (页面存档备份,存于互联网档案馆)/Atmel (页面存档备份,存于互联网档案馆) ATECC508A (兼容于MPU or MCU)
- 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主题
参考文献
- ^ wolfSSL ChangeLog. [2016-07-15]. (原始内容存档于2016-03-16).
- ^ Release 5.7.0. 2024年3月21日 [2024年3月26日].
- ^ OpenSSL: Source, License. [2018-06-18]. (原始内容存档于2019-01-18).
- ^ wolfSSL - License. [2018-06-18]. (原始内容存档于2017-07-12).
- ^ wolfSSL – Embedded Communications Products
- ^ MySQL, Building MySQL with Support for Secure Connections. [2018-06-18]. (原始内容存档于2017-07-06).
- ^ wolfSSL User Manual | Chapter 4: Features | Documentation. wolfSSL. [2018-06-18]. (原始内容存档于2015-05-29) (美国英语).
- ^ "wolfSSL 3.6.6 is Now Available" (页面存档备份,存于互联网档案馆).
- ^ wolfSSL - Docs | wolfSSL Manual - Chapter 10 (wolfCrypt Usage Reference). [2018-06-18]. (原始内容存档于2017-07-03).
- ^ Kerberos: The Network Authentication Protocol. [2018-06-18]. (原始内容存档于2019-08-05).
- ^ 11.0 11.1 NTRU CryptoLabs. [2018-06-18]. (原始内容存档于2013-02-02).
- ^ wolfSSL with Intel® SGX - wolfSSL. 2017-01-17 [2022-08-30]. (原始内容存档于2019-01-13) (美国英语).
- ^ GNU License. [2018-06-18]. (原始内容存档于2009-07-16).
外部链接
- wolfSSL/CyaSSL Homepage
- wolfSSL Now With ChaCha20 and Poly1305 (页面存档备份,存于互联网档案馆)
註釋
加密軟體(英语:Encryption software) |
---|
| 電子郵件用戶端 | |
---|
| 安全通信(英语:Secure communication) | |
---|
| 磁盘加密(比较(英语: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) | |
---|
| 服務供應商 | - 自由网
- Tresorit(英语:Tresorit)
- Wuala(英语:Wuala)
|
---|
| 教学 | |
---|
| 相关主题 | |
---|
| - 分类
- 共享资源
|
|
|
---|
| 协议和技术 | |
---|
| 公钥基础设施 | |
---|
| 另见 | |
---|
| 历史 | - 美國的加密技術出口管制
- Server-Gated Cryptography(英语:Server-Gated Cryptography)(SGC)
|
---|
| 实现 | - 充气城堡(英语: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))
|
---|
| 实现 | |
---|
|
---|
|