• Roberto Sassu's avatar
    ima: Switch to ima_hash_algo for boot aggregate · 6f1a1d10
    Roberto Sassu authored
    boot_aggregate is the first entry of IMA measurement list. Its purpose is
    to link pre-boot measurements to IMA measurements. As IMA was designed to
    work with a TPM 1.2, the SHA1 PCR bank was always selected even if a
    TPM 2.0 with support for stronger hash algorithms is available.
    
    This patch first tries to find a PCR bank with the IMA default hash
    algorithm. If it does not find it, it selects the SHA256 PCR bank for
    TPM 2.0 and SHA1 for TPM 1.2. Ultimately, it selects SHA1 also for TPM 2.0
    if the SHA256 PCR bank is not found.
    
    If none of the PCR banks above can be found, boot_aggregate file digest is
    filled with zeros, as for TPM bypass, making it impossible to perform a
    remote attestation of the system.
    
    Cc: stable@vger.kernel.org # 5.1.x
    Fixes: 879b5892 ("tpm: retrieve digest size of unknown algorithms with PCR read")
    Reported-by: default avatarJerry Snitselaar <jsnitsel@redhat.com>
    Suggested-by: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
    Signed-off-by: default avatarRoberto Sassu <roberto.sassu@huawei.com>
    Signed-off-by: default avatarMimi Zohar <zohar@linux.ibm.com>
    6f1a1d10
ima_crypto.c 16.9 KB