security concern: key management flaw with silc-client

Pekka Riikonen priikone at iki.fi
Thu May 17 10:07:44 CEST 2007


: Obviously, the example above is facetious.  But weak authentication
: effectively undermines strong encryption, simply because one endpoint
: of a communication channel (no matter how secure) has no way of
: knowing who is at the other end.
: 
: Alice represents my current understanding of best practices for how to
: use silc securely.  But i don't see a way around this scenario for
: her, short of never caching anyone's keys who she might ever want to
: keep a secret from, which seems frankly unrealistic.
: 
The issue here is of course the lack of association with nicknames and 
public keys.  The association is done with fingerprints.  This can have 
multiple different solutions.  Some or all of the following can be done to 
address the situation, but not eliminate it if users are not careful when 
accepting public keys.

1) GETKEY could display information from the key it verified:

[23:28] *** Verified successfully user Bob's (Daniel Kahn Gillmor) cached 
        public key

The name is the real name from the public key.  In addition it could 
display the email address from the public key:

[23:28] *** Verified successfully user Bob's (Daniel Kahn Gillmor 
        dkg-silc at fifthhorseman.net) cached public key

2) key accepted with GETKEY could be associated with nickname and 
fingerprint.  This would mean that when GETKEY is issued the nickname user 
specified to the command is the associated nickname in the retrieved 
public key.  This would also mean that if the remote user decides to 
change their nickname the GETKEY would not find the cached key but would
create new association with the new nickname.  Since the fingerprint is 
also part of the association you could still have multiple Bob's public 
keys that are actually different people (or same).

3) WHOIS -details could cache the remote user's signature, which would 
then later be verified with GETKEY.  The signature would be associated 
with the nickname and fingerprint of the public key.  In this case GETKEY 
would retrieve the key, verify the key, verify the signature and report 
the result to end user:

[23:28] *** Verified successfully user Bob's (Daniel Kahn Gillmor 
        dkg-silc at fifthhorseman.net) cached public key and digital 
        signature


When verifying user's identity you should also give WHOIS and/or WHOIS 
-details command in addition to the GETKEY.

	Pekka
________________________________________________________________________
 Pekka Riikonen                                 priikone at silcnet.org
 Secure Internet Live Conferencing (SILC)       http://silcnet.org/


More information about the silc-devel mailing list