Signalのセキュアバックアップ
(signal.org)- Signalで会話履歴のバックアップ機能がついに導入された
- セキュアバックアップはオプトイン方式で、ユーザーが望む場合にのみ有効化できる
- すべてのバックアップデータはエンドツーエンド暗号化されており、Signalのサーバーでもアクセスできない構造になっている
- 45日分のメディアとすべてのテキストメッセージは無料でバックアップでき、それを超えるメディアのバックアップは有料サブスクリプション方式となる
- 会話の復元は64桁の復旧キーでのみ可能で、キーを紛失すると復旧できない
Signalのセキュアバックアップ紹介
これまでは、スマートフォンを紛失したり故障したりすると、Signalのメッセージ履歴もすべて失われる仕組みだった。家族写真、重要な文書、大切な会話など、取り戻せない情報への不安が大きかった。ユーザーから最も頻繁に寄せられていた要望も、メッセージのバックアップ機能の追加だった。これを解決するため、Signalは設計と開発を経てセキュアバックアップ(secure backups)機能を導入した。現在、この機能はAndroid向けSignalベータ版で先行提供されており、iOS版およびデスクトップ版にもまもなく適用される予定だ。
Secure Backups 101
- セキュアバックアップは、ユーザーが自ら同意してオプトインすることで、Signalの会話履歴をプライバシーが保護されたアーカイブとして毎日自動保存できる機能である
- もちろんこの機能を使わないこともでき、バックアップが必要なユーザーだけが個別に設定できる
- すべてのテキストメッセージと直近45日間のメディアデータまでは、無料でバックアップおよび復元が可能である
- 45日を超えるメディアおよび全メッセージ履歴のバックアップは、月額1.99ドルの有料サブスクリプションプランとして提供される
- Signalはデータ販売を行わずに直接運営されている非営利組織であるため、大規模なメディア保存・転送コストを別途の有料サービスで賄っている
Secure Backupsの構造: 常にプライバシーファースト
- Signalのすべての機能は、プライバシー最優先の設計という原則に基づいている
- ゼロ知識技術を用い、バックアップアーカイブが特定のユーザーアカウントや決済情報と直接結び付けられないよう設計されている
- 中核となるセキュリティ要素は64桁の復旧キーで、このキーは端末上で生成され、サーバーには保存されない
- この復旧キーだけがバックアップの解除とメッセージ復元の唯一の手段であり、キーを失うとSignalでも復旧は不可能である
- 復旧キーは安全な場所(メモ、パスワードマネージャーなど)に保管する必要があり、ユーザーが望めば新しいキーに再生成できる
- Signalの目標は、最小限のデータ収集、透明性、そして他者と結び付けられないデータ処理にある
- 常にセキュリティを他のあらゆる目的より優先する原則を貫いている
セキュアバックアップを有効化する方法
- Signalの設定メニューからセキュアバックアップ機能を有効化できる
- 現在はAndroidベータ版でのみ利用可能で、まもなく全プラットフォームへ拡大される予定である
- バックアップを有効化すると、端末が毎日新しいセキュアバックアップアーカイブを自動生成し、前日のものを上書きする
- 復旧が必要な場合、ユーザーだけが復旧キーでのみアクセス可能である
- メッセージDBを復元する際、「1回表示メッセージ」や24時間以内に削除予定のメッセージは対象外となる
- バックアップは毎日更新されるため、過去24時間以内に削除された内容や有効期限設定付きメッセージは新しいバックアップに含まれない
今後の計画と追加機能
- Signalは今回のセキュアバックアップを出発点に、さらに多様な安全なバックアップオプションを開発していく計画である
- 今後は、ユーザーが希望する場所に直接セキュアバックアップを保存できるようにしたり、Android・iOS・デスクトップ間での暗号化された会話履歴の移行機能を提供したりする予定である
- 現在はAndroidベータ版でのみサポートされているが、まもなくiOS版とデスクトップ版での正式提供および全面展開が予定されている
1件のコメント
Hacker Newsの意見
暗号化されたメッセージ履歴をAndroid、iOS、デスクトップ間で自由に移せる機能をずっと待っていた
AndroidからiOSへ移行したとき、E2EEを使うすべてのメッセンジャーアプリ(Signal、WhatsApp、Threemaなど)でメッセージ履歴を全部失ったが、暗号化のないTelegramだけは例外だった
WhatsAppには移行アプリがあったが、iPhoneの初期設定中のエラーで失敗した
Signalにはバックアップ機能があったものの、OSのバージョン間で互換性がなく、それが問題だった
デスクトップを事前に設定していれば、履歴も一緒に移せる
45日以上前のメディアは消えるが、新しい暗号化バックアップが正式導入されるまでの暫定策としては使えそうだ
Signalにも端末間転送機能が今はあるはず
Signalは、安全なバックアップを有効にすると、端末が毎日新しいバックアップアーカイブを作成して以前のアーカイブを置き換えると案内している
増分バックアップではなく、毎日15GBのフルバックアップを再アップロードするのだとしたら、なぜそうするのか気になる
セキュリティ上の問題なのだろうか
復旧キーとSignal PINの両方がデータ復元に使われるようだが、なぜ統合しないのか聞きたい
64文字の復旧キーをユーザーに管理させるのは、Signalらしくなくやや無骨な方式に感じる
たいていのユーザーはスクリーンショットを撮るだろうし、その画像が暗号化されていないクラウドにバックアップされるリスクがある
ローカルバックアップならその端末への物理アクセスが必要なのでまだましだが、クラウドに保存されるならセキュリティ的には後退ではないかと懸念している
おそらくバックアップ形式がVeracryptボリュームのような1つのコンテナになっていて、サイズだけが増えて増分バックアップができないのだと思う
loopback LUKSボリュームのバックアップでも似た問題を経験した
エレガントな解決策は、Gocryptfsのようにファイルごとに個別に暗号化し、必要なときだけ同期する方式だ
たぶん家の玄関と裏口がそれぞれ別の鍵を使うのと同じ理由だと思う
PINはバックアップ保存サーバーへの攻撃時にははるかに推測されやすい
端末上では試行回数制限(throttling)で保護できるが、リモートの保存先では危険だ
新しいバックアップ機能は本当によさそうだ
テスト復元が簡単であってほしい
特に、メイン端末に影響を与えずに秘密鍵で新しい端末へ復元する形で試したい
PCにSignalをインストールしてもメッセージ履歴が見えず不便だ
バックアップ機能によってPCで全メッセージ履歴を見られるようになるとよい
大きな画面でメッセージをたどるのはとても便利だ
新しい端末へ復元可能で、以前の端末では登録が解除されるがデータは残る
もし新端末への復元に問題があれば、以前の端末で再登録すれば元に戻せる
開発チームも自分たちのデータでこの方法をテストしている
SignalのAndroidバックアップは、オフラインで無料でほぼいつでも可能だった
Signalフォルダに数GB規模のバックアップファイルがスマホ上に生成され、それを取り出して新しいスマホに入れればよい
ファイルはパスコードで暗号化されており、dbの抽出も可能だ
signalbackup-tools を勧める
既存バックアップでは2つの問題を経験した
バックアップ書き込みのせいで、自分のスマホが充電すらできないこともあった
SyncThingがPlayStoreから消えて以降、ほかに簡単な方法がない
よりよいローカルバックアップを望んではいるが、現実的には月額2ドルのクラウドバックアップは安価で実用的な代替策だ
自分でファイルをエクスポートして別途保管・管理することは、「無料」とは感じない
新しいサービスの価格も妥当だと思う
今後も従来方式のバックアップが維持されるのか気になる
この方法は自分には通用しなかった
アプリが復元自体をしてくれなかった
以前はWhatsAppも同じだったが、今は両アプリとも直接移行機能が提供されている
Signalのバックアップオプションが、ローカル(柔軟だが一部の状況でしか使えない)かSignal自身のサーバー(柔軟性がなく、一部ユーザーには法的に使えない)の2つしかない理由が気になる
多くのSignalユーザーは、実績があり信頼できるバックアップ/同期クラウドを使いたいと思うはずだ
Signalはインフラを持っているのだから、iOSではiCloud、AndroidではGoogle Drive(Google Driveは実装が複雑かもしれないが)のように、バックアップ先を選べるようにできないだろうかと思う
重要なのは、Signalが常にデータを完全に暗号化したうえで外部プロバイダーに保存すればよいということだ
Signal自身のサーバーを信頼しなければならない状況よりも、さまざまな外部クラウドにバックアップするほうが、ユーザー心理としては受け入れやすいかもしれない
将来Signalがデータ資産化に関心を持つリスクを防ぐことにもつながると思う
たぶんそうなるかもしれない
「今後は好きな場所に安全なバックアップを保存できる機能を含める予定」と案内されている
すでにスマホ上にバックアップファイルがあるなら、自分の使っているバックアップサービスでそのファイルを自動同期すればよいのではないかと思う
毎日自動化して同期できるのではないか
Signalがバックアップを完全暗号化して提供するとしても、一般ユーザーには不便かもしれないと思う
多くのユーザーはメッセージのE2EEを求めてSignalを使っているが、いざ自分の端末へのバックアップとなると、好きな方法で自由にアクセスし、管理したいはずだ
暗号化アーカイブをオプションとして提供するのはよいが、特定のアプリでしか使えず自由にアクセスできないなら、それは一般的なバックアップとは言えないと思う
AndroidとiOSの間でメッセージ移行が簡単になるという副次効果が出るならうれしい
両プラットフォームで移行プロトコルがなぜ完全に異なるのか疑問だ
Signalの開発者です
新しいバックアップ形式は本当にクロスプラットフォームだ
すでにiPhoneでバックアップ復元に成功しており、現在は安定化の段階にある
参考までに、Androidの従来のローカルバックアップは昔ながらのSQLiteステートメントダンプ(強力なローカルキーで暗号化)で、非常に移植性が低かった
ただし、まもなくローカルバックアップ自体もクロスプラットフォーム対応になる予定だ
今後の機能として言及されている
両プラットフォームで移行プロトコルが異なるのは、競合アプリへ移りやすくしたくないからかもしれない
Signalにバックアップ機能がなかった頃にスマホを替えたため、古いSignalの会話や写真の履歴が旧端末にしか残っていない
今は新しいスマホでSignalが有効になっているので、旧端末ではバックアップもできない状況だ
履歴を安全に救い出す手順や方法があるのか知りたい
旧端末を登録した直後に機内モードにしておけば、メイン端末を問題なく復旧できる
あるいは使い捨て番号で旧端末を登録する方法もある
バックアップが手に入れば、signalbackup-tools で両端末のバックアップを結合してメイン端末に入れられる可能性がある
自分では試していないが、開発者が積極的にサポートしている
メディアストレージについて、クライアント側でもっと制御できるようにしてほしい
履歴全体を消さずに保存容量を効率よく管理したい
すべての会話のメディアを一度に見て、ファイルサイズ順に並べたり、会話ごとにグループ化したりして整理しやすくしてほしい
Signalで不満なのは、メディアを常にローカル保存する選択肢がなくて不便なことだ
多くのメッセンジャーで不満なのは、古い内容をアーカイブして外部保存するのが複雑なことだ
今ではSignalアプリの容量が8GBまで増えたが、減らす方法がない
Androidではすでにメディア管理に対応している
[設定] → [データとストレージ] → [ストレージ管理] → [ストレージを確認] と進む
すべてのメディア、ファイル、オーディオを保存容量順に並べて管理できる
会話内の個別ファイルだけを削除することもできる
同じ機能はチャット内からも利用できる
バックアップファイル内で10MiBを超えるメディアだけを選択的に削除できる機能があれば、バックアップ容量の急増を事前に防げてよいと思う
Signalが有料プレミアム機能を導入することは前向きに見ている
1台のiOS端末から別のiOS端末へ、追加端末なしで移行する機能はプレミアムでないことを望む
iOSで単一のSignalインスタンスのローカルバックアップ/復元機能が有効になってほしい
なぜ3台目の端末が必要なのか気になる