• Keine Ergebnisse gefunden

4.4 Scalable Solutions

4.4.1 Multiple-Hash Attestation

The Multiple-Hash Attestation protocol extends the integrity reporting defined by the TCG by bundling a number of attestation requests and answering them with one TPM Quote operation. For this purpose, we utilize the properties of a collision resis-tant hash function. In particular, we map a number of incoming attestation requests to a single request whose nonce is computed as a hash of all nonces of the arriving attestation requests. Before the nonces are passed to the TPM, they are also added to a NonceList that describes which nonces were hashed to produce the target nonce.

The prover then transmits the output of the TPM Quote command together with the NonceList and theSML to all entities that issued an attestation request. It should be noted that the TPM simply signs all PCRs and not only a set of the PCRs. Since the TPM simply concatenates all PCR values and then creates a signature on all values, the receiving clients can also easily verify the values of a subsequent set of the PCRs (Com-pare Chapter 5.1 for additional information on this issue). Before accepting the proof, the verifier checks whether his nonce is part of the NonceList transmitted alongside the TPM Quote output. This approach satisfies Requirement 1 of a secure attestation channel and provides a proof for the freshness of integrity information.

To prevent masquerading attacks on the authenticity of the platform configuration [164] and to satisfy Requirement 3 of a secure attestation channel, it is necessary to integrate an authentication process in the attestation protocol. This authentication process is realized (similar to Section 3.6) by adding a key-establishment in order to ensure that the channel of attestation is authentic. The negotiated key can then be used as an encryption key for all subsequent messages sent between server and client. This mechanism also guarantees an end-to-end communication and keeps the attestation channel from becoming compromised by another application that could take over the attestation channel after the attestation has succeeded. Requirement 2 of a secure attestation channel is satisfied by delivering the SML in the established cryptographic channel. Protocol 4.4.2 shows the resulting protocol flow.

1All measurements were performed on a TPM ST Microelectronics ST19WP18-TPM-C and an Atmel TPM 1.2

Protocol 4.4.2: Multiple-Hash Attestation

SUMMARY:S answers the attestation challenge of Cx

RESULT: Integrity reporting: key establishment with key confirmation 1. System setup.

Cx must acquire (and validate) the certificate of the Privacy-CA to validate Cert(AIK, KAIK)

2. Protocol messages.

Cx → S : Nax, gcx modp (1)

Cx ← S : Cert(AIK, KAIK),NonceList,

gsmodp,{HashedNonceList,PCR}K−1

AIK

(2) Cx → S : {Nbx, gcx modp}KSCx (3) Cx ← S : {Nax, Nbx, SML, gs modp}KSCx (4)

3. Protocol actions.

(a) Precomputation by S. S selects an appropriate prime p and generator g of Zp (2 ≤ g ≤ p−2). S chooses a random secret s, 2 ≤ s ≤ p−2, and computes gs modp. S transmitsp and gto all Cx.

(b) Precomputation by Cx. Cx chooses a random secret cx, 2≤cx ≤p−2, and computes gcx modp.

(c) Attestation challenge. Cx,x= 1, . . . , n,choose a non-predictable nonceN ax and transmit message (1) to S.

(d) S addsNa1, . . .,Nan to theNonceList and computes:

NonceList=Na1||Na2|| . . .||Nan (4.1)

HashedNonceList=h(h(Na1, gs modp)||

h(Na2, gsmodp)|| . . .||h(Nan, gsmodp)) (4.2) (e) S then computes the attestation response message by signing the Hashed-NonceList and the PCRs using an AIK. S then transmits message (2) to Cx.

(f) Key confirmation. Cxcomputes the shared session key by computingKSCx = (gs)cx modp. Cx then generates a second non-predictable nonce (N bx) and transfers message (3) to S:

4.4. SCALABLE SOLUTIONS 59 (g) S computes the shared session key by computing KSCx = (gcx)smodp and decrypts the received message with KSCx. S then transfers message (4) to Cx.

(h) Cx verifies the signature of {HashedNonceList, PCR}K−1

AIK and checks the freshness of Nax, by recalculating HashedNonceList using the transmitted NonceList. Based on the received SML and the PCR values Cx processes the SMLand re-computes the received PCR values. If the computed values match the signed PCR values, the SML is valid and untampered. Finally, Cxhas to verify that the delivered integrity reporting values match the given reference values; thusCx can decide ifS is in a trusted system state.

The above solution works well if several attestation requests arrive at once; if they are slightly delayed, the Multiple-Hash Attestation Protocol can be optimized further.

For this purpose, we introduce a ring buffer with three different areas, each consisting of one area for theNonceList and another area for the output of a TPM operation. Figure 4.2 depicts this tri-state ring buffer and shows how it is embedded in the attestation protocol. This tri-state ring buffer holds all relevant data for three different threads that are responsible for passing data from the verifier to the TPM and vice versa:

• Input thread: This thread collects challenge-requests and writes them to a Non-ceList area of the ring buffer.

• Working thread: This thread computes theHashedNonceList from theNonceList stored in one of the three areas of the buffer and executes the TPM Quote on the HashedNonceList and the PCR. The result is then written back to the same area of the buffer and the ring buffer is rotated.

• Output thread: This thread is responsible for reading the results of the TPM operation from the buffer and for delivering the results to the corresponding clients who requested attestation.

Figure 4.2: Tri-state ring buffer of the Multiple-Hash Attestation

Each time a new attestation request arrives at the server, the input thread forks a new process. This process adds the incoming nonce to the NonceList and remembers the area of the ring buffer that is responsible for the process. The working thread runs continuously; this thread is responsible for passing data to and receiving data from the TPM. As soon as the working thread receives an answer from the TPM, the working thread writes the results in the ring buffer and rotates the tri-state ring buffer. This working thread then retrieves the newNonceList of the adjacent area, which he hashes to create the HashedNonceList and passes to the TPM. While the working thread is operating on the TPM, the processes that are responsible for answering the client’s attestation-requests are waiting until the tri-state buffer has been rotated one round and their data is ready. As soon as the requested data is present in the buffer, the processes that are responsible for the request can deliver the attestation-response, consisting of the signedHashedNonceList and PCR, to the requester.

This approach enables a very efficient realization of the Multiple-Hash Attestation.

Since the working thread that is responsible for the TPM is also responsible for the ring buffer, a maximum utilization of the TPM can be achieved. Incoming attestation requests must wait a maximum of two rotation steps of the ring buffer before the result is available. Thus, in the worst case, the response is available after two signature computations on the TPM have been performed.