新型コロナ 最新の感染状況や対応は

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

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製デバイスで構築されるネットワークにタダ乗りしてデータを送受信する方法が編み出される - 画像


この時、Appleは「どのAirTagが、どの公開鍵と関連付いているのか」という情報を保持していないとのこと。このため、データを埋め込んだ「AirTagが生成する公開鍵と同じフォーマットの公開鍵」を生成することで、「探す」ネットワークにタダ乗りしてデータを送受信できるとPositive Securityは考えました。
◆送信側
Positive Securityが編み出したデータの送受信方法はこんな感じ。データの送信側は、データを1ビットごとに分割し、「データ○○の1番目のビットは○(0か1)」「データ○○の2番目のビットは○」「……」「データ○○のn番目のビットは○」という形式に加工します。実際に完成する公開鍵は、以下の図のように「4バイトのビットの順番を示す値」「4バイトのデータID」「4バイトの送信者固有のID」「ゼロ埋め」「0か1の値」という構成になっています。

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


データの加工が完了したら、リバースエンジニアリングで明らかになっている「探す」ネットワークのプロトコルに沿って、AirTagの公開鍵として外部へ送信します。これにより、世界中に存在する数千万台のApple製デバイスが、送信したい情報をAppleのサーバーへと送ってくれます。なお、公開鍵のサイズは28バイトなので1つのデータIDごとに最大16バイトのデータを送信できます。
◆受信側
データの受信側は、あらかじめ知らされている「4バイトのデータID」「4バイトの送信者固有のID」に、「4バイトのビットの順番を示す値」と「0か1の値」を加えた公開鍵をAppleにリクエストし、Appleから位置情報が返ってきた方の値を並べることでデータを受信します。
つまり、Appleに「○○○……0」と「○○○……1」という公開鍵で暗号化された位置情報をリクエストして、「○○○……0」で暗号化された位置情報が返ってきた場合、「データ○○の○番目のビットは0」ということが分かるので、これを繰り返すことで「001011010……」といった最大16バイトのデータを受信できるというわけです。

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


◆実装
Positive Securityは、上記の方法を用いてデータを送信するハードウェアをマイクロコントローラー「ESP32」をベースに開発。さらに、受信用のソフトウェアも開発しました。

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


実際にデータの送受信を行った結果、毎秒3バイトの速度でデータを送信し、16バイトのデータを最大5秒で受信することに成功したとのこと。Positive Securityは、「今回編み出したデータの送受信方法は、インターネットに接続していない小型デバイスやセンサーからデータをアップロードするといった用途に活用できます」「『探す』ネットワークの仕組み上、Appleがこの方法を防ぐことは困難だと考えられます」と述べています。
なお、Positive Securityは編み出した方法を「送る(Send My)」と名付け、開発したファームウェアやソフトウェアのソースコードをGitHubリポジトリで公開しています。

ジャンルで探す