Siri、解剖さる。理論的にどのデバイスにも移植可能(Anroidも!)

次の記事

iTunes Match、本日公開(米国のみ)

インターネットには、ずっとずっと頭の良すぎる連中がいるという確かな証となるべく、ApplidiumがSiriを解剖し、見ることの許されないその (彼女の?彼の?)内部の働きを暴いた。彼らとしては稀な(しかし歓迎。われわれにとっては。たぶんAppleは違う)行動だが、どうやって解明したかを比較的詳しく紹介している。

ところで、これはわれわれにとって何の意味を持つのか。〈理論的〉には、Appleの音声対応携帯アシスタントを、iPhone 4に限らず、ノートパソコンからAndroid携帯まで何にでも移植できることを意味する。しかし〈理論的〉のカッコが暗に示すとおり、そこにはちょっとした問題がある。

問題は、要するに、Siriのバックエンドと交信しようとする〈モノは誰でも〉、有効なiPhone 4SのID文字列を持っている必要がある。それぞれの4S毎に固有の文字列だ。今回のような1回限りの実験であれば、実物の4Sから取ってきた文字列を使ってだますことは比較的容易だ ― Appleは気付く様子がない(気付くことができない)。

しかし、誰かがハックして作ったAndroidアプリを配布すれば、同じユニークIDから発行されたリクエストが大量に押し寄せて、まず間違いなくブラックリストに載せられる。そのアプリが大量の正式ユニークIDを集めて、ローテーションして使うのでない限り、その怪しげな行動は、ごく簡単に見破られてしまうだろう。

私は、手順に関するApplidiumの概要報告全文を読むことを強く推奨するが、以下に要約を載せておく。

  • Siriをローカルルーターに接続してデータを送り込むことで、Siriが自分のデータを、われわれが「Guzzoni」と呼ぶサーバーに送信していることがわかった。
  • Guzzoniに送られたトラフィックは、すべてHTTPSプロトコルを使って送信された。HTTPSの「S」は「セキュア」を意味しており、このトラフィックは単純なパケット盗聴では解読できない。そこで彼らは新しいアイディアを思い付いた。偽のGuzzoniサーバーを作り、バックエンドに何が来るかを見るのだ。
  • とてつもなく賢いSSL認証のトリックを駆使した結果、Siriが偽サーバーにコマンドを送っていることがわかった。各コマンドには「X-Ace-Host」文字列が付いていて、これがiPhone 4S毎に固有と思われる。
  • Appleがどうやってデータを圧縮(=暗号化ではない)しているかを見つけた後、Applidiumはそれを復元し、送られている文字列そのものが何か(Appleが使っているオーディオ・コーデックの種類を含む)、Siriが期待している返信は何かのラフスケッチを描いた。

こうしたプロセスを経て、ApplidiumはiPhone 4Sが関与しないSiriとの会話を試みた。最初のチャレンジは? カスタムスクリプトを走らせたノートパソコンからの音声テキスト変換だ。案の定:うまくいった。Siriは音声ファイル(「autonomous demo of Siri」と言ったのを録音したもの)を噛みしめ、眉一つ動かすことなく(彼らのツールはiPhone 4Sの本物のユニークIDを使っていた)、Siriが聞いた内容と、各単語がどれほど確かであるかの詳細データを大量に送り返してきた。

驚くことに、Applidiumの連中は、彼らの手順を再現するためのツール群を提供している ― ただし、現在のところ、これをちょっと素適な概念実証以上へと進めるために、出来ることは殆どない。

[原文へ]

(翻訳:Nob Takahashi)