nrelease - fix/improve livecd
[dragonfly.git] / crypto / openssh / PROTOCOL.agent
blobdba76b0c014b4ae685d929934decf83b7507d356
1 The SSH agent protocol is described in
2 https://tools.ietf.org/html/draft-miller-ssh-agent-04
4 This file documents OpenSSH's extensions to the agent protocol.
6 1. session-bind@openssh.com extension
8 This extension allows a ssh client to bind an agent connection to a
9 particular SSH session identifier as derived from the initial key
10 exchange (as per RFC4253 section 7.2) and the host key used for that
11 exchange. This binding is verifiable at the agent by including the
12 initial KEX signature made by the host key.
14 The message format is:
16         byte            SSH_AGENTC_EXTENSION (0x1b)
17         string          session-bind@openssh.com
18         string          hostkey
19         string          session identifier
20         string          signature
21         bool            is_forwarding
23 Where 'hostkey' is the encoded server host public key, 'session
24 identifier' is the exchange hash derived from the initial key
25 exchange, 'signature' is the server's signature of the session
26 identifier using the private hostkey, as sent in the final
27 SSH2_MSG_KEXDH_REPLY/SSH2_MSG_KEXECDH_REPLY message of the initial key
28 exchange. 'is_forwarding' is a flag indicating whether this connection
29 should be bound for user authentication or forwarding.
31 When an agent received this message, it will verify the signature and
32 check the consistency of its contents, including refusing to accept
33 a duplicate session identifier, or any attempt to bind a connection
34 previously bound for authentication. It will then then record the
35 binding for the life of the connection for use later in testing per-key
36 destination constraints.
38 2. restrict-destination-v00@openssh.com key constraint extension
40 The key constraint extension supports destination- and forwarding path-
41 restricted keys. It may be attached as a constraint when keys or
42 smartcard keys are added to an agent.
44         byte            SSH_AGENT_CONSTRAIN_EXTENSION (0xff)
45         string          restrict-destination-v00@openssh.com
46         constraint[]    constraints
48 Where a constraint consists of:
50         string          from_username (must be empty)
51         string          from_hostname
52         keyspec[]       from_hostkeys
53         string          to_username
54         string          to_hostname
55         keyspec[]       to_hostkeys
57 And a keyspec consists of:
59         string          keyblob
60         bool            is_ca
62 When receiving this message, the agent will ensure that the
63 'from_username' field is empty, and that 'to_hostname' and 'to_hostkeys'
64 have been supplied (empty 'from_hostname' and 'from_hostkeys' are valid
65 and signify the initial hop from the host running ssh-agent). The agent
66 will then record the constraint against the key.
68 Subsequent operations on this key including add/remove/request
69 identities and, in particular, signature requests will check the key
70 constraints against the session-bind@openssh.com bindings recorded for
71 the agent connection over which they were received.
73 3. SSH_AGENT_CONSTRAIN_MAXSIGN key constraint
75 This key constraint allows communication to an agent of the maximum
76 number of signatures that may be made with an XMSS key. The format of
77 the constraint is:
79         byte            SSH_AGENT_CONSTRAIN_MAXSIGN (0x03)
80         uint32          max_signatures
82 This option is only valid for XMSS keys.
84 $OpenBSD: PROTOCOL.agent,v 1.18 2022/09/21 22:26:50 dtucker Exp $