이 글은 <Classifying RFID attacks and defenses>라는 논문을 읽고 분석 및 정리한 내용입니다. 글의 출처는 아래와 같습니다. 2010년에 나온 글이지만, 현재에도 시사하는 바가 크다고 생각해 이 논문을 선정했습니다.
https://link.springer.com/article/10.1007/s10796-009-9210-z
개요
먼저 RFID가 어떤 기술인지 알아보겠습니다. RFID는 Radio Frequency Identification의 약자로 다양한 분야에서 사용되는 보편적인 컴퓨팅 기술 중 하나입니다. 무선인식이라고도 하며 반도체 칩이 내장된 태그(Tag), 라벨(Label), 카드(Card) 등 저장된 데이터를 무선주파수를 이용해 비접촉으로 읽어내는 인식 시스템입니다. 또한 이 기술은 현관문부터 교통카드, 하이패스, NFC 등 다양한 곳에서 활용되고 있습니다. 자세한 내용은 아래 [소개]에서 더 설명할 예정입니다. 본 논문에서는 RFID 공격을 분류하고, 그중에서 주요한 특징을 제시하며, 대응 방안을 논의할 것입니다. 또한, RFID에 대한 더 나은 이해를 위해 기존 약점을 분류하고, 효과적인 대응을 위한 알고리즘 및 기술/절차를 개발하는 것을 목표로 합니다.
필자는 RFID의 공격 분류를 전체적으로 살펴보고 공격 방법 및 대응 방안을 중점적으로 살펴볼 것입니다.
중요: 아래 나오는 내용을 실제 매장, 집, 회사 등 자신이 소유하고 있지 않은 것에 실습하는 경우 처벌받을 수 있습니다. 실습을 할 것이라면 본인의 기기 또는 허락을 받은 장치에 하세요!
소개
RFID는 서비스 품질 향상과 제품 위조 및 도난 방지, 생산성 향상 및 품질 표준 유지에 사용될 수 있습니다. 일반적으로는 고속도로 통행료 징수, 공급망 관리, 건물 출입 통제, 동물 추적, 스마트 가전, 자동차 스마트키(keyless entry for automobiles) 등이 있습니다.
본문에서는 일반적으로 사용되는 OSI 프로토콜 계층과 비슷하게 설명할 것입니다.
분류 개요
- Strategic Layer(전략 계층)
- Application Layer(응용 계층)
- Network-Transport Layer(네트워크-전송 계층)
- Pysical Layer(물리 계층)
자세한 설명은 링크를 통해 확인하세요. <Fig. 1 Layers of RFID communication>을 보면 한 눈에 볼 수 있습니다.
RFID 공격에 대한 사진은 <Fig. 2 Classification of RFID attacks>를 참조하세요.
설명은 물리 계층부터 전략 계층으로 가는 순서로 하겠습니다.
Pysical Layer(물리 계층)
RFID 통신에서 물리 계층은 물리적 인터페이스와 사용되는 무선 신호, RFID 장치로 구성됩니다. 이 계층의 릴레이 공격 뿐 아니라 영구적 또는 일시적으로 RFID 태그를 비활성화하는 공격을 포함합니다. 물리 계층의 공격 방법을 알아보겠습니다.
(1) Permanently disabling tags
Tag Removal (태그 제거)
RFID는 물리적 보안이 취약합니다. 때문에 RFID를 다른 물품에 부착할 수 있습니다. 예를 들어 서점에서 RFID 기술을 이용한 도난 방지 태그가 부착된 책이 있다고 가정하겠습니다. 여기서 이 태그만 떼어낸 후 출입문을 통과하면 경고음 없이 나갈 수 있습니다. RFID 태그를 바꿔서 돈을 덜 내려고 시도할 수도 있습니다. 이 경우 RFID 시스템은 태그 ID를 객체와 정확히 연결하지 못해 이를 추적할 수 없고, 데이터 무결성이 손상될 수 있습니다. 따라서 근본적인 보안 문제를 야기합니다. 다행인 점이라면 이러한 공격은 대규모로 이루어질 수 없다는 것입니다.
Tag Destruction(태그 파괴)
화학적 또는 물리적으로 태그를 파괴하는 것을 말합니다. 압력, 장력, 화학적 노출, 안테나 제거 등의 방법으로 손쉽게 RFID 태그를 파괴할 수 있으며 RFID 인식 장치 유유히 빠져나갈 수 있습니다. 또한 컨베이어 벨트나 고에너지파에 의한 정전기 등에 의해 손상될 수 있으며 RFID Zapper를 사용하면 RFID 태그를 영구적으로 비활성화(파괴)할 수 있습니다.
RFID Zapper: RFID를 영구적으로 파괴하기 위한 장치
KILL Command (KILL 명령)
RFID 태그는 태그 제조업체가 정의한 고유한 암호를 가지며 RFID 태그를 영구적으로 작동 불가능하게 만들 수 있습니다. 사용되는 비활성화 유형에 따라 KILL 명령이 장치에 저장된 데이터를 부분적 또는 완전히 지울 수 있습니다. 이러한 기능은 악의적인 공격자에게 악용될 여지가 있습니다.
(2) Temporarily disabling tags (태그 일시 비활성화)
Passive Interference (수동 간섭)
같은 주파수 대역의 무선 신호를 만나면 간섭 및 충돌에 취약합니다. 이는 명확하고 효율적인 통신을 방해합니다. 주로 의도하지 않은 상황에서 자주 발생합니다,
Active Jamming (액티브 재밍)
공격자는 RFID 태그가 자신의 범위에 있는 모든 무선 신호를 무차별적으로 수신한다는 점을 이용할 수 있습니다. 때문에 RFID 리더 장치와 동일한 범위의 신호를 생성하여 의도적으로 방해할 수 있습니다.
(3) Removal or destruction of RFID readers (RFID 리더의 제거 또는 파괴)
RFID 리더 자체를 물리적으로 파괴 또는 제거해 작동 불능상태로 만들 수 있습니다. 또한 RFID 리더를 도난당하면 RFID 태그, 백엔드 시스템 접근 및 추가적인 데이터 조작이 가능합니다.
RFID 리더, RFID 리더기, RFID 단말기, RFID 판독기는 비슷한 말이기 때문에 동일한 의미로 취급하겠습니다.
(4) Relay attacks (릴레이 공격)
릴레이 공격은 합법적인 RFID 태그와 판독기 사이의 무선 신호를 가로채 수정할 수 있습니다. 프록시와 비슷한 의미로 생각해도 될 듯합니다. 릴레이 공격은 두 가지 유형이 있습니다. 첫 번째는 합법적인 두 당사자 사이 정보를 전달하는 불법적인 당사자의 존재를 포함합니다. 두 번째는 이의 연장선상에서 합법적인 태그는 불법적인 정보를 전달하는 당사자와 어떤 비밀도 공유하지 않습니다. 가장 우려되는 점은 상당한 거리에서도 릴레이 공격이 성공할 수 있다는 것입니다. 예로 네덜란드 대중교통 티켓에 대한 릴레이 공격을 들 수 있습니다.
(5) Defenses against physical layer attacks (물리 계층 공격 대응 방안)
물리 계층을 대응하기 위해서는 물리적인 방법을 사용해야 합니다. 태그나 판독기를 영구적 또는 일시적으로 비활성화하는 저기술 공격으로부터 RFID 시스템을 보호하기 위해서는 전통적인 방식인 가드, 울타리, 게이트, CCTV, 보안인력 배치 등을 해야 합니다. 태그가 쉽게 제거되지 않으면서 상품을 손상시키지 않는 강력한 접착제나 기계적 결합이 대안이 될 수 있습니다. 또한 태그 조작을 감지하는 센서를 사용하면 바로 감지해 대응할 수 있습니다.
KILL 공격을 방어하는 방법으로는 비밀번호를 효과적으로 관리해 무단 사용을 방지할 수 있습니다. 또한 마스터 비밀번호는 하나의 비밀번호가 유출될 시 시스템 전체에 막대한 영향을 끼칠 수 있으므로 지양해야 하는 정책입니다.
릴레이 공격을 방어하기 위해서는 RFID 태그와 판독기 사이의 거리가 중요합니다. 거리가 짧을수록 탐지가 어려워집니다. 무선 신호의 왕복 지연이나 신호 강도 등 태그-리더 거리를 측정하기 위해 다양한 기술을 사용할 수 있습니다. 사용 용도에 따라 이를 명확히 구분하고 먼 거리에서 RFID 기술을 사용할 때 릴레이 공격을 막기 위한 기법이 필요해 보입니다.
Network-Transport Layer(네트워크-전송 계층)
이 계층은 RFID 시스템이 통신하는 방식과 RFID 네트워크 엔터티(태그, 판독기) 간에 데이터가 전송되는 방식을 기반으로 하는 모든 공격을 포함합니다. 네트워크 전송 계층에 영향을 미치는 공격을 설명하고 이를 태그 공격, 리더 공격, 네트워크 프로토콜 공격으로 구분하겠습니다. 또한 대응 방법도 제안합니다.
(1) Attacks on the tags (태그 공격)
Cloning (클로닝)
RFID에 보안 기능이 없는 경우 태그의 ID 및 관련 데이터를 복제 태그에 복사할 수 있습니다. 태그에 추가적인 보안 기능이 있는 경우에는 악성 복제 태그가 리더를 속여 합법적으로 받아들이도록 정교한 공격을 해야합니다. 공격에 필요한 노력의 정도는 RFID 태그의 보안 기능에 따라 다릅니다. 복제로 인해 동일한 태그가 유통되면 지정된 매체에 대한 혼란이 발생하며 시스템 무결성이 침해됩니다.
시스템 무결성: 시스템이 소유한 파일과 시스템 디렉터리를 특정한 자격 없이는 수정할 수 없도록 보호하는 것
Spoofing (스푸핑)
스푸핑은 RFID 태그를 물리적으로 복제하지 않은 복제의 원형입니다. 이러한 유형에서 공격자는 권한을 얻기 위해 유효한 RFID 태그를 가장합니다. 이를 위해서는 원본 태그와 동일한 통신 채널에 대한 전체 액세스 권한이 필요합니다. 인증에 사용되는 프로토콜과 보안 지식이 필요합니다.
(2) Reader attacks (리더 공격)
Imprersonation (가장)
많은 경우 RFID 통신은 인증되지 않습니다. 때문에 공격자는 중요 정보를 노출하거나 RFID 태그 수정을 위해 합법적인 RFID 판독기(리더)의 신원을 위조할 수 있습니다. 예를들어 자격 증명이 판독기에 저장되어 있는 경우 도난당한 판독기가 RFID 태그와 백엔드 시스템에 액세스 하는데 필요한 자격 증명이 공개될 수 있습니다. 그러나 백엔드에 액세스 해서 필요한 자격 증명을 검색해야 할 수도 있습니다.
Eavesdropping (도청)
RFID 무선 특성으로 인해 도청은 심각하고 잘 알려진 위협 중 하나입니다. 리더는 태그보다 훨씬 더 높은 전력으로 먼 거리까지 전송하기 때문에 이런 공격에 취약합니다. 통신 방식에 따라 후방 산란 시스템에서는 100m~200m, 방향성 범위를 사용하면 500m~1000m까지 통신이 가능합니다. 기록된 정보는 나중에 보다 정교한 공격을 수행하는 데 사용될 수 있기에 간과해서는 안됩니다.
(3) Network protocol attacks (네트워크 프로토콜 공격)
RFID는 범용 네트워킹 장치와 동일한 취약점을 가지고 있습니다. 악의적인 공격자가 공격을 시작하고 인프라를 손상시키기 위해 운영체제 및 네트워크 프로토콜의 결함을 사용할 수 있습니다.
그럼에도 데이터베이스와 네트워킹 장치에 보안 위험과 과제는 RFID 통신과 직접적인 관련이 없으며, 장치간 연결이 강력한 보안 메커니즘을 가진 유선 연결로 이루어지므로 자세히 다루지는 않겠습니다.
(4) Defenses against network-tranport layer attacks (네트워크-전송 계층 공격 대응 방안)
복제 공격은 시도-응답 인증 프로토콜(challenge-response authentication protocols)을 통해 완화할 수 있습니다. 리소스가 크게 제한되지 않는 고비용 RFID 태그는 공개 키 암호화 방식을 이용해 복제를 방지할 수 있습니다.
복제에 맞서기 위한 또 다른 접근법은 PUF(Physical Unclonable Function)를 사용하는 것입니다. 한국어로 물리적 복제 방지 기능이라고 합니다. 이는 반도체 제조 공정에서 발생하는 미세공정의 편차를 이용해 칩 내부에 예측하기 어려운 디지털 키 값을 생성하는 시스템입니다.
백엔드 데이터베이스의 정보를 연관시켜 복제를 감지할 수도 있습니다. 예를들어 RFID 기반 출입 통제 시스템에서 RFID 패스를 소지한 직원이 데이터베이스에 따라 이미 건물 안에 있는 경우 같은 RFID로의 출입을 허용하지 않는 것입니다.
RFID 태그를 복제 가능한 상태로 유지해야 하는 필요성도 있습니다. 2005년 어떤 도둑이 지문인식 시스템으로 보호되는 자동차를 훔치기 위해 한 남자의 손가락을 절단한 끔찍한 사건도 있었습니다.
수동적 도청 공격은 RFID 통신 채널의 암호화를 통해 방어할 수 있습니다. 간단한 해결 방법은 불필요하게 태그에 데이터를 저장하지 않는 것입니다. 태그에 저장된 정보를 최소화하면 정보가 유출될 가능성도 줄어듭니다. 태그와 관련된 모든 데이터는 백엔드 데이터베이스에 검색돼야 합니다. 그러면 메모리 제안 없이 효율적이고 신뢰할 수 있는 절차를 사용하므로 데이터의 관리 및 보안이 용이해집니다. -> 도청 문제가 태그의 ID를 안전하게 전송하는 문제로 전환됩니다.
스푸핑 및 명의 도용은 인증 프로토콜, 일회용 비밀번호, PIN, 생체 인식 등 이중 인증을 사용해 방지할 수 있습니다. 그럼에도 암호화되지 않은 비밀번호 시스템은 도청에 취약하고 시행착오를 통해 해독될 수 있습니다. 때문에 횟수 제한이나 가명처리, 해시 잠금, 무작이 해시 잠금, 체인 해시 등을 활용할 수 있습니다.
네트워크 프로토콜 공격은 RFID 통신을 지원하는 모든 구성 요소의 보안을 강화하고 보안 운영 체제를 적용하며 안전하지 않거나 사용하지 않는 네트워크 프로토콜을 비활성화해 대응할 수 있습니다. 또한 사용되는 프로토콜은 최소한의 권한으로 구성해야 합니다.
Application Layer (애플리케이션 계층, 응용 계층)
이 계층은 애플리케이션 사용자와 RFID 태그 간 바인딩과 관련된 정보를 표적으로 삼는 모든 공격이 포함됩니다. 이런 공격은 승인되지 않은 태그 읽기, 태그 데이터 수정, 애플리케이션 미들웨어 공격 이 있습니다.
표준국어대사전
바인딩(binding): 프로그램에서 모든 주소를 절대 주소로 바꾸어 주기억 장치의 고정된 부분에 묶어 놓는 일.
(1) Unauthorized tag reading (무단 태그 읽기)
RFID 태그는 전원을 끄고 켤 수 있는 스위치가 없습니다. 때문에 공격자가 흔적을 남기지 않고 RFID 태그의 내용을 쉽게 읽을 수 있습니다. 그러나 RFID는 태그에 가까이 가야 읽을 수 있기 때문에 공격할 수 있는 범위가 적습니다. 유도 결합 시스템은 1미터가 상한 이며, 특수 판독기를 구성하려면 추가 비용이 필요하기 때문에 모니터링만 잘 되어도 무단 태그 읽기의 효용성은 감소합니다.
(2) Tag modification (태그 수정)
오늘날 널리 사용되는 대부분의 RFID 태그는 사용자 쓰기가 가능합니다. 때문에 공격자는 이를 악용하여 귀중한 정보를 수정 또는 삭제할 수 있습니다. 이러한 공격의 난이도는 RFID 표준 사용과 사용된 읽기/쓰기 보호에 따라 달라집니다.
이 공격이 심각한 영향을 미칠 수 있는 예시로 RFID에 저장된 태그와 해당 태그가 지정된 개체/사람 사이 불일치가 있습니다. 예를들어 약의 권장 복용량 등 의료 분야에서 악용될 수 있으며 표적화된 공격에서는 태그의 ID, 보안 관련 정보가 변경되지 않는 방식으로 데이터를 수정할 수 있습니다. 즉 중요한 정보가 위조되었거나 판독기가 수정되지 않은 태그와 통신하고 있다고 생각하도록 속일 수 있습니다.
(3) Middleware attacks (미들웨어 공격)
마이크로소프트, 미들웨어란?
미들웨어: 운영체제와 해당 운영체제에서 실행되는 어플리케이션 사이에 존재하는 소프트웨어입니다.
Buffer Overflow (버퍼 오버플로)
버퍼 오버플로우 공격은 고정 길이 버퍼의 범위를 넘어서는 데이터나 코드를 저장합니다. 공격자는 RFID 태그를 이용해 백엔드 RFID 미들웨어에서 버퍼 오버플로를 시작할 수 있습니다. 백엔드 RFID, 스마트카드 등에서 악용될 수 있습니다.
Malicious Code Injection (악성 코드 주입)
RFID 태그가 RFID 네트워크의 다른 개체(리더, 연결 네트워크)를 감염시킬 수 있는 악의적인 코드를 전파하는데 사용될 수 있습니다. 이 시나리오에서는 RFID 태그의 메모리 공간을 사용하며, 실험실 단위에서 입증되었다고 합니다. 미들웨어 응용 프로그램이 Javascript, PHP, XML 등 스크립팅 언어를 사용하기 때문에 공격자는 이를 악용하고 미들웨어 시스템을 손상시키기 위한 악성코드를 주입할 수 있습니다. 또한 코드 삽입을 위해 RFID 태그를 이용할 수도 있습니다. 같은 방식으로 SQL을 기반으로 하는 코드 삽입 공격으로 백엔드 데이터베이스를 무단으로 액세스 하거나 데이터베이스에 저장된 데이터를 공개 또는 수정할 수도 있습니다.
(4) Defenses against application layer (애플리케이션 계층 공격 대응 방안)
무선 태그 판독과 태그 수정을 방지하려면 RFID 태그에 대한 액세스를 제어해야 합니다. 읽기 전용 태그를 이용하는 경우 무단 수정을 간단히 방지할 수 있습니다. 그러나 사용자의 편의성은 떨어집니다.
다른 방법으로는 RFID를 무단 판독으로부터 보호할 수 있는 물리적인 지갑이나 케이스를 장착하는 것이 있습니다. 그러나 이를 무조건 맹신해서도 안되겠죠. 무단 판독을 방지하기 위한 차단 태그도 있다고 합니다.
암호화 기술, 인증 프로토콜, 액세스 제어 목록을 이용할 수도 있습니다. 대칭 키 암호화, 공개 키 암호화, 해시 함수, 상호 인증, 가명과 같은 비암호화 솔루션 등이 있습니다. 그러나 중요하지 않은 기기에까지 암호화 기술을 사용할 가치는 없으며, 무단 판독을 방지하기 위한 궁극적인 해결책은 KILL 명령 등으로 사용이 끝난 후 영구적으로 비활성화하는 것입니다.
미들웨어의 버퍼 오버플로 및 악성코드 주입은 정기적인 코드 검토와 엄격한 검사를 통해 취약점과 버그로부터 시스템의 보안을 강화하는 방법으로 대응할 수 있습니다. 이에 대한 대응 기법은 같은 기술을 사용하는 웹 해킹에서의 대응 방안과 유사합니다.
Strategic Layer(전략 계층)
이 계층은 기술보다는 스파이 활동, 사회 공학 기법, 개인 정보 보호 및 표적 보안 위협 등을 포함합니다.
(1) Competitive espionage (경쟁 간섭, 경쟁적 스파이 활동)
공격자가 비지니스 또는 산업 경쟁업체를 표적으로 삼는 경우가 많습니다. 태그가 지정된 항목을 추적, 탐지해서 경쟁사를 방해하며 중요한 기밀 정보를 수집할 수도 있습니다. 이러한 공격은 도청, 벡엔드 데이터베이스 등에 대한 무단 액세스를 통해 이루어질 수 있습니다.
(2) Social engineering (사회 공학)
공격자가 사회공학적 기법을 이용해 RFID 시스템을 손상 또는 무단 액세스할 수 있습니다. 힘들게 RFID 통신을 해킹하는 대신 사람들을 통해 기밀 정보를 얻을 수 있습니다. 공격자는 문을 열어두거나 RFID 태그를 빌려주는 등의 친절 행위를 이용해 공격할 수 있습니다.
(3) Privacy threats (프라이버시 위협, 개인 정보 위협)
RFID는 어떤 표시나 승인 여부에 관계없이 모든 판독기에 응답합니다. 때문에 공격자가 개인 추적 및 프로파일링에 악용할 수 있습니다. 구매 습관, 의료 정보 등 다양한 정보가 수집될 수 있습니다. 심지어 개인의 위치를 추적하는 데 사용될 수도 있습니다.
참고: RFID를 통해 실내에서 실시간 위치 추적이 가능하다.
(4) Targeted security threats (표적 보안 위협)
공격자가 수집된 정보를 사용해 악의적인 이벤트, 물리적/전자적 공격을 트리거할 수 있습니다. 달리 말해 공격의 시발점이 될 수 있습니다. 예로 시계나 보석을 수집하는 사람을 목표로 강탈하는 것, 귀중한 물건을 운반하는 트럭이나 배, 집의 귀중품을 도둑들이 침입하기 전에 스캔할 수 있습니다. 여권도 특정 국적의 사람들이 범위 내에서 탐지될 때만 작동되도록 하는 "RFID 폭탄" 등의 위협이 있을 수 있습니다.
(5) Defenses against strategic layer attacks (전략 계층 공격 대응 방안)
이 계층의 공격은 다른 계층에 대한 모든 대책을 사용해 방어할 수 있습니다. 그러나 이런 위협에 효과적으로 대응하기 위해서는 장기적인 노력이 필요합니다. 기업과 조직의 개인정보보호 및 데이터 보호 정책 및 위험 평가를 자주 하고 법률 상담과 직원에 대한 지속적인 정보보호 교육 등이 필요합니다.
(추가필요)
Multilayer Attacks (다층 공격)
(1) Covert channels
(2) Denial of service attacks
(3) Traffic analysis
(4) Crypto attacks
(5) Side channel attacks
(6) Replay attacks
(7) Defenses against multilayer attacks
느낀점
RFID 해킹이 복제나 수정만 있는지 알았는데 생각보다 분야가 다양해서 놀랐습니다. 또한 네트워크, 웹, 물리 해킹까지 다방면의 관점에서 살펴보니 RFID 기술이 정말 널리 쓰이고 있고 조금만 방심하면 정보가 유출되는 것도 순식간이라는 생각이 들었습니다. 이 논문이 2010년에 나왔기 때문에 어떤 새로운 방어 기법과 공격 기법이 나왔는지 궁금해지기도 했습니다.
추가: 해킹 도구
RFID 해킹의 맥가이버 칼 flipper-zero
RFID 태그 복제 도구 Proxmark3