On Fri, 2021-05-14 at 17:27 +0200, Roberto Sassu wrote: > EVM portable signatures are particularly suitable for the protection of > metadata of immutable files where metadata is signed by a software vendor. > They can be used for example in conjunction with an IMA policy that > appraises only executed and memory mapped files. > > However, until now portable signatures can be properly installed only if > the EVM_ALLOW_METADATA_WRITES initialization flag is also set, which > disables metadata verification until an HMAC key is loaded. This will cause > metadata writes to be allowed even in the situations where they shouldn't > (metadata protected by a portable signature is immutable). > > The main reason why setting the flag is necessary is that the operations > necessary to install portable signatures and protected metadata would be > otherwise denied, despite being legitimate, due to the fact that the > decision logic has to avoid an unsafe recalculation of the HMAC that would > make the unsuccessfully verified metadata valid. However, the decision > logic is too coarse, and does not fully take into account all the possible > situations where metadata operations could be allowed. > > For example, if the HMAC key is not loaded and it cannot be loaded in the > future due the EVM_SETUP_COMPLETE flag being set, it wouldn't be a problem > to allow metadata operations, as they wouldn't result in an HMAC being > recalculated. > > This patch set extends the decision logic and adds the necessary exceptions > to use portable signatures without turning off metadata verification and > deprecates the EVM_ALLOW_METADATA_WRITES flag. Thanks, Roberto. Applied to: git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux- integrity.git next-integrity-testing Mimi