Home Page

The SSL Secured Web Server

Project objective

  • Start with the Web server created in Project 1, which required the following:
    • Implement a TCPServer by building a multi-threaded Web server, so that a browser-client can access an HTML file
    • Serve the browser through a non-standard port; i.e., some port number other than the standard port 80 (assignment specifies port 6789)
    • Implement the Web server using HTTP 1.0
    • Test various program execution times by changing the buffer size (via console input) and calling various HTML file sizes, all through the secured Web server

Process

  • On my local PC, the source code file was compiled via the command javac filename.java
  • Using the run command java filename, the server sent an acknowledgement Server alive on 68.100.196.247, which is the IP address of my local PC
  • When IE was launched, a command line prompt asks the user to enter a buffer size
  • After typing in https://68.100.196.247:6789/filename.html, the server's public key certificate was displayed in the browser window. Since the server certificate was self-signed, the user is asked to either accept or decline the certificate
  • Upon acceptance of the self-signed certificate, the requested page was displayed in the browser; the length of time (in milliseconds) for file transfer was displayed on the server console screen

Results

  • The delay increases significantly in SSL vs. unsecured Web server
  • A graphical representation of the delays is given in the figure below

Graph of File Transfer Rates

Conclusion

  • The SSL handshake in this simple implementation has adversely affected server performance by adding on to the transfer time set by TCP flow-control. Even though the flow-control service in TCP is matching the speed at which the sender is sending to the rate at which the receiving application is reading, the multiple steps in the SSL handshake make delays more than twice as long as with an unsecured server.
  • Caveat: Sending and receiving were executed on a local machine. A networked server running on an institutional LAN would probably show even more dramatic differences in delay at various buffer sizes.