우아한테크코스 테코톡

라쿤의 HTTPS

https://youtu.be/Il3xLZ4b7NM

라쿤의 HTTPS

HTTP (Hypertext Transfer Protocol)

  • HTTP의 문제점
    • 암호화 되어있지 않다.
      • 누군가가 서버-클라이언트 간의 http 메시지를 볼 수 있다.
    • 웹 브라우저에서 HTTP를 사용하면은 경고 문구가 나온다.

HTTPS (Hypertext Transfer Protocol Secure)

  • 사전지식
    • 대칭키 암호화
      • 암복호화에 서로 같은 키를 사용한다.
    • 공개키 암호화
      • 암복호화에 서로 다른 키를 사용한다.
    • 디지털 서명
      • 공개키 암호화 방식을 사용
대칭키 암호화공개키 암호화
암복호화에 동일한 키암복호화에 다른키
키의 길이가 짧아 암복호화가 빠름키의 길이가 길어서 암복호화가 느림
키를 서로 나누는 과정이 필요키를 나눌 필요가 없음
  • SSL/TLS를 이용한 http 통신
    • img.png
    • SSL 과 TLS의 차이점은 TLS가 SSL의 업그레이드 버전이다
  • SSL(Secure Sorket Layer)
    • 전송되는 데이터를 암호화
  • HTTPS를 적용 하기 전에 사전에 서버가 행해야 되는 행동
    • img.png
      • 서버는 인증기관으로 부터 본인의 정보와 인증서를 발급 해 달라는 요청을 한다.
      • 인증기관은 인증기관이 가지고 있는 비밀키를 사용해서 이 정보에 대한 인증서를 발급해준다.
      • 인증서에는 서버 도메인과 서버측 공개키, 인증기관 등의 정보가 들어간다.
    • img.png
      • 클라이언트가 서버에게 요청한다.
      • 서버는 클라이언트에게 인증서를 발급한다.
        • 인증서 내에는 공개키가 있어서 클라이언트는 공개키를 얻을 수 있다.
      • 인증서는 인증기관의 비밀키로 암호화가 되어 있는데 클라이언트는 인증기관에 공개키가 있어야 될텐데 인증기관의 공개키는 웹 브라우저의 인증기관 공개키를 사전에 가지고 있다.
        • 이를 통해 서버의 공개키를 얻을 수 있고 이후 클라이언트는 대칭키를 만들어 낸다.
          • 대칭키 암호화 방식이 공개키 암호화 방식에 비해 빠르기 때문에 데이터 전송하는데 있어서는 대칭키 암호화 방식을 사용하기 위해 대칭키를 공개키로 암호화해서 전달한다.
      • 서버에게 암호화된 대칭키를 전달하면 서버는 암호화된 대칭키를 받게 되고 복호화해서 대칭키를 얻는다. 서버의 비밀키를 사용해서
    • img.png
  • HTTPS가 항상 좋을까?
    • HTTPS는 HTTP보다 느리다
      • 서로 키를 교환하는 과정이 추가로 필요
      • 암복호화에도 걸리는 시간
    • 그럼 왜 쓸까?
      • HTTPS가 시간이 지나면서 개선된 상태
      • 대부분의 웹브라우저에서 HTTP 2.0은 TLS 사용이 필수 - RFC7540
      • 사이트의 보안은 매우 중요하다.

© 2020. All rights reserved.

SIKSIK