You have chosen to sponsor your bid up to a maximum amount of .
Your task is to implement a workflow of SSL hand-shake operations. This includes, but not limited to:
a. Some user-interface to show how each step works.
b. Certificates, in the form of a text file from Certificate Authority (CA) for various parties involved (You do not need to adhere to the PKI standards; you can decide what information should be included in the certificate).
c. Symmetric encryption, and Hashing function (This can be done using an existing library)
d. Public key encryption: include creation of public/private key pairs.
e. The random number generation functions.
f. Demonstrate man-in-the-middle attack and illustrate how the handshake protocol defeats the attacker’s attempts.
Note the following:
1. The software can be written in any computer language you like e.g. Java, Perl, C++, C, bash shell or even be web based (PHP). You can even write part of the software in one language, and others in another.
2. A debug version provides details of what is happening throughout the entire process.
3. Graphical representation is highly desirable. However, no marks will be deducted if you do not use any GUI for visualization of the system. However, the most visually presentable project will be selected, and to be used as demo software for the next year’s Network Security class, in which the names of the group members will be mentioned in class.
4. Your documentation should include a flow chart showing what operations are performed and in the order they are performed in, code samples for each operation. Screenshots of the input and output should also be included in the documentation.
5. You should avoid using existing libraries as much as you can.
Project description – Implementation of the SSL handshake protocol