본문 바로가기
#IT 업무노트

TLS란? TLS와 JDK의 연관 관계 및 서버 통신

by 꾸미라기 2024. 12. 5.
반응형
SMALL

TLS(Transport Layer Security)는 네트워크 통신의 보안을 제공하는 프로토콜입니다. 
TLS는 데이터 전송 중에 데이터의 기밀성과 무결성을 보장하며, 주로 웹 브라우저와 서버 간의 안전한 통신을 위해 사용됩니다. 
TLS는 이전의 SSL(Secure Sockets Layer) 프로토콜을 대체하며, 더 강력한 보안 기능을 제공합니다.

TLS의 주요 기능

암호화 : 데이터가 전송되는 동안 제3자가 내용을 읽지 못하도록 암호화합니다.
인증 : 통신하는 두 당사자가 서로의 신원을 확인할 수 있도록 합니다.
무결성 : 데이터가 전송 중에 변경되지 않았음을 보장합니다.

JDK와 TLS 버전 지원

Java Development Kit(JDK)의 버전은 지원하는 TLS 버전에 영향을 미칩니다. 다음은 주요 JDK 버전과 지원하는 TLS 버전 입니다.

JDK 1.6 (Java 6): TLS 1.0 지원
JDK 1.7 (Java 7): TLS 1.0 및 TLS 1.1 지원
JDK 1.8 (Java 8): TLS 1.0, TLS 1.1 및 TLS 1.2 지원
JDK 9: TLS 1.0, TLS 1.1, TLS 1.2 및 TLS 1.3 지원
JDK 11: TLS 1.0, TLS 1.1, TLS 1.2 및 TLS 1.3 지원
JDK 17: TLS 1.0, TLS 1.1, TLS 1.2 및 TLS 1.3 지원

주의사항

만약 수신처가 TLS 1.2를 사용 중이고, 서비스가 JDK 1.6을 사용하고 있다면 데이터 전송이 불가능합니다. 
JDK 1.6은 TLS 1.0만 지원하기 때문에, TLS 1.2를 요구하는 서버와의 통신이 이루어질 수 없습니다.
JDK 1.6 및 1.7은 보안상의 이유로 더 이상 지원되지 않으며, 최신 TLS 버전(특히 TLS 1.2 및 TLS 1.3)을 사용하기 위해서는 JDK 1.8 이상을 사용하는 것이 권장됩니다.
TLS 1.3은 성능과 보안이 개선된 최신 버전으로, JDK 11 이상에서 지원됩니다.
따라서, 애플리케이션의 보안 요구 사항에 따라 적절한 JDK 버전을 선택하고, TLS 버전을 설정하는 것이 중요합니다.

JDK 1.6 서비스에서 TLS 1.2 통신을 하는 방법

JDK 업그레이드 : JDK 1.6에서 JDK 1.8 이상으로 업그레이드하는 것이 가장 좋은 방법입니다. JDK 1.8은 TLS 1.2를 지원하므로, 수신처와의 통신이 가능해집니다.
서버 설정 변경 : 만약 서버 측에서 TLS 1.2를 사용해야 하는 특별한 이유가 없다면, 서버의 TLS 설정을 변경하여 TLS 1.0 또는 1.1을 지원하도록 할 수 있습니다. 그러나 이는 보안상의 이유로 권장되지 않습니다.
중간 프록시 사용 : TLS 1.2를 지원하는 중간 프록시 서버를 설정하여, JDK 1.6 클라이언트와 TLS 1.2 서버 간의 통신을 중계하는 방법도 있지만, 이 방법은 복잡하고 추가적인 관리가 필요합니다.

결론적으로, JDK 1.6을 사용하는 경우 TLS 1.2를 사용하는 서버와의 통신이 불가능하므로, JDK를 업그레이드하는 것이 가장 바람직한 해결책입니다.

반응형