[보안] CA인증서, 서버인증서, 클라이언트 인증서와 Openssl

📌​CA 인증서

ROOT 인증서로부터 시작하는 계층 구조
  📍​Root Certification, Intermediate Certification, Server Ceritification
  • 루트 인증서(Root Certification)

    • 최상위 인증 기관 (DigiCert, GlobalSign, GTS)이 발급하는 인증

    • 운영체제(OS) 및 브라우저에서 기본적으로 신뢰하는 인증서로 저장됨.

    • 자체 서명(self-Signed)이 되어있음

  • 중간 인증서(Intermediate Certification)

    • Root CA가 직접 웹사이트에 인증서를 발급하지 않고 중간 CA를 통해 인증서 발급

    • 중간 CA는 루트 CA의 서명을 받은 인증 기관으로 직접적으로 서버 인증서를 발급

    • 브라우저와 OS는 중간 인증서를 직접 신뢰하지 않지만 중간 인증서가 루트 CA에 의해 서명되었기 때문에 신뢰가 가능함

  • 서버 인증서(Server Certification)

    • 최종적으로 웹사이트에서 사용하는 인증서

    • 중간 CA에 의해 서명됨

    • 사용자의 브라우저는 루트 CA까지의 인증서 체인을 검증하여 인증서의 유효성을 확인

  • ✅​ 정리하면

    • 루트 인증서 ➡️​ 중간 인증서 ➡️​ 서버 인증서 순으로 인증 체인이 이루어짐




  📍​인증서 발급 Work flow



  • NAVER 페이지 주소 왼쪽 자물쇠를 클릭하고 인증서를 보면 ROOT -> 중간 -> SSL/TLS 인증서로 계층구조로 이루어져 있다.

    
브라우저 설정에서 인증서 관련 메뉴에 들어가면 신뢰할 수 있는 인증서 목록을 확인 할 수 있다

  • DigiCert Global Root CA 신뢰받는 ROOT 인증 기관(CA)이다.

  • NAVER는 DigeCert TLS Hybrid ECC 인증서를 만들기 위해 DigiCert에 요청

    • DigeCert TLS Hybrid ECC 내용을 HASH화 한 값을 DigiCert의 비밀 키로 암호화 요청

  • DigiCert Global Root CA는 NAVER의 요청을 받아 암호화 함.

    • DigeCert TLS Hybrid ECC 의 인증서 내용 HASH 값을 DigiCert의 비밀 키로 암호화 하여 서명

  • DigeCert TLS Hybrid ECC 의 인증서를 받은 네이버는 이를 검증 할 수 있음.

    • DigeCert TLS Hybrid ECC 인증서 내부의 암호화된 HASH 값을 DigiCert의 공개 키로 복호화

  • 복호화에 성공하면 DigeCert TLS Hybrid ECC 인증서는 신뢰할 수 있음.

  • DigeCert TLS Hybrid ECC 중간 인증서를 이용해 서버 인증서를 비밀 키로 서명함

  • 정리하면
       

    
    💡​ 한국에서 운영하는 Root CA 기관이 있을까?
    • 안타깝게도 없다.

📌Openssl? 




  • Openssl은 오픈소스 기반의 암호화 및 보안 프로토콜의 라이브러리

  • SSL/TLS 통신 인증서 생성 및 관리 암호화 기능 제공

  • Csr 생성, X.509 인증서 발급 및 변환 가능

  • 인증기관(CA) 역할 수행 가능 -> 기업 내부에서 내부 인증서를 구축 할 때 활용(Private CA)

  • openssl enc 명령어를 이용해 암호화 및 복호화 가능


📍​내부 인증서(Private CA)
  • 기업 및 개발 환경에서 자체 CA를 구축할 때 사용

  • 회사 내부 및 서버 간 보안 통신, 개발 테스트용 SSL/TLS 인증서 등을 발급


  • 개발 중인 홈페이지를 이런 메세지가 뜸.


    💡 개발 인증서를 브라우저에 신뢰할 수 있는 인증서를 추가하면 경고 메세지는 뜨지 않는다 



  • ✅​ 정리하면

    • 개발 중일 때는 Openssl 이용하여 개발하고 실제로 서비스 할 때는 신뢰할 수 있는 공인 Root CA를 통해 중간 인증서를 만들어야 한다.(돈이 듬)









참고---------------------------------------------------------------------------








Gpt-4o ​🤖​

댓글

이 블로그의 인기 게시물

HTTP/HTTPS 프로토콜의 개념과 작동 원리 (WireShark)