Skip to content

Commit ec2df0b

Browse files
author
mikemckiernan
authored
Merge pull request #36403 from StephenJamesSmith/TELCODOCS-266
Telcodocs 266: Implementing Network Bound Disk Encryption
2 parents 4eaa92f + 18a8066 commit ec2df0b

File tree

44 files changed

+1116
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+1116
-0
lines changed

_topic_map.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -800,6 +800,18 @@ Topics:
800800
- Name: Scanning pods for vulnerabilities
801801
File: pod-vulnerability-scan
802802
Distros: openshift-enterprise,openshift-origin
803+
- Name: Network-Bound Disk Encryption (NBDE)
804+
Dir: network_bound_disk_encryption
805+
Topics:
806+
- Name: About disk encryption technology
807+
File: nbde-about-disk-encryption-technology
808+
- Name: Tang server installation considerations
809+
File: nbde-tang-server-installation-considerations
810+
- Name: Tang server encryption key management
811+
File: nbde-managing-encryption-keys
812+
- Name: Disaster recovery considerations
813+
File: nbde-disaster-recovery-considerations
814+
Distros: openshift-enterprise,openshift-origin
803815
---
804816
Name: Authentication and authorization
805817
Dir: authentication
67.5 KB
Loading
75.3 KB
Loading
47.9 KB
Loading
41 KB
Loading
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// Module included in the following assemblies:
2+
//
3+
// security/nbde-implementation-guide.adoc
4+
5+
[id="nbde-automatic-start-at-boot_{context}"]
6+
= Automatic start at boot
7+
8+
Due to the sensitive nature of the key material the Tang server uses, you should keep in mind that the overhead of manual intervention during the Tang server’s boot sequence can be beneficial.
9+
10+
By default, if a Tang server starts and does not have key material present in the expected local volume, it will create fresh material and serve it. You can avoid this default behavior by either starting with pre-existing key material or aborting the startup and waiting for manual intervention.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// Module included in the following assemblies:
2+
//
3+
// security/nbde-implementation-guide.adoc
4+
5+
[id="nbde-backing-up-server-keys_{context}"]
6+
= Backing up keys for a Tang server
7+
8+
The Tang server, by default, stores its keys in the `/usr/libexec/tangd-keygen` directory. Back up the contents of this directory to enable recovery in the event of the loss of the Tang server. The keys are sensitive and since they are able to perform the boot disk decryption of all hosts that have used them, the keys must be protected accordingly.
9+
10+
.Procedure
11+
12+
* Back up the contents of the `/usr/libexec/tangd-keygen` directory.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// Module included in the following assemblies:
2+
//
3+
// security/nbde-implementation-guide.adoc
4+
5+
[id="nbde-compromise-of-key-material_{context}"]
6+
= Rekeying compromised key material
7+
8+
If key material is potentially exposed to unauthorized third parties, such as through the physical theft of a Tang server or associated data, immediately rotate the keys.
9+
10+
.Procedure
11+
12+
. Rekey any Tang server holding the affected material.
13+
. Rekey all clients using the Tang server.
14+
. Destroy the original key material.
15+
. Scrutinize any incidents that result in unintended exposure of the master encryption key. If possible, take compromised nodes offline and re-encrypt their disks.
16+
17+
[TIP]
18+
Reformatting and reinstalling on the same physical hardware, although slow, is easy to automate and test.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// Module included in the following assemblies:
2+
//
3+
// security/nbde-implementation-guide.adoc
4+
5+
[id="nbde-compute-requirements_{context}"]
6+
= Compute requirements
7+
8+
The computational requirements for the Tang server are very low. Any typical server grade configuration that you would use to deploy a server into production can provision sufficient compute capacity.
9+
10+
High availability considerations are solely for availability and not additional compute power to satisfy client demands.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// Module included in the following assemblies:
2+
//
3+
// security/nbde-implementation-guide.adoc
4+
5+
[id="nbde-deciding-the-number-of-tang-servers-to-use_{context}"]
6+
= Tang server sizing requirements
7+
8+
The requirements around availability, network, and physical location drive the decision of how many Tang servers to use, rather than any concern over server capacity.
9+
10+
Tang servers do not maintain the state of data encrypted using Tang resources. Tang servers are either fully independent or share only their key material, which enables them to scale well.
11+
12+
There are two ways Tang servers handle key material:
13+
14+
* Multiple Tang servers share key material:
15+
** You must load balance Tang servers sharing keys behind the same URL. The configuration can be as simple as round-robin DNS, or you can use physical load balancers.
16+
** You can scale from a single Tang server to multiple Tang servers. Scaling Tang servers does not require rekeying or client reconfiguration on the node when the Tang servers share key material and the same URL.
17+
** Client node setup and key rotation only requires one Tang server.
18+
19+
* Multiple Tang servers generate their own key material:
20+
** You can configure multiple Tang servers at installation time.
21+
** You can scale an individual Tang server behind a load balancer.
22+
** All Tang servers must be available during client node setup or key rotation.
23+
** When a client node boots using the default configuration, the Clevis client contacts all Tang servers. Only _n_ Tang servers must be online to proceed with decryption. The default value for _n_ is 1.
24+
** Red Hat does not support post-installation configuration that changes the behavior of the Tang servers.

0 commit comments

Comments
 (0)