   Frequently Asked Questions

   1. General Questions
        1.1 What is SILC?
        1.2 When was SILC Project started?
        1.3 Why SILC in the first place?
        1.4 What license covers the SILC release?
        1.5 Why SILC? Why not IRC3?
        1.6 What platforms SILC supports?
        1.7 How do you pronounce SILC?
        1.8 Where can I find more information?
        1.9 I would like to help out, what can I do?

   2. Protocol Questions
        2.1 What is the status of SILC protocol in the IETF?
        2.2 How much the SILC protocol is based on IRC?
        2.3 Why use SILC? Why not IRC with SSL?
        2.4 Can I talk from SILC network to IRC network?
        2.5 Does SILC support file transfer?
        2.6 Does SILC support DCC or alike?
        2.7 I am behind a firewall, can I use SILC?
        2.8 How secure SILC really is?
        2.9 Does SILC support instant messaging?
        2.10 Why SILC does not have LINKS command like in IRC?
        2.11 What does the session detaching/resuming mean?
        2.12 Is anyone outside a channel able to see the channel
   messages?
        2.13 How can I register my channel in SILC?
        2.14 Is it true that all messages are encrypted in SILC?
        2.15 Can server or SILC operator gain operator mode on a channel?
        2.16 Channel name doesn't have #-character or does it?
        2.17 Does SILC support moderated channels?
        2.18 What does the "watching" mean?
        2.19 Is it possible to reject watching?
        2.20 Is it possible to block private messages?
        2.21 Is it possible to block channel messages?
        2.22 Is it possible to block invites?
        2.23 Does SILC support multimedia messages, like video/audio
   streaming?
        2.24 What kind of presence modes SILC support?
        2.25 Does SILC support anonymity?
        2.26 Does SILC support services?
        2.27 I have suggestions to SILC Protocol, what can I do?

   3. Client Questions
        3.1 Where can I find SILC clients?
        3.2 Can I use SILC with IRC client and vice versa?
        3.3 The default theme sucks, where can I find a better one?
        3.4 How do I send a private message?
        3.5 How do I negotiate secret key with another user?
        3.6 How do I negotiate secret keys behind a NAT?
        3.7 How do I change channel modes?
        3.8 What does the founder mode on channel mean, and how do I set
   it?
        3.9 I am founder of invite only channel, how can I join the
   channel after I have left it?
        3.10 How can I op or deop somebody on channel?
        3.11 How do I set private key for channel, and what does that
   mean exactly?
        3.12 How do I transfer a file?
        3.13 How can I get other users public keys?
        3.14 How can I see the fingerprint of my public key?
        3.15 I gave WHOIS to a nick, and it returned multiple replies,
   why?
        3.16 Is there a command to see all linked servers?
        3.17 How do I list the users of a channel?
        3.18 What is the difference between OPER and SILCOPER commands?
        3.19 My Cygwin client crashes with message "Couldn't create
   //.silc directory"
        3.20 Why /join #silc and /join silc doesn't join the same
   channel?
        3.21 How do I detach my session from the server?

   4. Server Questions
        4.1 Where can I find SILC servers?
        4.2 Can I run my own SILC server?
        4.3 What is the difference between SILC server and SILC router?
        4.4 Why server says permission denied to write to a log file?
        4.5 When I connect to to my server, it says "server does not
   support one of your proposed cipher", what is wrong?
        4.6 Why SILC server runs on privileged port 706?
        4.7 I see [Unknown] in the log file, what does it mean?
        4.8 How can I generate a new server key pair?

   5. Toolkit Questions
        5.1 What is SILC Toolkit?
        5.2 Is the SILC Toolkit Reference Manual Available?
        5.3 How do I compile the Toolkit on Unix?
        5.4 How do I compile the Toolkit on Win32?
        5.5 Does the Toolkit package include any sample code?

   1. General Questions

   Q: What is SILC?
   A: SILC (Secure Internet Live Conferencing) is a protocol which
   provides secure conferencing services in the Internet over insecure
   channel. SILC is IRC like although internally they are very different.
   Biggest similarity between SILC and IRC is that they both provide
   conferencing services and that SILC has almost same commands as IRC.
   Other than that they are nothing alike.

   Biggest differences are that SILC is secure what IRC is not in any
   way. The network model is also entirely different compared to IRC.

   Q: When was SILC Project started?
   A: The SILC development started in 1996 and early 1997. But, for
   various reasons it suspended many times until it finally got some wind
   under its wings in 1999. First public release was in summer 2000.

   Q: Why SILC in the first place?
   A: Simply for fun, nothing more. And actually for need back in the
   days when it was started. When SILC was first developed there really
   did not exist anything like this. SILC has been very interesting and
   educational project.

   Q: What license covers the SILC release?
   A: The SILC software developed here at silcnet.org, the SILC Client,
   the SILC Server and the SILC Toolkit are covered by the GNU General
   Public License.

   Q: Why SILC? Why not IRC3?
   A: Question that is justified no doubt of that. SILC was not started
   to become a replacement for IRC. SILC was something that didn't exist
   in 1996 or even today except that SILC is now released. However, I did
   check out the IRC3 project in 1997 when I started coding and planning
   the SILC protocol.

   But, IRC3 is problematic. Why? Because it still doesn't exist. The
   project is almost at the same spot where it was in 1997 when I checked
   it out. And it was old project back then as well. That's the problem
   of IRC3 project. The same almost happened to SILC as well as I wasn't
   making real progress over the years. I talked to the original author
   of IRC, Jarkko Oikarinen, in 1997 and he directed me to the IRC3
   project, although he said that IRC3 is a lot of talking and not that
   much of anything else. I am not trying to put down the IRC3 project
   but its problem is that no one in the project is able to make a
   decision what is the best way to go about making the IRC3 and I wasn't
   going to be part of that. The fact is that if I would've gone to IRC3
   project, nor IRC3 or SILC would exist today. I think IRC3 could be
   something really great if they just would get their act together and
   start coding the thing.

   Q: What platforms SILC supports?
   A: The SILC Client is available on various Unix systems and is
   reported to work under cygwin on Windows. The SILC Server also works
   on various Unix systems. However, the server has not been tested under
   cygwin as far as we know. The SILC Toolkit is distributed for all
   platforms, Unix, Cygwin and native Windows.

   Q: How do you pronounce SILC?
   A: SILC is usually pronounced as `silk', but you are free to pronounce
   it the way you want.

   Q: Where can I find more information?
   A: For more technical information we suggest reading the SILC Protocol
   specifications. You might also want to take a look at the
   documentation page on the web page.

   Q: I would like to help out, what can I do?
   A: You might want to take a look at the Contributing page and the TODO
   list. You might also want to join the SILC development mailing list.

   2. Protocol Questions

   Q: What is the status of SILC protocol in the IETF?
   A: The SILC protocol specifications has been submitted currently as
   individual submissions. There does not currently exist a working group
   for this sort of project. Our goal is to fully standardize the SILC
   and thus submit it as RFC to the IETF at a later time. This can happen
   only after we have requested the IETF to accept SILC as RFC. As of
   today, we have not yet even requested this from the IETF. We want to
   let the protocol mature a bit more.

   Q: How much SILC Protocol is based on IRC?
   A: SILC is not based on IRC. The client superficially resembles IRC
   client but everything that happens under the hood is nothing alike
   IRC. SILC could *never* support IRC because the entire network
   toppology is different (hopefully more scalable and powerful). So no,
   SILC protocol (client or server) is not based on IRC. Instead, We've
   taken good things from IRC and left all the bad things behind and not
   even tried to burden the SILC with the IRCs problems that will burden
   IRC and future IRC projects till the end. SILC client resembles IRC
   client because it is easier for new users to start using SILC when
   they already know all the commands.

   Q: Why use SILC? Why not IRC with SSL?
   A: Sure, that is possible, although, does that secure the entire IRC
   network? And does that increase or decrease the lags and splits in the
   IRC network? Does that provide user based security where some specific
   private message are secured? Does that provide security where some
   specific channel messages are secured? And I know, you can answer yes
   to some of these questions. But, security is not just about applying
   encryption to traffic and SILC is not just about `encrypting the
   traffic`. You cannot make insecure protocol suddenly secure just by
   encrypting the traffic. SILC is not meant to be IRC replacement. IRC
   is good for some things, SILC is good for same and some other things.

   Q: Can I talk from SILC network to IRC network?
   A: Simple answer for this is No. The protocols are not compatible
   which makes it impossible to directly talk from SILC network to IRC
   network or vice versa. Developing a gateway between these two networks
   would technically be possible but from security point of view strongly
   not recommended. We have no plans for developing such a gateway.

   Q: Does SILC support file transfer?
   A: Yes. The SILC protocol support SFTP as mandatory file transfer
   protocol. It provides simple client to client file transfer, but also
   a possibility for file and directory manipulation. Even though the
   SFTP is the file transfer protocol the support for file transferring
   has been done so that practically any file transfer protocol may be
   used with SILC protocol.

   Q: Does SILC support DCC or alike?
   A: SILC does not support the DCC commonly used in IRC. It does not
   need it since it has builtin support for same features that DCC have.
   You can transfer files securely and encrypted directly with another
   client. You can also negotiate secret key material with another client
   directly to use it in private message encryption. The private messages
   are not, however sent directly between clients. The protocol, on the
   other hand does not prohibit sending messages directly between clients
   if the implementation would support it. The current SILC Client
   implementation does not support it. This means that private messages
   travel through the SILC Network. SILC protocol also has a capability
   to support DCC and CTCP like protocols with SILC. None of them,
   however have not been defined to be used with SILC at the present
   time.

   Q: I am behind a firewall, can I use SILC?
   A: Yes. If your network administrator can open the remote port 706
   (TCP) you can use SILC without problems. You may also compile your
   SILC client with SOCKS support which will proxy your SILC session
   through the firewall.

   Q: How secure SILC really is?
   A: We have tried to make SILC as secure as possible. However, there is
   no security protocol or security software that has not been vulnerable
   to some sort of attacks. SILC is in no means different from this. So,
   it is suspected that there are security holes in the SILC. These holes
   just need to be found so that they can be fixed. SILC's security
   features has been developed from attacker's point of view, and we've
   tried to find all the possible attacks and guard the protocol against
   them.

   But to give you some parameters of security SILC uses the most secure
   crytographic algorithms such as AES (Rijndael), Twofish, Blowfish,
   RC5, etc. SILC does not have DES or 3DES as DES is insecure and 3DES
   is just too slow. SILC also uses cryptographically strong random
   number generator when it needs random numbers. Public key cryptography
   uses RSA (PKCS #1) and Diffie-Hellman algorithms. Key lengths for
   ciphers are initially set to 256. For public key algorithms the
   starting key length is 1024 bits.

   But the best answer for this question is that SILC is as secure as its
   weakest link. SILC is open and the protocol is open and in public thus
   open for security analysis.

   To give a list of attacks that are ineffective against SILC:

   - Man-in-the-middle attacks are ineffective if proper public key
   infrastructure is used, and if all public keys are always verified.
   - IP spoofing is ineffective (because of encryption and trusted keys).
   - Attacks that change the contents of the data or add extra data to
   the packets are ineffective (because of encryption and integrity
   checks).
   - Passive attacks (listenning network traffic) are ineffective
   (because of encryption). Everything is encrypted including
   authentication data such as passwords when they are needed.
   - Any sort of cryptanalytic attacks are tried to make ineffective by
   using the best cryptographic algorithms out there, and by designing
   the protocol to guard against them.

   Q: Does SILC support instant messaging?
   A: Officially SILC is not an instant message (IM) system as people
   usually understands it. However, SILC supports many of the features
   that are found in traditional IM systems. SILC can be implemented in
   either IRC-style or IM-style system. Features that are usually found
   only in IM systems, such as multiple presence settings, persistent
   sessions etc. are also found in SILC.

   Q: Why SILC does not have LINKS command like in IRC?
   A: It was felt that this information as an own command in SILC is not
   necessary. Moreover, the topology of the network might be undisclosed
   information even though the servers and routers in the network are
   still open. We feel that the network topology information, if it is
   wanted to be public, and the list of accessible servers can be made
   available in other ways than providing command like LINKS, which shows
   the active server links in IRC.

   Q: What does the session detaching/resuming mean?
   A: The new SILC protocol supports a feature called session detachment.
   This means that client can detach from the server by giving a DETACH
   command, but still remain as valid user in the network. The connection
   is lost to the server but the user remains in the network. User can
   then resume the session back next time it connects a server in the
   network, and be like he was never gone.

   This feature clearly could be used in many cases. For example, if you
   want to upgrade your current SILC client, you do not have to quit the
   network anymore. You just give DETACH command and still remain in the
   network. Then you upgrade your client and reconnect to the server and
   continue business as is. If somebody gives WHOIS command to your
   nickname he will see that you are detached. Messages that are sent to
   you when you are detached are dropped by the server. Nice thing about
   this feature is also that you can resume the session from any server
   in the network; you do not have to reconnect to the same server you
   originally were connected to.

   Q: Is anyone outside a channel able to see the channel messages?
   A: A short answer is simply No. A longer answer involves assumptions
   about security conditions. Initially channel keys are generated by the
   server, so if the server would get compromised it would be possible
   for an adversary to see the messages. However, users on the channel
   can prevent this even if the server would be compromised. It is
   possible to set so called channel private key that only the users on
   the channel know about. The servers does not know about the key, and
   therefore cannot see the messages even if they would be compromised.
   So, longer answer results into same as the short one; No.

   Q: How can I register my channel in SILC?
   A: There is not a channel registering service in SILC. However, SILC
   does support permanent channels. When you join a non-existing channel
   for the first time you will become the founder of the channel. You can
   then set a special founder mode on the channel which makes the channel
   permanent. When the last user leaves the channel when this mode is
   set, the channel will not be destroyed. If the founder mode is not
   set, then empty channels will be destroyed automatically. When the
   founder mode is set and you leave the channel you can also reclaim the
   founder rights back on the channel next time you join it. (see also Q:
   What does the founder mode on channel mean, and how do I set it? and
   Q: I am founder of invite only channel, how can I join the channel
   after I have left it?). You can call this channel registering if you
   want.

   Q: Is it true that all messages are encrypted in SILC?
   A: Most definitely yes. The SILC protocol makes it impossible to send
   unencrypted messages or packets to the SILC network. All messages are
   always encrypted, either using session keys, or other secret keys such
   as channel keys or private message keys.

   Q: Can server or SILC operator gain operator mode on a channel?
   A: They cannot get operator status, founder status, join invite only
   channels, escape active bans, escape user limits or anything alike,
   without explicitly being allowed. Only way to get channel operator
   status is that someone ops him. Server and SILC operators in the
   network are normal users with the extra privileges of being able to
   adminstrate their server. They cannot do anything more than a normal
   user.

   Q: Channel name doesn't have #-character or does it?
   A: The #-character is not mandatory part of channel name, like it is
   in IRC. This means that giving the command /JOIN #silc and /JOIN silc
   will join to different channels. This is intentional since the
   #-character clearly is IRC feature and has nothing to do with SILC. If
   you want it to have the character then just join to the channel with
   #-character in the name.

   Q: Does SILC support moderated channels?
   A: Yes. Channel founder can moderate both normal users and channel
   operators so that they cannot talk on the channel. It is also possible
   to quiet one specific user on the channel if needed.

   Q: What does the "watching" mean?
   A: You can set a "watch" list for yourself in the server. This means
   that you can watch for certain nicknames in the network. For example,
   if you add a nickname "foo" to the watch list you will be notified
   when the foo logins to the network, leaves the network, changes its
   user mode or changes its nickname. This way you can watch for example
   when does you friend login to the network.

   Q: Is it possible to reject watching?
   A: Yes. Since it is clear that not everyone wants to be spied on you
   can set a mode for yourself which rejects watching you. Even if
   someone is watching the nickname you have, your logins, logoffs, mode
   changes or nickname changes will not be notified to the watcher.

   Q: Is it possible to block private messages?
   A: Yes. You can block incoming private messages by setting a mode that
   prevents unwanted private messages. Only the private messages that are
   secured with a private message key are delivered to you. This implies
   that you have negotiated the private key with the sender of the
   message, and therefore want to receive messages from that user. Other
   private messages that are secured with normal session keys are dropped
   when the mode is set.

   Q: Is it possible to block channel messages?
   A: Yes it is. By setting a mode that accomplishes this you can prevent
   the server of sending any channel messages to you. There is also a
   mode that allows blocking channel messages from normal users. This
   means that you will receive channel messages only when it is sent by
   channel operator or channel founder. It is also possible to block
   channel messages sent by robots. A user on the channel can have a
   robot mode set (which means that the user is actually a robot
   program), and messages sent from that user can be blocked with the
   mode.

   Q: Is it possible to block invites?
   A: It sure is. You can set a mode that prevents the server of sending
   invite notifications to you. This can for example prevent invite
   flooding. The downside is that it may make joining to a invite only
   channels a bit harder.

   Q: Does SILC support multimedia messages, like video/audio streaming?
   A: Yes it does. The new version of the protocol supports sending of
   MIME objects as messages. Since MIME objects can easily represent any
   kind of data, such as video stream, audio stream, images, etc. it is
   easy to send these multimedia messages in SILC. It also makes video
   conferencing possible with SILC. It can work by sending the stream(s)
   to a channel and everybody who joins the channel can receive the
   stream. This feature in the protocol surely makes possible many kind
   of multimedia applications in the future.

   Q: What kind of presence modes SILC support?
   A: By presence we mean indication of presence in the network, and SILC
   supports several different kinds of presence modes. They can be
   changed with the UMODE command which changes your user mode in the
   network. Currently there is the following modes for presence: GONE
   (I'm away), INDISPOSED (I cannot be here), BUSY (I'm busy, don't
   bother me), PAGE (page me if you want to talk), and HYPER (I'm hyper
   active, talk to me). When mode is not set it means you are present in
   the network. There are many other user modes as well, but they are not
   directly related to presence indication.

   Q: Does SILC support anonymity?
   A: The protocol has a user mode which indicates that user is anonymous
   user. The user cannot set or unset the mode itself, but a server which
   provides these anonymous chatting services can set the mode for the
   user that connects to the server. User that has the mode set has their
   username and hostname information scrambled. There are other ways of
   making anonymity in SILC but they all are implementational methods,
   and protocol does not handle those methods.

   Q: Does SILC support services?
   A: Yes it does. There is command called SERVICE which can be used by
   clients and servers to negotiate a service agreement with a remote
   server. The protocol does not however define any services currently.

   Q: I have suggestions to SILC Protocol, what can I do?
   A: All suggestions and improvements are of course welcome. You should
   read the protocol specifications first to check out whether your idea
   is covered by them already. The best place to make your idea public is
   the SILC development mailing list. You might want to checkout the TODO
   list from the CVS as well.

   3. Client Questions

   Q: Where can I find SILC clients?
   A: The official SILC client is available for free download from the
   silcnet.org web page. There is also several independent projects
   working with the SILC Toolkit to come up with various other clients.
   Bombyx is a cross-platform GUI client written with FLTK. Milc is also
   a cross-platform GUI client written with WxWindows. See also our links
   page for links to other clients.

   Q: Can I use SILC with IRC client and vice versa?
   A: Generally the answer would be no for both. However, there exist
   already at least one IRC client that supports SILC, the Irssi client.
   The current SILC client is actually based on the user interface of the
   Irssi client. So, yes it is possible to use SILC with some IRC clients
   and vice versa. You can use SILC plug-in in Irssi and have support for
   both protocols in one client. But, this does not mean that you can
   talk from SILC network to IRC network, that is not possible.

   Q: The default theme sucks, where can I find a better one?
   A: The Irssi SILC client's theme files are almost 100% compatible with
   the original Irssi IRC client's themes. You can get those theme files
   from the Irssi project website. You can also try to make a better
   theme by yourself.

   Q: How do I send a private message?
   A: Sending private message is done by using the MSG command. For
   example, command: /MSG john hello, will send a `hello' message to a
   nickname `john'. By default private messages are secured with session
   keys, and the message is re-encrypted by the servers when the message
   travels to the receiver. If you would like to secure the private
   messages with a private key, you can negotiate a                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           