1. SSL
SSL(secure socket layer)
은 네트워크에서 메세지 전송시 보안을 위해 개발된 표준 프로토콜이다. 즉 HTTP
만을 위한 프로토콜이 아닌 Application Layer
의 여러 프로토콜의 보안을 위해 발명된 프로토콜이다.
Client 또는 Server에서 메세지를 만들어 상대에게 전달할때, 응용계층
에서 만들어진 메세지가 전송계층
으로 가기전 SSL
을 통해 데이터가 암호화가 된다. 그 후 전송계층을 거쳐 네트워크계층으로 전달이 된다.
1.1 SSL 장점
SSL
은 3가지의 장점을 제공한다.
2. 혼동하기 쉬운 개념들
2.1 HTTP ~ HTTPS
HTTP
는 HyperText문서를 클라이언트와 서버간 송수신 하기 위한 프로토콜이다. HTTPS
는 직역하면 HTTP + SSL(Secure Socket Layer)
을 합친 말로 보다 보안이 강화된 HTTP 프로토콜이라고도 볼 수 있다.
2.2 SSL ~ TLS
결론부터 말하면 SSL
와TLS
는 같은 말이다. NetScape사에서 SSL
을 발명했고 이 후 사용자들이 많아짐에 따라 표준화 기구인 IETF가 관리하며 TLS
로 이름이 바뀜
3. 암호화 방식
3.1 대칭키
대칭키
방식은 매우 간단하다. 두 명의 사용자가 있을 때 모두가 같은 암호키
를 가지고 대화를 하는 방식이다. 때문에 알고리즘이 상대적으로 간단하며 동작이 빠릅니다.
3.2 공개키
공개키
는 대칭키
방식의 단점인 두 사용자가 모두 같은 비밀번호를 알아야한다는 단점을 보완하고자 고안된 방법이다. 두 사용자가 모두 같은 키를 사용하기 위해서는 한 사용자가 생성한 키를 상대방에게 전달해야하는데 이때 암호키가 유출될 위험이 있기 때문이다.
공개키 방식은, 2개의 키를 가지고 암호화를 진행하게 된다.
한 키는 공개가 되어 있으며 (Public Key
), 나머지 하나의 키는 주인만이 알 수 있다.(Private Key
)
먼저, 메세지를 전달하고자 하는 대상의 공개키로 내가 전달할 메세지를 암호화한다. 그렇다면 전달받은 상대방은 자신의 개인키를 이용하여 메세지를 복호화하면 끝.
4. SSL 인증서
SSL
인증서는 서버가 정말 해당서버가 맞는지를 확인할 수 있도록 도와주는 수단이다.
공개키를 사용해 암호화 하더라도 진짜 사이트인지를 증명할 수단이 필요하다. 이때문에 제3자가 해당 사이트가 진짜인지를 증명해야한다. 이를 통해 사용자는 자신이 통신하는 사이트가 진짜 사이트 인지를 알 수 있게 된다.
4.1 SSL이 제공하는 기능
CA
4.2 SSL 통신과정
4.3 HTTPS의 SSL 통신 방법