FriendLock · design.sayne.friendlock · v1.0 (debug)
ANON-AUTH OK

2 番目の目を持つ Android アプリロック

自分のアプリをロックします。
友人
キーを持たせてください。

FriendLock は、youがロックされる Android アプリロックですあなたのアプリ - 再びアクセスするには、ペアリングされている親または友人の携帯電話からタップ (または 6 桁のコード) する必要があります。ペアリングは相互です。ペアリングされたデバイスは他のデバイスを承認できます。

ロックされた携帯電話に秘密が保存されることはありません コードの読み上げによりオフラインで動作します アカウントなし - 設計により匿名
9:41App lockedInstagramEnter a code from a paired device,or ask for approval.Request approval1234567890
READ
THIS
FIRST

これはコミットメント ツールであり、解読不可能なロックではありません。

これについては正直に述べています前面: 通常の (root 化されていない) Android スマートフォンでは、セーフ モード、強制停止、ADB、または工場出荷時設定へのリセットによって FriendLock を削除できます。決意の強い所有者を打ち負かすようには設計されていません。それは、意図的かつ目に見えるでの洞窟の侵入を、軽率なタップではなく、一緒にオプトインした人々の間で責任を負わせることです。真の強制が必要な場合は、別の (デバイス所有者) 製品が必要です。 完全な制限事項については、→

01 — セキュリティ モデル

ロックされた携帯電話に秘密が保持されることはありません。

単純な「ロックされた携帯電話の認証」設計は壊れています。コードを verifyできるものはすべて、を生成することもできます。 FriendLock は、TOTP シークレットを承認者の電話とバックエンドにのみ保持します。フローをトレースするパスを選択します:

ロックされた電話 ·
は保護されたアプリを開きます
AccessibilityService がアプリを検出し、WindowManager がオーバーレイ ロック画面を描画します。
コード パス
承認者の認証システムから読み取った 6 桁の数字を入力します。
承認
「承認をリクエスト」をタップします。コードは必要ありません。
オーバーレイは、サーバーによって作成された付与でのみ非表示になり、生のプッシュ ペイロードでは非表示になりません。
FIREBASE
はシークレットを保持し、付与をミントします
verifyOtp()
保存されたシークレットから TOTP を再計算します。有効?タイムボックス付きの助成金を作成します。
requestUnlock()
unlock_requestプッシュをペアになっているすべての承認者にルーティングします。
approveUnlock()
承認されたら、助成金を作成 → unlock_approvedを A に押し戻します。
シークレットはサーバー側 + B に残ります。A は決して読み取ることができませんそれ。
APPROVER · B
親/友人の電話
AUTHENTICATOR
Google Authenticator のように、ペアリングされたデバイスごとに 6 桁のライブ コードを表示します。
通知
実行可能なプッシュを取得 → 承認(または拒否) をタップします。
TOTP シークレットを保持します。データがない場合は、通話中にコードを読み上げることができます。

安全な理由:ロックされた携帯電話は入力した内容のみを転送し、入力された内容のみを信頼しますサーバーはサインバックします。ロックされたデバイスに完全にアクセスできても、将来のコードを取得することはできません。コードは、ペアリングしたユーザーと一緒に存在します。

コード

6 桁のフォールバック

RFC 6238 TOTP、verifyOtpを介してサーバー側で検証されています。承認者が寝ているときでも機能します。コードを手元に用意しておけば大丈夫です。

プッシュ

タップして承認

FCM 経由のリモート ワンタップ ロック解除。ロックされた携帯電話は、許可が得られると自動的にロックが解除されます。入力する必要はありません。

オフライン

声に出して読んでください

データ接続がありませんか?認証コードはわずか 6 桁です。電話で読み取ります。ベルトとサスペンダー。

A11Y

音声フィードバック

本物の TTS アクセシビリティ レイヤーは、ロック状態を通知します。これ自体は便利であり、FriendLock が真のアクセシビリティ ツールである理由もわかります。

02 — セットアップ

1 つのビルド、3 つの電話、2 つの役割。

役割はペアリングごとにあるため、どこでも同じアプリが実行されます。典型的なテスト: あなたの携帯電話とエミュレータを lockedデバイスとして、親の携帯電話を approverとして、次にそれを逆にして、ペアリングが双方向であることを証明します。

すべて
01

インストールしてサインイン

最初の起動時に、各電話は匿名でサインインし、プッシュ トークンを登録します。メールアドレスもパスワードもアカウントもありません。

ロック済み
02

権限を付与

ウィザードは、アクセシビリティ、他のアプリの上に表示、使用状況アクセス、通知、バッテリー最適化オフの各項目をディープリンクします。

承認者
03

QR でペアリング

承認者が ペア → スキャンを開きます。ロックされた携帯電話には QR が表示されます。スキャンしてください。承認者の認証システムには、その電話のライブ コードが表示されます。

ロック済み
04

アプリを選択

保護するアプリ (Chrome、YouTube、ゲームなど) を選択し、保護をオンにします。終わり。

ロック済み
05

ロックされたアプリを開きます

オーバーレイが表示されます。 6 桁のコードを入力し、またはをタップし、リクエスト承認をタップして、承認者のタップを待ちます。デフォルトの許可: 5 分。

SWAP
06

役割を逆にする

親をロックされた携帯電話にし、自分の携帯電話から承認します。ペアリングされたデバイスが他のデバイスを承認できることを確認します。

Pair your devicesSTEP 3 / 3Show my codeScan a codeShow your code onone phone — scan itfrom the other tolink them.ready to pair
Approval codesShare a code or tap approve to unlock.DEVICES YOU CAN UNLOCKMum's GalaxyUNLOCK CODE419 27330Alex's PixelUNLOCK CODE882 14030
03 — 正直な制限

FriendLock でできないこと。

驚かれるよりも信頼していただきたいと思います。 FriendLock を使用すると、visibleの改ざんが可能になりますが、不可能ではありません。

所有者は敵です
  • セーフモード強制停止(設定 → アプリ)、 ADBおよび 出荷時設定へのリセットはすべて、通常の携帯電話では無効になります。
  • 真の強制には、Device-Ownerプロビジョニングが必要です。つまり、1 回限りの工場出荷時設定へのリセット登録です。それは将来の「ハードコア」層です。
  • iOSはピア強制ロックをまったく実行できません。
実際の携帯電話の信頼性
  • 攻撃的な OEM バッテリー キラー (Xiaomi / Samsung / Oppo / Vivo) により、バックグラウンド サービスがフリーズする可能性があります。
  • ウィザードはバッテリー最適化の除外を要求しますが、システム更新後に サイレントにを元に戻すことができます。
  • プッシュには遅延保証がありません。そのため、手動の コード パスがフォールバックとして常に提供されます
正しい方法で使用してください
  • FriendLock は、相互同意に基づいてペアリングした人々の間の 自己制限 / デジタル ウェルビーイングです。
  • これは、他人の携帯電話を密かに監視または制御するための ではなく、です。これはストーカーウェアであり、私たちが作成したものではありません。
  • ペアリングは両方の電話機で表示され、常に双方向です。
ロードマップ上 (v2)
  • Ed25519 は完全オフライン検証の承認に署名しました。
  • デバイス所有者の「ハードコア」施行層。
  • アンチリプレイトークンとサーバーアンカーのフェイルクローズ状態のペア。
04 — よくある質問

率直な答えです。

はい、通常の電話では可能です。 FriendLock はケージではなくコミットメントデバイスです。 「すぐに諦める」ということを、意図的で目に見える行為に変えます。厳格な強制が必要な場合は、ロードマップにあるデバイス所有者のプロビジョニングが必要です。
いいえ。TOTP シークレットは承認者の電話と Firebase バックエンドにのみ存在します。ロックされた電話機は、入力されたコードを verifyOtpに転送し、サーバーがサインバックするタイムボックス許可のみを信頼します。コード自体を生成することはできません。
承認者の認証システムには、通常の電話で読み上げることができるライブ 6 桁のコードが表示されます。コード パスは、プッシュのフォールバックとして常に使用できます。
いいえ。ペアリングは相互かつ合意の上で行われます。両方のデバイスが関係を認識し、どちらかがもう一方を承認できます。 FriendLock は、一緒にオプトインする人々の間の自己制限と説明責任を目的として構築されており、決して秘密の制御を目的としていません。
いいえ。各デバイスは初回起動時に匿名でサインインします。電子メール、パスワード、プロフィールはありません。承認をルーティングするために使用される安定したデバイス ID だけです。
いいえ。iOS では、FriendLock が依存するピア強制アプリ ロック モデルが許可されていないため、Android のみです。
design.sayne.friendlock · android

あなたの善意を閉じ込めてください。

信頼できる人とペアになり、鍵を渡し、反射的にではなく「あと 5 分だけ」会話を始めましょう。

無料 · アカウントなし · 匿名認証 · Android 8 以降が必要