wolfSSL

維基百科,自由的百科全書
跳至導覽 跳至搜尋

wolfSSL
開發者Todd Ouska
首次發布2006年2月19日 (2006-02-19)[1]
當前版本
    Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
    原始碼庫
    • {{URL|example.com|可选的显示文本}}
    Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
    程式語言C語言
    引擎
      Module:EditAtWikidata第29行Lua錯誤:attempt to index field 'wikibase' (a nil value)
      作業系統多平台
      類型安全性加密函式庫
      許可協議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許可證獲得雙重許可。[2] 然而,yaSSL是在商業和GPL許可下開發的。[3] yaSSL提供了更現代的API和商業風格的開發人員支持,並含有OpenSSL兼容層。[4] wolfSSL / CyaSSL / yaSSL的第一個主要用戶是MySQL.[5] 通過捆綁MySQL,yaSSL已經實現了數百萬的極高分發量。

      協議[編輯]

      wolfSSL 輕量級SSL庫實現以下協議:[6]

      • 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 之後的版本默認禁用,但仍可通過編譯時選項啟用。[7]

      算法[編輯]

      wolfSSL 使用以下加密庫:

      wolfCrypt[編輯]

      默認情況下,wolfSSL使用wolfCrypt提供的加密服務。[8] 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[9](可使用構建選項啟用)。

      NTRU[編輯]

      CyaSSL+ 包含 NTRU[10] 公鑰加密。在CyaSSL + 中增加NTRU是yaSSL和Security Innovation之間合作的結果。[10] NTRU在行動電話和嵌入式環境中運行良好,這是因為與其他公鑰系統相比,提供相同安全性所需的位數大小減少了。另外,還不知道它易受到量子攻擊。CyaSSL + 中含有包括AES-256,RC4和HC-128在內的幾種使用NTRU的密碼套件。

      軟體防護擴展(SGX)[編輯]

      wolfSSL 支持使用英特爾SGX (軟體防護擴展[11]). 英特爾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獲得許可.[12]

      其他[編輯]

      參考文獻[編輯]

      1. ^ wolfSSL ChangeLog. [2016-07-15]. (原始內容存檔於2016-03-16). 
      2. ^ OpenSSL: Source, License. [2018-06-18]. (原始內容存檔於2019-01-18). 
      3. ^ wolfSSL - License. [2018-06-18]. (原始內容存檔於2017-07-12). 
      4. ^ wolfSSL – Embedded Communications Products
      5. ^ MySQL, Building MySQL with Support for Secure Connections. [2018-06-18]. (原始內容存檔於2017-07-06). 
      6. ^ wolfSSL User Manual | Chapter 4: Features | Documentation. wolfSSL. [2018-06-18]. (原始內容存檔於2015-05-29) (en-US). 
      7. ^ "wolfSSL 3.6.6 is Now Available"頁面存檔備份,存於網際網路檔案館).
      8. ^ wolfSSL - Docs | wolfSSL Manual - Chapter 10 (wolfCrypt Usage Reference). [2018-06-18]. (原始內容存檔於2017-07-03). 
      9. ^ Kerberos: The Network Authentication Protocol. [2018-06-18]. (原始內容存檔於2019-08-05). 
      10. ^ 10.0 10.1 NTRU CryptoLabs. [2018-06-18]. (原始內容存檔於2013-02-02). 
      11. ^ wolfSSL with Intel® SGX - wolfSSL. 2017-01-17 [2022-08-30]. (原始內容存檔於2019-01-13) (en-US). 
      12. ^ GNU License. [2018-06-18]. (原始內容存檔於2009-07-16). 

      外部連結[編輯]

      註釋[編輯]