[암호화] SSL의 지원하는 기술

2022. 9. 30. 15:50TIL💡/Network

SSL은 디지털 증명서로 통신 상대가 진짜인지 아닌지를 확인한다.

따라서 SSL 서버에는 반드시 디지털 증명서를 install해야 한다.

참고로 이는 현재 사용 중인 TLS 암호화의 전신이다. 

이들은 긴밀히 연계되어 있어 두 용어가 혼합되어 사용되는 경우가 많습니다. TLS를 아직 SSL이라 부르기도 하고, SSL의 인지도가 높으므로, ‘SSL/TLS 암호화’라 부르는 경우도 있다.

 

[증명서 install 절차]

1. 관리자는 서버 SW에서 비밀키와 공개키를 작성 후 공개키를 CSR(Certificate Sigining Request, 증명서 서명 요청)과 인증국(CA, Certificate Authority)이라는 제 3의 기관에 제출하고, 비밀키는 소중히 보관한다.

2. 인증국은 여신 판단 후 CSR에 "당신은 진짜입니다"라는 디지털 서명을 찍어, 디지털 증명서로서 관리자에게 반환한다.

3. 관리자는 인증국으로부터 받은 디지털 증명서를 서버에 install 한다.

4. 디지털 증명서를 install했다면 SSL 서버로서 작동하게 되어 클라이언트의 SSL 서비스 요청을 받을 수 있다.

 

[SSL로 암호화할 때의 흐름]

1. 서버는 클라이언트가 요청해오면 공개키와 디지털 서명을 포함한 디지털 증명서를 반환한다.

2. 클라이언트는 디지털 서명을 보고 디지털 증명서가 올바른 것인지 체크한다.

3. 올바르다면 공통키의 재료를 공개키로 암호화하여 서버에게 보낸다. 올바르지 않는다면 오류를 반환한다.

4. 서버는 보내져온 데이터를 자신의 비밀키로 복호화하고 공통키의 재료를 꺼낸다.

--> 여기까지의 SSL handshake라고 한다.

5. 클라이언트와 서버는 공통키의 재료로부터 공통키를 만들어 그것을 이용하여 암호화 통신을 수행한다.

 

참고

https://www.cloudflare.com/ko-kr/learning/ssl/what-is-ssl/

 

'TIL💡 > Network' 카테고리의 다른 글

[Network] JWT란  (0) 2022.09.30
[암호화] TLS(Transport Layer Security)  (0) 2022.09.30
[암호화] 두 가지 암호화 기술  (0) 2022.09.30
[Network] Ethernet이란?  (0) 2022.09.30
[Network] DHCP란?  (0) 2022.09.30