2019年6月4日(火)に開催されたAppleの開発者向け発表イベント「WWDC 2019」で、Appleは「iPhoneを探す」と「友達を探す」を組み合わせた新機能「Find My」を発表しました。この「Find My」は、周辺にあるApple端末を利用してBluetoothのネットワークを形成し、オフラインの端末でも検索可能になるというもの。どうやってオフラインの端末でも検索できるようになっているのか、ジョンズ・ホプキンズ大学の暗号学者であるマシュー・グリーン氏が解説しています。

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/

Find Myという機能の根幹となるアイデアは、Bluetoothとクラウドを利用したロケーショントラッキングシステムを、Apple端末のネットワーク上に実現するというものです。Apple端末は常に周辺のApple端末とBluetoothでネットワークを構築し、紛失した端末から送信されるBluetoothビーコンを監視します。ネットワークがこのビーコンを拾った時、ネットワーク上のApple端末はそれぞれ自身のGPS情報からデータをタグ付けし、クラウドに送信します。これで、紛失した端末の場所が把握できるという仕組み。

また、Find My機能は、モバイル回線やWi-Fiに接続していないオフライン端末を検索することができます。ただし、そのためにはあらかじめ別のApple端末と連携させておく必要があるとのこと。つまり、2台以上のApple端末を所有していなければ、オフラインの端末を探すことができません。

Appleによると、Find Myによるオフライン端末の位置情報把握は、完全に匿名で暗号化されたエンドツーエンドで行われるため、全員のプライバシーが保護されるとのこと。Find My機能の設定をセットアップしたApple端末は公開鍵を生成します。他の公開鍵暗号化設定と同様に、この公開鍵を使用してデータを暗号化し、対応する秘密鍵がないと復号できないようにされています。この秘密鍵が連携したApple端末に格納されるため、知らない人の端末からは解読できないようになっています。


この公開鍵は定期的に新しいものに変更されるとのこと。Appleはどれぐらいの頻度で公開鍵が更新されるのかについて明らかにしていませんが、この公開鍵の更新によってBluetoothビーコンを他人が解読してApple端末を追跡するのは相当難しくなっているといえます。

例えば、MacBookが盗まれた場合を考えます。盗まれたMacBookは、たとえインターネットから切断されていても、Bluetoothを介して公開鍵を発信し続けます。そして、MacBookを抱えた窃盗犯の近くをiPhoneユーザーが通りかかった時、そのiPhoneがBluetoothビーコンを受信し、自分のGPS情報を元にMacBookの位置情報を割り出し、受信した公開鍵で暗号化します。そして、暗号化したMacBookの位置情報をAppleのサーバーにアップロードするという流れ。位置情報を預かるAppleは秘密鍵を持っていないので、MacBookの位置情報を復号化できません。

このMacBookとあらかじめ同じ公開鍵と秘密鍵を持つiPadを使い、Find My機能でMacBookの位置情報を要求します。MacBookが発信する公開鍵のハッシュが、Appleサーバーのデータベースの中で識別子として機能します。iPadが持っている公開鍵のハッシュをアップロードすると、それを元にサーバーから暗号化された位置情報が検索され、iPadに送られます。MacBookをなくしてから日にちが経ってしまうと、公開鍵が更新されてMacBookとiPadで公開鍵のハッシュが一致しないことも起こり得ますが、グリーン氏は、iPadがアップロードする公開鍵のハッシュは最新の物だけではなく、過去のものもまとめてアップロードするため、識別子として十分機能すると説明しています。


このFind My機能は、2019年秋に配信される予定のMacOS Catalina、iOS 13、iPadOSで搭載される予定。まだ発表された段階なので、細かい仕様が変更される可能性はありますが、オフラインの状況にあるApple端末でも検索できるのは心強いものがあります。

なお、端末からBluetoothビーコンが常に発信されていることで、バッテリーの減りが気になるところですが、AppleはWWDC 2019で「バッテリーの寿命、データの使用状況、プライバシーについては心配する必要はありません」と断言していました。
Photo by William Hook