Degree Name

Master of Science (Hons.)


Department of Computer Science


An enhancement to TCP (Transmission Control Protocol) is proposed to give additional security between cooperating client/server programs. Several modes of operation are available including: program controlled mode where new ioctl commands are used to provide explicit control over the actions taken by the kernel in the provision of security services, client or server controlled mode where one of the client/server pair initiates and controls security features without the knowledge or intervention of the other party and finally kernel controlled mode where two kernels will establish and maintain secure communication without intervention of either client or server program. To achieve client or server controlled and kernel controlled operation, three new TCP option fields have been defined to allow the passage of security setup information at session establishment time. The threeway handshake session setup of TCP is used as a vehicle to piggyback information used to establish the type of encryption scheme in use as well as encrypted session keys. Flexibility in the type of encryption schemes used is permitted with open access to the methods of defining new schemes to be used and mapping of these schemes to new scheme numbers within the TCP option fields. Schemes implemented as part of this work include an optimised version of DBS (Data Encryption Standard) in both codebook and feedback mode, Triple DES in both codebook and feedback modes, LOKI is used in codebook mode and a new stream oriented cipher called Sapphire is used to compare purpose built stream ciphers with more traditional block methods. The implementation of the protocol is described as it applies to the Linux operating system kernel structures, program code and the new formats for TCP. Some performance issues are then canvassed as they apply to the various schemes employed. The performance measures apply to client/server programs exchanging data either on a single host or between adjacent hosts on an otherwise unloaded ethernet network. When other than trivial encryption schemes are employed the cost of encryption becomes dominant and network bandwidth restriction are not an issue. The procedures required to add a new encryption scheme using the formats and entry points of a canonical scheme is then described. Using this description it is possible to implement any new scheme that can be expressed in this canonical format. Possible suggestions for enhancements to overcome potential bottlenecks are then discussed and a conclusion is given.