みんなのスマートデバイスは常に監視されている!?

この記事は2017年06月24日に公開されました。 情報が古い可能性があります。

こんにちは、殿内(@tonoccho)です

その証拠に携帯で*#06#と打ってみると謎の数字が出ます。これが各端末に割り振られた世界で唯一のIDなのです。国民総背番号とかで騒いでいる場合じゃありません。すでに背番号は割り振られているのです。
というような陰謀論で何かネタを振りまくのもあれなので、携帯電話とセキュリティを授業の風習がてら少しまとめます。ちなみに、暗記の確認も兼ねているので、完全フリーハンドで書いているので、間違っている可能性があります。

SIMカードにもIDは割り振られているけど見えない

SIMカードには、IMSIというIDが割り振られています。これは最初の3桁が国、次の2桁が携帯の業者、残った7桁がユニークなIDです。つまり、国家が分裂しまくって、1000カ国を超えたあたりでSIMの仕様は破綻しますし、携帯電話事業者が100社を超えたらSIMの使用は破綻しますし、仮に1000万ユーザーを持つ携帯事業者が現れたら以下略。
とか言いつつ、japanの携帯電話の契約者は1億人を超えてるので、この辺どうやって運用でカバーしてるんでしょうかね。事業者IDを複数割り当ててるんでしょうかね。
このSIMIDはIMSIと言って、携帯が通信を開始するタイミングに飲み使用されて、そこからは、TMSIというIDが使用されます。なので、IMSIで認証を、と思ってもできないことになりますし、TMSIは暗号化されているので、取得することはできません。基地局までしか来ないし。

IMSIが見えない理由

ではなんでIMSIは見えないのか、というと、SIMクローニングという攻撃を防ぐためです。SIMクローニングは、ようはSIMカードに保存されたIMSIとKiという鍵(128ビット)を取得することで行われます。というのも、COMP128という暗号化アルゴリズムが漏洩してしまったので、パラメータさえあればOKということですね。

Kiは盗めるか?

今時の携帯ネットワークは、ネットワークが携帯端末を認証すると同時に、端末もネットワークを認証するので、電波を傍受して盗む、というのはたやすくないのですが、SIMカードをなんらかの形で入手すればできるようです。
昔は電波を傍受すればできたそうです。怖いですね。ただ、GSMネットワークまでです。3Gからは出来なくなりました。さっきの双方向認証のおかげです。
まだ傍受が可能だったことは、偽の基地局がひたすら任意の値を用いて端末にチャレンジレスポンスを仕掛けることで、Kiを算出していたそうです。端末は売られた喧嘩は必ず買うが如くにチャレンジされたら絶対レスポンスしますので。

端末とネットワークの認証について

まずネットワークがどう端末を認証するかというと、チャレンジアンドレスポンスという方式でやります。ネットワーク側で乱数と鍵(同じものがSIMにも保管されている)でデータを作って保持しておいて、乱数のみをSIMに送って「お前が正当なSIMならこの乱数から同じデータ作れるよな?」という挑戦をします。
SIMは持っている鍵と受け取った乱数で応答用のデータを作ります。で、基地局側で認証機能が作ったデータと携帯が送り返したデータを比べて同じだったら認証成功です。ちなみに、この比較に使うデータはSRESと言って32ビット、SRESを生成するアルゴリズムはA3だそうです。
GSMネットワークではここで認証が終わっていたため、端末が「どの基地局につないでいるか」が確認できなかったそうです。そのために、偽物の基地局をハッカーが設置してしまうことが可能だったようです。
3G以降は、Mutual Authenticationという認証をすることにしました。これは、上記の認証に加えて端末がネットワークを認証するのです。MACというカウンターを双方で持っておいて、これで掟破りの逆チャレンジレスポンスをすることで、端末がつないだネットワークは不正なものではない、という確認をします。

端末とネットワークの暗号化

ずっと昔の携帯電話では暗号化もせずに電波を発していたそうで、傍受可能だったそうですが、今は通信は暗号化されます。これはどうやるかというと、暗号化キーを生成します。これをKcと言って、64ビット。A8アルゴリズムにKiと乱数をパラメータにして生成します。
チャレンジレスポンスと同じように乱数だけをSIMに送信して、SIM側でもKcを作ります。で、端末がデータを送るときは、KcとデータをパラメータにA5アルゴリズムを使って暗号化して送信します。このアルゴリズムは、SIMではなくて、端末に実装されています。
基地局はデータを受け取ったら、同様にA5アルゴリズムで複合化して、送信先の端末ように改めて暗号化して送信、受け取った端末は複合化してデータを受け取ります。

COMP128

では、A3やA8アルゴリズムの元になったCOMP128という暗号化アルゴリズムですけど、このアルゴリズム自体は流出してしまいましたし、データの最後の10ビットは0固定なので、まぁ、なんていうかブルートフォースに対して脆弱です。
暗号化はXORの論理演算をするとのこと。XOR久しぶりに聞いた!

IMEIとEIR

Find My iPhoneなんかは別の死喰いで動いているかもしれませんが、当初書いた*#06#で出る数字はIMEIというIDです。これは何に使われるかというと、EIRというブラックリストに登録されたりします。このブラックリストには、盗難にあった端末とかのIMEIが登録されます。
端末が基地局につなぎに行った時に合わせてIMEIが確認されて、EIRに登録されていたら、接続を拒否して、ネットワークオペレータに通知が行くそうです。
たまに、米国で盗まれた端末がアジアの発展途上国で使われてて適宜写真が送られてくる、なんていう小話を耳にしますが、これは作り話か、その地域ではEIRが機能していない、ということになりますので、オペレータが盗難された端末の使用を受け入れているということでもありますね。怖いですね。
 
 
 
 

ニュージーランドの最新記事

移住の最新記事

勉強の最新記事