HTTP vs. HTTPS (대칭키, 공개키)

JH·2022년 11월 13일

Computer Science

목록 보기
4/9

HTTP

Hypertext Transfer Protocol, 클라이언트와 서버 간 통신하기 위한 프로토콜이다.

  1. TCP/IP를 이용하는 응용 프로토콜

  2. 연결 상태를 유지하지 않는 비연결성/무상태 프로토콜

    • 접속유지 최소화, 다수의 요청처리 가능
    • 클라이언트 이전 상태 알수없음
  3. 요청/응답 방식으로 작동

HTTPS

Hypertext Transfer Protocol Secure, 기존 HTTP보다 더 안전한 보안용 프로토콜이다.

  • HTTPS 웹 페이지에서 전송되는 모든 데이터는 보안계층이 있어 제 3자로부터 보호된다.
  • 신뢰할 수 있는 사이트인지 알려준다.

보안 기능의 원리를 알기 위해서 대칭키, 공개키를 알아야 한다.

🔑 대칭키

암호화, 복호화 키가 동일하며 해당 키를 갖는 사람이 문서를 복호화할 수 있다.

장점

  • 비대칭키(공개키)에 비해 속도가 빠르다.
  • 대용량 암호화에 적합하다.

단점

  • 같은 해독키를 갖기 위해 키를 전송할 때 탈취될 가능성이 있다.
  • 사람이 많아지면 키 관리가 어려워진다.

🔐 공개키

서버에서 개인키를 보관하고, 대중에게 공개키를 공개하여 키 교환 문제 를 해결할 수 있다.

장점

  • A키로 암호화하면 B키로만 복호화할 수 있기 때문에 비밀번호를 암호화해서 서버에 보내면 서버에서만 풀 수 있다.
  • 기밀성, 인증, 부인방지 기능을 제공한다.

단점

  • 속도가 느리다.

구현과정

클라이언트는 서버를 신뢰하지 못해 탐색과정을 거친다. (= handshake)

클라이언트는 서버에 랜덤 데이터를 보내고, 서버는 클라이언트에 랜덤 데이터와 서버 인증서를 보낸다.

개인키로 암호화된 인증서는 브라우저에 내장된 CA 목록 중 해당하는 공개키로 복호화된다. (인증서에는 서버의 공개키가 포함되어 있다.)

공개키를 받아서 공개키 방식으로 데이터를 주고 받을 수 있지만, 다량의 데이터를 암호화하는데 무리가 있기 때문에 대칭키만 전달하고 이후로는 대칭키 방식으로 데이터를 교환한다.

처음 탐색과정에서 보냈던 랜덤 데이터를 혼합해 임시 키를 만들고 서버의 공개키로 암호화되어 서버로 보내진다.

일련의 과정을 거쳐 동일한 대칭키가 만들어진다.

❗️ 참고

https://www.youtube.com/watch?v=H6lpFRpyl14

profile
매일 한 문제씩 풀기

0개의 댓글