-
Notifications
You must be signed in to change notification settings - Fork 232
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
IPNS Key Revocation #219
Comments
A max record sounds reasonable. We could even include data as some form of less secure error message (keys are often revoked even when they're not totally broken). Note: IPNS needs to be reworked anyways. The way we do signatures is technically not broken due to dumb luck. See ipfs/notes#249. |
Something I'd like to see in revocation spec is ability to point at a new key, to enable seamless and automated rotation of keys. To keep things simple, revocation record would point at a new key. Thanks to |
@lidel I'd be nervous about any sort of data being in a revocation record. Here's a scenario that should illustrate why no data is a more robust approach:
This sequence of events basically makes key rotation infeasible. There are some alternatives, but they tend to either require significant changes to IPNS or are brittle. Some examples include:
I wouldn't necessarily feel bad about adding a "hint" to be followed by people so they could make their own decisions about what "the next key" should be. However, this also seems like something that could be dealt with at the application layer. Note about the multiple writers (whether many or two) solutionsBoth of the above schemes are potentially susceptible to various network poisoning/DoS attacks where Bob chases out of the network the records Unfortunately, this type of attack may already be present in IPNS as a form of rollback-attack (where Bob tries to make Charlie see an old version of the data pointed at by |
@daviddias Any thoughts here on revocation? The suggestion to set Basically it seems like the only downside of doing this is that people might assume IPNS revocation is as robust as signatures are which isn't true, however in non-eclipsing scenarios it does get the job done. |
There is currently no scheme in place for revoking IPNS Keys. Revocation is important since IPNS security relies on the security of an underlying asymmetric key. However, what happens when those keys are deemed no longer secure (e.g. RSA-1024 no longer deemed secure, discovered bug in RNG used to generate keys, laptop stolen...).
One scheme that's pretty easy to implement is reserving the sequence number MaxUInt64 as indicating that an IPNS record has been revoked. It's basically implied anyway because you cannot publish updates after sequence number MaxUInt64, however this would embed in the spec that we should return an error and not the data if the record has been revoked. There are also other potential options we could explore if we're interested.
@lidel @hugomrdias @Stebalien Thoughts?
The text was updated successfully, but these errors were encountered: