Repolode
giovantenne

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. 1

    リポジトリをクローンする

    git clone https://github.com/giovantenne/lastsignal.git
  2. 2

    プロジェクトフォルダーに移動し、Ruby gemをインストールする

    cd lastsignal && bundle install
  3. 3

    .env.exampleテンプレートを.envにコピーしてから、setupを実行する

    bin/setup
  4. 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 の数値は毎日更新されます。

関連プロジェクト