wolfSSL

wolfSSL
wolfSSL
개발자토드 오스카
초기 릴리즈2006년 2월 19일 (2006-02-19)[1]
안정된 릴리스
5[2].4.0 / 2022년 7월 11일
저장소github.com/wolfssl/wolfssl
기입처C
운영 체제멀티플랫폼
유형암호화 도서관
면허증.GPL-2.0 이후 또는 독자[3] 사양
웹 사이트www.wolfssl.com

wolfSSL은 임베디드 시스템 개발자가 사용하는 소형 휴대용 임베디드 SSL/TLS 라이브러리입니다.C 프로그래밍 언어로 기술된 TLS(SSL 3.0, TLS 1.0, 1.1, 1.2, 1.3 및 DTLS 1.0, 1.2 및 1.3)의 오픈소스 실장입니다.여기에는 SSL/TLS 클라이언트 라이브러리와 SSL/TLS 서버 구현 및 SSL 및 TLS의해 정의된 API를 포함한 여러 API가 지원됩니다.wolfSSL에는 가장 일반적으로 사용되는 OpenSSL [4][5]기능을 가진 OpenSSL 호환성 인터페이스도 포함되어 있습니다.

wolfSSL의 전신인 yaSSL은 리소스가 제한된 임베디드 환경 및 실시간 운영 체제용 C++ 기반 SSL 라이브러리입니다.

플랫폼

wolfSSL은 현재 Win32/64, Linux, macOS, Solaris, Threadx, VxWorks, FreeBSD, NetBSD, OpenBSD, 임베디드 Linux, Yocto Project, OpenEmbedded, WinCE, Haiku, OpenWrt, iPhone, Wii, Wii에서 사용할 수 있습니다.스케일 MQX, Nucleus, TinyOS, TI-RTOS, HP-UX, uTasker, uT-커널, embOS, INtime, mbed, RIOT, CMSIS-RTOS, FROTSED, Green Hills Integrity, Keil RTX, PETAPPS, PEPATCPS, PETPS, PETPS, PETPS, PETPS, PETPSOS.[6]

역사

yaSSL 또는 다른 SSL의 기원은 2004년으로 거슬러 올라갑니다.당시 OpenSSL을 사용할 수 있었고 OpenSSL 라이선스와 SSLeay [7]라이선스로 이중 라이선스를 받았습니다.yaSSL은 상용 라이선스와 GPL로 [8]개발되어 이중 라이선스를 받았습니다.yaSSL은 보다 현대적인 API와 상용 스타일의 개발자 지원을 제공하며 OpenSSL 호환성 [4]레이어를 갖추고 있습니다.wolfSSL/CyaSSL/[9]yaSSL의 첫 번째 주요 사용자는 MySQL이었습니다.yaSSL은 MySQL과의 번들을 통해 수백만 개의 매우 높은 배포 볼륨을 달성했습니다.

2019년 2월 cURL을 만든 다니엘 스텐버그가 wolfSSL 프로젝트에 [10]참여했습니다.

프로토콜

wolfSSL Lightweight SSL 라이브러리는 다음 프로토콜을 [11]구현합니다.

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

프로토콜 주의:

  • SSL 2.0 – SSL 2.0은 RFC 6176에 의해 2011년에 폐지(금지)되었습니다.wolfSSL은 지원하지 않습니다.
  • SSL 3.0 – SSL 3.0은 2015년에 RFC 7568에 의해 폐지(금지)되었습니다.POODLE 공격에 대한 응답으로 SSL 3.0은 wolfSSL 3.6.6 이후 디폴트로 디세블로 되어 있지만 컴파일 타임옵션을 사용하여 [12]이노블로 할 수 있습니다.

알고리즘

wolfSSL은 다음과 같은 암호화 라이브러리를 사용합니다.

울프크립트

기본적으로 wolfSSL은 wolfCrypt가 [13]제공하는 암호화 서비스를 사용합니다.wolfCrypt는 RSA, ECC, DSS, Diffie를 제공합니다.Hellman, EDH, NTRU, DES, 트리플 DES, AES(CBC, CTR, CCM, GCM), Camelia, IDEA, ARC4, HC-128, ChaCha20, MD2, MD4, MD5, SHA-1, SHA-2, RIPE SHA-2, SHA 블레이크EU의 eSTREAM 프로젝트의 퍼블릭 도메인 소프트웨어 스트림 암호인 Rabbit이라는 실험 암호도 포함되어 있습니다.Rabbit은 고성능으로 수요가 많은 환경에서 스트리밍 미디어를 암호화하는 사용자에게 유용할 수 있습니다.

wolf Crypt는 최신 Curve25519Ed25519 알고리즘도 지원합니다.

wolfCrypt는 MIT Kerberos[14](빌드옵션을 사용하여 활성화할 수 있음)를 포함한 몇 가지 일반적인 소프트웨어 패키지 및 라이브러리의 백엔드 암호 구현으로 기능합니다.

NTRU

CyaSSL+에는 NTRU 공용 키 암호화가 포함되어[15] 있습니다.NTRU를 CyaSSL+에 추가한 것은 yaSSL과 보안 [15]혁신의 파트너십에 의한 것입니다.NTRU는 다른 공개 키 시스템과 동일한 보안을 제공하기 위해 필요한 비트 크기를 줄였기 때문에 모바일 및 임베디드 환경에서 잘 작동합니다.게다가 양자 공격에 취약한 것으로 알려져 있지 않습니다.NTRU를 사용하는 암호 스위트는 AES-256, RC4, HC-128 등 CyaSSL+에서 사용할 수 있습니다.

SGX

wolfSSL은 Intel SGX(소프트웨어 가드 확장)[16] 사용을 지원합니다.인텔 SGX는 공격 표면적을 작게 할 수 있어 퍼포먼스에 큰 악영향을 주지 않고 코드 실행에 높은 수준의 보안을 제공하는 것으로 나타났습니다.

지원되는 하드웨어 액셀러레이션 플랫폼

지원되는 신뢰할 수 있는 요소

현재 wolfSSL에는 지원되는 신뢰할 수 있는 요소로 다음이 있습니다.

  • 안전.
  • ATECC508a

하드웨어 암호화 지원

다음 표에 다양한 알고리즘에서 다양한 디바이스의 하드웨어 암호화를 사용할 수 있는 wolfSSL의 지원을 나타냅니다.

AES 암호 모드
장치 AES-GCM AES-CCM AES-CBC AES-ECB AES-CTR
인텔 AES-NI

(Xeon 및 Core 프로세서 패밀리)

모든. 모든. 모든. 모든. 모든.
프리스케일

암호화 액셀러레이터 및 어슈어런스 모듈(Cryptographic Accelerator and Assurance Module)

모든. 모든. 모든. 모든.
프리스케일 콜드파이어 SEC

(NXP MCF547X과 MCF548X)

모든.
Freescale Kinetis MMCAU

K50, K60, K70, K80(ARMCortex-M4 핵심).

모든. 모든. 모든. 모든.
STMicroelectronicsSTM32

F1, F2, F4L1, W시리즈(ARM피질-M3/M4).

모든. 모든.
Cavium NITROX

(III/V PX프로세서)

모든.
Microchip PIC32 MX/MZ

(임베디드 연결)

모든. 모든. 모든.
텍사스 인스트루먼트 TM4C1294

(ARMCortex-M4F)

모든. 모든. 모든. 모든. 모든.
노르딕 승객을 머신에 2018-06-19 NRF51Archived.

(시리즈 모바일 가족, 32비트 ARM피질 M0 프로세서 코어).

128-bit
ARMv8 모든. 모든. 모든.
인텔 QuickAssist 기술 모든. 모든.
프리스케일 NXP LTC 모든. 모든. 모든. 모든. 모든.
Xilinx Zynq UltraScale+ 256비트
르네사스 RX65N(R5F565NEHDFB) 모든. 모든.
르네사스 RX72N (RTK5RX72N0C00000)BJ) 모든. 모든.
르네사스 RX MPU(R5F571MLDFC) 모든. 모든.
르네사스 시너지 DK-S7G2 128비트

- "All"은 128, 192 및 256비트에서 지원되는 블록 크기를 나타냅니다.

DES/3DES 암호 모드
장치 DES-CBC DES-ECB 3DES-CBC
프리스케일 콜드파이어 SEC

(NXP MCF547X 및 MCF548X)

64비트 192비트
프리스케일 키네티스 MMCAU

K50, K60, K70 및 K80(ARM Cortex-M4 코어)

64비트 192비트
STM32

F1, F2, F4, L1, W 시리즈(ARM Cortex - M3/M4)

64비트 64비트(표준) 192비트
캐비움 니트로엑스

(II/V PX 프로세서)

192비트
마이크로칩 PIC32 MX/MZ

(임베디드 접속)

64비트 192비트
텍사스 인스트루먼트 TM4C1294

(ARM Cortex-M4F)

64비트 192비트
스트림 암호
장치 RC4 차차20
AVX1/AVX2

(인텔 및 AMD x86)

서포트되고 있다
캐비움 니트로엑스

(II/V PX 프로세서)

최대 2048비트
해시 알고리즘 지원
장치 MD5 SHA1 SHA2 SHA-256 SHA-384 SHA-512
AVX1/AVX2

(인텔 및 AMD x86)

서포트되고 있다 서포트되고 있다 서포트되고 있다
프리스케일 키네티스 MMCAU

K50, K60, K70 및 K80(ARM Cortex-M4 코어)

서포트되고 있다 서포트되고 있다 서포트되고 있다
STM32

F1, F2, F4, L1, W 시리즈(ARM Cortex - M3/M4)

서포트되고 있다 서포트되고 있다
마이크로칩 PIC32 MX/MZ

(임베디드 접속)

서포트되고 있다 서포트되고 있다 서포트되고 있다
ARMv8 서포트되고 있다
인텔 퀵어시스트 테크놀로지 서포트되고 있다 서포트되고 있다 서포트되고 있다
프리스케일 NXP LTC 서포트되고 있다 서포트되고 있다
Xilinx Zynq UltraScale+ 서포트되고 있다
르네사스 시너지 DK-S7G2 서포트되고 있다 서포트되고 있다
르네사스 RX65N(R5F565NEHDFB) 서포트되고 있다 서포트되고 있다
르네사스 RX72N (RTK5RX72N0C00000)BJ) 서포트되고 있다 서포트되고 있다 서포트되고 있다
르네사스 RX MPU(R5F571MLDFC) 서포트되고 있다 서포트되고 있다 서포트되고 있다
주요 작업: 생성 및 교환, 타원곡선 암호화
장치 RSA ECC ECC-DHE 곡선 25519 Ed25519
캐비움 니트로엑스

(II/V PX 프로세서)

512 ~ 4096 비트 NIST 프라임

192, 224, 256, 384, 521

마이크로칩/아트멜

ATECC508A(다음과 같은 MPU 또는 MCU와 호환)Atmel SMART 및 AVR MCU)

256 비트

(NIST-P256)

인텔 퀵어시스트 테크놀로지 512 ~ 4096 비트 128, 256 비트
프리스케일 NXP LTC 512 ~ 4096 비트 128, 256 비트 128, 256 비트 256 비트 256 비트
Xilinx Zynq UltraScale+ 2048 ~ 4096 비트
MAC 알고리즘
장치 HMAC-MD5 HMAC-SHA1 HMAC-SHA2 HMAC-SHA256 SHA-3 폴리1305
AVX1/AVX2

(인텔 및 AMD x86)

서포트되고 있다
캐비움 니트로엑스

(II/V PX 프로세서)

서포트되고 있다 서포트되고 있다 서포트되고 있다 서포트되고 있다
마이크로칩 PIC32 MX/MZ

(임베디드 접속)

서포트되고 있다 서포트되고 있다 서포트되고 있다
인텔 퀵어시스트 테크놀로지 서포트되고 있다 서포트되고 있다
르네사스 RX65N(R5F565NEHDFB) 서포트되고 있다 서포트되고 있다
르네사스 RX72N (RTK5RX72N0C00000)BJ)
르네사스 RX MPU(R5F571MLDFC) 서포트되고 있다 서포트되고 있다
르네사스 시너지 DK-S7G2 서포트되고 있다
난수생성
장치 RNG
STM32

F1, F2, F4, L1, W 시리즈(ARM Cortex - M3/M4)

서포트되고 있다
캐비움 니트로엑스

(II/V PX 프로세서)

서포트되고 있다
Nordic NRF51 웨이백 머신에서 2018-06-19 아카이브

(시리즈 SoC 패밀리, 32비트 ARM Cortex M0 프로세서 코어)

서포트되고 있다

라이선스

wolfSSL은 GPL-2.0 이후 [3]라이선스로 라이선스된 Free Software입니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "wolfSSL ChangeLog".
  2. ^ https://github.com/wolfSSL/wolfssl/releases/tag/v5.4.0-stable; 발행일: 2022년 7월 11일, 취득일: 2022년 7월 13일.
  3. ^ a b "LICENSING".
  4. ^ a b wolfSSL – 임베디드 커뮤니케이션 제품
  5. ^ "What You Need to Know About the TLS 1.3 Protocol and wolfSSL's SSL/TLS Libraries". www.allaboutcircuits.com. Retrieved 2018-12-28.
  6. ^ "wolfSSL Embedded SSL/TLS Library wolfSSL Products". Retrieved 2019-01-31.
  7. ^ OpenSSL: 소스, 라이선스
  8. ^ wolfSSL – 라이선스
  9. ^ "MySQL, Building MySQL with Support for Secure Connections". Archived from the original on 2017-07-06. Retrieved 2016-06-12.
  10. ^ cURL의 설립자이자 최고 설계자인 Daniel Stenberg가 wolfSSL에 참여
  11. ^ wolfSSL – Docs CyaSSL 매뉴얼– 4장 (기능)
  12. ^ "wolfSSL 3.6을 사용할 수 있게 되었습니다."
  13. ^ wolfSSL – Docs wolfSSL 매뉴얼– 10장 (wolfCrypt 사용 레퍼런스)
  14. ^ Kerberos:네트워크 인증 프로토콜
  15. ^ a b NTRU Crypto Labs 아카이브 완료 2013-02-02 오늘
  16. ^ wolfSSL – 인텔 ® SGX 탑재 wolfSSL

외부 링크