keybase / client

Keybase Go Library, Client, Service, OS X, iOS, Android, Electron
BSD 3-Clause "New" or "Revised" License
8.92k stars 1.23k forks source link

iOS App Reinstall - Cannot Login, Device Already in Use #7452

Open changedsoul opened 7 years ago

changedsoul commented 7 years ago

I dont know if this is a feature if a bug. I had to wipe my phone twice for other reasons, but when installing Keybase app, I am unable to login. I have to add a new device. If I use the same name, it complains about that name already is in use. If I revoke the device, I still cannot use the same name, and then I have a growing list of revoked devices.

I dont really mind as I dont plan on wiping out my phone all the time. Is there a way to remove the revoked devices so the names can be reused?

cjb commented 7 years ago

No, sorry. We don't allow people to reuse revoked device names for security reasons.

mjwhitta commented 7 years ago

Sorry if this is the wrong place but it seemed the most relevant issue.

I'll start by saying that I take security very seriously, but I don't fully understand the design decisions here. Primarily, why is it the device name that has to be unique as opposed to some fingerprint or UID (say a sha256 hash)?

For example, I spin up a new development VM maybe once or twice a year and always give them the same hostname. I would like my device name to mirror that, so that from the backend's perspective I have multiple device UIDs but one device name, some-dev-vm-name. Then the frontend (either the cli or the browser) would list my devices as some-dev-vm-name:fingerprint_or_uid.

Since the device names are currently unique, it probably wouldn't be too hard to add UIDs that are simply the hash of the current name, then allow users to rename old devices as they see fit.