前々回、前回の続きをご報告したいと思う。
かなりあれから時間がかかったが、結論としてはシンプルで楽天銀行および楽天CERT・楽天グループとしてはUDIDの送信は停止しないし、また何故送信しているか、どのように利用・管理しているか は「当行不正取引防止システム運営の機密事項」のため一切開示しないとの結論であった。
以下、その詳細。
その後の楽天CERTとのやり取り
1/23に当方より以下の内容のメールを送った。
以下のブログエントリーをご参照の上、あらためて本件ご回答頂けませんか。
ポイントとしては何故UDIDは送信されているのかという点かと思います。
UDIDは顧客口座情報と紐付けされているのでしょうか。もしそうであればAppStore規約違反です。
また送信自体が不用意なプライバシー情報の取り扱いであり即刻改修されるべきではありませんか。
更に送信の事実がアプリ利用者に明示されていない点も大きな問題です。
その後一切反応がなかったので、1/28に再送信したところようやく「もう少し時間がかかる」との返答があった。
その後2/3になって以下のような返答があった。
- 当行のiPhone振込アプリでは反社会勢力から当行顧客全体を保護する目的で、UDIDを参考情報としてサーバへ送信しており、これはiPhone以外の当行モバイルバンキングサービスと同様の対応である
- なおUDIDは当行サーバ上で顧客口座情報と紐付けるような処理は行っていない
- 2010年9月9日付でアップル社の iOS Developer Program License Agreementが改訂されたことを鑑み、当行としてもSmartphoneクイックログインサービス利用規定にUDIDの使用を明文化することとし、また、いつでも再参照可能な状態とする。
- 客観的評価としてセキュリティ専門会社(第三者機関は言葉として適切でなかったため訂正する)による安全性確認を行い、脆弱性がないことも確認している
しかし詳細が不明であったので再度当方より以下のような内容を送信した。
まず「反社会勢力から当行顧客全体を保護する目的で、UDIDを参考情報としてサーバへ送信」の意味が良く分かりません。具体的にご説明頂けますか。
「参考情報」とは果たして何のことでしょうか。結局のところ利用されているのか利用されていないのか、よく分かりません。次に何度も申し上げますが「UDIDをセッションに利用している」ことを問題視しているのではありません。「ユーザープライバシーに配慮しないUDID送信を行っていること」を問題視しています。
UDIDをセッション目的で利用していないのはキャプチャ結果からも明白となりました。セッションとしてはトークン、また認証のための情報として支店番号・口座番号を利用してらっしゃるのでしょう(これはこれでどうかとは思いますが)。
そもそもUDIDはご存じの通りケータイにおけるケータイID(uid, x-jphone-uid, x-up-subno)と同様に「永続的で固定的」にユーザーを示し紐付ける性質を持つ情報です。故にケータイIDの安易な送信はかんたんログインはおろか送信自体も「ユーザーのプライバシー保護」の観点からは避けられるべき、というのが近年のセキュリティシーンでの常識となりつつあるかと思います。これはUDID, Android_IDにおいても全く同じことですし、更に悪いことにはUDIDはアプリのadhoc配布などで頻繁に利用される関係から、ケータイID以上に秘密情報ではありません。つまりプライバシー保護上はUDIDを送信する仕様はプライバシー保護を全く考慮できていない、無視していると言ってもよいでしょう。参考:
http://www.47news.jp/CN/201012/CN2010121801000579.html
http://online.wsj.com/article/SB10001424052748704694004576020083703574602.html
http://www.pskl.us/wp/wp-content/uploads/2010/09/iPhone-Applications-Privacy-Issues.pdf
http://java-house.jp/~takagi/paper/ieice-icss-ia-201006-takagi-dist.pdfお話しからは「ユーザーのプライバシー保護よりも別の事情(社内事情?)を優先する」というように聞こえます。少なくとも現時点ではセキュリティ専門家の高木浩光氏が指摘されるように一定期間で更新されるIDの利用で十分対応可能と感じます。なぜその「反社会勢力から当行顧客全体を保護する目的」のためにこうしたよく知られた方法を採られていないのでしょう。
これは社会インフラとして重要な役割を担う金融機関としてはあまりにお粗末で問題ある認識ではありませんか、という指摘です。
そうした「責任ある企業」が率先して積極的にUDIDを活用する(そして今後活用していることをおおっぴらに公言される)ことは社会的にも後々害をなすこととなり大変問題がある、ということです。
(御社グループが「社会的に責任を果たすつもりはない」ということであればその限りではありませんが)因みにその「セキュリティ専門会社」とはどちらになりますか。ご参考までにお教え下さい。
またその際に「プライバシー保護」は監査対象だったのでしょうか。単に「脆弱性チェック」のみだったのではありませんか。
しかしやはりまた返信がなかったので2/10に再送したところ「楽天銀行側で確認に時間がかかっており」もう少しかかるとのこと。
そうしてようやく本日2/16に返ってきたのが以下の回答である。
- 当行では反社会的勢力がモバイル端末を使用し不正な取引を行った場合に備え、UDID等端末固有のIDを当行サーバへ送信している。詳細については当行不正取引防止システム運営の機密事項にあたるため、開示することはできかねる。
- プライバシーに配慮した上で顧客保護のために利用しており、現状の環境の中でお客様の保護のために最善を尽くしている。「責任ある企業」としてお客様を守るために行っている。
- また、セキュリティ専門会社の件については、弊社の取引先の開示は原則行っていないので、開示は控えさせて頂く。
ご覧の通り、質問・指摘については「完全シャットアウト」の回答と言っていいだろう。たったこれだけの結論に3週間以上かかったが、果たして内部でどれだけの議論があったのだろうか。
結局のところ、「他の方法では代替出来ないというUDID送信の絶対的必然性の理由」「顧客プライバシーより優先される理由」「第三者検証でプライバシー監査がなされていたのかどうか」については一切無視したい、ということらしい。
前回示唆したとおり、これが結論的には楽天グループおよび楽天CERTの体質であるということだ。
問題点は何か
まず「UDID送信をしていることを顧客に明示する」ようにする点は一歩前進とは言えるだろう(だが2/16現在、まだそうした情報開示は見受けられていない)。
しかしながらそもそもそれはAppStore規約においても企業姿勢においても端から当然のことであって、誉められるような代物ではない。マイナスがようやく0になるようなものだ。
まず第一に問題にしないといけないのは、この一連のやり取りで事あるごとに「機密事項」「開示のメリットがない」「当行不正取引防止システム運営の機密事項」などの理由を盾に「説明責任」を果たしていない点だろう。
そもそも何度かこのブログやTwitterでも述べているように、「自社の機密事項」を盾に詳しい説明を行わない場合は得てして何かしら問題を抱えており、開示してしまうと大騒ぎになると先方が理解している場合だというのが僕の経験則だ。
今回も当初UDIDの送信については当初はぐらかすだけはぐらかしていたが、結局は堂々としかしユーザーには内緒で送信していたことが判明した。以前にもソフトバンクモバイルの「電波チェッカー」アプリがUDIDの利用を機密情報を盾に隠し通していたが、結局は送信していたことがバレて修正されるに至った。
ここからは恐らくUDIDはただ送信されるだけでなく、確実に口座情報と紐付けされており、ログインごとに送信されていることから「端末チェック」に使用されているのだろうと想像される。そしてそれは一旦否定していることであるので、今更認められないだけなのではないか。
金融庁の許認可企業でありまさしく「社会インフラ」である公的な金融機関がその程度の理解と態度であるというのは非常に組織的な問題を抱えていると感じる。
次に、楽天は何故UDIDの送信に拘るのだろうか。「反社会勢力への対応」とは何のことだろうか。
これも想像に過ぎないが、反社会勢力への対応とは恐らくは暴力団や詐欺集団によるマネーロンダリングのための口座利用や複数口座をネットを介して安易に利用されるのを防ぎたい、といったことではないかと想像する。つまり手軽に本当に誰が利用しているか(端末が複数口座を利用しないか)を把握したいのだろう。
その要求には理解をするものの、しかしその回答がUDIDの利用だとは到底思えない。そうした「端末利用トラッキング」 であれば以前にも指摘したあるいは他の方もされているように「一定期間で更新されるIDの利用で十分対応可能」であるからだ。
また安直に「UDIDを把握すれば問題は解決する」としている(ように見える)点は技術的に間違いだ。JailBreakすればUDIDは簡単に偽装可能であり、例えばUDIDFakerを用いればそもそもアプリごとにランダムなUDIDを割り当てることが可能だからだ。 つまり当初から偽装していれば何ら抑止力にはならないし、今回のアプリに関して言えばiOSのKeychainへUDIDを保存することでチェックも行っているようだが、iOSのKeychainがさほど強力な暗号化ストアでないことは既に指摘されている。
すなわち、何度も何度も、ガラケーのケータイIDの問題の頃からも指摘されているように「端末固有IDで端末をトラッキングしたり偽装を回避することは完全には絶対出来ない」「恒久的に固定であるIDの利用はユーザーにとってはプライバシー侵害以外の何者でもない」ということが理解されていない。
ということは本来明白であるし先方にも指摘している点であるので、つまり答えは簡単だ。
既にUDID前提で作り上げたシステムを工数的・経済的な理由などで今更作り替えたくないというだけだろう。
更に、今回の一連のやり取りで疑問を持ったのは「果たして楽天CERTは何のために存在している組織か」ということだ。
楽天CERTのミッション定義によるなら「Defending internet services of Rakuten against crackers」とありプライバシー問題は蚊帳の外と感じているのではないか。つまりあくまで楽天グループの防衛組織であり、決して顧客のための組織ではないのだろう。
であるなら楽天グループでは果たして誰が顧客側に立ち、顧客のために働いているのか。楽天銀行担当者自身からの回答で「顧客プライバシーを重視しない」としているのであれば楽天グループにおいては一体何処の部署・担当者が顧客を守るのであろうか。
一般論的にはプライバシー問題は広い意味でのセキュリティ問題であり、CERT/CCまたはCSIRTの範疇でもあると思っているのだが、少なくとも楽天においてはそうではないようだ。
であるなら顧客のとるべき対応は限られてくる。「そうした企業・グループのサービスは利用しない」のが一番だ。
何故ならそうした思想の元で作られるサービスは今回の問題だけに限らず、必ずもっと大きな問題を引き起こしかねないからだ。
楽天グループはそもそも日本のおけるEC事業の先駆けであり、また近年はカード事業への進出やEdyを運営するビットワレットを買収するなど、特にセキュリティ・プライバシーへの配慮が重視される金融部門への進出が顕著だ。
個人的にはぜひとも動向を今後特に注視していきたいと考えている。
じぶん銀行アプリ iPhone版とAndroid版がありますが、このアプリも「1つの端末しか使用できない」仕様になっています。
こちらもおそらくUDIDを使用している可能性がありますね。
両方にインストールし、どちらかで使用するともう片方が使えなくなって再セットアップを余儀なくされ、再セットアップを行い使用すると元使っていた方が同様に使用不能になります。
かなりおかしな仕様です。PCからはネカフェだろうが会社だろうが自宅だろうがメジャーなブラウザからアクセスして同じ機能を提供しているのに。
ちょっと問合せてみます。