OpenHaystack은 Apple의 Massive Find My Network를 통해 개인 Bluetooth 장치를 추적하기위한 프레임 워크입니다. 물리적 물체 (키링, 배낭 등)에 추가 할 수있는 나만의 추적 태그를 만들거나 노트북과 같은 다른 Bluetooth 가능 장치에 통합 할 수 있습니다.

OpenHayStack은 Apple의 Find My Network에서 추적하는 고유 한 액세서리를 만들 수있는 응용 프로그램입니다. Mac 및 BBC Micro : Bit 또는 기타 Bluetooth 가능 장치 만 있으면됩니다. 앱을 사용하면 셀룰러 적용 범위없이 지구 어디에서나 액세서리를 추적 할 수 있습니다. 근처의 iPhone은 액세서리를 발견하고 네트워크 연결이있을 때 Apple 서버에 위치를 업로드합니다.
OpenHayStack은 Apple의 네트워크를 찾은 역 엔지니어링 및 보안 분석 작업의 결과입니다 (또는 오프라인 발견 ). 우리는 TU DarmstAdt의 Secure Mobile Networking Lab에서 2019 년 6 월에 초기 발표 후 오프라인 발견을 분석하기 시작했습니다.이 작업을 통해 오프라인 상태 일 때에도 iPhones 장치에서 Apple 장치를 찾을 수있는 방법을 식별했습니다. 전체 시스템은 Bluetooth 광고, 공개 키 암호화 및 암호화 된 위치 보고서의 중앙 데이터베이스의 영리한 조합입니다. 우리는 오프라인 발견의 폐쇄 된 부분의 사양을 공개하고 포괄적 인 보안 및 개인 정보 보호 분석을 수행했습니다. 우리는 두 가지 독특한 취약점을 발견했습니다. 악의적 인 응용 프로그램이 위치 데이터에 액세스 할 수있는 가장 심각한 것은 Apple (CVE-2020-9986)에 의해 해결되었습니다. 보안 분석에 대한 자세한 내용은 논문을 읽으십시오. 출시 이후, 우리는 상당히 많은 언론 및 미디어 보도를 받았습니다.
OpenHaystack은 실험 소프트웨어입니다. 코드는 테스트되지 않고 불완전합니다. 예를 들어, 펌웨어를 사용하는 OpenHayStack 액세서리는 고정 된 공개 키를 방송하므로 다른 장치에서 근접한 경우 추적 할 수 있습니다 (이는 향후 릴리스에서 변경 될 수 있음). OpenHayStack은 Apple Inc와의 제휴 또는 승인되지 않습니다.
OpenHayStack은 두 가지 구성 요소로 구성됩니다. 먼저, 개인 블루투스 장치의 마지막보고 위치를 표시 할 수있는 MACOS 응용 프로그램을 제공합니다. 둘째, 펌웨어 이미지를 사용하면 Bluetooth 장치가 Beacons를 방송하여 iPhone에서 발견 할 수 있습니다.
OpenHaystack에는 MacOS 11 (Big Sur)이 필요합니다.
OpenHayStack 응용 프로그램에는 Apple Mail 용 사용자 정의 플러그인이 필요합니다. 개인 API를 통해 Apple 서버에서 위치 보고서를 다운로드하는 데 사용됩니다 (기술적 인 설명 : 플러그인은이 API를 사용하는 데 필요한 Apple Mail의 자격을 상속합니다). 따라서 설치 절차는 약간 다르므로 일시적으로 게이트 키퍼를 비활성화해야합니다. 당사 플러그인은 이메일과 같은 다른 개인 데이터에 액세스하지 않습니다 (소스 코드 참조).
~/Library/Mail/Bundle 로 설치하라는 것이 좋습니다.sudo spctl --master-disable 실행하면 게이트 키퍼를 비활성화하고 Apple 메일 플러그인을 실행할 수 있습니다.sudo defaults write "/Library/Preferences/com.apple.mail" EnableBundles 1sudo spctl --master-enable 사용하여 게이트 키퍼를 다시 할 수 있습니다.새로운 액세서리 추가. 새 액세서리를 만들려면 이름을 입력하고 선택적으로 적절한 아이콘과 색상을 선택하면됩니다. 그런 다음이 앱은 위치 보고서를 암호화하고 해독하는 데 사용되는 새로운 키 쌍을 생성합니다. 개인 키는 Mac의 키 체인에 저장됩니다.
장치에 배포. USB를 통해 지원되는 장치를 Mac에 연결하고 액세서리 이름 옆에 배포 버튼을 누르고 해당 사항을 선택하십시오. OpenHayStack의 통합 배포를 사용하는 대신 광고에 사용되는 공개 키 (액세서리를 마우스 오른쪽 버튼으로 클릭)하고 수동으로 배포 할 수도 있습니다.
디스플레이 장치의 위치. 오른쪽지도의 첫 번째 위치 보고서가 표시 될 때까지 최대 30 분이 걸릴 수 있습니다. 지도는 항상 모든 항목의 가장 최근 위치를 보여줍니다. 모든 항목을 클릭하여 마지막 업데이트가 수신 된시기를 확인할 수 있습니다. 다시로드 버튼을 클릭하면 위치 보고서를 업데이트 할 수 있습니다.
우리는 Apple의 오프라인 찾기 시스템 (일명 내 네트워크 찾기 )을 간단히 설명합니다. 자세한 내용은 Pets Paper 및 Apple의 액세서리 사양을 참조하십시오. 우리는 회로도 개요 (논문에서)를 제공하고 아래의 OpenHayStack에서 다양한 단계를 어떻게 통합하는지 설명합니다.

Apple의 네트워크 찾기를 사용하기 위해 타원 곡선 (P-224)에서 공공-민간 키 쌍을 생성합니다. 개인 키는 키 체인에 단단히 저장된 Mac에 남아 있으며 공개 키는 액세서리 (예 : 첨부 된 Micro : Bit)에 배치됩니다.
요컨대, 액세서리는 공개 키를 Bluetooth Low Energy (BLE) 광고로 방송합니다 (펌웨어 참조). 인근 iPhone은 액세서리를 진정한 Apple 장치 또는 인증 된 액세서리와 구별 할 수 없습니다.
인근 iPhone이 BLE 광고를 받으면 iPhone은 GPS를 통해 현재 위치를 가져오고 광고에서 공개 키를 사용하여 암호화하고 암호화 된 보고서를 Apple의 서버에 업로드합니다. iOS 13 이상의 모든 iPhone은 기본적으로이를 수행합니다. 이 단계에는 OpenHayStack이 관여하지 않습니다.
Apple은 어떤 암호화 된 위치가 어떤 Apple 계정 또는 장치에 속한 지 모릅니다. 따라서 모든 Apple 사용자는 해당 공개 키를 아는 한 모든 위치 보고서를 다운로드 할 수 있습니다. 이것은 보안 문제가 아닙니다. 모든 보고서는 엔드 투 엔드 암호화되어 있으며 해당 개인 키 (Keychain에 저장)를 알지 않는 한 해독 할 수 없습니다. OpenHayStack 액세서리를 위해 작성된 Apple의 보고서를 다운로드하기 위해이 기능을 활용합니다. 우리는 개인 키를 사용하여 위치 보고서를 해독하고지도에 가장 최근의 키를 표시합니다.
Apple은 인증 된 Apple 사용자가 위치 보고서를 다운로드하도록 요구함으로써 임의의 액세스로부터 데이터베이스를 보호합니다. 우리는 권한이 높아지는 Apple Mail 플러그인을 사용하여 필요한 인증 정보에 액세스합니다. OpenHayStack 앱은 보고서를 다운로드하면서 플러그인과 통신합니다. 그렇기 때문에 OpenHayStack을 사용하는 동안 메일을 열어야합니다.
원칙적으로, 모든 Bluetooth 장치는 Apple의 Find My Network를 통해 추적 할 수있는 OpenHayStack 액세서리로 전환 될 수 있습니다. 현재 우리는 소수의 임베디드 장치에 대한 OpenHayStack FirmWares의 편리한 배포 방법을 제공합니다 (아래 표 참조). 또한 일반 HCI 스크립트를 통해 Linux 장치를 지원합니다. 펌웨어의 소스 코드와 논문의 사양을 기반으로 Bluetooth 저에너지를 지원하는 다른 장치로 OpenHayStack을 포트하십시오. 결과를 우리와 공유하십시오!
| 플랫폼 | 테스트 | 앱을 통해 배포하십시오 | 논평 |
|---|---|---|---|
| 북유럽 NRF51 | BBC 마이크로 : 비트 v1 | ✓ | 현재 NRF51822 만 지원합니다 (문제 #6 참조). |
| Espressif ESP32 | SP32-Wroom, ESP32-Wrover | ✓ | 배포는 최대 3 분이 걸릴 수 있습니다. Python 3이 필요합니다. 감사합니다 @fhessel . |
| 리눅스 HCI | 라즈베리 파이 4 w/ raspbian | Linux 기계를 지원해야합니다. |

OpenHayStack Mobile은 스마트 폰용 OpenHayStack MACOS 애플리케이션을 완전히 상환 한 것입니다. 이 앱은 액세서리를 만들고 추적하는 동일한 기능을 제공하며 특히 새로운 사용자의 유용성을 높이는 것을 목표로합니다. MACOS 응용 프로그램과 달리 위치 보고서는 스마트 폰에서 직접 가져올 수 없으므로 앱에는 MAC 하드웨어에서 호스팅되는 프록시 서버가 필요합니다. 프록시 서버는 여러 사용자가 동시에 네트워크를 통해 액세스 할 수 있습니다.
프록시 서버에 연결하려면 올바른 URL을 설정하십시오.


OpenHayStack Mobile은 크로스 플랫폼 플러터 프레임 워크로 구축되었으며 현재 Android 및 iOS에서 실행됩니다. 앱 및 사용 지침에 대한 자세한 내용은이 저장소의 OpenHayStack-Mobile 폴더에서 찾을 수 있습니다.
OpenHaystack은 GNU Affero General Public License v3.0 에 따라 라이센스가 부여됩니다.