1 About Network-Bound Disk Encryption

Network-Bound Disk Encryption (NBDE) is a method that's used to automatically decrypt Linux Unified Key Setup (LUKS) encrypted disks or volumes by using a network-based resource to obtain the information that's required to perform decryption. This facility extends LUKS, which is commonly used to encrypt disks and volumes on Oracle Linux to provide an extra mode of security, and provide automated decryption at boot.

LUKS is useful for encrypting data and protecting it when it's not in use. For server systems, LUKS can pose a problem if the root partition is encrypted because it requires a passphrase to be entered at boot to decrypt the data. NBDE helps to solve this issue by using a network-based resource to obtain a key that LUKS uses to perform the decryption automatically at boot. In this security model, the data on the disk is protected if the system boots within a trusted network. If the disk is removed from the server and isn't booted within the trusted network, the data remains encrypted, unless the usual LUKS passphrase is provided.

NBDE is achieved on Oracle Linux by configuring a Tang server on a trusted network and then installing the Clevis decryption software on the client host where the encryption is used. Tang runs a web-based service that uses HTTP to advertise a public signing key that's used by clients to generate key pairs which are used to encrypt data. The Clevis client generates a strong cryptographic key pair, using the signing key that's provided by the Tang server, to perform an encryption. Encryption is performed by using the generated private key, which is discarded after encryption is complete, thereby protecting the data until the private key is reconstituted.

The Clevis client uses an ephemeral key to obtain the information that's required from the Tang server to reconstitute the private key so that it can decrypt the data. This process is known as the McCallum-Relyea exchange and has the advantage of avoiding key escrow, which can result in management overhead and can also introduce security risks. In this key exchange process, the keys that are used to encrypt the data on the client side are never directly shared with the Tang server and never move across the network. All the information that's exchanged is either public or encrypted by nature, which means that no TLS is required either.

Because LUKS can store several keys in different slots that are used to decrypt data, the primary passphrase that's used to lock a disk or a volume can be maintained alongside the key that's provided for NBDE. At boot, the usual passphrase prompt is displayed for LUKS decryption so that you can enter a passphrase, but if Clevis can contact the Tang server no user input is required and the passphrase prompt closes automatically after the key is decrypted and access is granted to the data that's stored on the disk or volume.

More information about the Tang server is available at https://github.com/latchset/tang.

More information about the Clevis framework is available at https://github.com/latchset/clevis.

General information about public key cryptography is available in Oracle Linux: Managing Certificates and Public Key Infrastructure.

Information about using LUKS for disk encryption is available in Oracle Linux 8: Managing Storage Devices and Oracle Linux 9: Managing Storage Devices