2021-11-2 그림으로배우는 HTTP (9주차)

HTTPS

HTTP의 약점

  • 암호화 하지 않은 통신이기 때문에 도청 가능
  • 통신 상대를 확인하지 않기 때문에 위장 가능
  • 완전성을 증명할 수 없기 때문에 변조 가능

암호화

  • 통신 암호화
    • SSL이나 TLS라는 다른 프로토콜을 조합함으로써 HTTP의 통신 내용을 암호화할 수 있습니다
    • SSL 등을 이용해 안전한 통로를 확립하고 나서 그 통신로를 사용해 HTTP통신을 한다.
  • 콘텐츠 암호화
    • 콘텐츠의 내용 자체를 암호화해 버리는 방법 - HTTP에 함호화기능은 없기에 운반하는 내용을 암호화

통신 상대를 확인하지 않기 때문에 위장 가능

  • 통신 상대를 확인하지 않기에 누구나 리퀘스트할 수 있다
  • 리퀘스트를 보낸곳의 웹서버가 원래 의도한 서버인지 아닌지 확인불가 - 위장한 웹서버일 우려
  • 리스폰스 반환한 곳의 클라이언트 - 위장한 클라이언트일 우려
  • 통신하고 있는 상대가 접근이 허가된 상대인지 아닌지 확인 불가

상대를 확인하는 증명서

  • HTTP에서는 상대를 확인할 수 없지만 SSL로 확인할 수 있다.

완전성을 증명할 수 없기 때문에 변조 간으

  • 리퀘스트나 리스폰스가 발신된 후에 상대가 수신할 때까지의 사이에 변조되었더라도 알 수 없다.
  • 해시 값을 확인하는 방법과 파일의 디지털 서명을 확닝하는 방법

HTTPS는 SSL의 껍질을 덮어쓴 HTTP

  • 보통 HTTP는 직접 TCP와 통신하지만 SSL을 사용한 경우에는 HTTP는 SSL과 통신하고 SSL이 TCP와 통신
  • 공통키 암호화의 딜레마
    • 어떻게 안전하게 키를 배송할지
  • 두 개의 키를 사용하는 공개키 암호
    • 서로 다른 두 개의 키 페어를 사용한다 - public, private key
    • 암호를 보내는 측이 상대의 공개키를 사용해 암호화, 받아들인 상대는 비밀키를 사용해 복호화
Written on November 2, 2021