MailerId process involves three parties:
- Identity provider (identity service)
- User of an identity service
- Relying party, to who user wants to prove her identity
In the first stage, provisioning stage, User generates a signing key pair, logs into the service, and asks Identity Provider to make (provision) a certificate for his public key.
User's certificate can be used till its expiration. Therefore, provisioning step does not need to be repeated for a while (usually a few hours).
User's login in MailerId is done via Public Key Login (PKL) process. PKL does not require having a browser, removing BrowserID's vulnerable part.
With a provisioned certificate for his signing key, user can sign his other public key. For example, ASMail introductory key should be signed with MailerId key.
When Alice (relying party) has to verify a key that is claimed to be for [email protected]
, the following steps are taken:
- DNS record for
montague.it
is checked for a location of MailerId providing service. - Provider's root certificate is retrieved from service location with a request that is the same for all relying parties. Such request does not contain neither information about the user, nor about relying party, in a spirit of POLA.
- Alice checks complete certificate chain of signatures/certificates.
There is a MailerId login sequence similar to that in BrowseId.
Docs are work in progress. For now we can point to docs-like definitions.
Together with protocol definition we will also specify actual tests, like these ones, giving a tool to check implementations of MailerId service.