133
edits
(→J-PAKE key exchange: fix round 1 zpk to zkp) |
(→Data encryption/decryption: Update data and key confirmation) |
||
| Line 76: | Line 76: | ||
# Client.sjs parses event and dispatch to Gecko or Gaia system app. | # Client.sjs parses event and dispatch to Gecko or Gaia system app. | ||
=== Data | === Data used in JPAKE authentication === | ||
==== Singer ID for JPAKE round 1 & 2: ==== | |||
* TV: server | |||
* Fennec addon: client | |||
==== Weak secret: ==== | |||
# AES | * TV: concatenate PIN and first 12 characters of TLS server cert SHA 256 fingerprint | ||
# | * Fennec addon: concatenate user input PIN and first 12 characters connected TLS server cert SHA 256 fingerprint | ||
# | |||
==== Key confirmation: ==== | |||
Double hash of AES key: | |||
## TV converts AES key to array buffer | |||
## Sign AES key array buffer, get signature 1 (array buffer) | |||
## Sign signature 1, get signature 2 | |||
## Convert signature 2 to base 64, send to Fennec addon | |||
## Fennec addon do the same as TV from step 1 to 4 | |||
## Compare received base 64 string of self and TV's signature 2 | |||
Single hash of AES key: | |||
## Fennec addon converts AES key to array buffer | |||
## Sign AES key array buffer, get signature 1 (array buffer) | |||
## Convert signature 1 to base 64, send to TV | |||
## TV use HMAC key, received signature, AES key array buffer to verify if the signature is valid. | |||
=== Authentication and Event Protocol === | === Authentication and Event Protocol === | ||
edits