SSI

21.10.03 SSL/TLS 프로토콜을 통한 디지털 인증서 발행 과정

슈팅스타제제 2021. 10. 3. 23:37

CA가 웹 사이트의 공개키 또한 이 웹 사이트의 것이라고 인증할 수 있다!

다음은 SSL/TLS 프로토콜을 이용하여 디지털 인증서를 발행하는 과정이다. 

*SSL에서 TLS로 사용 추세가 바뀌었다. 

SSL Secure Sockets Layer

TLS Transport Layer Security

CA Certificate Authority

 

1. 웹 사이트는 자신의 정보와 공개키를 CA에 제출한다. 

2. CA는 웹 사이트가 제출한 정보를 검증한 후, 올바른 웹 사이트라고 판단하면 웹 사이트의 정보가 포함된 인증서 정보를 생성한다. 

3. 이후 CA는 자신의 비밀키를 사용하여 웹 사이트의 공개키가 포함된 인증서 정보에 대한 디지털 서명을 생성한다. 

- 인증서 정보(웹 사이트의 공개키) 해시화

- 위의 해시값을 CA의 비밀키로 암호화한 것: CA의 디지털 서명

4. CA의 디지털 서명을 인증서 정보에 추가하면 이것이 바로 디지털 인증서를 생성한 것이다.

5. CA는 웹 사이트의 공개키 및 정보와 CA의 서명이 포함된 디지털 인증서를 웹 사이트에게 발행한다. 

→ 웹 사이트는 CA로부터 발급받은 디지털 인증서가 있으므로 웹 서비스 가능 

6. 사용자는 웹 브라우저를 통해 웹 사이트에 접속한다. 

7. 웹 브라우저는 웹 사이트에 "Client Hello" 메세지를 전송한다. 이때, CR(Client Random): 세션키가 포함되어있다!!

8. 웹 사이트는 'Server Hello" 메세지와 웹 사이트의 디지털 인증서를 사용자에게 전송한다. 

9. 웹 사이트의 디지털 인증서를 수신한 사용자 웹 브라우저는 디지털 인증서에 포함된 CA의 서명을 검증하여 신뢰할 수 있는 CA가 인증서 내용을 보증해 주는지에 대한 진위를 판단한다. 

→ CA 서명 검증 방식에 대한 내용은 다음 게시글로 따로 정리 예정이다. 

확인되면

10. 디지털 인증서로부터 웹 사이트의 공개키를 획득한다. 

11. 사용자와 웹 사이트는 통신에 사용할 세션키를 생성하기 위해 PS(Premaster Secret), MS(Master Secret)를 생성한다. 

12. 생성한 PS를 앞서 취득한 웹 사이트의 공개키로 암호화하여 웹 사이트에 전송한다. 

13. 웹 사이트는 자신의 공개키로 암호화된 데이터를 자신의 비밀키로 복호화하여 PS를 획득한다. 

14. PS가 무사히 교환되면 사용자와 웹 사이트는 앞서 교환했던 CR과 SR을 PS와 합쳐서 MS를 생성한다. 

15. 다시 MS와 CR, SR을 합친 세션키를 생성한다. 

16. 사용자와 웹 사이트는 동일한 세션키를 공유하게 되고 이 세션키를 이용하여 서로 암호화된 통신이 가능하다.