身元とメンバーシップ
bae にはどこにもアカウントシステムがありません。ライブラリの各人は coven のメンバーです。ランダムで恒久的なメンバー ID と、署名用と鍵の封印先用の 2 つの鍵ペアを持ち、それらはその人のすべてのデバイスで共有され、各デバイスの OS のキーリングに保持されます。デバイスは 1 つのインストールで、固有の ID を持ち、1 人のメンバーに属します。誰がライブラリに属するかは、クラウドホーム内の署名済みレコードの集合で、各メンバーのデバイスが検証します。サーバーは発行しません。この仕組みは coven のもので、このページでは bae がどう使うかを説明します。
メンバーシップレコード
このセクションへのリンククラウドホーム内のライブラリの全履歴は 1 つの番号付きの列で、すべてのデバイスが同じ順序で適用します。メンバーシップや設定の変更は、この列の中の管理エントリです。作成者の鍵で署名され、その直前の状態に照らして判定されるため、すべてのデバイスが独自に同じ結論に達します。エントリは作成者にその権限がある場合にだけ有効で、ライブラリには常に少なくとも 1 人の管理者が残ります。
デバイスが送るすべての変更は、このレコードに照合されます。現在のメンバーによる署名か、削除されていないデバイスからかを確認します。削除済みのデバイスやメンバー、追加されたことのない鍵、無効な署名からの変更は反映されません。プロバイダーはレコードを保存しますが、偽造はできません。
ロール
このセクションへのリンク管理者 と メンバー はどちらもライブラリを読み書きできます。coven はライブラリへの書き込みで権限を確認しないため、読み取り専用のロールは成り立ちません。管理者はさらに、人の招待と削除、ロールの変更、ライブラリ名の変更ができます。ライブラリにクラウドホームを与えた人が最初の管理者です。
| 操作 | 誰が |
|---|---|
| 人を招待する | 管理者 |
| デバイスを追加する | 本人が、新しいデバイスから、自分の復元コードで |
| デバイスを削除する | その持ち主、または任意の管理者 |
| 人を削除する | 管理者 |
| ライブラリ名を変更する | 管理者 |
人のプロフィール、評価、履歴、プレイリストは所有者行です。変更できるのはその人のデバイスだけなので、誰かの評価として表示されるものは、本当にその人が付けたものです。
自分のデバイスの追加
このセクションへのリンク復元コードはデバイスがその人のものであることを証明するため、承認は不要です。
- 新しいデバイスは、その人の別のデバイスが表示する QR コードのスキャン、Apple デバイスでは iCloud キーチェーン、または入力によってコードを受け取ります。
- ストレージに到達します。Dropbox と OneDrive ではその人自身のアカウントにサインインし、S3 では QR コードがコードの横に載せたその人のアクセスキーを使います。
- ライブラリを読み込み、コードの鍵が現在のメンバーのものであることを確認し、その鍵で署名したエントリで自分を新しいデバイスとして登録します。
その後に鍵が置き換えられたコードは失敗します。復元では常に新しいデバイスが作られ、別のインストールの未送信の編集は救われません。
人を招待する
このセクションへのリンク- 管理者は相手のプロバイダーアカウントを入力し、ロールを選びます。bae はライブラリのフォルダーをそのアカウントと共有するか、S3 ではその人用のアクセスキーを作成し、招待を表示します。招待は、ライブラリの場所、その人用に選ばれたメンバー ID、1 回限りのシークレット、ライブラリの現在の名前を含む QR コードです。作成から 1 日で期限切れになります。
- 相手のデバイスはそれをスキャンし、本人のアカウントにサインインし、鍵ペアを作り、参加リクエストをストレージに書き込みます。リクエストは招待のシークレットから導いた鍵で暗号化され、新しい鍵で署名されます。
- シークレットを持つ唯一のデバイスである管理者のデバイスがリクエストを表示し、管理者が承認します。
- 承認すると、すべてのストア鍵がその人の新しい封印鍵に向けて封印され、その後その人を受け入れるエントリが追加されます。
- 新しいデバイスは鍵を開き、ライブラリを読み込み、自分を登録し、入力された名前でその人のプロフィールを書き込みます。
招待を拒否するか、期限切れにすると、招待で与えたプロバイダーのアクセスが取り消されます。
デバイスや人の削除は管理エントリで、列の中でのその位置が履歴上の境界線になります。削除されたデバイスや人がそれ以降に送るものは反映されず、それ以前に届いたものは残ります。人を削除すると、その人のデバイスと非公開サークルも削除され、その人が持っていた鍵は、さらにデータが書き込まれる前に置き換えられます(暗号化 を参照)。ストレージへのアクセスを断つのはプロバイダー側の作業です。ライブラリを保持するアカウントのデバイスがフォルダーの共有を解除し、S3 ではその人のアクセスキーが削除されます。削除されたデバイスにすでに同期されたものは、そのデバイスに残ります。データを送信後に取り戻すことはできません。
復元コード
このセクションへのリンク復元コードは、メンバー ID と現在の秘密鍵ペア、ライブラリのストア ID、その保存場所を含みます。ストレージの認証情報、サインイントークン、ライブラリ名は決して含みません。必要なときに表示され、Apple プラットフォームでは自動的に iCloud キーチェーンに保存され、ライブラリそのものと同じだけ機密です。それを持ち、ストレージにアクセスできる人は、ライブラリにとってその人そのものです。すべてのデバイスとコードを失った人は、管理者が既存のメンバー ID に再招待でき、その人の鍵が置き換えられます。