250 likes | 388 Views
Secured Chat. T.A: Viktor Kulikov. Eyal Madar Mikael Cohen. Spring 2006. Introduction. What is a chat application?. real-time communication between two or more people based on typed text May have more options, like transfer files, voice, video….
E N D
Secured Chat T.A: Viktor Kulikov Eyal Madar Mikael Cohen Spring 2006
Introduction What is a chat application? • real-time communication between two or more people based on typed text • May have more options, like transfer files, voice, video… Why a chat application ? • boosts communication and allows easy collaboration. • not forced to reply immediately • Less intrusive than communication via phone. • Companies like IBM have their own Chat application witch allows labs working across the world • Encryption is required to secure the business communications
Goals • Building a Chat application in C#, using .Net • Implementing: • Public forum • Private chat • File transfer • Security encryption • Convivial and intuitive GUI
Chat Design • Frame matched with the windows style. • Tabs appear with a pretty gray relief. • Clear and intuitive. • Can easily put it in full screen.
What is Remoting? • Remote executing means running a process in another computer without using any resource or CPU load in the local computer • Using a client/server application
A server, a client and a network Tcp Cb Cb Proxy Ca Server Client • Marshal By Reference Object • Client Ca creates a proxy instance of Cb • Client Ca can uses Cb provided functions via a Tcp channel
Remote Activation Concepts • Marshal By Reference Object • Marshal By Value Object
Types of .NET Remote Objects • Server Activated – Wellknown Singleton • Single Instance of Object Services All Clients • Server Activated – Wellknown Singlecall • New Instance of Object on Every Use
Client/Server Architecture (1) • The solution consists of four projects: • - ServerConsole • - ServerInterface • - ClientApp • - ClientInterface • ServerConsole is a Windows Form. • ServerInterface holds the necessary • interfaces for the ServerConsole • ClientApp is a Windows Form • ClientInterface holds the necessary • interfaces for the ClientApp
Client/Server Architecture (2) Client Machine Server Machine Server Form Client Form Server Remote Client Remote Remoting
Client/Server Architecture (2) Remote Interface Class link
Server Interface (1) Can use from Server: - Logon - Logout - Send Message - Ask for private chat Client Server Interface
Server Interface (2) • Logon: Client log in to the Server • Logoff: Client log out from the Server • SendMsg: Send a message to another user via the Server • GetPortNo: Receive a port number to communicate with the server • AskForPrivate:Ask private chat to another user via the Server
Client Interface (1) Can use from Client: - UpdateClient - LogOffClient - DoYouWantPrivateChat Server Client Interface
Client Interface (2) • UpdateClient: Update Client Form • LogOffClient: Close the Client • DoYouWantPrivateChat: Demand for a private chat
Server uses Client functions Server Client Form Client Function Client Function Client Remote Is Marshall! Client functions are given by IClient Interface
Client uses Server functions Client Server Form Server Function Server Function Server Remote Is Marshall! Server functions are given by IServer Interface
Private Chat Server Private Chat port Client A Client B Do you want a private chat with A? Ask For Private chat
Transfer File • Intuitive • Fast • Secured
Security Did you know that RSA has been invented at a Pessah Seder in 1977 Encryption algorithm used : RSA - Rivest, Shamir (israel) , Adelman • RSA encryption is used in our • Private Chat • File transfer
RSA principle Order encrypted with the public key Public key Even if intercepted, the message can’t be decrypted without private key ! • RSA involves twokeys: • Thepublic keycan be known to everyone and is used toencryptmessages. • These messages can only bedecryptedby use of theprivate key Easily decrypted with the private key !
Server Client A Possibility of a Peer to peer private Chat Secured Public Chat Client B Client C
Conclusion • We have build an intuitive chat, which allows public, private, secured discussions, and secured transfer files • Future works: • - Voice conversation • - Video conference
Thanks… • To Viktor for his time and his patience. • To Swlab Laboratory • To you who have listened our presentation until the end!
Chat Design Please follow us to the lab!