심심한잉여의 잡동사니

HTTP와 HTTPS의 이해 본문

코딩일기/Java

HTTP와 HTTPS의 이해

심심한잉여 2022. 3. 12. 19:27
반응형

항상 듣는 HTTP와 HTTPS

간단하게 HTTP는 하나의 규약이고 HTTPS는 이 규약에 암호화과정을 넣어 도중에 도청되지 않도록 한 것이다 정도만 알고 있었기에 한번 정리를 하며 머리에 넣고자 이 글을 쓴다.

HTTP(Hyper Text Transfer Protocol)란?
웹 상에서 클라이언트와 서버가 서로 정보를 주고받을 수 있도록 하는 규약
HTML 문서를 교환하기 위해 만들어진 통신규약

클라이언트는 URL로 된 HTTP를 통해 서버에게 정보를 요청하고 서버는 이 요청을 해석하고 요청에 맞는 정보를 응답합니다.

HTTP를 통해 이 행위들이 이루어집니다.

 

그렇다면 HTTPS는 무엇인가?

HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer)는 HTTP를 보완하는 수단입니다.

HTTP는 암호화가 되어있지 않기 때문에 도난이나 변조, 도청이 가능합니다.
HTTPS는 HTTP의 일반 텍스트에 SSL이나 TLS프로토콜을 씌워 데이터를 암호화하는 기법이며, 로그인이나 결제화면에서 주로 쓰입니다.

HTTPS를 이해할 때 알아야 하는 것들
1. 암호화 : 어떤 정보를 암호화 된 정보로 바꾸는 것
2. 복호화 : 암호화된 정보를 다시 원래 정보로 바꾸는 것
3. 키 : 암호화, 복호화할 때 사용하는 비밀번호
4. HTTPS는 공통 키 방식과 비대칭 키 방식을 같이 사용합니다.
4-1. 공통(대칭) 키 방식 : 암호화할 때와 복호화 할 때 클라이언트와 서버가 같은 키를 사용하는 방식
   - 장점 : 단순한 구조로 CPU를 적게 쓰고 빠르다.
   - 단점 : 공통 키를 빼앗기면 복호화를 할 수 있으므로 보안에 취약하다는 단점이 있다.
4-2. 비대칭 키 방식 : 암호화할 때와 복호화 할 때 클라이언트와 서버가 다른 키를 사용하는 비대칭 방식입니다.
   - 장점 : 키 전송과정 중 해킹당해도 해독을 할 수 없어 공통 키 방식보다 안전합니다.
   - 단점 : 공통 키 방식보다 느리고 리소스 소비가 큽니다.

 

HTTPS는 공통 키, 비대칭 키를 같이 사용하는 이유
1. 비대칭키가 가진 이점을 이어가되 전송 소요시간 및 리소스 부담을 줄이는 방식
2. HTTPS를 통해 통신이 시작되면
서버는 서버가 제공한 비대칭키와 증명서에 부합하는 요청을 클라이언트가 보냈는지 확인 합니다.
클라이언트가 공통 키를 서버가 제공한 비대칭 키로 암호화해 서버에게 보낸 첫 번째 요청을 복호화하는것을 핸드쉐이크라고 부르는데 이 과정이 끝나면 실제 요청과 정보를 교환하는 과정이 이어집니다.
2-1. 서버가 제공하는 비대칭 키를 써 클라이언트는 서버게에 보낼 공통키를 암호화합니다.
2-2. 서버는 클라이언트가 보낸 암호화 된 요청을 비대칭 키로 복호화합니다.
2-3. 결과적으로 클라이언트와 서버는 서버가 제공한 비대칭키를 통해 암호화 된 공통키로 통신합니다.

반응형