22.3. Travailler avec des clés de confiance
Vous pouvez améliorer la sécurité du système en utilisant l'utilitaire keyctl
pour créer, exporter, charger et mettre à jour les clés de confiance.
Conditions préalables
Le module de plate-forme de confiance (TPM) est activé et actif. Voir Sous-système d'intégrité du noyau et Clés de confiance et chiffrées.
Vous pouvez vérifier que votre système dispose d'un TPM en entrant la commande
tpm2_pcrread
. Si la sortie de cette commande affiche plusieurs hachages, vous disposez d'un TPM.
Procédure
Créez une clé RSA de 2048 bits avec une clé de stockage primaire SHA-256 avec une poignée persistante, par exemple, 81000001, en utilisant l'un des utilitaires suivants :
En utilisant le paquet
tss2
:# TPM_DEVICE=/dev/tpm0 tsscreateprimary -hi o -st Handle 80000000 # TPM_DEVICE=/dev/tpm0 tssevictcontrol -hi o -ho 80000000 -hp 81000001
En utilisant le paquet
tpm2-tools
:# tpm2_createprimary --key-algorithm=rsa2048 --key-context=key.ctxt name-alg: value: sha256 raw: 0xb … sym-keybits: 128 rsa: xxxxxx… # tpm2_evictcontrol -c key.ctxt 0x81000001 persistentHandle: 0x81000001 action: persisted
Créez une clé de confiance en utilisant un TPM 2.0 avec la syntaxe suivante
keyctl add trusted <NAME> "new <KEY_LENGTH> keyhandle=<PERSISTENT-HANDLE> [options]" <KEYRING>
. Dans cet exemple, la poignée persistante est 81000001.# keyctl add trusted kmk "new 32 keyhandle=0x81000001" @u 642500861
La commande crée une clé de confiance appelée
kmk
d'une longueur de32
octets (256 bits) et la place dans le trousseau de l'utilisateur (@u
). Les clés peuvent avoir une longueur de 32 à 128 octets (256 à 1024 bits).Liste la structure actuelle des trousseaux de clés du noyau.
# keyctl show Session Keyring -3 --alswrv 500 500 keyring: ses 97833714 --alswrv 500 -1 \ keyring: uid.1000 642500861 --alswrv 500 500 \ trusted: kmk
Exporter la clé vers un blob de l'espace utilisateur en utilisant le numéro de série de la clé de confiance.
# keyctl pipe 642500861 > kmk.blob
La commande utilise la sous-commande
pipe
et le numéro de sériekmk
.Charger la clé de confiance à partir du blob de l'espace utilisateur.
# keyctl add trusted kmk "load `cat kmk.blob`" @u 268728824
Créez des clés cryptées sécurisées qui utilisent la clé de confiance scellée par le TPM (
kmk
). Suivez la syntaxe suivante : keyctl add encrypted <NAME> "new [FORMAT] <KEY_TYPE>:<PRIMARY_KEY_NAME> <KEY_LENGTH>" <KEYRING>.# keyctl add encrypted encr-key "new trusted:kmk 32" @u 159771175
Ressources supplémentaires
-
la page du manuel
keyctl(1)
- Des clés fiables et cryptées
- Service de conservation des clés du noyau
- Le sous-système d'intégrité du noyau