Hi NIkolay, Regarding system caches, rule of thumb here - do not use them. Keys should be stored near cache.
As far as password: 1) Oracle auto-login wallet  2) MySQL- password may be set inside configuration  I do not think that any kind of prompts are needed here out of the box. May be we could consider them in future, but at the moment it looks redundant to me.  https://docs.oracle.com/cd/E11882_01/network.112/e40393/asotrans.htm#CHDCCHBH  https://dev.mysql.com/doc/refman/5.7/en/keyring-encrypted-file-plugin.html On Mon, Apr 9, 2018 at 5:42 PM, Nikolay Izhikov <nizhi...@apache.org> wrote: > Hello, Vladimir. > > > 1) Why do you propose to store CEK in separate cache? > > All CEKs data should be available on all cluster nodes. > We want to use system cache to get data synchronization feature "for free". > > > We consider storing any metadata in system caches as antipattern from > our previous experience. > > Very interesting! > Can you share your experience? > I didn't know that. > I think we can use any convinient storage for CEK. > Current design doesn't couple to system caches, so we can change this part > at any moment. > > > 2) I do not think that decryption process should require any > "administrator" role and passwords. > > Instead, we can have a kind of pluggable interface which will provide > decrypted MEK on demand when it is needed. > > This should be pre-configured in advance on server node(s). > > AFAIK this is how a number of other vendors work. > > Can't agree with you, for now. > Can you please send me some info about implementation you refer to? > We study following papers to make current design: > > 1. ORACLE  > > To enable encryption one has to execute following statement: > > `ALTER SYSTEM SET ENCRYPTION KEY IDENTIFIED BY *clear_text_password*` > Or after database server restart - `ALTER SYSTEM SET WALLET OPEN > IDENTIFIED BY *clear_text_password*` > So yes, administrator is involved into server restart. > And no, it's not all automatic. > > 2. MSSQL  - AFAIK uses some Windows OS internal key storage to write > and read master key. > DB server process should have administrator(system) priveleges to access > that storage. > > > Instead, we can have a kind of pluggable interface which will provide > decrypted MEK on demand when it is needed. > > We, for sure, will have pluggable interface for providing MEK. > But, from my point of view, default implementation should use some default > java features. > I think we should use java key store. > It requires to have a clear text password to be loaded  > >  https://docs.oracle.com/cd/B19306_01/network.102/b14268/ > asotrans.htm#BABJJAIG >  https://technet.microsoft.com/en-us/library/bb934049(v=sql.110).aspx >  https://docs.oracle.com/javase/8/docs/api/java/ > security/KeyStore.html#load-java.io.InputStream-char:A- >  https://technet.microsoft.com/en-us/library/bb934049(v=sql.110).aspx > > > 3) CEK decryption should not be tied to MEK decryption. > > MEK will be available from the moment it obtained to the node stop. > So, we can decrypt existing or encrypt newly created CEK whenever it > necessary. > > > 4) I do not think that SSL should be a strict requirement. It is up to > the> user to asses the risks. > > I'm fully OK with it. > Let's remove that restriction. > > В Пн, 09/04/2018 в 11:35 +0300, Vladimir Ozerov пишет: > > Hi Nikolay, > > > > First of all thank you for excellent summary. Two-tiered key management > is > > well respected technique and makes perfect sense to me. However, several > > questions regarding architecture arises: > > > 3) CEK decryption should not be tied to MEK decryption. Main reason - CEK > > could be required during dynamic cache/table creation. So there should be > > no coupling between activation and CEK processing. > > > 4) I do not think that SSL should be a strict requirement. It is up to > the > > user to asses the risks. > > > > On Fri, Apr 6, 2018 at 9:59 PM, Denis Magda <dma...@apache.org> wrote: > > > > > Nikolay, Dmitriy R., > > > > > > Thanks for the research and for writing down a summary in the IEP form. > > > > > > Please answer several high-level questions: > > > > > > - Is it necessary to have CEP keys for every cache? Not sure how > all the > > > keys will be managed if the user wants to encrypt 10-100 caches. Is > it > > > possible to use a single CEP by default with an option of having a > > > unique > > > one for a cache with more sensitive information? > > > - It's not written, but I guess it would be up to me which caches to > > > encrypt, right? In practice, you don't need to have all the data > > > encrypted. > > > Usually, companies look to hide personal, payments history, etc. > > > - Should we think of procedures of CEP keys regeneration? A key can > be > > > lost or stolen. > > > - Similar question goes for MEP key. > > > > > > -- > > > Denis > > > > > > On Thu, Apr 5, 2018 at 2:15 PM, Dmitriy Setrakyan < > dsetrak...@apache.org> > > > wrote: > > > > > > > Here is a correct link to IEP: > > > > https://cwiki.apache.org/confluence/display/IGNITE/IEP- > > > > 18%3A+Transparent+Data+Encryption > > > > > > > > On Thu, Apr 5, 2018 at 12:01 PM, Nikolay Izhikov < > nizhi...@apache.org> > > > > wrote: > > > > > > > > > Hello, Igniters. > > > > > > > > > > Based on previous discussion  we've created "IEP-18: Transparent > > > > > > Data > > > > > Encryption"  > > > > > I've planned to start implementation of TDE in few weeks. > > > > > I will create JIRA ticket for each piece of implementation. > > > > > > > > > > So, please, see IEP-18 and give us feedback. > > > > > > > > > > Dima Ryabov, huge thanks for pushing TDE IEP forward. > > > > > > > > > >  http://apache-ignite-developers.2346864.n4.nabble. > > > > > com/Transparent-Data-Encryption-TDE-in-Apache-Ignite-td18957.html > > > > >  https://cwiki.apache.org/confluence/pages/viewpage. > > > > > action?pageId=75979078 > > > > > >