※この記事は本社サイト「Naked Security」掲載の記事を翻訳したものです※
by Chester Wisniewski on February 9, 2012
zvelo 社のセキュリティエンジニアである Joshua Rubin 氏はGoogle ウォレットのセキュリティに関する調査結果を公開しました。
Google ウォレットは、近距離無線通信 (NFC) を利用する電子ウォレットです。Mastercard の PayPass (日本ではお財布ケータイ) のように、ユーザーは自分の Android スマートフォンで PIN を入力して、読み取り機器にかざすことで商品を購入できます。Rubin 氏によると、Google ウォレットが設定された Android を紛失したり盗まれたりすることは、クレジットカードを見知らぬ第三者に渡してしまうことと同じぐらい危険だと述べています。
Google ウォレットは、口座番号のような重要な情報がセキュアエレメント (以下SE) と呼ばれる携帯電話内の特殊なハードウェアコンポーネントに保存される仕組みになっています。残念ながら、トランザクションを完了するために必要な PIN は、セキュアエレメントに保存されず、ソルト値が付加されたハッシュとしてデバイスに保存されます。
パスフレーズを安全に保存する方法として、ソルト値を付加したハッシュが有効であるといつも教えられているのに。。。と疑問に思われる方もいるでしょう。
確かに、ソルト値を付加したハッシュは有効ですが、今回の問題はハッシュの手法が問題ではなく、そのエントロピーの低さにあります。 パスフレーズには十分な長さ (強度) が必要であり、短時間で計算できないようにするためには一定の変動が必要となります。Google ウォレットでは、PIN の入力を 6 回失敗するとデバイスが SE からクレジットカードの詳細を完全に消去するように設計されています。
問題は、PIN のソルト値が付加されたハッシュが携帯電話のファイルシステムに保存されていることにあります。Android が root 化され、ルートアクセスが可能であれば、PIN の入力試行回数としてカウントされずに、PIN への総当たり攻撃が可能となります。PIN は 4 桁しかなく、 10,000 回ですべての組み合わせを試行できます。Rubin 氏が今回スマートフォンで検証したのもまさにこの弱点です。→Google ウォレットのクラックのデモ
Rubin 氏は、Google に対してこの問題を責任ある方法で報告していますが、この問題の正しい解決策は、PIN を SE 自体に保存することであると結論付けています。 Google は、この解決策に同意しているようですが、そう簡単な問題でもないようです。
法律上の問題が絡んでくるのです。PIN を携帯電話のファイルシステムから SE へと移動すると、「責任の所在が変わる」ことになります。つまり、PIN を安全に保護する責任の所在が、Google から SE について責任を持つ銀行へと移動することになります。
これは、Google ウォレットのユーザーにどのような意味を持つのでしょうか?
携帯電話を紛失または盗まれた場合には、クレジットカードを失った場合と同じような対応が必要となり、クレジットカードの発行会社と携帯電話会社の両方に速やかに連絡する必要があります。携帯電話が盗まれてしまうと、その盗人に技術的な知識があれば、簡単に PIN が解読され商品を購入されてしまいます。
Google は、PIN をセキュアエレメントへとその保存場所を移動することの解決策を見出し、この問題を悪用する攻撃が広まる前に、この欠陥を修正してほしいと思います。
150ヶ国で 1億人以上のユーザーが、複雑な脅威やデータ漏えいの阻止に、ソフォス製品を使用しています。ソフォスは、管理・導入・使用が簡単で、総管理コストが業界で最も低い、セキュリティ対策とデータ保護のソリューションに専念しています。ソフォスでは、グローバルに展開する脅威解析センター、SophosLabs の支援を受けて、暗号化、エンドポイントセキュリティ、Web、電子メール、ネットワークアクセス コントロールなど、評価の高い製品を提供しています。20年以上にわたる経験を持つソフォスは、セキュリティおよびデータ保護の業界リーダーとして第一級のアナリスト団体から高い評価を受け、多くの受賞歴を誇ります。