wolfSSL은 yaSSL을 기반으로 2004년에 시작된 임베디드 시스템용 보안 라이브러리이다. SSL/TLS, DTLS, 다양한 암호화 알고리즘 및 하드웨어 가속을 지원하며, 오픈 소스(GPLv2) 및 상용 라이선스로 제공된다. 인텔, NXP, ST마이크로일렉트로닉스 등 다양한 제조사의 하드웨어 및 SGX를 지원하며, FIPS 140-2/3, DO-178C 인증을 획득했다.
더 읽어볼만한 페이지
전송 계층 보안 구현 - OpenSSL OpenSSL은 1998년에 설립된 암호화 도구 프로젝트로, 다양한 암호화 알고리즘과 프로토콜을 지원하며, 아파치 라이선스를 채택했고, 보안 문제와 API 호환성 문제 등의 비판을 받았다.
전송 계층 보안 구현 - LibreSSL LibreSSL은 OpenSSL의 보안 취약점을 개선하기 위해 OpenBSD 팀이 개발한 암호화 라이브러리이며, 불필요한 코드를 제거하고 보안을 강화하여 OpenBSD, macOS 등에서 TLS 라이브러리로 사용된다.
C 라이브러리 - OpenSSL OpenSSL은 1998년에 설립된 암호화 도구 프로젝트로, 다양한 암호화 알고리즘과 프로토콜을 지원하며, 아파치 라이선스를 채택했고, 보안 문제와 API 호환성 문제 등의 비판을 받았다.
C 라이브러리 - SQLite SQLite는 D. 리처드 히프가 설계한 서버리스 구조의 임베디드 SQL 데이터베이스 엔진으로, 별도의 DBMS 없이 프로그램에 통합되어 작동하며 전체 데이터베이스를 단일 파일로 저장하는 특징이 있고, 다양한 운영체제와 환경에서 널리 사용된다.
암호 소프트웨어 - OpenSSL OpenSSL은 1998년에 설립된 암호화 도구 프로젝트로, 다양한 암호화 알고리즘과 프로토콜을 지원하며, 아파치 라이선스를 채택했고, 보안 문제와 API 호환성 문제 등의 비판을 받았다.
암호 소프트웨어 - I2P I2P는 2003년 Freenet에서 분기된 익명 P2P 분산 통신 계층으로, IP 주소 노출을 방지하며 다양한 소프트웨어와 익명성 응용 프로그램을 지원하고, 기부금으로 운영되며 6~8주마다 릴리스를 진행한다.
yaSSL은 2004년에 개발이 시작되었다. 당시 OpenSSL이 사용 가능했으며, 'OpenSSL 라이선스'와 'SSLeay 라이선스'의 이중 라이선스[34] 하에 배포되었다. yaSSL은 상업용 라이선스와 GPL 두 가지로 이중 라이선스되어 개발되었으며,[35] 더 현대적인 API, 상업적인 스타일의 개발자 지원을 제공했고 OpenSSL 호환 계층을 갖추고 있었다.[33] wolfSSL/CyaSSL/yaSSL의 첫 번째 주요 사용자는 MySQL이었다.[36] MySQL에 번들로 제공되면서, yaSSL은 수백만 건의 매우 많은 배포량을 달성했다.
2019년 2월, cURL의 제작자인 다니엘 스텐버그가 cURL 작업을 위해 wolfSSL 프로젝트에 고용되었다.[9]
3. 지원 프로토콜
wolfSSL은 TLS 1.0, TLS 1.1, TLS 1.2, TLS 1.3과 DTLS 1.0, DTLS 1.2를 지원한다.[37]DTLS 1.3 또한 지원한다. SSL 3.0도 지원하지만, POODLE 공격 취약점 때문에 기본적으로는 비활성화되어 있으며, 컴파일 옵션을 통해 활성화해야 한다.[38] SSL 2.0은 지원하지 않는다.[24]
3. 1. 보안 관련 참고 사항
wolfSSL 경량 SSL 라이브러리는 다음 프로토콜을 구현한다.[10]
SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2, TLS 1.3
DTLS 1.0, DTLS 1.2, DTLS 1.3
확장: 서버 이름 표시 (SNI), 최대 프래그먼트 길이, 잘린 HMAC, 응용 계층 프로토콜 협상 (ALPN), 확장된 마스터 시크릿
암호화 제품군: TLS 보안 원격 암호, TLS 사전 공유 키
양자 후 암호화: ML-DSA가 sigAlgs에 추가됨, ML-KEM이 지원되는 그룹에 추가됨, QSH(사용 중단 및 제거됨)
공개 키 암호화 표준:
* PKCS #1 - RSA 암호화
* PKCS #3 - 디피-헬만 키 협약
* PKCS #5 - 패스워드 기반 암호화
* PKCS #7 - 암호 메시지 구문 (CMS)
* PKCS #8 - 개인 키 정보 구문
* PKCS #9 - 선택된 속성 유형
* PKCS #10 - 인증서 서명 요청 (CSR)
* PKCS #11 - 암호화 토큰 인터페이스
* PKCS #12 - 인증서/개인 정보 교환 구문 표준
'''프로토콜 참고 사항:'''
'''SSL 2.0''' – SSL 2.0은 RFC 6176에 의해 2011년에 사용 중단(금지)되었다. wolfSSL은 이를 지원하지 않는다.
'''SSL 3.0''' – SSL 3.0은 RFC 7568에 의해 2015년에 사용 중단(금지)되었다. POODLE 공격에 대응하여, SSL 3.0은 wolfSSL 3.6.6부터 기본적으로 비활성화되었지만, 컴파일 시간 옵션으로 활성화할 수 있다.[11]
4. 지원 알고리즘
wolfSSL은 기본적으로 wolfCrypt 암호화 서비스를 사용한다.[12] wolfCrypt는 RSA, ECC, DSS, 디피-헬만, EDH, NTRU (더 이상 사용되지 않으며 제거됨), DES, 트리플 DES, AES (CBC, CTR, CCM, GCM), 카멜리아, IDEA, ARC4, HC-128, ChaCha20, MD2, MD4, MD5, SHA-1, SHA-2, SHA-3, BLAKE2, RIPEMD-160, Poly1305, 난수 생성, 대용량 정수 지원, base 16/64 인코딩/디코딩, ML-KEM (FIPS 203 인증) 및 ML-DSA (FIPS 204 인증) 양자 후 암호화 알고리즘을 제공한다.
wolfCrypt는 X25519 및 Ed25519 알고리즘도 지원한다.
wolfCrypt는 MIT Kerberos[13](빌드 옵션으로 활성화 가능) 등 여러 소프트웨어 패키지 및 라이브러리의 백엔드 암호화 구현으로 사용된다.
CyaSSL+는 NTRU[14] 공개 키 암호화를 포함한다. CyaSSL+에 NTRU가 추가된 것은 yaSSL과 시큐리티 이노베이션(Security Innovation)의 파트너십 결과이다.[14] NTRU는 다른 공개 키 시스템과 동일한 수준의 보안을 제공하는 데 필요한 비트 수가 적어 모바일 및 임베디드 환경에서 유리하다. 또한 양자 공격에 취약하지 않은 것으로 알려져 있다. CyaSSL+에는 AES-256, RC4, HC-128 등 NTRU를 사용하는 여러 암호화 제품군이 있다.
4. 1. wolfCrypt
wolfSSL은 기본적으로 wolfCrypt 암호화 서비스를 사용한다.[39] 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[40](빌드 옵션 사용)를 포함하여 몇 가지 소프트웨어 패키지와 라이브러리의 백엔드 암호화 구현으로 사용되고 있다.
4. 2. NTRU
CyaSSL+에는 NTRU 공개 키 암호화가 포함되어 있다. CyaSSL+에 NTRU가 추가된 것은 yaSSL과 Security Innovation의 파트너십의 결과였다.[41] NTRU는 다른 공개 키 암호화와 같은 수준의 보안을 더 적은 비트 수로 제공하므로 모바일 및 임베디드 환경에서 잘 작동한다. 게다가 NTRU는 양자 공격(quantum attack)에 대해서도 취약점이 알려져 있지 않다. NTRU를 사용하는 암호화 세트는 CyaSSL+를 비롯하여 AES-256, RC4 또는 HC-128 등에서 사용 가능하다.
5. 하드웨어 가속 지원
wolfSSL은 다양한 하드웨어에서 암호화 연산을 가속화하여 성능을 향상시킬 수 있도록 지원한다. 지원되는 주요 하드웨어 및 관련 기술은 다음과 같다.
[http://www.intel.com/content/www/us/en/architecture-and-technology/advanced-encryption-standard--aes-/data-protection-aes-general-technology.html 인텔 AES-NI] (Xeon 및 Core 프로세서 제품군)
모두
모두
모두
모두
모두
[https://www.nxp.com/ NXP] 암호화 가속기 및 보증 모듈(CAAM)
모두
모두
모두
모두
[http://www.nxp.com/assets/documents/data/en/application-notes/AN2788.pdf NXP Coldfire SEC] (NXP MCF547X 및 MCF548X)
[http://www.microchip.com/wwwproducts/en/ATECC508A Microchip]/[http://www.atmel.com/Images/Atmel-8923S-CryptoAuth-ATECC508A-Datasheet-Summary.pdf Atmel] ATECC508A (Atmel SMART 및 AVR MCU를 포함한 모든 MPU 또는 MCU와 호환)
256비트 (NIST-P256)
[https://www.wolfssl.com/docs/intel-quickassist/ 인텔 QuickAssist 기술]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.