2012年11月27日火曜日

Saurikが集めている情報

Cydiaには、「Manage Account」という機能があり、Cydia経由で購入した有料アプリやTweak等を、あとからGoogleアカウントもしくはFacebookアカウントを使ってCydiaにログインすることでいつでも「購入済み」としてダウンロード&インストールできるようになっている。

この機能はとても便利だ。同じアカウントからならば、複数のiOSデバイスに、どのバージョンのiOSからでも同じ有料アプリやTweaksを追加の費用なく入れることができるからだ。

もちろんこれは、AppleのApp StoreやGoogle Play、Microsoft Storeなどとも同じで、それぞれのアカウントにアプリがひもづけられ、ひとつ購入すれば同じアカウントで使う限りどのマシンやデバイスにもインストールできる。Cydiaがこれらと違うのは、Apple, Google, Microsoftがそれぞれにアカウントを作らせて、それぞれが独自にアカウント情報とアプリ情報を管理しているけれども、CydiaはGoogleアカウントやFacebookアカウントでログインするので、Cydia用のアカウントは不要ということだ。

少しネットの事情に詳しい人なら、他にもWebサイトで独自のアカウントを作らせずにGoogleやTwitter、Facebookのアカウントなどでログインできるように作っているところが結構あることをご存知だろう。そして、Open IDやOAuthなどといったしくみについてもご存知の識者もおられることだろう。

ここから類推するならば、CydiaのバックエンドであるAmazon AWSサービス側にはアカウント管理のしくみはなく、いわゆる(広い意味での)Open IDで利用者管理を行っていると考えるところだろう。つまり、Cydiaは利用者識別情報とそれに関する購入情報の対応を持っているだけで、それ以外の情報は一切持っていないはずだと。

ところが、あるときGoogleアカウントのダッシュボードで、関連付けられているアプリ及びアクセスされる情報を確かめる必要があったとき(2要素認証を設定すれば必ず目にすることになる)、Cydiaが3つのアクセスをかけていることを知ってしまった。ひとつは、個人のプロフィールなどアカウントへのフルアクセス、次に連絡帳、そしてGMailだ。ここに魚拓を貼ろうと思ってダッシュボードを開いてみたが、いったん2要素認証を外して再設定したのち、一度もCydiaを使っていないため、すべてがクリアされており、魚拓がとれなかった。もしこれを読まれた方で、心当たりのある方は、ご自身のダッシュボードを確かめてみていただきたい。「Googleアカウントに許可された項目」、英語なら「Websites authorized to access the account」となる。

Facebookの場合、僕はFacebookには詳しいプロフィールを入れているため警戒してCydiaには使っていないので、どのようになるかはわからないけれども、おそらく同程度の内容にアクセスしている可能性がなくはない。心当たりがおありの方は、FacebookサイトでCydiaが何にアクセスしているか確かめてみていただきたい。

Saurikが集めた情報を何に使っているのかはわからない。また、それを示唆する調査が行われたという話もきいたことがない。けれども、瞬間風速で世界中から同時に莫大なアクセスがかかってもびくともしないCydiaのことだから、おそらくAmazon EC2で無制限にスケールアウトするような契約になっていても不思議ではない。そして、そのために支払っている費用は膨大な金額だろう。CydiaはWebアクセスするほぼすべてのページに広告が入っているけれども、果たしてその広告収入だけでどこまで費用を賄うことができるのか、あるいはそれ以外の資金が投入されているのか、もちろん誰にもわからない。

もうひとつ、Cydiaで購入したアプリやTweaks等はすべてSaurik名義での請求になる。たとえそれが$0.99のものであっても、数$のものであっても、いったんSaurikの口座を経由して作者に支払いがなされているのは間違いない。実際にファイルが置かれているリポジトリは外部にあることが多いけれども、それでもPayPalからの請求書には必ずSaurikIT, LCCと書かれている。これまで疑問には思わなかったけれども、Cydiaで「購入済み」と表示できるようにするためにはCydiaのバックエンドで購入行為を管理するというのはわかるものの、Saurik名義ですべて請求する必要が絶対にあるかどうかには議論の余地があるように思われなくもない。

Cydiaはapt-getをコマンドラインで行わなくてもよく、登録したリポジトリの更新情報も管理してくれる、よくできたアプリだ。そして、Cydiaそのものが死ぬときはCydiaがデプロイされているAmazonクラウドのリージョンが死んだときだけで、瞬間風速で困ったことになるのは、外部のリポジトリが負荷に耐えられなくなって死ぬとかストールしているときに、更新情報が得られなくてCydiaの画面のなかでタイムアウトするだけだ。Saurikはそのためのバックエンドの改良や維持管理の責任を十分に果たしているとは思う。ただ、それと、ログインに使ったアカウントに対するほぼ無制限のアクセスを登録することとは話が少し違うのではないかと思うのだが、勘違いなのだろうか。

iOSデバイスへの無制限のアクセスを可能にする自由への対価として、個人情報をSaurikに渡すことが妥当かどうかは考えてもよいことだろう。早い話、Cydiaでログインに使うアカウントは普段のGoogleアカウントとは別のものを使えばよいのだが、その場合、もしそれまでに購入した有料アプリやTweaksがあったとしても、それらは(必要ならば)買い直しになる。もしくは、無料のものを取得するためだけに使っているならば(CydiaがiOSのなかを探っているのではない限り)懸念することはないだろう。ただし、Cydiaが動いているということは、Sandbox機能が外されているということだから、任意のアプリがiOSのあらゆる場所をアクセスできるということは考慮すべきとは思う。

iOS 6はTwitterのみならずFacebookとの統合が進み、どこからでもツイートやポストができるし、両方を登録したデバイスでツイートすればFacebookにも勝手にポストされる。

自分のFacebookアカウントで確認してみたところ、TwitterアプリはFacebook上のありとあらゆる個人情報にアクセスするような表示が出た。TwitterアプリはFacebookサイトから削除ができたけれども、Facebook公式アプリはサイトに現れないので、どうなっているかは全くわからない。ただ、Facebookのありとあらゆるところ(設定変更など)が触れなければ欠陥アプリとなるおそれが大だから、すべて許可なのだろう。iOSとFacebookの「深い統合(deep integration)」の意味するところについて、そろそろよく検討してみたほうがいいかもしれない。

2012年11月25日日曜日

LogicoolのタッチパッドT650

Windows 8なんだが、せっかくジェスチャーが定義されているのにマウスでは使えなくて残念なので、現在唯一(いや、MicrosoftのWedge Touch Mouseはどうなんだという話があるが、やっぱりこれはマウスだ。いくら表面でスワイプできてもジェスチャーができるという話は見当たらないようなのだが)ジェスチャー対応している、LogicoolのT650に突撃したわけである。

いかんせん、価格は大問題だ。Apple Magic Trackpadが定価6,800円なのに、これは8,000円近くする。ひとつには、充電式で二次電池内蔵であることと、ペアリングに必要なUSBのBluetoothドングルがついてくるというところの価格差が考えられる。

名刺用紙を買うついでにビックカメラを冷やかしてみたが、うまい具合に在庫切れで助かったが、ここで心にひっかかりが残ってしまった。なにかのはずみでヤフオクに4,000円からで1つ出ていて、参戦したのだが、追い込みでほぼ定価で落札されて終わっていた。すると困ったことに、ソフマップを覗いてみると、1つだけ在庫があったりして、完全に負けである。

さて、で、この商品。

外箱。7,980円である。親切な店員さんがおまけしてくれたがそれでも高い
それなりにずっしりと重みがあり、Appleのアレとはずいぶん違う。ガラスを使っている点と、二次電池の重さがあるような気がしないでもない。

さて、開梱である。上蓋を持ち上げると商品登場、って、まるっきりAppleだが、箱がダークで本体も同じ色なので全然演出効果がない。ああこれね、で終わってしまった。パッケージデザイナの人はもう少しがんばりましょう。

蓋をあけると商品が現れるという、どこかで見たようなパッケージング。
本体の下は、ちょっとした折り紙で2段になっていて、開くと内部に取説と、USBドングルと充電用USBケーブルが入っていた。ドングルはスポンジ状の少し固めのゴムに収まっている。

本体を外すと、下の段にはUSBドングルと充電用ケーブル
当初、このUSBドングルはいらないのではないかと思っていた。Windows 8は2009年版のMac miniを使っているので、Bluetoothは内蔵しているし、Windows 8側でうまくペアリングもやるのではないかと考えて試行錯誤したのだが、どうにもうまくいかない。だめもとでこれをUSBポートに挿すと、あっという間にペアリング成功して関連のソフトウェアインストールの通知が現れた。消える前にと思って押したので写真が撮れなかったが、Windows 8でよくある通知で、メッセージも適切であり、非常に自然に誘導してもらえた。これはWindows 7までのマイクロソフトとは違う、Windows 8ならではのよく考えられたしくみだ。

ドングルをつけてペアリングされると、自動的にソフトウェアがインストールされる
それでインストールされるのが、どうもLogicool独自のSetPointソフトウェアというもののようだ。ジェスチャーなどは、これが面倒をみるらしい。しばらくするとインストールが終わり、デスクトップ画面であればタスクバーになにやらアイコンが現れる。これが設定に関係する常駐アプリのようだ。早速開いてみると、

これまたどこかで見たような設定画面である
 右の写真は動画で、選択している項目の操作を示している。Appleと全く同じ。わかりやすいからいいんだけど。

Windows PCでタッチパッドをお使いの方々は、クリックではなく1本指タップでの操作を好まれるようで、「タップとクリック」がデフォルトの設定だった。僕は1本指タップは嫌いなので、Macに合わせてクリックのみに選択を変更した。クリックするスイッチはAppleと同じく、手前の左右のゴム足のなかにある。だが、これが結構硬く、指先でクリックするというよりは、第一関節の骨で叩く感じでないと、自然な力でスイッチが入るようにはならなかった。このへんの不自然さを嫌って、サイト等でのレビューに不満が多く出ているようだが、Appleのゴムはとても柔らかく、ちょっと指を乗せる感じでスイッチがしっかり入る。ただし、柔らかいので床を刷るとゴムが穴から外れてしまうので、そのときはがんばって押しこみ直す必要があるのがやや難点だ。

どこかの口コミにあったが、スワイプは、最初はマウスと同じく指の方向とは逆向きになっている。設定画面で、下にある[スクロールのオプション]ボタンを押すと、チェックされていない項目があるので、それをチェックすればスマホと同じ動きになる。

ジェスチャーだが、Mac OS X Lion以後のジェスチャーに慣れていたこともあり、非常に満足だ。三本指アップ・ダウンは、アップがスタート画面で、ダウンがデスクトップへの切り替えなのだが、別にMacと違うという違和感はない。むしろ、MacでLaunchPad画面を開くのに、3本指でつまむ操作が結構難しいので Windows 8ならこれでいいと思った。

また、画面両端からスワイプという(タッチパネル画面もしくはタブレットの場合)操作に相当する、パッドの両端からのスワイプもちゃんとできる。チャームを出すのにマウスカーソルを画面の右の上端もしくは下端に動かすというのはストレスだったので、これは助かる。メニューを出すための上からのスワイプもあり、マウスの右クリックという苦し紛れの割り当てからは開放される。デスクトップ画面での、四本指アップでの全画面表示、ダウンでのデスクトップ表示もなるほどと思った。Urbanアプリでなくても、そうやって全画面にして、左からスワイプで切り替えていけばいいし、デスクトップを見たければスワイプダウンで一発だから、マウスカーソルを目で追いかけながらポチポチ操作することはもうやらなくてよいということになる。

できればAppleは次のBootcampでTrackpadサポートをWindows 8向けにがんばってほしいのだが(いまは7用のBootcamp 4.0で強引にインストールしている状態)、それまでは、あるいはWindows用デスクトップを使っていて、Windows 8にしたのに画面に触っても何も起きないとお嘆きの方々にも、多少値は張るがおすすめできる商品だと思った。

もう一度繰り返すけれど、マウスカーソルを目で追いかけるようなUIは、スマホやタブレットがこれだけ受け容れられた現在では絶滅していいと思っている。ジェスチャーと、おおざっぱな場所のタップで操作できるアプリがPCにもやってくれば、マウスカーソルというものはなくなっていいはずだ。

まとめとして、よくある、Pros & Consでしめる。

Pros:

  • 大きさはAppleのMagic Trackpadと同じ表面積で、ジェスチャー操作するには十分な広さがある。
  • Appleのアルミの指ざわりと違い、表面にガラスを使っているのでスマホ的な印象がより強調されている。多くの人はガラスのほうが心地よいと感じるのではないか。
  • 添付のUSBドングル(同社のキーボードやマウスと共通なので、それを持っていれば流用可能)さえ使えば、ほとんど考える間もなく使えるようになる。たいへん優秀。
  • ジェスチャーは素晴らしい。


Cons:

  • Appleのが傾斜があるのに対して、こちらはほぼ水平である。そのため、Apple製品と較べて、パッドの上のほうに指が届きにくい感じがする。
  • 専用ドングル(Unifyingレシーバーというらしい)必須というのはやや厳しい。標準のBluetoothを使う方法はないものか。
  • 充電式なのはよいが、結局充電ケーブルを挿しっぱなしにして使うような気がする。そうなると、Bluetoothであるメリットはどこ?という感じがしないでもない。

2012年11月12日月曜日

問題だったWebKitのバグはiOS 6.0.1で修正されたそうだ

先日やられたWebKitのバグは、きちんとAppleに伝えられ、iOS 6.0.1で対策されたようだ。threatpostが伝えている。

Apple Patches Kernel, Passcode Lock and WebKit Flaws in iOS 6.0.1

https://threatpost.com/en_us/blogs/apple-patches-kernel-passcode-lock-and-webkit-flaws-ios-601-110212

そもそもカーネル内部に入り込める脆弱性があったというのは驚き。kext用に用意してあったOSBundleMachOHeadersというキーでカーネル内部のアドレスを取得でき、そこはADSRしてあっても直接アクセスできるから便利という話のようだ。

Passcode LockとPassbookの関係は各地で既報の通り。デザインの問題と思う。

最後のWebKitの問題で、僕がやられたのはおそらく前者のJavaScriptの配列の扱いに関するものだと思われる。どうやらここに何らかの脆弱性があって、細工したJavaScriptを食べさせれば任意のコードが実行可能だったらしい。

後者はSVGに関するコードに、ダングリングポインタを放置しているところがあるらしく、当然戻り先がおかしくなるのでSVGを含むページをうまく細工して任意のコードを実行させるという話。

とりあえず、すでに攻撃コードが配布されている脅威は対策されたということなのだろう。

ただ、iOS 6.0.1もまだWi-Fiに問題があるような気がしている。6.0は問題外だったが、アンテナ立ってるのに通信しないケースが、まだ6.0.1にも残っている感じがする。そこで、Apple税を払っているので6.1 beta 1にしてみたら、結構いい感じ。iOSに関してはいつものことだが、6.0より軽くなっている感じがする。

いい気になってiPod Touch 4GだけでなくiPad 3までiOS 6.1 beta 1にしたのだが、WOWOWのオンデマンドアプリがiOSバージョンチェックで動かなくなってしまったというオチ。いやはや。

2012年11月11日日曜日

Googleアカウントの2要素認証

Apple IDはなんとか復活させてもらった。クレジットカードの不正利用の疑いも、Visaに確認したところ、Google Driveの有料サービス(25GBで$2.45)を8月に使用し始めたのだけれども、その返金が、10月分の請求の翌日にあったということだった。簡単に言うと、勘違いだった。

Appleはクレジットカードの破棄を薦めるが(当然だと思う)、こちらは家庭の事情があって不可能なので、詳しく様々な事情を説明し、不正利用ではなかったことも合わせて説明して、特例として認めてもらうことができた。社のポリシーとしては疑わしければ(顧客の金銭被害を助長する可能性があるめ)ブラックリストに入れ、そこから外すことはないとのことなので、読まれた方は、説明すればカードを再度有効にしてもらえるのだとは期待されないでください。

というわけで、やはりネットのアカウントを狙う様々な手口があることを身をもって体験したので(まさかiPadにマルウェアが入るとは思わなかった)、Googleアカウントのセキュリティ向上のため、2要素認証を有効にすることにした。

やりかたは、
https://accounts.google.com
にアクセスし、そこから左側の縦のメニューで上から3番目の「セキュリティ」を選択し、中央列に現れる項目のうち、2番目の「2段階認証プロセス」の「ステータス」をONにする。

このとき、たしか携帯電話の電話番号の確認があったように思う。これはどういうことかというと、普通にメールアドレスとパスワードで認証をかけたのち、そのサービスとひもづいた一時パスワード(数字6桁)が、ここに登録された携帯電話に通知されるという、2番目の認証があるから。

これは、サービスごと、Googleサービスを参照する個別のアプリごとに電話がかかってくるので、不正なアクセスがあればすぐにわかるという仕掛け。逆に、いったん電話で合成音声で言われた数字を入れてしまえば、自分(同じPCまたはデバイスの同じアプリ)が使う分には電話はかかってこない。

なので、ログインする際には携帯電話を近くに置いておき、ガラケーで折りたたみ型の場合は開いた状態にしておくという準備をしておくべきだ。なぜなら、電話は遅くても3秒以内にかかってきて、数字は2度言われるが、決してゆっくりした話し方ではないからだ。周囲がうるさい場所では諦めたほうがいい。携帯を片手に、数字キーに指を置いて、言われるままにそのまま入力し、2度目はそれを確認するだけ、というのが望ましい。

失敗した場合は、再度電話をかけさせることができるので、落胆することはない。もういちどログイン画面に戻って入力すれば、別の番号で電話がかかってくる。

なお、最初に使うときは英語のメッセージでかかってくることがあるので、英語が苦手な人でも慌てないように。最初に、「Google認証システムをご利用いただきありがとうございます」という言葉が述べられ、いったん少し間があったあと、「番号は」と続き、あとは数字を6つ、2回言うだけだからだ。ワン、ツー、スリーがわかる人なら大丈夫だと思う。英語では、最後に「サンキュー」と言って切れるが、日本語の場合はもうすこし丁寧な挨拶で切れる。言語の違いは、認証画面の表示が英語か日本語かで区別されているようだ。言語に関係なく、すべてアメリカからの国際電話。

さて、Googleの認証を、ブラウザ画面で行っているとか、アプリ内でブラウザを起動している場合にはこれでよいのだが、アプリが独自のログイン画面を用意している場合は、数字の画面に遷移しないので、電話がかかってこなくて、「アカウントの設定を確認してください」のようなエラーが出るだけだ。このような場合は、ブラウザから一時パスワード(英字16文字)を作成させ、それを自分で決めたパスワードのかわりに入力すればよい。

やりかたは、さきほどの「セキュリティ」画面の3番目の項目、「アプリケーションとサイトを認証する」の[編集]をクリックし、再びGoogleアカウントのパスワード(自分で決めたもの)を入力すると現れる画面の、下半分に注目してほしい。箱で囲まれた、入力欄があるはずだ。ここに、アプリやマシンなどを区別する自分で決めた名前を入力し、隣のボタンを押す。すると、画面が切り替わって、4文字ごとに空白が入った16文字の英文字が表示された、背景つきの大きな枠の画面に切り替わる。この16文字(空白は省略してもしなくても、どちらでもよい)が、アプリに入力する一時パスワードだ。

独自のアカウント設定画面をもつアプリすべては、こちらを使えば解決する。電話の場合と同じように、アプリごとに違うものを入力しなければならないので、さきほどの入力欄には、アプリ名とコンピュータ名を必ず入れるようにしておくと、次に同じ画面にきたときに、画面最下部に一覧されたときに区別がつくので、よいと思う。

こうした、アカウントのパスワードが盗まれた場合の次の防御は、考え方としては比較的よいことだと思われる。Googleアカウントのみですべてがいっぺんに奪われることを防ぎ、アプリ、サービスごとに区別された、次の防御があるからだ。

もちろん、この画面がフィッシングだったら意味はないが、アカウントを作らせるサービスの場合、参考にしてよいものではないかと思う。特定のサービスがやられたとしても、個別に「無効にする」ことができるので、パスワードを変更したあとには、いったんすべて無効にして再度2段階認証をやるべきだと思う。

なお、スマホなどの場合には、認証パスワード生成アプリがあるらしい。
http://support.google.com/accounts/bin/answer.py?hl=ja&answer=1066447&topic=2784804&ctx=topic
ここに、機種ごとの説明がある。