Apple Pay のセキュリティについて詳しく調べてみた
Posted on
4 月に Apple Watch Series 2 を購入してから、ほぼ毎日のように Apple Pay を利用しています。もともと現金をほとんど使わない生活をしていましたが、最近は財布から電子マネーやクレジットカードを出すことすらなくなってきました。
すっかり普段の生活に溶け込んでいる Apple Pay ですが、セキュリティについては漠然と安全なんだろうという程度の知識しかありませんでした。今回は Apple が公開している情報をもとに Apple Pay のセキュリティについて詳しく調べてみました。
参考にしたのはこの 2 つです。
より詳しく知りたい方はリンク先のドキュメントを参照してください。以下は自分が気になったポイントです。
デバイスアカウント番号
Apple Pay で決済するとき、プラスチックカードに載っているクレジットカード番号は使われません。代わりに、デバイスごとに固有のデバイスアカウント番号が使われます。この番号は Apple Pay にカードを追加するときに発行され、本人ですら全桁を知ることはできません(下 4 桁のみ確認できます)。
カードの承認が下りると、カード発行会社またはその認定サービスプロバイダが、対応している各ネットワークに対してデバイス固有のデバイスアカウント番号を作成し、各番号を暗号化して、他のデータ(各取引固有の動的なセキュリティコードを生成するために使われるキーなど)と共に Apple に送信します。
実際、Apple Pay で支払ったレシートにはこのデバイスアカウント番号の下 4 桁が載っていました。
デバイスアカウント番号はクレジットカード番号を乱数で置き換えたものです(これをトークナイゼーションと言います)。そのため、仮にデバイスアカウント番号が漏洩してもクレジットカード番号は無事です。
以前、とある EC サイトの個人情報漏洩事件に巻き込まれましたが、カードが再発行されたために登録してあるカード番号を変更して回るのが大変でした。 Apple Pay ならそんな心配はなく、デバイスからカード情報を削除するだけで済みます。
Secure Element
Apple Pay のカード情報は、通常のストレージ領域ではなく Apple Pay 専用の Secure Element に保存されます。
Secure Element は、Java Card プラットフォームを実行する業界標準の認定チップで、電子決済に対する金融業界の要件に準拠しています。
Secure Element はもともと NFC で使われている技術で、耐タンパ性を備えた半導体チップのことです。耐タンパ性とは、端末を分解してチップを取り出されてもデータは読み取れないということです。役割としては HSM (Hardware Security Module) と同じようなものだと思います。
Secure Element にあるデータは Apple Pay Server というプロセスが管理しているようです。
Apple Pay Server は、「Wallet」のクレジットカード/デビットカードの 状態、および Secure Element に格納されているデバイスのアカウント番号を管理します。 Apple Pay Server はデバイス、決済ネットワークのサーバの双方と通信します。 Apple Pay Server は、App 内での支払いに使用する支払い資格情報の再暗号化も行います。
リモートワイプ
Apple Pay は iPhone や Apple Watch を紛失した場合でも iCloud.com からリモートワイプできるので安心です。ただし、クレジットカードと Suica ではリモートワイプされるまでの時間が異なります。
クレジットカードの場合は通信状態に関わらず、一時的に使用停止するか削除できます。おそらく、リモートワイプした瞬間にカード発行会社に通知されてデバイスアカウント番号を無効化しているのでしょう。
たとえデバイスがオフライン状態になっていてモバイルデータ通信や Wi-Fi ネットワークに接続していなくても、カード発行会社やその認定サービスプロバイダにより、クレジットカードやプリペイドカードが一時的に使用停止になるか、または Apple Pay から削除されます。
Suica の場合は少し事情が異なります。
Suica は、デバイスがオフラインの場合は一時的に使用停止にすることができませんが、「iPhone を探す」でデバイスをリモートで消去するか、iCloud.com でカードをすべて削除すれば削除できます。デバイスがオフライン状態になっている時にデバイスを消去した場合は、翌日の午前 12 時 1 分までは Suica が一部の場所で利用可能な状態のまま残ることがあります。
オフラインの場合は使用停止することができず、削除したとしても翌日の正午までは利用できる可能性があります。エクスプレスカード(Touch ID やパスコード不要で使えるカード)に Suica を設定していると、最長 24 時間は第三者が不正利用できるということです。 Suica はプリペイドタイプの電子マネーなので、クレジットカードのように発行元で即座に無効化できないのでしょう。
とはいえ、自分は Suica のチャージ残額を 5000 円以下に抑えているので諦めがつきます。不安な人はチャージ額をもっと低めに設定するといいかもしれません。
まとめ
Apple Pay には多少のリスクがありますが、リスクをはるかに上回る利便性を持っています。また、プラスチックのクレジットカードや Suica カードと比べても圧倒的にセキュアなことがはっきりしました。
エンジニアである以上、仕組みやリスクについてちゃんと知る努力をするのは大切ですね。