OpenSSL 4.0.0

2 days ago 4
  • 암호화 라이브러리 OpenSSL의 4.0.0 버전이 공개되어, 다수의 신규 기능과 비호환 변경이 포함된 대규모 릴리스로 발표됨
  • SSLv2, SSLv3, 엔진(engine) 지원이 완전히 제거되고, 여러 X509 및 ERR 관련 API가 폐기 또는 불투명 구조로 변경됨
  • Encrypted Client Hello(ECH), SM2/SM3 알고리듬, cSHAKE 함수, TLS 1.2용 FFDHE 키 교환 등 최신 표준 기반 기능이 추가됨
  • Darwin i386 및 ppc 타깃이 빌드 구성에서 제외되고, openssl rehash 명령이 c_rehash를 대체함
  • 이번 릴리스는 OpenSSL의 보안·표준 호환성 강화를 위한 전환점으로 평가되며, 커뮤니티에서 긍정적 반응을 얻고 있음

OpenSSL 4.0.0 릴리스 페이지 개요

  • GitHub의 OpenSSL 4.0.0 릴리스 페이지는 프로젝트 기본 정보와 탐색 메뉴를 포함함
    • Code, Issues, Pull requests, Discussions, Actions, Projects, Wiki, Security, Insights 등의 공통 메뉴 항목이 표시됨
  • 저장소는 공개(public) 상태이며, 약 30k개의 Star11.2k개의 Fork가 등록되어 있음
  • 릴리스 페이지는 openssl-4.0.0 태그에 해당하며, 다른 버전과의 비교(Compare) 기능을 제공
  • 상단 구간은 GitHub 인터페이스 요소 중심으로 구성되어 있으며, 실제 변경 내역은 포함되지 않음

버전 비교 링크 목록

  • 릴리스 페이지에는 이전 버전과의 비교 링크가 다수 포함되어 있음
    • 각 링크는 GitHub의 compare 기능을 통해 특정 버전과 openssl-4.0.0 간의 변경 사항을 직접 확인 가능
  • 비교 대상에는 3.x, 2.x, 1.x 계열 전체, FIPS 인증 버전, 엔진(Engine) 브랜치, SSLeay 초기 버전까지 포함됨
    • 예: openssl-3.6.2...openssl-4.0.0, OpenSSL_1_1_1...openssl-4.0.0, OpenSSL-fips-2_0_16...openssl-4.0.0 등
  • 개발 단계별 버전(alpha, beta, RC, 정식 릴리스)도 모두 비교 대상으로 포함됨
    • 예: openssl-3.5.0-alpha1, OpenSSL_1_0_2-beta3, OpenSSL-fips-2_0-rc9 등
  • 내부 관리 브랜치(master-pre/post-reformat, STATE_before_zlib, STATE_after_zlib)도 포함되어 코드 포맷팅 및 압축 라이브러리 통합 이력을 추적 가능
  • 이 목록은 기능 설명이 아닌 버전 간 차이를 탐색하기 위한 GitHub 비교 경로 집합으로 구성됨
  • OpenSSL 1.0.x 계열

    • OpenSSL_1_0_1-beta1, OpenSSL_1_0_0, OpenSSL_1_0_0t 등 다수의 하위 릴리스가 비교 대상으로 제시됨
    • pre-reformat, post-reformat, auto-reformat 태그를 통해 코드 포맷 변경 전후 버전 비교 가능
  • OpenSSL 0.9.8 계열

    • OpenSSL_0_9_8zh부터 OpenSSL_0_9_8a까지의 세부 릴리스가 모두 나열됨
    • 베타 버전(beta1~beta6)과 포맷 전후 버전(pre/post-reformat, auto-reformat)도 포함됨
  • OpenSSL 0.9.7 및 0.9.6 계열

    • OpenSSL_0_9_7m부터 OpenSSL_0_9_7a, OpenSSL_0_9_6m부터 OpenSSL_0_9_6a까지의 버전이 비교 링크로 제공됨
    • 각 버전의 베타 단계(beta1~beta6)도 별도로 명시됨
  • 초기 버전 및 특수 브랜치

    • OpenSSL_0_9_5, OpenSSL_0_9_4, OpenSSL_0_9_3, OpenSSL_0_9_2b, OpenSSL_0_9_1c 등 초기 릴리스와의 비교 링크 포함
    • FIPS 관련 테스트 브랜치(FIPS_098_TEST_1~FIPS_098_TEST_8, BEN_FIPS_TEST_1~BEN_FIPS_TEST_8) 및 LEVITTE_before_const, BEFORE_engine 등의 실험적 브랜치도 포함됨
    • 4.0-PRE-CLANG-FORMAT-WEBKIT부터 3.0-POST-CLANG-FORMAT-WEBKIT까지의 Clang Format 적용 전후 버전 비교 링크도 제공됨
    • 전체적으로 이 목록은 OpenSSL 프로젝트의 장기간 개발 이력과 코드 진화 과정을 추적할 수 있는 자료로 구성됨

OpenSSL 4.0.0 주요 변경 사항

  • OpenSSL 4.0.0은 새로운 기능이 대폭 추가된 기능 릴리스이며, 여러 비호환 변경이 포함됨
    • 릴리스 이후 master 브랜치에는 327개의 커밋이 추가됨
  • 주요 변경 및 제거된 기능

    • RSA 모듈러스 등 키 데이터를 16진수로 출력할 때, 첫 바이트가 0x80 이상인 경우 '00:' 접두어 제거
    • 서명(hex dump)의 폭을 24바이트, 그 외 데이터는 16바이트로 표준화하여 80자 제한 내 유지
    • PKCS5_PBKDF2_HMAC API 사용 시 FIPS provider에서 하한 검사 강제
    • X509_V_FLAG_X509_STRICT 설정 시 AKID 검증 추가
    • CRL 검증 절차에 여러 추가 검사 도입
    • libcrypto는 더 이상 atexit()을 통해 전역 데이터 정리 수행하지 않음
    • BIO_snprintf()가 내부 구현 대신 libc의 snprintf() 사용
    • OPENSSL_cleanup()은 기본적으로 전역 소멸자(global destructor) 에서만 실행되거나 실행되지 않음
    • ASN1_STRING 구조체가 불투명(opaque) 처리됨
    • X509 관련 API를 포함한 다수의 함수가 인자 및 반환 타입에 const 한정자 추가
    • X509_cmp_time(), X509_cmp_current_time(), X509_cmp_timeframe()이 폐기되고 X509_check_certificate_times()로 대체
    • SSLv2 Client HelloSSLv3 지원 완전 제거
    • 엔진(engine) 지원 제거, no-engine 빌드 옵션과 OPENSSL_NO_ENGINE 매크로 항상 활성화
    • RFC 8422에 따라 TLS의 폐기된 타원곡선(elliptic curves) 지원 기본 비활성화
    • 명시적 EC 곡선(explicit EC curves) 지원 기본 비활성화
    • c_rehash 스크립트 도구 제거, 대신 openssl rehash 사용
    • openssl ca 명령의 msie-hack 옵션 제거
    • BIO_f_reliable() 구현 제거 (3.0 이후 고장 상태였음)
    • 사용자 정의 EVP_CIPHER, EVP_MD, EVP_PKEY, EVP_PKEY_ASN1 메서드 지원 제거
    • 고정 SSL/TLS 버전 메서드 함수 제거
    • ERR_get_state(), ERR_remove_state(), ERR_remove_thread_state() 제거, ERR_STATE 객체는 항상 불투명 구조로 변경
    • Darwin i386, ppc 타깃(darwin-i386{,-cc}, darwin-ppc{,64}{,-cc}) 구성에서 제외
  • 새로 추가된 기능

    • Encrypted Client Hello (ECH) 지원 (RFC 9849)
    • RFC 8998 기반 SM2/SM3 서명 알고리듬, curveSM2 키 교환 그룹, post-quantum 그룹 curveSM2MLKEM768 지원
    • SP 800-185에 따른 cSHAKE 함수 지원
    • ML-DSA-MU 다이제스트 알고리듬 추가
    • SNMP KDFSRTP KDF 지원
    • FIPS 모듈 설치 시 openssl fipsinstall 명령의 -defer_tests 옵션으로 자체 테스트 지연 실행 가능
    • Windows 환경에서 정적(static) 또는 동적(dynamic) VC 런타임 링크 선택 지원
    • RFC 7919에 따른 TLS 1.2의 협상형 FFDHE 키 교환 지원
  • 배포 파일

    • openssl-4.0.0.tar.gz (52.5MB), openssl-4.0.0.tar.gz.asc, openssl-4.0.0.tar.gz.sha1, openssl-4.0.0.tar.gz.sha256
    • 소스 코드 아카이브: Source code (zip), Source code (tar.gz)
    • 릴리스 시각: 2026-04-14T12:54:03Z
  • 커뮤니티 반응

    • 👍 41, 🎉 61, ❤️ 11, 🚀 15 등 총 94건의 반응 기록
    • 긍정적 피드백이 다수 표시됨
Read Entire Article