[수미수의 개발 브로구]

[인증] OCSP 개요 본문

Cloud & Infra/Security

[인증] OCSP 개요

수미수 2024. 10. 29. 12:19
반응형

1. 들어가기 전

  금융 서비스를 이용하거나, 정부 사이트를 이용할 때 공동인증서를 이용하여 로그인 또는 거래를 하는 경우가 많습니다. 만약, 인증서가 타인에 의해 변경 되었거나 또는 유효 한지에 대해서 클라이언트 영역 외 서버 영역에서도 확인이 필요 합니다. 이러한 확인을 위해서 사용되는 표준 프로토콜이 OCSP 입니다. 실제로 본인 인증 및 전자 서명과 관련된 서비스 개발을 하게 되면 공동인증서 사용에 대해서 기획 검토 부터 개발 영역에 포함할지에 대해서 논의를 많이 할 것입니다. 만약 공동인증서 사용을 개발 하게 된다면, 실제로 어떻게 동작 하고 인증서의 유효성 체크는 어떻게 하는지에 대한 이해가 필요합니다. 따라서, 이번 글은 이러한 인증서 유효성 체크에 필요한 OCSP 에 대해서 이야기 하고자 합니다.

2. OCSP

  OCSP (Online Certificate Status Protocol) 는 X.509 디지털 인증서의 유효성을 실시간으로 확인 하는 프로토콜이며, 인증서가 유효한지, 만료 되었는지, 폐기 되었는지 등 상태를 체크 하는데 사용 됩니다. 폐지 혹은 정지된 인증서는 효력이 없기 때문에 사용하면 안되며, 사용자의 실수로 또는 고의적으로 인증서가 사용되는 것을 피해야 합니다. 이러한 인증서의 상태의 정보를 실시간으로 확인 하는 것이 국제 표준 OCSP 를 통해 서비스 되고 있습니다. OCSP 외 CRL(Certificate Revocation Lists) 도 유효성 검사에 사용됩니다.

OCSP 구성도

3. CRL

  CRL은 인증서 해지 목록입니다. 즉, 발급자에 의해 해지되었거나 더 이상 유효하지 않은 인증서의 목록을 의미 하며, 더이상 유효 하지 않은 인증서의 인증서들의 시리얼 번호의 리스트 목록을 말합니다. 인증서의 일련번호(serial number)을 통해 유효성을 확인 하며, CRL에 포함된 인증서는 유효하지 않으므로 신뢰해서는 안됩니다.

4. OCSP와 CRL 비교

구분 OCSP CRL
정의 인증기관의 서버에서 실시간으로 인증서의 유효성을 검증 Client가 다운로드한 CRL 파일을 사용하여 인증서의 유효성을 검증- 인증기관이 정기적으로 인증서 해지 목록을 업데이트
방식 온라인 배치
정보  많은 정보 전달 제한적인 정보 전달

5. OCSP 목적

  클라이언트(예: 웹 브라우저, 앱)는 서버가 제공하는 인증서의 상태를 확인하기 위해 OCSP를 사용합니다.서버에서 제공된 인증서가 유효한지, 폐기되었는지를 인증 기관(CA) 또는 OCSP 서버에 실시간으로 질의 하여 유효성을 체크 합니다. 아래 표는 OCSP를 사용하는 목적에 대해서 설명 합니다.

특징 설명
인증서 상태 확인 OCSP는 인증 기관(CA, Certificate Authority) 서버에 실시간으로 연결하여 특정 인증서의 상태를 확인합니다. 서버는 인증서의 상태(유효함, 폐기됨, 알 수 없음)를 클라이언트에 응답합니다.
빠른 응답 OCSP는 CRL과 비교해 더 빠르고 효율적입니다. CRL은 인증서 폐기 상태를 확인하기 위해 전체 리스트를 내려받는 방식이라 크기가 클 경우 시간이 오래 걸리지만, OCSP는 특정 인증서에 대한 상태만 질의하여 빠르게 응답할 수 있습니다.
폐기 인증서 확인 OCSP는 주로 인증서가 폐기된 경우 이를 신속하게 확인할 수 있도록 설계되었습니다. 만약 인증서가 도난당했거나 무효화되었을 때, 클라이언트는 OCSP 서버에 질의하여 해당 인증서가 폐기되었음을 알 수 있습니다.

6. 공동인증서와 OCSP 와의 관계

  위에서 OCSP 에 대해서 이야기 했습니다. 공동인증서 또한 X.509 표준을 따르는 디지털 인증서이기 때문에 OCSP 를 통해서 인증서의 상태를 검증 합니다. 즉, 공동인증서가 유효한지, 폐기 되었는지, 만료 되었는지 실시간으로 검증 시 OCSP 가 사용되며, 필요에 따라 CRL 을 이용하여 검증 할 수 있다고 설명 하였습니다.

  우리가 디지털 금융 서비스를 이용 하게 되면, 전자서명과 본인확인을 해야 하게 되기 때문에, 금융 서비스 제공자는 기본적으로 OCSP 를 통해서 사용자의 인증서 상태를 확인하고, 공동인증서를 이용한 전자 서명의 유효성도 확인 할 수 있습니다. 만약, 금융 거래 시 중간 공격을 통해 전자서명 값이 변경되거나, 공동인증서가 도난, 분실 또는 해킹으로 폐기가 되게 된다면 인증서가 유효하지 않기 때문에 거래가 차단 될 수 있습니다.

7. 공동인증서 요청/응답 프로세스

  금융 서비스 또는 기타 공동인증서를 이용하여 본인 인증 및 전자 서명을 하는 프로세스는 아래 그림과 같습니다. 클라이언트는 공동인증서를 제출하여 본인인증 및 전자서명 값을 서비스 제공자에게 요청 하고, 서비스 제공자는 요청된 인증서가 정상적인지 판단하기 위해서 OCSP 서버로 실시간 검증을 요청 합니다. 이때 기본적으로 사용되는 정보는 인증서의 시리얼 번호, 발급자 정보 등이 포함 됩니다. OCSP 서버는 CA 서버와 실시간으로 인증서 상태를 동기화 하며, 요청 된 인증서가 유효 또는 폐기 된 인증서인지 상태를 검증 하고 서비스 제공자에게 응답 합니다. 서비스 제공자는 응답으로 받은 상태를 확인 한 뒤 클라이언트에게 계속 해서 서비스를 제공 할지 거래를 차단 할지 결정 합니다.

공동인증서 프로세스

8. 마무리

  해당 글에서는 인증서 유효성 검증을 위한 OCSP에 대해서 살펴 보았고, 온라인 방식인 OCSP 외 CRL 방식과의 차이점에 대해서도 이야기 해보았습니다. 금융 서비스 또는 본인인증 서비스를 설계 및 개발 시, 공동인증서를 통한 본인 확인 및 전자 서명을 검증 하는 프로세스를 접하게 됩니다. 이러한 인증서를 실시간으로 유효성 검증을 하여 폐기 또는 도난 등 유효 하지 않는 인증서를 사전에 차단하고 고객에게 알림을 줘서 보다 안전한 금융 서비스를 제공 할 수 있도록 해야 할 것입니다.

9.참고 문서

  • 실시간 인증서 상태확인 기술규격(Online Certificate Status Protocol Specification), 한국인터넷진흥원
반응형