113
edits
(Simplified symbols) |
(Seperated out-of-band steps) |
||
| Line 338: | Line 338: | ||
<li>Client A: Authenticate to sync server and create client record with status of 'pending'</li> | <li>Client A: Authenticate to sync server and create client record with status of 'pending'</li> | ||
<li>Client A: Send SessionRequestMessage to registered devices, providing an ephemeral key (AEp) and nominating an ephemeral key digest (BEd) of other device, i.e. Client B</li> | <li>Client A: Send SessionRequestMessage to registered devices, providing an ephemeral key (AEp) and nominating an ephemeral key digest (BEd) of other device, i.e. Client B</li> | ||
<li>Client B: Send SessionResponseMessage including ephemeral key (BEp) nominated by Client A | <li>Client B: Send SessionResponseMessage including ephemeral key (BEp) nominated by Client A</li> | ||
<li>Client A: | <li>Out-of-Band: User sights authcode displayed on Client B, generated from session key and master key, and enters it on Client A</li> | ||
<li>Client A: If the session key component (VCS) of authcode is verified then send ClientAuthV2RequestMessage including the master key component of authcode (VCM), thus proving the user is in possession of a registered device, i.e. Client B</li> | |||
<li>Client B: If Client A responds with proof of possessing registered device then send ClientAuthV2ResponseMessage including the master key</li> | <li>Client B: If Client A responds with proof of possessing registered device then send ClientAuthV2ResponseMessage including the master key</li> | ||
</ol> | </ol> | ||
| Line 359: | Line 360: | ||
BT BEd BT | BT BEd BT | ||
SK = KDF(3DHE(AIs, AEs, BIp, BEp)) SK = KDF(3DHE(BIs, BEs, AIp, AEp) | SK = KDF(3DHE(AIs, AEs, BIp, BEp)) SK = KDF(3DHE(BIs, BEs, AIp, AEp) | ||
Verified = (BEd == DIGEST(BEp)) | |||
t3 AIs AIp, BIp BIs, MK | t3 AIs AIp, BIp BIs, MK | ||
(OoB) BT BT | |||
SK SK | SK SK | ||
VCSui = <user input> VCS = DIGEST(SK, BT) | VCSui = <user input> VCS = DIGEST(SK, BT) | ||
VCMui = <user input> VCM = DIGEST(MK, BT) | VCMui = <user input> VCM = DIGEST(MK, BT) | ||
Verified = (VCSui == DIGEST(SK, BT)) | Verified = (VCSui == DIGEST(SK, BT)) | ||
t4 AIs, MK AIp, BIp BIs, MK | t4 AIs, MK AIp, BIp BIs, MK | ||
| Line 374: | Line 374: | ||
VCMui | VCMui | ||
Verified = (VCMui == VCM) | Verified = (VCMui == VCM) | ||
t5 AIs, MK AIp, BIp BIs, MK | |||
</pre> | </pre> | ||
edits