# PaperPhoneLite 3.1.0
[简体中文](README.md) · [English](README_EN.md) · [日本語](README_JA.md) · [한국어](README_KO.md) · [Français](README_FR.md) · [Deutsch](README_DE.md) · [Русский](README_RU.md) · [Español](README_ES.md)
[更新履歴](changelog.md)
[](#) [](#) [](#) [](#) [](#) [](#) [](#) [](client/package.json) [](LICENSE)
PaperPhoneLite は、公開ソーシャル機能を持たない軽量なエンドツーエンド暗号化メッセンジャーです。
📸 スクリーンショット(クリックして展開)
## 機能
- X25519 · XSalsa20-Poly1305 · Ed25519.
- 個人チャットと最大 2,000 人の Sender Key 暗号化グループ。
- テキスト、画像、動画、文書、音声、絵文字、Telegram ステッカー。
- 信頼性の高い WebSocket 同期、オフライン送信キュー、アカウント別キャッシュ。
- 1、3、7、30 日後のメッセージ自動削除。
- 友達申請、メモ、タグ、ブロック、QR グループ招待。
- TOTP 2FA、Android の任意の ntfy 通知、iOS のユーザー指定 Bark エンドポイント。サーバーは既定で `api.day.app` のみ許可し、セルフホスト Bark は `BARK_ALLOWED_HOSTS` で追加します。
- 最大 500 MB のファイルをサーバー永続ボリュームに保存。ユーザー/友だちとグループのアバターは永久保存され、チャット添付はサーバー設定の期限で削除され、旧形式のアップロードは自動移行されます。
- 8 言語の UI。
## 本人確認、署名とオフライン同期
以下は未リリースのソース変更です。バージョンは 3.1.0 のままです。[変更履歴](changelog.md)を参照してください。
新しい連絡先とは、テキスト外観パスワードをオフラインで取り決め、端末で設定してロックを解除します。**テキスト外観パスワードは相手が信頼できるか確認するための証明です。オフラインでのみ共有し、いかなる形でもオンラインに送信しないでください。** AES-GCM で固定文字列 `paperphone.app` を暗号化し、双方の識別鍵、従来の 12 組の安全番号、ランダムなチャレンジを結び付け、暗号化した封筒に Ed25519 署名を付けます。双方の証明とチャレンジの受領確認が成立すると、プロフィール名に緑の ✅ が付きます。安全番号は信頼できるオフライン経路で照合してください。
個人情報ページを開くと、公開鍵とローカルの信頼記録を再確認し、履歴から確認応答を復元します。パスワードが解除済みなら確認を自動開始・再開します。再表示では未完了のチャレンジを維持し、再試行を制限します。鍵の変更時は信頼を解除し、オフライン照合後の手動確認が必要です。フォーカスや表示状態の復帰時も更新します。
新しい群メッセージには署名と Sender Key 暗号化が必須です。既存の群は移行され、暗号化は無効にできません。鍵配布の前に各メンバーを個人チャットで確認します。メンバー一覧は鍵と信頼状態を更新しますが、一括で個人確認を開始しません。署名は群、送信者、鍵世代、メッセージ ID、種類、識別鍵、名前、nonce、暗号文を保護します。信頼済み鍵の署名が正しければ緑の ✅ を表示し、復号鍵が未着なら本文はロックされたまま再試行を待ちます。
参加・退会・除名で鍵世代が進み、オンラインの全送信者は通知後に自分の送信鍵を更新します。オフライン端末は再接続時と送信前に更新し、サーバーは古い世代の送信と鍵公開を拒否します。退会者は新しいメッセージや鍵を取得できず、再参加でも不在期間の履歴は取得できません。残る受信者の履歴鍵は保持しますが、退会者が既に保持する鍵や平文は消去できません。
`server_seq` をアカウント別に保存し、最後までページ取得して履歴鍵で復号を再試行します。群履歴は不変の番号でページ取得し、総件数の固定上限はありません。ローカルキャッシュは会話ごとに最大 2,000 件で、自動削除期限は有効です。紛失済みの鍵は復元できません。
現在は X25519、XSalsa20-Poly1305、Ed25519 を使用します。旧 API の `kem_pub` は署名公開鍵であり、ML-KEM の耐量子鍵登録ではありません。群の所属と順序はサーバー管理で、MLS 合意ではありません。メタデータやアップロードした添付ファイル自体は、この署名変更による端末間暗号化の対象ではありません。
サーバーと全プラットフォームのクライアントを同時に更新してください。旧クライアントは新しい署名形式を読めません。ソース変更はアプリや Docker イメージの公開を意味しません。[移行手順](DEPLOY_EN.md)・[テスト](client/tests/README.md)。
## Tor は必須です
Android、iOS、Windows、macOS の本番クライアントは Tor を内蔵し、ログイン前に Tor の bootstrap 完了を待ち、`.onion` 通信を分離 SOCKS5 回線に限定して clearnet へフォールバックしてはいけません。`client/` は共有 UI ソースコードのみです。ブラウザと PWA は本番クライアントとしてサポートされません。
Moments、Timeline、すべての通話、LiveKit、Cloudflare R2、通報、モデレーション画面は削除済みです。本番は Docker Compose と Tor v3 onion service のみを使用します。[DEPLOY_EN.md](DEPLOY_EN.md) を参照してください。
サーバー起動時に、旧インストールに残る廃止済み Web Push/OneSignal テーブルと古い識別子を自動削除します。
Docker Compose の起動後、Tor コンテナは完全な `http://...onion` アドレスをホストの `logs/onion-address.log` に自動保存します。`docker compose logs tor` でも確認できます。
iOS アプリは Apple App Store で配布予定です。Android APK は Android クライアントリポジトリの [GitHub Releases](https://github.com/619dev/ppl-android/releases) のみで公開し、Google Play には公開せず、Google のプッシュ/サービスフレームワークも組み込みません。
## クライアントリポジトリ
| プラットフォーム | ソースコードとリリース |
|------------------|--------------------------|
| Android | [619dev/ppl-android](https://github.com/619dev/ppl-android) |
| iOS | [619dev/ppl-ios](https://github.com/619dev/ppl-ios) |
| macOS | [619dev/ppl-mac](https://github.com/619dev/ppl-mac) |
| Windows | [619dev/ppl-win](https://github.com/619dev/ppl-win) |
このプロジェクトが役に立ったら、コーラを一缶おごってください。
Telegram グループ: https://t.me/+vHJtvWJY_gEyMTUx
ライセンス: AGPL-3.0。