The objective of this project is to illustrate one of the many possible application scenarios of the Secure Socket Layer (SSL) protocol suite, namely its use in the Simple Mail Transfer Protocol (SMTP) application layer protocol in a client/server context.
SMTPS is the "secure" version of SMTP, proposed in the RFC 4207 specification. This extension of the protocol allows for the use of TLS in client-server communication, offering the full range of benefits that this technology provides.
In particular, the extension of SMTP in which the AUTH command is present was considered (see RFC 4954).
Subsequently, an SMTP client and server were implemented in a simulated and controlled environment. The client was implemented in both Python and Java to facilitate a comparative analysis of its performance. The server was implemented using mainly the aiosmtpd library and executed on a Raspberry Pi 3B+. Additionally, dummy certificates were generated to simulate a proper handshake between the client and server, utilizing the cryptography
library. The following scheme was used:
i.tieri