The included patches implement graceful shutdown for both pull and push models, cancelling pending operations, and waiting for critical in-flight operations to finish before shutting down. Backport the following upstream PRs: - https://github.com/keylime/keylime/pull/1809 - Document supported configuration options - Sync missing and removed options from configuration templates - https://github.com/keylime/keylime/pull/1868 - Remove 'enable_authentication' from agent config templates - https://github.com/keylime/keylime/pull/1855 - Add push-model documentation - https://github.com/keylime/keylime/pull/1869 - Add verifier graceful shutdown - https://github.com/keylime/keylime/pull/1883 - Ignore SIGTERM and SIGINT signals on Manager and parent processes - https://github.com/keylime/keylime/pull/1886 - Move socket from /tmp to /var/run/keylime Also, update the keylime-selinux to the latest release (43.2.1) to include the following changes: - https://github.com/RedHat-SP-Security/keylime-selinux/pull/33 - Allow Keylime to perform socket operation on /var/run/keylime - https://github.com/RedHat-SP-Security/keylime-selinux/pull/34 - Allow Keylime to read /proc/net to populate certificates Subject Alternative Names (SAN) Documentation updates and configuration template updates were included to allow the graceful shutdown patch to apply cleanly. This also modifies the test runner to use pytest, adding python3-pytest to the BuildRequires. This was necessary to make the fixtures created in conftest.py to be used, which is not available when running with unittest. Resolves: RHEL-151493 Resolves: RHEL-151408 Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
1165 lines
36 KiB
Diff
1165 lines
36 KiB
Diff
From 4a36422caa40bf914b1b9f7ed86efc802e183ef1 Mon Sep 17 00:00:00 2001
|
|
From: Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
|
|
Date: Tue, 24 Mar 2026 18:04:55 +0100
|
|
Subject: [PATCH 1/3] templates: Remove unused ima_ml_count_file option
|
|
|
|
This option was defined in the 2.5 config template and mapping but
|
|
never used. Remove it to avoid confusion.
|
|
|
|
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
|
|
---
|
|
templates/2.5/agent.j2 | 3 ---
|
|
templates/2.5/mapping.json | 1 -
|
|
2 files changed, 4 deletions(-)
|
|
|
|
diff --git a/templates/2.5/agent.j2 b/templates/2.5/agent.j2
|
|
index 5e9a1a706..f56010e87 100644
|
|
--- a/templates/2.5/agent.j2
|
|
+++ b/templates/2.5/agent.j2
|
|
@@ -47,9 +47,6 @@ verifier_url = "{{ agent_verifier_url }}"
|
|
# Server identifier for certification keys
|
|
certification_keys_server_identifier = "{{ agent_certification_keys_server_identifier }}"
|
|
|
|
-# File to store the IMA measurement list count
|
|
-ima_ml_count_file = "{{ agent_ima_ml_count_file }}"
|
|
-
|
|
# Evidence version for UEFI logs
|
|
uefi_logs_evidence_version = "{{ agent_uefi_logs_evidence_version }}"
|
|
|
|
diff --git a/templates/2.5/mapping.json b/templates/2.5/mapping.json
|
|
index 4b198e768..04f89e77a 100644
|
|
--- a/templates/2.5/mapping.json
|
|
+++ b/templates/2.5/mapping.json
|
|
@@ -10,7 +10,6 @@
|
|
"exponential_backoff_initial_delay": "10000",
|
|
"exponential_backoff_max_delay": "360000",
|
|
"certification_keys_server_identifier": "ak",
|
|
- "ima_ml_count_file": "/tmp/ima_ml_count",
|
|
"uefi_logs_evidence_version": "1.0",
|
|
"tls_accept_invalid_certs": "false",
|
|
"tls_accept_invalid_hostnames": "false"
|
|
|
|
From baf182680ffd60ab0b4ef8bf42bba3d02208b392 Mon Sep 17 00:00:00 2001
|
|
From: Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
|
|
Date: Fri, 27 Mar 2026 10:55:35 +0100
|
|
Subject: [PATCH 2/3] templates: Sync agent config options with
|
|
keylime-agent.conf
|
|
|
|
Add missing agent options to the 2.5 upgrade templates and mapping
|
|
that are present in keylime-agent.conf and used in the agent code:
|
|
|
|
Common options:
|
|
- keylime_dir: working directory path
|
|
- payload_key: payload encryption private key
|
|
- payload_key_password: password for payload key
|
|
- revocation_actions_dir: path to pre-installed revocation scripts
|
|
- allow_payload_revocation_actions: control payload revocation actions
|
|
|
|
Push model options:
|
|
- verifier_tls_ca_cert: CA cert for verifier TLS verification
|
|
- registrar_tls_port: TLS port for registrar communication
|
|
- registrar_tls_enabled: enable TLS with registrar
|
|
- registrar_tls_ca_cert: CA cert for registrar TLS verification
|
|
- registrar_api_versions: API version negotiation with registrar
|
|
|
|
Fix default values to match keylime-agent.conf:
|
|
- exponential_backoff_max_delay: 360000 -> 300000
|
|
- uefi_logs_evidence_version: "1.0" -> "2.1"
|
|
|
|
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
|
|
---
|
|
templates/2.5/agent.j2 | 40 ++++++++++++++++++++++++++++++++++++++
|
|
templates/2.5/mapping.json | 14 +++++++++++--
|
|
2 files changed, 52 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/templates/2.5/agent.j2 b/templates/2.5/agent.j2
|
|
index f56010e87..9f85f8411 100644
|
|
--- a/templates/2.5/agent.j2
|
|
+++ b/templates/2.5/agent.j2
|
|
@@ -44,6 +44,11 @@ agent_data_path = "{{ agent_data_path }}"
|
|
# Verifier URL
|
|
verifier_url = "{{ agent_verifier_url }}"
|
|
|
|
+# Verifier TLS CA certificate (Push Model specific).
|
|
+# Used to verify the verifier's server certificate.
|
|
+# If set as "default", the "cv_ca/cacert.crt" value relative to keylime_dir is used.
|
|
+verifier_tls_ca_cert = "{{ agent.verifier_tls_ca_cert }}"
|
|
+
|
|
# Server identifier for certification keys
|
|
certification_keys_server_identifier = "{{ agent_certification_keys_server_identifier }}"
|
|
|
|
@@ -54,11 +59,31 @@ uefi_logs_evidence_version = "{{ agent_uefi_logs_evidence_version }}"
|
|
registrar_ip = "{{ agent.registrar_ip }}"
|
|
registrar_port = {{ agent.registrar_port }}
|
|
|
|
+# The TLS port of the registrar server (Push Model specific).
|
|
+# Used when registrar_tls_enabled is set to true.
|
|
+registrar_tls_port = {{ agent.registrar_tls_port }}
|
|
+
|
|
+# Enable TLS communication between agent and registrar (Push Model specific).
|
|
+# When enabled, the agent uses TLS (server verification only) with the registrar.
|
|
+registrar_tls_enabled = {{ agent.registrar_tls_enabled }}
|
|
+
|
|
+# TLS CA certificate for verifying the registrar's server certificate (Push Model specific).
|
|
+# Only used when registrar_tls_enabled is true.
|
|
+# If set as "default", the "cv_ca/cacert.crt" value relative to keylime_dir is used.
|
|
+registrar_tls_ca_cert = "{{ agent.registrar_tls_ca_cert }}"
|
|
+
|
|
+# The API versions to use when communicating with the registrar (Push Model specific).
|
|
+# Supports "default" (all supported), "latest", or a comma-separated list.
|
|
+registrar_api_versions = "{{ agent.registrar_api_versions }}"
|
|
+
|
|
# Enable mTLS communication between agent, verifier and tenant.
|
|
# Details on why setting it to "False" is generally considered insecure can be found
|
|
# on https://github.com/keylime/keylime/security/advisories/GHSA-2m39-75g9-ff5r
|
|
enable_agent_mtls = {{ agent.enable_agent_mtls }}
|
|
|
|
+# The keylime working directory.
|
|
+keylime_dir = "{{ agent.keylime_dir }}"
|
|
+
|
|
# Accept invalid TLS certificates (INSECURE - for testing only)
|
|
# When enabled, the agent will accept self-signed or invalid certificates
|
|
# This option is specific to the push attestation model.
|
|
@@ -100,6 +125,14 @@ server_key = "{{ agent.server_key }}"
|
|
# If left empty, the private key will not be encrypted.
|
|
server_key_password = "{{ agent.server_key_password }}"
|
|
|
|
+# The name of the file containing the payload encryption private key.
|
|
+# If set as "default", the "payload-private.pem" value is used.
|
|
+payload_key = "{{ agent.payload_key }}"
|
|
+
|
|
+# Set the password used to encrypt the payload private key file.
|
|
+# If left empty, the private key will not be encrypted.
|
|
+payload_key_password = "{{ agent.payload_key_password }}"
|
|
+
|
|
# The name of the file containing the X509 certificate used as the Keylime agent
|
|
# server TLS certificate.
|
|
# This certificate must be self signed.
|
|
@@ -159,6 +192,9 @@ revocation_cert = "{{ agent.revocation_cert }}"
|
|
# action_list in the unzipped payload content.
|
|
revocation_actions = "{{ agent.revocation_actions }}"
|
|
|
|
+# The path to the directory containing pre-installed revocation action scripts.
|
|
+revocation_actions_dir = "{{ agent.revocation_actions_dir }}"
|
|
+
|
|
# A script to execute after unzipping the tenant payload. This is like
|
|
# cloud-init lite =) Keylime will run it with a /bin/sh environment and
|
|
# with a working directory of /var/lib/keylime/secure/unzipped.
|
|
@@ -171,6 +207,10 @@ payload_script = "{{ agent.payload_script }}"
|
|
# https://github.com/keylime/keylime/security/advisories/GHSA-2m39-75g9-ff5r
|
|
enable_insecure_payload = {{ agent.enable_insecure_payload }}
|
|
|
|
+# Whether to allow running revocation actions sent as part of the payload.
|
|
+# Setting to false limits revocation actions to pre-installed ones.
|
|
+allow_payload_revocation_actions = {{ agent.allow_payload_revocation_actions }}
|
|
+
|
|
# Maximum number of retries for exponential backoff
|
|
exponential_backoff_max_retries = {{ agent.exponential_backoff_max_retries }}
|
|
# Initial delay in milliseconds for exponential backoff
|
|
diff --git a/templates/2.5/mapping.json b/templates/2.5/mapping.json
|
|
index 04f89e77a..f3eaf8dbb 100644
|
|
--- a/templates/2.5/mapping.json
|
|
+++ b/templates/2.5/mapping.json
|
|
@@ -4,13 +4,23 @@
|
|
"components": {
|
|
"agent": {
|
|
"add": {
|
|
+ "keylime_dir": "/var/lib/keylime",
|
|
+ "payload_key": "default",
|
|
+ "payload_key_password": "",
|
|
+ "revocation_actions_dir": "/usr/libexec/keylime",
|
|
+ "allow_payload_revocation_actions": "true",
|
|
"agent_data_path": "/var/lib/keylime/agent_data.json",
|
|
"verifier_url": "https://localhost:8881",
|
|
+ "verifier_tls_ca_cert": "default",
|
|
+ "registrar_tls_port": "8891",
|
|
+ "registrar_tls_enabled": "false",
|
|
+ "registrar_tls_ca_cert": "default",
|
|
+ "registrar_api_versions": "default",
|
|
"exponential_backoff_max_retries": "5",
|
|
"exponential_backoff_initial_delay": "10000",
|
|
- "exponential_backoff_max_delay": "360000",
|
|
+ "exponential_backoff_max_delay": "300000",
|
|
"certification_keys_server_identifier": "ak",
|
|
- "uefi_logs_evidence_version": "1.0",
|
|
+ "uefi_logs_evidence_version": "2.1",
|
|
"tls_accept_invalid_certs": "false",
|
|
"tls_accept_invalid_hostnames": "false"
|
|
}
|
|
|
|
From bd392633a36839dfa51f86a1568370a87b3ecd37 Mon Sep 17 00:00:00 2001
|
|
From: Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
|
|
Date: Fri, 27 Mar 2026 10:57:04 +0100
|
|
Subject: [PATCH 3/3] docs: Add tables with push-attestation configuration
|
|
options
|
|
|
|
Add comprehensive configuration reference tables for all Keylime
|
|
components documenting option names, defaults, config versions, and
|
|
environment variable overrides. Tables are organized by component and
|
|
separated into common, pull-model, and push-model sections.
|
|
|
|
Mark removed agent options with "(removed in 2.5)" and version range
|
|
2.0-2.4:
|
|
- measure_payload_pcr
|
|
- exponential_backoff
|
|
- retry_interval
|
|
- max_retries
|
|
|
|
Add missing agent common options:
|
|
- keylime_dir
|
|
- payload_key
|
|
- payload_key_password
|
|
- revocation_actions_dir
|
|
- allow_payload_revocation_actions
|
|
|
|
Add missing agent push-model options:
|
|
- attestation_interval_seconds
|
|
- verifier_tls_ca_cert
|
|
- registrar_tls_port
|
|
- registrar_tls_enabled
|
|
- registrar_tls_ca_cert
|
|
- registrar_api_versions
|
|
|
|
Fix default values to match keylime-agent.conf:
|
|
- exponential_backoff_max_delay: 360000 -> 300000
|
|
- uefi_logs_evidence_version: "1.0" -> "2.1"
|
|
|
|
Use consistent formatting for default values (unquoted for INI
|
|
components, quoted strings and unquoted booleans/integers for TOML).
|
|
|
|
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
|
Signed-off-by: Anderson Toshiyuki Sasaki <ansasaki@redhat.com>
|
|
---
|
|
docs/user_guide/configuration.rst | 897 +++++++++++++++++++++++++++++-
|
|
1 file changed, 893 insertions(+), 4 deletions(-)
|
|
|
|
diff --git a/docs/user_guide/configuration.rst b/docs/user_guide/configuration.rst
|
|
index 2e50757df..aae534423 100644
|
|
--- a/docs/user_guide/configuration.rst
|
|
+++ b/docs/user_guide/configuration.rst
|
|
@@ -117,7 +117,7 @@ The environment variables are defined as
|
|
The section can be omitted if the option to set is located in the main section
|
|
(the section named after the component). Otherwise the section is required.
|
|
|
|
-For example, to set the ``webhook_url` option from the `[revocations]`` section in
|
|
+For example, to set the ``webhook_url`` option from the ``[revocations]`` section in
|
|
the ``verifier.conf`` file, the environment variable to set is
|
|
``KEYLIME_VERIFIER_REVOCATIONS_WEBHOOK_URL``.
|
|
|
|
@@ -126,7 +126,7 @@ option from the ``[verifier]`` section in the ``verifier.conf``, the environment
|
|
variable to set is ``KEYLIME_VERIFIER_SERVER_KEY`` (note that the section can be
|
|
omitted).
|
|
|
|
-Configuraton upgrades
|
|
+Configuration upgrades
|
|
---------------------
|
|
|
|
When updating keylime, it is also recommended to upgrade the configuration to
|
|
@@ -183,9 +183,9 @@ configuration files are kept intact as backup and renamed with the ``.bkp`` exte
|
|
appended to the file names.
|
|
|
|
In case the ``--output`` option is provided to the ``keylime_upgrade_config``
|
|
-script, the configuration files are written even when they were alredy
|
|
+script, the configuration files are written even when they were already
|
|
up-to-date using the available templates. It can be seen as a way to force the
|
|
-creation of the configuration fiels, fitting the options read into the new
|
|
+creation of the configuration files, fitting the options read into the new
|
|
templates.
|
|
|
|
Passing the ``--debug`` option to the ``keylime_upgrade_config``, the logging level
|
|
@@ -211,3 +211,892 @@ To ignore the input files and use the default value for all options, the
|
|
|
|
Finally, to process a single mapping file, the mapping file path can be passed
|
|
via the ``--mapping`` option
|
|
+
|
|
+Attestation Models: Pull vs Push
|
|
+---------------------------------
|
|
+
|
|
+Keylime supports two attestation models that determine how the verifier obtains
|
|
+attestation evidence from agents:
|
|
+
|
|
+Pull Model (Traditional)
|
|
+~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
+
|
|
+In the pull model, the verifier actively polls agents at regular intervals to
|
|
+retrieve attestation evidence. This is the default and traditional mode of
|
|
+operation.
|
|
+
|
|
+**Use Cases:**
|
|
+
|
|
+* Traditional deployments where the verifier can directly connect to agents
|
|
+* Environments with stable network connectivity
|
|
+* When you need fine-grained control over attestation frequency
|
|
+
|
|
+Push Model (Agent-Driven)
|
|
+~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
+
|
|
+In the push model, agents periodically push their attestation evidence to the
|
|
+verifier. This mode is useful when the verifier cannot directly connect to
|
|
+agents (e.g., agents behind firewalls or NAT).
|
|
+
|
|
+**Use Cases:**
|
|
+
|
|
+* Agents deployed behind firewalls or NAT
|
|
+* Cloud or edge deployments where direct connectivity is limited
|
|
+* When agents need to control their own attestation schedule
|
|
+
|
|
+.. note::
|
|
+ The push model options were introduced in configuration version 2.5 and
|
|
+ require the push attestation agent.
|
|
+
|
|
+Configuration Options Reference
|
|
+--------------------------------
|
|
+
|
|
+This section provides comprehensive tables of all configuration options for each
|
|
+Keylime component, including default values, environment variable overrides, and
|
|
+applicability to pull/push attestation models.
|
|
+
|
|
+Verifier Configuration (``/etc/keylime/verifier.conf``)
|
|
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
+
|
|
+Common Options (Both Models)
|
|
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
+
|
|
+.. list-table::
|
|
+ :header-rows: 1
|
|
+ :widths: 25 12 15 48
|
|
+
|
|
+ * - Option
|
|
+ - Default
|
|
+ - Version
|
|
+ - Environment Variable
|
|
+ * - ``version``
|
|
+ - ``2.5``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_VERSION``
|
|
+ * - ``uuid``
|
|
+ - ``default``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_UUID``
|
|
+ * - ``ip``
|
|
+ - ``127.0.0.1``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_IP``
|
|
+ * - ``port``
|
|
+ - ``8881``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_PORT``
|
|
+ * - ``registrar_ip``
|
|
+ - ``127.0.0.1``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_REGISTRAR_IP``
|
|
+ * - ``registrar_port``
|
|
+ - ``8891``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_REGISTRAR_PORT``
|
|
+ * - ``enable_agent_mtls``
|
|
+ - ``True``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_ENABLE_AGENT_MTLS``
|
|
+ * - ``tls_dir``
|
|
+ - ``generate``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_TLS_DIR``
|
|
+ * - ``server_key``
|
|
+ - ``default``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_SERVER_KEY``
|
|
+ * - ``server_key_password``
|
|
+ - (empty)
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_SERVER_KEY_PASSWORD``
|
|
+ * - ``server_cert``
|
|
+ - ``default``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_SERVER_CERT``
|
|
+ * - ``trusted_client_ca``
|
|
+ - ``default``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_TRUSTED_CLIENT_CA``
|
|
+ * - ``client_key``
|
|
+ - ``default``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_CLIENT_KEY``
|
|
+ * - ``client_key_password``
|
|
+ - (empty)
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_CLIENT_KEY_PASSWORD``
|
|
+ * - ``client_cert``
|
|
+ - ``default``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_CLIENT_CERT``
|
|
+ * - ``trusted_server_ca``
|
|
+ - ``default``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_TRUSTED_SERVER_CA``
|
|
+ * - ``database_url``
|
|
+ - ``sqlite``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_DATABASE_URL``
|
|
+ * - ``database_pool_sz_ovfl``
|
|
+ - ``5,10``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_DATABASE_POOL_SZ_OVFL``
|
|
+ * - ``auto_migrate_db``
|
|
+ - ``True``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_AUTO_MIGRATE_DB``
|
|
+ * - ``num_workers``
|
|
+ - ``0``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_NUM_WORKERS``
|
|
+ * - ``max_upload_size``
|
|
+ - ``104857600``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_MAX_UPLOAD_SIZE``
|
|
+ * - ``measured_boot_policy_name``
|
|
+ - ``accept-all``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_MEASURED_BOOT_POLICY_NAME``
|
|
+ * - ``measured_boot_imports``
|
|
+ - ``[]``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_MEASURED_BOOT_IMPORTS``
|
|
+ * - ``measured_boot_evaluate``
|
|
+ - ``once``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_MEASURED_BOOT_EVALUATE``
|
|
+ * - ``severity_labels``
|
|
+ - ``["info", "notice", ...]``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_SEVERITY_LABELS``
|
|
+ * - ``severity_policy``
|
|
+ - ``[{"event_id": ".*", ...}]``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_SEVERITY_POLICY``
|
|
+ * - ``ignore_tomtou_errors``
|
|
+ - ``False``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_IGNORE_TOMTOU_ERRORS``
|
|
+ * - ``durable_attestation_import``
|
|
+ - (empty)
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_DURABLE_ATTESTATION_IMPORT``
|
|
+ * - ``persistent_store_url``
|
|
+ - (empty)
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_PERSISTENT_STORE_URL``
|
|
+ * - ``transparency_log_url``
|
|
+ - (empty)
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_TRANSPARENCY_LOG_URL``
|
|
+ * - ``time_stamp_authority_url``
|
|
+ - (empty)
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_TIME_STAMP_AUTHORITY_URL``
|
|
+ * - ``time_stamp_authority_certs_path``
|
|
+ - (empty)
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_TIME_STAMP_AUTHORITY_CERTS_PATH``
|
|
+ * - ``persistent_store_format``
|
|
+ - ``json``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_PERSISTENT_STORE_FORMAT``
|
|
+ * - ``persistent_store_encoding``
|
|
+ - (empty)
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_PERSISTENT_STORE_ENCODING``
|
|
+ * - ``transparency_log_sign_algo``
|
|
+ - ``sha256``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_TRANSPARENCY_LOG_SIGN_ALGO``
|
|
+ * - ``signed_attributes``
|
|
+ - (empty)
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_SIGNED_ATTRIBUTES``
|
|
+ * - ``require_allow_list_signatures``
|
|
+ - ``False``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_REQUIRE_ALLOW_LIST_SIGNATURES``
|
|
+ * - ``authorization_provider``
|
|
+ - ``simple``
|
|
+ - 2.5
|
|
+ - ``KEYLIME_VERIFIER_AUTHORIZATION_PROVIDER``
|
|
+ * - ``cert_subject_alternative_names``
|
|
+ - (empty)
|
|
+ - 2.5
|
|
+ - ``KEYLIME_VERIFIER_CERT_SUBJECT_ALTERNATIVE_NAMES``
|
|
+
|
|
+Pull Model Specific Options
|
|
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
+
|
|
+.. list-table::
|
|
+ :header-rows: 1
|
|
+ :widths: 25 12 15 48
|
|
+
|
|
+ * - Option
|
|
+ - Default
|
|
+ - Version
|
|
+ - Environment Variable
|
|
+ * - ``quote_interval``
|
|
+ - ``2``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_QUOTE_INTERVAL``
|
|
+ * - ``retry_interval``
|
|
+ - ``2``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_RETRY_INTERVAL``
|
|
+ * - ``max_retries``
|
|
+ - ``5``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_MAX_RETRIES``
|
|
+ * - ``exponential_backoff``
|
|
+ - ``True``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_EXPONENTIAL_BACKOFF``
|
|
+ * - ``request_timeout``
|
|
+ - ``60.0``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_REQUEST_TIMEOUT``
|
|
+
|
|
+Push Model Specific Options
|
|
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
+
|
|
+.. list-table::
|
|
+ :header-rows: 1
|
|
+ :widths: 25 12 15 48
|
|
+
|
|
+ * - Option
|
|
+ - Default
|
|
+ - Version
|
|
+ - Environment Variable
|
|
+ * - ``mode``
|
|
+ - ``pull``
|
|
+ - 2.5
|
|
+ - ``KEYLIME_VERIFIER_MODE``
|
|
+ * - ``challenge_lifetime``
|
|
+ - ``1800``
|
|
+ - 2.5
|
|
+ - ``KEYLIME_VERIFIER_CHALLENGE_LIFETIME``
|
|
+ * - ``verification_timeout``
|
|
+ - ``0``
|
|
+ - 2.5
|
|
+ - ``KEYLIME_VERIFIER_VERIFICATION_TIMEOUT``
|
|
+ * - ``session_create_rate_limit_per_ip``
|
|
+ - ``50``
|
|
+ - 2.5
|
|
+ - ``KEYLIME_VERIFIER_SESSION_CREATE_RATE_LIMIT_PER_IP``
|
|
+ * - ``session_create_rate_limit_window_ip``
|
|
+ - ``60``
|
|
+ - 2.5
|
|
+ - ``KEYLIME_VERIFIER_SESSION_CREATE_RATE_LIMIT_WINDOW_IP``
|
|
+ * - ``session_create_rate_limit_per_agent``
|
|
+ - ``15``
|
|
+ - 2.5
|
|
+ - ``KEYLIME_VERIFIER_SESSION_CREATE_RATE_LIMIT_PER_AGENT``
|
|
+ * - ``session_create_rate_limit_window_agent``
|
|
+ - ``60``
|
|
+ - 2.5
|
|
+ - ``KEYLIME_VERIFIER_SESSION_CREATE_RATE_LIMIT_WINDOW_AGENT``
|
|
+ * - ``session_lifetime``
|
|
+ - ``180``
|
|
+ - 2.5
|
|
+ - ``KEYLIME_VERIFIER_SESSION_LIFETIME``
|
|
+ * - ``extend_token_on_attestation``
|
|
+ - ``True``
|
|
+ - 2.5
|
|
+ - ``KEYLIME_VERIFIER_EXTEND_TOKEN_ON_ATTESTATION``
|
|
+
|
|
+Revocations Section
|
|
+^^^^^^^^^^^^^^^^^^^
|
|
+
|
|
+.. list-table::
|
|
+ :header-rows: 1
|
|
+ :widths: 30 12 15 43
|
|
+
|
|
+ * - Option
|
|
+ - Default
|
|
+ - Version
|
|
+ - Environment Variable
|
|
+ * - ``enabled_revocation_notifications``
|
|
+ - ``['agent']``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_REVOCATIONS_ENABLED_REVOCATION_NOTIFICATIONS``
|
|
+ * - ``zmq_ip``
|
|
+ - ``127.0.0.1``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_REVOCATIONS_ZMQ_IP``
|
|
+ * - ``zmq_port``
|
|
+ - ``8992``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_REVOCATIONS_ZMQ_PORT``
|
|
+ * - ``webhook_url``
|
|
+ - (empty)
|
|
+ - 2.0
|
|
+ - ``KEYLIME_VERIFIER_REVOCATIONS_WEBHOOK_URL``
|
|
+
|
|
+Registrar Configuration (``/etc/keylime/registrar.conf``)
|
|
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
+
|
|
+.. list-table::
|
|
+ :header-rows: 1
|
|
+ :widths: 30 12 15 43
|
|
+
|
|
+ * - Option
|
|
+ - Default
|
|
+ - Version
|
|
+ - Environment Variable
|
|
+ * - ``version``
|
|
+ - ``2.5``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_REGISTRAR_VERSION``
|
|
+ * - ``ip``
|
|
+ - ``127.0.0.1``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_REGISTRAR_IP``
|
|
+ * - ``port``
|
|
+ - ``8890``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_REGISTRAR_PORT``
|
|
+ * - ``tls_port``
|
|
+ - ``8891``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_REGISTRAR_TLS_PORT``
|
|
+ * - ``tls_dir``
|
|
+ - ``default``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_REGISTRAR_TLS_DIR``
|
|
+ * - ``server_key``
|
|
+ - ``default``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_REGISTRAR_SERVER_KEY``
|
|
+ * - ``server_key_password``
|
|
+ - (empty)
|
|
+ - 2.0
|
|
+ - ``KEYLIME_REGISTRAR_SERVER_KEY_PASSWORD``
|
|
+ * - ``server_cert``
|
|
+ - ``default``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_REGISTRAR_SERVER_CERT``
|
|
+ * - ``trusted_client_ca``
|
|
+ - ``default``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_REGISTRAR_TRUSTED_CLIENT_CA``
|
|
+ * - ``database_url``
|
|
+ - ``sqlite``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_REGISTRAR_DATABASE_URL``
|
|
+ * - ``database_pool_sz_ovfl``
|
|
+ - ``5,10``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_REGISTRAR_DATABASE_POOL_SZ_OVFL``
|
|
+ * - ``auto_migrate_db``
|
|
+ - ``True``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_REGISTRAR_AUTO_MIGRATE_DB``
|
|
+ * - ``durable_attestation_import``
|
|
+ - (empty)
|
|
+ - 2.0
|
|
+ - ``KEYLIME_REGISTRAR_DURABLE_ATTESTATION_IMPORT``
|
|
+ * - ``persistent_store_url``
|
|
+ - (empty)
|
|
+ - 2.0
|
|
+ - ``KEYLIME_REGISTRAR_PERSISTENT_STORE_URL``
|
|
+ * - ``transparency_log_url``
|
|
+ - (empty)
|
|
+ - 2.0
|
|
+ - ``KEYLIME_REGISTRAR_TRANSPARENCY_LOG_URL``
|
|
+ * - ``time_stamp_authority_url``
|
|
+ - (empty)
|
|
+ - 2.0
|
|
+ - ``KEYLIME_REGISTRAR_TIME_STAMP_AUTHORITY_URL``
|
|
+ * - ``time_stamp_authority_certs_path``
|
|
+ - (empty)
|
|
+ - 2.0
|
|
+ - ``KEYLIME_REGISTRAR_TIME_STAMP_AUTHORITY_CERTS_PATH``
|
|
+ * - ``persistent_store_format``
|
|
+ - ``json``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_REGISTRAR_PERSISTENT_STORE_FORMAT``
|
|
+ * - ``persistent_store_encoding``
|
|
+ - (empty)
|
|
+ - 2.0
|
|
+ - ``KEYLIME_REGISTRAR_PERSISTENT_STORE_ENCODING``
|
|
+ * - ``transparency_log_sign_algo``
|
|
+ - ``sha256``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_REGISTRAR_TRANSPARENCY_LOG_SIGN_ALGO``
|
|
+ * - ``signed_attributes``
|
|
+ - ``ek_tpm,aik_tpm,ekcert``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_REGISTRAR_SIGNED_ATTRIBUTES``
|
|
+ * - ``tpm_identity``
|
|
+ - ``default``
|
|
+ - 2.1
|
|
+ - ``KEYLIME_REGISTRAR_TPM_IDENTITY``
|
|
+ * - ``malformed_cert_action``
|
|
+ - ``warn``
|
|
+ - 2.4
|
|
+ - ``KEYLIME_REGISTRAR_MALFORMED_CERT_ACTION``
|
|
+ * - ``authorization_provider``
|
|
+ - ``simple``
|
|
+ - 2.5
|
|
+ - ``KEYLIME_REGISTRAR_AUTHORIZATION_PROVIDER``
|
|
+ * - ``cert_subject_alternative_names``
|
|
+ - (empty)
|
|
+ - 2.5
|
|
+ - ``KEYLIME_REGISTRAR_CERT_SUBJECT_ALTERNATIVE_NAMES``
|
|
+
|
|
+Tenant Configuration (``/etc/keylime/tenant.conf``)
|
|
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
+
|
|
+.. list-table::
|
|
+ :header-rows: 1
|
|
+ :widths: 30 12 15 43
|
|
+
|
|
+ * - Option
|
|
+ - Default
|
|
+ - Version
|
|
+ - Environment Variable
|
|
+ * - ``version``
|
|
+ - ``2.5``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_TENANT_VERSION``
|
|
+ * - ``verifier_ip``
|
|
+ - ``127.0.0.1``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_TENANT_VERIFIER_IP``
|
|
+ * - ``verifier_port``
|
|
+ - ``8881``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_TENANT_VERIFIER_PORT``
|
|
+ * - ``registrar_ip``
|
|
+ - ``127.0.0.1``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_TENANT_REGISTRAR_IP``
|
|
+ * - ``registrar_port``
|
|
+ - ``8891``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_TENANT_REGISTRAR_PORT``
|
|
+ * - ``tls_dir``
|
|
+ - ``default``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_TENANT_TLS_DIR``
|
|
+ * - ``enable_agent_mtls``
|
|
+ - ``True``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_TENANT_ENABLE_AGENT_MTLS``
|
|
+ * - ``client_key``
|
|
+ - ``default``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_TENANT_CLIENT_KEY``
|
|
+ * - ``client_key_password``
|
|
+ - (empty)
|
|
+ - 2.0
|
|
+ - ``KEYLIME_TENANT_CLIENT_KEY_PASSWORD``
|
|
+ * - ``client_cert``
|
|
+ - ``default``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_TENANT_CLIENT_CERT``
|
|
+ * - ``trusted_server_ca``
|
|
+ - ``default``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_TENANT_TRUSTED_SERVER_CA``
|
|
+ * - ``tpm_cert_store``
|
|
+ - ``/var/lib/keylime/tpm_cert_store``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_TENANT_TPM_CERT_STORE``
|
|
+ * - ``max_payload_size``
|
|
+ - ``1048576``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_TENANT_MAX_PAYLOAD_SIZE``
|
|
+ * - ``accept_tpm_hash_algs``
|
|
+ - ``['sha512', 'sha384', 'sha256']``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_TENANT_ACCEPT_TPM_HASH_ALGS``
|
|
+ * - ``accept_tpm_encryption_algs``
|
|
+ - ``['ecc', 'rsa']``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_TENANT_ACCEPT_TPM_ENCRYPTION_ALGS``
|
|
+ * - ``accept_tpm_signing_algs``
|
|
+ - ``['ecschnorr', 'rsassa']``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_TENANT_ACCEPT_TPM_SIGNING_ALGS``
|
|
+ * - ``exponential_backoff``
|
|
+ - ``True``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_TENANT_EXPONENTIAL_BACKOFF``
|
|
+ * - ``retry_interval``
|
|
+ - ``2``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_TENANT_RETRY_INTERVAL``
|
|
+ * - ``max_retries``
|
|
+ - ``5``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_TENANT_MAX_RETRIES``
|
|
+ * - ``request_timeout``
|
|
+ - ``60``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_TENANT_REQUEST_TIMEOUT``
|
|
+ * - ``require_ek_cert``
|
|
+ - ``True``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_TENANT_REQUIRE_EK_CERT``
|
|
+ * - ``ek_check_script``
|
|
+ - (empty)
|
|
+ - 2.0
|
|
+ - ``KEYLIME_TENANT_EK_CHECK_SCRIPT``
|
|
+ * - ``mb_refstate``
|
|
+ - (empty)
|
|
+ - 2.0
|
|
+ - ``KEYLIME_TENANT_MB_REFSTATE``
|
|
+
|
|
+CA Configuration (``/etc/keylime/ca.conf``)
|
|
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
+
|
|
+.. list-table::
|
|
+ :header-rows: 1
|
|
+ :widths: 30 15 15 40
|
|
+
|
|
+ * - Option
|
|
+ - Default
|
|
+ - Version
|
|
+ - Environment Variable
|
|
+ * - ``version``
|
|
+ - ``2.5``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_CA_VERSION``
|
|
+ * - ``password``
|
|
+ - ``default``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_CA_PASSWORD``
|
|
+ * - ``cert_country``
|
|
+ - ``US``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_CA_CERT_COUNTRY``
|
|
+ * - ``cert_ca_name``
|
|
+ - ``Keylime Certificate Authority``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_CA_CERT_CA_NAME``
|
|
+ * - ``cert_state``
|
|
+ - ``MA``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_CA_CERT_STATE``
|
|
+ * - ``cert_locality``
|
|
+ - ``Lexington``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_CA_CERT_LOCALITY``
|
|
+ * - ``cert_organization``
|
|
+ - ``MITLL``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_CA_CERT_ORGANIZATION``
|
|
+ * - ``cert_org_unit``
|
|
+ - ``53``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_CA_CERT_ORG_UNIT``
|
|
+ * - ``cert_ca_lifetime``
|
|
+ - ``3650``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_CA_CERT_CA_LIFETIME``
|
|
+ * - ``cert_lifetime``
|
|
+ - ``365``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_CA_CERT_LIFETIME``
|
|
+ * - ``cert_bits``
|
|
+ - ``2048``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_CA_CERT_BITS``
|
|
+ * - ``cert_crl_dist``
|
|
+ - ``http://localhost:38080/crl``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_CA_CERT_CRL_DIST``
|
|
+
|
|
+Agent Configuration (``/etc/keylime/agent.conf``)
|
|
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
+
|
|
+.. warning::
|
|
+ The Python agent is deprecated and will be removed in version 7.0.0!
|
|
+ Please migrate to the Rust-based agent from https://github.com/keylime/rust-keylime/
|
|
+
|
|
+Common Options (Both Models)
|
|
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
+
|
|
+.. list-table::
|
|
+ :header-rows: 1
|
|
+ :widths: 28 12 12 48
|
|
+
|
|
+ * - Option
|
|
+ - Default
|
|
+ - Version
|
|
+ - Environment Variable
|
|
+ * - ``version``
|
|
+ - ``"2.5"``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_VERSION``
|
|
+ * - ``api_versions``
|
|
+ - ``"default"``
|
|
+ - 2.4
|
|
+ - ``KEYLIME_AGENT_API_VERSIONS``
|
|
+ * - ``uuid``
|
|
+ - ``"d432fbb3-d2f1-4a97-9ef7-75bd81c00000"``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_UUID``
|
|
+ * - ``ip``
|
|
+ - ``"127.0.0.1"``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_IP``
|
|
+ * - ``port``
|
|
+ - ``9002``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_PORT``
|
|
+ * - ``contact_ip``
|
|
+ - ``"127.0.0.1"``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_CONTACT_IP``
|
|
+ * - ``contact_port``
|
|
+ - ``9002``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_CONTACT_PORT``
|
|
+ * - ``registrar_ip``
|
|
+ - ``"127.0.0.1"``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_REGISTRAR_IP``
|
|
+ * - ``registrar_port``
|
|
+ - ``8890``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_REGISTRAR_PORT``
|
|
+ * - ``enable_agent_mtls``
|
|
+ - ``true``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_ENABLE_AGENT_MTLS``
|
|
+ * - ``tls_dir``
|
|
+ - ``"default"``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_TLS_DIR``
|
|
+ * - ``server_key``
|
|
+ - ``"default"``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_SERVER_KEY``
|
|
+ * - ``server_key_password``
|
|
+ - ``""``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_SERVER_KEY_PASSWORD``
|
|
+ * - ``server_cert``
|
|
+ - ``"default"``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_SERVER_CERT``
|
|
+ * - ``trusted_client_ca``
|
|
+ - ``"default"``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_TRUSTED_CLIENT_CA``
|
|
+ * - ``enc_keyname``
|
|
+ - ``"derived_tci_key"``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_ENC_KEYNAME``
|
|
+ * - ``dec_payload_file``
|
|
+ - ``"decrypted_payload"``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_DEC_PAYLOAD_FILE``
|
|
+ * - ``secure_size``
|
|
+ - ``"1m"``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_SECURE_SIZE``
|
|
+ * - ``tpm_ownerpassword``
|
|
+ - ``""``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_TPM_OWNERPASSWORD``
|
|
+ * - ``extract_payload_zip``
|
|
+ - ``true``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_EXTRACT_PAYLOAD_ZIP``
|
|
+ * - ``enable_revocation_notifications``
|
|
+ - ``true``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_ENABLE_REVOCATION_NOTIFICATIONS``
|
|
+ * - ``revocation_notification_ip``
|
|
+ - ``"127.0.0.1"``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_REVOCATION_NOTIFICATION_IP``
|
|
+ * - ``revocation_notification_port``
|
|
+ - ``8992``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_REVOCATION_NOTIFICATION_PORT``
|
|
+ * - ``revocation_cert``
|
|
+ - ``"default"``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_REVOCATION_CERT``
|
|
+ * - ``revocation_actions``
|
|
+ - ``"[]"``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_REVOCATION_ACTIONS``
|
|
+ * - ``payload_script``
|
|
+ - ``"autorun.sh"``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_PAYLOAD_SCRIPT``
|
|
+ * - ``enable_insecure_payload``
|
|
+ - ``false``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_ENABLE_INSECURE_PAYLOAD``
|
|
+ * - ``measure_payload_pcr``
|
|
+ - ``-1``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_MEASURE_PAYLOAD_PCR``
|
|
+ * - ``exponential_backoff``
|
|
+ - ``true``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_EXPONENTIAL_BACKOFF``
|
|
+ * - ``retry_interval``
|
|
+ - ``2``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_RETRY_INTERVAL``
|
|
+ * - ``max_retries``
|
|
+ - ``4``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_MAX_RETRIES``
|
|
+ * - ``tpm_hash_alg``
|
|
+ - ``"sha256"``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_TPM_HASH_ALG``
|
|
+ * - ``tpm_encryption_alg``
|
|
+ - ``"rsa"``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_TPM_ENCRYPTION_ALG``
|
|
+ * - ``tpm_signing_alg``
|
|
+ - ``"rsassa"``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_TPM_SIGNING_ALG``
|
|
+ * - ``ek_handle``
|
|
+ - ``"generate"``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_EK_HANDLE``
|
|
+ * - ``enable_iak_idevid``
|
|
+ - ``false``
|
|
+ - 2.1
|
|
+ - ``KEYLIME_AGENT_ENABLE_IAK_IDEVID``
|
|
+ * - ``iak_idevid_template``
|
|
+ - ``"detect"``
|
|
+ - 2.1
|
|
+ - ``KEYLIME_AGENT_IAK_IDEVID_TEMPLATE``
|
|
+ * - ``iak_idevid_asymmetric_alg``
|
|
+ - ``"rsa"``
|
|
+ - 2.1
|
|
+ - ``KEYLIME_AGENT_IAK_IDEVID_ASYMMETRIC_ALG``
|
|
+ * - ``iak_idevid_name_alg``
|
|
+ - ``"sha256"``
|
|
+ - 2.1
|
|
+ - ``KEYLIME_AGENT_IAK_IDEVID_NAME_ALG``
|
|
+ * - ``idevid_password``
|
|
+ - ``""``
|
|
+ - 2.3
|
|
+ - ``KEYLIME_AGENT_IDEVID_PASSWORD``
|
|
+ * - ``idevid_handle``
|
|
+ - ``""``
|
|
+ - 2.3
|
|
+ - ``KEYLIME_AGENT_IDEVID_HANDLE``
|
|
+ * - ``iak_password``
|
|
+ - ``""``
|
|
+ - 2.3
|
|
+ - ``KEYLIME_AGENT_IAK_PASSWORD``
|
|
+ * - ``iak_handle``
|
|
+ - ``""``
|
|
+ - 2.3
|
|
+ - ``KEYLIME_AGENT_IAK_HANDLE``
|
|
+ * - ``iak_cert``
|
|
+ - ``"default"``
|
|
+ - 2.1
|
|
+ - ``KEYLIME_AGENT_IAK_CERT``
|
|
+ * - ``idevid_cert``
|
|
+ - ``"default"``
|
|
+ - 2.1
|
|
+ - ``KEYLIME_AGENT_IDEVID_CERT``
|
|
+ * - ``run_as``
|
|
+ - ``"keylime:tss"``
|
|
+ - 2.0
|
|
+ - ``KEYLIME_AGENT_RUN_AS``
|
|
+ * - ``ima_ml_path``
|
|
+ - ``"default"``
|
|
+ - 2.2
|
|
+ - ``KEYLIME_AGENT_IMA_ML_PATH``
|
|
+ * - ``measuredboot_ml_path``
|
|
+ - ``"default"``
|
|
+ - 2.2
|
|
+ - ``KEYLIME_AGENT_MEASUREDBOOT_ML_PATH``
|
|
+
|
|
+Push Model Specific Options
|
|
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
+
|
|
+.. list-table::
|
|
+ :header-rows: 1
|
|
+ :widths: 35 12 12 41
|
|
+
|
|
+ * - Option
|
|
+ - Default
|
|
+ - Version
|
|
+ - Environment Variable
|
|
+ * - ``agent_data_path``
|
|
+ - ``"/var/lib/keylime/agent_data.json"``
|
|
+ - 2.5
|
|
+ - ``KEYLIME_AGENT_AGENT_DATA_PATH``
|
|
+ * - ``verifier_url``
|
|
+ - ``"https://localhost:8881"``
|
|
+ - 2.5
|
|
+ - ``KEYLIME_AGENT_VERIFIER_URL``
|
|
+ * - ``certification_keys_server_identifier``
|
|
+ - ``"ak"``
|
|
+ - 2.5
|
|
+ - ``KEYLIME_AGENT_CERTIFICATION_KEYS_SERVER_IDENTIFIER``
|
|
+ * - ``uefi_logs_evidence_version``
|
|
+ - ``"1.0"``
|
|
+ - 2.5
|
|
+ - ``KEYLIME_AGENT_UEFI_LOGS_EVIDENCE_VERSION``
|
|
+ * - ``tls_accept_invalid_certs``
|
|
+ - ``false``
|
|
+ - 2.5
|
|
+ - ``KEYLIME_AGENT_TLS_ACCEPT_INVALID_CERTS``
|
|
+ * - ``tls_accept_invalid_hostnames``
|
|
+ - ``false``
|
|
+ - 2.5
|
|
+ - ``KEYLIME_AGENT_TLS_ACCEPT_INVALID_HOSTNAMES``
|
|
+ * - ``exponential_backoff_max_retries``
|
|
+ - ``5``
|
|
+ - 2.5
|
|
+ - ``KEYLIME_AGENT_EXPONENTIAL_BACKOFF_MAX_RETRIES``
|
|
+ * - ``exponential_backoff_initial_delay``
|
|
+ - ``10000``
|
|
+ - 2.5
|
|
+ - ``KEYLIME_AGENT_EXPONENTIAL_BACKOFF_INITIAL_DELAY``
|
|
+ * - ``exponential_backoff_max_delay``
|
|
+ - ``360000``
|
|
+ - 2.5
|
|
+ - ``KEYLIME_AGENT_EXPONENTIAL_BACKOFF_MAX_DELAY``
|
|
+
|
|
+Logging Configuration (``/etc/keylime/logging.conf``)
|
|
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
+
|
|
+The logging configuration follows Python's standard logging configuration format.
|
|
+See the Python logging documentation for details on configuring handlers, formatters,
|
|
+and loggers. The version option can be overridden with ``KEYLIME_LOGGING_VERSION``.
|
|
+
|
|
+Configuration Version History
|
|
+------------------------------
|
|
+
|
|
+.. list-table::
|
|
+ :header-rows: 1
|
|
+ :widths: 15 70
|
|
+
|
|
+ * - Version
|
|
+ - Changes
|
|
+ * - 2.0
|
|
+ - Base configuration structure, pull model support
|
|
+ * - 2.1
|
|
+ - Added IAK/IDevID support, ``tpm_identity`` for registrar
|
|
+ * - 2.2
|
|
+ - Added ``ima_ml_path`` and ``measuredboot_ml_path`` configuration
|
|
+ * - 2.3
|
|
+ - Added persisted key handles for IAK/IDevID (``iak_handle``, ``idevid_handle``)
|
|
+ * - 2.4
|
|
+ - Added ``api_versions`` for agent, ``malformed_cert_action`` for registrar
|
|
+ * - 2.5
|
|
+ - **Push model support**: Added ``mode``, ``challenge_lifetime``, ``verification_timeout``, session rate limiting and lifetime options for verifier; ``verifier_url``, ``agent_data_path``, TLS validation, exponential backoff options for agent. Added ``authorization_provider`` and ``cert_subject_alternative_names`` for verifier and registrar
|
|
+
|
|
+For detailed information on all configuration options for each component, refer
|
|
+to the configuration files in ``/etc/keylime/`` and their inline documentation.
|