No165 接触確認アプリは本当に安全なの?

厚生労働省から、接触確認アプリというスマホ用アプリが2020/6/19
にリリースされました。

実はこのアプリ、ボランティアのプログラマ有志による開発である、
AppleとGoogleが開発したフレームワークを利用している、など
話題性もあり、目にする機会も多いものです。

一方で「プライバシーがつつぬけになる」「政府に個人の移動
情報を提供することになるのでは?」といった不安も聞かれます。

実際のところどうなのでしょうか?

今回は、この接触確認アプリのプライバシー保護の詳細について
解説します。


1. 接触確認アプリとは?

2週間以内にCOVID19陽性者との濃厚接触があったかどうかを確認
するためのアプリです。

もし、濃厚接触の情報を集めたいというだけであれば、全てのスマホ
の位置情報を集めてしまえば、完全に把握できるはずです。
例えば、情報収集用サーバを設置し、各人の位置情報をそのサーバ
に集めれば、いつどこで誰が濃厚接触したかを全て調べられます。

ただ、この方法には大きな問題があります。
果たして政府が運営するサーバ上に個人の情報を集めることになるの
ですから、情報が洩れないようにするのが大変です。(ものすごい
攻撃が来ることは容易に想像できますし)
というか、そもそも政府に位置情報を把握されるような管理社会
なんてまっぴらだ、という人がほとんどでしょう。

とはいえ、一切通信を行わずに誰と会ったかを記録することも
これまた困難です。

接触確認アプリは、政府側には情報をほとんど渡さずに濃厚接触の
事実を自分だけが知ることができる仕組みとなっています。
いわば「いいとこ取り」なのですが、この両者を満たすためには、
かなり複雑な仕組みを使うことが必要となります。

なお、この接触確認アプリは2020/6/25現在「試用版」であり、本番では
ありません。

2. 接触確認アプリの仕組み

このアプリは、次の4つの仕組みを持っています。

1)濃厚接触した人と情報交換をする仕組み
2)陽性判定された時にその事実を登録する仕組み
3)陽性判定された人と接触があったかどうかを調べる仕組み
4)14日経過したデータを削除する仕組み

逆に言えば、それ以外の機能はありません。
実際、このアプリをインストールして実行しても、利用者がする
ことは何もありません。(陽性登録を除く)

なお、この仕組みは日本のオリジナルではなく、AppleとGoogleが
共同開発した「Apple Google Exposure Notification Framework」
で規定された方式で、個人情報保護にウルさいヨーロッパを含む
各国で採用されています。


3. 濃厚接触した人と情報交換をする仕組み

まず、情報交換の準備として、アプリは内部で鍵データと呼ばれる
ランダムな値を毎日作ります。鍵データは単にランダムな値であり、
そこから端末や所有者を特定することはできません。

ここで生成した鍵データは1日しか使いません。
翌日には別の新たなランダム値を鍵データとして使います。

この鍵データを元にして識別コードという別の値を生成します。
(この値はハッシュ関数という技法で生成します)
この識別コードは鍵データよりさらに短かい10分の寿命になって
います。
この識別コードが実際に濃厚接触した人との情報交換に使われます。

このようにコードの寿命を短かくすることで、端末を特定する作業
を困難なものにしています。

さて、接触確認アプリは1m以内に15分以上他のスマホと通信が
できる状態が続くと濃厚接触とみなし、上述の識別コードを相手の
スマホに渡します。
相手のスマホからも同様に識別コードを受け取ります。

これによって、濃厚接触した事実を情報として残すわけです。

ここでのポイントは以下の2点。

1)識別コードだけでは端末も所有者もわからない。
  さらに鍵データへの逆算もできない(非常識なほど時間が要る)
2)情報交換したスマホ内にだけにしか識別コードは残らない。
  (厚生労働省のサーバには送られない)


4. 陽性判定された時にその事実を登録する仕組み

さて、ある人が自分が陽性者であることがわかったとします。
この時、病院や保健所などで教えてもらったHER-SYS(新型コロナ
ウイルス感染者答情報把握・管理支援システム)の処理番号を入力
します。

この番号が正しい場合は、上述の鍵データ(毎日生成するランダム
な値)を厚生労導省が管理するサーバに送り込みます。
送るのは、当日を含めて14日分です。

逆に濃厚接触した人の識別コードは送付しません。

厚生労働省が管理するサーバに保管されるのは、この陽性者登録を
した人の鍵データだけです。

それ以外の情報はサーバ上には登録されません。


5. 14日経過したデータを削除する仕組み

接触確認アプリもサーバも14日以前の情報は順に削除されます。

対象となるのは以下の2種類のデータです。
1)自分自身の鍵データ
2)濃厚接触した人と交換した情報

ですので、端末内であれサーバであれ14日以内の情報しか残っていま
せん。


6. で、ぶっちゃけ安全なの?

これも結論から書くと十分に安全と言えます。

上で書いた通り、スマホからは識別コードが出ていきます。
その保管先は濃厚接触した相手のスマホであり、サーバには保管され
ません。

犯罪者が識別コードを収集しようにも、識別コードは各人のスマホ内
にしかありません。無理にでも集めるとすれば、全国のスマホの接触
確認アプリを個別に攻撃するしかありません。あまりに非現実的です。

これは政府が干渉しようとした場合も同様で、収集は不可能です。

さらに、識別コードは10分毎に更新する仕組みです。
識別コードを収集できたとしても、どれがどのスマホの識別コードか
を知る術はありません。

それを知る唯一の方法は鍵データを入手することです。鍵データが
あれば、識別コードは簡単に調べられます。

が、通常は鍵データは本人のスマホ内にしかありません。
もし本人が陽性者登録をした場合には厚生労働省のサーバ上にも保管
されますが。

つまり、接触確認アプリでは2つの壁によりプライバシーが守られて
いると言えます。
1)識別コードを(効率良く)収集する方法はない。
2)鍵データなしで、どの識別コードがどのスマホ用のものかは
  調べられない。

通常の利用者は2つの壁によって守られ、陽性者の場合でも前者に
よって守られています。

なお、接触確認アプリでは位置情報や時刻情報は記録していない
ため、そういった情報を(利用者本人も)知ることはできません。

いかがでしょうか?
少しは接触確認アプリへの不信感を払底できましたでしょうか?
この記事によって皆さんが接触確認アプリをインストールして
いただければ、筆者としては嬉しく思います。

次回は今回説明しきれなかった接触確認アプリの技術的なバック
ボーンに触れてみたいと思います。

次回もお楽しみに。

このNoteは私が主宰するメルマガ「がんばりすぎないセキュリティ」からの転載です。
誰もが気になるセキュリティに関連するトピックを毎週月曜日の早朝に配信しています。
無料ですので、是非ご登録ください。
https://www.mag2.com/m/0001678731.html

この記事が気に入ったらサポートをしてみませんか?