블로그에 접근 하는 중
Preparing valuable information. Just invest two seconds!
 

공인인증서 인증 방식, 어렵지 않게 완벽 정리해드립니다

728x90

🔐 공인인증서 인증 방식 이해하기

공인인증서 인증 방식, 어렵지 않게 완벽 정리해드립니다

공인인증서로 로그인할 때 비밀번호(PIN)를 입력하면 뭔가 처리되긴 하는데,
과연 어떤 방식으로 "내가 진짜 주인"임을 증명할 수 있는 걸까요?

"내 비밀번호가 서버에 저장되는 걸까?"
"공인인증서 파일이 유출되면 위험한 걸까?"
"공개키, 개인키는 대체 뭐야?"

이 글에서는 이러한 궁금증을 비전공자도 이해할 수 있도록 쉽게 풀어 설명하고,
실제 사용하는 암호화 방식과 보안 구조까지 하나하나 짚어보겠습니다.


🧾 공인인증서란 무엇인가?

공인인증서는 다음과 같은 구성요소로 이루어져 있습니다:

  1. 개인키 (Private Key)
    • 오직 나만 가지고 있어야 하는 비밀 정보
    • 전자서명(서버 인증)에 사용됨
  2. 공개키 (Public Key)
    • 누구나 볼 수 있음
    • 서버가 서명이 진짜인지 확인하는 데 사용됨
  3. 인증서 (Certificate)
    • 공개키 + 사용자 정보 + 인증기관(CA)의 전자서명 포함
    • "이 공개키는 이 사람 것!"이라는 걸 보장해주는 디지털 신분증 역할

🔐 공인인증서 인증 흐름 (공개키/개인키 기반)

① 사용자: 인증서 선택 + PIN 입력

  • 사용자가 인증서 파일을 선택하고 비밀번호(PIN)를 입력합니다.
  • 이 PIN은 인증서 내부에 암호화된 개인키를 복호화하는 열쇠 역할을 합니다.
  • 개인키는 사용자 PC 내부에서만 복호화 및 사용되며, 서버로 전송되지 않습니다.

② 서버: 난수(Challenge)를 전송

  • 서버는 임의의 숫자(난수)를 사용자에게 보냅니다.
  • 이는 **"이걸 개인키로 서명해봐. 진짜 주인이면 가능하겠지?"**라는 의미의 문제입니다.

③ 사용자: 개인키로 전자서명 수행

  • 내 컴퓨터 안에서 복호화된 개인키로 난수에 대해 전자서명을 생성합니다.
  • 그 결과와 함께 내 인증서(공개키 포함)를 서버로 보냅니다.

④ 서버: 공개키로 서명 검증

  • 서버는 내가 보낸 인증서 안의 공개키로 전자서명 결과를 검증합니다.
  • 또한, CA의 전자서명을 확인해 인증서가 신뢰할 수 있는 기관에서 발급된 것인지 검사합니다.
  • 서명 검증이 통과되면 → "이 사람은 진짜 인증서 주인이다"라고 판단합니다.

⑤ 인증 완료

  • 검증에 성공하면 로그인, 본인확인, 전자서명 등이 완료됩니다.
  • 이 과정에서 개인키나 비밀번호가 절대로 서버로 전송되지 않기 때문에 매우 안전합니다.

🔑 PIN은 대칭키, 인증은 비대칭키!

이해를 돕기 위해 중요한 개념을 정리해보면 다음과 같습니다:

구분 방식 설명
PIN 비밀번호 🔐 대칭키 암호 개인키를 복호화하기 위한 열쇠 (AES 등 사용)
전자서명 인증 🔐 비대칭키 암호 개인키로 서명, 공개키로 검증 (RSA 등 사용)
  • 개인키는 PIN으로 보호되어 암호화되어 있고,
  • 인증 과정에서는 공개키-개인키 쌍을 활용한 비대칭키 기반 전자서명이 사용됩니다.

🔒 실제로 사용하는 암호화 알고리즘

1. 개인키 보호 (대칭키 암호)

  • 인증서 파일 내부의 개인키는 AES, 3DES 같은 대칭키 암호로 암호화되어 있습니다.
  • PIN은 이 암호화에 사용되는 비밀키 역할을 합니다.

2. 전자서명 수행 (비대칭키 암호)

  • 전자서명은 주로 RSA, SHA256withRSA 같은 조합이 사용됩니다:
    1. 데이터(예: 난수)에 SHA-256 해시 함수를 적용하고
    2. 그 해시값을 개인키로 서명

➡ 서버는 인증서 안의 공개키로 이 서명을 검증하게 됩니다.


🛡️ 전자서명 위조 공격은 어떻게 막을까?

전자서명은 다음과 같은 구조로 위조를 방지합니다:

  1. 매번 다른 난수로 Challenge 요청
    → 이전에 도청한 값을 재사용하는 재전송 공격 방지
  2. 공개키로만 검증 가능, 역산은 불가능
    → 공개키로 개인키를 유추하는 건 수학적으로 불가능
  3. CA 서명 검증으로 위조된 인증서 차단
    → 인증기관의 신뢰 체계를 통해 위조된 인증서 사용 불가
  4. 개인키는 서버에 노출되지 않음
    → 인증 과정은 로컬에서만 이루어져, 유출 위험이 현저히 낮음

✅ 전체 요약

항목 설명
인증 구조 공개키/개인키 기반 전자서명 방식
PIN 역할 개인키 복호화를 위한 대칭키 암호의 키
개인키 위치 사용자 PC 내부, 외부 전송 없음
인증 과정 서버의 난수 → 개인키로 서명 → 공개키로 검증
보안성 전자서명 위조, 리플레이 공격, 인증서 위조 모두 방어 구조 확보

✍️ 대칭키와 비대칭키를 결합한 정교한 보안 메커니즘

공인인증서 인증 방식은 단순히 비밀번호를 입력하는 것처럼 보이지만,
그 안에는 대칭키와 비대칭키를 결합한 정교한 보안 메커니즘이 작동하고 있습니다.

개인키를 안전하게 보호하면서도, 서버는 그 키를 절대 알지 않고
"이 사람이 진짜 인증서 주인이다"를 확인할 수 있는 것 —
바로 이게 **공개키 기반구조(PKI)**의 핵심입니다.

이제 공인인증서 인증 방식의 흐름이 한결 선명하게 보이시죠?
여러분의 디지털 보안 이해에 도움이 되셨길 바랍니다. 😊

 

728x90