Add a UUID to ArchiveEncryptionState on creation that is persisted to encState.json
Categories
(Firefox :: Profile Backup, task, P3)
Tracking
()
People
(Reporter: mconley, Assigned: mconley, NeedInfo)
References
(Blocks 1 open bug)
Details
(Whiteboard: [fidefe-device-migration])
Attachments
(2 obsolete files)
This UUID is the key that will be used to differentiate between multiple encryption states that might exist across multiple synced devices. This way, a backup created on synced device A won't get confused and try to use a recovery code stored for synced device B.
Updated•1 year ago
|
| Assignee | ||
Comment 1•1 year ago
|
||
This ID is necessary so that if signed into an account, we can store
a mapping of ArchiveEncryptionState ID with the generated recoveryCode
to be stored in end-to-end encrypted synced data.
This is a schema change, but because we're not actually shipping this
change yet, I felt it didn't warrant a schema bump. Because of this,
any prior ArchiveEncryptionStates will now produce encrypted backups
that cannot be recovered from (since they won't include the ID). Testers
are encouraged to disable and re-enable encryption in order to generate
a working ArchiveEncryptionState, and regenerate any backups being
used for testing.
Updated•1 year ago
|
| Assignee | ||
Comment 2•1 year ago
|
||
Updated•1 year ago
|
Updated•1 year ago
|
| Assignee | ||
Comment 3•1 year ago
|
||
djackson pointed out that we can just use a serialized version of the public key object as the unique ID, which means we don't need a new UUID field. Nice!
| Assignee | ||
Comment 4•1 year ago
|
||
Hm, however, given a backup file, and a mapping of public keys to recovery codes... how do we check which public key / recovery code matches the backup? Do we just try each one?
We (intentionally) did not include the public key within the backup: https://searchfox.org/mozilla-central/rev/45d6f8bf028e049f812aa26dced565d50068af5d/browser/components/backup/content/ArchiveJSONBlock.1.schema.json#18-37
So do we just try to do the confirmation routine with each known recovery code? Or is there a better way of comparing the public keys with the information within the backup to see which one matches up?
Description
•