メッセンジャーサービスの「LINE」がエンドツーエンドの暗号化通信「Letter Sealing」の本格的な導入を発表した。

実は、LINEが通話・トークの保護に暗号化通信方式「Letter Sealing」を導入したのは2015年11月8日から。このときは、1対1のトークにおけるテキストと位置情報について適用された。
さらに2016年7月26日より1対1の無料通話にも適用されていた(バージョン6.5から)。

今回は、グループトークおよび複数人トークへの適用(順次)が発表されたということだ。
なお、保護対象はテキストと位置情報のみ。また、暗号化通信の対象になっているかどうかは、「Indicator機能」により確認できる(その通信が暗号化されていれば鍵マークを表示する)。

Android/iOSアプリはバージョン「6.5」以降、Windows/Macアプリはバージョン「4.8」以降で順次対応するという形だ。

ところで、暗号化って何だろう?
LINEという身近なアプリで話題になってきたというところで、ここで暗号化通信についておさらいしておこう。

ただ、「暗号とは?」と技術的に紐解いていこうとすると難しい話になるので、ここではざっくりと理解するためのものと思ってほしい。

◎暗号化通信って何?
そもそも暗号化とは、インターネット上でやり取りされるデータを保護する、「盗聴」や「改ざん」などを防止するために、第三者には読みとれない暗号文に置き換えてやり取りしましょうということ。
暗号自体は遥か昔からあり、過去さまざまな暗号化方式が登場してきた。第二次世界大戦中の「エニグマ」など、聞いたことがある人も多いだろう。

送信元は、一定のルールで文書の中身を書き換えて、暗号文にして(暗号化して)送る。
受信した側は、そのルールにもとづいて元の文書に解読する。
このとき、暗号化する前の状態を「平文」、暗号文を平文に戻すことを「復号」、暗号化、そして復号のルールを「鍵」という。

通信そのものは、簡単に傍受できてしまうので、単純に考えると、暗号化された文書を入手し、鍵があれば復号して中身を読むことができる。
いかに、やぶられない「強い暗号方式」を作り、運用するか、が大きな課題になる。

大きく分けて
・暗号化と復号に同じ鍵を使う仕組み(共通鍵方式)
・暗号化と復号にそれぞれ異なる鍵を使う仕組み(公開鍵方式)
がある。
現在は、それぞれ単独で運用されるというより、その鍵を安全に運用する仕組み(鍵交換、認証)も含め、さまざまな方式が組み合わさって成り立っている。

◎暗号化はさまざまな場面で使われる
暗号化通信は、すでにWi-Fiで通信する際に使われている。
Webでも,
・クレジットカードで買い物をする
・銀行のサービスをオンラインで利用する
などの際に暗号化通信が使われる。

Wi-Fiの暗号化通信の場合は、鍵を配布する認証も行うため、その際に用いる認証方式と組み合わせて、認証プログラム(セキュリティ方式)としてまとめて名前が付けられていることが多い。設定画面やWi-Fiルータのマニュアルやパッケージに「WEP」や「WPA」「WPA2パーソナル」といった単語を見かけるだろう。

たとえば、
「WEP」はRC4アルゴリズムをベースに暗号化を行う仕組みで、認証方式は持たないがIEEE802.1X認証と組み合わせることができる。

「WPA」は暗号化方式は、AES(共通鍵暗号方式)をベースにしたCCMPアルゴリズム、認証方式は「PSK」という具合だ。

また、Webは暗号化通信を実装するSSLプロトコル上でセキュアな通信ができるようになっている(ブラウザでアクセスする際の「鍵マーク」やURLの「https」がSSL通信を示す)。

◎Letter Sealingによる暗号化通信
今回の話は、LINEがアプリの機能として暗号化通信を提供するというもの。
ただし、これまでLINEの通信が暗号化されていなかったかというと、そうではない。
LINEアプリにおける端末間の通信は公開鍵方式のRSAアルゴリズムによって暗号化されている。しかし、この方式では経由するLINEサーバー内で一度復号処理が入ることになる。

どういうことかというと、
LINEではユーザーに対してLINEアプリを提供する際、暗号化する公開鍵だけをアプリに入れて提供する。そして、ユーザーの端末と接続されたサーバーでは、「LINEサーバーでのみ解読できる暗号化された安全なチャネル」を作るという仕組みだ。
そのため、ユーザーの端末とサーバーの通信は公開鍵方式で暗号化されるのだが、通信内容はサーバー内で一度復号された後再度暗号化するという過程を経るため、一度サーバー内で平文に戻るのだ。

一方、Letter Sealingによる暗号化では、発信元の端末から受信元の端末まで、つまりエンドツーエンドで暗号化され、LINEサーバー内で復号されることはない。安全なアルゴリズムを使用して直接鍵を交換することで、送信者と受信者以外は復号ができないようにしたのだ。

これは、LINEのサーバーがハッキングされて鍵が盗まれたり、管理者による漏洩といったリスクを回避するためだという。サーバーのハッキングを完全に防ぐことはできない。とすれば、鍵をサーバー側で持つのをやめましょうということだ。

この仕組みが高セキュリティを担保できるとなれば、今後、チャットアプリのセキュリティ標準になるのかもしれない。

とはいえ、この仕組みでは、逆にデバイス側にしか鍵がないため、機種変更や同じアカウントで異なるデバイスから閲覧する際に閲覧できない場合がある。セキュリティと利便性のバランスだが、そのテストケースとしても注目だ。


大内孝子