-
Notifications
You must be signed in to change notification settings - Fork 5
UCAN keymanagment #3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
vasco-santos
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for putting this together @Gozala
Did not have much time yet to think about this, but my initial thoughts would be more towards the Secure supreme key strategy. I would see services having a owner, which would be dotstorage admin
UCAN keypair management.md
Outdated
| Additionally cross service interaction e.g. service `did:key:zUpload` invoking `access/resolve` capability on service `did:key:zAccess` implies that: | ||
|
|
||
| 1. `did:key:zAccess` needs to issue UCAN that delagets "access/resolve" to `did:key:zUpload`. | ||
| 2. `did:key:zUpload` need to keep delegated UCAN around in order to invoke `access/reslove`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| 2. `did:key:zUpload` need to keep delegated UCAN around in order to invoke `access/reslove`. | |
| 2. `did:key:zUpload` needs to keep delegated UCAN around in order to invoke `access/reslove`. |
hugomrdias
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i like the secure supreme key model and it fit well with my idea of having an UCAN worker in front of all the other workers so we dont replicate ucan logic everywhere.
Co-authored-by: Vasco Santos <santos.vasco10@gmail.com> Co-authored-by: Hugo Dias <hugomrdias@gmail.com>
|
@mikeal @hugomrdias I have realized that there is a problem with the idea of having a static DID only for the routing purposes. More specifically we have been going under assumption that a hardware "service key" will simply delegate it's capabilities to "service provider" actor who's keys will be rotating frequently. However doing this would prevent "service provider" from deriving capability (from received invocation) and delegating it to a different actor, because invocation audience will be "service key" not the "service provider". This is problematic because "store/*" provider already derives "identity/resolve" from "store/add" in order resolve an account for the did car is added to. We could go different route and delegate
Unfortunately I don't currently have solution to offer. Pref-light request to resolve provider DID had been offered previously which I suppose will work, but it has problems of it's own:
It is also worth considering that if we rotate keys every 24H this would require engaging that hardware "service key" every 24h which in turn would be too frequent for human interaction and if automated it would create another attack surface.
|
|
Closing this in favor of #7 which share same general idea |
Also can be viewed as formatted document at https://hackmd.io/@gozala/ucan-keypair (comments are disabled as I'd like feedback here instead).