1tpm2_startauthsession(1)    General Commands Manual   tpm2_startauthsession(1)
2
3
4

NAME

6       tpm2_startauthsession(1) - Start a session with the TPM.
7

SYNOPSIS

9       tpm2_startauthsession [OPTIONS]
10

DESCRIPTION

12       tpm2_startauthsession(1)  - Starts a session with the TPM.  The default
13       is to start a trial session unless the -a option is  specified.   Saves
14       the  policy session data to a file.  This file can then be used in sub‐
15       sequent tools that can use a policy file for  authorization  or  policy
16       events.
17
18       This  will  not work with resource managers (RMs) outside of tpm2-abrmd
19       (https://%20github.com/tpm2-software/tpm2-abrmd),  as  most  RMs   will
20       flush session handles when a client disconnects from the IPC channel.
21
22       This  will  work  with direct TPM access, but note that internally this
23       calls a ContextSave and a ContextLoad on the session handle,  thus  the
24       session cannot be saved/loaded again.
25

OPTIONS

27--policy-session:
28
29         Start  a  policy session of type TPM_SE_POLICY.  Default without this
30         option is TPM_SE_TRIAL.
31
32         NOTE: A trial session is used when building a  policy  and  a  policy
33         session is used when authenticating with a policy.
34
35--audit-session:
36
37         Start  an HMAC session to be used as an audit session.  Default with‐
38         out this option is TPM2_SE_TRIAL.
39
40--hmac-session:
41
42         Start an HMAC session of type TPM_SE_HMAC.  Default without this  op‐
43         tion is TPM2_SE_TRIAL.
44
45-g, --hash-algorithm=ALGORITHM:
46
47         The hash algorithm used in computation of the policy digest.
48
49-c, --key-context=OBJECT:
50
51         Set  the  tpmkey  and bind objects to be the same.  Session parameter
52         encryption is turned on.  Session parameter decryption is turned  on.
53         Parameter encryption/decryption symmetric-key set to AES-CFB.
54
55-S, --session=FILE:
56
57         The name of the policy session file, required.
58
59--bind-context=FILE:
60
61         Set  the  bind  object.   Session  parameter  encryption is off.  Use
62         tpm2_sessionconfig to turn on.  Session parameter decryption is  off.
63         Use  tpm2_sessionconfig  to turn on.  Parameter encryption/decryption
64         symmetric-key set to AES-CFB.
65
66--bind-auth=AUTH:
67
68         Set the authorization value for the bind object.
69
70--tpmkey-context=FILE:
71
72         Set the tpmkey object.  Session parameter  encryption  is  off.   Use
73         tpm2_sessionconfig  to turn on.  Session parameter decryption is off.
74         Use tpm2_sessionconfig to turn on.   Parameter  encryption/decryption
75         symmetric-key set to AES-CFB.
76
77   References

Context Object Format

79       The  type  of a context object, whether it is a handle or file name, is
80       determined according to the following logic in-order:
81
82       • If the argument is a file path, then the file is loaded as a restored
83         TPM transient object.
84
85       • If the argument is a prefix match on one of:
86
87         • owner: the owner hierarchy
88
89         • platform: the platform hierarchy
90
91         • endorsement: the endorsement hierarchy
92
93         • lockout: the lockout control persistent object
94
95       • If  the  argument argument can be loaded as a number it will be treat
96         as a handle, e.g.  0x81010013 and used directly.OBJECT.
97

Authorization Formatting

99       Authorization for use of an object in TPM2.0 can come  in  3  different
100       forms: 1.  Password 2.  HMAC 3.  Sessions
101
102       NOTE:  "Authorizations  default  to  the EMPTY PASSWORD when not speci‐
103       fied".
104
105   Passwords
106       Passwords are interpreted in the following  forms  below  using  prefix
107       identifiers.
108
109       Note:  By  default  passwords are assumed to be in the string form when
110       they do not have a prefix.
111
112   String
113       A string password, specified by prefix  "str:"  or  it's  absence  (raw
114       string without prefix) is not interpreted, and is directly used for au‐
115       thorization.
116
117   Examples
118              foobar
119              str:foobar
120
121   Hex-string
122       A hex-string password, specified by prefix "hex:" is converted  from  a
123       hexidecimal  form  into a byte array form, thus allowing passwords with
124       non-printable and/or terminal un-friendly characters.
125
126   Example
127              hex:0x1122334455667788
128
129   File
130       A file based password, specified be prefix "file:" should be  the  path
131       of  a  file  containing the password to be read by the tool or a "-" to
132       use stdin.  Storing passwords in files  prevents  information  leakage,
133       passwords passed as options can be read from the process list or common
134       shell history features.
135
136   Examples
137              # to use stdin and be prompted
138              file:-
139
140              # to use a file from a path
141              file:path/to/password/file
142
143              # to echo a password via stdin:
144              echo foobar | tpm2_tool -p file:-
145
146              # to use a bash here-string via stdin:
147
148              tpm2_tool -p file:- <<< foobar
149
150   Sessions
151       When using a policy session to authorize the use of an  object,  prefix
152       the  option argument with the session keyword.  Then indicate a path to
153       a session file that was created with tpm2_startauthsession(1).  Option‐
154       ally, if the session requires an auth value to be sent with the session
155       handle (eg policy password), then append a + and a string as  described
156       in the Passwords section.
157
158   Examples
159       To use a session context file called session.ctx.
160
161              session:session.ctx
162
163       To use a session context file called session.ctx AND send the authvalue
164       mypassword.
165
166              session:session.ctx+mypassword
167
168       To use a session context file called session.ctx AND send the HEX auth‐
169       value 0x11223344.
170
171              session:session.ctx+hex:11223344
172
173   PCR Authorizations
174       You  can satisfy a PCR policy using the "pcr:" prefix and the PCR mini‐
175       language.      The     PCR     minilanguage     is     as      follows:
176       <pcr-spec>=<raw-pcr-file>
177
178       The PCR spec is documented in in the section "PCR bank specifiers".
179
180       The  raw-pcr-file  is an optional the output of the raw PCR contents as
181       returned by tpm2_pcrread(1).
182
183       PCR bank specifiers (common/pcr.md)
184
185   Examples
186       To satisfy a PCR policy of sha256 on banks 0, 1, 2 and 3 use a specifi‐
187       er of:
188
189              pcr:sha256:0,1,2,3
190
191       specifying AUTH.
192

COMMON OPTIONS

194       This  collection of options are common to many programs and provide in‐
195       formation that many users may expect.
196
197-h, --help=[man|no-man]: Display the tools manpage.  By  default,  it
198         attempts  to  invoke  the  manpager for the tool, however, on failure
199         will output a short tool summary.  This is the same behavior  if  the
200         "man"  option argument is specified, however if explicit "man" is re‐
201         quested, the tool will provide errors from man  on  stderr.   If  the
202         "no-man"  option  if  specified, or the manpager fails, the short op‐
203         tions will be output to stdout.
204
205         To successfully use the manpages feature requires the manpages to  be
206         installed or on MANPATH, See man(1) for more details.
207
208-v,  --version:  Display version information for this tool, supported
209         tctis and exit.
210
211-V, --verbose: Increase the information that the tool prints  to  the
212         console  during  its  execution.  When using this option the file and
213         line number are printed.
214
215-Q, --quiet: Silence normal tool output to stdout.
216
217-Z, --enable-errata: Enable the application of errata fixups.  Useful
218         if  an  errata fixup needs to be applied to commands sent to the TPM.
219         Defining the environment TPM2TOOLS_ENABLE_ERRATA is equivalent.   in‐
220         formation many users may expect.
221

TCTI Configuration

223       The  TCTI  or  "Transmission  Interface" is the communication mechanism
224       with the TPM.  TCTIs can be changed for communication with TPMs  across
225       different mediums.
226
227       To control the TCTI, the tools respect:
228
229       1. The command line option -T or --tcti
230
231       2. The environment variable: TPM2TOOLS_TCTI.
232
233       Note:  The  command  line option always overrides the environment vari‐
234       able.
235
236       The current known TCTIs are:
237
238       • tabrmd     -     The     resource     manager,     called      tabrmd
239         (https://github.com/tpm2-software/tpm2-abrmd).   Note that tabrmd and
240         abrmd as a tcti name are synonymous.
241
242       • mssim - Typically used for communicating to the TPM software  simula‐
243         tor.
244
245       • device - Used when talking directly to a TPM device file.
246
247       • none  - Do not initalize a connection with the TPM.  Some tools allow
248         for off-tpm options and thus support not using a TCTI.  Tools that do
249         not  support  it  will error when attempted to be used without a TCTI
250         connection.  Does not support ANY options and MUST  BE  presented  as
251         the exact text of "none".
252
253       The  arguments  to  either  the  command line option or the environment
254       variable are in the form:
255
256       <tcti-name>:<tcti-option-config>
257
258       Specifying an empty string for  either  the  <tcti-name>  or  <tcti-op‐
259       tion-config> results in the default being used for that portion respec‐
260       tively.
261
262   TCTI Defaults
263       When a TCTI is not specified, the default TCTI is  searched  for  using
264       dlopen(3)  semantics.   The  tools  will  search for tabrmd, device and
265       mssim TCTIs IN THAT ORDER and USE THE FIRST ONE FOUND.  You  can  query
266       what TCTI will be chosen as the default by using the -v option to print
267       the version information.  The "default-tcti" key-value pair will  indi‐
268       cate which of the aforementioned TCTIs is the default.
269
270   Custom TCTIs
271       Any TCTI that implements the dynamic TCTI interface can be loaded.  The
272       tools internally use dlopen(3), and the raw tcti-name value is used for
273       the lookup.  Thus, this could be a path to the shared library, or a li‐
274       brary name as understood by dlopen(3) semantics.
275

TCTI OPTIONS

277       This collection of options are used to configure the various known TCTI
278       modules available:
279
280device: For the device TCTI, the TPM character device file for use by
281         the device TCTI can be specified.  The default is /dev/tpm0.
282
283         Example:   -T   device:/dev/tpm0   or   export    TPM2TOOLS_TCTI="de‐
284         vice:/dev/tpm0"
285
286        mssim:  For  the  mssim  TCTI, the domain name or IP address and port
287         number used by the simulator  can  be  specified.   The  default  are
288         127.0.0.1 and 2321.
289
290         Example:  -T  mssim:host=localhost,port=2321  or export TPM2TOOLS_TC‐
291         TI="mssim:host=localhost,port=2321"
292
293        abrmd: For the abrmd TCTI, the configuration string format is  a  se‐
294         ries  of  simple  key value pairs separated by a ',' character.  Each
295         key and value string are separated by a '=' character.
296
297         • TCTI abrmd supports two keys:
298
299           1. 'bus_name' : The name of  the  tabrmd  service  on  the  bus  (a
300              string).
301
302           2. 'bus_type' : The type of the dbus instance (a string) limited to
303              'session' and 'system'.
304
305         Specify the tabrmd tcti name and a config string of  bus_name=com.ex‐
306         ample.FooBar:
307
308         \--tcti=tabrmd:bus_name=com.example.FooBar
309
310         Specify the default (abrmd) tcti and a config string of bus_type=ses‐
311         sion:
312
313         \--tcti:bus_type=session
314
315         NOTE: abrmd and tabrmd are synonymous.  the various known  TCTI  mod‐
316         ules.  # EXAMPLES
317
318   Start a trial session and save the session data to a file
319              tpm2_startauthsession -S mysession.ctx
320
321   Start a policy session and save the session data to a file
322              tpm2_startauthsession --policy-session -S mysession.ctx
323
324   Start an encrypted and bound policy session and save the
325       session data to a file
326
327              tpm2_createprimary -c primary.ctx
328              tpm2_startauthsession --policy-session -c primary.ctx -S mysession.ctx
329

Returns

331       Tools can return any of the following codes:
332
333       • 0 - Success.
334
335       • 1 - General non-specific error.
336
337       • 2 - Options handling error.
338
339       • 3 - Authentication error.
340
341       • 4 - TCTI related error.
342
343       • 5 - Non supported scheme.  Applicable to tpm2_testparams.
344

BUGS

346       Github Issues (https://github.com/tpm2-software/tpm2-tools/issues)
347

HELP

349       See the Mailing List (https://lists.01.org/mailman/listinfo/tpm2)
350
351
352
353tpm2-tools                                            tpm2_startauthsession(1)
Impressum