ネットサービス

Apple製デバイスで構築されるネットワークにタダ乗りしてデータを送受信する方法が編み出される


2021年4月30日に、Apple純正の落とし物トラッカー「AirTag」が登場しました。このAirTagでは、世界中で動作している数千万台のApple製デバイスで構築された「探す(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の位置情報を確認できるという仕組みになっています。

Appleが発表したオフラインの端末でも位置を突き止められる「Find My」機能の仕組みとは? - GIGAZINE


この時、Appleは「どのAirTagが、どの公開鍵と関連付いているのか」という情報を保持していないとのこと。このため、データを埋め込んだ「AirTagが生成する公開鍵と同じフォーマットの公開鍵」を生成することで、「探す」ネットワークにタダ乗りしてデータを送受信できるとPositive Securityは考えました。

◆送信側
Positive Securityが編み出したデータの送受信方法はこんな感じ。データの送信側は、データを1ビットごとに分割し、「データ○○の1番目のビットは○(0か1)」「データ○○の2番目のビットは○」「……」「データ○○のn番目のビットは○」という形式に加工します。実際に完成する公開鍵は、以下の図のように「4バイトのビットの順番を示す値」「4バイトのデータID」「4バイトの送信者固有のID」「ゼロ埋め」「0か1の値」という構成になっています。


データの加工が完了したら、リバースエンジニアリングで明らかになっている「探す」ネットワークのプロトコルに沿って、AirTagの公開鍵として外部へ送信します。これにより、世界中に存在する数千万台のApple製デバイスが、送信したい情報をAppleのサーバーへと送ってくれます。なお、公開鍵のサイズは28バイトなので1つのデータ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は、「今回編み出したデータの送受信方法は、インターネットに接続していない小型デバイスやセンサーからデータをアップロードするといった用途に活用できます」「『探す』ネットワークの仕組み上、Appleがこの方法を防ぐことは困難だと考えられます」と述べています。

なお、Positive Securityは編み出した方法を「送る(Send My)」と名付け、開発したファームウェアやソフトウェアのソースコードをGitHubリポジトリで公開しています。

この記事のタイトルとURLをコピーする

・関連記事
Apple純正の落とし物トラッカー「AirTag」が登場、4個セットで税込1万2800円 - GIGAZINE

Appleの財布やカバンを失くしても正確に位置が追跡できる落とし物トラッカー「AirTag」速攻フォトレビュー - GIGAZINE

Appleの音を鳴らしたり方向を示したりして落とし物を見つける手助けをしてくれる「AirTag」を使ってみた - GIGAZINE

Apple純正の落とし物の正確な位置を教えてくれるトラッカー「AirTag」がハッキングされる - GIGAZINE

Appleの落とし物トラッカー「AirTag」をカード化して半分以上に薄くした猛者が登場 - GIGAZINE

Appleの落とし物トラッカー「AirTag」を郵送して追跡してみた結果はこんな感じ - GIGAZINE

Appleが発表したオフラインの端末でも位置を突き止められる「Find My」機能の仕組みとは? - GIGAZINE

Appleの位置情報検索機能「探す」がサードパーティー製品に対応、対応製品も発表される - GIGAZINE

in ネットサービス,   ハードウェア, Posted by log1o_hf

You can read the machine translated English article here.