badnack / secure-chat

A simple secure chat written in c++

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Secure Chat (P2P)
===================================

Programming language: Java
Author(s): Nilo Redini, Davide Pellegrino
Site(s):
        * http://www.badnack.it (Nilo Redini)
Class: Computer engeneering from University of Pisa - Accademic year 2011-2012




What this software do ?
===================================
This program allows to you to comunicate in a secure way with other users. 
In order to use this software is necessary retrieve the public key of the 
user with which you want to talk, and put this in the correct folder (see below for details).
You can register to the service and login whenever you want, the passwords are stored locally 
and protected by SHA1 using SALT bytes.
The session key (used to comunicate among users) is created using Diffie-Hellman algorithm 
and,in order to avoid man in the middle attack, every phase of the algorithm is signed by 
private key(provided by user or created in registration phase).
In the end the entire communication is encrypted with DES algorithm.
Whether the RSA keys are not present when a new user is registering, these are created and stored
in the test/KeyFiles folder (see below).
Otherwise you can use your pair keys simply putting these in the directory above, renaming these
like this:
* Private key: UserName_private.key
* Public key: UserName_public.key


For more details pleas read the documentation and the files of the specifications in
the doc/.



Compile the entire project
===================================
To compile the entire project and the library just type:
$make
  
If all went well you should see three new classes in bin directory:
Client.class , ClientThread.class and Receive.class



Chat part
===================================
To start chatting, after taking the user's public key with which you want to talk, just make :
$ java Client [PORT: used to receive connections]

By default port value is 1234.

You can also use defalut configuration typing:
$ make test1  (To use port 1234)
$ make test2 (To use port 1345)



Test part
===================================
To test the software please use these two user's credentials:

* User: asd
  Password: lol

* User: lol
  Password: asd



Clean all
===================================
To clean all using the makefile:
$make cleanall



Documentation
===================================
To compile the documentation just type:
$ make documentation

Doxygen is required.
http://www.stack.nl/~dimitri/doxygen/



Folders contents
===================================

bin/  contains the binary files 
doc/  contains the documentation files
src/  contains all sources classes
test/ contains the files were used for testing operations
    /Credentials/ contains the password file
    /KeyFiles/ contains all keys stored locally (for each user is stored his private key and
                 the public keys which he has retrieved)







Tested on Ubuntu 10.04 with kernel 2.6.32-34 and on Ubuntu 11.04 with kerne 1.6.38-11

License
===================================
Released under GNU GPLv3 license (http://www.gnu.org/licenses/gpl-3.0.txt)


About

A simple secure chat written in c++


Languages

Language:Java 97.7%Language:CSS 2.3%