mirror of
https://github.com/systemd/systemd
synced 2024-10-15 12:34:37 +00:00
2e64cb71b9
This adds an explicit service for initializing the TPM2 SRK. This is implicitly also done by systemd-cryptsetup, hence strictly speaking redundant, but doing this early has the benefit that we can parallelize this in a nicer way. This also write a copy of the SRK public key in PEM format to /run/ + /var/lib/, thus pinning the disk image to the TPM. Making the SRK public key is also useful for allowing easy offline encryption for a specific TPM. Sooner or later we should probably grow what this service does, the above is just the first step. For example, the service should probably offer the ability to reset the TPM (clear the owner hierarchy?) on a factory reset, if such a policy is needed. And we might want to install some default AK (?). Fixes: #27986 Also see: #22637
75 lines
2.8 KiB
XML
75 lines
2.8 KiB
XML
<?xml version="1.0"?>
|
|
<!--*-nxml-*-->
|
|
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
|
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
|
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
|
|
<refentry id="systemd-tpm2-setup.service" conditional='ENABLE_BOOTLOADER'
|
|
xmlns:xi="http://www.w3.org/2001/XInclude">
|
|
|
|
<refentryinfo>
|
|
<title>systemd-tpm2-setup.service</title>
|
|
<productname>systemd</productname>
|
|
</refentryinfo>
|
|
|
|
<refmeta>
|
|
<refentrytitle>systemd-tpm2-setup.service</refentrytitle>
|
|
<manvolnum>8</manvolnum>
|
|
</refmeta>
|
|
|
|
<refnamediv>
|
|
<refname>systemd-tpm2-setup.service</refname>
|
|
<refname>systemd-tpm2-setup-early.service</refname>
|
|
<refname>systemd-tpm2-setup</refname>
|
|
<refpurpose>Set up the TPM2 Storage Root Key (SRK) at boot</refpurpose>
|
|
</refnamediv>
|
|
|
|
<refsynopsisdiv>
|
|
<para><filename>systemd-tpm2-setup.service</filename></para>
|
|
<para><filename>/usr/lib/systemd/systemd-tpm2-setup</filename></para>
|
|
</refsynopsisdiv>
|
|
|
|
<refsect1>
|
|
<title>Description</title>
|
|
|
|
<para><filename>systemd-tpm2-setup.service</filename> and
|
|
<filename>systemd-tpm2-setup-early.service</filename> are services that generate the Storage Root Key
|
|
(SRK) if it hasn't been generated yet, and stores it in the TPM.</para>
|
|
|
|
<para>The services will store the public key of the SRK key pair in a PEM file in
|
|
<filename>/run/systemd/tpm2-srk-public-key.pem</filename> and
|
|
<filename>/var/lib/systemd/tpm2-srk-public-key.pem</filename>.</para>
|
|
|
|
<para><filename>systemd-tpm2-setup-early.service</filename> runs very early at boot (possibly in the
|
|
initrd), and writes the SRK public key to <filename>/run/systemd/tpm2-srk-public-key.pem</filename> (as
|
|
<filename>/var/</filename> is generally not accessible this early yet), while
|
|
<filename>systemd-tpm2-setup.service</filename> runs during a later boot phase and saves the public key
|
|
to <filename>/var/lib/systemd/tpm2-srk-public-key.pem</filename>.</para>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>Files</title>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><filename>/run/systemd/tpm2-srk-public-key.pem</filename></term>
|
|
|
|
<listitem><para>The SRK public key in PEM format, written during early boot.</para></listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><filename>/var/lib/systemd/tpm2-srk-public-key.pem</filename></term>
|
|
|
|
<listitem><para>The SRK public key in PEM format, written during later boot (once
|
|
<filename>/var/</filename> is available).</para></listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</refsect1>
|
|
|
|
<refsect1>
|
|
<title>See Also</title>
|
|
<para>
|
|
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>
|
|
</para>
|
|
</refsect1>
|
|
</refentry>
|