CmpE 476 Parallel and Distributed Systems,
Spring 2000, Dr. Çağlayan, April 5, 2000
Term Project, Due May 17, 2000, 17:30
The purpose of this project is to design the Simple Secure Transport
Protocol (SSTP), which is a primitive version of SSL and implement it by
Berkeley sockets programming. SSTP should be operational on TCP transport
layer. Properties of SSTP that you will design are as follows.
-
SSTP is a client-server protocol like SSL. There are multiple clients and
but a single server.
-
SSTP should have connect, data exchange and disconnect phases, as in SSL
An additional connectionless service similar to secure UDP can also be
included, but this is optional.
-
It is sufficient that client and server should use RSA encryption/decryption
and signatures, but any extensions to this idea are wellcome. You should
think about the problems of replay, locating the public keys, size of digest
to be signed, etc. Design the API (Application Programming Interface) that
supports RSA encryption/decryption and signature functions plus all other
functions that you will need, but you do not need to design/implement the
internals of functions in the API. You may use simple, dumy API functions
that carry out some kind of transformation on your input data. But, you
must design the API.
-
(Options for extra grade) Locating a real life API that is distributed
in Internet and using it in your protocol implementation and measuring
the performance of your implementation.
Example client server applications that are demonstrating the use
of Berkeley sockets are previousy distributed.
Note that there are many open points in the project and you must make
your own assumptions and work alone to finish the project. Team work is
not allowed in this project.
You must turn in the following.
-
A report of reasonable length, first specifying the problem as you understand
it and your further assumptions, then describing the SSTP that you will
design for the client and server to communicate with each other and a discussion
of advantages and shortcomings of your design and then your overall discussion
(readable & hand written OK). A discussion on the performance of your
implementation is required.
-
Commented source listing detailing your Berkeley sockets implementation
with a commentary of what is working and what is not!
-
A diskette containing source and binary programs and clear instructions
to set up and test your development.
-
If everything is OK, Metin İnanç expects a demo of your implementation.