For me, the one big disadvantage for offline re-encryption is the
possibility to run out of WAL history.
If an re-encryption takes a long time we will get full rebalancing with
partition eviction.
This willl takes us to the re-encryption using full rebalancing, proposed
by me earlier.



пн, 25 мая 2020 г. в 11:27, Nikolay Izhikov <nizhi...@apache.org>:

> > And definitely this approach is much simplier to implement
>
> I agree.
>
> If we allow to made nodes offline for reencryption then we can implement a
> fully offline procedure:
>
> 1. Stop node.
> 2. Execute some control.sh command that will reencrypt all data without
> starting node
> 3. Start node.
>
> Pavel, can you, please, write it one more time - what disadvantages in
> offline procedure?
>
> > 25 мая 2020 г., в 11:20, Alexei Scherbakov <alexey.scherbak...@gmail.com>
> написал(а):
> >
> > And definitely this approach is much simplier to implement because all
> > corner cases are handled by rebalancing code.
> >
> > пн, 25 мая 2020 г. в 11:16, Alexei Scherbakov <
> alexey.scherbak...@gmail.com
> >> :
> >
> >> I mean: serving supply requests.
> >>
> >> пн, 25 мая 2020 г. в 11:15, Alexei Scherbakov <
> >> alexey.scherbak...@gmail.com>:
> >>
> >>> Nikolay,
> >>>
> >>> Can you explain why such restriction is necessary ?
> >>> Most likely having a currently re-encrypting node serving only demand
> >>> requests will have least preformance impact on a grid.
> >>>
> >>> пн, 25 мая 2020 г. в 11:08, Nikolay Izhikov <nizhi...@apache.org>:
> >>>
> >>>> Hello, Alexei.
> >>>>
> >>>> I think we want to implement this feature without nodes restart.
> >>>> In the ideal scenario all nodes will stay alive and respond to the
> user
> >>>> requests.
> >>>>
> >>>>> 24 мая 2020 г., в 15:24, Alexei Scherbakov <
> >>>> alexey.scherbak...@gmail.com> написал(а):
> >>>>>
> >>>>> Pavel Pereslegin,
> >>>>>
> >>>>> I see another opportunity.
> >>>>> We can use rebalancing to re-encrypt node data with a new key.
> >>>>> It's a trivial procedure for me: stop a node, clear database, change
> a
> >>>> key,
> >>>>> start node and wait for rebalancing to complete.
> >>>>> Data will be re-encrypted during rebalancing.
> >>>>>
> >>>>> Did I miss something ?
> >>>>>
> >>>>> пт, 22 мая 2020 г. в 16:14, Ivan Rakov <ivan.glu...@gmail.com>:
> >>>>>
> >>>>>> Folks,
> >>>>>>
> >>>>>> Just keeping you informed: I and my colleagues are highly interested
> >>>> in TDE
> >>>>>> in general and keys rotations specifically, but we don't have enough
> >>>> time
> >>>>>> so far.
> >>>>>> We'll dive into this feature and participate in reviews next month.
> >>>>>>
> >>>>>> --
> >>>>>> Best Regards,
> >>>>>> Ivan Rakov
> >>>>>>
> >>>>>> On Sun, May 17, 2020 at 10:51 PM Pavel Pereslegin <xxt...@gmail.com
> >
> >>>>>> wrote:
> >>>>>>
> >>>>>>> Hello, Alexey.
> >>>>>>>
> >>>>>>>> is the encryption key for the data the same on all nodes in the
> >>>>>> cluster?
> >>>>>>> Yes, each encrypted cache group has its own encryption key, the key
> >>>> is
> >>>>>>> the same on all nodes.
> >>>>>>>
> >>>>>>>> Clearly, during the re-encryption there will exist pages
> >>>>>>>> encrypted with both new and old keys at the same time.
> >>>>>>> Yes, there will be pages encrypted with different keys at the same
> >>>> time.
> >>>>>>> Currently, we only store one key for one cache group. To rotate a
> >>>> key,
> >>>>>>> at a certain point in time it is necessary to support several keys
> >>>> (at
> >>>>>>> least for reading the WAL).
> >>>>>>> For the "in place" strategy, we'll store the encryption key
> >>>> identifier
> >>>>>>> on each encrypted page (we currently have some unused space on
> >>>>>>> encrypted page, so I don't expect any memory overhead here). Thus,
> we
> >>>>>>> will have several keys for reading and one key for writing. I
> assume
> >>>>>>> that the old key will be automatically deleted when a specific WAL
> >>>>>>> segment is deleted (and re-encryption is finished).
> >>>>>>>
> >>>>>>>> Will a node continue to re-encrypt the data after it restarts?
> >>>>>>> Yes.
> >>>>>>>
> >>>>>>>> If a node goes down during the re-encryption, but the rest of the
> >>>>>>>> cluster finishes re-encryption, will we consider the procedure
> >>>>>> complete?
> >>>>>>> I'm not sure, but it looks like the key rotation is complete when
> we
> >>>>>>> set the new key on all nodes so that the updates will be encrypted
> >>>>>>> with the new key (as required by PCI DSS).
> >>>>>>> Status of re-encryption can be obtained separately (locally or
> >>>> cluster
> >>>>>>> wide).
> >>>>>>>
> >>>>>>> I forgot to mention that with “in place” re-encryption it will be
> >>>>>>> impossible to quickly cancel re-encryption, because by canceling we
> >>>>>>> mean re-encryption with the old key.
> >>>>>>>
> >>>>>>>> How do you see the whole key rotation procedure will work?
> >>>>>>> Initial design for re-encryption with "partition copying" is
> >>>> described
> >>>>>>> here [1]. I'll prepare detailed design for "in place" re-encryption
> >>>> if
> >>>>>>> we'll go this way. In short, send the new encryption key
> >>>> cluster-wide,
> >>>>>>> each node adds a new key and starts background re-encryption.
> >>>>>>>
> >>>>>>> [1]
> >>>>>>>
> >>>>>>
> >>>>
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=95652384#TDE.Phase-3.Cachekeyrotation.-Copywithre-encryptiondesign
> >>>>>>> .
> >>>>>>>
> >>>>>>> вс, 17 мая 2020 г. в 18:35, Alexey Goncharuk <
> >>>> alexey.goncha...@gmail.com
> >>>>>>> :
> >>>>>>>>
> >>>>>>>> Pavel, Anton,
> >>>>>>>>
> >>>>>>>> How do you see the whole key rotation procedure will work?
> Clearly,
> >>>>>>> during
> >>>>>>>> the re-encryption there will exist pages encrypted with both new
> and
> >>>>>> old
> >>>>>>>> keys at the same time. Will a node continue to re-encrypt the data
> >>>>>> after
> >>>>>>> it
> >>>>>>>> restarts? If a node goes down during the re-encryption, but the
> >>>> rest of
> >>>>>>> the
> >>>>>>>> cluster finishes re-encryption, will we consider the procedure
> >>>>>> complete?
> >>>>>>> By
> >>>>>>>> the way, is the encryption key for the data the same on all nodes
> in
> >>>>>> the
> >>>>>>>> cluster?
> >>>>>>>>
> >>>>>>>> чт, 14 мая 2020 г. в 11:30, Anton Vinogradov <a...@apache.org>:
> >>>>>>>>
> >>>>>>>>> +1 to "In place re-encryption".
> >>>>>>>>>
> >>>>>>>>> - It has a simple design.
> >>>>>>>>> - Clusters under load may require just load to re-encrypt the
> data.
> >>>>>>>>> (Friendly to load).
> >>>>>>>>> - Easy to throttle.
> >>>>>>>>> - Easy to continue.
> >>>>>>>>> - Design compatible with the multi-key architecture.
> >>>>>>>>> - It can be optimized to use own WAL buffer and to re-encrypt
> pages
> >>>>>>> without
> >>>>>>>>> restoring them to on-heap.
> >>>>>>>>>
> >>>>>>>>> On Thu, May 14, 2020 at 1:54 AM Pavel Pereslegin <
> xxt...@gmail.com
> >>>>>
> >>>>>>> wrote:
> >>>>>>>>>
> >>>>>>>>>> Hello Igniters.
> >>>>>>>>>>
> >>>>>>>>>> Recently, master key rotation for Apache Ignite Transparent Data
> >>>>>>>>>> Encryption was implemented [1], but some security standards (PCI
> >>>>>> DSS
> >>>>>>>>>> at least) require rotation of all encryption keys [2].
> Currently,
> >>>>>>>>>> encryption occurs when reading/writing pages to disk, cache
> >>>>>>> encryption
> >>>>>>>>>> keys are stored in metastore.
> >>>>>>>>>>
> >>>>>>>>>> I'm going to contribute cache encryption key rotation and want
> to
> >>>>>>>>>> consult what is the best way to re-encrypting existing data, I
> see
> >>>>>>> two
> >>>>>>>>>> different strategies.
> >>>>>>>>>>
> >>>>>>>>>> 1. In place re-encryption:
> >>>>>>>>>> Using the old key, sequentially read all the pages from the
> >>>>>>> datastore,
> >>>>>>>>>> mark as dirty and log them into the WAL. After checkpoint pages
> >>>>>> will
> >>>>>>>>>> be stored to disk encrypted with the new key (as usual, along
> with
> >>>>>>>>>> updates). This strategy requires store the identifier (number)
> of
> >>>>>> the
> >>>>>>>>>> encryption key into the encrypted page.
> >>>>>>>>>> pros:
> >>>>>>>>>> - can work in the background with minimal performance impact
> >>>>>> (this
> >>>>>>>>>> impact can be managed).
> >>>>>>>>>> cons:
> >>>>>>>>>> - page duplication in the WAL may affect performance and
> >>>>>> historical
> >>>>>>>>>> rebalance.
> >>>>>>>>>>
> >>>>>>>>>> 2. Copy partition with re-encryption.
> >>>>>>>>>> This strategy is similar to partition snapshotting [3] - create
> >>>>>>>>>> partition copy encrypted with the new key and then replace the
> >>>>>>>>>> original partition file with the new one (see details [4]).
> >>>>>>>>>> pros:
> >>>>>>>>>> - should work faster than "in place" re-encryption.
> >>>>>>>>>> cons:
> >>>>>>>>>> - re-encryption in active cluster (and on unstable topology) can
> >>>>>> be
> >>>>>>>>>> difficult to implement.
> >>>>>>>>>>
> >>>>>>>>>> (See more detailed comparison [5])
> >>>>>>>>>>
> >>>>>>>>>> Re-encryption of existing data is a long and rare procedure (It
> is
> >>>>>>>>>> recommended to change the key every 6 months, but at least once
> >>>>>> every
> >>>>>>>>>> 2 years). Thus, re-encryption can be implemented for maintenance
> >>>>>> mode
> >>>>>>>>>> (for example, on a stable topology in a read-only cluster) and
> in
> >>>>>>> such
> >>>>>>>>>> case the approach with partition copying seems simpler and
> faster.
> >>>>>>>>>>
> >>>>>>>>>> So, what do you think - do we need "online" re-encryption and
> >>>> which
> >>>>>>> of
> >>>>>>>>>> the proposed options is best suited for this?
> >>>>>>>>>>
> >>>>>>>>>> [1] https://issues.apache.org/jira/browse/IGNITE-12186
> >>>>>>>>>> [2]
> >>>>>>> https://www.pcisecuritystandards.org/documents/PCI_DSS_v3-2-1.pdf
> >>>>>>>>>> [3]
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>
> https://cwiki.apache.org/confluence/display/IGNITE/IEP-43%3A+Cluster+snapshots#IEP-43:Clustersnapshots-Partitionscopystrategy
> >>>>>>>>>> [4]
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=95652384#TDE.Phase-3.Cachekeyrotation.-Copywithre-encryptiondesign
> >>>>>>>>>> .
> >>>>>>>>>> [5]
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=95652384#TDE.Phase-3.Cachekeyrotation.-Comparison
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>
> >>>>>
> >>>>> --
> >>>>>
> >>>>> Best regards,
> >>>>> Alexei Scherbakov
> >>>>
> >>>>
> >>>
> >>> --
> >>>
> >>> Best regards,
> >>> Alexei Scherbakov
> >>>
> >>
> >>
> >> --
> >>
> >> Best regards,
> >> Alexei Scherbakov
> >>
> >
> >
> > --
> >
> > Best regards,
> > Alexei Scherbakov
>
>

-- 

Best regards,
Alexei Scherbakov

Reply via email to