SILC Protocol
 
 
Features
 
SILC protocol is the most rich featured conferencing protocol at the present time. It combines features from traditional conferencing protocols and introduces entirely new features. The following feature list includes the most important features of the protocol. There are other smaller features that are not listed here.
 
 
General Features
 
Nicknames
Non-unique nicknames. User can always get the nickname they want. Nickname collisions cannot happen. Maximum nickname length is 128 bytes.
 
User Modes
User's can change their status in the network by modifying their user modes. User modes can be used to indicate the presence on the network, block unwanted private message, reject watching and to block unwanted invites.
 
Private Messages
Private messages between two users in the network allows private conversation. Text messages support UTF-8 encoding.
 
Channels
Channels are group of users. Channels can have operators and founder who is the founder of the channel. Channel can have modes such as, private channel mode, secret channel mode and invite only channel mode. Several other channel modes can be used to change the behaviour of the channel such as, set cipher and HMAC of the channel, set passphrase or public key authentication to channel, set user limit on channel, set founder authentication on channel and to moderate normal users and operators on channel. Some modes on the channel can be changed only by the operator and/or the founder of the channel.
 
When the founder authentication mode is set, the founder of the channel can regain the founder privileges to the channel at any time, even if he had left the channel.
 
Users' modes can also be changed on the channel. Channel user modes can affect user's status on the channel, such as, set user as operator of the channel and to quiet badly behaving user. Channel user can also change their own modes to for example block certain unwanted channel messages.
 
Implementation can also create sub-channels on existing channel by utilizing channel private keys. This allows several independent groups to have conversation on same channel. Maximum channel name length is 256 bytes.
 
Channel Messages
Channel messages reach group of users on the channel. Text messages support UTF-8 encoding.
 
Commands
SILC protocol provides nearly 30 different commands that clients and servers can use to operate on the network. Commands are used to for example change nicknames, join channels, etc.
 
Information Query
Clients and servers are able to query various information about other clients, servers and channels in the network. The information queried can return for example user's name, modes, joined channels, etc.
 
Anonymity
SILC protocol supports anonymity where user's contact information is scrambled and not revealed on the network.
 
 
Advanced Features
 
File Transfer
Secure file transfer can be performed between two clients in the network. The file transfer protocol is SFTP which allows advanced file and directory manipulation features. The actual file transfer stream is protected with SILC and is sent outside SILC network, peer-to-peer.
 
Watching
Clients can add other clients to their watch list. When the watched clients join the network, leave the network, change nickname, change modes, etc, this is notified to the watcher. It is possible to reject someone watching you.
 
Services
Services can be negotiated between clients and servers, and between servers and other servers in the network. Services can augment the protocol by providing new features and functionality to the protocol. Services can require authentication prior using the service to prevent unauthorized use of the service.
 
Detaching
A feature where client is able to quit from the server without quitting from the network. The client remains as valid client in the network. Naturally, messages are not delivered to the client. The client can then later resume back to the network from any server in the network and continue normally. A separate service could provide for example message saving feature for detached clients. Default protocol however does not provide such feature or service.
 
Presence And Information Attributes
Clients can utilize so called online presence and information attributes that can be delivered from one client to another when querying information about that client. The attributes can provide information about the user's presence in the network, online status information, send business card of the user, send pictures, send public keys and certificates, indicate user's geolocation, and other information. The business card uses the VCard standard.
 
Backup Routers
Backup routers are normal SILC servers in the network that can take the responsibilities of the primary router if it becomes unresponsive. This feature prevents netsplits in the network.
 
Message Flags
Message flags can be used to indicate how certain private message or channel message should be interpreted at the recipient end. They can be used to indicate that the message is for example a notice, a request, a reply to previous request, or it can indicate that it's a multimedia message. Message flags can be used to add features to normal messages.
 
 
Multimedia Features
 
MIME Messages
Multimedia features in SILC can be achieved by using Message Flag that indicates the message is a MIME encoded message. Any MIME type can be sent through the SILC allowing the application to perform for example video and audio conferencing. It is possible to send images, music files, video stream and audio stream in SILC. As long as application is able to send and interpret the received MIME type it can process the message correctly. It would also be possible to forward the MIME messages to application that is able to process that MIME type.
 
 
Security Features
 
Secured Transport
The transport where SILC packets and messages travel are secured with secure binary packet protocol. All packets are encrypted and authenticated.
 
Key Exchange And Connection Authentication
SILC Key Exchange (SKE) protocol provides secure key exchange for clients and servers in the network. The SKE is immune to for example man-in-the-middle attacks. Connection Authentication protocol is used to authenticate client to remote server. Authentication can be based on passphrase or public key authentication based on digital signatures.
 
Public Key Cryptography and PKI
SILC protocol supports SILC Public Key, SSH2 Public Key, X.509 certificate, OpenPGP certificate and SPKI certificate.
 
Secured Private Messages
All private message are encrypted and authenticated by default with session keys. It is also possible to perform Key Agreement to negotiate new private message key that is used to protect private messages. It is also possible to protect private messages with any key generated outside SILC system.
 
Secured Channel Messages
All channel messages are encrypted and authenticated with channel keys. It is also possible to use so called channel private keys that are not server generated.
 
Digitally Signed Messages
All messages, private messages and channel messages, can be digitally signed by the sender of the message.
 
Key Agreement
Key Agreement is a feature where two clients in the network agree to generate shared secret key with SILC Key Exchange (SKE) protocol. The resulted shared secret key can be used to protect for example private messages.
 
Secure File Transfer
File transfer protocol is SFTP and the file transfer stream is encrypted and authenticated. The key to protect the file transfer stream is generated by performing Key Agreement between the two users.
 
> Read more about SILC protocol security