https://growth-coder.tistory.com/259
저번 포스팅에서 대칭키 방식과 비대칭키 방식의 차이점과 이 둘을 혼합한 암호 모델에 대해서 공부하였다.
이번 포스팅에서는 SSL/TLS 인증서에 대한 개념을 공부해보려고 한다.
저번 포스팅에서 설명한 대칭키 방식과 비대칭키 방식을 혼합한 방식에 대해서 설명을 했었는데 그 방식이 사용된다.
(위 링크 참고)
SSL과 TLS
SSL과 TLS는 암호화 방식을 나타내는 암호화 프로토콜이다.
SSL은 MAC을 사용하여 메시지 변조를 방지하고 TLS는 MAC을 사용하지 않고 다른 방식을 사용한다.
이번 포스팅의 주된 내용은 SSL과 TLS의 개념적 차이가 아닌 동작 방식이기 때문에 이 둘의 차이점에 대해서는 깊게 알아보지는 않으려고 한다.
CA (Certificate Authority)
CA는 인증 기관으로 디지털 인증서를 발급해주는 기관이다.
SSL/TLS 기반 통신을 하기 위해서는 CA로부터 인증서를 발급받아야 한다.
이 CA는 엄격한 심사를 거친 기업만이 자격을 가지기 때문에 신뢰성이 보증된다.
SSL/TLS 인증서 발급 과정
이제 웹 사이트가 CA로부터 SSL/TLS 인증서를 발급받는 과정을 알아보자.
- 웹 사이트에서 공개키 - 개인키 쌍을 생성한다.
- 웹 사이트의 정보와 공개키를 바탕으로 CSR을 작성하여 CA에게 보낸다.
- CA는 웹 사이트의 공개키를 해시 후 CA의 개인키로 암호화해서 디지털 서명을 만든다.
- 웹 사이트 정보와 디지털 서명 정보를 포함하는 인증서를 웹 사이트에게 발급해준다.
SSL/TLS 통신 과정
CA로부터 인증서를 발급받은 서버가 클라이언트와 어떻게 통신하는지 알아보자.
우선 웹 브라우저에는 공인된 CA 기관의 목록과 각 기관의 공개키를 가지고 있다.
그리고 아래 과정을 진행한다.
- TCP 3 way handshaking 과정을 통해 연결을 확인한다.
- 클라이언트가 인증서를 요청하면 서버는 인증서를 준다.
- 인증서를 발급한 기관을 브라우저의 CA 목록에서 찾는다.
- 찾았다면 CA의 공개키를 가져온다.
- CA 공개키로 서명을 복호화한다.
- 서버의 공개키를 해시하여 서명을 복호화 한 값과 일치한지 확인한다.
- 이제 인증이 완료되었고 클라이언트는 대칭키를 서버와 교환한다.
7번에서 사용하는 방식이 이전 포스팅에서 다루었던 대칭키 방식과 비대칭키 방식의 혼합 방식이다.
(자세한 내용은 이전 포스팅 참고)
이전 포스팅에서도 말했듯이 여기서 사용하는 대칭키는 세션이 종료되면 폐기하기 때문에 세션키라고도 부른다.
지금까지 알아본 방식은 신뢰도가 높은 CA 기관으로부터 인증서를 발급받는 방식이다.
그런데 openssl을 사용하여 자신이 직접 인증서를 발급받을 수 있다.
물론 공인된 CA로부터 발급받은 것이 아니기 때문에 브라우저는 경고 메시지를 띄운다.
참고
https://heodolf.tistory.com/94
https://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/ssl-offload-overview.html
https://www.imperva.com/learn/performance/cdn-and-ssl-tls/
'공부 > 보안' 카테고리의 다른 글
[보안] 대칭키, 비대칭키(공개키), 혼합 (0) | 2023.10.28 |
---|---|
[정보 보안] 블록 암호와 DES (feistel) (1) | 2023.10.19 |
[정보 보안] 고전 암호 기법 (전치) (1) | 2023.10.17 |
[정보 보안] 고전 암호 기법 (치환) (0) | 2023.10.16 |
댓글