Interview 8장 - HTTPS
포스트
취소

Interview 8장 - HTTPS

Interview

HTTPS

  • HTTP Secure의 약자로, 기존의 HTTP 프로토콜을 더 안전하게 사용할 수 있음을 의미한다.
  • 데이터가 암호화됐기 떄문에 중간에 제 3자에게 데이터를 탈취당하더라도 그 내용을 알아볼 수 없다.

암호화 방식

  • 데이터를 암호화할 떄는 사용할 키, 암호화한 것을 해석할 때 사용할 키가 필요하다.
  • 암호와와 복호화할 때 사용하는 키가 동일하다면 대칭 키 암호화 방식, 다르다면 공개 키 암호화 방식이라고 한다. image

대칭 키 암호화 방식

  • 대칭 키 암호화 방식은 하나의 키만 사용한다.
  • 암호화할 때 사용한 키로만 복호화가 가능하다.
  • 두 개의 키를 사용해야하는 공개 키 방식에 비해 연산 속도가 빠르다.
  • 키를 탈취 당했을 때는 암호화가 소용없어지기 때문에 키를 관리하는데 신경을 써야 한다. image

공개 키(비대칭 키)암호화 방식

  • 비대칭 키 암호화 방식은 두 개의 키를 사용한다.
  • 두 개의 키를 각각 공개 키, 비밀 키 라고 부른다.
  • 공개 키는 공개되어 있기 때문에 누구든지 접근이 가능하며, 이 공개 키를 사용해서 암호화한 데이터를 보내면, 비밀 키를 가진 사람만 그 내용을 복호화할 수 있다.
  • 보통 사용자가 공개 키를, 요청을 받는 서버가 비밀 키를 가진다.
  • 비밀 키는 서버가 탈취당하지 않는 이상 공개되지 않는다.
  • 보완성이 더 좋지만 더 많은 시간을 소모한다는 단점이 있다. image

SSL/TLS 프로토콜

  • HTTPS는 통신을 하는 소켓 부분에서 SSL 혹은 TLS라는 프로토콜을 사용하여 서버 인증과 데이터 암호화를 진행한다.
    • CA를 통한 인증서를 사용한다.
    • 대칭 키, 공개 키 암호화 방식을 모두 사용한다.
인증서와 CA
  • 서버의 신원을 보증해주는 인증서를 발급하는 공인된 기관을 CA라고 부른다.
  • 서버는 인증서를 발급하기 위해 CA로 서버의 정보와 공개 키를 전달하고, CA는 서버의 공개 키와 정보를 CA의 비밀 키로 암호화하여 인증서를 발급한다.
  • 서버는 클라이언트에게 요청을 받으면 CA에게 발급받은 인증서를 보내고, 해당 인증서가 리스트에 있는 CA가 발급한 인증서인지 확인하고, 인증서의 복호화를 시도한다.
  • CA의 비밀 키로 암호화된 데이터는 CA의 공개 키로만 복호화가 가능하므로 복호화를 성공적으로 진행시켜 해당 서버가 신뢰할 수 있는 서버임을 알 수 있게 된다. image image
대칭 키 전달
  • 이제 사용자가 서버의 인증서를 성공적으로 복호화하여 서버의 공개 키를 확보한다.
  • 공개 키 암호화 방식은 보완은 확실하지만 복잡한 연산이 필요하여 더 많은 시간을 소모하기 때문에 효율이 좋지 않다.
  • 이러한 공개 키는 클라이언트와 서버거 함께 사용학 될 대칭 키를 주고 받을 때 쓰게 된다.
  • 대칭 키는 속도는 빠르지만 오고 가는 과정에서 탈취될 수 있다는 위험성이 있다.
  • 클라이언트는 데이터를 암호화하여 주고받을 때 사용할 대칭 키를 사용하고, 생성한 대칭 키를 서버의 공개 키로 암호화하여 전달한다.
  • 전달받은 데이터를 비밀 키로 복호화하여 대칭 키를 확보한다.
  • 대칭 키를 사용하여 데이터를 암호화하여 전달하기 때문에, 키 자체가 오고 가지는 않아 키가 유출될 위험이 없다. image image
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.