RSS

LINEの暗号化について

by LINEセキュリティセンター on 2014.6.26


LINEセキュリティチームです。今回はLINEで利用されている暗号化技術について紹介します。

LINE 3G通信での暗号化有無の確認

LINEについて一般的に誤解されている情報の中には、暗号化方式が弱いため外部に情報が流出する可能性が存在するという点と、wi-fi通信の中ではデータが暗号化されているがモバイルネットワーク(3G、LTE)を使用する場合は暗号化されていない、という点があります。
まず、暗号化が実際に実行されているかどうかについては、これを言葉で説明するのは意味がないので、現在アプリケーションが安全な状態であることを直接目で確認するほうが確実です。

暗号化の有無を確認するにあたって最も一般的に使用されるのは、特定の端末から送信されるネットワークデータをキャプチャーしてこれを観察する方法です。モバイルの場合、インターネット接続時にネットワークデータをキャプチャーするためのPCをVPNのようなサービスを利用して経由させ、データを観察します。Androidの場合は、Shark for root のようなアプリを使用すればパケットをキャプチャーできます。

実際にメッセージを送ってテストをしてみると、暗号化の有無がよくわかります。まず、LTEでスマートフォンからテストメッセージを送信してみましょう。

※6/27 18:10 LTE環境のキャプチャー画像ではなくwi-fi環境のキャプチャー画像だったため、上記画像を差し替えました。

テスト実施後、送信されたデータはpcapファイルの形式で保存され、これを開くと次のようになっています。

※6/27 18:10 実際のパケットと異なるパケットだったため、上記画像を差し替えました。

上の画像は、メッセージを送信するすべてのネットワークデータの一部です。LINEサーバとの通信はすべて暗号化されています。実際にテストをしてみると、メッセージを探そうとしてもすべてのデータは人が読めないように暗号化されており、多くのデータが解読できない状態であることがわかります。

暗号化の安全性

ここまで、LINEはすべての通信状態、つまりwi-fiや3G/LTEを問わず、暗号化を行っていることをみてきました。しかし、外部からデータを安全に守るためには、単純に暗号を使用するだけでなく、「安全な」暗号を使用しなければならないという問題が残っています。

PCで使用する暗号の基本原理は、特定の情報(ex: Passphrase)なしに解読するのが極めて難しい方程式を利用して、元データを隠す作業のようなものです。例えば、x = yz + yzのような数式において、yがどんな値を持つかわからない状態でxの値からzの値を見つけるのは難しいです。特にyの値が非常に大きい値の場合や、方程式の項がさらに増えて複雑になると、zの値を求めるのは極めて困難な作業となります。

実際の暗号化では、y の値、つまり、暗号/解読に関する重要な情報は絶対に外部に流出しないため、部外者が立ち入って暗号を解読するためには、強制的な計算を通じてyの値を求めなければ暗号を解読することはできません。

一般的に暗号を解読する際には、高性能の計算機、あるいはコンピュータを用いて計算を行い、暗号を解読します。しかし、現在のネットワーク上でデータの暗号化に使用している暗号化方式の場合、解読に要する時間は極めて長くなります。

例えば、RSA-1024を基準として、これを突破するのにかかる時間を計算した事例を見るとよくわかります。

Evaluation of the Intensity of 1,024-bit RSA
Cryptography Code
(PDF)

この事例では、一般的なPCとES2という日本のスーパーコンピュータを利用して暗号を解読するのにかかる時間を推定したところ、一般のPCを使用した場合は、RSA-1024より弱い暗号を使用した場合でも最低2000年以上かかることがわかりました。スーパーコンピュータのすべてのリソースを使用した場合でも、RSA-1024の暗号に使用されたキーデータを見つけるのにおよそ10年ほどかかるといいます。(スーパーコンピュータに存在する640個のノードをすべて使用した場合)

実際、LINEではRSA-1024よりさらに強化された暗号RSA-2048を使用しているため、暗号を強制的に解除するのはさらに難しいといえます。

しかし、問題はまだ残っています。それはPCの演算能力です。時間が経つほど性能が向上するため(1.5年で2倍ずつ向上:ムーアの法則)、既存の暗号方式はいつかは破られるだろうというものです。したがって、ある時点でさらに強力な暗号方式に変える必要があります。参考までに、RSA-1024暗号化方式は2019年までの使用が推奨されているため、現在の状況では安全な方式だといえますが、日々変化している暗号化解読技術やPC性能向上により、また状況は変わるかもしれません。

LINEは今後もより安全なサービスを提供するために、日々研究と挑戦をし続けていきます。