From 96d7924643585390caf12eb517740329b8a28b24 Mon Sep 17 00:00:00 2001 From: Isaac Matthews Date: Mon, 10 Jul 2023 16:09:16 +0100 Subject: [PATCH] Enhancement 101 for cryptography package requirements Signed-off-by: Isaac Matthews --- 101_cryptography_requirements.md | 175 +++++++++++++++++++++++++++++++ 1 file changed, 175 insertions(+) create mode 100644 101_cryptography_requirements.md diff --git a/101_cryptography_requirements.md b/101_cryptography_requirements.md new file mode 100644 index 0000000..45f836d --- /dev/null +++ b/101_cryptography_requirements.md @@ -0,0 +1,175 @@ +# enhancement-101: Update cryptography package requirement to support RSA-PSS + + +- [Release Signoff Checklist](#release-signoff-checklist) +- [Summary](#summary) +- [Motivation](#motivation) + - [Goals](#goals) + - [Non-Goals](#non-goals) +- [Proposal](#proposal) + - [User Stories (optional)](#user-stories-optional) + - [Story 1](#story-1) + - [Story 2](#story-2) + - [Notes/Constraints/Caveats (optional)](#notesconstraintscaveats-optional) + - [Risks and Mitigations](#risks-and-mitigations) +- [Design Details](#design-details) + - [Test Plan](#test-plan) + - [Upgrade / Downgrade Strategy](#upgrade--downgrade-strategy) +- [Drawbacks](#drawbacks) +- [Alternatives](#alternatives) +- [Infrastructure Needed (optional)](#infrastructure-needed-optional) + + +## Release Signoff Checklist + + + +- [ ] Enhancement issue in release milestone, which links to pull request in [keylime/enhancements] +- [ ] Core members have approved the issue with the label `implementable` +- [ ] Design details are appropriately documented +- [ ] Test plan is in place +- [ ] User-facing documentation has been created in [keylime/keylime-docs] + + +## Summary + +In order to support IDevID and IAK within Keylime we must enable the use of RSA-PSS [1]. In order to be able to verify RSA-PSS signatures, the salt length needs to be extracted from the signature. This should be done using the AUTO attribute for salt_length, which was added to the cryptography package in version 37.0.0 [2] + +[1] TPM 2.0 Keys for Device Identity and Attestation https://trustedcomputinggroup.org/wp-content/uploads/TPM-2p0-Keys-for-Device-Identity-and-Attestation_v1_r12_pub10082021.pdf +[2] PSS signature scheme in the cyptography library https://cryptography.io/en/latest/hazmat/primitives/asymmetric/rsa/#cryptography.hazmat.primitives.asymmetric.padding.PSS + +## Motivation + +Enable RSA-PSS signature scheme verification in Keylime to enable compatibility with IAKs and IDevIDs. + +### Goals + +Require cryptogrraphy >= 37.0.0 + +### Non-Goals + + + +## Proposal + +Require cryptogrraphy >= 37.0.0 + +### User Stories (optional) + + + +#### Story 1 + +#### Story 2 + +### Notes/Constraints/Caveats (optional) + + + +### Risks and Mitigations + + + +## Design Details + + + +### Test Plan + + + +### Upgrade / Downgrade Strategy + + + +### Dependencie requirements + + + +## Drawbacks + + + +## Alternatives + + + +## Infrastructure Needed (optional) + +