본문 바로가기

정보보호/정보보호론(박승철)

정보보호론-(15) 메시지 인증 코드(MAC), 디지털 서명, 인증서

정보보호론-(15) 메시지 인증 코드(MAC), 디지털 서명, 인증서

해시 함수
- 해시 함수는 메시지의 무결성(Integrity) 확인에 충분한 서비스를제공한다.
- 그러나, 메시지 발신자의 인증성 확인이 불가능하다.

메시지 인증 코드(MAC, Message Authentication Code)
- 메시지의 무결성과 인증성을 동시에 보장하는 기술
- 메시지와 송/수신자 간에 서로 공유하고 있는 키(key)를 입력으로 해시값(=MAC)을 생성하는 함수
- 즉, h = H(M,key)
- 비밀키를 알 수 없는 제3의 공격자는 mac 생성이 불가능함
- MAC의 구현 :  CBC 모드, HMAC 알고리즘
- 그러나, MAC 인증 방식은 공격자가 HMAC 값(해시값)을 탈취한 뒤 추후에 재전송하는 재현 공격에 취약하다.

<그림 1: MAC과 재현공격>

- 이러한 재현 공격(Replay Attack)에 대한 대응책으로 순서 번호(sequence number), 타임 스탬프(timestamp), 넌스(nonce)를 이용한 해결책이 존재한다

<그림 2: 재현공격 해결책이 구현된 MAC>

MAC의 한계
- 비밀키(key)를 공유하고 있지 않은 사용자에 대해서는 인증성을 증명할 방법이 없다(제3자 인증 불가)
- 부인방지(non-repudiation)가 불가능하다. 사용자A가 사용자B에게 HMAC+Message를 전송했으나 추후에 자신이 보내지 않았다고 주장했을 때 이를 증명할 수 있는 방법이 없다

디지털 서명(Digital Signautre)
- MAC의 한계를 극복하기 위해 개발된 기술
- 제3자에 대한 인증성
- 부인 방지 서비스

디지털 서명의 원리
- 송신자는 자신의 개인키(Private Key)를 사용하여 메시지를 암호화
- 수신자는 송신자의 공개키(Public key)를 사용하여 메시지를 복호화
- 공개키 암호화는 성능문제가 있어 메시지 전체를 암호화하기보다는 전체 메시지를 해시한 값, 해시값을 암호화 한다.

<그림 3: 공개키 암호화 기반 디지털 서명>

디지털 서명 보안 서비스
- 메시지 무결성
- 메시지 인증
- 메시지 작성 책임성(=부인 방지를 보증)

디지털 서명의 전제 조건
- 디지털 서명 사용자A의 공개키가 실제로 사용자A의 공개키가 맞는지 인증하는 기관이 필요.
- 공개키 기반 구조(PKI, Public Key Infrastructure)가 필요

공인 인증서(Certificate)
- 특정 공개키가 해당 사용자의 공개키가 맞음을 신뢰할 수 있는 기관에서 보증하는 문서
- 인증서는 국제표준 X.509를 따름

<그림 4: X.509 표준 인증서 필드>

인증 기관(Certificate Authority)
- 공인 인증서의 발급과 관리를 담당하는 기관
- 정부에서 위임한 기관, 또는 대다수의 사용자가 신뢰할 수 있는 기관
- 국내 CA : 금융결제원, 한국정보인증
- 국제 CA : Verisign

인증기관의 역할
- 소유 주체의 신원 확인
- 공개키와 개인키 생성
- 인증서 작성과 발급
- 인증서 폐지

등록 기관(Registration Authority)
- 인증기관의 위임을 받아 신원 확인공개키 생성요청을 대신하는 기관

<그림 5: 공인인증서의 사용 절차>

(1) 사용자A는 인증 기관(CA) 혹은 등록 기관(RA)를 통해 공개키와 개인키 생성을 의뢰한다.
(2) 인증기관 혹은 등록 기관에 의해 생성된 개인키는 PKCS#12 규격을 사용해 사용자A에게 안전하게 전달한다.
(3) 사용자 A는 인증기관 또는 등록기관에 자신의 공개키를 등록하고 인증서 작성을 요청한다.
(4) 인증 기관은 사용자A의 공인 인증서를 작성하고 자신의 서명을 추가한다. 공인인증서를 사용자 A에게 전달한다.
(5) 사용자A의 공개키를 입수하고자 하는 사용자B는 인증기관으로부터 사용자A의 공인 인증서를 입수한다.
(6) 사용자B는 공인 인증서를 통해 사용자A의 공인 인증서의 진위여부를 인증기관(CA)의 서명으로 파악하고 사용자A의 공개키를 사용할 수 있다

공인 인증서 용도
- 인증 토큰의 역할
- 인증 확인(디지털 서명을 검증)

공개키 기반 구조(PKI, Public Key Infrastructure)
- 공인 인증서 서비스를 구현하는 모든 연관 기관과 규정

CMP(Certificate Management Protocol)
- PKI 환경에서 인증서 관리 서비스를 제공하기 위한 PKI실체들 간의 프로토콜

Reference
1. 

제15강+MAC_디지털서명_인증서.pdf
0.72MB

2. https://www.youtube.com/watch?v=hgsPinVcvnE