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

[Feature Proposal] Client Side Encryption in OpenSearch #6353

Closed
vikasvb90 opened this issue Feb 17, 2023 · 6 comments
Closed

[Feature Proposal] Client Side Encryption in OpenSearch #6353

vikasvb90 opened this issue Feb 17, 2023 · 6 comments
Assignees
Labels
discuss Issues intended to help drive brainstorming and decision making feature New feature or request v2.10.0

Comments

@vikasvb90
Copy link
Contributor

vikasvb90 commented Feb 17, 2023

Client Side Encryption in OpenSearch

Overview

Currently, OpenSearch does not provide support for client side encryption. Due to this, features like Remote Storage, back up and restore of snapshots, etc. require an additional layer of encryption to be built to secure and persist the data in remote store.
This is a request for comments to discuss the proposal for building a plugin which can provide client side encryption support but not limited to remote stores.

Proposal

We propose to build an encryption plugin which can provide capabilities to support encryption/decryption. This plugin can be used for encrypting data during remote transfer but should be independent of any remote store context and therefore, any other future requirement such as local encryption should work without any change in the plugin. Plugin should offer the following capabilities :

  1. Encryption or decryption of a complete file.
  2. Encryption or decryption of a portion of a file. This will be useful in cases where processing of a file happens via multiple threads such as parallel multi-part remote transfers.
  3. Estimation of the size of encrypted content given the size of decrypted content or vice-versa.

We also believe that this should follow SoC model and should be independent of type of content like segments, translogs, Lucene Directories, etc. and should independently function.

@vikasvb90 vikasvb90 added enhancement Enhancement or improvement to existing feature or request untriaged labels Feb 17, 2023
@ashking94 ashking94 added discuss Issues intended to help drive brainstorming and decision making feature New feature or request and removed enhancement Enhancement or improvement to existing feature or request untriaged labels Feb 17, 2023
@vikasvb90
Copy link
Contributor Author

Tagging @shwetathareja @itiyamas @elfisher @muralikpbhat @reta @mch2 @dreamer-89 @andrross @Bukhtawar @sachinpkale for feedback. Feel free to tag others or add feedbacks.

@reta
Copy link
Collaborator

reta commented Feb 17, 2023

@vikasvb90 we have been discussed the idea of having such a plugin few times, definitely would be useful. Aiven has such a plugin [1] which we could contribute back to OpenSearch project.

As a side note, the description of the feature is somewhat misleading, I think we are not looking into encryption at rest (on a storage level, AFAIK most storage providers offer that out of the box) but indeed client side encryption.

[1] https://github.com/aiven/encrypted-repository-opensearch

@reta
Copy link
Collaborator

reta commented Feb 17, 2023

I believe this is a duplicate of #5800

@vikasvb90
Copy link
Contributor Author

Aiven has such a plugin [1] which we could contribute back to OpenSearch project.

@reta Aiven offers some of the basic encryption/decryption capabilities by adding wrappers around open source encryption/decryption sdk but we are looking to extend further in this plugin by providing capabilities like block level/partial encryption or decryption, estimation of encrypted or decrypted content, etc. which might be useful in some remote transfer scenarios. We can discuss the design details further in the design doc.
Also, this plugin need not be dependent on remote transfers and should be able to cater to local encryption use cases if required.

I believe this is a duplicate of #5800

Linked issue has specific mentions of Aiven and proposes to use that as a solution. Proposal here though is open for feedback.

@vikasvb90 vikasvb90 changed the title [Feature Proposal] Encryption at Rest in OpenSearch [Feature Proposal] Client Side Encryption in OpenSearch Feb 17, 2023
@reta
Copy link
Collaborator

reta commented Feb 17, 2023

Hm ... the description is not giving enough details on what you are looking at, would be helpful to update it and consolidate the related work like another one for example #3469

@vikasvb90
Copy link
Contributor Author

@reta I have updated the description to list some minimal use cases this plugin should offer. To emphasize again, we are leaving out the low level details from the doc and will be looking forward to discuss those in the design doc so that we can get ideas around what more or different this plugin should do.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discuss Issues intended to help drive brainstorming and decision making feature New feature or request v2.10.0
Projects
None yet
Development

No branches or pull requests

4 participants