Group: GNU Social P2P/Keys

From LibrePlanet
< Group:GNU Social P2P
Revision as of 13:01, 13 June 2010 by Teddks (talk | contribs) (User Keys: added data keys section)
Jump to: navigation, search

Keys and Identity in GNU Social


User Keys

The fundamental unit of user identity in GNU Social will be a standard OpenPGP public key. Identity will be proved by correctly signing challenges with the key, and privacy can be guaranteed by using these keys for end-to-end encryption.

Specifically, any user wishing to use GNU Social must configure their UI with the public key ID from their user keyring they would like to use as their personal key. If they do not have a key, the UI should generate one for them.

To set a privacy constraint on a given user object, that object should be encrypted to the user keys of all users to whom the *owner* of that object wishes to share the data. This ensures that only those users have access to those objects, presuming that the owner's trust in those users is well-placed.

Data Keys

These are symmetric keys with which objects in the GNU Social datastore are encrypted. These keys are encrypted with user keys to add users to access lists for private data objects.

Core keys

Core keys are RSA keys used to identify a core in the long term. These should be verified through the Web of Trust to determine authenticity.

In a GNU Social packet, inter-core routing information is encrypted to the Core key.

Transport Keys

Some transports may use their own keys. These must be rotated at least once every 24 hours, and presented to each connection signed with the Core key. The key type and method of presentation is left entirely to the transport.

Resources