Prop 123: Add cpk_i to DH client auth KDF input

This ensures the KDF output is bound to both public keys (epk and cpk_i).
This commit is contained in:
str4d
2018-12-17 19:23:56 +00:00
parent 104b961c50
commit cdb1d5af7c

View File

@ -913,7 +913,7 @@ Then for each authorized client, the server encrypts ``authCookie`` to its publi
{% highlight lang='text' %}
sharedSecret = DH.AGREE(esk, cpk_i)
authInput = sharedSecret || subcredential || publishedTimestamp
authInput = sharedSecret || cpk_i || subcredential || publishedTimestamp
okm = KDF(epk, authInput, "ELS2_XCA", 8 + S_KEY_LEN)
clientID_i = okm[0..8]
clientKey_i = okm[8..(8+S_KEY_LEN)]
@ -933,7 +933,7 @@ and encryption key ``clientKey_i``:
{% highlight lang='text' %}
sharedSecret = DH.AGREE(csk_i, epk)
authInput = sharedSecret || subcredential || publishedTimestamp
authInput = sharedSecret || cpk_i || subcredential || publishedTimestamp
okm = KDF(epk, authInput, "ELS2_XCA", 8 + S_KEY_LEN)
clientID_i = okm[0..8]
clientKey_i = okm[8..(8+S_KEY_LEN)]