ユーザー識別子を使わないエンドツーエンド暗号化メッセージングアプリとネットワーク。iOS、Android、デスクトップ、CLIに対応。
giovantenne/lastsignal
定期確認が途絶えたとき、大切な人にE2E暗号化メッセージを届けるセルフホスト型のデッドマンスイッチ。
- スター
- 756
- フォーク
- 28
- 未解決の Issue
- 6
- 最終コミット
- 23 時間前
これは何?
LastSignalは、セルフホスト型のデッドマンスイッチです。大切な人に向けた暗号化メッセージを作成すると、システムから定期的に確認メールが届きます。確認に応答しなかった場合は、設定した間隔でリマインダーが送られ、必要に応じて信頼できる連絡先に通知した後、最終的に宛先へメールでメッセージが届けられます。
メッセージはパスフレーズから導出した鍵(Argon2id、XChaCha20-Poly1305、X25519)でエンドツーエンド暗号化されるため、サーバーから平文を参照することはできません。Ruby on Rails 8とSQLiteを基盤としており、Kamalまたはdocker-composeでデプロイできます。確認間隔、リマインダーの回数、信頼できる連絡先への通知後の猶予期間などはユーザーごとに設定でき、宛先ごとに復号可能になるまでの遅延も指定できます。
既知のトレードオフも説明されています。宛先の公開鍵とともにサーバー生成のKDFソルトが保存されるため、データベースにアクセスできる攻撃者は、弱いパスフレーズに対してオフラインの総当たり攻撃を試みる可能性があります。そのため、強力なパスフレーズが必要です。
主な機能
- 01定期的な確認メールへの応答がない場合、リマインダーを送り、その後メッセージを配信します。
- 02メッセージはエンドツーエンド暗号化され、サーバーから平文を参照できません。
- 03配信前に、任意で信頼できる連絡先へ通知できます。
- 04宛先ごとに復号までの遅延を設定できます。
- 05ユーザーごとに確認のタイミング、リマインダーの回数や間隔を設定できます。
- 06Kamalまたはdocker-composeでデプロイでき、任意でkeep-alive webhookも利用できます。
ユースケース
- 応答できなくなった場合に備え、家族へ最後の指示やパスワードを送る。
- 宛先が後日読めるよう、時間差で届くメッセージを設定する。
- ホステッドサービスではなく、自分のサーバーでプライベートなデッドマンスイッチを運用する。
クイックスタート
- 1
リポジトリをクローンする
git clone https://github.com/giovantenne/lastsignal.git - 2
プロジェクトフォルダーに移動し、Ruby gemをインストールする
cd lastsignal && bundle install - 3
.env.exampleテンプレートを.envにコピーしてから、setupを実行する
bin/setup - 4
ローカル開発環境を起動し、http://localhost:3000 を開く
bin/dev
使う前に知っておきたいこと
- 作者はホステッドサービスを提供していないため、自分でサーバーを実行・保守する必要があります。
- メールを確実に配信するには、自分でSMTPプロバイダーを用意し、SPF、DKIM、DMARCレコードを正しく設定する必要があります。
- サーバー生成のKDFソルトにより、データベースを入手した攻撃者は受信者のパスフレーズをオフラインで総当たりできます。そのため、パスフレーズは非常に強固なものにする必要があります。
トピック
よくある質問
- lastsignal とは?
- 定期確認が途絶えたとき、大切な人にE2E暗号化メッセージを届けるセルフホスト型のデッドマンスイッチ。 LastSignalは、セルフホスト型のデッドマンスイッチです。大切な人に向けた暗号化メッセージを作成すると、システムから定期的に確認メールが届きます。確認に応答しなかった場合は、設定した間隔でリマインダーが送られ、必要に応じて信頼できる連絡先に通知した後、最終的に宛先へメールでメッセージが届けられます。
- lastsignal は無料で使えますか?ライセンスは?
- lastsignal は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- lastsignal は今もメンテナンスされていますか?
- 活発にメンテナンス中。lastsignal の最終コミットは 2026年10月19日 です。
- lastsignal は何に使えますか?
- 応答できなくなった場合に備え、家族へ最後の指示やパスワードを送る。 宛先が後日読めるよう、時間差で届くメッセージを設定する。 ホステッドサービスではなく、自分のサーバーでプライベートなデッドマンスイッチを運用する。
- lastsignal のインストール方法は?
- リポジトリをクローンする: git clone https://github.com/giovantenne/lastsignal.git プロジェクトフォルダーに移動し、Ruby gemをインストールする: cd lastsignal && bundle install .env.exampleテンプレートを.envにコピーしてから、setupを実行する: bin/setup ローカル開発環境を起動し、http://localhost:3000 を開く: bin/dev
- lastsignal はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/giovantenne/lastsignal
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
パスワードマネージャーからOSまで、プライバシーとセキュリティを重視したソフトウェアやオンラインサービスの厳選リスト。
Windows、macOS、Linux向けのデスクトップクライアント。Dropbox、Google Drive、OneDriveなどの同期フォルダー内のファイルをクライアント側で透過的に暗号化します。
Raspberry Pi向けのセルフホスト型ホームセキュリティカメラ。スマホでライブ映像や録画をE2E暗号化
PrivNoteに着想を得た、RustバックエンドとSvelteフロントエンドによるセルフホスト可能なオープンソースの暗号化メモ・ファイル共有サービスです。
ブラウザーでAES-256-GCM暗号化する、1回表示または24時間後に消えるエンドツーエンド暗号化pastebin。