SIM카드는 복제를 할 수 있다
SIM카드에서 처음 발견된 취약점 중 하나는 '클론이 만들어질 가능성이 있다'는 것입니다. 여기서 말하는 클론의 작성은 SIM카드의 내용을 읽어 다른 SIM카드의 메모리에 기록한다는 뜻입니다. 하드웨어의 관점에서 보면, SIM카드는 단순한 스마트카드에 불과해, 유사한 것을 어디에서나 구할 수 있고 칩 정도의 가격으로 살 수 있습니다. 복제할 수 있는 것도 지극히 당연한 일입니다.
여러 SIM카드를 사용할 수 있는 휴대전화가 없었을 당시에는 복수의 SIM카드를 필요로 하는 사람들은 복제하여 이 문제를 해결했습니다. SIM카드의 교체 시간을 절약하기 위해 등장한 것이 MultiSIM라는 방식입니다. MultiSIM은 기본적으로 확장 메모리를 탑재한 스마트카드이며, 일반적으로 여러 SIM카드에 저장된 데이터를 보관합니다.
따라서 물리적인 교체없이 SIM을 쉽게 전환할 수 있습니다. 이 방식은 '다시 시작할 때마다 다음 SIM카드에 상당하는 셀의 시퀜스가 선택된다'는 간단한 구조가 이용되고 있었습니다. 물론 여러 SIM카드가 동시에 작동할 수는 없습니다. 단말기 측에서는 일단 전원이 꺼지고 SIM카드가 바뀐 후 다시 전원이 켜져야 인식됩니다.
10년 전 MultiSIM은 적극적으로 사용되고 있었습니다. 흥미롭게도 더미 스마트카드, 스마트카드를 읽고 쓸 수 있는 PC 어댑터, 전용 소프트웨어가 들어있는 DIY 키트를 판매하고 있었을 정도입니다.
그러나 SIM카드 복제는 악의적인 활동에도 사용할 수 있었습니다. 범인은 겨냥한 SIM카드에 짧은 시간이라도 액세스 할 수 있다면, 클론을 만들어 정규 SIM카드에 침입할 수 있습니다. 정규 가입자가 모바일 네트워크에 인식되고 있을 때, 클론의 SIM카드가 활성화되면 통신이 끊어져 버립니다만, 정규 가입자는 전혀 인식하지 못합니다. 이 경우 수신 통화 및 수신 메시지는 모든 범죄자에게로 전송됩니다. 또한 범죄자는 피해자를 대신하여 전화를 걸거나 메시지를 보내고, 인터넷 검색 등도 가능합니다.
휴대전화의 화면에 네트워크 표시 등 및 통신 사업자의 이름이 평소처럼 표시되므로 피해자는 아무것도 모른 채 연결되어 있다고 착각합니다. 그러나 단말기를 다시 시작하거나 모바일 네트워크 연결 상태를 강제로 업데이트하거나 하지 않으면(일반적으로 몇 시간 간격으로 자동 업데이트됩니다) 전화를 걸 수 없습니다.
당초 복제 SIM은 기본적으로 어디에서나(다른 대륙에서도!) 인식했습니다. 잠시 후 이를 눈치챈 통신사업자는 대책으로서 원시적인 보안 메커니즘을 도입했습니다. 가입자가 마지막으로 인식된 장소로부터 멀리 떨어진 곳에서 갑자기 인식된 경우 관리자에게 통보하는 것입니다.
그래도 범죄자가 피해자로부터 가까운 곳에 있을 경우 정상인식으로 판단될 가능성은 남아 있습니다. 이 경우 앞서 언급한 보안 대책은 소용이 없습니다.
왜 SIM는 복제가 가능할까?
네트워크에서 가입자 인증에 사용되는 Ki(Key Identification)키는 일반적으로 SIM카드에서 읽을 수 없습니다. SIM카드 프로세서는 이 키를 '내부'에서 호출합니다. 즉, 이 키는 무선으로 공유되는 것이 아닙니다. 메모리가 보호된 파티션에 저장되어 있으며, 이 키를 읽을 수 있는 API는 없습니다.
그러나 여기서 등장하는 것이 암호해독법입니다. SIM카드에서 A3 알고리즘을 반복해서 달리게 하는 소프트웨어를 사용하여 임의의 RAND를 처리하고 SRES 리스폰스를 생성시켰다면, 어떤 의존성을 찾아내어 Ki 열쇠를 산출할 수 있습니다.
10년 전 PC에서조차 이러한 처리를 단 몇 분만에 완료할 수 있는 성능을 갖추고 있었습니다. 하지만 이야기는 그렇게 간단하지 않습니다. SIM카드는 일종의 자폭 타이머를 탑재하고 있으며, 암호 알고리즘의 실행 횟수를 계산합니다. 예를 들어, 카드에 실행 횟수의 상한이 65,536회로 설정된 경우, 이 한도에 도달하면 SIM카드의 프로세서는 SRES 리스폰스를 계산하지 않습니다.
Ki가 제대로 계산되지 않으면 그 SIM카드는 전혀 쓸모없게 되어 교체가 필요합니다. 정규 SIM카드를 사용하고도 이런 일이 발생할 수 있습니다. 예를 들어, 상한치가 처음부터 낮게 설정되어있는 카드를 오랫동안 사용하고 있으면 충분히 일어날 가능성이 있습니다.
다행히도 암호해독법으로 Ki값을 얻을 수 있는 것은, A3 알고리즘의 가장 오래된 버전 COMP128v1을 지원하는 SIM카드뿐입니다. 이 SIM카드는 일부 통신사업자로 지금도 사용하고 있고, 클론 작성이 가능합니다. 최첨단 통신사업자는 이미 COMP128v2과 COMP128v3 알고리즘으로 전환하여 RAND-SRES의 조합 수가 증가하고 있으므로 앞의 방법으로 Ki키를 계산할 수 없습니다.
통신사업자의 SIM카드 데이터베이스 또는 SIM카드 제조업체에서 통신사업자에게 보내는 특별한 룩업 테이블에 액세스 가능하면 한 번에 대량의 SIM카드 키 세트를 얻을 수 있을지도 모릅니다. 그러나 이를 위해서는 통신사업자 또는 SIM 업체의 내부 정보에 무단 액세스 해줄 공범이 필요합니다.
떠도는 소문에 따르면, 요즘의 PC라면 무선으로도 열쇠를 가로채 그 자리에서 해독할 수 있다고 합니다. 그러나 다시 말하지만, Ki키가 무선으로 전달되는 것이 아니라 SIM카드에 저장되어 있습니다.
출처 번역
SIMカード:クローンの攻撃
https://blog.kaspersky.co.jp/sim-card-history-clone-wars/10118/
'IT' 카테고리의 다른 글
SIM 없이 스마트폰을 영리하게 사용하기, 활용 방법 (0) | 2020.08.02 |
---|---|
Android의 '자동 비행기 모드'는 왜 사용하지 않을까? (0) | 2020.08.02 |
일부러 '비행기 모드'를 하는 6가지 장점 [iPhone / Android] (0) | 2020.08.02 |
Google · Facebook · Amazon · Apple이 반복하는 '사소하지만 심각한 거짓말' 5가지 (0) | 2020.08.01 |
iPhone의 이어스피커 고장은 매우 드물다 (0) | 2020.08.01 |
통화 중에 자신의 목소리가 상대방에게 잘 들리지 않을 경우의 대처법 (0) | 2020.08.01 |
상대방의 목소리가 잘 들리지 않는 증상이라면 이어스피커의 고장일지도! (0) | 2020.08.01 |
[통화 문제] 상대의 목소리가 잘 들리지 않는 현상의 원인 (0) | 2020.08.01 |