1 Frequently Asked Questions
5 1.2 When was SILC Project started?
6 1.3 Why SILC in the first place?
7 1.4 What license covers the SILC release?
8 1.5 Why SILC? Why not IRC3?
9 1.6 What platforms SILC supports?
10 1.7 How do you pronounce SILC?
11 1.8 Where can I find more information?
12 1.9 I would like to help out, what can I do?
15 2.1 What is the status of SILC protocol in the IETF?
16 2.2 How much the SILC protocol is based on IRC?
17 2.3 Why use SILC? Why not IRC with SSL?
18 2.4 Can I talk from SILC network to IRC network?
19 2.5 Does SILC support file transfer?
20 2.6 Does SILC support DCC or alike?
21 2.7 I am behind a firewall, can I use SILC?
22 2.8 How secure SILC really is?
23 2.9 Does SILC support instant messaging?
24 2.10 Why SILC does not have LINKS command like in IRC?
25 2.11 What does the session detaching/resuming mean?
26 2.12 Is anyone outside a channel able to see the channel
28 2.13 How can I register my channel in SILC?
29 2.14 Is it true that all messages are encrypted in SILC?
30 2.15 Can server or SILC operator gain operator mode on a channel?
31 2.16 Channel name doesn't have #-character or does it?
32 2.17 Does SILC support moderated channels?
33 2.18 What does the "watching" mean?
34 2.19 Is it possible to reject watching?
35 2.20 Is it possible to block private messages?
36 2.21 Is it possible to block channel messages?
37 2.22 Is it possible to block invites?
38 2.23 Does SILC support multimedia messages, like video/audio
40 2.24 What kind of presence modes SILC support?
41 2.25 Does SILC support anonymity?
42 2.26 Does SILC support services?
43 2.27 I have suggestions to SILC Protocol, what can I do?
46 3.1 Where can I find SILC clients?
47 3.2 Can I use SILC with IRC client and vice versa?
48 3.3 The default theme sucks, where can I find a better one?
49 3.4 How do I send a private message?
50 3.5 How do I negotiate secret key with another user?
51 3.6 How do I negotiate secret keys behind a NAT?
52 3.7 How do I change channel modes?
53 3.8 What does the founder mode on channel mean, and how do I set
55 3.9 I am founder of invite only channel, how can I join the
56 channel after I have left it?
57 3.10 How can I op or deop somebody on channel?
58 3.11 How do I set private key for channel, and what does that
60 3.12 How do I transfer a file?
61 3.13 How can I get other users public keys?
62 3.14 How can I see the fingerprint of my public key?
63 3.15 I gave WHOIS to a nick, and it returned multiple replies,
65 3.16 Is there a command to see all linked servers?
66 3.17 How do I list the users of a channel?
67 3.18 What is the difference between OPER and SILCOPER commands?
68 3.19 My Cygwin client crashes with message "Couldn't create
70 3.20 Why /join #silc and /join silc doesn't join the same
72 3.21 How do I detach my session from the server?
75 4.1 Where can I find SILC servers?
76 4.2 Can I run my own SILC server?
77 4.3 What is the difference between SILC server and SILC router?
78 4.4 Why server says permission denied to write to a log file?
79 4.5 When I connect to to my server, it says "server does not
80 support one of your proposed cipher", what is wrong?
81 4.6 Why SILC server runs on privileged port 706?
82 4.7 I see [Unknown] in the log file, what does it mean?
83 4.8 How can I generate a new server key pair?
86 5.1 What is SILC Toolkit?
87 5.2 Is the SILC Toolkit Reference Manual Available?
88 5.3 How do I compile the Toolkit on Unix?
89 5.4 How do I compile the Toolkit on Win32?
90 5.5 Does the Toolkit package include any sample code?
95 A: SILC (Secure Internet Live Conferencing) is a protocol which
96 provides secure conferencing services in the Internet over insecure
97 channel. SILC is IRC like although internally they are very different.
98 Biggest similarity between SILC and IRC is that they both provide
99 conferencing services and that SILC has almost same commands as IRC.
100 Other than that they are nothing alike.
102 Biggest differences are that SILC is secure what IRC is not in any
103 way. The network model is also entirely different compared to IRC.
105 Q: When was SILC Project started?
106 A: The SILC development started in 1996 and early 1997. But, for
107 various reasons it suspended many times until it finally got some wind
108 under its wings in 1999. First public release was in summer 2000.
110 Q: Why SILC in the first place?
111 A: Simply for fun, nothing more. And actually for need back in the
112 days when it was started. When SILC was first developed there really
113 did not exist anything like this. SILC has been very interesting and
116 Q: What license covers the SILC release?
117 A: The SILC software developed here at silcnet.org, the SILC Client,
118 the SILC Server and the SILC Toolkit are covered by the GNU General
121 Q: Why SILC? Why not IRC3?
122 A: Question that is justified no doubt of that. SILC was not started
123 to become a replacement for IRC. SILC was something that didn't exist
124 in 1996 or even today except that SILC is now released. However, I did
125 check out the IRC3 project in 1997 when I started coding and planning
128 But, IRC3 is problematic. Why? Because it still doesn't exist. The
129 project is almost at the same spot where it was in 1997 when I checked
130 it out. And it was old project back then as well. That's the problem
131 of IRC3 project. The same almost happened to SILC as well as I wasn't
132 making real progress over the years. I talked to the original author
133 of IRC, Jarkko Oikarinen, in 1997 and he directed me to the IRC3
134 project, although he said that IRC3 is a lot of talking and not that
135 much of anything else. I am not trying to put down the IRC3 project
136 but its problem is that no one in the project is able to make a
137 decision what is the best way to go about making the IRC3 and I wasn't
138 going to be part of that. The fact is that if I would've gone to IRC3
139 project, nor IRC3 or SILC would exist today. I think IRC3 could be
140 something really great if they just would get their act together and
141 start coding the thing.
143 Q: What platforms SILC supports?
144 A: The SILC Client is available on various Unix systems and is
145 reported to work under cygwin on Windows. The SILC Server also works
146 on various Unix systems. However, the server has not been tested under
147 cygwin as far as we know. The SILC Toolkit is distributed for all
148 platforms, Unix, Cygwin and native Windows.
150 Q: How do you pronounce SILC?
151 A: SILC is usually pronounced as `silk', but you are free to pronounce
154 Q: Where can I find more information?
155 A: For more technical information we suggest reading the SILC Protocol
156 specifications. You might also want to take a look at the
157 documentation page on the web page.
159 Q: I would like to help out, what can I do?
160 A: You might want to take a look at the Contributing page and the TODO
161 list. You might also want to join the SILC development mailing list.
163 2. Protocol Questions
165 Q: What is the status of SILC protocol in the IETF?
166 A: The SILC protocol specifications has been submitted currently as
167 individual submissions. There does not currently exist a working group
168 for this sort of project. Our goal is to fully standardize the SILC
169 and thus submit it as RFC to the IETF at a later time. This can happen
170 only after we have requested the IETF to accept SILC as RFC. As of
171 today, we have not yet even requested this from the IETF. We want to
172 let the protocol mature a bit more.
174 Q: How much SILC Protocol is based on IRC?
175 A: SILC is not based on IRC. The client superficially resembles IRC
176 client but everything that happens under the hood is nothing alike
177 IRC. SILC could *never* support IRC because the entire network
178 toppology is different (hopefully more scalable and powerful). So no,
179 SILC protocol (client or server) is not based on IRC. Instead, We've
180 taken good things from IRC and left all the bad things behind and not
181 even tried to burden the SILC with the IRCs problems that will burden
182 IRC and future IRC projects till the end. SILC client resembles IRC
183 client because it is easier for new users to start using SILC when
184 they already know all the commands.
186 Q: Why use SILC? Why not IRC with SSL?
187 A: Sure, that is possible, although, does that secure the entire IRC
188 network? And does that increase or decrease the lags and splits in the
189 IRC network? Does that provide user based security where some specific
190 private message are secured? Does that provide security where some
191 specific channel messages are secured? And I know, you can answer yes
192 to some of these questions. But, security is not just about applying
193 encryption to traffic and SILC is not just about `encrypting the
194 traffic`. You cannot make insecure protocol suddenly secure just by
195 encrypting the traffic. SILC is not meant to be IRC replacement. IRC
196 is good for some things, SILC is good for same and some other things.
198 Q: Can I talk from SILC network to IRC network?
199 A: Simple answer for this is No. The protocols are not compatible
200 which makes it impossible to directly talk from SILC network to IRC
201 network or vice versa. Developing a gateway between these two networks
202 would technically be possible but from security point of view strongly
203 not recommended. We have no plans for developing such a gateway.
205 Q: Does SILC support file transfer?
206 A: Yes. The SILC protocol support SFTP as mandatory file transfer
207 protocol. It provides simple client to client file transfer, but also
208 a possibility for file and directory manipulation. Even though the
209 SFTP is the file transfer protocol the support for file transferring
210 has been done so that practically any file transfer protocol may be
211 used with SILC protocol.
213 Q: Does SILC support DCC or alike?
214 A: SILC does not support the DCC commonly used in IRC. It does not
215 need it since it has builtin support for same features that DCC have.
216 You can transfer files securely and encrypted directly with another
217 client. You can also negotiate secret key material with another client
218 directly to use it in private message encryption. The private messages
219 are not, however sent directly between clients. The protocol, on the
220 other hand does not prohibit sending messages directly between clients
221 if the implementation would support it. The current SILC Client
222 implementation does not support it. This means that private messages
223 travel through the SILC Network. SILC protocol also has a capability
224 to support DCC and CTCP like protocols with SILC. None of them,
225 however have not been defined to be used with SILC at the present
228 Q: I am behind a firewall, can I use SILC?
229 A: Yes. If your network administrator can open the remote port 706
230 (TCP) you can use SILC without problems. You may also compile your
231 SILC client with SOCKS support which will proxy your SILC session
232 through the firewall.
234 Q: How secure SILC really is?
235 A: We have tried to make SILC as secure as possible. However, there is
236 no security protocol or security software that has not been vulnerable
237 to some sort of attacks. SILC is in no means different from this. So,
238 it is suspected that there are security holes in the SILC. These holes
239 just need to be found so that they can be fixed. SILC's security
240 features has been developed from attacker's point of view, and we've
241 tried to find all the possible attacks and guard the protocol against
244 But to give you some parameters of security SILC uses the most secure
245 crytographic algorithms such as AES (Rijndael), Twofish, Blowfish,
246 RC5, etc. SILC does not have DES or 3DES as DES is insecure and 3DES
247 is just too slow. SILC also uses cryptographically strong random
248 number generator when it needs random numbers. Public key cryptography
249 uses RSA (PKCS #1) and Diffie-Hellman algorithms. Key lengths for
250 ciphers are initially set to 256. For public key algorithms the
251 starting key length is 1024 bits.
253 But the best answer for this question is that SILC is as secure as its
254 weakest link. SILC is open and the protocol is open and in public thus
255 open for security analysis.
257 To give a list of attacks that are ineffective against SILC:
259 - Man-in-the-middle attacks are ineffective if proper public key
260 infrastructure is used, and if all public keys are always verified.
261 - IP spoofing is ineffective (because of encryption and trusted keys).
262 - Attacks that change the contents of the data or add extra data to
263 the packets are ineffective (because of encryption and integrity
265 - Passive attacks (listenning network traffic) are ineffective
266 (because of encryption). Everything is encrypted including
267 authentication data such as passwords when they are needed.
268 - Any sort of cryptanalytic attacks are tried to make ineffective by
269 using the best cryptographic algorithms out there, and by designing
270 the protocol to guard against them.
272 Q: Does SILC support instant messaging?
273 A: Officially SILC is not an instant message (IM) system as people
274 usually understands it. However, SILC supports many of the features
275 that are found in traditional IM systems. SILC can be implemented in
276 either IRC-style or IM-style system. Features that are usually found
277 only in IM systems, such as multiple presence settings, persistent
278 sessions etc. are also found in SILC.
280 Q: Why SILC does not have LINKS command like in IRC?
281 A: It was felt that this information as an own command in SILC is not
282 necessary. Moreover, the topology of the network might be undisclosed
283 information even though the servers and routers in the network are
284 still open. We feel that the network topology information, if it is
285 wanted to be public, and the list of accessible servers can be made
286 available in other ways than providing command like LINKS, which shows
287 the active server links in IRC.
289 Q: What does the session detaching/resuming mean?
290 A: The new SILC protocol supports a feature called session detachment.
291 This means that client can detach from the server by giving a DETACH
292 command, but still remain as valid user in the network. The connection
293 is lost to the server but the user remains in the network. User can
294 then resume the session back next time it connects a server in the
295 network, and be like he was never gone.
297 This feature clearly could be used in many cases. For example, if you
298 want to upgrade your current SILC client, you do not have to quit the
299 network anymore. You just give DETACH command and still remain in the
300 network. Then you upgrade your client and reconnect to the server and
301 continue business as is. If somebody gives WHOIS command to your
302 nickname he will see that you are detached. Messages that are sent to
303 you when you are detached are dropped by the server. Nice thing about
304 this feature is also that you can resume the session from any server
305 in the network; you do not have to reconnect to the same server you
306 originally were connected to.
308 Q: Is anyone outside a channel able to see the channel messages?
309 A: A short answer is simply No. A longer answer involves assumptions
310 about security conditions. Initially channel keys are generated by the
311 server, so if the server would get compromised it would be possible
312 for an adversary to see the messages. However, users on the channel
313 can prevent this even if the server would be compromised. It is
314 possible to set so called channel private key that only the users on
315 the channel know about. The servers does not know about the key, and
316 therefore cannot see the messages even if they would be compromised.
317 So, longer answer results into same as the short one; No.
319 Q: How can I register my channel in SILC?
320 A: There is not a channel registering service in SILC. However, SILC
321 does support permanent channels. When you join a non-existing channel
322 for the first time you will become the founder of the channel. You can
323 then set a special founder mode on the channel which makes the channel
324 permanent. When the last user leaves the channel when this mode is
325 set, the channel will not be destroyed. If the founder mode is not
326 set, then empty channels will be destroyed automatically. When the
327 founder mode is set and you leave the channel you can also reclaim the
328 founder rights back on the channel next time you join it. (see also Q:
329 What does the founder mode on channel mean, and how do I set it? and
330 Q: I am founder of invite only channel, how can I join the channel
331 after I have left it?). You can call this channel registering if you
334 Q: Is it true that all messages are encrypted in SILC?
335 A: Most definitely yes. The SILC protocol makes it impossible to send
336 unencrypted messages or packets to the SILC network. All messages are
337 always encrypted, either using session keys, or other secret keys such
338 as channel keys or private message keys.
340 Q: Can server or SILC operator gain operator mode on a channel?
341 A: They cannot get operator status, founder status, join invite only
342 channels, escape active bans, escape user limits or anything alike,
343 without explicitly being allowed. Only way to get channel operator
344 status is that someone ops him. Server and SILC operators in the
345 network are normal users with the extra privileges of being able to
346 adminstrate their server. They cannot do anything more than a normal
349 Q: Channel name doesn't have #-character or does it?
350 A: The #-character is not mandatory part of channel name, like it is
351 in IRC. This means that giving the command /JOIN #silc and /JOIN silc
352 will join to different channels. This is intentional since the
353 #-character clearly is IRC feature and has nothing to do with SILC. If
354 you want it to have the character then just join to the channel with
355 #-character in the name.
357 Q: Does SILC support moderated channels?
358 A: Yes. Channel founder can moderate both normal users and channel
359 operators so that they cannot talk on the channel. It is also possible
360 to queit one specific user on the channel if needed.
362 Q: What does the "watching" mean?
363 A: You can set a "watch" list for yourself in the server. This means
364 that you can watch for certain nicknames in the network. For example,
365 if you add a nickname "foo" to the watch list you will be notified
366 when the foo logins to the network, leaves the network, changes its
367 user mode or changes its nickname. This way you can watch for example
368 when does you friend login to the network.
370 Q: Is it possible to reject watching?
371 A: Yes. Since it is clear that not everyone wants to be spied on you
372 can set a mode for yourself which rejects watching you. Even if
373 someone is watching the nickname you have, your logins, logoffs, mode
374 changes or nickname changes will not be notified to the watcher.
376 Q: Is it possible to block private messages?
377 A: Yes. You can block incoming private messages by setting a mode that
378 prevents unwanted private messages. Only the private messages that are
379 secured with a private message key are delivered to you. This implies
380 that you have negotiated the private key with the sender of the
381 message, and therefore want to receive messages from that user. Other
382 private messages that are secured with normal session keys are dropped
383 when the mode is set.
385 Q: Is it possible to block channel messages?
386 A: Yes it is. By setting a mode that accomplishes this you can prevent
387 the server of sending any channel messages to you. There is also a
388 mode that allows blocking channel messages from normal users. This
389 means that you will receive channel messages only when it is sent by
390 channel operator or channel founder. It is also possible to block
391 channel messages sent by robots. A user on the channel can have a
392 robot mode set (which means that the user is actually a robot
393 program), and messages sent from that user can be blocked with the
396 Q: Is it possible to block invites?
397 A: It sure is. You can set a mode that prevents the server of sending
398 invite notifications to you. This can for example prevent invite
399 flooding. The downside is that it may make joining to a invite only
400 channels a bit harder.
402 Q: Does SILC support multimedia messages, like video/audio streaming?
403 A: Yes it does. The new version of the protocol supports sending of
404 MIME objects as messages. Since MIME objects can easily represent any
405 kind of data, such as video stream, audio stream, images, etc. it is
406 easy to send these multimedia messages in SILC. It also makes video
407 conferencing possible with SILC. It can work by sending the stream(s)
408 to a channel and everybody who joins the channel can receive the
409 stream. This feature in the protocol surely makes possible many kind
410 of multimedia applications in the future.
412 Q: What kind of presence modes SILC support?
413 A: By presence we mean indication of presence in the network, and SILC
414 supports several different kinds of presence modes. They can be
415 changed with the UMODE command which changes your user mode in the
416 network. Currently there is the following modes for presence: GONE
417 (I'm away), INDISPOSED (I cannot be here), BUSY (I'm busy, don't
418 bother me), PAGE (page me if you want to talk), and HYPER (I'm hyper
419 active, talk to me). When mode is not set it means you are present in
420 the network. There are many other user modes as well, but they are not
421 directly related to presence indication.
423 Q: Does SILC support anonymity?
424 A: The protocol has a user mode which indicates that user is anonymous
425 user. The user cannot set or unset the mode itself, but a server which
426 provides these anonymous chatting services can set the mode for the
427 user that connects to the server. User that has the mode set has their
428 username and hostname information scrambled. There are other ways of
429 making anonymity in SILC but they all are implementational methods,
430 and protocol does not handle those methods.
432 Q: Does SILC support services?
433 A: Yes it does. There is command called SERVICE which can be used by
434 clients and servers to negotiate a service agreement with a remote
435 server. The protocol does not however define any services currently.
437 Q: I have suggestions to SILC Protocol, what can I do?
438 A: All suggestions and improvements are of course welcome. You should
439 read the protocol specifications first to check out whether your idea
440 is covered by them already. The best place to make your idea public is
441 the SILC development mailing list. You might want to checkout the TODO
442 list from the CVS as well.
446 Q: Where can I find SILC clients?
447 A: The official SILC client is available for free download from the
448 silcnet.org web page. There is also several independent projects
449 working with the SILC Toolkit to come up with various other clients.
450 Bombyx is a cross-platform GUI client written with FLTK. Milc is also
451 a cross-platform GUI client written with WxWindows. See also our links
452 page for links to other clients.
454 Q: Can I use SILC with IRC client and vice versa?
455 A: Generally the answer would be no for both. However, there exist
456 already at least one IRC client that supports SILC, the Irssi client.
457 The current SILC client is actually based on the user interface of the
458 Irssi client. So, yes it is possible to use SILC with some IRC clients
459 and vice versa. You can use SILC plug-in in Irssi and have support for
460 both protocols in one client. But, this does not mean that you can
461 talk from SILC network to IRC network, that is not possible.
463 Q: The default theme sucks, where can I find a better one?
464 A: The Irssi SILC client's theme files are almost 100% compatible with
465 the original Irssi IRC client's themes. You can get those theme files
466 from the Irssi project website. You can also try to make a better
469 Q: How do I send a private message?
470 A: Sending private message is done by using the MSG command. For
471 example, command: /MSG john hello, will send a `hello' message to a
472 nickname `john'. By default private messages are secured with session
473 keys, and the message is re-encrypted by the servers when the message
474 travels to the receiver. If you would like to secure the private
475 messages with a private key, you can negotiate a secret key with the
476 receiver. Always remember to give WHOIS command before sending a
477 private message to assure that you are sending the message to correct
480 Q: How do I negotiate secret key with another user?
481 A: It is important to negotiate secret keys if you cannot trust the
482 servers and the network you are using. By negotiating a key with the
483 user you want to talk to assures that no one except you and your
484 friend is able to encrypt and decrypt the messages. The secret key
485 negotiation is done with the KEY command. Here is an example of how to
486 negotiate keys for securing private messages.
488 By giving command: /KEY MSG john agreement 192.168.2.100, you will
489 send a key negotiation request to a nickname `john'. The 192.168.2.100
490 IP address would be your machine's IP address. You can also define an
491 port to the KEY command after the IP address. If you do not do that
492 the operating system will bind to a port of its choosing. John will
493 receive a notification on the screen that you would like to negotiate
494 secret keys with him, and he will receive the IP address and port
495 where you are listenning for the negotiation. When he gives command:
496 /KEY MSG You negotiate 192.168.2.100 31382, the key negotiation is
497 started. During the key negotiation you will be prompted on the screen
498 to verify and accept John's public key if you do not have his public
499 key already. The John will be prompted to accept your public key as
500 well. After the key negotiation is over all private messages sent
501 between you and John are secured with the negotiated secret key. Note
502 that you must verify the public key you are prompted for, and this is
503 very important since someone could be doing man-in-the-middle attack.
505 Q: How do I negotiate secret keys behind a NAT?
506 A: If only you are behind a NAT, or firewall then key negotiation
507 works, but if both you and your friend are behind a NAT then key
508 negotiation will not work, since it is done peer to peer. If you are
509 behind a NAT then you obviously cannot receive key negotiations, and
510 cannot bind to any IP address and port. However, you can still use KEY
511 command to negotiate the keys.
513 By giving command: /KEY MSG john agreement, without any other
514 arguments (such as IP address and port) you will send a negotiation
515 request to John, but do not provide an address and port for the John
516 to connect to. When John receives the notification on the screen that
517 you would like to perform key negotiation, he can give command: /KEY
518 MSG You agreement 172.16.100.78, which will send key negotiation
519 request back to you. You will receive the IP address and port where
520 you need to connect in order to perform the negotiation. After
521 receiving the notification you can give command: /KEY MSG john
522 negotiate 172.16.100.78 31181, which will start the key negotiation
523 with John. This way you can negotiate the keys if you are behind a
526 Q: How do I change channel modes?
527 A: The command to manage channel modes is CMODE. With this command you
528 can change the channel status (to change it to secret channel for
529 example), set user limit on the channel, passphrase for the channel,
530 set the channel to use private keys on channel, and set the founder
533 Q: What does the founder mode on channel mean, and how do I set it?
534 A: Who ever creates the channel by being the first user to join the
535 channel becomes automatically the founder of the channel. Founder has
536 some extra privileges on the channel. For example, it is not possible
537 to kick the founder off the channel, and there are some channel modes
538 that only the founder of the channel can change. If the creator of the
539 channel wishes to preserve the channel founder mode even if he leave
540 the channel he can set the founder mode for the channel.
542 The mode is set by giving command: /CMODE #channel +f. This will set
543 the founder mode and will use the public key of the founder as
544 authenticator when the user is reclaiming the mode back. If the
545 founder leaves the channel he will be able to get the founder mode
546 back by using JOIN or CUMODE commmands. Giving command /JOIN #channel
547 -founder, will get the founder mode back at the same time he joins the
548 channel, or giving commmand /CUMODE #channel +f yournick, will also
549 give the founder mode back on the channel after he has joined the
552 The founder mode also means that the channel becomes permanent when it
553 is set. This means that when the last client leaves the channel the
554 channel is not destroyed when the founder mode is set. Next time
555 someone joins the channel he will not become the founder of the
556 channel if the channel already existed (but were empty). If the
557 founder mode is not set when last user leaves the channel, the channel
558 will be destroyed. When you set the mode for the channel and leave the
559 channel you can reclaim the founder rights to yourself back at any
560 time when you rejoin the channel.
562 Q: I am founder of invite only channel, how can I join the channel
563 after I have left it?
564 A: Founder can override the invite only status by reclaiming the
565 founder status on the channel using the JOIN command. The channel must
566 have the founder mode set in order for it to work. Reclaiming founder
567 status using JOIN command is important also if the channel has user
568 limit set, and has active bans. Founder can override these conditions
569 as well. However, founder cannot override the passphrase of the
570 channel if it is set. To get the founder mode during JOIN and to
571 override the invite only condition, give command: /JOIN #channel
572 -founder. This will join the channel and attempt to reclaim the
573 founder status back to you.
575 Q: How can I op or deop somebody on channel?
576 A: Giving operator status, or removing the operator status on a
577 channel requires you to have at least operator status, or founder
578 status on the channel. You can give operator status to another user by
579 using CUMODE command. To give ops give the command: /CUMODE #channel
580 +o john, and to remove ops give command: /CUMODE #channel -o john. To
581 indicate current channel you can also use `*' character in #channel's
584 Q: How do I set private key for channel, and what does that mean
586 A: Setting private key for channel requires first to set the private
587 key mode for the channel. You need to be the founder of the channel to
588 be able to do this. Give the command: /CMODE #channel +k. After this
589 mode is set the old channel key will not be used to encrypt and
590 decrypt channel messages. To set the key for the channel use the KEY
591 command. Every user on the channel must do the same thing and set the
592 same key. If some user on the channel does not set the key (or does
593 not know the key) he won't be able to see any messages on the channel.
594 Give the command: /KEY CHANNEL #channel set verysecretkey. This
595 command will set the `verysecretkey' passphrase as key to #channel.
596 How exactly other users will know this key is out of scope of the SILC
597 protocol. SILC does not provide yet a possibility of negotiating
598 secret key with many users at the same time. For this reason the
599 secret key on the channel is usually a passphrase or a password that
600 all users on the channel have to know. Setting a private key for
601 channel means that only the users on the channel who know the key is
602 able to encrypt and decrypt messages. Servers do not know the key at
603 all. If you remove the private key mode from the channel, all users
604 will start automatically using a new channel key to secure channel
607 Q: How do I transfer a file?
608 A: You can transfer files securely using the FILE command. This
609 command will automatically negotiate secret key with the remote user
610 and the file transfer stream is secured using that key. The file
611 transfer stream is always sent peer to peer. If you would like to send
612 a file to another user you can give command: /FILE SEND
613 path/to/the/file john. This command sends, or actually makes the
614 `path/to/the/file' available for download for the user `john'. The
615 John will decide whether he wants to actually download the file. When
616 John gives the command: /FILE RECEIVE, the key negotiation is started.
617 You and John will be prompted to verify and accept each other's public
618 key if you do not have it cached already. After key negotiation is
619 over the file transfer process starts. If you want to cancel the file
620 transfer session, or if John wants to reject the file transfer
621 request, giving the command: /FILE CLOSE will close the session.
623 Q: How can I get other users public keys?
624 A: You can get a user's public key using the GETKEY command. This
625 command will fetch the user's public key from the server where the
626 user has connected to. The server has verified that the user posesses
627 the corresponding private key, however, you will be prompted to verify
628 and accept the public key. All client public keys are saved in your
629 local key directory in ~/.silc/clientkeys/. You can also receive
630 clients public keys during key negotiation and file transfers. The
631 GETKEY command can be used to fetch a server's public key as well.
632 Those keys are saved in ~/.silc/serverkeys/ directory.
634 Q: How can I see the fingerprint of my public key?
635 A: You can check out your own fingerprint by giving just WHOIS command
636 without any arguments. Additionally you can also dump the contents of
637 the key file using the silc program and giving -S option to it. Your
638 own public key is always saved in ~/.silc/public_key.pub file. To dump
639 your key run silc as: silc -S .silc/public_key.pub. The same way you
640 can dump the contents of any public key inside ~/.silc/clientkeys/ and
641 ~/.silc/serverkeys/ directories. The WHOIS command will also show
642 other users public key fingerprints.
644 Q: I gave WHOIS to a nick, and it returned multiple replies, why?
645 A: This will happen if there are several same nicknames in the network
646 at the same time. As you may already know nicknames are not unique in
647 SILC network. This means there can be multiple same nicknames. This
648 also means that you can always have the nickname you want. If WHOIS
649 returns multiple replies, you can distinguish the users by their
650 realname, username, hostname and ultimately by the fingerprint of
651 their public key, which the WHOIS will also show. You will also notice
652 an additional nickname inside a parenthesis. It may show for example:
653 nickname: John (John@otaku). The real nickname is `John', but since
654 there are many John's in the network you can access this one using
655 `John@otaku'. So, if you were to send private message to this
656 particular John you can do it by giving command: /MSG John@otaku
657 hello. This will send `hello' message to the John@otaku.
659 Q: Is there a command to see all linked servers?
660 A: No there is not. For longer answer see also this FAQ.
662 Q: How do I list the users of a channel?
663 A: The command to list all users on a particular channel is USERS. It
664 is also aliased to WHO command in Irssi SILC Client. To see the users
665 of the current channel give the command: /USERS *. You can replace the
666 `*' with the channel name of your choosing. If the channel is private
667 or secret channel, and you have not joined the channel, you cannot
668 list the users of that channel.
670 Q: What is the difference between OPER and SILCOPER commands?
671 A: The OPER command is used to gain server operator privileges on
672 normal SILC server, while SILCOPER is used to gain router operator
673 (also known as SILC operator) privileges on router server. You cannot
674 use SILCOPER command on normal SILC server, it works only on router
677 Q: My Cygwin client crashes with message "Couldn't create //.silc
679 A: A solutions should be setting HOME enviroment variable to the
680 directory where you have unpacked your SILC Client. Type to your
681 command prompt something like:
684 Q: Why /join #silc and /join silc doesn't join the same channel?
685 A: The #-character is not mandatory part of channel name in SILC. So
686 #silc and silc are two different channels. The #-character in channel
687 name is IRC feature and has nothing to do with SILC. If you have
688 #-character in the channel name, then it is part of the channel name,
689 just like %-character, or &-character could be part of channel name.
691 Q: How do I detach my session from the server?
692 A: You can detach your session by simply giving DETACH command. Your
693 connection to the server will be closed automatically. Next time you
694 connect any server in the network your session will be automatically
695 resumed. If there is an error during session resuming your connection
696 will be closed and you need to reconnect to the server. In this case
697 the old sessionn cannot be resumed anymore.
701 Q: Where can I find SILC servers?
702 A: The SILC server is available for free download from the silcnet.org
703 web page. We are not aware of any other SILC server implementations,
706 Q: Can I run my own SILC server?
707 A: Yes of course. Download the SILC server package, compile and
708 install it. Be sure to check out the installation instructions and the
709 README file. You also should decide whether you want to run SILC
710 server or SILC router.
712 Q: What is the difference between SILC server and SILC router?
713 A: The topology of the SILC network includes SILC routers and the SILC
714 servers (and SILC clients of course). Normal SILC server does not have
715 direct connections with other SILC servers. They connect directly to
716 the SILC router. SILC Routers may have several server connections and
717 they may connect to several SILC routers. The SILC routers are the
718 servers in the network that know everything about everything. The SILC
719 servers know only local information and query global information from
720 the router when necessary.
722 If you are running SILC server you want to run it as router only if
723 you want to have server connections in it and are prepared to accept
724 server connections. You also need to get the router connected to some
725 other router to be able to join the SILC network. You may run the
726 server as normal SILC server if you do not want to accept other server
727 connections or cannot run it as router.
729 Q: Why server says permission denied to write to a log file?
730 A: The owner of the log files must be same user that the server is run
731 under, by default it is user `nobody'. Just change the permissions and
734 Q: When I connect to my server it says "server does not support one of
735 your proposed ciphers", what is wrong?
736 A: Most likely the ciphers and others has not been compiled as SIMs
737 (modules) and they are configured as modules in the silcd.conf. If
738 they are not compiled as modules remove the module paths from the
739 ciphers and hash functions from the silcd.conf, so that the server use
740 the builtin ciphers. Then try connecting to the server again. It is
741 also possible that the client IS proposing some ciphers that your
742 server does not support.
744 Q: Why SILC server runs on privileged port 706?
745 A: Ports 706/tcp and 706/udp have been assigned for the SILC protocol
746 by IANA. Server on the network listening above privileged ports
747 (>1023) SHOULD NOT be trusted as it could have been set up by
748 untrusted party. The server normally drops root privileges after
749 startup and then run as user previously defined in silcd.conf.
751 Q: I see [Unknown] in the log file, what does it mean?
752 A: You can see in the log file for example: [Info] Closing connection
753 192.168.78.139:3214 [Unknown]. The [Unknown] means that the connection
754 was not authenticated yet, and it is not known whether the connection
755 was a client, server or router. There will appear [Client], [Server]
756 or [Router] if the connection is authenticated at that point.
758 Q: How can I generate a new server key pair?
759 A: You can generate a new key pair using the silcd command with the -C
760 option. When SILC Server is installed a key pair is generated
761 automatically for you. However, it is suggested that you check the
762 information found in that key and generate a new key pair if the
763 information is incorrect. You can check the information of your public
764 key by giving command: silc -S file.pub.
766 If you want to generate a new key pair then you can give for example
767 command: silcd -C . --identifier="UN=silc-oper, HN=silc.silcnet.org,
768 RN=SILC Router Admin, E=silc-oper@silcnet.org, O=SILC Project, C=SK".
769 This will create the key pair to current directory, with the specified
770 identifier. Please, give the --help option to the silcd to see usage
771 help for the -C and --identifier options.
775 Q: What is SILC Toolkit?
776 A: SILC Toolkit is a package intended for software developers who
777 would like to develope their own SILC based applications or help in
778 the development of the SILC. The Toolkit includes SILC Protocol Core
779 library, SILC Crypto library, SILC Key Exchange (SKE) library, SILC
780 Math library, SILC Modules (SIM) library, SILC Utility library, SILC
781 Client library and few other libraries.
783 Q: Is the SILC Toolkit Reference Manual Available?
784 A: Yes, partially completed reference manual is available in the
785 Toolkit releases as HTML package and they are available from the
786 silcnet.org website as well at the documentation page.
788 Q: How do I compile the Toolkit on Unix?
789 A: You should read the INSTALL file from the package and follow its
790 instructions. The compilation on Unix is as simple as compiling any
791 other SILC package. Give, `./configure' command and then `make'
794 Q: How do I compile the Toolkit on Win32?
795 A: We have prepared instructions to compile the Toolkit on Win32 in
796 the Toolkit package. Please, read the README.WIN32 file from the
797 package for detailed instructions how to compile the Toolkit for
798 Cygwin, MinGW and native Win32 systems. We have also prepared ready
799 MSVC++ Workspace files in the win32/ directory in the package that
800 will compile automatically the Toolkit.
802 Q: Does the Toolkit package include any sample code?
803 A: Yes, naturally. It includes sample codes for two different SILC
804 Client implementations, and SILC Server. The silcer/ directory
805 includes a simple GUI client based on GTK--, and Win32 samples are
806 included in the win32/ directory, for simple client.