안전한 직불카드 시스템 설계와 구현

안전한 직불카드 시스템 설계와 구현

초록

**
본 논문은 FIPS‑201 기반 스마트카드를 활용한 전자결제 시스템을 제안한다. 하드웨어 모듈은 현금 투입·인식·처리를 담당하고, USB·시리얼 인터페이스를 통해 스마트카드와 통신한다. 소프트웨어 모듈은 데이터베이스 관리·사용자 인증·보안 통신을 수행하며, POS 장치와 백엔드 서버 간의 양방향 동기화를 구현한다.

**

상세 분석

**
이 연구는 전통적인 현금 결제와 전자결제를 융합한 하이브리드 결제 플랫폼을 설계한다는 점에서 의미가 크다. 핵심은 FIPS‑201(PIV) 표준을 따르는 스마트카드이며, 카드 내부에 암호화된 개인 식별 정보와 거래 기록을 안전하게 저장한다. 하드웨어 측면에서는 마이크로컨트롤러 기반 임베디드 보드가 현금 투입기(노트 스캐너)와 연결되어, 광학·자기 센서를 통해 화폐 진위와 금액을 판독한다. 판독된 데이터는 실시간으로 전처리된 뒤, USB 혹은 UART 시리얼 포트를 이용해 스마트카드 리더 모듈에 전달된다. 이때 카드와의 인터페이스는 ISO‑7816 전기적 규격을 따르며, APDU 명령을 통해 암호화된 트랜잭션 데이터를 읽고 쓰는 구조다.

소프트웨어 스택은 크게 세 부분으로 나뉜다. 첫째, POS 장치에 탑재되는 C++/Java 기반 애플리케이션은 사용자 인터페이스와 카드·하드웨어 제어 로직을 담당한다. 둘째, 백엔드 서버는 MySQL 혹은 PostgreSQL 기반 데이터베이스와 RESTful API 서버를 운영해 사용자 계정, 잔액, 거래 로그 등을 관리한다. 셋째, 보안 통신 계층은 TLS 1.3을 기반으로 하며, 서버와 POS 간에 상호 인증을 수행한다. 서버는 스마트카드에 저장된 공개키와 매칭되는 인증서를 검증하고, 세션 키를 교환한 뒤 대칭키(AES‑256‑GCM)로 데이터 암호화를 수행한다.

인증 흐름은 다음과 같다. 사용자가 카드를 삽입하면 POS는 카드의 고유 식별자와 디지털 서명을 요청한다. 카드가 내부 비밀키로 서명한 응답을 POS가 받아 서버에 전달하면, 서버는 사전 등록된 공개키로 서명을 검증하고 사용자 권한을 확인한다. 인증이 성공하면 서버는 최신 계정 잔액과 정책 정보를 POS에 전송하고, POS는 이를 카드에 기록한다. 이 과정에서 트랜잭션 로그는 양쪽(카드·서버) 모두에 동일하게 저장되어, 탈중앙화된 이중 검증 메커니즘을 제공한다.

시스템은 또한 ‘자동 업데이트’ 기능을 제공한다. 사용자가 카드만 삽입해도 POS는 백엔드와 연결을 시도해 최신 키와 정책을 동기화한다. 이는 카드 교체 주기를 연장하고, 보안 패치 적용을 원활하게 만든다. 구현 시 마이크로컨트롤러는 FreeRTOS 기반 실시간 OS를 사용해 멀티태스크를 관리하고, 전원 관리 모듈은 배터리 구동 시에도 최소 전력 소모를 목표로 설계되었다.

보안 측면에서 본 논문은 FIPS‑201 표준을 준수함으로써 정부·군용 수준의 인증을 제공한다는 점을 강조한다. 그러나 키 관리와 물리적 공격(예: 사이드채널, 전력 분석)에 대한 방어 메커니즘은 다소 간략히 다루어졌다. 또한, 현금 인식 모듈의 정확도와 오탐률에 대한 실험 데이터가 부족해 실제 운영 환경에서의 신뢰성을 판단하기 어렵다. 전반적으로 시스템 아키텍처는 견고하고 확장 가능하지만, 상용화 단계에서는 보다 정교한 보안 검증과 하드웨어 내구성 테스트가 필요하다.

**