HTTP와 HTTPS 개념과 대칭키, 비대칭키 사용
📌HTTP (Hyper Text Transfer Protocol)
- 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜
→ HTTP는 암호화가 되지 않은 평문 데이터를 전송하는 프로토콜이기 때문에 보안에 취약
# 하이퍼 텍스트 : 문서 중간 중간 특정 키워드를 두고 문자나 그림을 상호 유기적으로 결합하여 연결시켜서
서로 다른 문서여도 하나의 문서인 것처럼 보이면서 참조하기 쉽도록 하는 방식
# 프로토콜 : 통신 시스템이 데이터를 교환하기 위해 사용하는 통신 규칙
📌HTTPS (Hyper Text Transfer Protocol Secure)
- HTTP에 데이터 암호화, 복호화가 추가된 프로토콜
- 대칭키 암호화 방식과 비대칭키 암호화 방식 모두 사용
- 안전하게 데이터 교환 가능하며 HTTP보다 속도가 느림
→ 네트워크 상에서 중간에 제 3자가 정보를 볼 수 없도록 지원

📌 대칭키 암호화와 비대칭키 암호화
- 대칭키 암호화 : 클라이언트와 서버가 동일한 키를 사용하여 암호화/복호화
특징 ① 키가 노출되면 매우 위험하지만 ② 연산 속도 빠름
- 비대칭키 암호화 : 공개키와 개인키를 한 쌍으로 구성하여 암호화/복호화
- 특징 ① 키가 노출되어도 비교적 안전하지만 ② 연산 속도가 느림
- 공개키 : 모두에게 공개 가능한 키
- 개인키 : 공개되지 않고 비밀리에 자신만 사용하는 키
▶ 암호화는 공개키, 복호화는 개인키로 했을 경우,
개인키는 자신만 사용하므로 데이터를 자신만 볼 수 있음
▶ 암호화는 개인키, 복호화는 공개키로 했을 경우,
내가 인증한 정보임을 알려 신뢰성을 보장하고 모두에게 공개할 수 있음
📌 HTTPS 동작 과정
① 클라이언트가 서버로 최초 연결 시도
② 서버는 공개키(인증서)를 클라이언트에 넘김
③ 클라이언트는 인증서의 유효성 검사 후 세션키 발급
(세션키 : 데이터를 교환할 때 빠른 연산 속도가 필요하므로 대칭키 사용)
④ 클라이언트는 세션키를 보관하며 추가로 서버의 공개키로 세션키를 암호화하여 서버로 전송
⑤ 서버는 개인키로 암호화된 세션키를 복호화하여 세션키를 얻음
⑥ 클라이언트와 서버는 동일한 세션키를 공유하고, 데이터를 전달할 때 세션키로 암호화/복호화
이 글은 아래 포스팅과 네이버 사전을 참고하여 만들어졌습니다
[Web] HTTP와 HTTPS의 개념 및 차이점
1. HTTP란? [ HTTP(Hyper Text Transfer Protocol)란? ] HTTP(Hyper Text Transfer Protocol)란 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜이다. 즉, HTTP는 인터넷에서 하이퍼텍스트를 교환..
mangkyu.tistory.com