diff options
Diffstat (limited to 'Documentation/security/keys-trusted-encrypted.txt')
-rw-r--r-- | Documentation/security/keys-trusted-encrypted.txt | 52 |
1 files changed, 33 insertions, 19 deletions
diff --git a/Documentation/security/keys-trusted-encrypted.txt b/Documentation/security/keys-trusted-encrypted.txt index 8fb79bc1ac4b..5f50ccabfc8a 100644 --- a/Documentation/security/keys-trusted-encrypted.txt +++ b/Documentation/security/keys-trusted-encrypted.txt | |||
@@ -53,12 +53,19 @@ they are only as secure as the user key encrypting them. The master user key | |||
53 | should therefore be loaded in as secure a way as possible, preferably early in | 53 | should therefore be loaded in as secure a way as possible, preferably early in |
54 | boot. | 54 | boot. |
55 | 55 | ||
56 | The decrypted portion of encrypted keys can contain either a simple symmetric | ||
57 | key or a more complex structure. The format of the more complex structure is | ||
58 | application specific, which is identified by 'format'. | ||
59 | |||
56 | Usage: | 60 | Usage: |
57 | keyctl add encrypted name "new key-type:master-key-name keylen" ring | 61 | keyctl add encrypted name "new [format] key-type:master-key-name keylen" |
58 | keyctl add encrypted name "load hex_blob" ring | 62 | ring |
59 | keyctl update keyid "update key-type:master-key-name" | 63 | keyctl add encrypted name "load hex_blob" ring |
64 | keyctl update keyid "update key-type:master-key-name" | ||
65 | |||
66 | format:= 'default | ecryptfs' | ||
67 | key-type:= 'trusted' | 'user' | ||
60 | 68 | ||
61 | where 'key-type' is either 'trusted' or 'user'. | ||
62 | 69 | ||
63 | Examples of trusted and encrypted key usage: | 70 | Examples of trusted and encrypted key usage: |
64 | 71 | ||
@@ -114,15 +121,25 @@ Reseal a trusted key under new pcr values: | |||
114 | 7ef6a24defe4846104209bf0c3eced7fa1a672ed5b125fc9d8cd88b476a658a4434644ef | 121 | 7ef6a24defe4846104209bf0c3eced7fa1a672ed5b125fc9d8cd88b476a658a4434644ef |
115 | df8ae9a178e9f83ba9f08d10fa47e4226b98b0702f06b3b8 | 122 | df8ae9a178e9f83ba9f08d10fa47e4226b98b0702f06b3b8 |
116 | 123 | ||
117 | Create and save an encrypted key "evm" using the above trusted key "kmk": | 124 | The initial consumer of trusted keys is EVM, which at boot time needs a high |
125 | quality symmetric key for HMAC protection of file metadata. The use of a | ||
126 | trusted key provides strong guarantees that the EVM key has not been | ||
127 | compromised by a user level problem, and when sealed to specific boot PCR | ||
128 | values, protects against boot and offline attacks. Create and save an | ||
129 | encrypted key "evm" using the above trusted key "kmk": | ||
118 | 130 | ||
131 | option 1: omitting 'format' | ||
119 | $ keyctl add encrypted evm "new trusted:kmk 32" @u | 132 | $ keyctl add encrypted evm "new trusted:kmk 32" @u |
120 | 159771175 | 133 | 159771175 |
121 | 134 | ||
135 | option 2: explicitly defining 'format' as 'default' | ||
136 | $ keyctl add encrypted evm "new default trusted:kmk 32" @u | ||
137 | 159771175 | ||
138 | |||
122 | $ keyctl print 159771175 | 139 | $ keyctl print 159771175 |
123 | trusted:kmk 32 2375725ad57798846a9bbd240de8906f006e66c03af53b1b382dbbc55 | 140 | default trusted:kmk 32 2375725ad57798846a9bbd240de8906f006e66c03af53b1b3 |
124 | be2a44616e4959430436dc4f2a7a9659aa60bb4652aeb2120f149ed197c564e024717c64 | 141 | 82dbbc55be2a44616e4959430436dc4f2a7a9659aa60bb4652aeb2120f149ed197c564e0 |
125 | 5972dcb82ab2dde83376d82b2e3c09ffc | 142 | 24717c64 5972dcb82ab2dde83376d82b2e3c09ffc |
126 | 143 | ||
127 | $ keyctl pipe 159771175 > evm.blob | 144 | $ keyctl pipe 159771175 > evm.blob |
128 | 145 | ||
@@ -132,14 +149,11 @@ Load an encrypted key "evm" from saved blob: | |||
132 | 831684262 | 149 | 831684262 |
133 | 150 | ||
134 | $ keyctl print 831684262 | 151 | $ keyctl print 831684262 |
135 | trusted:kmk 32 2375725ad57798846a9bbd240de8906f006e66c03af53b1b382dbbc55 | 152 | default trusted:kmk 32 2375725ad57798846a9bbd240de8906f006e66c03af53b1b3 |
136 | be2a44616e4959430436dc4f2a7a9659aa60bb4652aeb2120f149ed197c564e024717c64 | 153 | 82dbbc55be2a44616e4959430436dc4f2a7a9659aa60bb4652aeb2120f149ed197c564e0 |
137 | 5972dcb82ab2dde83376d82b2e3c09ffc | 154 | 24717c64 5972dcb82ab2dde83376d82b2e3c09ffc |
138 | 155 | ||
139 | 156 | Other uses for trusted and encrypted keys, such as for disk and file encryption | |
140 | The initial consumer of trusted keys is EVM, which at boot time needs a high | 157 | are anticipated. In particular the new format 'ecryptfs' has been defined in |
141 | quality symmetric key for HMAC protection of file metadata. The use of a | 158 | in order to use encrypted keys to mount an eCryptfs filesystem. More details |
142 | trusted key provides strong guarantees that the EVM key has not been | 159 | about the usage can be found in the file 'Documentation/keys-ecryptfs.txt'. |
143 | compromised by a user level problem, and when sealed to specific boot PCR | ||
144 | values, protects against boot and offline attacks. Other uses for trusted and | ||
145 | encrypted keys, such as for disk and file encryption are anticipated. | ||