Steve Liu
Columbia University
New York, NY 10027 USA
sl387@columbia.edu
This secure on-line registration system is implemented by integrating Apache httpd server(apache 1.2b10) with Eric Young's SSLeay(a free implementation of Netscape's Secure Socket Layer - the software encryption protocol behind the Netscape Secure Server and the Netscape Navigator Browser. See SSLeay and SSLapps FAQ for details), Netscape Browser and Sybase SQL database, where electronic signatures of instructors, etc. are used to replace the current handwritten approval signatures.
The system based on an Sybase database that checks student authorization for specific courses, tracks the number of credits taken, the number of students enrolled in a course and checks for time conflicts. Instructors will be presented with a list of students that require approval, with the ability to see the courses they have taken so far. The instructor is told by email that students await his/her approval. Instructors should also be able to check enrollment.
The system can be accessed by students and instructors via WWW and used to replace the current registration system. The system have the following functionalities:
For student:
For instructor:
The application specifications are following:
Digital IDs use public key encryption techniques that use two related keys, a public key and a private key.
In public key encryption, the public key is made available to anyone who wants to correspond with the owner of the key pair. The public key can be used to verify a message signed with the private key or encrypt messages that can only be decrypted using the private key. The security of messages encrypted this way relies on the security of the private key, which must be protected against unauthorized use.
In a Digital ID, a key pair is bound to a user's name and other identifying information. When installed in a web browser, a Digital ID functions as electronic credentials that sites can check. This enables Digital IDs to be used in place of password dialogs for information or services that require membership or restrict access to particular users.
See following flow graph:
HTTPS HTTPS DB Client Server Server ------ ------ ------ | | | | | | | | | | | | | | <-CGI-><- Network ->| | <-CGI-> <-Network->| | | | | | | | | | | | | | | | | | | | ------ ------ ------This diagram assumes the HTTPS client and server are on different machines and the user is accessing the database from the client machine. Database querys transport across a network, submit to the database server by calling the Sybase Openclient API, retrieve the results, return the results across the network, and submit the results to CGI for return to the HTTP client. The network in this case are a TCP/IP network between UNIX boxes and an internet connection. The HTTP server must be configured to allow CGI access.
There are four tables in this system. They are following: CREATE TABLE STUDENT (SName VARCHAR(26) NOT NULL, SID CHAR(9) NOT NULL, Passwd VARCHAR(11) NOT NULL, Dept CHAR(2), Email VARCHAR(30), PRIMARY KEY(SID) ) CREATE TABLE PROFESSOR ( PName VARCHAR(26) NOT NULL, PID CHAR(9) NOT NULL, Passwd VARCHAR(11) NOT NULL, Dept CHAR(2), Email VARCHAR(30), PRIMARY KEY(PID) ) CREATE TABLE COURSE ( CName VARCHAR(30) NOT NULL, CNo CHAR(11) NOT NULL, Pre_Req VARCHAR(42), Pts CHAR(3), Time VARCHAR(15), Profs CHAR(9), PRIMARY KEY(CNo), FOREIGN KEY (Profs) REFERENCES PROFESSOR(PID) ) CREATE TABLE SCourse ( SID CHAR(9) NOT NULL, CNo CHAR(11) NOT NULL, CName VARCHAR(30) NOT NULL, Pts CHAR(3), Grade CHAR(2), PRIMARY KEY(SID, CNo), FOREIGN KEY (SID) REFERENCES STUDENT(SID))
WDB: A Web interface to SQL database.
A tutorial of CGI security
CGI Security [NCSA]
CGI Security [Paul Phillips]
Accessing a Database Server via the World Wide Web