[보안] 1장 HTTPS 란

웹에서 보안은 사용자 정보를 보호하기 위해 필수적이다!


HTTPS와 HTTP

SSL 인증서가 필요한 이유


주요 용어 정리


SSL의 동작 방법

  1. 악수

    • 클라이언트와 서버는 서로 데이터를 주고 받기 전에 핸드쉐이킹을 통해 상대방이 존재하는지, 상대방과 어떻게 데이터를 주고 받을 것인지 확인한다.

    • SSL 방식을 이용할 때는, 이 때 SSL 인증서를 주고 받는다.

    • 공개키 방식의 문제

      • 공개키 방식의 암호화는 컴퓨터 자원을 많이 잡아먹기 때문에 쓰지 않는다
      • 대칭키 방식은 수신 측과 송신 측이 키를 공유해야 하므로 보안상 문제가 생긴다.

      그래서 SSL에서는 공개키와 대칭키를 혼합해서 사용한다.

      ![img](https://blogfiles.pstatic.net/MjAxODA4MTRfMTAg/MDAxNTM0MjMxNDM4MDMw.e3wpSu9XeNAp8aTHaKLgMF6LBdT9V-KE6ksTEyds1uAg.1Dady7dqXB8dekLWvKUcyhzTQ7O_N68VdmgnjNlHdoog.JPEG.3457soso/68747470733a2f2f737065616b6572642e73332e616d617a6f6e6177732e636f6d2f70726573656e746174696f6e732f38613036623334646633343834663132383939386535633539313733653262342f736c6964655f31352e6a7067.jpeg)핸드쉐이킹

    1. ClientHello : 클라이언트가 서버에 접속한다.
      • 클라이언트와 서버가 서로 어떤 암호화 방식을 쓸 것인지 정해야 하기 때문에, 클라에서 서버로 먼저 쓸 수 있는 암호화 방식 리스트를 알려준다.
      • 이미 SSL 핸드쉐이킹을 했다면 또 할 필요가 없다. 기존 세션을 재활용하기 위해 세션 아이디도 함께 보낸다.
    2. ServerHello : 서버는 클라이언트에게 응답한다.
      • 클라이언트로부터 받은 암호화 방식 중 서버에서 쓸 수 있는 것을 골라서 리턴한다.
      • SSL 인증서를 클라이언트로 보낸다.
    3. 클라이언트는 서버의 인증서가 CA에 의해 발급된 것인지 확인한다.
    4. 확인이 끝나면 클라이언트에 내장된 CA의 공개키를 이용해 인증서를 복호화한다.
    5. 세션키를 클라이언트와 서버가 모두 공유하면 클라이언트와 서버는 핸드쉐이크 단계의 종료를 서로에게 알린다.
  2. 세션

    • 세션은 실제로 서버와 클라이언트가 데이터를 서로 주고 받는 단계이다.

    • 정보를 상대방에게 전송하기 전에 세션 키 값을 이용해 대칭키 방식으로 암호화한다

      • 세션 키는 서로 공유하고 있기 때문에 복호화가 가능하다.

  3. 세션 종료

    • 데이터의 전송이 끝나면 SSL 통신이 끝나싸음을 서로에게 알려준다.

    • 통신에서 사용한 대칭키인 세션키를 폐기한다.


참고 문헌