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

Support Re-Key Operation in AwsCrypto #76

Open
ngbalk opened this issue Sep 28, 2018 · 1 comment
Open

Support Re-Key Operation in AwsCrypto #76

ngbalk opened this issue Sep 28, 2018 · 1 comment

Comments

@ngbalk
Copy link

ngbalk commented Sep 28, 2018

For scenarios like key-rotation, I think it would be very useful to support a re-keying operation, where we decrypt the data key using one master key, and then re-encrypt with another master key. This also leverages the convenient envelope structure of the encrypted payload. I've noticed this is supported using the KMS Client (re-keying happens on the server side in that case), but feels like it should also exist in the SDK as well!

Thoughts?

Nick

CC: @Walliee

@mattsb42-aws
Copy link
Member

Hi @ngbalk

TLDR: Yes, this is something we have looked into. Yes, we agree that it would be useful. No, we don't currently have a time by which we expect to add it.

The general problem of updating the header without re-encrypting the message is something that we have looked at in the past, as there are a variety of interesting capabilities this would give us (mainly around adding/removing master keys).

One problem with implementing this is that with the current signature schemes used, we would still need to read the entire ciphertext, even if we wouldn't need to re-encrypt it. This is a specific manifestation of a more general problem we have been looking at for different signature schemes that would allow us to modify part of the message without having to process the entire message (ex: changing the contents of one frame). This is something that we are looking at, but we do not have any estimated timeline for when it might be available.

There is also the concern of how to handle master key authorization when multiple master keys are present in a ciphertext message, so as to not lose any authorization promises made by any of the master keys. This is something that we will need to consider before implementing this, but should not require any fundamental additions to the specification, as the partial updates will.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants