Skip to content
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

check values should be signatures #15

Open
BenGardiner opened this issue Feb 15, 2019 · 1 comment
Open

check values should be signatures #15

BenGardiner opened this issue Feb 15, 2019 · 1 comment
Milestone

Comments

@BenGardiner
Copy link
Member

As suggested by Jeremy Daily in review of the conceptual draft, the check values should be signatures and not just checksums

@BenGardiner
Copy link
Member Author

I agree with Jeremy, these should be signatures and not just checksums. Getting this going will require

  1. specifying a server secret, a signing algorithm (or negotiation) in the spec and requiring clients enforce validation checks
  2. on servers: creating a 'canonical' JSON payload, signing it and including the signature instead of the checksums
  3. 'reverse' of 2. in the clients.

As it turns out, getting a canonical form is non-trivial. See all the problems with JWT implementations as an an example: https://paragonie.com/blog/2017/03/jwt-json-web-tokens-is-bad-standard-that-everyone-should-avoid (and the notes and references in #4).

We shouldn't require things like in JWT lest we end up with implementations like it too. I think the same solution to JWT problems would apply here; we could use PASETO to sign the JSON payloads. paragonie/paseto#90

However, for now (in v1); we already have transport level security that includes integrity protections and we are furthermore requiring that all Open Telematics API clients perform certificate pinning.

More layers of defense would be better, yes. But for the time being I think the thing to do is delete the checks fields and add in some real signing of objects in later versions. I opened issue #32 to delete checks fields and I'll schedule this for 'Later'.

@BenGardiner BenGardiner added this to the Later milestone Feb 28, 2019
@BenGardiner BenGardiner added the attention wanted Extra attention is needed: opinions, questions, changes, anything label Feb 28, 2019
@BenGardiner BenGardiner removed the attention wanted Extra attention is needed: opinions, questions, changes, anything label Mar 4, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant