Computer Security Bonus
Project (optional)
Note:
Completing these projects is
optional. A successfully completed project will earn you bonus points, which
will be added to your overall earned score at the end of the semester.
Submission instructions:
Project 1: A protocol for secure data
communication in a network
Bonus points: up to 3%
Suppose you work as a network engineer for a small business company, which possesses a local area network of 100 computers. Your boss, the IT department director, asked you to design a communication protocol for the computers in that network. The protocol should provide the following security services:
a. For each communication session, the computers should authenticate each other to establish a secure session before data communications are conducted between them. Note: Use digital certificates for mutual authentication.
b. The data communication should be confidential, and provide data integrity and origin integrity, based on a session key. Note: To support strong security, a session key should be used for one session only and never be reused.
To submit:
a) The protocol: Design and write down your protocol by clearly indicating the entities (say, computer-A, computer-B), their respective actions (say, create a message, send its certificate to computer-B), the employed cryptographical methods (if any), and any necessary assumptions.
b) Overall integration: In addition to the protocol itself, explain how the protocol would be incorporated into the network.
c) Justification: Justify your solution by explaining why you believe your protocol will satisfy the constraints stated above.
Project 2: Creating certificates
programmatically and saving them into a keystore
Bonus points: up to 3%
Refer to the following sample programs, all of which deal with keystore and/or certificates.
¡¤ KeyStoreExample.java (also check out information at http://sce.uhcl.edu/yang/teaching/csci4233spring2011/KeyStoreExample.htm)
Develop a Java application that programmatically creates the following certificate chains and saves the created certificate chains to a keystore file.
A<<A> (A is a self-signed root CA.)
A<<B>>A<<A>> (B is certified by A; that is, A is B¡¯s CA.)
B<<C>>A<<B>>A<<A>> (C is certified by B.)
Note: Do not use keytool to create those certificate chains (as is done in your project 3). Be sure the issuer/subject relationships are set up right (as stated above).
To
submit:
a) The Java program(s).
b) Screen snapshots of running the Java application.
c) The created keystore file.
d) Screen shots of the displayed certificate chains (using keytool ¨Clist ¨Cv).