OpenSSL 4.0.0 릴리스
(github.com/openssl)- 다수의 신규 기능과 비호환 변경이 포함된 대규모 릴리스
- ECH(Encrypted Client Hello, RFC 9849) 지원이 내장되어, TLS 클라이언트 프라이버시 보호를 위한 별도 구현 불필요
- SSLv2 Client Hello 및 SSLv3, 엔진(engine) 코드가 완전 삭제되어, 레거시 프로토콜과의 단절 확정
- RFC 8998 기반 SM2 서명(
sm2sig_sm3), 키 교환(curveSM2), 포스트퀀텀 그룹curveSM2MLKEM768지원 추가 - cSHAKE(SP 800-185), ML-DSA-MU 다이제스트, SNMP KDF, SRTP KDF 등 새로운 암호 기능 추가
- TLS 1.2에서 RFC 7919 기반 FFDHE 키 교환 협상 지원
- FIPS 모듈 설치 시
-defer_tests옵션으로 FIPS 자체 테스트 지연 실행 가능 - 다수 API 함수 시그니처에
const한정자 추가,ASN1_STRING불투명화 등 API 현대화 X509_cmp_time()등 deprecated 함수를X509_check_certificate_times()로 대체 권고PKCS5_PBKDF2_HMAC의 FIPS 프로바이더 사용 시 하한값 검사 강제, CRL 검증에 추가 검사 항목 보강- deprecated된 커스텀
EVP_CIPHER,EVP_MD,EVP_PKEY메서드, 고정 SSL/TLS 버전 함수,c_rehash스크립트,BIO_f_reliable()등 레거시 기능 대규모 정리 darwin-i386,darwin-ppc등 구형 Apple 빌드 타겟 제거- Windows에서 정적/동적 VC 런타임 링크 선택 지원
- 이번 릴리스는 OpenSSL의 보안·표준 호환성 강화를 위한 전환점
Hacker News 의견들
-
드디어 Encrypted Client Hello(ECH) 지원이 추가됨에 기쁨을 표현함
- 지금 바로 활성화할 수 있는 기능인지, 아니면 브라우저와 서버가 지원하기까지 또 오랜 시간이 걸릴지 궁금함
- 그리고 QUIC도 함께 언급함
- 다만 대부분의 네트워크에서는 이런 트래픽을 차단할 가능성이 높음을 경고함
-
HAProxy 블로그의 SSL 스택 현황 글을 인용하며, 이제는 v3를 사용하지 말아야 함을 강조함
- OpenSSL이 작년에야 개발자들이 QUIC을 직접 구현할 수 있도록 API를 제공하기 시작한 점을 긍정적으로 평가함
예전에는 OpenSSL을 사용하면 QUIC 구현도 강제로 OpenSSL의 스택을 써야 했음
QUIC은 UDP 위에 TCP 기능을 재구현한 프로토콜로, HTTP/3의 기반이 됨
하지만 OpenSSL의 QUIC 구현이 마음에 들지 않아도 다른 선택지가 없었음
예를 들어 curl이 OpenSSL에 링크되어 있다면, curl도 자동으로 OpenSSL의 QUIC을 써야 했음
이에 대해 curl의 Daniel Stenberg가 비판적인 블로그 글을 썼다고 소개함
- OpenSSL이 작년에야 개발자들이 QUIC을 직접 구현할 수 있도록 API를 제공하기 시작한 점을 긍정적으로 평가함
-
OpenSSL의 현재 상태를 묻는 질문에서, 예전 Heartbleed 사건 이후로 보안 측면은 크게 개선되었음을 언급함
- Heartbleed 이후 OpenSSL의 보안 관리 체계가 강화되었고, 지금은 인터넷에서 가장 활발히 연구되는 보안 타깃 중 하나가 되었음
하지만 소프트웨어 품질은 오히려 퇴보했다는 평가가 많음
OpenSSL 3.0의 설계가 성능 면에서 후퇴했고, pyca/cryptography 같은 주요 프로젝트들이 OpenSSL을 대체하려는 움직임을 보이고 있음 - 다른 사용자는 OpenSSL 3가 성능과 복잡성, 개발자 경험 모두에서 큰 실망이었다고 평가함
OpenSSL 3의 핵심 연산은 1.1.1보다 훨씬 느리고, HAProxy의 SSL 스택 분석 글과 Python cryptography 팀의 성명을 인용함
OpenSSL 3는 많은 요소를 동적으로 바꾸면서 락(lock) 이 남발되었고, API도 OSSL_PARAM 방식으로 바뀌어 성능 저하와 코드 복잡도를 초래했다고 설명함
- Heartbleed 이후 OpenSSL의 보안 관리 체계가 강화되었고, 지금은 인터넷에서 가장 활발히 연구되는 보안 타깃 중 하나가 되었음
-
OpenSSL 3와 비교하면 이번 전환은 매우 매끄럽게 진행되었음을 언급함
Fedora에서는 “Engines” 제거 외에는 큰 문제 없이 대부분의 의존성이 수정되었음 -
수동 opt-out 절차가 점점 더 큰 마찰 요소가 되고 있음을 지적함
커뮤니티의 반발이 있어야만 기본 설정이 개선되는 현실을 비판하며, 신뢰는 쌓기 어렵고 잃기 쉽다는 점을 강조함 -
“suckerpinch video” 타이밍에 맞춰 릴리스된 것 같다고 농담 섞인 반응을 보임
-
비전문가로서, 이번 변경이 꽤 깔끔한 정리로 보이지만 호환성 깨짐은 항상 부담임을 언급함
OpenSSL 3.x가 그리 사랑받지 못했던 기억을 떠올림- 그래서 이번이 버전 4라는 말로 응수함
-
메이저 버전 업이라 느려질까 걱정하지만, 실제 벤치마크에서는 평균 10% 정도의 성능 저하만 있었다고 함
인터넷 환경 전체로 보면 큰 문제는 아니라고 덧붙임 -
코드에서 const 사용이 늘어난 점을 반가워함
임베디드 환경에서는 직접 const를 추가해야 하는 경우가 많았는데, 이제 기본적으로 적용되는 방향이 마음에 든다고 함 -
마지막으로, 리눅스 배포판 패키지 관리자들의 비명을 상상하며 농담을 던짐