メッセンジャーアプリのSignalが一躍注目を浴びたのは2021年1月、同じくメッセンジャーアプリのWhatsAppがプライバシーポリシーを変更したときでした(リンク先は英語)。イーロン・マスク(Elon Musk)氏が投稿した「Signalを使おう」という簡潔なツイートの後、何百万もの人がこのアプリをダウンロードし、Signalのプラットフォームで技術的な問題が一時的に発生したほどです(リンク先は英語)。
ところでSignalは、サイバーセキュリティのエキスパートの間ではかなり前から知られていました。それもそのはず、開発元はSignalのプライバシーとセキュリティのブラッシュアップを何年もかけて行っています。今回は、Signalの備えるセキュリティとプライバシーの機能を紹介し、セキュリティをさらに強固なものにする方法を説明します。
Signalの機能
Signalはエンドツーエンド暗号化に対応しており、安全なデータストレージを備えています。さらに、Signalのコードを見て、Signalアプリの安全性を確認することもできます。
エンドツーエンド暗号化:プライバシーの柱
Signalの長所の一つは、何といってもエンドツーエンド暗号化が既定で使われていることです。つまり、メッセージの内容を読めるのはチャットの相手だけ、個人の通話やグループコールを聞くことができるのは参加者のみで、それ以外の人(アプリ開発者も含む)は通信の中身を見ることができません。エンドツーエンド暗号化の使用は、メッセンジャーのセキュリティを向上させる重要な手段です。
メッセンジャーアプリでエンドツーエンド暗号化が広く使用されるようになったのは、さまざまな意味でSignalのおかげでした。競合であるWhatsApp、Facebook Messenger、Skypeでさえ、安全に通信するためにSignal プロトコルを使用しています(英語記事)。しかしSignalは、これらのサービスよりも多くのデータを暗号化します。
Telegramの場合、エンドツーエンド暗号化が機能するのは、二者間でのいわゆる「シークレットチャット」のときに限られます。Signalの場合は、グループチャットも通話もエンドツーエンドで暗号化されます(英語記事)。それだけでなく、グループの情報(参加者、タイトル、アバターなど)は保存されません(英語記事)。
Signalでは、チャットのメタデータも保護されています。メタデータとは、誰が誰宛てに書いたのかに関する追加情報で、チャットの内容と同じくらい慎重に扱うべき情報です。メタデータから機密情報が漏れることは、しばしばあります。
Signalは、利用者のプロフィール情報も暗号化します。あなたが承認した人(あなたの連絡先、あなたがメッセージを送ったことのある相手、あなたのアカウントデータを見てよいとあなたが明示的に許可した人)以外は、あなたの名前、アバター、ステータスを見ることができません。
連絡先のプライバシーとセキュアエンクレーブ
Signalは、サーバー上にある「セキュアエンクレーブ」(隔離されたストレージ)を使用します。ここには、そのサーバーの所有者もアクセスできません。自分のアドレス帳を開発元に開示しなくても連絡先リストの中の誰がSignalを使用しているかを知ることができるのは、この隔離されたストレージのおかげです。暗号化されたリクエストがSignalアプリからエンクレーブに送信されると、エンクレーブは登録済みSignalユーザーの電話番号と比較して、暗号化された応答を返します。あなたのリクエストの内容をあなた以外が見ることはありません。
透明性ポリシー
Signalはオープンソースプロジェクト(英語)なので、Signalのコードは自由に入手できるようになっています。テクノロジーに精通した人であれば、Signalのサーバーソフトウェア、Android向けアプリ、iOS向けアプリのほかWindows、macOS、Linuxに対応したデスクトップ版のコードを読んだりビルドしたりして、利用者の機密データへのアクセスを可能とするようなバックドアが存在しないことを確認できます。
Signalのセットアップ
ここからは、Signalのプライバシーとセキュリティをさらに強化する、さまざまな設定を見ていきます。
訳注:ここでは主にAndroid版について説明しています。iOS版、デスクトップ版の詳細については、Signalのサポートページをご確認ください。
Signal PIN
デバイスを紛失したときやアプリを再インストールしたときには、Signal PINを使ってプロフィール、設定、アプリに保存した連絡先(アドレス帳に登録されていない連絡先)、ブロックした連絡先を復元することができます。
ということは、データが実際はSignalのサーバーに保存され、開発元やハッカーがアクセス可能な状態になっているということでしょうか?答えは「イエス」であり「ノー」でもあります。情報は確かにサーバーに保存されます。しかし、情報は暗号化されてセキュアエンクレーブに保存されているので、盗まれることはありません。セキュアエンクレーブにアクセスするための唯一の鍵は、あなただけが知っているPINです。
アカウント登録するときにPINの設定が促されますが、PINは設定から変更できます。PINやエンクレーブを十分に信用できない場合は、登録の途中でSignal PIN機能を無効にできます(アプリの設定を通じて無効化することもできます)。ただし、機能を無効化してからアプリを削除すると、デバイスに保存されていたデータ(アドレス帳に登録されていない連絡先を含む)がすべて削除されます。
PINを設定していないと、SIMスワッピングなどを通じて他人があなたの電話番号でSignalにアカウント登録する可能性があります。長いこと電話番号を使っていなかったために番号が停止され、別の人にその番号が渡った場合にも、同じような状況になる可能性があります。PINは設定しておいた方がよいでしょう。
プライバシー設定
何かの拍子にあなたのスマートフォンを手にした人にチャット内容を見られるようなことがないように、Signalの設定で画面ロック機能を有効にすることをお勧めします。有効にすると、スマートフォンのロックを解除するときと同じコード、指紋、またはFace IDを使用しないとSignalにアクセスできないようになります。
既定では、画面ロック機能はオフになっています。アプリ画面を閉じてもアプリはロックされません。そこで、画面ロックの設定は必ず変更しましょう。Androidの場合もiOSの場合も、プライバシー設定画面の中に画面ロック機能の設定があります。スイッチを切り替えて画面ロックを有効にし、画面ロックまでの時間を選択するか[即時]を選択してください。ロックされた状態からアプリに戻るときには、コード、指紋、またはFace IDがその都度要求されます。
Androidの場合、無通信タイムアウト以外にも、通知バーから手動でアプリをロックするオプションもあります。
Android版のSignalには、便利なプライバシー機能がもう一つあります。シークレットキーボードです。シークレットキーボードを有効にすると、キーボードは入力内容を学習しなくなり、入力中に入力候補を表示することもなくなります。つまり、キーボードは入力された内容を処理も保存もしなくなるのです。ただし、デバイスによってはシークレットキーボードが機能しない場合があります。その場合は、シークレットキーボードを有効にしようとしたときに警告メッセージが表示されます。
また、あなたが受け取ったメッセージを読んだかどうか、またはテキストを入力している最中かが相手に分かるようにするかどうかの選択もできます。ほかのメッセンジャーアプリもそうですが、このオプションを無効にすると、他の人の既読・入力中ステータスも受け取れなくなります。
デバイスのリンク
アカウントにデバイスを追加でリンクすると、Signalでのチャットにスマートフォン、タブレット、コンピューターから参加できるようになります。
リンクの手順は、以下のとおりです。
- PCでSignalを起動し、指示に従ってQRコードを表示します。
- スマートフォンでSignalの設定を開き、[リンク済み端末]に進みます。
- [+]をタップし、QRコードをスキャンします。
アプリの設定には、リンクされているすべてのデバイスが一覧表示されます。デバイス一覧は定期的にチェックして、知らないデバイス(不正なユーザー)がリンクされていないかどうか確認することをお勧めします。また、もう必要のないデバイスのリンクは解除してしまいましょう。
チャットのバックアップ
既定では、チャットのバックアップは作成されません。必要に応じてチャットを復元できるように、バックアップ機能を有効にしましょう。Signalの設定の[チャット]に、バックアップ作成の項目があります。指示に従って設定してください。途中で30文字のパスフレーズが提示されるので、必ず保存してください。このパスフレーズがないとバックアップを使えません。
Signalのバックアップデータはデバイスに保存されるので、新しいスマートフォンにデータを復元する場合には、古い方のデバイスにアクセスしなければなりません。そのため、スマートフォンを紛失したり壊したりした場合には、メッセージを復元できません。
さらに詳細な設定(もっと用心したい人向け)
Signalには、アクティビティを誰からも見られないようにするオプションがいくつかあります。
- [チャット]でメッセージの[リンクプレビューを生成する]をオフにする。アプリからWebサイトへ送信されたWebクエリは、インターネットサービスプロバイダーが見ることができます。[リンクプレビューを生成する]をオフにすると、参照先のWebサイトへ余計なWebクエリが送信されないようになります。
- プライバシー設定内の[詳細設定]で、音声通話が直接連絡先に接続するのではなくSignalサーバーを経由するように設定する。こうすることで、IPアドレスを隠すことができます。特定の状況下では便利な機能ですが、Signal開発元は通話の品質が下がると述べています。
- プロキシを有効にすることで、検閲される可能性をさらに回避する。ここで言う「プロキシ」とは、あなたのデバイスとアプリのサーバーの間に位置する保護要素です(詳しい手順はSignalのサポートサイトを参照してください)。プロキシを使うと、サービス提供元であるSignalであっても、あなたのIPアドレスを知ることはできません。このオプションは、Signalをブロックしている国でも役立ちます。
その他お勧め事項
これで、Signalのメッセージ、メタデータ、プロフィール情報など、個人情報のプライバシーを守る設定ができました。これに加えて、デバイスが不正に物理的アクセスを受けたりリモートアクセスを受けたりしないようにするための対策もしておきましょう。いつもスマートフォンをロックし、アプリとOSはタイムリーにアップデートし、信頼できるセキュリティ製品をインストールすることをお勧めします。DiscordやTelegramなど、Signal以外のメッセンジャーアプリを使用している場合も、セキュリティとプライバシーを最大限に得られるように設定することをお忘れなく。