WEB

HTTP와 HTTPS 개념과 대칭키, 비대칭키 사용

웅덩이 2022. 8. 12. 16:56

📌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