next up previous contents
Next: Database of study Up: The ProtoWrap wrapper implementation Previous: The ProtoWrap wrapper implementation   Contents


Approach followed for this work

This work evolved from a much simpler concept into what it now is, a very ambitious, multiple-purpose security system. The original goal of this work was to protect mail server from spam and similar forms of abuse. After studying several different solutions available ([4], [5]) and finding them lacking in functions or too difficult for the average user to implement, work started on a SMTP-specific wrapper designed to watch the SMTP commands sent to the server, and to disallow messages matching a certain criteria.

When the author started coding, it became obvious that, working a little bit more, the same work could be used with much broader applications and help in a much larger number of ways. The project broadened its focus, becoming a generic wrapper, able to be extended to protect different wrappers.

After an initial documentation phase, attention was paid to writing the core code, with the minimum possible of functions to be useful by itself, but to be easily expandable. Here, the author must wholeheartedly thank Salvador Ortiz García for his help with the dual I/O problem (discussed in section 4.1).

After having a working core, an exhaustive analysis of the RFCs for several protocols --most importantly, SMTP and POP3, the two protocols this work is based on-- was done, leading to the protocol-specific code.

Finally, having the code ready for use, it was tested on the author's servers, fixing the bugs that appeared at runtime.

Further analysis and revision of the code will always be important. As stated in [1], code must be thoroughly audited by experts to be considered safe. Once again, this work should only be considered a proof of concept, not a finished product. It is not advised to be run as is on a production environment.


next up previous contents
Next: Database of study Up: The ProtoWrap wrapper implementation Previous: The ProtoWrap wrapper implementation   Contents
Gunnar Wolf
2001-03-12