Skip to content

Commit 55860da

Browse files
authored
Update garner.md
1 parent f5c1979 commit 55860da

1 file changed

Lines changed: 16 additions & 7 deletions

File tree

_pages/garner.md

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,30 +16,39 @@ sidebar:
1616

1717
## Overview
1818

19-
A Tor endpoint for self-sovereign identity. It serves static files over HTTP to allow the retrieval of authenticated identity documents.
19+
A developer tool that provides a Tor endpoint for self-sovereign identity. It serves static files over HTTP to allow the retrieval of authenticated identity documents.
2020

2121
## Why is Garner Important?
2222

23-
Garner serves self-sovereign identity documents. It has four major advantages over use of `HTTPS` or even bare `tor`.
23+
Garner serves self-sovereign identity documents. It has five major advantages over use of `HTTPS` or even bare `tor`.
2424

2525
**Self-Sovereignty:** The ultimate goal of Garner is self-sovereignty. [XIDs](/xid/) allow users to have a truly self-sovereign identity that they can issue, hold, and redact as they see fit. Garner offers the next step, because it allows them to also serve their own identity documents in a self-sovereign way.
2626

27-
**Accessibility:** All that you need to do to run Garner is to generate a keypair and start up the server. This is a huge accessibility advance over HTML, which requires the setup of complex Apache config files and the acquisition of a certificate, all of which will be beyond the average user.
27+
**Accessibility:** Garner is easy to install: it's just a cargo install. It's also easy to run: there are just three commands, one to generate a keypair, one to start a server, and one for a remote user to get your content. This is a huge accessibility advance over HTML, which requires the setup of complex Apache config files and the acquisition of a certificate, all of which will be beyond the average user.
2828

2929
**Privacy:** Because Garner runs across the Tor network, everything is private. Your identity serving address is hidden (protecting any pseudonymous identities) and the requester's address is hidden. Perhaps most importantly, this makes the identity documents served through Garner censorship-resistance. As long as Tor is available, no attacker can prevent you from serving them or the requester from asking for them.
3030

31-
**Authentication:** Garner builts its Tor address from the private key you supply, which means that your running a Garner server (which other people connect to with the corresponding public key) implicitly verifies your control of that private key. This is very powerful authentication, because it's live: you controlled the private key when the server was started. Not only does this avoid the need for external dependencies like DNS or a Certificate Authority (CA), but it also steps around situations where a private key is stale (due to loss or rotation).
31+
**Authentication:** Garner builds its Tor address from the private key you supply, which means that your running a Garner server (which other people connect to with the corresponding public key) implicitly offers live proof of key control. This is very powerful authentication: remote users know that you controlled the private key when the server was started. Not only does this avoid the need for external dependencies like DNS or a Certificate Authority (CA), but it also protects from stale-signature and post-compromise replay attacks.
32+
33+
**Security:** Garner is purposefully very constrained. It is not a general-purpose web-server, but only a limited identity-document server. This is an intentional design to minimize its attack surface. It was also built in close coordination with Tor technology, through use of the [official Arti crate](https://gitlab.torproject.org/tpo/core/arti/), which should also improve its security level.
3234

3335
## How Does Garner Work?
3436

3537
A user runs the [Garner CLI](https://github.com/BlockchainCommons/garner-rust) to create a keypair. They distribute the public key to people who they want to send identity documents to and keep the private key safe. They then use the private key to start up the Garner server, which generates a deterministic address based on the key. Users with the public key can then use their own version of Garner to access that server with the public key (or with the deterministic address once they know it). This allows them to download identity documents from the server that are implicitly authenticated and verified as belonging to the holder of the private key.
3638

37-
This allows the pseudonymous, censorship-resistant, self-sovereign distribution of identity documents. Its primary use case is serving [Gordian Envelope](https://developer.blockchaincommons.com/envelope/), including [XIDs](https://developer.blockchaincommons.com/xid/) and [Gordian Clubs](https://developer.blockchaincommons.com/clubs/). However, it can distribute any type of identity document including W3C DID documents and VC Controller documents.
38-
39-
Garner is purposefully very constrained. It is not a general-purpose web-server, but only a limited identity-document server. This is an intentional design to minimize its attack surface.
39+
This allows the pseudonymous, censorship-resistant, self-sovereign distribution of identity documents. Its primary use case is serving [Gordian Envelope](https://developer.blockchaincommons.com/envelope/), including [XIDs](https://developer.blockchaincommons.com/xid/) and [Gordian Clubs](https://developer.blockchaincommons.com/clubs/). However, it can distribute any type of identity document including W3C DID documents, Verifiable Credentials, VC Controller documents, or any other sort of signed content.
4040

4141
## Garner Links
4242

4343
**Software:**
4444

4545
* [**garner-cli**](https://github.com/BlockchainCommons/garner-rust?tab=readme-ov-file)
46+
47+
## Related Technology
48+
49+
* [**"The Exodus Protocol"**](https://www.blockchaincommons.com/musings/musings-exodus-protocol/) (Musings)
50+
* [**Hubert**](https://developer.blockchaincommons.com/hubert/)
51+
52+
## Related Use Cases
53+
54+
* [CryptFinger](https://github.com/BlockchainCommons/developer-web-site/blob/master/_pages/envelope-usecases-data.md#part-one-public-cryptfinger) (GitHub, out-of-date)

0 commit comments

Comments
 (0)