Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package keylime for openSUSE:Factory checked in at 2021-07-17 23:36:21 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/keylime (Old) and /work/SRC/openSUSE:Factory/.keylime.new.2632 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "keylime" Sat Jul 17 23:36:21 2021 rev:2 rq:906290 version:6.1.0 Changes: -------- --- /work/SRC/openSUSE:Factory/keylime/keylime.changes 2021-06-24 18:22:43.404926149 +0200 +++ /work/SRC/openSUSE:Factory/.keylime.new.2632/keylime.changes 2021-07-17 23:36:24.702074732 +0200 @@ -1,0 +2,14 @@ +Wed Jul 14 12:12:23 UTC 2021 - Alberto Planas Dominguez <apla...@suse.com> + +- Add config-libefivars.diff to adjust the path of the library + +------------------------------------------------------------------- +Thu Jul 8 14:45:24 UTC 2021 - Alberto Planas Dominguez <apla...@suse.com> + +- Add check_pcrs-match-PCR-if-no-mb_refstate-is-provided.patch + (gh#keylime/keylime!695) +- Recommends CFSSL in the registrar (actually should be the CA) +- Change default value for require_ek_cert to False +- Reorder the patches to separate upstream fixes from openSUSE ones + +------------------------------------------------------------------- New: ---- check_pcrs-match-PCR-if-no-mb_refstate-is-provided.patch config-libefivars.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ keylime.spec ++++++ --- /var/tmp/diff_new_pack.gxAI4B/_old 2021-07-17 23:36:25.238070600 +0200 +++ /var/tmp/diff_new_pack.gxAI4B/_new 2021-07-17 23:36:25.238070600 +0200 @@ -29,10 +29,14 @@ Source1: keylime.xml # PATCH-FIX-OPENSUSE version.diff Patch1: version.diff -# PATCH-FIX-UPSTREAM webapp-fix-tls-certs-paths.patch gh#keylime/keylime!659 -Patch2: webapp-fix-tls-certs-paths.patch # PATCH-FIX-OPENSUSE keylime.conf.diff -Patch3: keylime.conf.diff +Patch2: keylime.conf.diff +# PATCH-FIX-OPENSUSE config-libefivars.diff +Patch3: config-libefivars.diff +# PATCH-FIX-UPSTREAM webapp-fix-tls-certs-paths.patch gh#keylime/keylime!659 +Patch4: webapp-fix-tls-certs-paths.patch +# PATCH-FIX-UPSTREAM check_pcrs-match-PCR-if-no-mb_refstate-is-provided.patch gh#keylime/keylime!695 +Patch5: check_pcrs-match-PCR-if-no-mb_refstate-is-provided.patch BuildRequires: %{python_module setuptools} BuildRequires: fdupes BuildRequires: firewall-macros @@ -54,7 +58,7 @@ Requires: tpm2.0-abrmd Requires: tpm2.0-tools Requires(post): update-alternatives -Requires(postun): update-alternatives +Requires(postun):update-alternatives BuildArch: noarch %python_subpackages @@ -101,6 +105,7 @@ Requires: %{name}-tpm_cert_store = %{version} Requires: python3-%{name} = %{version} Recommends: %{name}-firewalld = %{version} +Recommends: cfssl %description -n %{name}-registrar Subpackage of %{name} for registrar service. ++++++ check_pcrs-match-PCR-if-no-mb_refstate-is-provided.patch ++++++ >From 1c3dc5928866741426acabbe653c51d5ec2b9813 Mon Sep 17 00:00:00 2001 From: Alberto Planas <apla...@suse.com> Date: Thu, 8 Jul 2021 16:16:32 +0200 Subject: [PATCH] check_pcrs: match PCR if no mb_refstate is provided If the values for mb_refstate are empty, the PCRs that are present in the tpm_policy and belong to the measured boot process are ignored. This patch check that the PCRs form the policy matches the ones that comes from the quote when there is no measured boot data. Fix #694 Signed-off-by: Alberto Planas <apla...@suse.com> --- keylime/tpm/tpm_abstract.py | 3 +++ 1 file changed, 3 insertions(+) Index: keylime-6.1.0/keylime/tpm/tpm_abstract.py =================================================================== --- keylime-6.1.0.orig/keylime/tpm/tpm_abstract.py +++ keylime-6.1.0/keylime/tpm/tpm_abstract.py @@ -316,6 +316,9 @@ class AbstractTPM(metaclass=ABCMeta): if val_from_log_hex_stripped != pcrval_stripped: logger.error("For PCR %d and hash SHA256 the boot event log has value %r but the agent returned %r", pcrnum, val_from_log_hex, pcrval) return False + elif pcrnum in pcr_allowlist and pcrval not in pcr_allowlist[pcrnum] and not config.STUB_TPM: + logger.error("%sPCR #%s: %s from quote does not match expected value %s", ("", "v")[virtual], pcrnum, pcrval, pcr_allowlist[pcrnum]) + return False pcrsInQuote.add(pcrnum) continue ++++++ config-libefivars.diff ++++++ Index: keylime-6.1.0/keylime/config.py =================================================================== --- keylime-6.1.0.orig/keylime/config.py +++ keylime-6.1.0/keylime/config.py @@ -318,7 +318,7 @@ MEASUREDBOOT_ML = '/sys/kernel/security/ MEASUREDBOOT_IMPORTS = get_config().get('cloud_verifier', 'measured_boot_imports', fallback='').split(',') MEASUREDBOOT_POLICYNAME = get_config().get('cloud_verifier', 'measured_boot_policy_name', fallback='accept-all') -LIBEFIVAR="libefivar.so" # formerly "/usr/lib/x86_64-linux-gnu/libefivar.so" +LIBEFIVAR="/usr/lib64/libefivar.so.1" # formerly "/usr/lib/x86_64-linux-gnu/libefivar.so" # this is where data will be bound to a quote, MUST BE RESETABLE! TPM_DATA_PCR = 16 ++++++ keylime.conf.diff ++++++ --- /var/tmp/diff_new_pack.gxAI4B/_old 2021-07-17 23:36:25.290070199 +0200 +++ /var/tmp/diff_new_pack.gxAI4B/_new 2021-07-17 23:36:25.290070199 +0200 @@ -2,7 +2,7 @@ =================================================================== --- keylime-6.1.0.orig/keylime.conf +++ keylime-6.1.0/keylime.conf -@@ -16,7 +16,8 @@ +@@ -16,7 +16,8 @@ ca_implementation = openssl # Revocation IP & Port used by either the cloud_agent or keylime_ca to receive # revocation events from the verifier. @@ -12,7 +12,7 @@ receive_revocation_port = 8992 #============================================================================= -@@ -24,11 +25,13 @@ +@@ -24,11 +25,13 @@ receive_revocation_port = 8992 #============================================================================= # The binding address and port for the agent server @@ -28,7 +28,7 @@ registrar_port = 8890 # The name of the RSA key that Keylime should use for protecting shares of U/V. -@@ -68,7 +71,8 @@ +@@ -68,7 +71,8 @@ extract_payload_zip = True # 'dmidecode -s system-uuid'. # If you set this to "hostname", Keylime will use the full qualified domain # name of current host as the agent id. @@ -38,7 +38,7 @@ # Whether to listen for revocation notifications from the verifier or not. listen_notfications = True -@@ -129,7 +133,8 @@ +@@ -129,7 +133,8 @@ ek_handle = generate #============================================================================= # The IP address and port of verifier server binds to @@ -48,7 +48,17 @@ cloudverifier_port = 8881 # The address and port of registrar server that verifier communicates with -@@ -406,7 +411,8 @@ +@@ -380,7 +385,8 @@ max_retries = 10 + # might provide a signed list of EK public key hashes. Then you could write + # an ek_check_script that checks the signature of the allowlist and then + # compares the hash of the given EK with the allowlist. +-require_ek_cert = True ++# require_ek_cert = True ++require_ek_cert = False + + # Optional script to execute to check the EK and/or EK certificate against a + # allowlist or any other additional EK processing you want to do. Runs in +@@ -406,7 +412,8 @@ ek_check_script= # The registrar's IP address and port used to communicate with other services # as well as the bind address for the registrar server.