next up previous contents
Next: Implementation Up: The ProtoWrap wrapper implementation Previous: Limitations   Contents


Summary

Chapter 3 introduces the implementation and usage of ProtoWrap. The base ProtoWrap class is object-oriented. New wrapper objects are created by specifying the standalone, destType, listenPort, destAddr, destPort, pipeCmd, maxLineLength, logLevel, testLine and testReply attributes -- some of them are required, some are optional, please refer to section 3.3 for more details. Once the object is created, the wrapper can be started by calling the startServer method of the newly created object:

$wrapper->startServer() or warn 'Can\'t start wrapper';

The method stopServer should be used in the same way to stop the server without destroying the object. In case the object needs to be destroyed, assigning any value (being undef the most obvious value, to avoid confusions) to it will stop and destroy it.

For more details on the methods included in the basic ProtoWrap class, see section 3.4.

Two protocol-specific extensions are provided as part of this work, to wrap SMTP (details in section 3.5) and POP3 (details in section 3.6).

Section 3.5 starts bye giving an introduction on the problems SMTP suffers, specifically spam (subsection 3.5.1). In subsections 3.5.2 and 3.6the author analyzes the possible vulnerabilities implicit in a server fully complying to RFCs 821 and 1081, and explains the criteria followed while programming the ProtoWrap extensions.

There are many protocols which are not suitable for this kind of wrapper, and they are analyzed in section 3.7. Most of these protocols are discarded because they are not line-oriented (telnet, SSH), work in such a way this wrapper would work suboptimally with them or would not work at all (HTTP, FTP), or are not transported over TCP (UDP, ICMP). Section 3.8 gives a quick overview of how this wrapper should --and should not-- work together with SSL encryption.

Sections 3.1, 3.2, 3.9 and 3.10 give a formal framework for this work, detailing the approach, process and observations on the results.


next up previous contents
Next: Implementation Up: The ProtoWrap wrapper implementation Previous: Limitations   Contents
Gunnar Wolf
2001-03-12