New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 856380 link

Starred by 0 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

Smart Lock signin: Persist local/remote devices to TPM as separate items, not single list

Project Member Reported by hansberry@chromium.org, Jun 25 2018

Issue description

EasyUnlockServiceSignin accesses the local device and remote device (the unlock key) from the TPM. Those 2 devices are currently persisted as a list, which is awkward and hacky (it's like this for historical reasons, and to make a migration step faster). They should instead by persisted together as either a dictionary, or as separate items.

See the culprit CL which added local device persistence alongside the existing remote device persistence: https://chromium-review.googlesource.com/c/chromium/src/+/1112902
 
Components: UI>ProximityAuth
Labels: -Pri-3 M-70 Pri-1
Owner: hansberry@chromium.org
Status: Assigned (was: Available)
Summary: Smart Lock signin: Fix device storage to TPM (was: Smart Lock signin: Persist devices to TPM more elegantly)
Bumping the priority (and editing the bug description) here, since this issue was the cause of issue 866711. Ryan, let's get this fixed the right way for M-70, since it's causing crashes as-is.
Labels: -Pri-1 -M-70 M-71 Pri-2
The crash that this inelegant design caused has been addressed in crbug.com/866710. While it's still necessary that we improve this design, it'd not a launch blocker that absolutely needs to get into M70. Downgrading priority.
Re: comment #2: The sign-in feature might actually be broken, though.

Originally, the design changed set both a local and remote device in the TPM. Then, when attempting a sign-in, it looked for those two devices and attempted to use them. Somehow, storing these remote devices failed in some cases, so my fix simply returned early if both of the remote devices were unavailable.

If both devices are not available, this means that we won't be able to sign in when we actually should be able to. We should try to investigate this to ensure that sign-in behavior does not regress.
It's not that "storing these remote devices failed in some cases", rather, I failed to implement a critical migration step (failed to accomodate old devices in the TPM not having the new |unlock_key| boolean field). I explained more at https://bugs.chromium.org/p/chromium/issues/detail?id=866710#c10.

AFAICT, the sign-in feature is not fundamentally broken in respect to its TPM persistence mechanism. (but is still poorly designed and should be refactored!) 
Ryan, will you update the bug summary to reflect the cleanup work that needs to happen on this bug?
Summary: Smart Lock signin: Persist local/remote devices to TPM as separate items, not single list (was: Smart Lock signin: Fix device storage to TPM)
Components: -UI>ProximityAuth

Sign in to add a comment