LINE Engineering
Blog

メッセージの安全性のさらなる強化:Letter Sealingの適用拡大

Shin Kibin 2016.08.29

LINEでメッセンジャーサーバ開発を担当しています。

以前の記事「メッセージの安全性新時代:Letter Sealing」にて、LINEの1:1トークにエンドツーエンド暗号化(End-to-End Encryption、E2EE)を実装したことをお伝えしました。それ以降もLINEは、より多くの機能にLetter Sealingを適用拡大するために多大な努力を続けてきました。今回の記事では、これまでの取り組みをご紹介したいと思います。

適用拡大による改善点

1:1トークでLetter Sealingがデフォルト有効化される

より安全にサービスをご利用いただけるよう、1:1トークでLetter Sealingがデフォルトで有効化されました。これまではユーザーが必要に応じてLetter Sealingオプションをオンに設定する必要がありましたが、現在はユーザーがオフに設定しない限りLetter Sealingがデフォルトで有効化されています。

最初から全ユーザーを対象にLetter Sealingをデフォルトオンで提供しなかった一番大きな理由は、iOSのプッシュ通知方式のためでした。LINEは、受信したメッセージ内容の一部をプッシュ通知でプレビュー表示します。ただ、Androidと違ってiOSでは、プッシュ通知を表示するプロセスにアプリが介入できる余地が少ないのが事実です。通常、サーバはメッセージ内容の一部をプッシュ通知で送信します。 しかし、Letter Sealingの特性上、LINEサーバはユーザー間でやり取りされるメッセージを見ることはできないため、その内容をプッシュ通知に含めることはできませんでした。

しかし、幸いなことに、VoIP Push Notificationというプッシュ通知方式がiOS 8からサポートされるようになりました。この方式を採用すれば、プッシュ通知が届いた際にアプリを起動して暗号化されたメッセージを受信し、その内容を復号してユーザー端末にプッシュ通知で表示することができます。LINEの開発チームは、iOS 9.3.1から同機能が安定的に動作することを確認し、Letter Sealingを使用するユーザーに従来と同様のユーザビリティを保証できると判断しました。その結果、iOS 9.3.1にアップデートしたユーザーを対象にLetter Sealingをデフォルト有効状態にして適用することができました。

グループトークルームでもより安全にメッセージを送受信できる

1:1トークルームのみならず、グループトークルームでもより安全にトークを楽しむことができます。

グループから退会した場合、そのユーザーはグループトークルームの暗号化されたメッセージを解読できなくする必要があります。さらにもう一つ注意したいのは、モバイルメッセンジャーの特性上、グループトークルームの参加者全員が常にオンライン状態、つまり常にリアルタイムでメッセージを確認できる状態ではないということです。そのため、1:1トークルームよりグループトークルームへのLetter Sealing適用はもっと複雑です。

このような問題をすべて考慮したうえで約1年にかけて開発とテストを行い、最新バージョンにおいてグループトークルームにLetter Sealingを適用することができました。現在は、50人以下のグループトークルームのみを対象としています。

LINEの開発チームがこれらの問題をいかに解決したかについては、次回の記事で詳しく説明したいと思います。

無料通話とビデオ通話でもLetter Sealingを利用できる

LINEは、いつどこでも無料で音声通話およびビデオ通話ができる無料通話機能を2011年10月より提供しています。一般のトークメッセージ以外に追加でLetter Sealingを適用する機能を内部で検討した結果、より安全な通話を実現すべく無料通話でもE2EEを開発、適用することにしました。メッセージを送受信する場合と同様、1:1通話の場合も、通話を行うユーザー同士のみが知りうる暗号化鍵を生成し、通話内容を暗号化して転送します。この暗号化鍵はユーザーの端末上にのみ保有されるため、LINEサーバでも通話内容を解読することはできません。

無料通話(左)とビデオ通話(右)にLetter Sealingが適用された画面

新規に追加された無料通話のセキュリティ機能を使用するためには、別途設定を行う必要はありません。LINE 6.5(iOS版、Android版)およびLINE 4.8(Windows PC版)以降のバージョンを使用しているユーザーの場合、既存のLetter Sealingオプションがオンになっていれば、別途設定しなくてもセキュリティが強化された無料通話を使用できます。

トークルームのLetter Sealing適用有無も一目で分かる

LINEでのトークは、Letter Sealingをオンに設定していなくても、ユーザー端末とサーバ間の通信を暗号化して行っており、送受信されるメッセージの保護を行っています。Letter Sealingは、個人のプライベートなトーク内容を送信者と受信者の端末でのみ確認できるようにし、LINEのサーバ上への保存や、内部のサーバ間の通信においても暗号化された状態のままで、より安全に行うために考案された機能です。

Letter Sealingを実装した後、LINE内部ではLetter Sealingがオンになっているトークルームを識別できる状態表示(status indicator)の必要性について多くの議論が行われました。議論の結果、ほぼすべてのトークルームにLetter Sealingを適用する前までは、同機能が使えるケースと使えないケースが混在することによってユーザーに混乱を与えることが懸念されました。また「Letter Sealingが適用されていないトークルームは安全ではない」という誤解を招く可能性もあると判断しました。

今はLetter Sealingがデフォルトで有効化されているので、このようなことを懸念しているよりは、Letter Sealingの適用有無に関する状態情報をユーザーに分かりやすく表示することがもっと重要であると判断しました。そのため、Letter Sealingが有効になっている1:1トークルーム、グループトークルーム、1:1無料通話にはロックアイコン()を表示し、Letter Sealing適用中であることが分かるようにしました。

以上でご紹介した強化されたセキュリティ機能は、iOS版、Android版、PC版(Windows、Mac)※注への対応を皮切りに、他のプラットフォームへも対応範囲を拡大しつつあります。LINEはこれからも、ユーザーの皆様に安心してメッセンジャーサービスをご利用いただけるように最善を尽くしてまいります。

※注:PC版(Windows、Mac)のLINE 4.8では、1:1トークとグループトークに限って状態表示(status indicator)を提供しています。無料通話への状態表示は次のバージョンで対応予定です。

作成者の紹介

この記事は、LINEでメッセンジャーサーバ開発を担当しているシン・キビンさんが作成しました。

Letter Sealing

Shin Kibin 2016.08.29

LINEでメッセンジャーサーバ開発を担当しています。

Add this entry to Hatena bookmark

リストへ戻る