diff --git a/changes/2025-01-16_key-store-mitigate-update-race/background.md b/changes/2025-01-16_key-store-mitigate-update-race/background.md index 4ec3da8b..2ae0e647 100644 --- a/changes/2025-01-16_key-store-mitigate-update-race/background.md +++ b/changes/2025-01-16_key-store-mitigate-update-race/background.md @@ -62,7 +62,7 @@ We will mitigate this via an Optimistic Lock on the cipher-text. All writes to ACTIVE, except those by `CreateKey`, -would include a condition express of +would include a condition expression of `attribute_exists(branch-key-id) AND enc = `, as [expressed in DynamoDB Syntax](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.OperatorsAndFunctions.html). @@ -74,7 +74,7 @@ as [expressed in DynamoDB Syntax](https://docs.aws.amazon.com/amazondynamodb/lat - the Logical Key Store Name `enc` contains the Auth Tag from -the AES-GCM operation execute by KMS. +the AES-GCM operation executed by KMS. Thus, by asserting `enc` has not changed, the Key Store asserts that nothing has changed! diff --git a/framework/key-store/key-storage.md b/framework/key-store/key-storage.md index 1e5cc9a4..5640c877 100644 --- a/framework/key-store/key-storage.md +++ b/framework/key-store/key-storage.md @@ -71,8 +71,8 @@ the UTF8 Encoded value of the version of the branch key. A structure that holds two related [EncryptedHierarchicalKeys](#encryptedhierarchicalkey): -- Item: an [EncryptedHierarchicalKey](#encryptedhierarchicalkey) that will be written -- Old: an [EncryptedHierarchicalKey](#encryptedhierarchicalkey) that was read and is presumed to be the currently persisted item that will be replaced by `Item`. +- Item: the [EncryptedHierarchicalKey](#encryptedhierarchicalkey) that will be written +- Old: the [EncryptedHierarchicalKey](#encryptedhierarchicalkey) that was read and is presumed to be the currently persisted item that will be replaced by `Item`. ## Interface