1. 인증서 체인이란
- 인정서를 신뢰할 수 있도록 서명을 하며 만들어진 체인으로 아래와 같은 3계층으로 구성된다.
- 인증서 - 중간 인증서 - 루트 인증서
1) 인증서 (Leaf Certificate)
HTTPS 서비스를 위하여 발급 받은 인증서로, 서비스가 올라간 서버에 적용한다. 또한 중간 인증서에 인증서 정보가 Hash된 값을 전달하여 서명을 요청한다. (서명, 중간 인증서 서버 비공개키로 암호화)
2) 중간 인증서 (Intermediate Certificate)
인증서를 서명해준다. 루트 인증서에 의해 서명된 상태를 말한다.
3) 루트 인증서 (Root Certificate)
중간 인증서를 서명해준다. 본인의 서버 공개키로 Self 서명된 상태, 브라우저들은 신뢰하는 Root 인증서 리스트를 가지고 있다.
(인증서에 따라 Self 서명이 아닌 다른 Root 인증서와 교차 서명하기도 함)
4) 서명 (Signature)
Hash된 값을 상위 인증서 서버 비공개키로 암호화 후 상위 인증서 서버 공개키로 복호화하여 상위 인증서가 본인의 서버 비공개키로 암호화 해줌을 확인하고 Hash된 값을 비교하여 인증서의 무결성을 확인
2. 인증 과정
1) TLS Handshaking
Certifiacate 과정에서 클라이언트는 서버로부터 인증서 체인(인증서/중간 인증서/루트 인증서)를 전달 받음
2) 브라우저의 신뢰하는 루트 인증서 리스트와 1) 에서 전달 받은 루트 인증서를 비교하여 신뢰된 루트 인증서인지 확인
3) 루트 인증서
본인 서버 공개키로 셀프 서명을 복호화하여 셀프 서명 확인과 무결성 검증
4) 중간 인증서
루트 인증서 서버 공개키로 서명을 복호화하여 서명 확인과 무결성 거믖ㅇ
5) 인증서
중간 인증서 서버 공개키로 서명을 복호화하여 서명 확인과 무결성 검증
6) 신뢰된 인증서임을 확인하고 TLS Handshaking 계속 진행
'네트워크' 카테고리의 다른 글
WAS와 Restful API 그리고 JVM (1) | 2024.11.11 |
---|---|
웹 서비스 구조 이론 (1) | 2024.11.07 |
HTTP 간단 설명 (0) | 2024.11.05 |
URL과 URI (0) | 2024.11.04 |
한 번에 끝내는 DNS (0) | 2024.11.04 |