SSLSocket — SSL/TLS 보안 소켓

SSLSocket — SSL/TLS 보안 소켓

SSLSocketSocket을 확장해서 "Secure Sockets Layer"(SSL) 또는 IETF "Transport Layer Security"(TLS) 같은 프로토콜을 사용하는 보안 소켓을 제공하는 클래스예요. 이런 소켓은 일반 스트림 소켓이지만, TCP 같은 기본 네트워크 전송 프로토콜 위에 보안 보호 계층을 추가해요.

출처: Java API Reference

본문

public abstract class SSLSocket extends Socket

어떤 보호를 제공할까요?

  • Integrity Protection (무결성 보호) — SSL은 능동적인 도청자(wiretapper)에 의한 메시지 변조를 막아요.
  • Authentication (인증) — 대부분의 모드에서 SSL은 피어 인증을 제공해요. 서버는 보통 인증되고, 클라이언트는 서버가 요청하면 인증될 수 있어요.
  • Confidentiality / Privacy Protection (기밀성·개인정보 보호) — 대부분의 모드에서 SSL은 클라이언트와 서버 사이에 보내는 데이터를 암호화해요. 이렇게 해서 수동적인 도청자가 금융 정보나 여러 종류의 개인 정보 같은 민감한 데이터를 보지 못하게 해요.

이런 보호의 종류는 "cipher suite"(암호 스위트)로 지정되는데, 이는 특정 보호를 제공하는 암호화 알고리즘들의 조합이에요.

SSL/TLS 프로토콜을 쓸 때마다 서버 인증서나 클라이언트 인증서, 키 관리 등 여러 설정이 필요한데, SSLSocket은 이런 설정을 SSLParametersSSLContext를 통해 다루는 방식으로 확장돼요. 개발자는 보통 SSLSocketFactory를 통해 보안 소켓을 만들고, 그것을 일반 Socket처럼 스트림 입출력에 사용해요.

한 문장으로 정리하면 SSLSocket은 "네트워크 통신에 암호화, 무결성, 인증을 더해주는 소켓"이에요. HTTPS, 보안 메일, 안전한 원격 통신 등 신뢰가 필요한 데이터 교환에서 널리 쓰여요.

원문에서 확인되는 핵심 메서드들은 Socket에서 상속된 입출력·연결 메서드와 함께, SSL 전용 설정 메서드들(예: 핸드셰이크, 암호 스위트 설정, 클라이언트 모드 등)로 구성돼요. 구체적인 메서드 시그니처와 동작은 공식 API 문서의 Method Summary를 참고하면 돼요.

더 알아보기 (Learn more)