Open3

1PasswordがSSO/Passkeyサインインをどうやって実装してんのかメモ

okuokuokuoku

Credential Bundle

要は、鍵を "Credential Bundle" に格納している。このCredential Bundleはデバイス上の固有鍵(Device Key)で暗号化されるので、1Passwordのサーバーに侵入されても鍵が直接バレることはないという寸法。

Credential Bundleにはマスターパスワードやマスターキー(Secret Key, Account Key)ではなく、本来はそれらから生成されるAccount Unlock Key(AUK)が直接格納される。AUKは1Passwordのサーバーに格納された鍵データを復号するのに使用される。

1Password Security Design の用語解説:

Credential Bundle

A bundle containing a randomly generated SRP-𝑥 and Account Unlock Key (AUK), used to sign in to 1Password when signing in with Single sign-on (SSO). It is encrypted by the Device Key and stored on 1Password servers. 42–46, 68, 97, see also Device Key

暗号化されたCredential Bundleの配付

つっても暗号化されたCredential Bundleは1Passwordのサーバーに保持され、SSOなりPassKeyの認証が通ったタイミングで、暗号化された状態でデバイスに送信されることになる。

Credential Bundleはデバイス側で生成される 。 デバイスを最初に登録するときは、デバイス上の1PasswordアプリがAUK等の鍵データを導出、DeviceKeyで暗号化して1Passwordに送信する。

DeviceKeyは乱数で選ばれ、プラットフォーム毎の安全な方法で格納される(AndroidとかiOSにそういう仕組みがある)。

okuokuokuoku

CPaseとPAKE

2台目以降のデバイス登録ではCPase(PAKEの一種)が使われる。要はDH鍵共有に相当する処理で、Bluetoothのペアリングのように低エントロピの共通鍵を使って鍵共有を行う。

https://datatracker.ietf.org/doc/draft-irtf-cfrg-cpace/

デバイスに再度アカウントパスワードを入れるとかじゃダメなの。。? → 1台目が考えた(AUKの元になった)Secretとかは1Passwordには送信されていないため、2台目以降のセットアップには1台目から鍵そのものをコピーしてくる必要がある。

... って事は、PassKeyやSSOが有効なアカウントは1台目を亡くしたらどうしようもないの?という疑問が生じる。。明言されていないけど、たぶんそういう場合はRecovery Group(これもPDFに説明がある)で救うという想定と考えられる。

量子コンピューター耐性

IDに言及がある(quantum-annoying)。

9.9. Quantum computers

CPace is proven secure under the hardness of the strong computational Simultaneous Diffie-Hellmann (sSDH) and strong computational Diffie-Hellmann (sCDH) assumptions in the group G (as defined in [AHH21]). These assumptions are not expected to hold any longer when large-scale quantum computers (LSQC) are available. Still, even in case that LSQC emerge, it is reasonable to assume that discrete-logarithm computations will remain costly. CPace with ephemeral session id values sid forces the adversary to solve one computational Diffie- Hellman problem per password guess [ES21]. In this sense, using the wording suggested by Steve Thomas on the CFRG mailing list, CPace is "quantum-annoying".