Does anyone know how the plain text CEK is cached in the memory? Is it stored as a SecureString? Can the key be stolen using a memory dump?
Asked
Active
Viewed 477 times
1 Answers
1
To Clarify: Always Encrypted assumes that the client is trusted and provides a guarantee that plain text CEK is only ever cached in the trusted client memory. I have explained the security guarantee provided by Always Encrypted briefly here
Plain text CEK is stored in the trusted client memory as a byte[] and not Secure String. The key can be stolen by getting the memory dump of a trusted client machine.
Note, that the keys cannot be stolen by taking a memory dump of SQL Server.
If you can elaborate on your threat model and describe the scenario you want to protect against I can provide some suggestions.

Community
- 1
- 1

Nikhil Vithlani - Microsoft
- 797
- 5
- 13
-
Thanks Nikhil. Sorry for the delay replying you. One of the requirements from our client was that the encryption key must not be stored as plain text in the memory other than when performing encryption/decryption operations. We are in the middle of testing and measuring the performance impact of setting the cache TTL = 0. – ozstudent May 08 '17 at 04:33