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

Add signature validation for Athenz Domain custom resource #23

Open
mcieplak opened this issue Mar 20, 2021 · 0 comments
Open

Add signature validation for Athenz Domain custom resource #23

mcieplak opened this issue Mar 20, 2021 · 0 comments
Labels
enhancement HackTogether For Yahoo Hack Together event

Comments

@mcieplak
Copy link
Contributor

Please describe the problem that you are trying to solve
When the auth webhook is receiving an add or update event for the Athenz Domain custom resource, it should verify the signature of the domain.

Describe the solution you'd like
When the auth webhook receives an add or update event for the Athenz Domain, it should extract the JWS Domain from the Athenz Domain Status field and then verify the signature of the JWS Domain object before calling the parseData function. A sample JWS domain object is shown below.

{
  "payload": "Zm9vYmFyCg==.....",
  "header": {
    "keyid": "zms.key.3.0"
  },
  "signature": "YmFyZm9vCg==...",
  "protected": "YmFyCg==..."
}

As can be seen above, the object consists of the payload, signature, keyid, and the protected fields. Before we can cast the payload into a domain object, we must verify the payload using the keyid specified. The steps are shown below.

Use the Athenz ZMS client GetPublicKeyEntry function to fetch the keyid specified.

  1. Use the zmssvctoken ybase64 DecodeString functionality to decode the key response.
  2. Use a jws library to verify the payload against the signature field using the public key fetched from ZMS.

Additional context
More context can be found in this issue which is also a prerequisite to complete this one.

@mcieplak mcieplak added enhancement HackTogether For Yahoo Hack Together event labels Mar 20, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement HackTogether For Yahoo Hack Together event
Projects
None yet
Development

No branches or pull requests

1 participant