Agenda • Introduction • IRC prelude • What is IRC? • How does IRC work? • Architecture • Client/Server • IRC commands • 3 major types of communication on IRC networks
Agenda (cont…) • Problems with IRC • Scalability • Labels • Channels • Servers • Security • Authentication • Denial of Service Attacks • Questions & Answers
Introduction • IRC prelude • Internet Relay Chat • Originally written by Jarkko Oikarinen in 1988 • In use by over 60 countries around the world • RFC 1459
Introduction (cont…) • What is IRC? • Communication in real time • Multi-user and multi-channel chatting system • FTP • Communication is established over "channels“ • No restriction on the number of people in a given channel or the number of channels that can be formed on IRC.
Introduction (cont…) • How does IRC work? • Install an IRC client application (ircII, mIRC) • Establish connection to one of many IRC server on the IRC networks. • The user chooses a nickname and joins the channel (rooms) according to locations, philosophies or interests. • There are thousands of networks where people may meet, participate in group discussion or opt to chat privately • The client can issue commands (/help, /whois, list) to get help or query the IRC networks. • Servers are interconnected • Messages are passed from server to server over the IRC networks Note: IRC does not allow any two clients to communicate directly and all the communication is relayed through the servers only.
Architecture • Servers • Network of servers which form a spanning tree among themselves. • These servers provide a point to which clients and other server may connect to each other. • Each server acts as a central node among other servers. • Clients • A client is basically a node that is connecting to a server that is not another server. • Each client is distinguished by a unique nickname. • When a client connects to one of those servers and sends a message, it will travel along the backbone of each connected servers.
Architecture (cont…) IRC networks Reference: Image:Ircnetz-Schema.svg
Architecture (cont…) • IRC commands • Client commands • /NICK – change nickname • /HELP – print help screen • /LIST – list IRC channels, # users, topics • Server commands • KICK – eject a client from channel • INVITE – invite a client to an invite-only channel • MODE – change the channel’s mode
Architecture • 3 Major types of communication • Client to Server • Occurs when there is a change in the state information such as channel membership, channel mode, client message transport…etc • Server to Server • Broadcast message and are mostly required when it is affecting any channel or user. • Termination • Client-Server connection termination (normal) is done through a “\Quit” command sent by the client. • Server-Server connection termination (abnormal) is either done by some natural causes or through “SQuit” command. The server that detected the connection termination must update IRC networks.
Problems with IRC • Scalability • Because each server must know about every other server and client connect to the IRC network, updating these information as soon as they occur is expensive as the IRC network expands. • Labels • Because users can pick up any labels for nicknames, server name and channel name which may result in collisions. Need to establish unique labels for all objects within the IRC networks. • Channels • As the number of channels grows, privacy becomes harder to maintain. • Servers • Data consistency checks with the database are to far and between with the current servers, instead it relies heavily on neighbouring servers data(which are assumed to be flawless). • Race conditions can occcur without unique labels being implemented in IRC.
Security • Authentication • Weak authentication mechanism with the passwords being communicate in clear text amongst the servers. • No real effort is made to encrypt. • Solution: encrypt the password. • Denial of Service Attacks (DoS) • Its almost impossible to ensure that every server is properly secure as almost anyone can sign up to host a server. • The attacker can flood the server with garbage data and keep it busy while making it unavailable to another user. • Solution: Operators can find these offenders and punish them; • Solution: Client enforce protection through firewalls and anti-viruses themselves
Probable Solutions • Timestamping • Nick/Channel Delay
Conclusion • Excellent Multi-user service • Attacked by the users who use it most • Undergone revisions continuously (4) • Major Applications • DCC ( Secure Chat Protocol) • Iphone (internet Telephone)