wolfSSL


















































wolfSSL
開發者
Todd Ouska
初始版本
2006年2月19日 (2006-02-19)[1]
穩定版本
穩定版本
3.13.0(2017年12月21日,​10個月前​(2017-12-21[2][±]
開發狀態
開發中
编程语言
C語言
操作系统
多平台
类型
安全性加密函式庫
许可协议
GNU通用公共许可证或商业分销许可证
網站
www.wolfssl.com

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


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






目录






  • 1 平台


  • 2 版本历史


  • 3 协议


  • 4 算法


    • 4.1 wolfCrypt


    • 4.2 NTRU




  • 5 软件防护扩展(SGX)


  • 6 硬件加速平台支持


  • 7 许可


  • 8 其他


  • 9 参考文献


  • 10 外部链接


  • 11 註釋





平台


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)


















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]



其他




  • 传输层安全性协议

  • Comparison of TLS implementations

  • Comparison of cryptography libraries

  • GnuTLS

  • 网络安全服务

  • OpenSSL

  • MatrixSSL



参考文献





  1. ^ wolfSSL ChangeLog. 


  2. ^ wolfSSL ChangeLog. 2017-12-21 [2017-12-21]. 


  3. ^ OpenSSL: Source, License


  4. ^ wolfSSL - License


  5. ^ 引用错误:没有为名为compatibility的参考文献提供内容


  6. ^ MySQL, Building MySQL with Support for Secure Connections


  7. ^ wolfSSL User Manual | Chapter 4: Features | Documentation. wolfSSL. [2018-06-18] (美国英语). 


  8. ^
    "wolfSSL 3.6.6 is Now Available".



  9. ^ wolfSSL - Docs | wolfSSL Manual - Chapter 10 (wolfCrypt Usage Reference)


  10. ^ Kerberos: The Network Authentication Protocol


  11. ^ 11.011.1 NTRU CryptoLabs Archive.is的存檔,存档日期2013-02-02


  12. ^ Intel SGX


  13. ^ GNU License




外部链接



  • wolfSSL/CyaSSL Homepage

  • wolfSSL Now With ChaCha20 and Poly1305


Template:Cryptographic software
Template:SSL/TLS



註釋







Comments

Popular posts from this blog

Information security

Volkswagen Group MQB platform

刘萌萌