arXiv:1309.5568v2 [cs.NI] 25 Feb 2018 ne Terms Index rniin jabber. transition, rnfre n/rr-itiue,i ato nwoe for whole, in or part in re-distributed, and/or transferred Copyright nertn omnctosadMrigMsaigvathe via Messaging Merging and Communications Integrating odmntaeXP sarlal n atrpaeetfrem for replacement hassle fast of and minimum reliable a a clien as with user’s deployed XMPP XMPP demonstrate then the to and it implemented deliver m be then se program can and be a can message how minim that the messages with at extract for XMPP look scan of We account, POP3/IMAP benefits existing infrastructure. inherent initiatin email the for and upon networks rely methods a to several known email present for also We protocol facilities. presence Thi email and integrity. messaging message extensible of lack the and security built-in of lack omnpolm ffcigmdr mi sg nld pm l spam, include usage email modern affecting problems Common emnn Do hsdcmn:e90211c086cd29f8f06cf98b0 document: this of ID Permanent

MP mi,isatmsaig nerto,ntok,s networks, integration, messaging, instant email, XMPP, : c XesbeMsaigadPeec Protocol Presence and Messaging eXtensible 03Mri .CLMN hsdcmn a efel hrd c shared, freely be may document This COLEMAN. A. Martin 2013 mi:[email protected] Email: rvddta rdti given. is credit that provided atnA COLEMAN A. Martin yny Australia Sydney, ae 2018.02.25 Date: Abstract ae ok thww a utilise can we how at looks paper s rniinaa rmSMTP from away transition a g n ups n yaymeans, any by and purpose any MPt,i ie replace time, in to, XMPP s .W hwta h system the that show We t. tt MPntokuser, network XMPP a to nt i sw nwi today. it know we as ail c fsne verification, sender of ack gtb sdt pnan open to used be ight ldsuto oexisting to disruption al n ewr disruption network and cr communications, ecure b48d942. opied, 1 Introduction and bring many other great benefits with it as well that are advantageous to communica- tions. As everyday communications becomes more and more critical, people are relying on their In this paper, we explore just what XMPP idea and their words is expressed clearly, quickly can do for us in regards to reliable and se- and with integrity. But the introduction of cure communications, how to introduce it in any noise may threaten the integrity of the a friendly way to users and existing network message, in fact it may even destroy the mes- infrastructure, deploy it smoothly and then sage altogether. So certain safe guards for the look at potential and viable paths aiming to a message should be introduced. full transition from the legacy email systems we use today to a fully XMPP-powered com- Email is the world’s most popular way to munications backbone for tomorrow. communicate, be in personal messages or busi- ness correspondence. However, it is prone to spam, there is no sender verification, there is no receiver verification and you have to set 2 Evaluation up systems in order to receive them, not to mention they can be delayed by network prob- 2.1 What Is XMPP? lems.

Pretty Good Privacy (P.G.P.) was an at- The eXtensible Messaging and Presence Pro- tempt to introduce sender and receiver ver- tocol (XMPP) is a communications protocol ification and authentication, but required a for message-oriented systems and is based on bit of technical knowledge that was out of eXtensible Markup Language (XML) [1]. Orig- the reach of the average user and it needed inally known as Jabber it is developed by an to be configured on both sides in order for open source community to provide a platform it to work. Domain Name Service (D.N.S.) for near real-time, (IM), backups and secondary mail servers and mail contact list maintenance and presence infor- queues were set up to compensate for network mation. With flexibility and extensibility in outages and distribution problems. Internet mind, it has been able to provide a message Message Access Protocol (I.M.A.P.) was in- and notification platform for social network- troduced to complement the backup mail sys- ing services, smart grid devices, gaming, file tems so that a message could be reached any- transfer, signalling VoIP as well as many other where and amongst different clients. This was important and everyday common and practi- more effective than the other popular system cal applications. called Post Office Protocol 3 (P.O.P. 3 or POP3). Intentional strengths of the system include, Unfortunately, even under great operating but are not limited to: conditions, the above set up still had flaws and • Decentralisation - Anyone can run their was still prone to spam. Smart software with own . You can even inter-connect auto adjusting mail filters were implemented, with servers run by other people to cre- but message access was still a problem, and ate a huge network of collaborative XMPP prone to excess data usage using clients that servers. fetched or "pulled" a message, rather than hav- • Open Standards - Anyone can create a ing it pushed to them, like an SMS (Short client or server software suite to use it. Message Service). No lock-in to what any particular per- The eXtensible Message and Prescence Pro- son or company wants you to do. By tocol (X.M.P.P.) introduces a new messaging following the published standard(s) [2] foundation that solves all the above problems anyone can create any type of XMPP

2 integration they like, royalty free. than that actually, it is not even sent to begin • History - XMPP has been around since with. 1999 [3]. Multiple implementations of clients, servers, add-ons, etc exist and Built-in address book. Every person you have existed since it started. have previously agreed to receive messages from • Security - Servers can be made public is already in your address book, so you can tell if you want to run an open network for at a glance who has your details and is capable people to join. You can also run private of sending you a message. Someone can send ones for inside companies for quick, ef- through an authorisation request to be added fective and secure networks. You can to your address book (or "Roster" as XMPP also run a hybrid of both open and pub- calls it [4] ), but you can ignore it if you like, lic and private and closed within the or see who sent it and dismiss it, completely same configuration. Strong, secure au- without that persons knowledge. thentication and message encryption are Push email. People loved the Blackberry one of the core set of features, so you because of this, and XMPP has it built-in. can feel good that noone is listening in You do not request messages, they are already on your conversation. there. With current email systems such as • Flexible - Group chat, network manage- the Post Office Protocol (POP3), you need ment, file sharing, gaming, remote sys- to specify the period of time after which the tem monitoring and control, cloud com- client will re-check to see if there are any new puting, signalling VoIP, identity services, messages. IMAP gets you one step closer to content syndication, the list goes on as this by sustaining an open connection with the to what is possible with XMPP. server but it can use up data where data can It’s weaknesses are so few and restricted be scarce, such as on 3G and GSM mobile that it takes one line to describe them: data data systems. XMPP will get that message sharing. It is currently inefficient to send large to your client and/or device without you hav- data transfers through due to needing both ing to do anything at all as feature for con- parties agreeing to the transaction at the same venience. The sender presses send and you time and no offline saving of data attachments. have it in your inbox and/or client near in- However, the majority of people would still stantly. use email to send attachments, web-based file Built-in security[5]. SMTP is an unau- sharing facilities such as Dropbox, ownCloud, thenticated protocol: with the base protocol netMist, etc or even plain FTP for bigger files you cannot guarantee the identity of who sent to send when you are not sure if the other a message, nor who the receiver is or will be. person is online or not. Any email can pretend and/or give the im- Beyond the above, it also provides other pression that it was sent by anyone at all, with great and practical benefits. If XMPP were no verification. Pretty Good Privacy (PGP) is to replace email, as this paper proposes, what a great step to offering user and receiver verifi- does it offer that area beyond any obvious cation, but the protocol was not designed with details described above? Exactly how can it it in mind, therefore it is not an included fea- match and then extend upon today’s common ture by default in any client or system. email standard? A POP3/IMAP to XMPP translator/con- Anti-Spam. XMPP will help fight against verter makes transitioning to a XMPP-based spam aka unsolicited commercial email. Noone network very easy and effective. Using cur- can send you a message without your per- rent common place protocols that everyone mission and previous agreement to send/re- can gain access to and having it automatically ceive messages. It just goes nowhere. Better be copied onto the newer, faster and more se-

3 cure network is not only extremely effective, one in which this paper amongst a few oth- practical and very useful, it is what we delve ers, hopes to inspire network administrators into with this paper. to aim for, but for now, integrating current tools into or alongside the new proposed sys- Offline messages[6]. This is the feature tem will hopefully maximise the chances of parity that really helps sell the benefits of user acceptance. XMPP. The above benefits all emphasise what can be done with "always connected" clients. Various ways that this can be accomplished But if you suddenly lose the connection to are: the XMPP server and someone sends you a message, the server holds on to it for you un- • An POP3/IMAP to XMPP account checker. til it sees you re-connect and come back on- • POP3/IMAP to XMPP processor line. • SMTP to XMPP integrated server • Plus a few others which derive from the Various clients. Just like email, whether above 3 solutions. you want to run a desktop client or access one through your web browser like webmail Let us examine the above 3 options in more services offer, XMPP gives you that ability. detail. From desktop, to web, to tablets, to smart phones, to your refrigerator and your toaster, XMPP is accessible from them all. 3.1 POP3/IMAP to XMPP Account Checker Now that we know what XMPP is and why it is so important to this paper and integrat- A POP3/IMAP to XMPP account checker would ing communications in general, we will look at run as a program linked with an IMAP library some of the options available for protocol in- such as libetpan and an XMPP library such tegration into existing and new networks and as libstrophe. Run by itself or as a cron job, we can get to wide deployment of XMPP im- it would either: Type 1: Connect to a dedi- mediately. cated POP3 or IMAP account, check for mes- sages that are new, parse the headers, retrieve the intended XMPP recipient from a specially 3 Investigating Some Options formatted subject line, connect via a special XMPP account on a Shared Roster and send the contents of that message through, then To merge communications to a XMPP-based continue on through the mail folder, repeat- foundation, the protocol and associated sys- ing those steps as necessary. Type 2: Con- tems must first gain acceptance, thereby lead- nect to a specified POP3 account that be- ing to common usage. This might be done longs to the XMPP user, check for new mes- by setting up network applications such as in- sages, parse the headers, retrieve the mes- stant messengers and demonstrate the bene- sage subject and content, connect via a special fits of the protocol then build upon that. That alerts and messages XMPP account either on way they can see it working and become com- a Shared Roster or another specially created fortable with it. one just for this purpose and then send that This would inevitably lead to the question message through, repeating the previous steps of email and using XMPP alongside email, as necessary. The above two operations could or getting email messages via XMPP until even be eventually implemented onto the one all common correspondents are also on the program and have it use the necessary method XMPP network. Having everyone using XMPP when needed, either as a compile-time switch would be an admirable goal, indeed it is the or as part of a configuration file.

4 The Advantages of the above solution are: 3.3 XMPP Server with Integrated SMTP Server • Very easy and quick to set up. • Easy to integrate. XMPP server with integrated SMTP server. • No-one has to even know it is running This is the Holy Grail of XMPP and SMTP unless they are on the XMPP network. integration. It is the one which will also take • Requires no changes to be made to any the most amount of work to get functional. It core or central infrastructure. is a complete SMTP server and XMPP server • Works perfectly alongside the existing and can send, receive, exchange, etc messages email infrastructure. between the two protocols under the basic • Takes advantage of offline messages. guide of "message passing". The Disadvantages of it are: The advantages of this would be: • Type 2: Prone to spam. • Easy to set up. • Type 1: Practically impossible to spam. • Easy to integrate. • Only benefits those who are on the XMPP • Complete, coherent and combined mes- network. saging facility. • No easy way to respond directly to mes- • Fast. sage sender. • Switch between the two protocols effort- • Still requires a POP3/IMAP account to lessly. work. • Supports direct responding to message • Does not support attachments. senders. • Roster becomes the Address Book, which 3.2 SMTP to XMPP Processor becomes the Whitelist. • Supports attachments.

The SMTP to XMPP processor would be a The disadvantages of it would be: program that knows how to parse email data and is linked to an XMPP library. It would • Wouldn’t encourage users to move away run on demand in a similar way that proc- completely from unauthenticated and in- mail is run by postfix as part of the mailbox_- secure SMTP as they would see good command setting. It would take information legacy integration. given to it, then send the information to the • May be overwhelming to manage Ros- intended XMPP recipient. ter or "Address Book" requests without being able to avoid spam attempts. The advantages of this solution are:

• Easy to set up. 3.4 Investigation Complete • No POP3/IMAP account needed. • It is handled instantly. So while many individuals and organisations • Takes advantage of offline messages. are still quite understandably attached to SMTP The disadvantages of this method are: and email at the moment, XMPP is a brilliant protocol to introduce into any sized network • Prone to spam. and there are ways around having both work • Does not easily support attachments. so that users may benefit from the legacy sup- port of SMTP while taking advantage of the benefits that XMPP brings to modern mes- saging.

5 We are still aiming to produce a system core changes to a network, easy and quick to that is secure, offers message encryption na- set up/deploy and great to test with. tively, uses push methods for message receiv- ing, is really, really fast and allows offline mes- First of all, a software library needed to sages to be saved. XMPP with the various be found that supported POP3 and/or IMAP add-on protocols can definitely get there. parsing and access. On top of that, it also needed to have a license that permitted open At this point in time, though the XMPP- use in any environment so as to gain the widest SMTP integrated server is a good goal to aim acceptance. The libetpan library was chosen for, the simplest, quickest and easiest way to as it was available under a BSD 3-clause (no introduce XMPP to a network while still util- endorsement) license which is friendly towards ising SMTP would be to create the POP3/IMAP commercial and non-commercial use. to XMPP account checker. Nothing gets in the way to implement it (you just set up a Second, a library was needed that could server and tell the interested parties to con- talk to the XMPP server, was actively kept nect to it), can be easily demonstrated with- up to date with the latest open standards de- out affecting any other part of the network (no velopments happening in the XMPP field and need to disrupt anyone anywhere) and would again, was friendly towards linking with an- be suitable for any number of users (limited other program that could be used in closed, as only by the bandwidth available, which with well as open, computing environments. The gigabit networking and compression enabled, libstrophe library was chosen as it was dual is a substantial amount). licensed under the GPL version 3 (a little re- strictive for establishing open standards and This would run when called (either manu- reference implementations) and the MIT (very ally or via a cron job on /*BSD) check friendly to all environments with practically an email account, process the list of messages no restrictions on use). for subjects that it recognises and passes the messages on via a XMPP account that is on Third, we need the service itself that will a Shared Roster and will be received via any provide and manage the XMPP protocol. In XMPP client that the user is currently logged this demonstration ejabberd was chosen as it in to. is a readily available, free, open source and scaleable XMPP server which can run on a va- The next section will detail how I went riety of platforms. As ejab- about making this program and explain its berd is also a very scaleable server, you will operations. always be able to expand operations to other servers collaboratively once the demonstration proves itself to the network users.

4 Implementation Seeing as I wanted to release my program under the BSD 2-clause license, I needed li- Of the possible solutions explored in the pre- braries which were going to be friendly to- vious chapter, a software program that con- wards close integration and linking to be used nects to a POP3 or IMAP account, checks the in any computing environment; commercial, subject lines for a certain string of text, re- educational or personal. They also should trieves the entire message content of any that not be requiring the source code of deriva- matches the criteria, connects to an XMPP tive works to be made available. Any source server and sends the specified email content to code changes, fixes, improvements, new fea- the XMPP user, referred to as the POP3/IMAP tures are always greatly appreciated of course, to XMPP Account Checker was deemed to be but they are not required if it borders upon a practical compromise between making no becoming a hassle to do.

6 Now, onto implementing the POP3/IMAP be: to XMPP Account Checker solution. void send_message(xmpp_conn_t ∗ const conn, char ∗ message , char ∗ to_jid , void ∗ const 4.1 libstrophe userdata) { libstrophe is a lightweight XMPP client li- xmpp_stanza_t ∗ reply , ∗body , brary [7] which has minimal dependencies and ∗ text ; is configurable for various types of environ- xmpp_ctx_t ∗ ctx = ( ments. It can be built and used on Unix, xmpp_ctx_t ∗)userdata; Linux and Windows platforms. reply = xmpp_stanza_new(ctx) libstrophe comes in two forms; first is a li- ; brary for C for using in circumstances such as xmpp_stanza_set_name(reply , standalone software, such as I was, and sec- "message") ; ondly as a Javascript library. The Javascript xmpp_stanza_set_type(reply , version needs a local data and URL fetcher for "normal") ; http_bind, so it needed extra effort to make xmpp_stanza_set_attribute ( work and may be a useful foundation for a reply , "to", to_jid); web-based client, but we are looking at native xmpp_stanza_set_attribute ( clients here, so the C version is more than ad- reply , "xmlns", "jabber: equate. client"); From the basics, the library is initialised using xmpp_initialize(), a connection context body = xmpp_stanza_new(ctx) ; created using xmpp_ctx_new(), the connec- xmpp_stanza_set_name(body, " tion is prepared using xmpp_conn_new(), the body") ; connection username is set with xmpp_conn_- set_jid(), likewise the password with xmpp_- text = xmpp_stanza_new( conn_set_pass(), the client creates the TCP ctx); connection itself via xmpp_connect_client(), xmpp_stanza_set_text(text , is sustained and monitored via xmpp_run(), message) ; then when triggered it is freed up with xmpp_- xmpp_stanza_add_child(body , conn_release(), the connection is dropped with text); xmpp_ctx_free() and then we say goodbye to xmpp_stanza_add_child(reply , libstrophe with xmpp_shutdown(). Those are body) ; all the essential steps to creating, making and then closing a connection. But we want to xmpp_send(conn , reply); send some data now. xmpp_stanza_release(reply) ;

A connection handler is set up with xmpp_- return ; connect_client which handles software signals } such as XMPP_CONN_CONNECT, XMPP_- CONN_DISCONNECT and XMPP_CONN_- this routine is the key function in sending those FAIL. This is where we will connect to the messages to our users. to_jid is the Jab- email server, browse the inbox looking for spe- ber/XMPP user ID (XMPP usernames take cial subject lines and send the contents of those the same form as email addresses eg: user@server), messages. message is the content of the email itself. This can be any length, but realistically we are A simple message sending routine might limited by the amount of memory allowed to

7 it by the operating system, which is usually nect using mailfolder_connect(), this is typi- enough to send an entire text-based encyclo- cally the account’s INBOX folder. After that, pedia through many times over at once. we want to process the INBOX folder and gather information aboutt the messages con- We allow some basic error checking but tained there, especially looking out for a par- also take advantage of the fact that we are ticularly formatted Subject line, so we can using TCP/IP which is a connection oriented determine if it is a normal email message or protocol, so making and sustaining a connec- whether it is intended for out XMPP user. tion is it’s job. Next we get a list of messages available via The rest is then handled by the POP3/IMAP mailsession_get_messages_list(). This gives library. us an overview of the INBOX folder and can get us started on scanning the subject lines. One impression that one might gain from mailsession_get_envelopes_list() gets us the using the libstrophe library is that it is very content of the various fields contained within signal and messaging (no pun intended) ori- the emails themselves. ented. Just like Win32 programming deals with signals such as WM_RESIZE and WM_- We then scan the subject lines for the string PAINT which you write code to deal with, "USER:" which would be followed by the XMPP libstrophe uses signals and signal handlers to username or "Jabber ID", grab the content of deal with messages and messaging. C code that message and send it along to the XMPP using libstrophe can be every bit procedural user. until you start handling the basics of XMPP operations. This makes sense though consid- After all that is done, we clean up after ering the basic options are like threading; one ourselves with mailmessage_list_free(), mail- thread of a program might be a simple Graph- folder_free() and mailstorage_free() as we want ical User Interface (GUI) component, while in to release that memory and the associated re- the background it is keeping time for alerts or sources for next time. even acting on network commands. We then go back to the main XMPP con- So once you set up handlers for the sig- nection thread which will proceed to discon- nals you might get, getting code working that nect us and stop program execution. deals with what is going on is relatively sim- ple. 4.3 ejabberd

4.2 libetpan ejabberd is a popular XMPP application server which is written mostly in the Erlang pro- libetpan is a library containing a set of li- gramming language [9]. Licensed under the braries which provide (e)mail manipulation ser- GNU General Public License, it is available vices contained within a portable and efficient under numerous operating platforms such as framework [8]. It supports IMAP, POP3, SMTP Linux, FreeBSD, NetBSD, OpenBSD, Mac OS and NNTP. X, OpenSolaris and even . ejabberd, which stands for Erlang Jabber Dae- It natively supports a featured API for the mon (Jabber is what XMPP was called be- C language and provides numerous examples fore being renamed due to Jabber being trade- for interacting with an IMAP/POP3 server. marked) is a highly scaleable server which sup- ports clustering and is one of the most popular From the start, a connection is made via open source programs written in Erlang. init_storage(), to prepare the place to which message data will be gathered. Then we con-

8 Using the Linux distribution as an This may be assisted by the development example, the ejabberd configuration file can of a complete web-based account portal fea- be found at /etc/ejabberd/ejabberd.cfg. We turing an optimised XMPP feature, or a web- will modify this file for the very last step. Un- based service equivalent to webmail but using der "modules", we enable the shared roster the XMPP protocol instead, complete with feature by uncommenting the mod_shared_- messaging, calendar and address book (ros- roster line. Once that is done, we restart ter). ejabberd via /etc/init.d/ejabberd restart ei- ther via sudo or as the root user, then create an account that will provide the alerts ser- 5 Conclusion vice with "ejabberdctl register alerts [domain] [password]". Communication is an ever changing, ever up- Then we log in the ejabberd web interface dating and ever evolving means of getting an at http://[host]:5280/admin (an admin user idea or expression from one place to another presumably is already configured), log in as an in the easiest, quickest and most efficient way admin user, create a shared roster containing possible. the new alerts@[domain] user and the process is complete. With every new transition of technology, every new phase of thought with mankind, we have always found ways to use it to communi- 4.4 Implementation Complete cate better. First it was words, so human lan- guage facilitated this. Second, people made Now that we understand how the Account marks wherever they could be made perma- Checker program is put together, and how we nent, so drawings came about [10]. Third can enable an alerts service or user on the came the written word, so more detail could XMPP network, we place those XMPP login be included without losing accuracy of the de- details and the IMAP user credentials into the tail and the signal had little noise, beyond source code of the server, compile it and de- simple time wearing out the writing medium cide how to run it. such as sheepskin [11] and/or papyrus.

This provides the foundation for an SMTP More effective writing means came about (Email) to XMPP (messaging) transition with- so letters increased and scribes became like out any more infrastructure changes than sim- human photocopiers. Then the printing press ply running a program and creating a new [12] meant that more communication could be user on a hopefully already existing or freshly produced than ever before, and not just facts, created XMPP network service. figures and important notices, but fiction, sto- ries and drawings could be duplicated faster The remaining obstacles beyond network and more effective than ever before. integration, user and widespread usage and acceptance may be specially formatted mes- We were still limited by distance, so we sages, i.e.: RTF and HTML messages, and depended on horse and carriage, boats and email attachments. trains to get our messages across long distance and over the seas. The telegraph, whether it Email attachments may be solved via Uni- was flashing light, cable or radio, meant that form Resource Indicator (URI) linking scheme, even the most trivia of messages could now be where HTML messages can be turned into a (mostly) painlessly sent to practically every compromise between in-browser rendering of corner of the globe. the HTML or enabling a HTML renderer in- side a new messaging/email client. There was little to no abuse of these re-

9 sources, nothing foolish or time wasting be- 1999 to address these problems on a whole cause there was an inherent cost incurred by new level. It is sender verified, built-in mes- the sender. You had to pay to send off a let- sage encryption for secure communications, ter, you were charged by the telegraph office decentralised and flexible. to send a telegram. It took money, time and manpower to send a message. However, while XMPP is an ideal proto- col for sending messages, it does not work like Then the internet came along which brought SMTP does for email. So in order to get peo- with it easy, fast and extremely efficient com- ple using XMPP like they would POP3 and munications wherever it could go. This is why IMAP, there needs to be a translation layer, email became the killer application of the in- or something to aide in the transition between ternet; the one task or operation that made it the two messaging protocols. The flexibility the biggest thing to happen in the rapid du- of the XMPP might initially be quite alien to plication of information in an incredibly short a lot of users, so it needs to be presented to amount of time reaching the highest number them in the most practical and familiar way of people ever, overtaking the printing press in possible in order to gain a high level of accep- the list of the most revolutionary milestones tance. mankind has reached in an effort to get infor- mation from one point to point in the fastest, The ideal way would be to have a server cheapest and easiest way. with both SMTP and XMPP support, but at the moment this would be a huge and complex Unfortunately, the protocol was too open, task that would need to be designed very spe- it was too insecure. It was protected by obscu- cially, considering SMTP is an all-or-nothing rity; the simple fact that only very few peo- protocol and XMPP is much more secure and ple even knew about it, or could use it and controlled. they had to have privileged access to those facilities, which was mostly government and Another way would be have a system that academic related. But that false protection uses the existing email infrastructure to re- was destroyed by the personal computer with trieve messages already waiting, but which are internet access. prepared in a certain way that could be de- tected, then it would forward the contents of Now, messages can be sent by anyone, any- those marked messages to users on the XMPP where, in practically unlimited quantity, to network so they would be able to receive mes- a great number of people, at extremely low sages just like normal, with no disruption to cost (in many cases, free), without verifica- existing services or infrastructure. That is tion, without consequences from the message’s what we look at and how to implement and content, at any time. This is the problem deploy it. that modern networks call "spam". Named for the Monty Python sketch where the dia- One day soon, a more integrated solution logue turns from simple and funny dialogue to will be made that assists in the transition even just the word "spam" repeated over and over, further that takes advantage of an existing by every member in the cast until there is no SMTP server, but does not use mailboxes at meaningful dialogue left. all. This is in the works and will be part of a future paper. Spam has become a real problem for com- puter networks today and many solutions have For now, baby steps are needed to raise been sought to address these issues. PGP was awareness of this innovative solution to the taking good steps, but it needed technical pro- email security problems and how to get oth- ficiency to get it working, which is unsuited ers using it and have it slowly integrated into for modern users. So XMPP was designed in existing networks so it can be demonstrated

10 and have users reap the benefits of. The prob- [11] David Diringer, The Book before Print- lem of binary data i.e:: email attachments is ing: Ancient, Medieval and Oriental, the last major hurdle that needs to be solved, Dover Publications, New York 1982, p. but we must remember that it is solvable and 172. thus a solution could be just around the cor- ner waiting for us. [12] McLuhan 1962; Eisenstein 1980; Febvre & Martin 1997; Man 2002 Communication is a wonderful thing, and with the right protocol that allows near in- stant messaging, sender and receiver verifica- tion, built-in message security, flexibility and a decentralised infrastructure such as XMPP, communication doesn’t mean spending hours deleting spam from your inbox and needing to keep complex email filters up to date but instead, enjoying a clean messaging system that does one thing and does it well; get se- cure messages from one point to another, with the least amount of cost and effort and time.

References

[1] Johansson, Leif (April 18, 2005). "XMPP as MOM". Greater NOrdic MIddleware Symposium (GNOMIS). Oslo: Univer- sity of Stockholm

[2] http://tools.ietf.org/html/rfc6120, http://tools.ietf.org/html/rfc6121

[3] "Open Real Time Messaging System". Tech.slashdot.org. 1999-01-04.

[4] http://xmpp.org/rfcs/rfc3921.html

[5] http://www.ietf.org/rfc/rfc3920.txt

[6] http://xmpp.org/extensions/xep- 0160.html

[7] http://strophe.im/libstrophe/

[8] http://www.etpan.org/

[9] http://www.ejabberd.im/

[10] Paul Martin Lester, Visual Communi- cation with Infotrac: Images with Mes- sages, Thomson Wadsworth, 2005

11