
HTTPS란?
HTTPS는 HyperText Transfer Protocol Secure의 약자이며 HTTP의 보안 버전입니다.

HTTPS는 TCP 위에 SSL/TLS 층을 추가하여 암호화, 인증 그리고 무결성 보장을 통해 더 안전하게 만들어주는 프로토콜입니다.
HTTPS의 동작방식을 알아보기전에 먼저 3가지 개념을 먼저 알고 가야합니다.
📌1. 대칭키

만약 클라이언트와 서버가 대칭키 방식으로 통신을 한다면 클라이언트도 키를 가지고 있어야합니다.
클라이언트에게 키를 전달하기도 위험하며 클라이언트의 소스코드는 누구든지 열어볼 수 있으므로 가지고 있기도 굉장히 위험합니다.
즉, 원거리에서 대칭키를 안전하게 전달하는 것이 매우 어렵습니다.
공개키와 개인키(비밀키)라는 2가지 키를 사용하는 기법입니다.
공개키는 말그대로 누구나 획득할 수 있는 공개된 키를 뜻합니다. 정보를 보내는쪽(클라이언트)은 이 키를 가지고 데이터를 암호화해서 전송합니다.
개인키(비밀키)는 공개키로 암호화된 데이터를 복호화 할 수 있는 키로써 자신(서버)만이 가지고 있는 키입니다.

이 방법은 안전하게 데이터를 주고받을 수 있게 만들어주지만 속도가 느리다는 단점이있습니다.
SSL을 적용하기 위해서는 인증서라는 것이 필요합니다.
인증서의 내용은 크게 2가지로 구분할 수 있습니다.
이 인증서를 발급해주는 기업을 CA라고 합니다. 인증서가 보안에 관련된 것인 만큼 이 CA는 영향력있고 신뢰할수 있는 기업에서만 가능합니다.
HTTPS 통신과정 및 원리
먼저 간단하게 들여다보면 동작방식은 앞서 말씀드린 대칭키와 공개키(비대칭키) 방식을 전부 사용하는 하이브리드 방식입니다.
데이터 전송을 위해 대칭키 방식을 사용하며 대칭키를 안전하게 전달하기 위해 공개키 방식을 사용합니다.
아래 그림을 보면서 더 자세하게 설명해보겠습니다.
