SSL(TLS)은 어떻게 동작하는가?

2022. 3. 2. 02:20Computer Science

대칭키와 비대칭키 

 

대칭키 : 암호화와 복호화에 같은 키를 사용.

ex) 숫자를 앞뒤로 뒤집는 방법을 대칭키로 사용한다면, ‘1234’ 가 주어졌을 시

  • 암호화된 숫자 → 4321
  • 복호화된 숫자 → 1234

비대칭키(공개키 암호화 방식) : 암호화와 복호화에 다른 키를 사용.

ex) 숫자에 “42135를 곱하는 방식”으로 암호화하고 “42135를 나누는 방식"으로 복호화하며, 1234가 주어지면

  • 암호화된 숫자 → 1234 * 42135 = 51994590
  • 복호화된 숫자 → 51994590 / 42135 = 1234

SSL, SSL의 동작 방식

 

SSL이란?) 인터넷 상에서 정보를 암호화해서 송수신하는 프로토콜. 클라이언트와 서버 간 통신을 보증하기 위해, SSL 인증서를 통한 제 3자(CA)가 개입한다.

대칭키와 비대칭키 두 방식을 혼합해서 사용하며, 서버가 클라이언트에게 SSL 인증서를 통해 공개키를 보낸다. SSL 인증서는 공인된 기관(CA)으로부터 발급 받으며, 이 SSL 인증서 또한 CA의 개인키로 암호화가 되어 있다.

클라이언트 측 브라우저에 CA 들의 리스트 및 각각의 복호화 공개키가 저장되어 있으며, 이 공개키는 서버로부터 오는 SSL 인증서를 복호화(해독)하는데 사용한다.

동작 방식

  1. 클라이언트 → 서버로 접속. 다음의 정보들과 함께 요청한다.
    • 랜덤 데이터 a(클라이언트 측에서 생성)
    • 클라이언트 측에서 사용할 수 있는 암호화 방식
  2. 서버 → 클라이언트로 응답. 다음의 정보를 포함한다.
    • 랜덤 데이터 b(서버 측에서 생성)
    • 선택한 암호화 방식
    • SSL 인증서(서버의 공개키가 포함 있음. 암호화 되어 있음)
  3. 클라이언트 측에서 다음 작업을 수행.
    1. SSL 인증서를 발급한 CA 확인 및 인증서 복호화 → 서버의 공개키 획득!
    2. 데이터 a + b를 조합하여 새로운 대칭키 pre master key 생성.
    3. 서버의 공개키로 pre master key 자체를 암호화.
  4. 클라이언트 → 서버로 암호화된 pre master key를 전송.
  5. 서버에서는 개인키를 바탕으로, 암호화된 pre master key를 복호화. 클, 서버 둘 다 pre master key 획득!
  6. 클 / 서버 둘 다 pre master key → master key로 변경. 이후 master key를 대칭키로 사용하여, 통신 데이터를 암호화.

 

참고) https://study-recording.tistory.com/11, https://opentutorials.org/course/228/4894