WolfSSL
| 개발자 | Todd Ouska |
|---|---|
| 발표일 | 2006년 2월 19일[1] |
| 안정화 버전 | 5.9.2[2] |
| 저장소 | |
| 프로그래밍 언어 | C |
| 운영 체제 | 멀티 플랫폼 |
| 종류 | 보안 라이브러리 |
| 라이선스 | GNU GPLv2 또는 상용 라이선스[3][4] |
| 웹사이트 | wolfssl |
wolfSSL (이전 이름 CyaSSL)는 임베디드 시스템 개발자의 사용을 타겟으로 한 소형의 휴대성 좋은 내장 SSL / TLS 라이브러리이다. C 언어 로 작성된 TLS (SSL 3.0 TLS 1.0, 1.1, 1.2, 1.3, DTLS 1.0, 1.2)의 오픈 소스를 구현한다. SSL / TLS 클라이언트 라이브러리 및 서버 라이브러리를 포함, SSL 및 TLS에서 정의 된 다양한 API 외에 지원한다. 또한 OpenSSL에서 주로 사용되는 함수와 호환[5]의 인터페이스를 제공하고있다.
wolfSSL / CyaSSL의 전신 인 yaSSL는 임베디드 환경과 자원의 한정된 리얼 타임 OS를 위한 C ++ 로 작성된 SSL 라이브러리이다.
플랫폼
wolfSSL는 Win32 / 64, Linux, macOS, Solaris, ThreadX, VxWorks, FreeBSD, NetBSD, OpenBSD, 임베디드 Linux, Haiku, OpenWrt, iPhone, Android, Nintendo Wii 및 Gamecube는 DevKitPro 통하며 QNX, MontaVista, Tron variants, NonStop, OpenCL, Micrium의 MicroC / OS-II, FreeRTOS, SafeRTOS, 프리 스케일 MQX, Nucleus, TinyOS, TI-RTOS, HP-UX, uTasker 및 embOS에서 이용 가능하다.
역사
yaSSL의 시작은 2004년으로 거슬러 올라간다. 2004년 당시 OpenSSL 가 가능했고, 그 라이센스는 OpenSSL License 및 SSLeay license의 듀얼 라이센스[6]라는 것이 독특한 것이었다. yaSSL은 상용 라이선스와 GPL로 듀얼 라이센스에서 사용할 수 있는 OpenSSL의 대안으로 개발되었다[7] . yaSSL는 더 정교한 API 상용 개발의 지원, OpenSSL과의 완벽한 호환성을 제공했다[5]. wolfSSL/CyaSSL/yaSSL의 첫 시작은 MySQL[8]에서 이용되었다. 이 결과, yaSSL은 MySQL과의 번들링을 통해 수백만 단위의 매우 높은 보급을 실현했다.
프로토콜
자세한 내용은 Transport Layer Security를 참조
wolfSSL는 다음의 다양한 프로토콜을 실현하고있다 :[9]
· SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2, TLS 1.3
· DTLS 1.0, DTLS 1.2
프로토콜 Notes:
· SSL 2.0은 RFC 6176 에 의해 2011년 폐지되었다. WolfSSL은 이를 서포트하지 않는다.
· SSL 3.0은 RFC 7568 에 의해 2015년 폐지되었다. POODLE 공격에 대응하여, SSL 3.0은 wolfSSL 3.3.6 이후 기본적으로 비활성화되었으나, 컴파일 시간 옵션으로 사용될 수 있다.[10]
알고리즘
wolfSSL는 다음의 암호화 라이브러리를 사용하고있다 :
wolfCrypt
기본적으로 wolfSSL 표준에서는 wolfCrypt에서 제공되는 암호화 서비스를 사용한다.[11] wolfCrypt은 RSA, 타원 곡선 암호, 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 공용 도메인 스트림 암호 Rabbit 도 포함되어있다. Rabbit은 고성능, 높은 부하 환경에서의 암호화 스트리밍 미디어에 잠재적으로 유용성이 있다. wolfCrypt는 SSL의 일종을 위해 필요한 기능에 특화하는 한편, 최대한의 이식성을 얻을 수 있도록 배려되어있다.
wolfCrypt는 또한 Curve25519과 Ed25519을 지원한다.
wolfCrypt는 MIT Kerberos[12](빌드 옵션 사용)를 포함하여 몇 가지 소프트웨어 패키지와 라이브러리의 백엔드 암호화 구현으로 활약하고있다.
NTRU
CyaSSL +에는 NTRU[13] 공개 키 암호화가 포함되어 있다. CyaSSL +에의 NTRU의 추가는 yaSSL과 Security Innovation의 파트너십의 결과였다.[13] NTRU는 다른 공개 키 암호화와 같은 수준의 보안을 작은 비트 수로 제공하므로 모바일 및 임베디드 환경에서 잘 작동한다. 게다가 TRU 또는quantum attack에 대해서도 취약점이 알려져 있지 않다. TRU를 사용하하는 암호화 세트는 CyaSSL + 을 비롯하여 AES-256, RC4 또는 HC-128 등에서 사용 가능하다.
SGX
wolfSSL는 인텔 SGX (소프트웨어 보호 확장)[14]을 지원한다. 인텔 SGX는 공격 대상 영역을 줄이고 기존의 코드에서 눈에 띄는 성능 저하 없이 높은 수준의 안전성을 확보하고있다.
암호화 하드웨어 가속 지원
Intel AES-NI (Xeon 및 Core 프로세서 제품군)
| 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 (Intel 및 AMD x86)
| SHA-256 |
| SHA-384 |
| SHA-512 |
RDRAND (Intel 64 IA-32 아키텍처)
| SHA-256 |
| SHA-512 |
RDSEED (Intel Broadwell, AMD Zen)
| SHA-256 |
| SHA-512 |
Freescale Coldfire SEC 보관됨 2017-03-16 - 웨이백 머신 (NXP MCF547X 및 MCF548X)
| DES -CBC | 64 bit |
| 3DES -CBC | 192 bit |
| AES -CBC | 128, 192, 256 bit |
Freescale Kinetis MMCAU 보관됨 2017-03-16 - 웨이백 머신 K50, K60, K70 및 K80 (ARM Cortex-M4 core)
| MD5 | 128 bit digest |
| SHA1 | 160 bit digest |
| 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 |
ST 마이크로 일렉트로닉스 STM32 F1, F2, F4, L1, W 시리즈 (ARM Cortex - M3 / M4)
| RNG | |
| DES -CBC | 64 bit |
| DES -ECB | 64 bit Encrypt |
| 3DES -CBC | 192 bit |
| MD5 | 128 bit |
| SHA1 | 160 bit |
| AES -CBC | 128, 192, 256 bit |
| AES -CTR | 128, 192, 256 bit |
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 (Embedded Connectivity)
| MD5 | 128 bit digest |
| SHA1 | 160 bit digest |
| 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 |
Texas Instruments 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 processor core)
| AES -ECB | 128 bit |
| RNG | |
| ECC | 256 bit (NIST-P256) |
| AES -CBC | 128, 192, 256 bit |
| AES -CTR | 128, 192, 256 bit |
| AES - GCM | 128, 192, 256 bit |
| SHA256 | |
| RSA | 512 - 4096 bit |
| SHA1 | 160 bit digest |
| SHA2 | 224, 256, 384 and 512 bit |
| AES -CBC | 128, 192, 256 bit |
| AES - GCM | 128, 192, 256 bit |
| ECC | Any curve or bit strength |
| HMAC | SHA1 , SHA2 |
| MD5 | |
| 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 digest |
| SHA256 | |
| ECC | 128, 256 bit |
| ECC-DHE | 128, 256 bit |
| RSA | 512 - 4096 bit |
라이센스
wolfSSL는 오픈 소스로, GNU General Public License GPLv2[15]에 상용 라이센스를 받아 이용 가능하다.
같이 보기
각주
- ↑ “wolfSSL Changelog | wolfSSL Embedded SSL/TLS Library Documentation” (미국 영어). 《wolfSSL》. 2018년 6월 27일에 확인함.
- ↑ “Release 5.9.2”. 2026년 6월 25일. 2026년 6월 26일에 확인함.
- ↑ http://www.cryptlib.com/security-faq
- ↑ “보관된 사본”. 2010년 7월 24일에 원본 문서에서 보존된 문서. 2018년 6월 29일에 확인함.
- ↑ 가 나 “Embedded Communications Products | wolfSSL SSL/TLS Library” (미국 영어). 《wolfSSL》. 2018년 6월 27일에 확인함.
- ↑ Inc., OpenSSL Foundation,. “/source/license.html” (영어). 2018년 6월 27일에 확인함.
- ↑ “Licensing Information | wolfSSL Embedded SSL/TLS Library” (미국 영어). 《wolfSSL》. 2018년 6월 27일에 확인함.
- ↑ “MySQL :: MySQL 5.7 Reference Manual :: 6.4.5 Building MySQL with Support for Encrypted Connections” (영어). 2017년 7월 6일에 원본 문서에서 보존된 문서. 2018년 6월 27일에 확인함.
- ↑ “wolfSSL User Manual | Chapter 4: Features | Documentation” (미국 영어). 《wolfSSL》. 2018년 6월 27일에 확인함.
- ↑ “wolfSSL 3.6.6 is Now Available - wolfSSL” (미국 영어). 《wolfSSL》. 2015년 8월 24일. 2018년 6월 27일에 확인함.
- ↑ “wolfSSL User Manual | Chapter 10: wolfCrypt Usage Reference | Docs” (미국 영어). 《wolfSSL》. 2018년 6월 27일에 확인함.
- ↑ “Kerberos: The Network Authentication Protocol”. 2018년 6월 27일에 확인함.
- ↑ 가 나 “wolfSSL” (영어). 2018년 6월 22일.
- ↑ “Software Guard Extensions” (영어). 2018년 6월 20일.
- ↑ “Various Licenses and Comments about Them”. 2010년 7월 24일에 원본 문서에서 보존된 문서.
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.