SSL 프로토콜은 데이터의 암호화와 네트워크 상대방의 인증을 통해서 안전성을 높여준다. SSL 의 기능은 크게 세가지가 있다.
첫번째는, 다이제스트이다. 다이제스트는 데이터에서 고정길이 해시값을 추출하는 기능을 뜻한다. 만약 데이터가 변조되었다면, 추출한 해시값 즉, 다이제스트가 달라지게 되고, 사용자는 데이터가 변조되었다는 사실을 알 수 있게 된다.
두번째와 세번째는 암호화와 인증으로 다음에서 다뤄보자.
SSL 프로토콜 하에서 서버와 클라이언트는 암호화된 데이터를 서로 전송하면서 의사소통한다. 암호화 된 의사소통 전까지 두가지 단계가 필요하다. 첫번째는 상대방을 신뢰하기 위한 인증서 확인, 두번째는 암호화를 위한 키교환 이다.
서버는 CA 기관을 통해 서버가 신뢰할 수 있다는 인증서(디지털 서명)를 발급받는다. 디지털 서명은 CA 기관의 비밀키를 통해 서명 되어 있으며, 인증서를 보는 사람이 CA의 공개키를 이용해 서명을 검증하면 인증서가 정말로 CA 기관에서 발급되었는지 확인할 수 있고, 인증서를 가지고 있는 서버를 신뢰할 수 있게 된다.
인증이 완료된 후에는 암호화를 위한 키교환이 필요하다. 비대칭 키 방식이므로, 클라이언트와 서버가 공개키를 교환하면 되나, 이 방식은 공통키 방식에 비해 암호화 복호화에 필요한 연산의 양이 많다. 이때문에 공통키 방식을 함께 사용한다. 메커니즘은, 서버에서 클라이언트에 상대방의 공개키로 암호화된 공통키
를 보내면, 상대방은 비밀키로 이것을 복호화 하여, 공통키를 공유하게 되는 방식이다.
핸드쉐이크가 이루어지면 공통키를 사용하여 암호화된 의사소통을 할 수 있다.
VPN 은 virtual private network 의 약자로, 이름 그대로 가상의 전용선을 활용하여, LAN 을 연결하거나, 모바일 사용자를 접속시키는 역할을 한다.
여러개의 LAN 을 연결하기 위해 VPN 을 이용하는 경우 ISpec 프로토콜을 활용한다. 온프레미스의 서버와 외부 서버를 VPN 으로 연결하면, 프라이빗 한 환경을 유지할 수 있다.
한편, VPN 을 이용해 모바일 사용자를 접속시킬수도 있다. 외부의 접근이 차단된 서버에서, VPN 을 이용하면, 모바일 사용자와 서버간에 가상의 네트워크가 열리고, 이 네트워크를 이용해서 접속할 수 있게 된다.