ima: use IMA default hash algorithm for integrity violations
authorMimi Zohar <zohar@linux.ibm.com>
Wed, 27 Apr 2022 12:12:38 +0000 (08:12 -0400)
committerMimi Zohar <zohar@linux.ibm.com>
Sun, 1 May 2022 20:39:10 +0000 (16:39 -0400)
commit09091c44cb737256f588050e363c4675d88aaac3
tree18aa02f58a9031ef8a07c3ff6eee2214f93cbdbb
parent644664627d21648735adfa733956f94064d3417d
ima: use IMA default hash algorithm for integrity violations

Integrity file violations - ToM/ToU, open writers - are recorded in the IMA
measurement list, containing 0x00's in both the template data and file data
hash fields, but 0xFF's are actually extended into TPM PCRs.  Although the
original 'ima' template data field ('d') is limited to 20 bytes, the 'd-ng'
template digest field is not.

The violation file data hash template field ('d-ng') is unnecessarily hard
coded to SHA1.  Instead of simply replacing the hard coded SHA1 hash
algorithm with a larger hash algorithm, use the hash algorithm as defined
in "ima_hash_algo".  ima_hash_algo is set to either the Kconfig IMA default
hash algorithm or as defined on the boot command line (ima_hash=).

Including a non-SHA1 file data hash algorithm in the 'd-ng' field of
violations is a cosmetic change.  The template data hash field, which is
extended into the TPM PCRs, is not affected by this change and should not
affect attestation of the IMA measurement list.

Tested-by: Stefan Berger <stefanb@linux.ibm.com>
Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
security/integrity/ima/ima_template_lib.c