Secure User Identification
18.03.2004 13:44

Clients in the network are identified by a unique value called user hash. This user hash is stored in the preferences.dat file and is used to grant earned credits with other users.
eMule can use an asymmetric encryption to avoid exploiting or manipulating other users hash values. The method uses a private and a public key to secure the user hash and to ensure a proper identification on other clients.

Secure User Identification can be turned on in Preferences -> Security. It is recommended to use it.

How secure user identification works:

Client A wants to make sure that his credits are safe and only used by him. He creates a private 384 bit RSA key and stores it in the cryptkey.dat file.
This private key is created when the encryption is used for the first time. Losing this key means Client A loses all his credits since he is no longer able to prove that he is the valid owner of them.

When two encryption supporting clients exchange data for the first time they both send a public key together with a random value to their partner. Each stores the other ones key in its clients.met file. Only the key is saved, the random value is generated new each following connection.

Does client A wants to identify himself on client B at a later time he creates a digital signature and sends it to B. This signature is from his private key, the public key of B and a random value. It is valid until client A changes his IP or client B closes eMule.

After receiving A's signature client B checks if it is created from his public key B and the correct random value. If it also fits client A's public key, then client A is correctly identified.

Notes:
> If the cryptkey.dat file is lost or deleted, the preferences.dat file has to be also deleted or no new credits can be collected on already known clients.
> When switching to secure user identification all old, "unsecured" credits will be lost. For security reasons, there is now way to transfer these credits to the secure system.

Applies to version: .29b +
Last update on: 2003-06-20 by Monk