Remove "second devices" possibly added by unwanted party

The main issue here is the fact there is no practical way to maintain who is who (designed like this)

Maybe the system can add an additional optional way to “move” the main key into something like a yubikey ?

So people who need absolute security and “second device” control can do so as the “main” identity is never on any device at all.

And as such people who add this (must requier 2 key to prevent something like a “oops lost my key”).

This would allow a proper subkey rotation, and even if a bad actor optain a way to add his device he will not have the main key and would not be able to “rotate” the key himself.

The downsite of my idea is it’s less “userfriendly” and as such must be opt-in only (unless someone know an userfriendly / secure and decentralized way to do the same thing).

Edit : maybe a web3 style export of the key as a string that can be saved somewhere else that can be imported back (to “move out” the main key ?)

Like in tuta where they give a long string to save the “recovery”.

By the way, a method to revoke the old key, and substitute it with a new one would be useful.

The revoke and the new public key should propagate the same way as currently relays propagate.

The private part should propagate the same way as currently the “add device” copies identities.

Of course, an attacker that gain the access to my private key could revoke my old key and pretend to be the owner of the identity, but I’d detect this, and this is far less dangerous than not having the ability to change ones own cryptographic identity and keep on trusting the old one that may be lurked by someone.

Moreover the new “unconfirmed” identity could be confirmed for peers by re-reading a qr code, or the same way as one get in touch with an identity the first time.

maybe add in the profile a sort of “recovery” key given at profile creation (and the first time it generated for existing user).

this “recovery” hash is known by relay you use (and add), so the relay only “accept” to transmit the new rotated key to contact only if you show this recovery hash (by inputing it in the app) ?

Edit : this would allow an automated key rotation, and of course would trigger a disconnection of unwanted “second device” you can also make this new key a necessity to change password of “email account” in the relay (and disconnect totally any unwanted second device).

What if a “second” device add a new relay? Moreover a relay should only be a relay, not an enforcer of policies; that’s the way deltachat is not centralized.

it does not "enforce any central server, had you read my message properly, you would hane known i talked about hash of a secret shared with the relay.

And to answer your question, had the second device add a relay, the relay would also have this “hash” shared by the second device.

to rotate the key he would ask the “key” that generate the hash.

After this the key (any or all the relay) is rotated and a new key that is make into hash is generated.

The “key” is simply to allow the relay to Relay your new key to the existing contact (to allow a clic less update), if you don’t have this key you will have to read manually the contact.

As such it allow a rotation key, a verification you are the owner of they pgp key, without having ANY central authority in the mix.

Of course it’s an idea, to the dev team to see if they wan’t it or not, but it would allow a key rotation, without central server and that allow update to contact automatically if the user remember/save this “key” at key creation