Add manual signed peer card exchange
This commit is contained in:
parent
20c88af800
commit
1ab24631cd
14 changed files with 360 additions and 25 deletions
|
|
@ -42,14 +42,15 @@ and candidate-discovery mechanisms only. They do not grant trust, mutate
|
|||
authorization state, or make EndpointID knowledge sufficient for access.
|
||||
The current daemon can enable Iroh's local-network discovery service through
|
||||
`[iroh].local_discovery = true`, which is the default. This publishes and
|
||||
discovers Iroh node addressing. Signed geth peer-card payloads over LAN
|
||||
discovery remain separate future work.
|
||||
discovers Iroh node addressing. `geth peer export/import/list` supports manual
|
||||
exchange of signed peer cards as untrusted candidates. Automatic signed
|
||||
peer-card advertisement over LAN discovery remains separate future work.
|
||||
|
||||
Peer cards are the discovery payload. A peer card carries node ID, agent ID,
|
||||
endpoint candidates, timestamp, and signature metadata. The current scaffold
|
||||
stores peer cards as untrusted metadata in `peer_cards`; signature verification
|
||||
and trust reduction are future work. `auth explain` reports when a subject is
|
||||
only a discovered peer candidate and denies access.
|
||||
endpoint candidates, timestamp, signing public key, and an Ed25519 signature
|
||||
over a canonical payload. Imported peer cards are stored as untrusted metadata
|
||||
in `peer_cards`; trust reduction is future work. `auth explain` reports when a
|
||||
subject is only a discovered peer candidate and denies access.
|
||||
|
||||
The daemon starts this endpoint during `geth daemon run` and keeps it alive for
|
||||
the daemon lifetime. When endpoint startup succeeds, the Iroh EndpointID is
|
||||
|
|
|
|||
|
|
@ -96,10 +96,12 @@ geth-to-geth connections without granting trust from discovery alone.
|
|||
|
||||
- `[ ]` Signed peer-card LAN discovery payloads.
|
||||
Acceptance criteria:
|
||||
- The daemon can advertise and discover signed geth peer cards over LAN
|
||||
- `[x]` Manual `geth peer export/import/list` can exchange signed peer cards
|
||||
and store them as untrusted candidates.
|
||||
- `[ ]` The daemon can advertise and discover signed geth peer cards over LAN
|
||||
discovery.
|
||||
- LAN-discovered peer cards are stored only as untrusted peer candidates.
|
||||
- Discovered EndpointIDs do not grant module access without keychain/auth
|
||||
- `[x]` Imported peer cards are stored only as untrusted peer candidates.
|
||||
- `[x]` Discovered EndpointIDs do not grant module access without keychain/auth
|
||||
validation.
|
||||
|
||||
- `[x]` Protocol/router scaffold.
|
||||
|
|
@ -112,6 +114,8 @@ geth-to-geth connections without granting trust from discovery alone.
|
|||
Acceptance criteria:
|
||||
- A peer card contains node ID, agent ID, endpoint candidates, timestamp, and
|
||||
signature metadata.
|
||||
- Peer-card signatures cover deterministic canonical payloads and reject
|
||||
tampered endpoint candidates.
|
||||
- Peer cards are stored in `peer_cards`.
|
||||
- Invalid or unsigned peer cards do not update trust state.
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue