В linux есть малоизвестный, но крутой механизм хранения секретов прямо на уровне ядра -
trusted и encrypted keys. Это специальные типы ключей из подсистемы linux keyrings, которые позволяют защищать данные без хранения их в открытом виде на диске.▪️ Encrypted keys. Используются для хранения секретов (паролей, ключей, токенов), которые шифруются мастер-ключом ядра. Сам ключ может храниться на диске, но без загруженной системы он бесполезен.
Пример создания:
keyctl add encrypted dbkey "new user:passphrase 32" @s
Ключ автоматически расшифровывается ядром при использовании, но в файловой системе его содержимое не светится.
▪️ Trusted keys. Более высокий уровень защиты. Такие ключи генерируются и хранятся внутри TPM (Trusted Platform Module) и никогда не покидают его в открытом виде. Ядро получает только дескриптор, а все криптооперации выполняет TPM.
Пример:
keyctl add trusted tpmkey "new 32" @s
Даже root не сможет извлечь значение ключа, только использовать его.
▪️ Где это применяется
защита LUKS (через systemd-cryptenroll);
хранение ключей для dm-crypt;
secrets для сервисов без plaintext-файлов;
привязка данных к конкретному железу.
#linux #security
🧑💻 NetworkAdmin