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

Hardware Encryption at Rest #16823

Open
sempervictus opened this issue Nov 30, 2024 · 2 comments
Open

Hardware Encryption at Rest #16823

sempervictus opened this issue Nov 30, 2024 · 2 comments
Labels
Type: Feature Feature request or new feature

Comments

@sempervictus
Copy link
Contributor

Describe the feature would like to see added to OpenZFS

OPAL encryption is now supported by dm-crypt using LUKS headers which seems like an approach OpenZFS could adopt as well.

How will this feature improve OpenZFS?

Leveraging the HW-supported algorithms would work around the brittleness of OpenZFS' crypto implementations (GCC plugins, LLVM CFI, etc have "adverse effects" on it - #15911) and take the cryptographic operations out-of-line of CPU operations and the DMU itself (performance benefit). Platform-specific binary would be reduced to the interfaces to OPAL functions from the various ways compilers currently produce ICP crypto code to improve portability (presuming those platform-level interfaces are consistent).

Additional context

https://www.phoronix.com/news/Cryptsetup-Lands-OPAL-Encrypt

@sempervictus sempervictus added the Type: Feature Feature request or new feature label Nov 30, 2024
@amotin
Copy link
Member

amotin commented Nov 30, 2024

Unless I misunderstand the proposal, it makes no sense. Opal provides a block device encryption, same as LUKS, working on a range of device blocks. ZFS implements encryption on higher logical level, and I don't see how could it use Opal for anything.

@sempervictus
Copy link
Contributor Author

OPAL encryption covers ranges of blocks on the underlying device, which would encrypt the metadata along with the data past the parts needed to direct decryption of the rest of the VDEV in datasets configured for encryption. Dataset level encryption would require the DMU to tell the volume manager which ranges of device blocks to encrypt and then write txgs for that dataset into those allocations.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Feature Feature request or new feature
Projects
None yet
Development

No branches or pull requests

2 participants