「技術ネタ」カテゴリーアーカイブ

2011-01
23
02:40:40
続: 楽天銀行アプリのセキュリティについて – プロトコルを解析してみた


結論から書き出すと、結局のところ楽天銀行アプリはUDIDを通常(初期)ログインとクイックログインそれぞれのタイミングでサーバー送出をしていた。この事実からは楽天CERTの説明には不信がある。
さてどうしてくれようというのが現時点な訳だが、まずはどういう仕様で楽天銀行アプリが動作しているのか明らかにしてみよう。楽天CERT担当者からは「即座に悪用できるものではない」との見解ももらっているしまたそもそもリバースエンジニアリングしている訳でもなく公共のインターネットを飛び交っているデータプロトコルについての解説なのだから誰に謀るものでもないだろう。ということで、安心して内容について考察してみる。

Continue reading

2011-01
20
18:52:10
楽天銀行アプリのセキュリティについて


まだ曖昧な部分もあるので書くかどうか迷いはしたのだが、一定の結果には至ったので僕自身が持っている疑問の提示と皆さんへの問いかけという意味を込めて書き連ねてみる。

iPhoneアプリに「楽天銀行アプリ」というものがある。名前通り楽天銀行へログインし自身の取引結果や振り込みなどを行えるアプリだ。
僕自身も楽天銀行には口座を持っているので試してみたのだけど、「あれ?」と思わざるを得ない仕様があった。
簡単に説明すると次のような手順でこのアプリは使用する。

Continue reading

2010-12
28
17:26:13
2011年の展望ベスト10を僕も考えてみた


年末だなぁ。ってのはやけにテレビが面白くて感じることが多いですよね。

ということでふと気が向いたので僕もちょっと来年2011年(あるいはそれ以降?)に起こりそうな変化というか展望についてちょっと考えてみました。予想と言うほどでもないしもちろん予言でもなく、僕自身が期待している分野の話と言うことで。
因みにモバイル・IT混在です。 Continue reading

2010-11
23
22:12:27
w3cもケータイ認証には困惑している件


以前Twitterでもツイートしてたんだけど一部誤解があったのでこちらでまとめてみる。

Global Authoring Practices for the Mobile Web (Luca Passani)
http://www.passani.it/gap/

上記をもって「w3cが個体識別番号に駄目出し」としていたんだけど、多少事情が違った。
実は上記には元になる対象文書がある。それがw3cのベストプラクティスだ。

Mobile Web Best Practices 1.0
http://www.w3.org/TR/mobile-bp/#d0e1925

上記のGlobal Authoring Practices for the Mobile Web(以下GAP)はこのw3cのベストプラクティス(以下MWBP)への一種の「アンチテーゼ」として書かれている感が強い。
それらの比較についてはこちらのページが詳しい。
そのほとんどはモバイルWEBでの実装方法についてなので本稿の趣旨とは外れる部分も多いのだが、例えばMWBPではCookieについてこのように解説している。

5.4.14 Cookies
[COOKIES] Do not rely on cookies being available.
5.4.14.1 What it means
Cookies are frequently used to carry out session management, to identify users and to store user preferences. Many mobile devices do not implement cookies or offer only an incomplete implementation. In addition, some gateways strip cookies and others simulate cookies on behalf of mobile devices.

(参考訳)
[Cookies]Cookieが必ず使えると考えるな
Cookieはよくセッション管理やユーザーの特定に使用されるが多くのデバイスでは利用できなかったり正しい実装がされていない。更にはゲートウェイによってはCokkieを削除したりエミュレーションしている。

これだけだ。ベストプラクティスと言いながら実は解決策は何も提示していない。

これに対しGAPは非常に現実的だ。

Practice: If an application only relies on cookies for improved service, but is not essential to the well-functioning of the service itself, then cookie support can be safely assumed.
If cookies availability is essential to the correct functioning of the application (typically for supporting user sessions), then alternative mechanisms should be assumed. URL-Rewriting is the common way to by-pass the lack of cookie support ([URLREWRITING]).

(参考訳)
アプリケーションがCookieのみをベースにできるならそれは安全と見なしていいだろう。
Cookieの利用が機能の要であるならその代替機能も必要とされるだろう(訳注:恐らくCookieが使えない場合のことを言っている)。URL-RewriteはCookieの代替に使用できる共通した方法だ。

そしてよく知られたセッションIDをURLへ付加しURL-RewriteでCookieと共存する方法を述べているのだが、その最後でこのようなことを提示している。

Finally, in many cases, operator gateways and independent portals attach unique headers and values to each HTTP request, such as phone number headers (x-wap-msisdn, x-nokia-msisdn, x-up-calling-line-id) and subscribeer id headers (x-up-subno). The headers can be exploited as unique keys to track users and the foundation for session management.
Some detailed techniques to track users are presented here [TRACKUSERS]

(参考訳)
最後に、多くの場合キャリアのゲートウェイなどは特別なHTTPヘッダーを付加する。x-wap-msisdn, x-nokia-msisdn, x-up-calling-line-id, x-up-subnoといったもので電話番号や契約者番号を示している。
これらのヘッダーをユーザートラッキングのためのユニークキーにしたりセッション管理のベースにすることは脆弱性をもたらしかねない

ここでいうX-UP-SUBNOとは日本ではauで利用されているサブスクライバーIDと同じだ。当然言及はないが、docomoのuid、SoftbankのX-JPHONE-UIDも同列と考えていいだろう。つまりこのコンテキストにおいては「日本のガラケー界は根本から駄目出しをされている」と言えるだろう。

たとえ米国でもディベロッパーがユーザーの特定をあまり行っていない、そういうニーズが無いとは思わない。
ではw3cが何故ここまで踏み込んだ言及が出来ないかは幾つか理由もあると思うのだけど(個別製品への言及は馴染まないとか。X-UP-SUBNOはクアルコムOpenwaveのWAPゲートウェイでの仕様である)、大きな理由として「ベストな方法が考えつかなかった」という点も大きいだろう。
米国ではそもそも個体識別IDを送出しているキャリアばかりではない。つまり共通した手法として利用できる環境ではない。またCookieに対応する機種や環境も(日本と同じく)100%では無いようなので結局のところよい方法が示せなかったのではないか。

一方でこういうテクニカル文書もある。ユーザーをトラックするためのTIPSという感じだが 詳しくは参照してもらうとして、日本での脆弱な「ガラケー界」を見ている者としては少し口出ししたい気持ちにもなる。
つまりは問題ではあるがよい方法が見つからなくて複数の手法を組み合わせる、または端末の特性によって切り替えるしかない、というのは日本と同じ状況とも言えるかも知れない。
かくもモバイル環境(あえて言えば従来までのモバイル機器と環境) でのユーザートラッキングや認証については米国(あるいは世界)においても共通した手法は確立されていないし誰もが困惑しているということになるではないか。

翻って日本だ。幸い(?)日本の「ガラケー界」はベストプラクティスならぬ「バッドプラクティス」の宝庫だ。
しかし見方を変えればそれはベストプラクティスの種の宝庫とも言える。
こうした情報や経験が自由に交換され、国際的に包括されたベストプラクティスが熟成される環境が何とか作れないものか。そうした貢献が出来ていない点でも日本は「ガラパゴス」と呼ばれるのだろう。

(追記 2010/11/25)
“can be exploited..”について、コメント欄でも「単に使用できると言っているだけでは」との意見を幾つか頂いていました。
個人的にも気になったので、筆者であるLuca Passani氏へ直接メールして聞いてみました。以下がその最初の返信です。

(悪意されうると言いたかったのか?との質問に対して)
not really. I just meant that, if a developer needs to track users and cookies
are not available, other headers are an option.
Regards
Luca

との返答でした。
ということで、まずは「脆弱性になり得る」との参考訳を示したことについてお詫び申し上げます。
Passani氏とはその後少し話をして、僕からは日本での簡単ログインという方法が脆弱だと言われているんだよと伝え、彼に(恐らく彼が知る限りの)海外ではどのように捉えられているか尋ねたのですが、
「プライバシーの問題は特にヨーロッパ(彼はローマ在住の恐らくはイタリア人)では問題視される。但しオペレーターはパートナー(恐らく日本における公式サイトよりも厳しい業務提携先と推測)にしか『電話番号』は通知していないし、パートナー以外はIdentifier(例えばX-UP-SUBNOなどの個体識別番号)しか受け取れない」とのことでした。
電話番号というのは多少驚くところですが欧米(他の地域は言葉の問題でよく分かりませんが)では一部のキャリアではパートナーへのサービスとして行っているようです。また個体識別番号の取り扱いについては全く意に介していない様子でもありました。これはそもそも日本での「簡単ログイン」やセッション管理としての利用は一般的ではないため逼迫した問題化していないからだろうと推測します。
以上より、本文については「日本のガラケー界は特に興味も持たれていなかった」として訂正しご解釈下さい。
(であれば”can be exploited”なんて微妙な表現しないでよー、とは思いますがそれはそれとして)

ただ付け加えると、彼の経歴を見ると分かるのですが、実は長年Openwaveでエンジニアとして働いていた人物でもあります(現在はとある企業のCEOのようです)。つまり元々のX-UP-SUBNOを生み出した会社です(その他の通知ヘッダー類についても)。故に個体識別番号のプライバシーやセキュリティ問題について聞くのはそもそも野暮だったのだろうというのが印象です。

最後に、はてブのコメントなども見て多少気になったのですが、現時点において、ではモバイル認証によい方法がないのかと言えばそれは違います。単にCookieを使えば良いだけです(Passani氏も指摘している通り)。これは日本でももちろん同様です。
但しCookieが全面的には利用できないというある意味限定された環境下でのプラクティスの話と言うことになりますので誤解無きようにお願いします。
また個体識別番号の取り扱いについては国や地域で状況やプライバシーへの考えなども違うので一概には言いにくいかも知れませんが、しかし日本での経験が有意義なものに転嫁できるはず、という点はやはり変わりないだろうとも思います。
今回は相手が悪かったところもあるのですが(笑)、逆に如何に日本の実情が知られていないか伝えられていないかと言うことも肌で感じられたので、そうした取り組みが業界全体で行われるなら喜ばしいことだし重要な貢献であろうと思います。
以上、ご報告まで。

2010-11
23
00:55:15
ガラケー機能は須くクラウドを目指せ


IS01がAndroid1.6からバージョンアップされないことになってちょっとしたお祭りになった。
そもそも0円端末/8円運用が注目されていた矢先の発表で余計に注目を集めることになったことだろう。
しかし0円で買った人はともかく、発売直後にそれなりの価格で買った人も大勢いたはずで、2.1への移行に期待していたとしたらそちらの方がよほどショックなことだっただろう。

OSバージョンアップが出来ない、という残念な決定は別に国内メーカーに限らず、HTCでもMotorolaでも実は海外勢でもあることだ。ソニエリのXperiaが1.6から2.1へのアップグレードに半年ほどかかりユーザーをヤキモキさせたのも記憶に新しいところだろう。

こうした理由は単純に新しい今後のOSの求める性能や機能などが原因でそのハードウェアでは対応できないという理由が大半だとは思うが、一方で日本メーカーには今後更なる足枷となる原因が潜んでいるとも思う。それが「ガラケー機能」の搭載だ。
一般にこれまでキャリア各社は「始めにハードありき」のサービス展開を目指してきたと言える。着うたもそうだし、また「ガラケースマートフォン」の標準機能となりつつある、おサイフケータイ・ワンセグ・赤外線通信も当然そうだ。
しかしその前提はスマートフォンの登場と浸透で徐々に崩れ去ろうとしている。
OSと開発環境はGoogleが準備し、Android端末における基本的なハードウェアスペックの範疇のようなものも国際的に熟成されつつありこれを外れる調達と製造のコストは馬鹿にならなくなるだろう。
その上上記のような「最新OSへの対応速度」というものが端末やメーカー/キャリアの魅力に付加されるようにもなってきた。
当然特殊なハードウェアを国内機に限って使い続ける限り国際調達力はつかないし、ハードウェアと最新OSに合わせたドライバー・アプリ開発は製品開発サイクルの冗長化つまり競争力の阻害を招くだろう。

ルールは変わった。ならば対応もそれに応じて変わらなければならない。
そこで僕の考えはこうだ。ガラケー機能は今後如何にハードウェアから脱却できるかが今後も生き残れるかどうかの鍵となる。

おサイフケータイ・ワンセグ・赤外線機能をクラウドに

例えばおサイフケータイ。既報の通り、海外勢では同等の機能を目指してNFCにより近接無線通信を行うことになるだろう。またハードウェア的にも日本のように端末内部にFeliCaのようなハードを仕込むのではなく、SIMカードに内蔵させる方向であるらしい。Androidではすでに次期バーションでの採用が決定しており、またiPhoneでも同様の対応がされると聞く。
おサイフケータイの機種変更時の煩わしさは誰もが経験して評判も悪いところだが、それは端末本体に機密情報を格納するという方法を取っているからだ。これがSIMカードに変われば理論上は単にSIMを入れ替えるだけでおサイフケータイ機能も含めた機種変更が行える。よくよく考えるまでもなくこちらの方がメーカーにとってもユーザーにとっても合理的だし日本では何故その方法が取られなかったのか非常に不思議だ(というか、恐らく単純にFeliCaを売りたかった都合なのだろう)。
この場合端末にとってはSIMカードとのインターフェースさえ定義されていればいい。そしてそれは恐らくOSが吸収することになるだろう。機種ごとのドライバーなどは必要なく、あとはおサイフケータイを利用するアプリのみが開発され続ければよい。
もちろんNFCをベースとしたビジネスモデルがどうなるのか、どのような普及をするのかはこれからの課題だ。
しかし例えば一例を挙げれば、海外ではすでにこのようなサービスも登場しつつある。

Squareはおサイフケータイと闘うことになるのだろうか

簡単に言えばこれはおサイフ機能をローカルからアプリそしてネット側へ移行しようという発想だ。そしてこれらのビジネスモデルが世界を席巻し始めた時、iDやEdy、Suicaなどが如何に日本で普及していようと果たしてそれに抗い続けることは可能だろうか。
日本のおサイフケータイはほとんどがローカル機器での通信にて取引を完結させる発想を持っている。もちろんよい面もある(プライバシー保護など)が逆に言えばそれをすべてクラウドで完結させるサービスが登場すればそれほどの競争力を保ち得ないのではないかと思う。
オフィス製品や大規模なERP製品が今まさに徐々にクラウドサービスに吸収されつつあるように同じことが起こりえるのではないか。
その足かせとなるのがやはりハードウェア依存ということだ。ここから如何に脱却しネットワークへ主軸を移し端末依存を止めキャリアやメーカーの壁を脱却しない限り、そもそもおサイフケータイの各サービスは生き残れるかどうかの瀬戸際に立たされることだろう。

ワンセグについて、実は理論的には最も対応は簡単だ。ワンセグ放送のIP再送信を認めればよいだけだ。そしてそれを再生できるアプリを搭載する(マーケットから自由にダウンロードできる)だけだ。
そもそもワンセグ放送は携帯キャリアというよりは総務省と放送業界の強力な後押しで始まったに過ぎない。そしてデジタル放送始めIP再送信を阻んでいるのは通信と放送の分離政策および著作権行政だ。(放送法上一部の免許では特定地域にしか放送できない、などの制約がありボーダーレスなIP通信と馴染んでいない)
この問題はいつも多数の受益権者が絡みなかなか進展しないが、例えば既に海外のテレビ局が次々と行っているようにオン・デマンド放送を、しかも海外拠点から日本向けに行う企業が出てきたら果たしてどうなるだろう。インターネットには国境は無くまた日本の電波法・放送法を盾に海外の企業へ影響力を及ぼすのは国際司法上かなり無理があるだろう。
とは言え必ずしも悲観すべき状態ではなく各種実証実験なども細々とではあるが行われているようだが、大きな判断を速く下さなくてはこの分野さえ海外勢との競争に苦しむ事態に陥ることだろう。

赤外線機能に関して、逆説的だが果たして「赤外線機能が欲しい」と考えるユーザーは果たしてどれだけいるのだろうか。そう、ポイントはそこではない。ユーザーは赤外線機能ではなく、「アドレスの交換機能」が欲しいだけだ。
特別なハードウェアからの脱却という意味では、赤外線センサーを使用する必要性は全くない。例えばBluetoothなどを用いてアドレス交換を行うアプリも広く知られており、QRコード読み取りというのも一つの方法だろう。
従来のガラケーとの互換性という意味では最近のガラケーでもBluetoothは一般化しつつあり、逆にガラケーにそうしたアプリを搭載するのも一つだろう。
そしてまたAndroidやiPhoneもそうであるようにそもそものアドレス帳機能はローカルに隔離されているよりもクラウドで管理され複数の機器で共用できる方がよっぽど便利だ。この分野も単に赤外線機能などに止まらず、いかにクラウド対応を推し進められるかがポイントとなっていくだろう。そしてやはりまたそれはガラケー自身においても同様である。

キャリア依存からクラウド依存へ

何故このような極端に見える(かも知れない)サービスの再編が必要なのか。ハードウェア依存が「悪」なのか。それはスマートフォン、そもそもモバイル機器が宿命づけられている「ネットワーク親和性」故だ。
これまでキャリアがすべてのサービスを決める「牧歌的な」時代であればサービスがハードに依存していようとアプリだろうとクラウドだろうと関係なかった。しかしそうしたコントロールが行えなくなることは端末一体の訴求力をサービスやクラウド連携と言ったネットワーク指向性の高いサービスへ移行せざるを得ないことになる。でなければ既に述べたようにハードが足枷になり競争力の低下とサービス品質の低下を招くだけだ。
「日本発」のこれら「特異な」サービスは遠からず市場からの撤退を迫られることだろう。実際、例えば着うた/着うたフルはスマートフォンの浸透に伴い徐々にそのプレゼンスを無くしていくことだろう。それを見越してかLISMOなどのサービスはアプリとして再編されだしているように思うが、それがAndroidマーケットでの楽曲販売やAmazonのDRMフリーサービスあるいはiTunesStoreなどとどこまで同じ土俵で戦えるかはまだ未知数だ。何しろLISMOなどはそのキャリアでしか使えないのだから。

それを防ぎたいのであるなら、如何にこれまでの端末・回線・サービスの不可分一体サービスをクラウドへのみに移行していけるかにすべてはかかっているのだと思う。
だが果たしてこれまでの既得権を守りたいだけのキャリアや業界がそれを理解できるか。成功体験に浸りすぎた業界が「イノベーションのジレンマ」を自力で克服できるだろうか。
もしかするとようやく理解できた時には、既に日本としてのメリットは何もないサービスばかりが日本国内を席巻した後かも知れない。