wolfSSL
wolfSSL이 기사의 주요 기고자는 그 주제와 밀접한 관련이 있는 것으로 보인다. (2020년 11월) |
이 문서의 외부 링크 사용은 Wikipedia의 정책 또는 지침을 따르지 않을 수 있습니다.(2017년 7월 (이 및 ) |
개발자 | 토드 오스카 |
---|---|
초기 릴리즈 | 2006년 2월 19일 ([1] |
안정된 릴리스 | 5[2].4.0 / 2022년 7월 11일 |
저장소 | github |
기입처 | C |
운영 체제 | 멀티플랫폼 |
유형 | 암호화 도서관 |
면허증. | GPL-2.0 이후 또는 독자[3] 사양 |
웹 사이트 | www |
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는 최신 Curve25519 및 Ed25519 알고리즘도 지원합니다.
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-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-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 비트 |
장치 | 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입니다.
「 」를 참조해 주세요.
레퍼런스
- ^ "wolfSSL ChangeLog".
- ^ https://github.com/wolfSSL/wolfssl/releases/tag/v5.4.0-stable; 발행일: 2022년 7월 11일, 취득일: 2022년 7월 13일.
- ^ a b "LICENSING".
- ^ a b wolfSSL – 임베디드 커뮤니케이션 제품
- ^ "What You Need to Know About the TLS 1.3 Protocol and wolfSSL's SSL/TLS Libraries". www.allaboutcircuits.com. Retrieved 2018-12-28.
- ^ "wolfSSL Embedded SSL/TLS Library wolfSSL Products". Retrieved 2019-01-31.
- ^ OpenSSL: 소스, 라이선스
- ^ wolfSSL – 라이선스
- ^ "MySQL, Building MySQL with Support for Secure Connections". Archived from the original on 2017-07-06. Retrieved 2016-06-12.
- ^ cURL의 설립자이자 최고 설계자인 Daniel Stenberg가 wolfSSL에 참여
- ^ wolfSSL – Docs CyaSSL 매뉴얼– 4장 (기능)
- ^ "wolfSSL 3.6을 사용할 수 있게 되었습니다."
- ^ wolfSSL – Docs wolfSSL 매뉴얼– 10장 (wolfCrypt 사용 레퍼런스)
- ^ Kerberos:네트워크 인증 프로토콜
- ^ a b NTRU Crypto Labs 아카이브 완료 2013-02-02 오늘
- ^ wolfSSL – 인텔 ® SGX 탑재 wolfSSL