keybase / client

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

/flip command gives error: Duplicate registration received from the following participant #16513

Open ghost opened 5 years ago

ghost commented 5 years ago

Tried running /flip in the #test channel of keybasefriends and am getting the following error:

Duplicate registration received from the following participant:
ctismer (device: Helgolaender)
shoenseiwaso commented 5 years ago

Fairly certain you have two devices with the same private key. Did you happen to clone a laptop or desktop that had Keybase already installed on it?

shoenseiwaso commented 5 years ago

Updated answer: it might be enough to simply completely delete the KeyBase installation from one of the duplicated devices, rather than deauthorizing the device. You can then re-install KeyBase on that one device and re-login again. CRITICALLY IMPORTANT: HAVE AT LEAST ONE OTHER DEVICE (E.G., A SMARTPHONE WITH KEYBASE INSTALLED AND LOGGED IN) THAT CAN RE-AUTHORIZE YOU).

Previous answer:

Solution if this is indeed the case (worked for me):

  1. Deauthorize the duplicated devices within keybase. CRITICALLY IMPORTANT: HAVE AT LEAST ONE OTHER DEVICE (E.G., A SMARTPHONE WITH KEYBASE INSTALLED AND LOGGED IN) THAT CAN RE-AUTHORIZE YOU).

  2. Re-authorize one or both devices (login again). It will generate a new private key on both devices.

Delamare2112 commented 5 years ago

A device of mine is causing this issue. I never copied any private keys to any other device nor have I cloned my home directory so I am pretty sure that I don't have two devices with the same private key. Here is the debug log id from the device preventing people in teams I participate in to use /flip: b0cf051ee6bb99daf2fae71c

ghost commented 5 years ago

Fairly certain you have two devices with the same private key. Did you happen to clone a laptop or desktop that had Keybase already installed on it?

I didnt, maybe someone else in the chat did?

shoenseiwaso commented 5 years ago

Yes, that would do it as well.

junderw commented 5 years ago

Looks like the client should sanity check:

"Have I already submitted mine? If so, ignore"

junderw commented 5 years ago

if someone submits duplicate registers, they should be rejected from the pool.

shoenseiwaso commented 5 years ago

Maybe...but could this also be a way of changing the result? I think better to invalidate the whole thing, similar to the effect of someone losing network connectivity. See also Mental Poker.

junderw commented 5 years ago

Client side sanity check shouldn't change the result. If I check, and I myself have already registered, I should realize that my key must be cloned somewhere and registering would mess up everyone's flip and then abstain.

However, this would require all affected accounts with multiple devices using the same device key to update their client to prevent this problem.

In the end, there is no way to know if someone is messing up because of a bug in keybase client or because they want to intentionally mess up the flip...

As far as other members rejecting a register because it is a duplicate, yeah that could be gamed.

Another way to fix it might be that a client could forbid two devices logging in simultaneously with the same device key and pop up with a "log out or provision a new device key"... would be a headache for anyone doing oneshot with bots though...

junderw commented 5 years ago

I am assuming the registries are signed. So I would know for a fact my private key is somewhere else. lol