Secure Transmission of Instant Messages CS522 Final Project Presented by Akbar Khan Kaushal.S.Chandrashekar
Secure Transmission of Instant Messages An application that enables real time communication on-line Real-time conversations with other logged-on IM users Users see the availability of others Users set their own status. Interface for direct and private conversation.
Secure Transmission of Instant Messages Advantages Less intrusive than a telephone Quicker & more personal than Free Disadvantages Weak security.
Secure Transmission of Instant Messages IM Clients Often use both P2P and Client Server Architecture AOL Instant Messenger (AIM) Mirabilis ICQ Yahoo Instant Messenger Jabber
Secure Transmission of Instant Messages Security Issues Symmetric key Encryption (Fast way) Encryption at one end and Decryption on other end. Need for secure key transport Allow both secure and non-secure communication simultaneously
Secure Transmission of Instant Messages DES (Data Encryption Standard) Actual message Encryption Symmetric key Encryption method Uses 64-bit input block and 56-bit key Output is 64-bit Was the National Bureau of Standards approved Encryption method for non-military use
Secure Transmission of Instant Messages Public key Cryptography Each participant in the transaction gets a pair of keys (Public, Private) The Public key is published and Private key is kept secret Need for sender and receiver to share the secret information is eliminated Data Encrypted using a participants Public key can only be decrypted using the corresponding Private key and vice versa. No private key is ever transmitted or shared
Secure Transmission of Instant Messages RSA (Rivest, Shamir, Adleman) Used for key transport Public key Encryption method we have used 512-bit Public and Private keys
Secure Transmission of Instant Messages Initial Design Client – A PU A, PR A, PU B Client – B PU B, PR B, PU A Key = RandomKey() EKey = E(PU B, Key) Msg = SD(Key, EMsg) Key = D(PR B, EKey) EMsg = SE(Key, Msg)
Initial Design Fault Client – A PU A, PR A, PU B Client – B PU B, PR B, PU A Key = RandomKey() EKey = E(PU B, Key) Msg = SD(Key, EMsg) Key2 = D(PR B, EKey) EMsg = SE(Key2, Msg) Attacker PU X, PR X, PU B Key2 = RandomKey() EKey2 = E(PU B, Key2) Msg = SD(Key2, EMsg) Packet Intercepted
Revised Design Client – A PU A, PR A, PU B Client – B PU B, PR B, PU A Key = RandomKey() EKey = E(PU B, Key) H = hash (EKey) Sig = E(PR A, H) Msg = SD(Key, EMsg) H2 = hash (EKey) H = D (PU A, Sig) IF H2 = H THEN Verfied ELSE Reject Key = D(PR B, EKey) EMsg = SE(Key, Msg) Sig + EKey Provides security and authentication
Secure Transmission of Instant Messages Libraries used Libyahoo2-Opensource yahoo messaging library OpenSSL Crypto Library
Secure Transmission of Instant Messages Future Improvements Use of trusted third party for authenticated distribution of public keys Porting to GUI-based messenger from current command line version
Secure Transmission of Instant Messages References Cryptography and Network Security by William Stallings