Skip to content

in-kernel IMA/EVM initialization

Dmitry Kasatkin lkml 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest20 patches 10 repliesIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/20KEYS: verify a certificate is signed by a 'trusted' keycrypto/asymmetric_keys/x509_public_key.c+84 -13 replies
2/20integrity: initialize EVM before IMAsecurity/integrity/Makefile+2 -20 replies
3/20ima: move asymmetric keys config optionsecurity/integrity/Kconfig+12 -120 replies
4/20integrity: move integrity subsystem options to a separate menusecurity/integrity/Kconfig security/integrity/evm/Kconfig security/integrity/ima/Kconfig+10 -130 replies
5/20integrity: provide builtin 'trusted' keyringssecurity/integrity/Kconfig security/integrity/digsig.c security/integrity/integrity.h+45 -00 replies
6/20ima: create '_ima' as a builtin 'trusted' keyringsecurity/integrity/ima/Kconfig security/integrity/ima/ima_init.c+10 -00 replies
7/20integrity: provide x509 certificate loading from the kernelsecurity/integrity/Kconfig security/integrity/digsig.c security/integrity/integrity.h+86 -00 replies
8/20ima: load x509 certificate from the kernelsecurity/integrity/ima/Kconfig security/integrity/ima/ima_init.c+10 -00 replies
9/20evm: create '_evm' as a builtin 'trusted' keyringsecurity/integrity/evm/Kconfig security/integrity/evm/evm_main.c+10 -00 replies
10/20evm: load x509 certificate from the kernelsecurity/integrity/evm/Kconfig security/integrity/evm/evm_main.c+10 -00 replies
11/20ima: added kernel parameter for disabling IMAsecurity/integrity/ima/ima_main.c+11 -10 replies
12/20ima: provide buffer hash calculation functionsecurity/integrity/ima/ima.h security/integrity/ima/ima_crypto.c+10 -22 replies
13/20ima: replace opencount with bitopsecurity/integrity/ima/ima_fs.c+14 -90 replies
14/20ima: check if policy was set at opensecurity/integrity/ima/ima.h security/integrity/ima/ima_fs.c security/integrity/ima/ima_policy.c+15 -90 replies
15/20ima: path based policy loading interfacesecurity/integrity/ima/Kconfig security/integrity/ima/ima.h security/integrity/ima/ima_fs.c +1 more+97 -12 replies
16/20ima: load policy from the kernelsecurity/integrity/ima/Kconfig security/integrity/ima/ima.h security/integrity/ima/ima_fs.c +1 more+33 -10 replies
17/20ima: make IMA policy replaceable at runtimesecurity/integrity/ima/Kconfig security/integrity/ima/ima_fs.c security/integrity/ima/ima_policy.c+29 -42 replies
18/20evm: added kernel parameter for disabling EVMsecurity/integrity/evm/evm.h security/integrity/evm/evm_main.c security/integrity/evm/evm_secfs.c+20 -70 replies
19/20evm: try enable EVM from the kernelsecurity/integrity/evm/evm_crypto.c security/integrity/evm/evm_main.c security/integrity/evm/evm_secfs.c+10 -70 replies
20/20evm: read EVM key from the kernelsecurity/integrity/evm/Kconfig security/integrity/evm/evm.h security/integrity/evm/evm_crypto.c +1 more+114 -00 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH 00/20] in-kernel IMA/EVM initialization

Hi,

Currently secure IMA/EVM initialization has to be done from the initramfs, embedded in the signed kernel image. Many systems do not want to use initramfs or use unsigned locally generated images.

This patchset introduces kernel functionality, which allows to perform IMA/EVM initialization without initramfs from the kernel, which includes mainly following:
- loading EVM hmac encrypted keys
- loading and verification of signed X509 certificates
- loading and verification of signed IMA policy

Patchset introduces the set of new kernel configuration options, which makes this functionality entirely configurable. Not enabling any of the options does not change original IMA/EVM behavior. In order not to bloat security configuration menu, integrity subsystem options were moved to the separate menu. It does not affect existing configuration. Re-configuration is not needed.

-Dmitry

Dmitry Kasatkin (19):
integrity: initialize EVM before IMA
ima: move asymmetric keys config option
integrity: move integrity subsystem options to a separate menu
integrity: provide builtin 'trusted' keyrings
ima: create '_ima' as a builtin 'trusted' keyring
integrity: provide x509 certificate loading from the kernel
ima: load x509 certificate from the kernel
evm: create '_evm' as a builtin 'trusted' keyring
evm: load x509 certificate from the kernel
ima: added kernel parameter for disabling IMA
ima: provide buffer hash calculation function
ima: replace opencount with bitop
ima: check if policy was set at open
ima: path based policy loading interface
ima: load policy from the kernel
ima: make IMA policy replaceable at runtime
evm: added kernel parameter for disabling EVM
evm: try enable EVM from the kernel
evm: read EVM key from the kernel

Mimi Zohar (1):
KEYS: verify a certificate is signed by a 'trusted' key

 crypto/asymmetric_keys/x509_public_key.c |  85 +++++++++++++++++++++++-
 security/integrity/Kconfig               |  41 ++++++++----
 security/integrity/Makefile              |   4 +-
 security/integrity/digsig.c              | 103 +++++++++++++++++++++++++++++
 security/integrity/evm/Kconfig           |  32 +++++++--
 security/integrity/evm/evm.h             |  14 ++++
 security/integrity/evm/evm_crypto.c      | 101 ++++++++++++++++++++++++++++
 security/integrity/evm/evm_main.c        |  25 +++++--
 security/integrity/evm/evm_secfs.c       |  13 ++--
 security/integrity/ima/Kconfig           |  49 +++++++++++++-
 security/integrity/ima/ima.h             |  19 ++++++
 security/integrity/ima/ima_crypto.c      |  11 +++-
 security/integrity/ima/ima_fs.c          |  48 ++++++++++----
 security/integrity/ima/ima_init.c        |   3 +
 security/integrity/ima/ima_main.c        |  12 +++-
 security/integrity/ima/ima_policy.c      | 109 ++++++++++++++++++++++++++++---
 security/integrity/integrity.h           |  20 ++++++
 17 files changed, 626 insertions(+), 63 deletions(-)
Signature · 1 line
1.8.3.2