-
Notifications
You must be signed in to change notification settings - Fork 841
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
[PM-115] Cipher key encryption update #2421
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How is performance when flinging through the cipher list?
As far as I see, the entire cipher list gets decrypted before shown to the user so the performance while flinging is the same as before. But yes, we should have a little bit more overhead while decrypting the whole vault ciphers. |
Ah ok, I was thinking this could provide some performance insight to adapter-driven content if/when we take that step. |
I think we can measure that and see how it would impact in such situation. However, if we take that route we should probably cache more things in order to have the smoothest UI/UX and refactor the code accordingly. I believe that if we paginate or lazy decrypt the ciphers as they appear it would have a really fast load time of the page but we need to think it carefully a preload/predecrypt ciphers so that flinging through the list doesn't get much affected by it |
…n that another approach will be taken
…yption (#2463) * PM-1690 added minimum server version restriction to cipher key encryption and also change the force key rotation flag * PM-1690 Updated min server version for new cipher encryption key and fixed configService registration * PM-1690 removed forcekeyrotation
…esting (this change should be reseted eventually)
….0 and disable new cipher key on local cipher creation
# Conflicts: # src/Core/Constants.cs # src/Core/Models/Response/CipherResponse.cs
No New Or Fixed Issues Found |
# Conflicts: # src/Core/Services/CipherService.cs # src/Core/Utilities/ServiceContainer.cs
Updated minimum encryption server version to 2023.9.0 so QA can test its behavior
…ersion to 2023.8.0 for testing purposes
…er encryption version to 2023.9.1
# Conflicts: # src/Core/Models/Domain/Cipher.cs # src/Core/Models/Domain/Login.cs
Type of change
Objective
The cipher will now have its own
Key
to encrypt/decrypt its content which will be encrypted using the master password or organization key.This needs server changes to work and clients changes to have the key assigned (given that for now the mobile client won't create the cipher key):
Code changes
Cipher: Added new properties for the key. Added logic to decrypt using the new
Key
if available, passing such key to the different item types. And updated it to not use hardcoded strings and usenameof()
.CipherService: Updated logic to encrypt the
Cipher
using the newKey
.Note: for now the logic of the new
Key
gets applied only if theKey
already exists on theCipher
. The creation of suchKey
locally will be enabled on a later release to avoid conflicts between clients.CipherData: Added new properties for the key.
CipherRequest, CipherResponse, CipherView: Added new properties for the key.
Attachment: Updated it to not use hardcoded strings and use
nameof()
and also added thekey
as a parameter to support the new approach.Card, Field, Identity, Login, LoginUri, PasswordHistory, SecureNote: Added the
key
as a parameter to support the new approach.Before you submit
dotnet format --verify-no-changes
) (required)