Https

2020. 6. 8. 11:14네트워크, 통신

Https란

Http의 약점

Http는 웹에서 사용되는 심플하면서도 중요한 기술이지만 치명적인 단점이 있습니다. 아래의 그림과 같이 브라우저와 웹 서버가 통신함에 있어서 주고 받는 데이터가 암호화 되지 않고 그대로 전송된다는 점입니다.

Http는 인터넷을 통해 웹 서버와 브라우저가 통신하는데, 해커가 중간에 도청하게 된다면 중요한 정보들을 탈취할 수 있습니다. 만약 이러한 데이터가 로그인 기능에서 사용하는 아이디, 비밀번호나 개인 정보와 관련된 데이터라면 치명적일 수 있습니다. 뿐만 아니라 정상적인 데이터를 중간에서 악의적으로 변조시킬 수도 있습니다.

Https란

Https는 데이터가 암호화 되지 않는 Http의 단점을 극복하기 위해 Http에 암호화나 인증의 기능을 가진 SSL을 추가한 기술입니다. Https는 새로운 프로토콜이 아니라, Http 통신을 하는 소켓 부분을 SSL이라는 프로토콜로 대체하고 있는 것입니다. 즉 말하자면, Https는 직접 TCP 통신을 하는 것이 아니라 SSL과 통신을 하게 됩니다.
Https는 비공개키 암호화와 공개키 암호화 양쪽 성질을 가진 하이브리드 암호 시스템입니다. 이 두 가지 방식을 조합해서 장점을 살립니다. 서버와 클라이언트가 키를 교환하는 곳에서는 공개키 암호화를 사용하고 그 이후의 통신에서 메시지를 교환하는 곳에서는 비공개키 암호화를 사용합니다.

Https의 통신 과정

  1. 해당 사이트는 CA(인증 기관)에 인증서를 발급 요청합니다.
  2. CA로부터 검토를 인증기관의 개인키로 암호화하여 사이트 인증서를 제작합니다.
  3. 서버로 인증서를 발급합니다. (인증서에는 사이트의 공개키 + 사이트 정보가 포함됨)
  4. 인증 브라우저에 인증기관의 공개키를 제공합니다.
  5. 브라우저가 서버에 접속을 요청합니다.
  6. 서버는 CA로부터 발급받은 인증서를 브라우저에 전달합니다.
  7. 브라우저에 저장된 인증기관의 개인키를 이용해 인증서를 해독하여 서버의 공개키를 획득합니다.
  8. 브라우저는 서버로부터 받은 공개키로 대칭키를 암호화하여 서버로 전송합니다.
  9. 서버는 개인키를 이용해 브라우저로부터 받은 정보를 해독 후 대칭키를 획득합니다.
  10. 이후 대칭키를 이용해 메시지를 주고 받습니다.

참조: https://dololak.tistory.com/541
참조: https://minwan1.github.io/2019/01/09/2019-01-14-https/

728x90

'네트워크, 통신' 카테고리의 다른 글

HTTP2  (0) 2020.06.09
SSL  (0) 2020.06.08
AMQP  (0) 2020.05.13
CORS  (0) 2020.03.29
로드 밸런서  (0) 2020.03.20