完全なる監視:無線でGSMネットワークをハッキングする

2016年4月13日

SIMシリーズの過去記事の中で、無線で暗号鍵を横取りできるという都市伝説について触れました。この話は、SIMカードを物理的に操作しなくてもクローンを作成できることを前提としています。それが、一時的なクローンであっても。しかし、Ki鍵はSIMカードと通信事業者のデータベースにローカル保存されているため、そこから外に出ることさえありません。では、どうやるのでしょう?

gsm-eavesdropping-featured

理論的にいえば、犯罪者は強力な信号を発信する偽の基地局を開設し、ランダムなRANDリクエストを送信して正規のSRESリクエストを装うことができます(何のことやらさっぱりわからないという方は、先に進む前にこのシリーズの第1弾をお読みください)。この方法を使えば、暗号解析でKi鍵を計算することができます。犯罪者がSIMカードへ物理的にアクセス可能であれば、この手を使うでしょう。

しかし、これは非常に複雑な方法です。暗号解析には長い時間がかかりますし、偽のリクエストを大量に送り付ける必要もあります。犯罪者がRAND攻撃に忙殺されている間に、標的となったデバイスの所有者が偽基地局の無線範囲から出て行ってしまう可能性があります。この場合、犯罪者は基地局の装置を持って、標的を追跡しなければなりません。これが巧妙に仕組まれた標的型攻撃の話であれば、この装置は標的の自宅に近いどこかに設置されるでしょう。この攻撃が成功するかどうかは、暗号化アルゴリズムにかかっています。通信事業者がCOMP128v2(英語記事)を使っている場合、ハッキングは成功しない可能性があります。

実際、無線攻撃はもともと、加入者の会話を盗聴するために設計されたものです。ご存知のとおり、無線通信を暗号化する(ただし、警察が捜査中の場合は暗号化が無効化されるなど、特殊なケースを除く)第一の理由は、プライベートな会話を聞かれないように制限をかけるためです。暗号化には、64ビット鍵のA5アルゴリズムが使用されます。A5には、持続性の高いA5/1と、強靱性の弱いA5/2の2バージョンがあり、A5/2は「敵となりうる」国すべてに、制限なく輸出されています。

正確に言えば、A5/1鍵は64ビットではなく、54ビット鍵です。先頭10ビットは「下位ビット」で、便宜上のものです。また、A5/2は、シークレットサービスが国外で活動しやすくなるように設計されています。

以前、A5/1のハッキングは、ローカルに保存されたデータを総当たり攻撃する手法を用いていたために大変時間がかかり、ハッキングが完了する前に、攻撃対象の情報価値が損なわれていることもありました。しかし、現代のPCは(「現代の」ですらないかもしれません。このPoC(概念実証)が最初に示されたのは2010年でしたから)あっという間に侵入可能であり、いわゆる「レインボーテーブル」を使って、鍵を計算することができます。レインボーテーブルのセットは1.7 TBですが、このサイズであれば、比較的安く、どこででも手に入る高速大容量SSDに収まります。

犯罪者は目立たないように行動し、無線で何も発信しないため、追跡はほぼ不可能です。鍵を解読するためのツールセットは、Krakenソフトウェアとレインボーテーブル、そして適度に「微調整」された「フラッシュライト付きNokia」クラスの携帯電話だけ。犯罪者はこれだけの武装で会話を盗聴し、SMSメッセージを傍受、ブロック、改竄できます(ですから、オンラインバンキングの2段階認証を「デジタルの要塞」だと思わないでくださいね)。

鍵を手に入れた犯罪者は、通話を乗っ取り、標的になりすますこともできます。ここで登場する必殺技がダイナミッククローンです。犯罪者は、標的がセッションに接続されている間に、セルラーネットワークへ発信リクエストを送信します。ネットワークから認証リクエストが送り返されてくると、これを乗っ取り、標的に転送してKc鍵を入手します。これでハッキングは完了です。標的のセッションは終了しますが、代わりに、犯罪者が標的になりすまし、そのネットワークで自分のセッションを開始します。

ここまでくれば、標的の支払いで通話を開始することができます。また、有料の電話番号にテキストメッセージを送信する、コンテンツプロバイダーのパートナープログラム経由で金を吸い上げる、などの悪事を働くこともできます。この手口はかつて、モスクワで使われました。ある犯罪グループがミニバンに乗って人混みの中を走り回り、SIMカードのクローンを大量に作成し、標的となった人々の電話に少額ずつ課金したのです。

このグループはかなり長い間、気付かれずにいました。彼らによる通話は、正規利用者から発信されたものに見えたのです。この詐欺の手口を特定するきっかけとなったのは、ある基地局の範囲内にある有料コンテンツプロバイダーに、似たような怪しいリクエストが大量に送り付けられたことでした。

パケットトラフィック(GPRS/EDGE)の暗号化には、Kc鍵がもう1つ使われます。これは、音声トラフィックに使用されるKc鍵とは異なりますが、同じアルゴリズムであるGPRS-A5(別名GEA(GPRS Encryption Algorithm)。GEA1、GEA2、GEA3の形式がある)を使って計算されます。つまり、モバイルインターネットトラフィックでも傍受されるのです。現在、インターネットトラフィックが通常どおり、3GやLTEの回線で送信されている場合、この問題はそれほど深刻ではありません。その一方で、ATM、POS端末など、データ送信に2G回線を使っているテレマティックスシステムはまだまだ多数あります。

前述のような攻撃を防ぐ方法を1つ、紹介しましょう。より強靱で、最新のA5/3アルゴリズムを使うのです。A5/3はレインボーテーブルを使っても解読できません。しかし、通信事業者はこの新技術の導入にさほど乗り気ではありません。1つ目の理由は、移行にはお金がかかるのに、利益は上乗せされないからです(大して儲からないものに投資するということなので、通信事業者の世界では厄介な問題です)。2つ目は、現在の携帯電話の大半はA5/3をサポートしていないか、少なくとも適切にサポートしていないため、通信障害が発生する可能性があります。

3つ目には、A5/3では、加入者の会話が盗聴されるのを阻止できません。もし、犯罪者が偽の基地局を使用した場合、この基地局は電話に使用される暗号化アルゴリズムをダウングレードできるようになり、最終的にはハッカーが鍵を入手するのを手助けすることになります(そして、いいですか、この鍵はすべてのアルゴリズムで同じなのですよ!)。もし、脅威がまだそこに居座っているのなら、優れた暗号化アルゴリズムへの移行にコストや手間をかけることにどんな意味があるのでしょう?4つ目、これにはお金がかかります。5つ目、ものすごくお金がかかります。

楽観的にとらえれば、これまでに説明した攻撃はすべて、もうすぐ時代遅れになる運命にあります。時代はすでにバーチャルSIMカードとeSIMです。こういった、SIMカードに対する新しいアプローチは、少なくとも現在のSIMカードに存在するセキュリティ面での欠陥を解決してくれるでしょう。