Harden signed node authorization flow
This commit is contained in:
parent
27a79768e4
commit
1336fa38e8
9 changed files with 382 additions and 55 deletions
|
|
@ -282,11 +282,13 @@ and signs them with OpenSSH under `geth.keychain.v1@geth.local`. Both keys are
|
|||
required when owner setup options are used, so the node does not create unsigned
|
||||
owner statements by accident. `geth node list` shows the active reduced node
|
||||
view. `geth node rename` and `geth node revoke` record signed keychain
|
||||
operations and require `--signing-key`. `geth keychain sync <node>` pulls
|
||||
keychain operations and signatures from an imported peer over Iroh and imports
|
||||
only operations with a valid OpenSSH signature from a currently trusted admin key
|
||||
over the canonical payload. This is currently a pull-based signed operation log,
|
||||
not a CRDT or Keyhive-style convergent authority.
|
||||
operations and require `--signing-key`. Endpoint rotation is explicit:
|
||||
`geth node endpoint-add` and `geth node endpoint-revoke` record signed
|
||||
`NodeEndpointAdd` and `NodeEndpointRevoke` keychain operations. `geth keychain
|
||||
sync <node>` pulls keychain operations and signatures from an imported peer over
|
||||
Iroh and imports only operations with a valid OpenSSH signature from a currently
|
||||
trusted admin key over the canonical payload. This is currently a pull-based
|
||||
signed operation log, not a CRDT or Keyhive-style convergent authority.
|
||||
|
||||
New devices can use the node enrollment flow instead of hand-editing keychain
|
||||
state. `geth node enroll request` creates a canonical, agent-key-signed request
|
||||
|
|
@ -303,9 +305,11 @@ grants, revocations, groups, and `auth explain`. Auth operations reduce into a
|
|||
current permission view for resources, grants, groups, and bearer access. The
|
||||
library can explain direct and group grants. The daemon persists local auth
|
||||
grant/revoke operations and `geth auth explain` evaluates that local operation
|
||||
log. Enrollment approval and auth sync attach and verify OpenSSH admin
|
||||
signatures for replicated auth operations. Broader delegated authority and
|
||||
module enforcement are still future work.
|
||||
log. `geth node grant`, `geth node revoke-grant`, `geth auth grant`, and `geth
|
||||
auth revoke` require `--signing-key` in the CLI and store OpenSSH-signed auth
|
||||
operations. Enrollment approval uses the same signed auth operation path. Auth
|
||||
sync imports only auth operations signed by currently trusted admin keys.
|
||||
Broader delegated authority and module enforcement are still future work.
|
||||
|
||||
Capability evaluation supports exact matches plus explicit scoped forms. For KV,
|
||||
`kv.write_prefix:<prefix>` grants writes requested as `kv.write_key:<key>` only
|
||||
|
|
|
|||
Loading…
Reference in a new issue