Social recovery for Internet Identity

I am reviving this discussion based on the latest Identity & Authentication Working Group meeting.

There are two main options that have been discussed with respect to assisted recovery, one above here in the thread; the other one is a proposal that originates from Dom and has been discussed informally in several venues. For clarity, I’ll give a high-level description of both, compare some pros and cons, and then I hope for a lively discussion :slight_smile:

Threshold recovery

The account holder chooses a group of n friends and a threshold t ≤ n such that any t of the n friends together can gain access to the account, but any subgroup of f < t cannot. Initially, the account holder sends one key share to each of the n friends, which are trusted to keep their share both secret and available. When the account holder needs to regain access to the account, they need to contact at least t of their n friends for help.

There are a few variants in how exactly one implements the scheme, but the core idea is always to use a Shamir Secret Sharing for the threshold property, sending one share to each friend. In the recovery phase, one can then either have each friend send back the share they received and reconstruct the key locally (a bit easier) or actually generate a threshold signature (potentially a bit more secure).

Identity-based recovery

The account holder stores a digest (ensuring the information itself does not leak) of personal information that can be validated from the person’s legal documents with the identity anchor, probably including data such as name, DOB, citizenship, and so forth. When the account holder needs to regain access to the account, they contact one of several service providers which validate the person’s identity and – probably in exchange for some payment – help the person regaining access.

Several details still have to be fixed: How are the service providers chosen, are they appointed by the NNS? (There probably have to be different SPs for different regions.) Can the account holder choose which service providers they trust, can they specify some policy (“at least 2 out of the following have to confirm”, or “only SPs that are actually provide services in Europe”, or …)?

Comparison

Advantages of threshold recovery:

  • Implementation in front-end only, no change to the backend required.
  • Probably productive much quicker, since identity-based recovery requires an ecosystem with identity verification services to be set up.

Advantages of identity-based recovery:

  • Easier to initially set up on the user side (simply enter some personal information compared to sending shares to a group of friends).
  • Threshold recovery (at least when implemented in front-end only) requires users to manage key material; making it secure with a group of non-technical people and with acceptable security probably involves sending paper (with printed seed phrases or QR codes) around.

And now …

The two options aren’t exclusive, btw., so we may very well decide on building a threshold-based variant (especially if front-end only) now and build an identity-based version later.

5 Likes