본문 바로가기

잡문모음

금융IC카드에 공인인증서 저장하기: 이론과 실제

금융IC카드 표준안에는 공인인증서 저장소가 기본 기능으로 정의되어 있습니다. 물론 K-CASH와 마찬가지로 이 기본 기능을 활성화 시켜서 발급하느냐, 죽여놓고 발급하느냐에 따라서 실제로 우리가 발급받은 IC카드의 보안 저장소에 인증서를 넣을 수 있는지의 여부가 결정됩니다. 이론적인 이야기는 저도 이 이상 알지 못하니, 실제로 공인인증서를 금융IC카드에 넣으면서 겪은 여러 가지 문제점에 대해 정리해 보려 합니다.
먼저 스마트카드 더미 단말기가 필요합니다. ISO 7810/7816 호환, EMV 호환이라고 쓰여 있으면 얼마 짜리를 사든 상관 없습니다. 금융IC카드 표준 자체가 국제 표준과 호환되도록 구성되어 있습니다. 이베이에서 7~8불 하는 것을 사면 주문한 것을 잃어버릴 즈음 배송되니 느긋하게 기다리면 됩니다. 저는 한 달 걸려 받았는데 macOS와 윈도 7에서 PnP로 드라이버 세팅까지 알아서 되었습니다.
그 다음으로 공인인증서를 IC카드에 올려줄 ActiveX가 필요합니다. 괜히 은행에서 헤매다가 "알 수 없는 오류"따위를 만날 일 없이, 금융결제원이 제공하는 플러그인을 사용하는 것이 편하겠다 싶어 금융결제원 전자인증센터에 접속했습니다.(https://www.yessign.or.kr) AOS를 깔라고 강요하긴 합니다만, 은행 홈페이지에 접속하는 것보다는 금결원 쪽이 가볍습니다.
그러나 이렇게 쉽게 풀리면 한국이 아니랄까, 역시 오류를 만났습니다. "개인키 쓰기 실패[10710]"라는 에러인데, 금결원 이메일 상담으로 문의하니 한나절만에 답신이 왔습니다. 아시는 분들은 아시겠지만, 한국의 공인인증서는 2011년 12월까지 발급된 키의 경우 RSA 키 길이는 1024bit, 알고리즘은 SHA1로 발급되었습니다. 2012년 1월부터는 2048bit 키에 SHA256 알고리즘을 사용하도록 상향 조정되었지요. 제가 맞닥뜨린 문제는 바로 여기서 기인하는 것이었습니다. 제 공인인증서는 2016년 6월에 갱신한 2048bit 키로 발급된 것이었고, 제가 시도한 금융IC카드는 1024bit까지만 수용하도록 제작된 물건이었습니다. 그래서 카드를 쭉 늘어놓고 하나씩 시도해 보았는데, 제일 처음 시도한 농협중앙회 현금카드(2014년 발급, 오른쪽 상단에 점자 있는 카드)에 복사하니 제대로 들어갑니다. 슬쩍 보아하니 2기 나라사랑카드에도 들어갈 것 같습니다. 다만 발급 일자와 관계 없이 옛날 규격으로 나오는 금융IC카드들은 공인인증서 저장 기능이 있어도 복사나 발급은 에러를 뿜습니다. 이를테면 신한은행 직불형/교통형 SmartOne카드나 우리은행 현금카드(CASH 2.0 쓰여진 것) 등. 미심쩍다면 지점에 방문하기 전에 당행 자재가 2048bit 키 길이를 지원하는지를 고객센터를 통해 확인받으시는 것이 좋겠습니다.
한줄요약: 오래된 IC 자재에는 공인인증서 저장 기능이 있어도 저장되지 않는다.