updates
[silc.git] / doc / FAQ
1 Frequently Asked Questions
2
3
4 Q: What is SILC?
5 A: SILC (Secure Internet Live Conferencing) is a protocol which provides
6    secure conferencing services in the Internet over insecure channel.
7    SILC is IRC like although internally they are very different.  Biggest
8    similiarity between SILC and IRC is that they both provide conferencing
9    services and that SILC has almost same commands as IRC.  Other than
10    that they are nothing alike.
11
12    Biggest differences are that SILC is secure what IRC is not in any
13    way.  The network model is also entirely different compared to IRC.
14
15
16 Q: Why SILC in the first place?
17 A: Simply for fun, nothing more.  An actually for need back then when
18    it was started.  SILC has been very interesting and educational
19    project.
20
21
22 Q: When SILC will be completed?
23 A: SILC still has a lot things to do.  The time of completion is much
24    related to how many interested people is willing to join the effort.
25    It will be ready when it is ready.  The reason for release of the
26    current development version is just to get it out and people aware
27    that something like this exist.
28
29
30 Q: Why use SILC? Why not IRC with SSL?
31 A: Sure, that is possible, although, does that secure the entire IRC
32    network? And does that increase or decrease the lags and splits in
33    the IRC network?  Does that provide user based security where some
34    specific private message are secured.? Does that provide security
35    where some specific channel messages are secured?  Security is not
36    just about applying encryption to traffic and SILC is not just about
37    `encrypting the traffic`.  You cannot make insecure protocol suddenly
38    secure just by encrypting the traffic.  SILC is not meant to be IRC
39    replacement.  IRC is good for some things, SILC is good for same and
40    some other things.
41
42
43 Q: Can I use SILC with IRC client?  What about can I use IRC with SILC
44    client?
45 A: Answer for both question is no.  IRC client is in no way compatible
46    with SILC server.  SILC client cannot currently use IRC but this may
47    change in the future if IRC support is added to the SILC client.  
48    After that one could use both SILC and IRC with the same client.
49    Although, even then one cannot talk from SILC network to IRC network.
50    That just is not possible.
51
52
53 Q: Why client/server protocol is based on IRC? Would it be more
54    interesting to implement something extensible and more powerful?
55 A: They are not, non the least.  Have you read the protocol specification?
56    The client superficially resembles IRC client but everything that
57    happens under the hood is nothing alike IRC.  SILC could *never*
58    support IRC because the entire network toppology is different
59    (hopefully more scalable and powerful).  So no, SILC protocol (client
60    or server) is not based on IRC.  Instead, I've taken good things from
61    IRC and leaved all the bad things behind and not even tried to burden
62    myself with the IRC caveats that will burden IRC and future IRC
63    projects til the end.  SILC client resembles IRC client because it is
64    easier for new users to start using SILC when they already know all the
65    commands.
66
67
68 Q: Why SILC? Why not IRC3?
69 A: Question that is justified no doubt of that.  I didn't start doing SILC
70    to be replacement for IRC.  SILC was something that didn't exist in
71    1996 or even today except that SILC is now released.  However, I did
72    check out the IRC3 project in 1997 when I started coding and planning
73    the SILC protocol.
74
75    But, IRC3 is problematic. Why? Because it still doesn't exist.  The
76    project is at the same spot where it was in 1997 when I checked it out.
77    And it was old project back then as well.  Couple of months ago I 
78    checked it again and nothing were happening.  That's the problem of IRC3
79    project.  The same almost happened to SILC as well as I wasn't making
80    real progress over the years.  I talked to the original author of IRC,
81    Jarkko Oikarinen, in 1997 and he directed me to the IRC3 project, 
82    although he said that IRC3 is a lot of talking and not that much of 
83    anything else.  I am not trying to put down the IRC3 project but its
84    problem is that no one in the project is able to make a decision what
85    is the best way to go about making the IRC3 and I wasn't going to be
86    part of that.  The fact is that if I would've gone to IRC3 project,
87    nor IRC3 or SILC would exist today.  I think IRC3 could be something
88    really great if they just would get their act together and start
89    coding the thing.
90
91
92 Q: How secure SILC really is?
93 A: A good question which I don't have a answer.  SILC has been tried to
94    make as secure as possible.  However, there is no security protocol
95    or security software that has not been vulnerable to some sort of
96    attacks.  SILC is in no means different from this.  So, it is suspected 
97    that there are security holes in the SILC.  These holes just needs to 
98    be found so that they can be fixed.
99
100    But to give you some parameters of security SILC uses the most secure
101    crytographic algorithms such as Blowfish, RC5, Twofish, etc.  SILC
102    does not have DES or 3DES as DES is insecure and 3DES is just too
103    slow.  SILC also uses cryptographically strong random number generator
104    when it needs random numbers.  Public key cryptography uses RSA
105    and Diffie Hellman algorithms.  Key lengths for ciphers are initially
106    set to 128 bits but many algorithm supports longer keys.  For public
107    key algorithms the starting key length is 1024 bits.
108
109    But the best answer for this question is that SILC is as secure as
110    its weakest link.  SILC is open and the protocol is open and in public
111    thus open for security analyzes.
112
113    To give a list of attacks that are ineffective against SILC:
114
115       o Man-in-the-middle attacks are ineffective if proper public key
116         infrastructure is used.  SILC is vulnerable to this attack if
117         the public keys used in the SILC are not verified to be trusted.
118
119       o IP spoofing is ineffective (because of encryption and trusted 
120         keys).
121
122       o Attacks that change the contents of the data or add extra
123         data to the packets are ineffective (because of encryption and
124         integrity checks).
125
126       o Passive attacks (listenning network traffic) are ineffective
127         (because of encryption).  Everything is encrypted including
128         authentication data such as passwords when they are needed.
129
130       o Any sort of cryptanalytic attacks are tried to make ineffective
131         by using the best cryptographic algorithms out there.
132
133
134 More to come later...