File: systemd-tpm2-setup.service.xml

package info (click to toggle)
systemd 259.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 113,388 kB
  • sloc: ansic: 727,211; xml: 121,125; python: 36,732; sh: 34,990; cpp: 946; makefile: 278; awk: 102; lisp: 13; sed: 1
file content (105 lines) | stat: -rw-r--r-- 4,533 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<?xml version="1.0"?>
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.5/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) and initialize NvPCRs 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 has not been generated yet, and stores it in the TPM. If NvPCRs (additional PCR registers in
    TPM NV Indexes) are defined, these are initialized with the anchoring secret.</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>. They will also store it in TPM2B_PUBLIC
    format in <filename>/run/systemd/tpm2-srk-public-key.tpm2_public</filename> and
    <filename>/var/lib/systemd/tpm2-srk-public-key.tpm2b_public</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.*</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.*</filename>.</para>
  </refsect1>

  <refsect1>
    <title>Files</title>

    <variablelist>
      <varlistentry>
        <term><filename>/run/systemd/tpm2-srk-public-key.pem</filename></term>
        <term><filename>/run/systemd/tpm2-srk-public-key.tpm2b_public</filename></term>

        <listitem><para>The SRK public key in PEM and TPM2B_PUBLIC format, written during early boot.</para>

        <xi:include href="version-info.xml" xpointer="v255"/></listitem>
      </varlistentry>

      <varlistentry>
        <term><filename>/var/lib/systemd/tpm2-srk-public-key.pem</filename></term>
        <term><filename>/var/lib/systemd/tpm2-srk-public-key.tpm2_public</filename></term>

        <listitem><para>The SRK public key in PEM and TPM2B_PUBLIC format, written during later boot (once
        <filename>/var/</filename> is available).</para>

        <xi:include href="version-info.xml" xpointer="v255"/></listitem>
      </varlistentry>

      <varlistentry>
        <term><filename>/usr/lib/nvpcr/*.nvpcr</filename></term>

        <listitem><para>Definition files for NvPCRs.</para>
        <xi:include href="version-info.xml" xpointer="v259"/></listitem>
      </varlistentry>

      <varlistentry>
        <term><filename>/run/credentials/@encrypted/nvpcr-anchor.*</filename></term>

        <listitem><para>Encrypted NvPCR anchor secret, received into the system via system credentials.</para>
        <xi:include href="version-info.xml" xpointer="v259"/></listitem>
      </varlistentry>

      <varlistentry>
        <term><filename>$BOOT/loader/credentials/nvpcr-anchor.*.cred</filename></term>

        <listitem><para>Encrypted NvPCR anchor secret, to be picked up by the kernel loader stub,
        i.e. <citerefentry><refentrytitle>systemd-stub</refentrytitle><manvolnum>7</manvolnum></citerefentry>.</para>
        <xi:include href="version-info.xml" xpointer="v259"/></listitem>
      </varlistentry>
    </variablelist>
  </refsect1>

  <refsect1>
    <title>See Also</title>
    <para><simplelist type="inline">
      <member><citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry></member>
    </simplelist></para>
  </refsect1>
</refentry>