2021년 4월 30일, Apple 순정의 유실물 추적기 'AirTag'가 등장했습니다. 이 AirTag는 세계에서 작동하는 수천만 대의 Apple 기기에서 구축된 'Find My'의 네트워크를 이용하여 오프라인에서의 위치정보 추적을 실현하고 있습니다. 그런 'Find My'의 네트워크를 이용하여 임의의 데이터를 송수신하는 방법이 보안업체 Positive Security에 의해 고안되었습니다.
Send My: Arbitrary data transmission via Apple's Find My network | Positive Security
https://positive.security/blog/send-my
◆ 구조
Positive Security에 따르면, AirTag는 초기 설정시에 공개키와 비밀키의 쌍을 생성합니다. AirTag는 2초마다 Bluetooth Low Energy의 브로드캐스트 기능을 사용하여 공개키를 외부에 발신하고 있습니다. AirTag 주위에서 작동하는 Apple 기기는 AirTag가 발신한 공개키의 데이터를 감지하면 자신의 위치정보(AirTag의 대략적인 위치정보)를 공개키로 암호화하여 Apple에 보냅니다. AirTag를 찾고 있는 사용자는 Apple에 AirTag의 공개키를 문의하고 Apple로부터 보내진 '공개키로 암호화된 위치정보'를 비밀키로 복호화하여 AirTag의 위치정보를 확인할 수 있는 구조로 되어 있습니다.
How does Apple (privately) find your offline devices? – A Few Thoughts on Cryptographic Engineering
https://blog.cryptographyengineering.com/2019/06/05/how-does-apple-privately-find-your-offline-devices/
Apple Find My feature detailed in new security breakdown - 9to5Mac
https://9to5mac.com/2019/06/05/ios-13-macos-catalina-find-my/
.
이때 Apple는 어떤 AirTag가 어떤 공개키와 관련있는지에 대한 정보를 보유하고 있지 않다는 것. 따라서 데이터를 포함한 'AirTag가 생성하는 공개키와 같은 형식의 공개키'를 생성하여 Find My 네트워크에 무임승차하여 데이터를 주고받을 수 있을 것이라고 Positive Security는 생각했습니다.
◆ 송신
데이터 전송은 데이터를 1비트 단위로 분할하고 '데이터 ○○의 1번째 비트는 ○(0 또는 1)' '데이터 ○○의 2번째 비트는 ○' '......' '데이터 ○○의 n번째 비트는 ○'라는 형식으로 처리합니다. 실제로 완성된 공개키는 다음 그림과 같이 '4바이트의 비트 순서를 나타내는 값' '4바이트의 데이터 ID' '4바이트의 발신자 고유 ID' '제로 채우기' '0 또는 1의 값'이라는 구성으로 되어 있습니다.
데이터의 가공이 완료되면 리버스 엔지니어링으로 밝혀진 Find My 네트워크의 프로토콜에 따라 AirTag의 공개키로서 외부로 보냅니다. 그러자 전 세계에 존재하는 수천만 대의 Apple 기기가 전송하려는 정보를 Apple의 서버로 보내줍니다. 공개키의 크기는 28바이트이므로 하나의 데이터 ID당 최대 16바이트의 데이터를 전송할 수 있습니다.
◆ 수신
데이터의 수신 측은 '4바이트의 데이터 ID' 4바이트의 보낸 사람 고유 ID' '4바이트의 비트 순서를 나타내는 값' '0 또는 1의 값'을 추가한 공개키를 Apple에 요청하고 Apple이 보낸 위치정보의 값을 나열함으로써 데이터를 수신합니다.
즉, Apple에 '○○○...... 0'과 '○○○.....1'이라는 공개키로 암호화된 위치정보를 요청하여 '○○○..... 0'으로 암호화된 위치정보가 되돌아온 경우 '데이터 ○○의 ○번째 비트는 0이라는 것을 알 수 있으므로 이를 반복함으로써' 001011010......' 등 최대 16바이트의 데이터를 수신할 수 있다는 것입니다.
◆ 구현
Positive Security는 위의 방법을 이용하여 데이터를 전송하는 하드웨어를 마이크로컨트롤러 'ESP32'를 기반으로 개발함과 동시에 수신을 위한 소프트웨어도 개발했습니다.
실제로 데이터의 송수신을 실시한 결과, 초당 3바이트의 속도로 데이터를 전송하였고 16바이트의 데이터를 최대 5초만에 수신하는 데 성공했다고 합니다. Positive Security는 "이 데이터 송수신 방법은 인터넷에 연결하지 않은 소형 장치와 센서에서 데이터를 업로드하는 등의 용도로 활용할 수 있다"며 "Find My 네트워크 구조상 Apple이 이 방법을 막는 것은 곤란할 것"이라고 말합니다.
Positive Security는 고안한 방법을 'Send My'로 이름 붙여 개발한 펌웨어 및 소프트웨어의 소스코드를 GitHub 저장소에 공개했습니다.
'IT' 카테고리의 다른 글
언어의 벽을 넘어 복잡한 문장이나 이미지도 이해할 수 있는 새로운 검색 알고리즘 'MUM'을 Google이 발표 (0) | 2021.05.20 |
---|---|
Google, Android 탑재 스마트폰을 '자동차 키'나 'TV 리모컨'으로 사용할 수 있는 기능을 발표 (0) | 2021.05.20 |
'그랜드 테프트 오토 V'의 그래픽을 거의 실사화하는 AI를 개발 (0) | 2021.05.14 |
"피싱사이트가 검색광고로 표시되고 있다"며 FBI가 경고를 발표 (0) | 2021.05.14 |
YouTube, 총 1000억 원 이상의 보수를 짧은 동영상 게시기능 'YouTube 쇼츠'의 크리에이터에게 지불 (0) | 2021.05.13 |
Windows 10 충돌 문제, AMD SCSIAdapter가 원인 (0) | 2021.05.11 |
해커가 익명 통신 'Tor'에 악의적인 노드를 추가하여 통신을 도청 (0) | 2021.05.11 |
석유 파이프라인에 사이버공격을 가한 집단이 "목적은 돈을 버는 것"이라고 성명을 발표 (0) | 2021.05.11 |