CP 372 Winter 2009
Assignment 4 - SSL Programming (15%)
Available: Friday, March 20, 2009
Due Date:
4pm, Friday April 3, 2009
Overview
In this assignment, you are asked to design a SSL application using SSL protocol. You will be provided with necessary java files to help set up the framework. Any programming language and SSL APIs may be used. You may work individually or in pairs.
Basic Requirement
You may want to start with this tutorial. Here is another good reference to help you with the server program and the client program.
You should be able to follow the steps and set up the model. Note that the sample tutorial assumes sharing of a certificate on the same machine. If you are designing applications running on different machines, you may want to use -export and -import options of the keytool program. A list of possible commands using keytool can be found here.
The client part of the application should allow a client to connect to
the server, send messages to the server. The server part of the application should display the messages on the screen.
Comparing to the client-server programs we designed in Assignment 1, your application should establish a secure connection between the two parties.
How to test
You may use any packet analyzer to intercept and display packets being transmitted between the client and the server. Sample packet analyzers are, wireshark and tcpdump(usage: sudo tcpdump -A -i lo0 -vvv -n -s 0; or sudo tcpdump -XX -i lo0 -vvv -n -s 0.)
Here are the sample client.java and server.java files that are coded in assignment 1. Using a packet analyzer, you should be able to see clear text being transmitted from client to server.
In comparison, messages sent through your application should not be clear text.
What to submit
Please submit the following through WebCT.
- server code
- client code
- output (txt file or screenshot) from a packet analyzer showing messages being transmitted for both the secured applications and non-secured applications.
- Readme file, describing how to compile your code, the commands used to invoke your application, what is the packet analyzer used, and so on.
- Brief document describing the purpose of your SSL application, any particular protocols used, what are the benefits of using this application and so on.
Evaluation:
For this assignment, you are permitted to work individually or in pairs.
If you choose to work as a pair, your work should be submitted only once, by one member of your team. The names and student IDs of both team members should appear in all of your source code and documentation files. Both members of a team will receive the same mark.
Marking Scheme
- Provide an application matching the basic requirements (for message sending purpose only): 40%. Note that the client and the server must run on two different hosts.
- Certificate and key generations for both the server and the client: 20%
- Verification by any packet analyzer: 20%
- Code comments and Documentation: 20%
- Bonus. You may provide extra applications based on the minimum requirement. If you have provided bonus work for assignment 1, you may provide extra work built on top of the bonus component for this assignment. For applications implemented on single host, you may obtain up to 15% bonus marks; for implementations on two different hosts, you may obtain up to 20% as bonus marks.
Submission deadline: 4pm, Friday April 3, 2009
Late submissions will be accepted without penalty until 4pm, Sunday April 5, 2009.
Back to main course page.
Last Modified: March 27, 2009