자바 보안 소켓 확장 (JSSE; Java Secure Sockets Extension)은 SSLv3와 TLS와 암호화 알고리즘을 사용하여 네트워크 보안 통신을 지원한다.
데이터를 암호화하고 복호화하는 데 동일한 키를 사용한다.
데이터를 암호화하고 복호화하는 키가 다르다.
그래서 공개키로 누구나 암호화할수 있고 개인키를 가지고 있는 사람만 그 내용을 열어 볼수 있다.공개키 암호화 방식은 더 많은 CPU 연산이 들어가며 대칭키 암호화에 비해서 느리다.
공개키 암호화는 암호화 외에 인증과 무결성 검사에도 사용될 수 있다.
JSSE는 네 개의 패키지로 나뉜다.
javax.net.ssl: 보안 네트워크 통신을 위한 자바 API를 정의하는 추상 클래스들이 있는 패키지javax.net: 보안 소켓을 생성하기 위해 생성자 대신 사용되는 추상 소켓 팩토리 클래스가 있는 패키지java.secure.cert: SSL에 필요한 공개키 인증서를 다루는 클래스com.sun.net.ssl: JSSE에 대한 sun의 참조 구현 안에 있는 알고리즘과 프로토콜을 구현한 구상 추상클래스가 있는 패키지
java.net.Socket 대신 javax.net.ssl.SSLSocketFactory.createSocket() 메서드를 사용하여 소캣 객체를 얻는 것으로 보안 클라이언트 소켓 생성 가능.이 정적 메서드가 반환하는 소켓은 javax.net.ssl.SSLSocket 클래스다. 추상화되어있어서 기존 Socket 메서드와 동일한 인터페이스로 사용 가능.
JSSE 구현들 마다 서로 다른 인증과 알고리즘의 암호화 조합을 제공한다.