mirror of
https://github.com/morgan9e/systemd
synced 2026-04-14 00:14:32 +09:00
units: measure "factory-reset" into PCR 11 when we request factory reset
Let's make sure that the moment where factory reset is requested is visible in the TPM PCR state, so that access to secrets is terminated. This is particulary interesting when the system is booted with systemd.unit=factory-reset.target on the kernel command line, requesting a factory reset on the following boot. The preparations done in userspace should already lose access to the TPM in that case.
This commit is contained in:
@@ -532,6 +532,11 @@ units = [
|
||||
'conditions' : ['ENABLE_BOOTLOADER', 'HAVE_OPENSSL', 'HAVE_TPM2'],
|
||||
'symlinks' : ['sysinit.target.wants/'],
|
||||
},
|
||||
{
|
||||
'file' : 'systemd-pcrphase-factory-reset.service.in',
|
||||
'conditions' : ['ENABLE_BOOTLOADER', 'HAVE_OPENSSL', 'HAVE_TPM2'],
|
||||
'symlinks' : ['factory-reset.target.wants/'],
|
||||
},
|
||||
{
|
||||
'file' : 'systemd-pcrphase-initrd.service.in',
|
||||
'conditions' : ['ENABLE_BOOTLOADER', 'HAVE_OPENSSL', 'HAVE_TPM2', 'ENABLE_INITRD'],
|
||||
|
||||
22
units/systemd-pcrphase-factory-reset.service.in
Normal file
22
units/systemd-pcrphase-factory-reset.service.in
Normal file
@@ -0,0 +1,22 @@
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
#
|
||||
# This file is part of systemd.
|
||||
#
|
||||
# systemd is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU Lesser General Public License as published by
|
||||
# the Free Software Foundation; either version 2.1 of the License, or
|
||||
# (at your option) any later version.
|
||||
|
||||
[Unit]
|
||||
Description=TPM PCR Barrier (Factory Reset)
|
||||
Documentation=man:systemd-pcrphase-factory-reset.service(8)
|
||||
DefaultDependencies=no
|
||||
Conflicts=shutdown.target
|
||||
After=tpm2.target
|
||||
Before=shutdown.target factory-reset.target
|
||||
ConditionSecurity=measured-uki
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
ExecStart={{LIBEXECDIR}}/systemd-pcrextend --graceful factory-reset
|
||||
Reference in New Issue
Block a user