본문 바로가기
Study/Network

[Network] SSL/TLS

by jamiehun 2023. 4. 3.

SSL과 TLS를 알아보기 전에 우선 대칭키와 비대칭키를 알아보자

 

 

대칭키는

어떤 정보를 암호화, 복호화할 때 사용하는 키가 동일(대칭)하다.

즉, 어떤 정보가 대칭키를 통해 암호화 되었다면 복호화할 때 똑같은 키를 가지고 있어야 한다.

 

 

반면에 비대칭키는

어떤 정보를 암호화, 복호화할 때 사용하는 키가 다른(비대칭) 경우이다.

 

여기서 공개키와 개인키가 있는데

 

공개키는 말 그대로 공개가 되어도 되는 키 / 개인키는 개인만 가지고 있는 키이다.

예를 들어 공개키로 암호화했을 경우 개인키로 복호화되는 경우가 비대칭키의 예이다.

 

반면 개인키로 암호화를 했을 경우 공개키로 복호화를 할 수 있다.

 


SSL과 TLS은

보안프로토콜의 하나로서 연결의 보안을 제공하고 2개의 파티간의 프라이버시와 데이터 무결성을 확보한다.

TLS는 Netscape SSL 3.0에서 발명된 것이지만 SSL과 TLS가 상호 작동하지는 않는다.

 

 

SSL/TLS handshake의 동작과정은 아래와 같다.

https://www.ibm.com/docs/en/ibm-mq/7.5?topic=ssl-overview-tls-handshake

 

1. SSL/TLS 클라이언트는 버전, 압축방식, CipherSuite 등을 암호화하여 SSL/TLS 서버에게 보낸다.

 

2. SSL/TLS 서버는 클라이언트에게 클라이언트가 제공한 리스트 중에 

    하나의 CipherSuite, session ID, digital certificate 등을 보낸다.

    만약 client 인증을 위한 digital certificate이 필요하면

    거기에 대한 “client certificate request”도 함께 보낸다. (서버 공개키와 같이)

 

3. 클라이언트는 서버의 digital certificate를 검증한다.

 

4. 클라이언트는 임의의 난수 byte를 보내는데,

    이는 추후 클라이언트-서버 사이의 대칭키를 만들기 위해 사용이 되고 임의의 난수 byte는 서버의 공개키를 통해 암호화한다.

 

5. 만약 서버가 2번에서 “client certificate request”를 요구하였다면,

    클라이언트는 클라이언트의 개인키를 통하여 랜덤 난수와 digital certificate를 암호화하여 등을 보낸다.

    (certificate가 없으면 없다는 alert를 송부)

 

6. SSL은 클라이언트의 certificate를 확인한다. (if required)

 

7. 클라이언트는 “finished” message를 보내는데, 이는 비공개키로 암호화 되어 있다. ⇒ handshake 완료!

 

8. 서버는 “finished” message를 보내는데, 이는 비공개키로 암호화 되어 있다. ⇒ handshake 완료!

 

9. SSL/TLS 세션 동안 서버와 클라이언트는 서로 메시지를 주고 받을 수 있으며,

    해당 내용은 대칭된 암호화키를 가지고 암호화하여 주고받음 (아래 그림에서는 5번)

 


 

위의 과정을 그림으로 나타내면 아래와 같다.

 


참고

https://www.ibm.com/docs/en/ibm-mq/7.5?topic=ssl-overview-tls-handshake 

 

An overview of the SSL or TLS handshake

The SSL or TLS handshake enables the SSL or TLS client and server to establish the secret keys with which they communicate. This section provides a summary of the steps that enable the SSL or TLS client and server to communicate with each other. Agree on t

www.ibm.com

 

https://myjamong.tistory.com/293

 

대칭키 / 비대칭키 양방향 암호화 기법

양방향 암호화 이전 글에서는 봤던 단방향 암호화 기법과 반대로... 대칭키와 비대칭키는 양방향 암호화 방식 이다. Hash를 사용한 단방향 암호화 방식과는 다르게 암호화된 암호문을 복호화할

myjamong.tistory.com

 

'Study > Network' 카테고리의 다른 글

[Network] HTTP와 HTTPS  (0) 2023.04.03
[Network] OSI 참조모델 (TCP/UDP와 handshake)  (0) 2023.04.03
[Network] OSI 참조 모델 (OSI 7계층)  (0) 2023.04.03