iPhoneアプリ「電波チェッカー」がUDID偽装可能だったことが発覚してからのまとめ
@miyakawa11 実際にUDIDがあればその人の登録位置情報を地図上で閲覧できてしまうことを確認しました。知人のiPhoneに私のUDIDをセットして電波チェッカーを起動したところ、私の自宅等の位置が現れました。位置情報漏洩の欠陥ですのでIPA脆弱性届出窓口に届け出ました。
2010-06-11 21:08:18@miyakawa11 再現手順はここには書きませんが、JPCERT/CC経由でそちらに連絡が行くと思います。迅速なハンドリングが可能なように、同じ情報を SBCSIRT http://www.nca.gr.jp/member/sbcsirt.html にも連絡します。
2010-06-11 21:11:27@miyakawa11 アプリの修正方法についてですが、最初に申し上げたように、アプリ初回起動時に乱数で十分に長い専用のIDを生成してそれを記憶し、次回以降そのIDを送信して使用する設計にするのが正しいです。再インストールで消えることがあってもこの用途のアプリなら十分なはずです。
2010-06-11 21:16:32@miyakawa11 原理的に不可能なことを実現しようとなさったことをご理解ください。伝統的な日本式ケータイで「ユーザID」による認証が行われてきたのは、それがゲートウェイ付与型のIDだからであって、UDIDのような端末付与型の公開IDで同様のことをしようとしても不可能です。
2010-06-11 21:21:37@miyakawa11 もちろん、iPhoneのMACアドレスを使うなどということはなさらないでください。シリアルナンバーや、IMEI番号、ICCIDについても使用しようなどとお考えにならないでください。海外でもこれらを使用したことによるトラブルが起き始めているようです。
2010-06-11 21:26:18@miyakawa11 日本では一昨年のiモードID送信開始以降ケータイIDによるWeb実装が急速に広がりましたが、そうしたやり方に染まってしまった技術者らが、スマートフォンでも同じようにできるとの思い込みから、今回と同様の欠陥アプリを作ってしまう事例がポツポツと出始めています。
2010-06-11 21:34:12@miyakawa11 そのような状況において、携帯電話事業者が自らこのような欠陥方式のソフトウェアを提供していくことは、同様の方法で認証が実現できるものという誤った理解を、全国の一般の事業者らにまで広げてしまう危険があり、社会的に由々しき事態であると考えております。
2010-06-11 21:45:38@miyakawa11 本来ならば、携帯電話事業者は、自社の製品ないしサービスを用いた認証の実現に関して、安全な技術方式の要件を取りまとめて、一般事業者向けに提供し、解説していく立場にあるはずと考えます。今回の件を契機に、御社が今後そうした取組をなさることに期待します。
2010-06-11 21:50:47@miyakawa11 今回のことで、iPhoneにも日本式ケータイID(ゲートウェイ付与型契約者ID)を導入しようなどと、けっしてお考えにならないよう切に願います。そのような方式は海外では必ず拒絶されます。日本だけ独自の方式を広めていくことは後々に必ず首を絞めることになります。
2010-06-11 22:08:22@HiromitsuTakagi お合いしましょう、メールでやり取りしましょうとお誘い致しましたが、Twitterが余程お気に入りのようですね。
2010-06-11 23:57:15@HiromitsuTakagi 行った行為は、 自身のiPhoneのUDIDを知人のiPhoneにセットして行った?通常のIDとパスワードを知人に教えてログインできるかを試しているのと同じですね。
2010-06-12 00:01:32@HiromitsuTakagi 今後の検討と致します。但し皆様が誤解なさると不安になるので最後に一言、UDIDは個人情報に紐つくものではありません。
2010-06-12 00:11:35@HiromitsuTakagi 別の端末のUDIDを組み込むこと、皆さん簡単そうだと誤解されちゃってます。OSレベルのクラックを行ったのですかね?Takagiさんのようなレベルの方なら可能?
2010-06-12 01:03:09@miyakawa11 既存のソフトウエアだけで可能でした。具体的な手順は、修正されていない現時点では、書きません。御社グループのCSIRTにご相談なさることをお勧めします。
2010-06-12 01:16:00@HiromitsuTakagi それでは一つ相談。圏外登録の場所を改善されたと表示して見せてあげようと思って認識をしていますが、これは一方通行に変更すべきですかね?そうすれば何も識別する必要無いし。
2010-06-12 01:40:34機能追加で欲張ったかな?圏外登録のみに変更しましょう。 「圏外登録済☞改善☞表示」は明日中に削除、改善状況のフィードバック方法は再考し、HPアップのみに。お客様が少しでも不安と感じられるのは反省。
2010-06-12 02:22:38暖かなお言葉有難うございます。方々のご専門家に鍛えられるのも、道場と思えば明日また楽しです。日々精進。 RT @orikosanba: @miyakawa11 世の中には色んな考えの方がいますね。。やり取り見ていて心が寂しくなりますね。ユーザーの事を考えてる姿は応援します!
2010-06-12 09:27:15最初に申し上げた「アプリ初回起動時に乱数で十分に長い専用のIDを生成して、それを記憶し、次回以降そのIDを送信して使用」する方式を用いた設計であれば、その機能も実現できます。 QT @miyakawa11 …圏外登録の場所を改善されたと表示して見せてあげようと思って…
2010-06-12 09:55:43@HiromitsuTakagi 検討してみます。因みに、朝8時に戻しの仕様は削除完了しました。根本改造はUPデートにて対応します。
2010-06-12 10:02:52電波チェッカーで既登録位置情報の閲覧ができなくなったことを確認しました。必要な措置の迅速なご対応に敬意を表します。既存のUDIDで登録された位置情報の閲覧ができなくなるのは不可避でやむを得ない措置と思います。QT @miyakawa11 …朝8時に戻しの仕様は削除完了しました。…
2010-06-12 10:25:43@miyakawa11 なお、乱数で専用IDを生成する際には、暗号論的擬似乱数生成器(cryptographically secure PRNG)を使用する必要があるのでご注意ください。推測不可能性と無衝突性が求められます。メルセンヌツイスター等は使えません。
2010-06-12 11:14:46@miyakawa11 乱数生成は端末側アプリで行ってもよいのですが、利用できる擬似乱数の暗号論的安全性に不安がある場合には、サーバ側で生成して端末の初回接続時に与える方法でもよいでしょう。無衝突性は所詮は確率上の問題ですが、不安ならば無重複確認処理を入れることもできるでしょう。
2010-06-12 11:18:33@miyakawa11 付け加えますと、最初に「乱数で専用のIDを」の代替案を申し上げたとき「誤削除等で再インストールした際に…」とのことでしたが、逆に、専用ID記憶方式なら、iTunesのバックアップ機能によって、端末の買い替え時にそのままデータ移行できる利点があるはずです。
2010-06-13 00:21:07@miyakawa11 (続き)むしろ、端末を買い替えると継続利用できなくなるというUDID(端末ID)使用方式の方が、ユーザエクスペリエンス的によろしくないいように思うのですが、日本のケータイ界は、そうした不幸なユーザーエクスペリエンスに対して不感症になっているのでしょうか。
2010-06-13 00:35:44