ASP discoverability #4
Loading…
Reference in New Issue
There is no content yet.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may exist for a short time before cleaning up, in most cases it CANNOT be undone. Continue?
The issue
The current prototype of the Ariadne signature profile specification is notably lacking any method of discovering profiles outside of fetching via a raw fingerprint. This contrasts with the current openpgp method, which allows a user to just type an email into https://keyoxide.org and magically get a profile. Some form of simple discoverability such as email or domain would be nice to integrate with ASPs.
How it works now
Currently, we have openpgp key profiles, and openpgp signature profiles. Openpgp signature profiles have no discoverability whatsoever, you just have to rely on being sent or finding the signature text blob somewhere else. Openpgp key profiles currently can be discovered through HKP-compatible keyservers, such as hkps://keys.openpgp.org. Keyoxide-web currently uses hkps://keys.openpgp.org as a sensible default for searching for a key by email. Openpgp key profiles can also currently be discovered through Web Key Directory (WKD). This allows using the domain-part of an email, and asking it directly for the openpgp key. This is nicer than relying on a centralized keyserver, but also is not largely supported, unless someone hosts their own email.
Some ideas of my own
This issue is kind of just meant to get a discussion started around the best way to do discoverability, so below are some ideas of my own, based on how it previously worked and what I personally think it should feel like, but are in no way the single only best way to do it.
Search by email
ASPE servers are the ASP equivalent of an HKP server, which means they could also support searching for a profile by email just like HKP servers. An endpoint could be added to query one or more profiles that include the given email address. This does introduce some issues that need to be discussed however surrounding implementation:
Should there be an opt-in system for email discovery? It might be nice to be able to specify "no, this profile should only be discovered by a fingerprint" if someone wants to advertise their email with the profile but not the other way around
Email verification would likely be necessary if profiles are discoverable by emails, and because of this, how should it be implemented? Should the spec be specific (such as introducing an email verification endpoint) or should it just be left as a recommended implementation detail?
GET /.well-known/aspe/verify?token={token}
perhaps, or at least something of that variety).Search by domain
This has been talked about for a while (even before ASPs, #1), and could be nice to implement for ASPs. The idea is that someone could host their own profile on their own domain, without any need for an ASPE server or any other middleman. There are many ways this could be done, but I believe the simplest would be to support something along the lines of
GET /.well-known/aspe/id/default
. This could be easily served using a static filesystem or any reverse proxy, and would allow fetching a profile from a domain name. For example, I could entertyyy.me
into https://keyoxide.org, and it could make a request to https://tyyy.me/.well-known/aspe/id/default and parse the provided profile.