본문 바로가기
Network

HTTP와 HTTPS의 차이점

by orioncsy 2023. 2. 15.

HTTP와 HTTPS의 차이점

HTTP 개념

HTTP(HyperText Transfer Protocol)

  • 웹 서버와 브라우저 사이의 데이터 전송을 위한 application layer 프로토콜이다.

HTTPS 개념

HTTPS(HyperText Transfer Protocol Secure)

  • HTTP 프로토콜에서 SSL(Secure Socket Layer) 또는 TLS(Transport Layer Security) 인증서를 활용하여 HTTP 응답 및 요청을 암호화한다.

SSL Handshaking

개념

  • 통신을 하는 브라우저가 웹 서버와 암호화 통신을 할 수 있도록 신분을 확인하고 필요한 정보를 주고 받는 과정

대칭키

  • 하나의 키로 암호화와 복호화를 진행한다.
  • 사용하는 비용이 적지만 노출되면 보안상 위험하다.

비대칭키

  • 공개 키와 비밀 키로 암호화, 복호화를 진행한다.
  • 공개 키로 암호화하면 비밀 키로 복호화할 수 있고, 비밀 키로 암호화하면 공개 키로 복호화할 수 있다.
  • 보안상 유리하나 구현이 복잡하고 암호화, 복호화 속도가 느리다.
  • 사용 방식
    • 공개 키 - 암호화, 비밀 키 - 복호화
      • 데이터를 암호화하여 보호하는 목적
    • 비밀 키 - 암호화, 공개 키 - 복호화
      • 인증을 하려는 목적
      • 서버가 비밀 키로 암호화해서 클라이언트에게 보내서 공개 키로 복호화에 성공했을 때 인증 완료

SSL에서 사용하는 대칭키와 비대칭키 혼합 사용 사례

  • A가 B에게 접속 요청
  • B는 A에게 공개 키를 전달
  • A는 자신의 대칭 키를 B로 부터 받은 공개 키로 암호화하여 B에게 전달
  • B는 비밀 키를 통해 복호화하여 대칭 키를 가져온다.
  • 공유된 대칭키를 통해 정보를 통신한다.

CA(Certificate authority)

  • 인증서는 클라이언트가 접속한 서버가 의도한 서버가 맞는 지 확인하는 것이다.
  • 이러한 역할을 민간 기업이 하는데 이것이 CA이다.
  • 개발자가 HTTPS를 적용하려면 신뢰할 만한 CA 기업의 인증서 구입
  • CA 기업은 인증서를 기업의 개인 키로 암호화하여 준다.

SSL 인증서

  • 서비스의 정보(CA 정보, 서비스 도메인)와 서버 측 공개 키가 들어 있다.
  • 브라우저에 CA 기관 리스트와 해당 기관의 공개키를 가지고 있어 그것을 통해 인증서를 복호화해서 인증서를 확인하고 서버 측 공개 키를 가져온다.

SSL handshaking 과정

  • 서버가 CA에 사이트 정보와 공개 키를 전달해서 CA는 비밀키로 암호화한 인증서를 받는다.
  • 클라이언트가 브라우저에서 공개키를 가져와 인증서를 복호화하고 인증서를 확인 한 뒤에 공개키를 통해 대칭키를 암호화하고 서버에게 전달한다.
  • 서버는 비밀키를 통해 복호화하여 대칭키를 가져와서 통신한다.

Reference

HTTP HTTPS 차이: 당신의 웹 사이트는 안전한가요? - 어센트 코리아

[네트워크] TLS & SSL Handshake

'Network' 카테고리의 다른 글

CORS  (0) 2023.02.18
REST  (0) 2023.02.17
HTTP 메서드  (0) 2023.02.16
TCP와 UDP의 차이  (0) 2023.02.15
구글 웹사이트에 접속하면 발생하는 일  (0) 2023.02.14