Automattic / Automattic/gravatar

Feature Request: PGP Integration for Identity Verification

Open
#209 0 comments 4 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
361
Forks
125
PR merge metrics
No merged PRs in 30d

Description

## Description / Use Case
Integrate [PGP](https://en.wikipedia.org/wiki/Pretty_Good_Privacy) public keys into Gravatar profiles to enable cryptographic identity verification. This would allow users to prove ownership of their profile, enhancing trust and preventing impersonation. It would also turn Gravatar into a massive, easily searchable directory for PGP public keys, facilitating secure communication, much like [Keyoxide](https://docs.keyoxide.org).
## Proposed Solution
1. **Add Key**: Users add their PGP public key to their Gravatar profile.
2. **Verify Ownership**: Gravatar provides a unique text string for the user to sign with their corresponding private key.
3. **Confirm Signature**: The user submits the generated signature, which Gravatar's backend verifies.
4. **Display Proof**: Upon successful verification, the profile displays a "verified" badge, the key [fingerprint](https://en.wikipedia.org/wiki/Public_key_fingerprint), and a link to the public key, with this data also available via the Gravatar [API](https://en.gravatar.com/site/implement/).
## Alternatives
The main alternative is using separate services like [Keyoxide](https://docs.keyoxide.org). However, Gravatar's widespread integration offers a unique opportunity to bring this functionality to millions of users seamlessly. While protocols like [OAuth](https://oauth.net/) and [OIDC](https://openid.net/connect/) can verify account access, PGP provides a stronger, more portable cryptographic proof of identity.
## Additional Information
This feature is inspired by [Keyoxide](https://docs.keyoxide.org)'s successful implementation of PGP-based identity proofs. Adopting this model would evolve Gravatar from an avatar service into a fundamental tool for modern, [decentralized digital identity](https://en.wikipedia.org/wiki/Decentralized_identity).

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the Gravatar profile and API entry points mentioned in the issue, along with the backend flow for adding keys, verifying signatures, and exposing proof data. The issue names no files or tests, so first establish the relevant implementation boundaries. Done means users can add and verify a PGP key, and verified profiles and API responses show the specified proof details.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
api, cryptography, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.