본문 바로가기

정보보호/금융부문 암호기술 활용 가이드(금융보안원)

금융부문 암호기술 - (2) IC카드 거래에 사용된 암호화 기술

금융부문 암호기술 - (2) 신용IC카드 거래

- IC(Integrated Circuit)카드는 MS(Magnetic Stripe)카드와 달리 카드 내에 연산이 가능한 CPU와 메모리를 포함한다.
- 또한, 칩 고유의 일력번호 등을 가지고 있고 카드 정보를 암호화하여 보관하므로 카드 복제가 어렵다.
- IC카드는 거래 시 카드가 단말기 또는 발급자에 대한 자체확인 절차를 진행하므로 카드의 정당성 확인(위조여부 확인)을 수행한다.
- IC카드는 그 용도에 따라 신용카드, 현금카드(체크카드)로 분류되는데 신용카드인 경우엔 EMV 인증을 받아야 한다.
(*EMV(Europay, Master, Visa) : 국제적 호환성을 위해 Europay, Master, Visa가 공동으로 사용하는 IC카드의 표준 규격)

카드 인증(Offline Data Authentication)
- 카드인증이란 거래를 진행하려는 IC 카드가 정상 발급 카드인지, 발급후 카드 데이터의 불법적인 변경이 있는지 확인하는 작업이다.
- EMV에서는 RSA 서명 알고리즘을 이용하여 단말기가 카드의 정당성을 확인하도록 하고 있다.
- 카드인증 방식은 사용하는 암호키의 종류와 고정된 데이터의 이용유무에 따라 SDA(Static Data Authentication)과 DDA(Dynamic Data Authentication)으로 나뉘며 일반적으로 DDA의 보안레벨이 더 높다.

SDA(Static Data Authentication, 정적 데이터 인증)
- IC카드는 카드 발급 시 카드인증을 위한 두가지 정보를 저장함
- ① 카드 내 고정된 데이터인 정적 어플리케이션 데이터(SAD, Static Application Data)를 카드 발급사의 개인키로 서명한 SSAD(Signature of SAD)값
- ② 발급사의 공개키를 CA의 개인키로 서명한 발급사 공개키 인증서
- 정적 어플리케이션 데이터의 무결성을 증명하기 위해 해시값(h)를 만들고 이를 카드 발급사의 개인키로 암호화한 signature가 존재한다.
- IC카드 단말기는 IC카드에 존재하는 SAD의 무결성을 확인하기 위해 SAD의 해시값(h')을 구하고 카드 발급사의 공개키를 사용해 signature를 복호화하여 해시값(h)를 구한다. 만약, h=h'이면 무결성이 확인된 것이고(정상), h≠h'이면 무결성이 훼손된 경우이다(비정상)
- 이때, 카드 발급사의 공개키가 위조·훼손될 가능성이 있으므로 CA에 의한 공인 인증서를 참고하여 공개키에 정당성을 부여한다. (PKI 내용)

SDA 인증 절차
(1) IC 단말기는 CA 공개키를 통해 IC카드에 저장된 발급사 공개키 인증서를 검증하여 발급사의 공개키의 정당성을 확인
(2) 발급사의 공개키가 정당한 경우 그것을 이용하여 SSAD를 검증한다.(SAD의 무결성여부를 확인한다)

<그림 1: SDA 인증 절차>


DDA(Dynamic Data Authentication, 동적 데이터 인증)

- DDA는 SDA절차를 포함하고 있다.
- DDA는 IC카드 내부에서 동적으로 생성한 동적 어플리케이션 데이터(DAD, Dynamic Application Data)의 유효성을 검증하는 작업이다.

DDA 인증 절차
(1) IC 단말기는 IC 카드에 넌스(Random Number)를 전송하고 IC카드는 이 값을 IC카드 개인키로 암호화한 서명을 단말기로 전송한다.
(2) IC 단말기는 CA 공개키를 통해 IC 카드에 저장된 발급사 공개키 인증서를 검증한다.
(3) 발급사 공개키가 정당하면 발급사 공개키로 IC카드 공개키 인증서를 검증한다.
(4) IC카드 공개키가 정당하면 (1)에서 전달받은 서명을 복호화하여 넌스가 일치하는 지 확인한다.

<그림 2: DDA 인증 절차>