canmove, Confirmed users
725
edits
Line 40: | Line 40: | ||
<li>Mobile and Desktop complete the two roundtrips of JPAKE messages to agree upon a strong secret K</li> | <li>Mobile and Desktop complete the two roundtrips of JPAKE messages to agree upon a strong secret K</li> | ||
<li>A 256 bit key is derived from K using HMAC-SHA256.</li> | <li>A 256 bit key is derived from K using HMAC-SHA256.</li> | ||
<li>The encryption and | <li>The encryption and HMAC keys are derived from that 256 bit key using HMAC-SHA256.</li> | ||
<li>In third round trip: | <li>In third round trip: | ||
<ul><li>Mobile hashes the key using SHA256d (=hash twice with SHA256) and uploads it.</li> | <ul><li>Mobile hashes the key using SHA256d (=hash twice with SHA256) and uploads it.</li> | ||
<li>Desktop verifies it against its key, encrypts the credentials with the encryption key and uploads the encrypted credentials in turn, adding a SHA256 | <li>Desktop verifies it against its key, encrypts the credentials with the encryption key and uploads the encrypted credentials in turn, adding a HMAC-SHA256 hash of the ciphertext (using the HMAC key).</li> | ||
<li>Mobile verifies whether Desktop had the right key by checking the ciphertext against the SHA256 | <li>Mobile verifies whether Desktop had the right key by checking the ciphertext against the HMAC-SHA256 hash.</li> | ||
<li>If that verification is successful, Mobile decrypts ciphertext and applies credentials</li> | |||
</ul></li> | </ul></li> | ||
</ul> | </ul> |