HTTPS

마동찬·2023년 8월 18일

HTTPS란?

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


HTTPS는 TCP 위에 SSL/TLS 층을 추가하여 암호화, 인증 그리고 무결성 보장을 통해 더 안전하게 만들어주는 프로토콜입니다.


HTTPS의 동작방식을 알아보기전에 먼저 3가지 개념을 먼저 알고 가야합니다.

📌1. 대칭키


만약 클라이언트와 서버가 대칭키 방식으로 통신을 한다면 클라이언트도 키를 가지고 있어야합니다.

클라이언트에게 키를 전달하기도 위험하며 클라이언트의 소스코드는 누구든지 열어볼 수 있으므로 가지고 있기도 굉장히 위험합니다.

즉, 원거리에서 대칭키를 안전하게 전달하는 것이 매우 어렵습니다.

  1. 공개키 (비대칭키)

공개키와 개인키(비밀키)라는 2가지 키를 사용하는 기법입니다.

공개키는 말그대로 누구나 획득할 수 있는 공개된 키를 뜻합니다. 정보를 보내는쪽(클라이언트)은 이 키를 가지고 데이터를 암호화해서 전송합니다.

개인키(비밀키)는 공개키로 암호화된 데이터를 복호화 할 수 있는 키로써 자신(서버)만이 가지고 있는 키입니다.

이 방법은 안전하게 데이터를 주고받을 수 있게 만들어주지만 속도가 느리다는 단점이있습니다.

  1. 인증서와 CA(Certificate authority)

SSL을 적용하기 위해서는 인증서라는 것이 필요합니다.

인증서의 내용은 크게 2가지로 구분할 수 있습니다.

  • 서비스의 정보 (CA, 도메인 등등)
  • 서버 측의 공개키 (공개키의 내용, 공개키의 암호화 방식)

이 인증서를 발급해주는 기업을 CA라고 합니다. 인증서가 보안에 관련된 것인 만큼 이 CA는 영향력있고 신뢰할수 있는 기업에서만 가능합니다.


HTTPS 통신과정 및 원리

먼저 간단하게 들여다보면 동작방식은 앞서 말씀드린 대칭키와 공개키(비대칭키) 방식을 전부 사용하는 하이브리드 방식입니다.

데이터 전송을 위해 대칭키 방식을 사용하며 대칭키를 안전하게 전달하기 위해 공개키 방식을 사용합니다.

아래 그림을 보면서 더 자세하게 설명해보겠습니다.

Ref. https://dontbesatisfied.tistory.com/11

profile
새내기개발자 성장기록

0개의 댓글