2.8 PAC_SIGNATURE_DATA

2/14/2019

2 minutes to read

In this article

Two PAC_SIGNATURE_DATA structures are appended to the PAC
which stores the server and KDC signatures.
These structures are placed after the Buffers array of the topmost PACTYPE
structure (section 2.3), at the offsets specified in the Offset fields
in each of the corresponding PAC_INFO_BUFFER
structures (section 2.4) in the Buffers array. The ulType field
of the PAC_INFO_BUFFER corresponding to the server signature contains the value
0x00000006 and the ulType field of the PAC_INFO_BUFFER corresponding to
the KDC signature contains the value 0x00000007. PAC signatures can be
generated only when the PAC is used by the [MS-KILE]
protocol because the keys used to create and verify the signatures are the keys
known to the KDC. No other protocol can use these PAC signatures.

The format of the PAC_SIGNATURE_DATA structures is defined
as follows:

0

1

2

3

4

5

6

7

8

9

10

1

2

3

4

5

6

7

8

9

20

1

2

3

4

5

6

7

8

9

30

1

SignatureType

Signature
(variable)

...

RODCIdentifier

SignatureType (4 bytes): A 32-bit unsigned
integer value in little-endian format that defines the cryptographic system
used to calculate the checksum. This MUST be one of the values defined in the
following table. The corresponding sizes of the signatures are also given. The
key used with the cryptographic system corresponds to the value of the ulType
field of the outer PAC_INFO_BUFFER (section 2.4) structure. The value
0x00000006 specifies the server's key, and the value 0x00000007 specifies the
KDC's key.

Signature (variable): An array of 8-bit
unsigned characters that contains the checksum. The KERB_CHECKSUM_HMAC_MD5
checksum (defined in the preceding table) is 16 bytes in length. The size of
the signature is determined by the value of the SignatureType field, as
indicated in the preceding table.

RODCIdentifier (2 bytes): A 16-bit unsigned
integer value in little-endian format that contains the first 16 bits of the
key version number ([MS-KILE] section 3.1.5.8)
when the KDC is an RODC. When the KDC
is not an RODC, this field does not exist.