CS772/872

Assignment #4

Due Midnight, Thursday Dec 4, 2008

 



Based on the sslServer and sslClient programs, implement a secure Upload/Download services as follows:

sslUpDnServer                          <port#>

sslUpClient         <hostname>  <port#>  <file> 

sslDnClient         <hostname>  <port#>  <file> 

 

The sslUpClient  uploads  <file>  to the  sslUpDnServer  which it turn  downloads it to any sslDnClient. Each side (server or client) makes sure that the certificate presented by the other side has CN = <hostname>, where <hostname> is the name of the machine where the process is running.


For example:

The current (Fall 2008) our fast hosts are: deneb, vega and antares.

deneb    %    sslUpDnServer                10203
vega      %     sslUpClient       deneb    10203   file1   

antares %     sslDnClient       deneb    10203   file2  

 

If  the sslUpDnServer  runs on  deneb,   then  deneb.pem  should have CN=deneb
and the
sslUpClient (sslDnClient) should check that the peer certificate has CN=deneb.

Similiarly, if the sslUpClient (sslDnClient) runs on vega (antares), then vega.pem (antares.pem)

should have CN=vega (antares) and the sslUpDnServer should check that the peer certificate has CN=vega (antares).

 

Ø      Test your programs by generating the certificates for the fast hosts; you can act as your own CA by signing these certificates.

Ø      Submit your programs as well as the generated certificates. Just use the submit utility to submit your files (README, Makefile, src files, certificates) to cs772.