The Finished check starts with a transcript hash. This lesson pins the toy hash inputs and output.

highlighted = computed this step

Why hash the transcript

Finished does not check one message in isolation. It checks a transcript hash built from the ordered toy values.

hash the ordered transcript\text{hash the ordered transcript}
Toy transcript hashToy TLS transcript table recomputed from DH and RSA pins.Toy transcript hash - hash=43itemvaluecheckClientHello4pinnedServerHello9pinnedCertificate digest33root signatureServerKeyShare19DH publicClientKeyShare8DH publicTranscript hash43weighted mod 97Shared secret2DH recomputeClient Finished64toy checkServer Finished70toy check

Pin the hashed values

The toy hash uses hello values 4 and 9, certificate digest 33, server share 19, and client share 8.

values feed hash\text{values feed hash}
Toy transcript hashToy TLS transcript table recomputed from DH and RSA pins.Toy transcript hash - hash=43itemvaluecheckClientHello4pinnedServerHello9pinnedCertificate digest33root signatureServerKeyShare19DH publicClientKeyShare8DH publicTranscript hash43weighted mod 97Shared secret2DH recomputeClient Finished64toy checkServer Finished70toy check

Read the toy hash

Weighted reduction modulo 97 gives transcript hash 43.

H=43(mod97)H=43\pmod{97}
Toy transcript hashToy TLS transcript table recomputed from DH and RSA pins.Toy transcript hash - hash=43itemvaluecheckClientHello4pinnedServerHello9pinnedCertificate digest33root signatureServerKeyShare19DH publicClientKeyShare8DH publicTranscript hash43weighted mod 97Shared secret2DH recomputeClient Finished64toy checkServer Finished70toy check

Summary

The transcript hash commits to order and values before Finished. NOTE: toy-modulus; no-padding; no-side-channel; no-production; never-roll-your-own. Toy transcript only: not real TLS bytes, not real certificate validation, no AEAD record protection, and no security-size claims.

hash recomputed\text{hash recomputed}
Toy transcript hashToy TLS transcript table recomputed from DH and RSA pins.Toy transcript hash - hash=43itemvaluecheckClientHello4pinnedServerHello9pinnedCertificate digest33root signatureServerKeyShare19DH publicClientKeyShare8DH publicTranscript hash43weighted mod 97Shared secret2DH recomputeClient Finished64toy checkServer Finished70toy check