카드 결제 방식 분석 및 복사 연구(Magnetic, RFID, IC)
라온화이트햇 핵심연구팀 황정식
우리가 일상에서 사용하는 카드 결제 방식은 대략 세 가지 정도가 있습니다. 예전부터 사용했던 마그네틱 카드(Magnetic Card)
가 카드 결제에 대표적인 예시입니다. 그러나 카드 복사와 다른 보안성 문제로 인해 다른 대체제가 필요로 하게 되었습니다. 이로 마그네틱 카드의 대체제로써 RFID Tag
, IC Chip
등이 있으며, 현재 직불카드(체크카드와 신용카드 등)에 부착하여 널리 사용되고 있습니다.
이번 연구에서는 위의 세 가지 카드 결제 방식에 대해 복사
가 가능여부
에 대한 연구와, 보안성
에 대한 내용을 다뤄보겠습니다.
1. 마그네틱 카드
마그네틱 카드는 신용카드의 도입에 큰 역할을 한 기술이라고 볼 수 있습니다. 기존의 신용카드(Credit card)는 종이 재질의 카드로써 배포되었었습니다. 하지만 이러한 종이 재질의 카드로써는 불편함과 신용인에 대한 확인에서부터 많은 시간이 소요되는 단점이 있었습니다. 이를 개선하기 위해 등장한 기술이 마그네틱 기술입니다.
마그네틱 카드는 전류를 통해 마그네틱 띠가 자화되는 원리를 이용하여 정보를 기록하고, 이와 반대 방향으로 자기 방향을 변화하면 유도전류를 흘려 마그네틱 띠 내부의 정보를 읽을 수 있도록 하는 구조입니다.
마그네틱 카드의 구조는 대략적으로 이렇게 구성되어 있습니다. 이 부분에서 눈여겨 봐야 할 부분은 Track 1과 Track 2의 부분입니다.
Track 1과 Track 2에는 공통적으로 고객번호(Primary Account Number) 19자
와 ED(Expiration Data or Date)
와 같은 만료날짜, SC(Service Code)
서비스 코드, 그리고 CVV/CVC(Discretionary Data)
가 기록되어 있습니다. Track 1에는 Track 2에 비해 이름 등과 같은 이용자의 정보가 좀 더 들어가 있습니다.
이러한 카드정보를 어떻게 알아낼 수 있는지, 그리고 카드 복사는 어떻게 이루어지는지에 대해 연구해본 내용은 다음과 같습니다.
※ 본 연구는 오로지 직불카드 내의 마그네틱 정보의 취약성을 연구하기 위해 연구자 본인의 카드 정보를 읽는 과정을 나타내었습니다.
-
마그네틱 카드 정보 읽기/쓰기
마그네틱 카드는 해외에서 거래되는 Magnetic Card Reader, Writer를 통해 가능합니다. 이러한 카드 리더기는 Amazon 혹은 Ali Express와 같은 해외 직구 사이트를 통해 구입이 가능했습니다.
카드 리더기를 통해 읽어들이게 되면, 다음과 같이 세 개의 Track 정보를 보여주게 됩니다. 제 개인정보 보호를 위해 일부 모자이크 처리를 수행하였습니다. 마그네틱 카드는 시중에서 쉽게 구매가 가능하며, 읽고 쓰는 것이 얼마든지 자유로운 것으로 확인되었습니다.
-
마그네틱 카드 보안성 정리
- 카드 자체 보안성(취약) - 쉽게 탈취 가능
- 카드 복사 가능성(취약) - 쉽게 가능
- 피해 발생 가능성(취약) - 높음
마그네틱 카드는 현재까지도 지방과 수도권 할 것 없이, 많은 곳에서 결재를 지원하고 있습니다. 현재까지도 RFID 방식과 IC Chip 카드를 통한 결재를 권고하고 있지만, 결재 시스템 전체를 바꾸지 못하는 현 상황에서는 피해 발생 가능성이 낮지 않다는 것을 알 수 있습니다. 또한 마그네틱 카드는 카드 자체로써 정보를 얻는 것이 쉽고, 카드 정보가 노출된 것만으로 복사가 쉽게 이루어질 수 있음이 확인되었습니다. 따라서 보안성이 매우 취약한 마그네틱 카드의 결재 방식을 RFID 혹은 NFC, IC Chip로 대체하여 결재가 될 수 있도록 권고하고 있습니다.
2. RFID Tag
RFID란 Radio Frequency IDentification
의 약자로, 무선 주파수(Radio Frequency)를 이용하여 특정 대상을 식별할 수 있는 기술을 말합니다. RFID Tag를 통한 식별(결재, 인증 등) 과정은 다음과 같이 나타낼 수 있습니다.
-
RFID Tag 식별 과정(요약)
흔히 버스카드 리더기, 결제창구, 도어락 등에서 위와 같은 Antenna라고 하여 RFID Tag를 읽는 기능을 내장하고 있습니다. 이러한 Antenna에서는 일정량의 유도전류를 상시 발생시키고 있습니다. 그리고 이런 안테나에 RFID Tag를 가져다 대면 RFID Tag는 전류를 받아 특정 데이터를 응답하도록 되어 있습니다. 이에 대한 흐름과 순서는 다음과 같습니다.
- RFID Tag를 Antenna에 가까이 가져가면, Antenna는 RFID Tag에
Tag 데이터를 요청함
- RFID Tag는 내장되어 있는
Tag ID(Metal ID)를 전송
하게 되는데, 이때 Metal ID는 일종의 UID로써 공장에서 제작될 때 나오는 유니크한 정보임 - Antenna는
(가칭)Key Management Server
를 통해 현재 Endpoint에서 들어온Metal ID와 매칭되는 Key 값
을 Antenna에전달
함 - Antenna는 Metal ID에 해당하는 Key 값을 전송하여 RFID Tag에 전송함
- RFID
Tag 내에 저장된 Key 값과 동일
한 값이 Antenna로부터 받아들여질 경우,Tag 내의 유저 ID
(시스템에서 식별할 수 있는 특정)값을전송
함 - Antenna는 ID 값을 확인하고 원하는 행위를 서버와 함께 수행함
- RFID Tag를 Antenna에 가까이 가져가면, Antenna는 RFID Tag에
-
RFID Tag의 구조
RFID는
16개의 Sector
와 각 하나의 Sector 별로4개의 Block
이 존재합니다. 이렇게 해서 총 64개의 블록이 존재하게 되는데, 그 구조는 다음과 같습니다.이러한 섹터 중에서 가장 핵심적인 영역이 Sector 0 부분입니다.
Sector 0의 Block 0
의 경우 처음 공장에서 생성될 경우 권한을 다른 섹터 및 블록과 다르게Readonly
로 되는 것을 원칙으로 하고 있습니다. 따라서 해당 영역은 일반적인 카드에서는 변경이 불가능합니다. 또한네 번째 블록
인트레일러(Trailer)
의 경우 다음과 같은 형태로 중요 정보를 저장하고 있습니다.트레일러에는
Key
값 A와 B를 저장할 수 있는 공간이 각각6Bytes
씩 있고, 그 사이에Access Bits
를 지정할 수 있는 공간이4Bytes
있습니다.-
Key A
주로 사용되는 비밀키로써, 암호화 통신에 사용합니다. 해당 Key를 이용하여 인증 후, Sector 내부의 데이터를 확인하게 됩니다.
-
Key B
옵션으로 사용되는 공간으로, 필요없을 시 데이터를 입력하여 사용하기도 하는 구역입니다.
-
Access Bits
액세스 권한을 정의하며, 6, 7, 8 Byte의 내용에 따라 계산됩니다. 그 구조는 대략 아래와 같습니다.
-
RFID Tag 기본키 사용 장치 예시
RFID Tag에 내제된 Key 값이 Default Key인 경우에 대해 다음과 같은 예시가 있습니다.
교통카드, 도어락 스마트키, 공카드로 자체제작하는 어떠한 장치 등은 기본적으로 Default Key를 사용하도록 되어 있습니다. 따라서 제공된 Default 키를 이용할 경우 쉽게 정보가 탈취당할 수 있어 유의해야 합니다.
이외에도
Well-known Key
와 같이 알려져 있는 키를 사용하는 것 또한 올바르지 않는 설계라고 볼 수 있습니다.Mifare Classic Tool
이라는 도구에서는 잘 알려진 1081개의 키(Default Key 포함)를 통해 RFID 내의 값을 읽을 수 있는가에 대한 테스트를 해볼 수 있는 안드로이드 앱을 무료로 배포하고 있습니다. - RFID Tag 카드 보안성 정리
- 카드 자체 보안성(보통) - Key값을 알지 못하면 불가능
- 카드 복사 가능성(취약) - 카드 데이터를 알아낼 경우, 쉽게 복사 가능
- 피해 발생 가능성(보통) - 복사가 이루어질 경우 파급력이 큼
RFID Tag는 Key 값을 알아내지 못한다면 데이터를 읽을 수 없다는 점에서 어느정도 보안성이 있다고 볼 수 있습니다. 하지만 만약 태그 내의 데이터를 알아낼 경우, 복사 자체는 어렵지 않습니다. 이러한 이유로, RFID Tag 보안에 대해 일부는 Side Channel Attack을 이용하여 공격을 수행하기도 합니다.
-
RFID Tag Side Channel Attack 예시
New Hack Lets Attackers Bypass MasterCard PIN by Using Them As Visa Card
RFID Tag에 대해
Side Channel Attack
의 예시는 다음과 같습니다. 해당 링크에서 나오는 내용을 요약하면 MITM 공격으로 RFID 결제를 우회할 수 있는 공격입니다. 두 개의 스마트폰 사이에서 WiFi를 통해 연결 후, APDU 명령어를 통해 공격하는 내용을 말하고 있습니다.관련 논문은 링크로 남겨드리도록 하겠습니다.
-
3. IC Chip
IC Chip을 이용한 결제 방식은 접촉식과 비접촉식으로 나누어져 있다고 합니다. 하지만 여기서는 접촉식 IC Chip에 대한 보안성과 카드복사 가능성에 대해 다루어보려고 합니다.
IC Chip은 Integrated Circuit Chip의 약자로써, 집적 회로(Integrated Circuit)를 이용하여 특정 대상을 식별할 수 있는 기술을 말합니다. 흔히 신용카드나 체크카드에 붙어있는 금색 칩을 보셨을 것입니다. 이러한 칩은 다음과 같이 이루어져 있습니다.
IC Chip 혹은 Smart Chip이라고도 불리며, 이러한 칩의 구성은 CPU와 RAM, ROM(혹은 OS, EEPROM 등)으로 이루어져 있으며, 자체적인 암호화 모듈(Encryption Module)도 함께 내장되어 있기도 합니다. 이러한 칩 내부에는 하드웨어 및 Card OS와 같은 운영체제로 동작하는 부분과 Java Card Platform과 같은 SW 규격을 맞춘 데이터가 내포되어 있습니다. 이는 카드 자체의 연산 능력이 있다는 것을 말합니다.
신용카드의 경우 EMV(EuroPay-MasterCard-Visa)의 포맷에 맞추어 개발되며, 암호화 키 및 PIN 번호를 활용하여 결제를 가능하도록 합니다. 이러한 EMV 내부에서도 각 국가마다 이해관계가 달라서 다음과 같은 차이를 가지기도 합니다.
유럽의 경우 카드를 꽂고 PIN 번호를 입력해야 결제가 가능(해외에 신용카드 가지고 나갈 시, PIN 번호 발급이 필수) 한국과 미국의 경우 카드만 꽂아도 결제가 가능(PIN Bypass 모드 사용)
IC Chip의 보안적 특징은 암호화된 카드는 처음 만들어진 공개키 암호화 인증서를 이용하여 암호문을 생성하고, 정상적인 암호인지 확인할 수 있는 장치를 마련해두었습니다. 이렇게 생성된 암호문은 항상 일정하지 않고 매 결재 시 마다 변경되며, 암호화된 코드는 겹치지 않도록 설계되었습니다.
-
IC 카드 거래에 사용된 암호화 기술
금융부문 암호기술 - (2) IC카드 거래에 사용된 암호화 기술
SDA 인증절차는 IC 단말기가 CA 공개키를 통해 IC 카드에 저장된 발급사 공개키 인증서를 검증하는 절차입니다. 이때 IC 카드 내에는 서명된 SAD(정적 어플리케이션 데이터)를 저장해야 하고, 또한 발급사의 공개키 인증서를 저장해야 합니다.
DDA 인증절차는 IC 카드 내부에서 동적으로 생성된 동적 어플리케이션 데이터(DAD)의 유효성을 계속해서 검증하는 절차를 말합니다. IC Chip 내부에서 계속해서 변하는 암호문 데이터를 결제 시마다 검증하여 보안성을 높이는 절차입니다.
- IC Chip 카드 보안성 정리
- 카드 자체 보안성(안전) - 자체 내장된 보안기법을 통해 Key값을 알아내더라고 공격이 어려움
- 카드 복사 가능성(안전) - 카드내의 데이터를 읽는 것이 이론상 불가능하며, 읽더라도 카드 자체를 복사하는 것은 불가능함
- 피해 발생 가능성(안전) - 복사 자체가 어렵고 복사하더라도 신용카드로써 이용하는 것이 불가능함
IC Chip은 자체적인 보안기법과 IC Chip 내에서 이루어지는 암호화 연산 능력 때문에 사실상 이론적으로 복사가 불가능한 것으로 알려져 있습니다. 또한 이러한 보안 솔루션을 우회하기 위해서는 RFID Tag와 마찬가지로 Side Channel Attack류의 공격으로 우회가 가능한데, 이러한 공격도 신용카드를 우회하는 공격은 아직까지 알려진 바가 없습니다. 따라서 앞서 연구한 세 가지 카드 중에서 가장 안전한 카드 결제 방식으로 보입니다.
-
IC Chip Side Channel Attack 예시
해당 연구는 충전용 카드에 있는 IC Chip을 우회하여, 충전되어 있는 카드의 내역을 조작하는 내용입니다. 내용을 요약하여 설명드리자면, IC Chip을 통해 통신하는 내용을 오실로스코프를 통해 주파수를 잡아 이를 통해 IC Chip 내부의 값을 조작하는 것으로 기존에 충전되어 있는 금액을 조작합니다. 자세한 내용은 유튜브와 Blackhat에서 발표한 PDF 파일을 참조해주기 바랍니다.
Breaking Korea Transit Card with Side-Channel Attack - Unauthorized Recharging
4. 결론
카드 결제 및 카드 복사 관련하여 각각의 기술이 어느정도 취약한지에 대해 연구해보았습니다. 마그네틱 카드는 보안성을 고려하지 않은 상태로 설계되어 특정 도구 및 장비만 있다면 어렵지 않게 읽고 쓰기가 가능하며, 정보만 알고 있다면 쉽게 복사가 가능한 것으로 나타났습니다. 그러나 이후에 보안성을 고려한 두 가지 기법으로 RFID와 IC Chip은 보다 안전한 사용이 가능할 것으로 판단됩니다.
먼저 RFID의 경우, 내장된 6Bytes 키로 인해 적절한 인증이 이루어지지 않으면 카드를 읽을 수 없도록 설계되어있습니다. 일반적인 방법으로 전수공격(Bruteforce Attack)을 수행할 경우 인증 키를 탈취하는 것은 어렵습니다. 그러나 해당 Key를 알아낼 수 있다면, 복사 자체는 어렵지 않는 것으로 판단됩니다. 그외의 카드 복사가 아닌 타인의 카드를 사용할 수 있도록 Side Channel Attack 또한 활발히 연구되는 것으로 알려져 있어, 보안성 자체는 마그네틱 카드보다는 우수하나 IC Chip보다는 부족한 것으로 보입니다.
마지막으로 IC Chip의 경우, 내장되어 있는 공개키, 서명된 값 등을 통해 안전한 통신 및 식별 과정이 이루어지기 때문에 앞서 연구한 두 카드보다 월등한 보안성을 가지고 있습니다. 이론적으로 IC Chip 내부의 데이터를 읽고 복사하는 것은 불가능하며, 암호 인증 체계 또한 우회하기 어렵도록 되어있습니다.
위의 연구한 세 가지 카드 결제 방식에 대해 보안성과 복사 가능성 등을 연구해보았고, 이를 통해 안전한 결제 방식과 안전한 결제를 위해 필요한 보안성에 대해 알아보았습니다.