
무슨 일이 있었나요?
웹 보안의 근간이라고 할 수 있는 OpenSSL이 드디어 4.0.0 버전을 정식 출시했어요. OpenSSL이 뭐냐면, 우리가 매일 쓰는 HTTPS 통신의 암호화를 담당하는 라이브러리인데요. 브라우저에서 자물쇠 아이콘이 뜨는 그 보안 연결, 그게 다 OpenSSL(또는 그 파생 라이브러리) 덕분이에요. 서버 개발을 하든, 인프라를 관리하든, 심지어 모바일 앱을 만들든 간에 어딘가에서는 반드시 OpenSSL을 거치게 되거든요.
3.x 버전이 나온 지 꽤 시간이 흘렀는데, 이번 4.0.0은 단순한 패치가 아니라 메이저 버전 업그레이드예요. 메이저 버전이 올라간다는 건 "하위 호환성이 깨질 수 있는 큰 변화가 있다"는 뜻이죠. 그래서 지금부터 어떤 점이 바뀌었고, 우리한테 어떤 영향이 있는지 하나씩 살펴볼게요.
핵심 변경 사항
이번 OpenSSL 4.0.0에서 가장 눈에 띄는 변화는 라이선스 변경이에요. 기존에는 OpenSSL 고유의 라이선스를 사용했는데, 이번 버전부터 Apache License 2.0으로 완전히 전환됐어요. 이게 뭐가 중요하냐면, 기존 OpenSSL 라이선스는 다른 오픈소스 라이선스와 호환성 문제가 꽤 있었거든요. 예를 들어 GPL 프로젝트에서 OpenSSL을 쓰려면 별도의 예외 조항을 넣어야 했는데, 이제 그런 번거로움이 사라진 거예요.
기술적인 측면에서는 FIPS 140-3 검증 지원 강화가 핵심이에요. FIPS가 뭐냐면, 미국 연방정부 기관에서 사용하는 암호화 모듈의 보안 표준인데요. 금융권이나 공공 프로젝트를 하는 분들은 이 인증이 필수라서 매우 반가운 소식일 거예요. 이전 버전에서도 FIPS 모듈이 있었지만, 4.0.0에서는 아키텍처 레벨에서 FIPS 프로바이더가 더 깔끔하게 분리되어서 설정과 관리가 한결 편해졌어요.
또한 오래된 알고리즘들의 기본 비활성화도 중요한 변화예요. MD5, RC4 같은 이미 보안적으로 취약하다고 알려진 알고리즘들이 기본 빌드에서 빠졌어요. 물론 레거시 호환을 위해 옵션으로 활성화할 수는 있지만, 기본값에서 제거했다는 건 "이제 정말 쓰지 마세요"라는 강력한 메시지인 거죠.
API 정리도 대대적으로 이루어졌어요. 3.x 시절부터 deprecated(사용 중단 예고)로 표시되었던 함수들이 이번에 상당수 제거됐어요. 이게 실무에서는 꽤 큰 영향을 줄 수 있는데, 오래된 코드베이스에서 직접 OpenSSL API를 호출하고 있었다면 컴파일 에러가 날 수 있거든요.
업계 맥락 — OpenSSL만 있는 게 아니에요
OpenSSL이 워낙 오래되고 널리 쓰이다 보니, 경쟁자도 여럿 등장했어요. 대표적인 게 BoringSSL인데요, 구글이 OpenSSL을 포크해서 만든 거예요. 크롬 브라우저와 안드로이드에서 사용하고 있죠. 구글은 자기들한테 필요한 부분만 쏙 빼서 관리하기 때문에 API가 좀 다르고, 외부 프로젝트에서 쓰기엔 불편한 점이 있어요.
LibreSSL도 있어요. 2014년 Heartbleed 사건 이후에 OpenBSD 팀이 "OpenSSL 코드 품질이 너무 낮다"며 포크해서 만든 건데요. OpenBSD와 macOS에서 기본으로 사용되고 있어요. 다만 리소스가 제한적이다 보니 최신 프로토콜 지원이 OpenSSL보다 느린 편이에요.
Rust 진영에서는 rustls가 빠르게 성장하고 있어요. 메모리 안전성이 보장되는 Rust로 작성되어서, C로 된 OpenSSL의 고질적인 메모리 취약점 걱정이 없다는 게 큰 장점이죠. 최근에는 일부 프로젝트에서 OpenSSL 대신 rustls를 도입하는 사례도 늘고 있어요.
이런 상황에서 OpenSSL 4.0.0의 출시는, OpenSSL 프로젝트가 "우리도 계속 진화하고 있다"는 걸 보여주는 의미가 있어요. 특히 라이선스 정리와 레거시 정리는 오랫동안 지적받아온 문제였는데, 이걸 한 번에 해결한 셈이거든요.
한국 개발자에게 주는 시사점
당장 서버를 운영하고 계신 분들은 업그레이드 타이밍을 잘 잡아야 해요. 메이저 버전 업이라 기존 3.x와 API 호환이 안 되는 부분이 있을 수 있거든요. 특히 Nginx, Apache 같은 웹 서버를 소스 빌드로 운영하는 경우, OpenSSL 버전을 올리면 웹 서버도 재빌드해야 할 수 있어요.
금융이나 공공 프로젝트를 하시는 분들은 FIPS 지원 강화 소식이 반가울 거예요. 한국에서도 KCMVP(한국형 암호모듈 검증)가 있는데, 국제 표준과의 호환성 측면에서 FIPS 지원이 잘 되는 라이브러리를 쓰는 게 유리하거든요.
리눅스 배포판 패키지 매니저를 쓰고 계시다면, 배포판에서 4.0.0을 채택하기까지는 시간이 좀 걸릴 거예요. Ubuntu LTS나 RHEL 같은 안정 버전 배포판은 보통 보수적으로 접근하니까요. 그래서 당장 급하게 올릴 필요는 없지만, 새 프로젝트를 시작한다면 4.0.0을 기준으로 가는 것도 좋은 선택이에요.
마무리
OpenSSL 4.0.0은 라이선스 현대화, 레거시 알고리즘 제거, API 정리라는 세 가지 축으로 "깔끔한 새 출발"을 선언한 릴리스예요. 보안 인프라의 근간이 되는 라이브러리인 만큼, 변경 사항을 미리 파악해두는 게 중요해요.
여러분의 프로젝트에서는 OpenSSL을 직접 사용하고 계신가요, 아니면 rustls 같은 대안을 검토해보신 적 있나요?
🔗 출처: Hacker News
TTJ 코딩클래스 정규반
월급 외 수입,
코딩으로 만들 수 있습니다
17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.
"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"
실제 수강생 후기- 비전공자도 6개월이면 첫 수익
- 20년 경력 개발자 직강
- 자동화 프로그램 + 소스코드 제공