Server: always drop privileges, even in foreground mode.
[silc.git] / TODO-SILC
1 SILC Protocol
2 =============
3
4 Possible SILC protocol and specification document changes.  All of these
5 are tentative and doesn't mean that any of them would be done at any
6 point.
7
8  o Full rework of the documents as requested by RFC Editor.  The plan
9    is to create only two documents:
10
11    silc-architecture-xx.txt
12    silc-specification-xx.txt
13
14  o Add acknowlegments section to specification documents.
15    
16  o Group Diffie-Hellman protocol for establishig key with two or more
17    users on a channel.
18
19  o Extend the Channel ID port to be actually a counter, allowing the
20    2^32 channels per cell, instead of 2^16 like now.  The port with
21    compliant implementation would always be 706, and it could be used
22    as a counter, starting from 706... For interop, with old code.
23
24  o In SKE with UDP/IP responder doesn't have to do retransmissions.
25    Initiator will retransmit its packet.  Initiator can be considered
26    the one that actually WANTs to establish the keys.  So no need for
27    responder to retransmit.  Define this clearly in the specs.
28
29  o Dynamic server and router connections, ala Jabber.  SILC has allowed 
30    this from the beginning.  It should be written out clearly in the
31    specs.  Connection would be created with nick strings (which are of
32    format nick@server).
33
34  o Counter block send/receive IV 64 bits instead of 32 bits, and the
35    value itself is used as 64-bit MSB ordered counter, which must
36    be reset before the packet sequence counter wraps.  It's basically
37    a counter which is initially set to a random value. (***DONE)
38
39  o Nickname to NEW_CLIENT packet. (***DONE)
40
41  o Add Source and Destination ID in message MAC computation to fully
42    associate the Message Payload with the true sender and the true
43    recipient of the message.  This will fix some security issues that
44    currently exists.  It is currently possible in some specific set of 
45    conditions to mount a replay attack using Message Payload.  This change
46    will remove the possibility of these attacks.
47
48    After including Source and Destination ID in message MAC, ONLY replay
49    attack possible is the following and with ONLY following conditions:
50
51    1. the attacker is able to record encrypted Message Payloads and has
52       the ability to replay them.
53    2. the message payload is encrypted with static private message key
54    3. the original sender of the message is not anymore in the network,
55       has changed nickname, has detached and resumed, or has reconnected
56       to other server.
57    4. the original receiver of the message is still in the network, has
58       not changed nickname, has not detached and resumed, and has not  
59       reconnected to any other server, or, some other user has the same
60       client ID.
61    5. the attacker is able to get the same client ID as the original   
62       sender.
63    6. the original receiver still has the static key set for the same  
64       remote client ID (for original sender's client ID).
65
66    All this is possible to happen though likelyhood is quite small.  It
67    does illustrate how inappropriate the use of static keys is. (***DONE)
68
69  o The SILC public key identifier separator is ', ' not ','.  The
70    whitespace is mandatory. (***DONE)
71    
72  o Definition of EAP as new authentication method for connection auth
73    protocol (RFC 3748).
74
75  o Count limit to LIST command?
76
77  o Strict announces if Channel ID is different than on router?  To not
78    allow any modes, topic, etc changes from server if the ID was wrong
79    initially?  Meaning: riding with netsplits not possible since the
80    channel created during split will not enforce is modes to the
81    router.  Or more liberal solution, like now?  Read emails on
82    silc-users.  (This is very old issue)
83
84  o The time values in STATS is 32-bits.  After 2038 it's over 32-bits.
85
86  o Consider for future authenticated encryption modes.