본문 바로가기
CS

SSL 인증서, 공개 키 기반 구조(Public Key Infrastructure, PKI)

by 2yy 2024. 1. 2.

SSL(Secure Soket Layer)이란 ?

  • 웹 브라우저(Client)와 서버(Server)간 암호화 통신을 위한 프로토콜

 

 

SSL 인증서란?

  • SSL 기반하에서 사용자의 웹 브라우저와 인터넷 사이트의 웹서버간 암호화 통신을 가능하게 하는 제3의 신뢰기관이 인증한 인증서를 말한다.
  • SSL 인증서에는 웹 서버의 공개 키가 포함되어 있다. 사용자는 서버와 암호화 통신을 위해 필요한 사용자 PC에서 생성한 세션키(암호화키, 대칭키)를 SSL 인증서에 포함된 웹 서버의 공개키를 이용해 암호화해서 웹 서버에 전달하게 된다.
  • SSL 인증서에는 웹 서버의 공개 키 외에도 인터넷 사이트 정보 및 소유자 정보 등 다양한 정보가 포함되어 있다.

 

 

SSL 인증서의 기능

 

1. 정보 유출 방지

  •  표준 암호화 기법을 사용하여 전송자의 메시지를 안전하게 전송


2. 기업 실체성 확인 

  • 인증서 발급 대상 기관에 대해 실체성 확인 후 발행
  • 기업 실체성 확인 항목 : 사업자등록증, 신청자 전화 확인 114정보

 

3. 위조사이트 방지(Phishing 방지)

  • 인증서 발급 대상 기관에 대해 기업 신용 평가 정보를 확인
  • 사용자가 육안으로 확인할 수 있도록 녹색바 인증서 발급(COMODO EV SSL)

 

 

공개 키 기반 구조(Public Key Infrastructure)

  • 공개 키를 효과적으로 운용하기 위해 정해진 많은 규격이나 선택 사양의 총칭
  • 비대칭 암호시스템에 기초하여 디지털 인증서 생성, 관리, 저장, 배분, 취소에 필요한 하드웨어, 소프트웨어, 사람, 정책 및 절차
  • 공개 키를 이용하여 송수신 데이터를 암호화하고 디지털 인증서를 통해 사용자를 인증하는 시스템으로, 공개 키 암호 알고리즘을 안전하게 사용하기 위해 필요한 서비스를 제공하는 기반 구조
  • 안정성과 투명성을 위해서 제3의 기관이 디지털 인증서를 발급한다.
  • PKI 개발된 주요 목적 : 안전하고 편리하고 효율적으로 공개 키 획득
  • PKI가 제공하는 서비스 : 기밀성, 무결성, 인증, 부인 방지, 접근통제
  • PKI 구성 요소
    - 이용자 : PKI를 이용하는 사람
    - 인증기관: 인증서를 발행하는 사람
    - 저장소: 인증서를 보관하고 있는 데이터베이스

 

 

 

PKI 인증체계

  • CA의 Private key로 Hash 결과가 암호화 되어 있으며, 검증 과정에서는 PC에 사전 배포된 CA Public key(기관 인증서에 포함)로 암호를 풀어 검증할 수 있다.
- PAA(Policy Approval Authorities, 과학기술정보통신부) : 공인 인증서에 대한 정책을 결정하고 하위 기관의 정책을 승인하는 기관. 우리나라는 미래창조과학부가 담당.

- PCA(Policy Certification Authorities, 정책인증기관) : RootCA를 발급하고 기본 정책을 수립하는 기관으로 우리나라의 KISA(한국정보보호진흥원)가 여기에 해당한다. RootCA는 모든 인증서의 기초가 되는 인증서를 보유하고 있으며, 인증서에 포함된 공개 키에 대응되는 개인 키로 생성한 자체 서명 인증서를 사용한다.

- CA(Certification Authority, 인증기관) : PCA의 하위 기관으로 인증서 발급과 취소 등의 실질적인 업무를 하는 기관이다. yessign(금융결제원), NCA(한국전산원) 등이 이에 속하며, 상호 간 신뢰한다.

- RA(Registration Authority, 등록기관) : 사용자의 신분을 확인하고 CA 간 인터페이스를 제공하는 기관이다.

 

 

 

 

SSL 인증서의 암호화키(세션키, 대칭키) 전달 방법 

  • 서버와 클라이언트(웹 브라우저) 간 암호화 통신을 수행하기 위해 암호화키(대칭 키)를 이용할 수 있지만, 문제는 해당 암호화 키(대칭 키)를 어떻게 전달하느냐이다.

    1. 공개 키 방식 암호화 
    - 암호화 키를 상대방에게 전달할 필요가 없도록 하는 방법으로, 수학적 방법으로 서로 다른 한 쌍의 암호화 키를 만드는데, 두 개의 키 중 하나의 키로 암호화하면 다른 하나로 암호를 복호화할 수 있게 된다. 본인만 사용할 수 있는 private 키를 개인 키라고 하고, 공개적인 public 키를 공개 키라고 한다.
    - 통신 상대방(사용자와 웹 서버)은 서로에게 자신의 개인 키와 쌍을 이루는 공개 키를 상호 교환한 후, 웹 서버가 사용자의 공개 키로 메시지를 암호화해서 사용자에게 보내면 사용자는 자신의 개인 키로 웹 서버의 메시지를 해독할 수 있게된다.
    - 이 과정에서 서버의 개인키는 사용자에게 전송되지 않고, 제3자가 이 암호화된 메시지를 탈취하더라도 공개된 웹 서버의 공개 키 만으로는 암호화 메시지를 복호화할 수 없다.
    - 그러나 이러한 비대칭키 방식에도 단점이 존재하는데, 복잡한 암호화 및 복호화 과정 때문에 시간과 자원의 소요가 많다.

    2. 공개 키 방식은 암호 키 전달에만 사용
    - 공개 키를 대칭 키를 보내는 용도로 사용하는 것.
    - 암호화 통신을 위해 대칭 키를 사용하되, 그 대칭 키를 안전하게 전달하는 방법으로 공개 키 방식을 사용한다.
    - 대칭 키와 비대칭 키 방식을 혼합 사용하여 효율을 극대화시키는 방식이다.
    - 여기서 PC가 수신한 Public Key는 서버가 보낸 것이라 확신할 수 없으므로, Public Key가 포함된 인증서를 CA인증서로 검증한다.
    - 이것이 SSL의 작동 원리이며, 표준 보안 방식인 SSL이다.

 

 

 

SSL 인증서의 신뢰성

  • 사용자의 웹 브라우저가 웹 서버에 접속하여 암호화 통신을 시도할 경우 사용자는 웹 서버로부터 공개 키를 전달받게 되는데, 사용자가 해당 사이트가 신뢰할만한 사이트인지 아닌지 파악할 필요성이 있다.
  • 바로 이 공개 키에 대한 검증 문제를 해결하기 위해 제3의 인증 기관이 필요로 하게 된다.
  • 인터넷 사이트는 자신의 웹 서버에서 개인 키와 공개 키를 생성한 후, 자신의 정보와 공개 키를 코모도와 같은 제3의 인증기관에 제출한다.
인증기관에 제출하는 정보
- 공개 키 소유자의 이메일 주소, 소유자 이름, 소유자의 실체를 입증할 수 있는 서류 등
- 통상, 도메인명, 영문 사업자등록증, 공인된 제3자를 통해 수집할 수 있는 인증 전화 번호

 

  • 인터넷 사이트로부터 사이트 및 소유자 정보를 제공 받은 제3의 인증기관은 인터넷 사이트가 제출한 정보에 대해 사이트 정보의 검증은 물론 *CSR값 기반의 공개 키 검증을 통해 인증서를 발급해주는데, 이것이 SSL 인증서이다.
  • 이와 동시에 인증기관은 사용자의 웹 브라우저에게 자신의 공개 키를 제공한다.
  • SSL 인증서를 검증하는 방법은 인증서를 발급한 CA의 인증서에 포함된 Public Key를 이용해 SSL 인증서 Hash 결과를 복호화 하면 된다.

*CSR(Certificate Signing Request) : 인증기관에 인증서 발급 요청을 하는 특별한 ASN.1 형식의 파일로 이루어져 있다. 파일에는 공개키 정보와 사용하는 알고리즘 정보 등이 들어있다. 개인 키는 외부에 유출되면 안되므로 이런 특별한 형식의 파일을 만들어서 인증기관에 전달하여 인증서를 발급 받는다.

 

 

 

SSL 인증서의 신뢰 프로세스

  1. 사용자가 웹 브라우저로 웹 서버(인터넷 사이트)에 접속
  2. 웹 서버는 제3의 인증기관(코모도 등)으로부터 발급받은 자신의 SSL 인증서를 사용자에게 전달
  3. 사용자는 인증기관의 공개 키로 서버가 제공한 SSL 인증서의 신뢰성을 검증
  4. 사용자는 자신의 임의로 생성한 대칭 키(암호화 키)를 사이트 공개 키를 이용해 암호화한 후 웹 서버에 전달
  5. 웹 서버는 사용자가 자신(웹 서버)의 공개 키로 암호화하여 전달한 대칭키를 자신의 개인키로 복호화
  6. 사용자와 웹 서버는 사용자가 생성하여 웹 서버에 전달한 대칭키를 이용하여 암호화 통신

 

 

SSL 인증서 구성항목

 

- 인증서 용도, 발급 대상, 발급자, 유효시간 등
- 서명 알고리즘, 발급자, 유효기간, 주체, 공개키 정보 등
- SSL 인증서의 인증 경로와 인증서 상태 정보

 

 

 

certmgr.msc

  • CA의 Private key로 Hash 결과가 암호화 되어 있으며, 검증 과정에서는 PC에 사전 배포된 CA Public key(기관 인증서에 포함)로 암호를 풀어 (SSL 인증서를) 검증할 수 있다.

 

 

 

 

 

 

 

출처

https://www.inflearn.com/course/%EC%99%B8%EC%9B%8C%EC%84%9C-%EB%81%9D%EB%82%B4%EB%8A%94-%EC%95%94%ED%98%B8%EA%B8%B0%EC%88%A0/dashboard

 

외워서 끝내는 SSL과 최소한의 암호기술 강의 - 인프런

인터넷의 안전을 책임지는 암호기술에 대해 아주 쉽게 외워서 끝낼 수 있도록 도와드립니다. SSL인증서, PKI 기술, 디지털 서명, 공인인증시스템 등 다양한 기술의 구조와 원리를 이해할 수 있습

www.inflearn.com

https://yoonsj.tistory.com/14

 

SSL 인증서의 모든 것(정의 및 기능, 신뢰성, 구성항목)

SSL 인증서의 모든 것(정의 및 기능, 신뢰성, 구성항목) [SSL 인증서란?] 인터넷 상에서 웹브라우저(Client)와 웹서버(Server)간의 데이터를 안전하게 주고 받기 위해서는 서로 암호화하여 통신을 해야

yoonsj.tistory.com

https://blog.naver.com/wnrjsxo/221715304742

 

공개 키 기반 구조(PKI, Public Key Infrastructure)

● 공개 키 기반 구조(public-key infrastructure) 의 정의 공개 키를 효과적으로 운용하기 위해 정해진 많...

blog.naver.com

https://lbm93.tistory.com/17

 

[SSL 제대로 이해하기 3탄] SCC, CSR 이란?

목록 SSL-#1.SSL의 기본 개념 SSL-#2.SSL에서 인증서란? SSL-#3.SSC,CSR 이란? SSL-#4.SSL 동작 과정 SSC,CSR SSL에서 SSC와 CSR은 매우 중요하다. 인증 받을 수 있는 기관이 없을때 즉 가장 최상위 위치에 있을때 자

lbm93.tistory.com