'\" t .\" Title: boltd .\" Author: [see the "Author" section] .\" Generator: DocBook XSL Stylesheets v1.79.1 .\" Date: 01/04/2019 .\" Manual: bolt Manual .\" Source: bolt 0.7 .\" Language: English .\" .TH "BOLTD" "8" "01/04/2019" "bolt 0\&.7" "bolt Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" boltd \- thunderbolt device managing system daemon .SH "SYNOPSIS" .sp \fBboltd\fR [\fIOPTIONS\fR] .SH "DESCRIPTION" .sp boltd is the thunderbolt device manager daemon\&. Its goal is to enable the secure and convenient use of thunderbolt devices by using the security features of modern thunderbolt controllers\&. It provides the org\&.freedesktop\&.bolt name on the system bus\&. boltd is autostarted via systemd/udev if a thunderbolt devices is connected\&. .sp The thunderbolt I/O technology works by bridging PCIe between the controllers on each end of the connection, which in turn means that devices connected via Thunderbolt are ultimately connected via PCIe\&. Therefore thunderbolt can achieve very high connection speeds, fast enough to even drive external graphics cards\&. The downside is that it also makes certain attacks possible\&. To mitigate these security problems, the latest version \(em known as Thunderbolt 3 \(em supports different \fBsecurity levels\fR: \fInone\fR: No security\&. The behavior is identical to previous Thunderbolt versions\&. \fIdponly\fR: No PCIe tunnels are created at all, but DisplayPort tunnels are allowed and will work\&. \fIuser\fR: Connected devices must be authorized by the user\&. Only then will the PCIe tunnels be activated\&. \fIsecure\fR: Basically the same as user mode, but additionally a key will be written to the device the first time the device is connected\&. This key will then be used to verify the identity of the connected device\&. .sp The primary task of \fBboltd\fR is to authorize thunderbolt peripherals if the security level is either user or secure\&. It provides a D\-Bus API to list devices, enroll them (authorize and store them in the local database) and forget them again (remove previously enrolled devices)\&. It also emits signals if new devices are connected (or removed)\&. During enrollment devices can be set to be automatically authorized as soon as they are connected\&. A command line tool, called boltctl(1), can be used to control the daemon and perform all the above mentioned tasks\&. .sp The pre\-boot access control list (\fBBootACL\fR) feature is active when supported by the firmware and when \fIboltd\fR is running on a new enough Linux kernel (>= 4\&.17)\&. The \fIBootACL\fR is a a list of UUIDs, that can be written to the thunderbolt controller\&. If enabled in the BIOS, all devices in that list will be authorized by the firmware during pre\-boot, which means these devices can be used in the BIOS setup and also during Linux early boot\&. NB: \fBno device verification\fR is done, even when the security level is set to \fIsecure\fR mode in the BIOS, i\&.e\&. the maximal effective security level for devices in the \fIBootACL\fR is only \fIuser\fR\&. If \fIBootACL\fR support is present, all new devices will be automatically added\&. Devices that are \fIforgotten\fR (removed from \fIboltd\fR) will also be removed from the \fIBootACL\fR\&. When a controller is offline, changes to the \fIBootACL\fR will be written to a journal and synchronized back when the controller is online again\&. .SH "OPTIONS" .PP \fB\-h, \-\-help\fR .RS 4 Prints a short help text and exits\&. .RE .PP \fB\-\-version\fR .RS 4 Shows the version number and exits\&. .RE .PP \fB\-r, \-\-replace\fR .RS 4 Replace the currently running boltd instance\&. .RE .PP \fB\-\-journal\fR .RS 4 Froce logging to the journal\&. .RE .PP \fB\-v, \-\-verbosee\fR .RS 4 Print debug output\&. .RE .SH "ENVIRONMENT" .PP \fBBOLT_DBPATH\fR .RS 4 Specifies the path where the daemon stores device information, including the keys used for authorization\&. Overwrites the path that was set at compile time\&. .RE .SH "EXIT STATUS" .sp On success 0 is returned, a non\-zero failure code otherwise\&. .SH "AUTHOR" .sp Written by Christian Kellner \&. .SH "SEE ALSO" .sp boltctl(1)