Nova Patents
CA2899014C

Policy enforcement with associated data

Abstract

Requests submitted to a computer system are evaluated for compliance with policy to ensure data security. Plaintext and associated data are used as inputs into a cipher to produce ciphertext. Whether a result of decrypting the ciphertext can be provided in response to a request is determined based at least in part on evaluation of a policy that itself is based at least in part on the associated data. Other policies include automatic rotation of keys to prevent keys from being used in enough operations to enable cryptographic attacks intended to determine the keys.

CA2899014C, drawing sheet 1
Sheet 1 of 29

Term

7.4 yearsleft in the term

Expires 7 February 2034.

  1. Priority
  2. Filed
  3. Granted
  4. Today
  5. Expires

42 claims: 30 independent, 12 dependent

  1. 1
    WHAT IS CLAIMED IS:1. A computer-implemented method for enforcing policy, comprising: under the control of one or more computer systems configured with executable instructions, using an authenticated encryption mode of a cipher to generate an authenticated ciphertext based at least in part on a key, a plaintext and associated data;associating a policy with the key, the policy specifying a value for the associated data for providing the plaintext;receiving, in connection with a request to decrypt a plaintext, a ciphertext, and purported associated data;determining, based at least in part on the purported associated data, whether the purported associated data matches the value from the associated data specified by the policy and whether a policy allows providing the plaintext in response to the request;and providing at least the plaintext in response to the request as a result of determining that the policy allows providing the plaintext.
  2. 3
    The computer-implemented method of claim I or 2, wherein:the method further comprises determining, based at least in part on the purported associated data and the key, whether the purported associated data is authentic;and determining whether the policy allows providing the plaintext in response to the request includes determining whether a value of the data verifiable with the ciphertext matches the value specified by the policy.
  3. 4
    The computer-implemented method of any one of claims 1 to 3, wherein:the ciphertext is an output of an authenticated encryption mode of a cipher, the output also including the message authentication code that is based at least in part on the data associated with the ciphertext;and the method further comprises determining, based at least in part on the message authentication code, whether data purporting to be associated with the ciphertext is authentic. CA 2899014 2017-08-29
  4. 5
    The computer-implemented method of any one of claims I to 4, wherein the ciphertext is further based at least in part on the data verifiable with the ciphertext and the key.
  5. 6
    The computer-implemented method of any one of claims I to 5, wherein the policy requires a characteristic of the request to match the data associated with the ciphertext for providing the plaintext to be allowable.
  6. 7
    The computer-implemented method of any one of claims 1 to 6, wherein the data verifiable with the ciphertext encodes the policy and determining whether the policy allows providing the plaintext includes obtaining the policy from the data verifiable with the ciphertext.
  7. 8
    The computer-implemented method of any one of claims I to 7, wherein the ciphertext encodes the policy and determining whether the policy allows providing the plaintext includes obtaining the policy from the ciphertext.
  8. 9
    The computer-implemented method of any one of claims 1 to 8, wherein the data verifiable with the ciphertext encodes one or more attributes and determining whether policy allows providing the plaintext includes checking whether the one or more attributes match attributes of the policy.
  9. 10
    The computer-implemented method of any one of claims I to 9, wherein the ciphertext encodes one or more attributes and determining whether policy allows providing the plaintext includes checking whether the one or more attributes match attributes of the policy.
  10. 11
    A computer system, comprising:one or more processors;and memory including instructions that, when executed by the one or more processors, cause the computer system to: receive a request to decrypt a ciphertext with purported associated data, the ciphertext having been generated using an authenticated encryption mode of a cipher to generate an authenticated ciphertext based at least in part on a key, a plaintext and associated data;CA 2899014 2017-08-29 determine, based at least in part on the purported associated data, whether the purported associated data matches a value for the associated data specified by a policy associated with the key, wherein the. policy allows a particular response to the request;enable the particular response to the request as a result of determining that the policy allows the particular response.
  11. 14
    The system of any one of claims 11 to 13, wherein the authentication information is a message authentication code generated based at least in part on a plaintext and particular information that, if not matched by the information associated with the request, will cause the policy to disallow the particular response.
  12. 15
    The system of any one of claims 11 to 14, wherein:the information associated with the request is generated based at least in part on particular information;and the authentication information indicates whether the particular information matches the information associated with the request.
  13. 16
    A computer-implemented method for enforcing policy, comprising:under the control of one or more computer systems configured with executable instructions, CA 2899014 2017-08-29 using an authenticated encryption mode of a cipher to generate an authenticated ciphertext based at least in part on a key, a plaintext, and associated data, the authenticated ciphertext including a message authentication code and a ciphertext, wherein the message authentication code is calculated using the plaintext and the associated data;associating a policy with the key, the policy specifying a value for the associated data, for providing the plaintext;receiving, in connection with a request to decrypt the plaintext, a ciphertext, a purported message authentication code, and a purported associated data;verifying that the purported messaged authentication code matches the message authentication code based at least in part on the received ciphertext and the purported associated data;as a result of verifying that the purported message authentication code matches the message authentication code, determining, based at least in part on the purported associated data, whether the purported associated data matches the value for the associated data specified by the policy;and providing the plaintext as a result of determining that the policy allows providing the plaintext, where the policy allows for providing the plaintext if the purported associated data matches the value for the associated data specified by the policy.
  14. 19
    A computer-implemented method for enforcing policy, comprising:under the control of one or more computer systems configured with executable instructions, receiving a request to decrypt a ciphertext, the ciphertext having been generated using an authenticated encryption mode of a cipher to generate an authenticated ciphertext based at least in part on a plaintext, a key, and associated data, the authenticated ciphertext including a message authentication code and the ciphertexL wherein the message authentication code is calculated using the plaintext and the associated data;CA 2899014 2017-08-29 as a result of verifying that the purported message authentication code matches the message authentication code based at least in part on the ciphertext and a purported associated data, determining, based at least in part on the purported associated data, whether the purported associated data matches a value for the associated data specified by a policy associated with the key, wherein the policy allows providing the plaintext in response to the request if the purported associated data matches the value for the associated data specified by the policy;and providing at least the plaintext in response to determining that the policy allows providing the plaintext.
  15. 23
    The computer-implemented method of any of claims 19 to 22, wherein the associated data encodes the policy and determining whether the policy allows providing the plaintext includes obtaining the policy from the associated data.
  16. 24
    The computer-implemented method of any of claims 19 to 23, wherein the associated data encodes one or more attributes and determining whether the policy allows providing the plaintext includes checking whether the one or more attributes match attributes of the policy.
  17. 25
    A computer system, comprising:one or more processors;and memory including instructions that, when executed by the one or more processors, cause the computer system to: CA 2899014 2017-08-29 receive a request to decrypt a ciphertext, the ciphertext having been generated using an authenticated encryption mode of a cipher to generate an authenticated ciphertext based at least in part on a plaintext, a key, and associated data, the authenticated ciphertext including a message authentication code and the ciphertext, wherein the message authentication code is calculated using the plaintext and the associated data;as a result of verifying that the purported message authentication code matches the message authentication code based at least in part on the ciphertext and a purported associated data, determine, based at least in part on the purported associated data, whether the purported associated data matches a value for the associated data specified by a policy associated with the key, wherein the policy allows providing the plaintext in response to the request if the purported associated data matches the value for the associated data specified by the policy;and provide at least the plaintext in response to determining that the policy allows providing the plaintext.
  18. 27
    The system of claims 25 or 26. wherein the policy is encoded in a structured extensible data format.
  19. 28
    The system of any of claims 25 to 27, wherein the cipher is generated using an advanced encryption standard cipher operated in either Galois/Counter Mode or cipher block chaining mode.
  20. 29
    A non-transitory computer-readable storage medium having stored thereon instructions that, when executed by one or more processors of a computer system, cause the computer system to:receive a request to decrypt a ciphertext, the ciphertext having been generated using an authenticated encryption mode of a cipher to generate an authenticated ciphertext based at least in part on a plaintext, a key, and associated data, the authenticated ciphertext including a message authentication CA 2899014 2017-08-29 code and the ciphertext, wherein the message authentication code is calculated using the plaintext and the associated data;verify that a purported message authentication code matches the message authentication code based at least in part on the ciphertext and a purported associated data;as a result of verifying that the purported message authentication code matches the message authentication code, determine, based at least in part on the purported associated data, whether the purported associated data matches a value for the associated data specified by a policy associated with the key, wherein they policy allows providing the plaintext in response to the request if the purported associated data matches the value for the associated data specified by the policy;and provide the plaintext in response to determining that the policy allows providing the plaintext.
  21. 32
    The non-transitory computer-readable storage medium of any of claims 29 to 31, wherein evaluating the policy is further based at least in part on additional information obtained in connection with the request.
  22. 33
    The non-transitory computer-readable storage medium of any of claims 29 to 32, wherein the other input policy further comprises a set of attributes encoded in a standardized data format.
  23. 34
    The non-transitory computer-readable storage medium of any of claims 29 to 33, wherein the associated data encodes the policy. CA 2899014 2017-08-29
  24. 35
    The computer-implemented method of any of claims 16 to 18, wherein the authenticated ciphertext is generated based at least in part a symmetric block cipher supporting the authenticated encryption mode.
  25. 36
    The computer-implemented method of any of claims 19 to 24, wherein the computer implemented method further comprises:providing the plaintext includes providing the ciphertext to a security module;and obtaining the plaintext from the security module.
  26. 37
    The system of any of claims 25 to 28, wherein providing at least the plaintext in response to determining that the policy allows providing the plaintext further comprises:providing the ciphertext to a security module;and obtaining the plaintext from the security module.
  27. 38
    The system of any of claims 25 to 28, wherein the system is hosted by a computing resource service provider.
  28. 40
    The system of any of claims 25 to 28, wherein the policy is associated with a customer.
  29. 41
    The system of any of claims 25 to 28, wherein verifying that the purported message authentication code further comprises verifying a submitted electronic signature included in the request.
  30. 42
    The non-transitory computer-readable storage medium of any of claims 29 to 34, wherein determining that the policy allows providing the plaintext further comprises verifying a submitted electronic signature included in the request is within a predetermined amount of time from a current time.
Independent claims30