흔히 알고 있는 HTTP 에 S(Secure) 가 붙은 것이다.
풀어서 쓰면 Hyper Text Transfer Protocol Secure
가 되시겠다.
풀어서 쓴 문장만 봐도 알겠지만 기존 보안에 취약한 HTTP 에 보안 기능이 강화된 버전이라 보면 된다.
레이어 계층으로 살펴 본다면 HTTP 응용계층 아래에 Secure 보안 계층이 있다고 생각하면 된다.
HTTP가 왜 보안에 취약했냐면 사용자가 인터넷에 비밀번호를 입력했을때 입력한 비밀번호가 그대로 인터넷을 떠돌며 데이터가 전송되었고 해커가 맘만먹으면 비밀번호를 가로챌수 있기 때문이다.
HTTPS는 암호화 프로토콜(SSL/TLS
)을 이용해 통신을 암호화 한다.
이 프로토콜은 공개키 알고리즘을 이용해 대칭키를 전달하고 서로 공유한 대칭키를 이용한 통신이다.
SSL과 TLS의 차이?
SSL과 TLS는 버전 차이로 SSL이 더 이전기술이고 소유권을 변경하기 위해 TLS 로 변경한 것 뿐임
공개키 알고리즘?
우리가 암호화된 데이터를 보고 싶으면 복호화 키만 있으면 된다.
그렇다면 데이터를 암호화하는 암호화키는 아무나 가지면 되므로 암호화키를 공개하여 아무나 사용할수있게 해주고 데이터를 보여주고 싶은 대상에게만 복호화 키를 주기만 하면 되는 보안 방식이다.
공개키 방식에서 중요한 것은 공개 되어 있는 암호화 키가 신뢰할 수 있는 암호화 키 인지 확인해야만 한다.
이때 공개키를 신뢰할수 있게 해주는 기관이 CA(Certificate Authority)
라고 한다.
사이트는 본인의 사이트 정보와 공개키를 CA에 넘겨 인증서를 발급 받는다.
이때 인증서는 CA가 가지고 있는 개인키로 암호화 되어 넘겨받는다.
CA는 브라우저에게 인증서를 복호화 가능한 공개키를 제공한다. (모든 클라이언트가 CA의 공개키를 조회 가능함)