자바 보안 소켓 확장 (JSSE; Java Secure Sockets Extension)은 SSLv3와 TLS와 암호화 알고리즘을 사용하여 네트워크 보안 통신을 지원한다.

대칭키 암호화 (비밀키 암호화)

데이터를 암호화하고 복호화하는 데 동일한 키를 사용한다.

비대칭키 암호화 (공개키 암호화)

데이터를 암호화하고 복호화하는 키가 다르다.

그래서 공개키로 누구나 암호화할수 있고 개인키를 가지고 있는 사람만 그 내용을 열어 볼수 있다.공개키 암호화 방식은 더 많은 CPU 연산이 들어가며 대칭키 암호화에 비해서 느리다.

공개키 암호화는 암호화 외에 인증과 무결성 검사에도 사용될 수 있다.

자바 암호화 패키지

JSSE는 네 개의 패키지로 나뉜다.

보안 클라이언트 소켓

java.net.Socket 대신 javax.net.ssl.SSLSocketFactory.createSocket() 메서드를 사용하여 소캣 객체를 얻는 것으로 보안 클라이언트 소켓 생성 가능.이 정적 메서드가 반환하는 소켓은 javax.net.ssl.SSLSocket 클래스다. 추상화되어있어서 기존 Socket 메서드와 동일한 인터페이스로 사용 가능.

암호화 조합 (Cipher suites)

JSSE 구현들 마다 서로 다른 인증과 알고리즘의 암호화 조합을 제공한다.