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

Steps toward an RFC 9241 HTTP Message Signatures implementation #109

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

nickstenning
Copy link
Member

We want to use request signing to authenticate service-to-service traffic within Replicate. Request signing is an attractive option for a number of reasons. Two important ones:

  1. we authenticate individual requests, not a communication channel shared between many requests (looking at you, mTLS)
  2. we have access to authentication data, signature parameters, etc., at the HTTP layer, which makes enforcing per-endpoint requirements much easier

This commit starts to lay the groundwork for an implementation of HTTP Message Signatures in compliance with RFC 9241. This is by no means a complete implementation of the spec, but it should already cover almost everything needed for deployment at Replicate.

Notably, there is currently no support for signing responses, only requests.

Currently only signing is implemented. Verification code will initially only be needed in Python, although we'll likely want to add it here so we can more effectively test this.

We want to use request signing to authenticate service-to-service
traffic within Replicate. Request signing is an attractive option for a
number of reasons. Two important ones:

1. we authenticate individual requests, not a communication channel
   shared between many requests (looking at you, mTLS)
2. we have access to authentication data, signature parameters, etc., at
   the HTTP layer, which makes enforcing per-endpoint requirements much
   easier

This commit starts to lay the groundwork for an implementation of HTTP
Message Signatures in compliance with RFC 9241. This is by no means a
complete implementation of the spec, but it should already cover almost
everything needed for deployment at Replicate.

Notably, there is currently no support for signing responses, only
requests.

Currently only signing is implemented. Verification code will initially
only be needed in Python, although we'll likely want to add it here so
we can more effectively test this.
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

Successfully merging this pull request may close these issues.

1 participant