133
edits
(Update first time peer authentication) |
(Re-authentication) |
||
| Line 44: | Line 44: | ||
# Server replies with the handshake finish with client's ID for connection in the future. | # Server replies with the handshake finish with client's ID for connection in the future. | ||
=== | ==== Re-authentication ==== | ||
PIN code | User is only required to input PIN code when first time connect to TV. In the second time, client and server leverage previous AES key value and derive new AES and HMAC key. This can reduce number of user input and make the procedure from send tab to TV to remote control more smoothly. | ||
[[File:RemoteControl | [[File:RemoteControl SecondTimeHandshake.png]] | ||
# | # The user sends the tab to TV on fennec. | ||
# Client | # Client sends request to handshake with ID. | ||
# Server | # Server looks up ID/AES key mapping and replies with the handshake type is 2nd time handshake. | ||
# | # Client computes J-PAKE round 1 and sends the result to server. | ||
# Server | # Server computes J-PAKE round 1 and sends the result to client. | ||
# | # Client and server computes J-PAKE round 2 with previous AES key value as weak secret. | ||
# Client | # Client sends round 2 result to server. | ||
# | # Server sends round 2 result to client. | ||
# | # Both client and server compute J-PAKE final round, gets new AES and HMAC key. | ||
# | # Server use two keys to get a signature of H(H(AES key)), then send the signature to client. | ||
# | # Client verifies the signature matches it has. | ||
# | # Client use two keys to get a signature of H(AES key), then send the signature to server. | ||
# | # Server verifies the signature matches it has. | ||
# | # Server replies with the handshake finish. | ||
After | After authentication, client can sends control event to server. | ||
=== Control event processing === | === Control event processing === | ||
edits