본문 바로가기
네트워크

서버의 인증서 유효성 검사

by dsungc 2024. 11. 16.

CA(인증기관)이란?

디지털 통신 및 거래에 대한 신뢰도를 높이기 위해 디지털 인증서를 발급하는 조직

 

 

1. 서버의 인증서 확인이 중요한 이유

 

- 인터넷에서 클라이언트(사용자)와 서버 간의 데이터 통신은 보안을 필수로 요구

- 하지만 서버가 신뢰할 수 있는 대상인지 검증되지 않은 상태에서 통신이 이뤄진다면, 중간자 공격(Man-in-the-Middle Attack)과 같은 보안 위협에 노출

- 이를 방지하기 위해 HTTPS 프로토콜은 서버의 인증서를 검증하는 과정을 포함

 

 

2. 서버 인증서 확인 과정

 

a. 서버가 CA에 인증 요청

- 서버는 자신의 사이트 정보공개키를 CA(인증기관)에 전달

- 이 요청은 서버가 자신이 신뢰할 수 있는 기관으로부터 인증받기를 원하는 과정

 

b. CA에서 인증서 발급

- CA는 서버에서 받은 정보를 검토하여 유효성을 확인합

- 확인이 완료되면, CA는 CA의 개인키를 사용하여 해당 정보 서명

- 이 과정을 통해 디지털 인증서가 생성

 

c. 인증서 전달

- CA는 생성한 인증서를 서버에 전달

- 서버는 이 인증서를 저장하여 클라이언트 요청 시 인증서를 전송할 준비를 함

 

d. 클라이언트에서 서버로의 접속 요청

- 사용자가 서버에 접속하려는 요청 전송

예: 브라우저에서 웹사이트 접속

 

e. 서버에서 인증서 전달

- 서버는 클라이언트로 인증서를 전송

- 이 인증서에는 서버의 공개키CA 서명 포함

 

f. 클라이언트가 인증서를 검증

- 클라이언트는 CA의 공개키를 사용하여 인증서를 복호화

- CA의 공개키는 대부분의 클라이언트(브라우저나 OS)에 사전 설치되어 있음

- 복호화에 성공하면 해당 인증서가 CA에 의해 발급되었음을 신뢰 

- 복호화된 인증서를 통해 서버의 공개키 획득

 

3. 서버 인증서 확인의 결과

- 클라이언트는 서버의 공개키를 신뢰하며, 이를 기반으로 대칭키 교환 또는 암호화된 데이터 통신 시작

- 인증서 검증이 실패하면, 클라이언트는 해당 서버와의 연결을 차단하고 경고 메시지를 표시

'네트워크' 카테고리의 다른 글

HTTP & HTTPS  (2) 2024.11.06
대칭키 & 비대칭키  (0) 2024.10.30
[iOS] About Notification & Delegation  (0) 2024.10.26
[iOS] About WidgetKit - 1  (0) 2024.10.24
[iOS] About JWT(Jason Web Token)  (0) 2024.10.17