
1. 배경 및 개요
- OpenSSL 4.0.0은 단순한 누적 업데이트가 아니라, 기능 추가와 레거시 정리를 동시에 진행한 세대교체형 릴리스입니다.
- 공식 발표에 따르면 이 버전은 새로운 암호 기능을 대거 포함하는 한편, 오래된 프로토콜과 API 일부를 과감히 제거하거나 비활성화했습니다.
- 특히 이번 릴리스는 ECH(Encrypted Client Hello), SM2/ML-KEM 계열 지원, cSHAKE, FIPS 관련 개선처럼 보안 표준과 최신 암호화 요구를 반영한 점이 핵심입니다.
- 반면 SSLv3, SSLv2 Client Hello, engines 같은 오래된 구성 요소는 삭제되어, 최신 환경으로의 전환을 분명히 했습니다.
2. 주요 변경 사항
- 가장 눈에 띄는 변화는 레거시 제거입니다.
- SSLv3와 SSLv2 Client Hello 지원이 삭제되었고, engines 관련 기능도 완전히 제거되었으며, c_rehash 스크립트는 openssl rehash로 대체되었습니다.
- 동시에 보안 검증도 강화되었습니다.
- X509_V_FLAG_X509_STRICT 사용 시 AKID 검증이 추가되었고, CRL 검증 절차에도 추가 검사가 들어갔습니다.
- 또한 FIPS provider를 사용할 때 PKCS5_PBKDF2_HMAC의 하한값 검사가 강화되었습니다.
- API 변화도 큽니다.
- ASN1_STRING이 opaque 처리되었고, 여러 X509 관련 함수 시그니처에 const가 더 엄격하게 적용되었으며, 일부 시간 비교 함수는 X509_check_certificate_times()로 대체 권장됩니다.
3. 상세 기능 설명
- 이번 버전의 대표 기능은 ECH 지원입니다.
- ECH는 TLS 연결 초기에 노출될 수 있는 일부 메타데이터를 더 효과적으로 숨기기 위한 기능으로, 클라이언트 프라이버시 향상에 직접적인 의미가 있습니다.
- 암호 알고리즘 측면에서는 SM2 관련 RFC 8998 지원과 더불어, curveSM2MLKEM768 같은 하이브리드 포스트퀀텀 그룹이 포함되었습니다.
- 또한 cSHAKE, ML-DSA-MU, SNMP KDF, SRTP KDF 지원이 추가되어 최신 표준과 활용 시나리오를 넓혔습니다.
- 운영 관점에서는 FIPS 모듈 설치 시 self test를 지연 실행할 수 있는 옵션이 추가되었고, Windows에서는 정적/동적 VC runtime linkage 선택이 가능해졌습니다.
- TLS 1.2의 협상형 FFDHE 키 교환도 지원되어, 호환성과 보안성의 균형을 더 잘 맞추도록 개선되었습니다.
4. 기획 의도와 기술적 개선
- OpenSSL 4.0.0의 방향성은 명확합니다.
- 오래된 기술 부채를 정리하고, 현대적인 TLS/PKI 요구와 포스트퀀텀 전환 흐름에 맞추겠다는 의도가 강하게 드러납니다.
- 기술적으로는 내부 구현을 더 단순하고 일관되게 바꾸는 작업이 많았습니다.
- 예를 들어 BIO_snprintf()는 내부 구현 대신 libc의 snprintf()를 사용하도록 변경되었고, libcrypto와 OPENSSL_cleanup()의 정리 방식도 전역 종료 흐름에 맞게 조정되었습니다.
- 또한 ASN1_STRING opaque화, const 강화 같은 변화는 장기적으로 API 안정성은 높이고 내부 캡슐화는 강화하는 방향입니다.
- 즉, 개발자 입장에서는 일부 수정 비용이 들 수 있지만, 결과적으로는 유지보수성과 안전성이 좋아지는 구조입니다.
5. 사용방법 및 가이드
- 기존 프로젝트를 OpenSSL 4.0.0으로 올리실 때는 먼저 빌드와 런타임 호환성을 점검하시는 것이 좋습니다.
- 특히 SSLv3, engines, c_rehash, 일부 deprecated API를 직접 사용 중이라면 코드 수정이 필요합니다.
- 마이그레이션 시에는 다음 순서가 안전합니다.
- 사용 중인 OpenSSL API 목록을 점검합니다.
- deprecated 또는 제거된 함수와 옵션을 우선 치환합니다.
- 인증서 검증 로직과 TLS 협상 설정을 재검토합니다.
- FIPS provider를 쓰는 경우 관련 검증 조건을 확인합니다.
- 예를 들어 c_rehash를 자동화 스크립트에서 사용하고 계셨다면, 이제는 openssl rehash로 바꾸셔야 합니다.
- 또한 X509 시간 비교 로직이 있다면 X509_check_certificate_times()로 교체하는 편이 안전합니다.
6. 기대효과 및 주의사항
- 기대효과는 분명합니다.
- 최신 암호화 표준 지원이 확대되고, 프라이버시 보호 기능이 강화되며, FIPS 및 인증서 검증 품질도 높아집니다.
- 운영 환경에서는 장기적으로 보안성과 표준 적합성이 좋아질 가능성이 큽니다.
- 다만 주의사항도 큽니다. SSLv3, engines, 일부 deprecated 함수에 의존하던 레거시 시스템은 바로 깨질 수 있으므로, 업그레이드 전에 사전 테스트가 필수입니다.
- 또한 OpenSSL 4.0은 LTS가 아니며, 공식 지원 기간은 2027년 5월 14일까지입니다. 장기 지원이 필요한 조직이라면 이 점을 고려해 운영 정책을 세우셔야 합니다.









