<?xml version="1.0" encoding="utf-8"?>

<feed xmlns="http://www.w3.org/2005/Atom">

	<title>Max Harder | Atom Feed</title>
	<link href="https://max-har.de/feed/atom.xml" rel="self" />
	<link href="https://max-har.de/" />
  <link rel="stylesheet" href="atom.css" xmlns="http://www.w3.org/1999/xhtml" />
  <script src="transform.js" xmlns="http://www.w3.org/1999/xhtml" />
	<id>urn:uuid:1d8849b0-e5b2-4dec-a62b-9eb298867c34</id>
	<updated>2026-07-13T17:51:00+11:00</updated>

  <entry>
		<title>Dissecting the ILOVEYOU Worm</title>
		<id>urn:uuid:217bef45-fded-41cf-84a1-1fe33f9d1e4c</id>
    <published>2026-07-12T10:22:00+10:00</published>
		<updated>2026-07-12T13:15:00+10:00</updated>
    <summary>The ILOVEYOU worm was a relatively simple and slightly chaotic yet powerful piece of malware. Not only did it use novel social engineering techniques in a highly effective way, but it also excelled in replicating itself, with two separate ways of spreading to other computers.</summary>
		<content type="html">
<![CDATA[
<h2 id="introduction">Introduction</h2>
<p>ILOVEYOU (or LoveLetter) was a computer worm released on 4 May 2000 that infected tens of millions of Windows computers and caused damage estimated at USD 10 billion. It was written in Microsoft’s (now deprecated) VBScript by Manila-based Onel de Guzman, who was 23 years old at the time and a student at AMA Computer College. A part of the worm closely resembles a “trojan horse program” de Guzman outlined in a <a href="https://web.archive.org/web/20010622163237/http://users.rcn.com/rms2000/lovebug/thesis.htm">rejected thesis proposal</a> three months earlier, which aimed to allow “Internet users to get Windows passwords such as Internet Accounts to spend more time on Internet without paying.”</p>
<p>The worm relied on social engineering in a novel way. Victims received an email with the subject line ILOVEYOU and a body telling them to “kindly check the attached LOVELETTER coming from me.” Those who clicked on the attached <code>LOVE-LETTER-FOR-YOU.TXT.vbs</code> file (the <code>.vbs</code> extension was often hidden to users), executed the malicious VBScript. It infected the system and, among other things, sent identical emails to all contacts in the victims’ address lists, spreading to other computers by impersonating a close contact with romantic feelings for the recipient.</p>
<h2 id="analysis">Analysis</h2>
<p>Finding a copy of the original ILOVEYOU worm that is completely unaltered at the byte level is difficult. The script was often reformatted and numerous <a href="https://groups.google.com/g/alt.windows95/c/aJJRMzhOW-8">variants</a> began to spread shortly after its release. The most authoritative copy appears to be on <a href="https://www.cexx.org/loveletter.htm">Counterexploitation</a>, which, however, was also reformatted and contains several formatting errors. A beautified and annotated copy of this version can be found on <a href="https://github.com/onx/ILOVEYOU/blob/master/LOVE-LETTER-FOR-YOU.TXT.vbs">GitHub</a>. The original script was named <code>LOVE-LETTER-FOR-YOU.TXT.vbs</code> and likely 10,307 bytes in size.</p>
<h3 id="structure">Structure</h3>
<p>The script starts with two comment lines used by de Guzman to add his signatures:</p>
<pre class="vbs"><code>rem  barok -loveletter(vbe) &lt;i hate go to school&gt;
rem by: spyder  /  ispyder@mail.com  /  @GRAMMERSoft Group  /  Manila,Philippines</code></pre>
<p>Barok is the name de Guzman (aka spyder) gave his password-stealing trojan, which the worm attempts to download. GRAMMERSoft was a group of hackers made up of AMA Computer College students, including spyder. Interestingly, de Guzman also provided his real location: Manila, Philippines.</p>
<p>Next, the script includes an instruction to ignore runtime errors, which allows it to continue even if one step fails (this is included at the beginning of almost every component of the script), global variables are defined, and a mechanism is set up that allows the worm to replicate itself by reading its own content. This is followed by a call of the first subroutine <code>main()</code>, which initialises the programme.</p>
<p>Overall, the ILOVEYOU worm is composed of eight subroutines (think named blocks of code that don’t return a value) that are in the following hierarchical order:</p>
<ol type="1">
<li><code>main()</code> – initalises the worm
<ol type="1">
<li><code>regruns()</code> – downloads the trojan and creates persistence
<ol type="1">
<li><code>regcreate(regkey,regvalue)</code> – creates registry keys</li>
</ol></li>
<li><code>html</code> – creates an HTML version of the worm</li>
<li><code>spreadtoemail()</code> – spreads the worm via email</li>
<li><code>listadriv()</code> – iterates through folders in drives
<ol type="1">
<li><code>folderlist(folderspec)</code> – recursively iterates through subfolders
<ol type="1">
<li><code>infectfiles(folderspec)</code> – copies the worm into files and spreads the HTML version via IRC</li>
</ol></li>
</ol></li>
</ol></li>
</ol>
<p>In addition, three functions are defined, the first two of which are used in the <code>regruns()</code> subroutine, while the last one is never used:</p>
<ul>
<li><code>regget(value)</code> – reads registry entries</li>
<li><code>fileexist(filespec)</code> – checks if a file exists</li>
<li><code>folderexist(folderspec)</code> – supposed to check if a folder exists</li>
</ul>
<p>Below, I describe the worm's five main steps in detail:</p>
<ol type="1">
<li>Initialise</li>
<li>Download trojan and create persistence</li>
<li>Create HTML version</li>
<li>Spread via email</li>
<li>Copy into files; spread via IRC</li>
</ol>
<h4 id="step-1-initialise">Step 1: Initialise</h4>
<p>First, the <code>main()</code> subroutine ensures the Windows Scripting Host’s timeout is set to 0 to prevent interruptions in the scripts execution. It copies the worm into 3 files in the root and system folders (<code>MSKernel32.vbs</code>, <code>Win32DLL.vbs</code>, and <code>LOVE-LETTER-FOR-YOU.TXT.vbs</code>), and finally invokes the four main subroutines <code>regrun()</code>, <code>spreadtoemail()</code>, <code>html</code>, and <code>listadriv()</code>.</p>
<p><em>Registry key changes:</em></p>
<ul>
<li><code>HKEY_CURRENT_USER\Software\Microsoft\Windows Scripting Host\Settings\Timeout</code> set to <code>0</code></li>
</ul>
<h4 id="step-2-download-trojan-and-create-persistence">Step 2: Download Trojan and Create Persistence</h4>
<p>The <code>regruns()</code> subroutine uses <code>regcreate()</code> to set the two worm copies in <code>MSKernel32.vbs</code> and <code>Win32DLL.vbs</code> as registry entries for the registry keys listed below, ensuring they are executed every time the user logs on and also prior to that.</p>
<p><em>Registry key changes:</em></p>
<ul>
<li><code>HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\MSKernel32</code> set to worm copy in <code>MSKernel32.vbs</code></li>
<li><code>HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\Win32DLL</code> set to worm copy in <code>Win32DLL.vbs</code></li>
</ul>
<p>The subroutine then looks for the Internet Explorer’s download directory, and, if not found, sets <code>C:\</code> as the temporary download directory.</p>
<p>It subsequently checks if a file named <code>WinFAT32.exe</code> exists in the system folder, which would indicate that the Barok trojan is already present. (Note that the function <code>fileexist()</code> inverts the <code>FileExists()</code> semantics.) If not, one of four URLs, selected based on a randomly generated number, is set as a registry entry in the registry key listed below, updating Internet Explorer’s start page to an attacker-controlled page that downloads the Barok trojan as <code>WIN-BUGSFIX.exe</code>.</p>
<p><em>Registry key changes:</em></p>
<ul>
<li><code>HKCU\Software\Microsoft\Internet Explorer\Main\Start Page</code> set to download URL for trojan in <code>WIN-BUGSFIX.exe</code></li>
</ul>
<p>After that, the worm script checks if the trojan already exists in the download directory. If that’s the case, the registry key listed below is created and set to <code>WIN-BUGSFIX.exe</code>, ensuring the trojan is executed every time the user logs on. Additionally, the registry key for Internet Explorer’s start page is set to a blank page.</p>
<p><em>Registry key changes:</em></p>
<ul>
<li><code>HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\WIN-BUGSFIX</code> set to trojan in <code>WIN-BUGSFIX.exe</code></li>
<li><code>HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\StartPage</code> set to <code>about:blank</code></li>
</ul>
<p>Regarding Barok: While I don’t have access to the trojan’s source code, Marcus H. Sachs’s 2001 <a href="https://www.giac.org/paper/gsec/553/stealing-microsoft-operating-systems/101292">paper</a> “Stealing Passwords from Microsoft Operating Systems” outlines how it works: Barok reads the Local Security Authority (LSA) secrets of a target computer and exfiltrates the contents to an SMTP mail account (<code>MAILME@SUPER.NET.PH</code>) on a remote computer by emailing them via a raw connection on TCP port 25, which leaves no evidence in the victim’s email client outbox of a sent message.</p>
<h4 id="step-3-create-html-version">Step 3: Create HTML Version</h4>
<p>The <code>html</code> subroutine replicates the worm as a web page named <code>LOVE-LETTER-FOR-YOU.HTM</code> in the system folder, which will be used later in an attempt to spread it via Internet Relay Chat (IRC) using the mIRC client.</p>
<p>HTML and JavaScript is used to create a window asking the victim to enable Microsoft’s (now deprecated) software framework ActiveX by clicking “Yes” in Internet Explorer’s confirmation window. More such windows are created on mouse movement and key press in an attempt to exhaust the victim.</p>
<p>ActiveX will be utilised to read the currently running script (the worm in <code>LOVE-LETTER-FOR-YOU.TXT.vbs</code>), which is then encoded.</p>
<p>Before that, however, VBScript code is provided that has the functionality to decode the encoded script, write it to the file <code>MSKernel32.vbs</code> in the system folder and include it in a registry key to ensure it executes every time the user logs on (just like in step 1). The code also contains (confusing) error handling for the ActiveX component, exiting silently if it failed or displaying the message “ERROR: can’t initialize ActiveX” if it succeeded.</p>
<p>Eventually, the file <code>LOVE-LETTER-FOR-YOU.HTM</code> is written to disk: first, the HTML / JavaScript part, then the encoded worm, and finally the additional VBScript code that has the ability to infect the system.</p>
<h4 id="step-4-spread-via-email">Step 4: Spread via Email</h4>
<p>The <code>spreadtoemail()</code> subroutine launches Outlook and uses Microsoft’s Messaging Application Programming Interface (MAPI) to access the victim’s address lists.</p>
<p>The code that follows is easier to understand if I already explain what the subroutine does afterwards: It will add a registry key for each entry in an address list after the ILOVEYOU email is sent to the email address in that entry. This is to ensure that only one email is sent to each contact. Additionally, a registry key for each address list is added and set to the number of entries in that list. This allows the worm to check whether new entries were added to that address list the next time it executes.</p>
<p>The victim’s address lists are accessed, and then the worm iterates through them, checking for each list whether a corresponding registry key exists, and if that’s the case, it retrieves the registry entry. If the count inside the registry entry is smaller than the current number of entries in that address list (but larger than one), or if no registry key exists for that list, the worm’s signature ILOVEYOU email, including the malicious <code>LOVE-LETTER-FOR-YOU.TXT.vbs</code> attachment, is sent to all address list entries for which no registry keys exist yet.</p>
<p>After sending each email, the registry key for that address list entry is set. When the iteration through an address list is complete, the registry key for that address list is added or updated to keep the registry entry in sync with the current address list size.</p>
<p><em>Registry key changes:</em></p>
<ul>
<li><code>HKEY_CURRENT_USER\Software\Microsoft\WAB\&lt;address-list-entry&gt;</code> set to <code>1</code> (for each entry in the address list)</li>
<li><code>HKEY_CURRENT_USER\Software\Microsoft\WAB\&lt;address-list&gt;</code> set to number of address list entries (for each address list)</li>
</ul>
<p>Note that emails are only sent out for address lists that contain more than one entry, which appears to be a bug.</p>
<h4 id="step-5-copy-into-files-spread-via-irc">Step 5: Copy into Files; Spread via IRC</h4>
<p>The <code>listadriv()</code> subroutine checks for fixed and network drives and uses the recursive subroutine <code>folderlist(folderspec)</code> to iterate through the files in all folders and subfolders, which it “infects” using the <code>infectfiles(folderspec)</code> subroutine. The latter actually has
two separate functionalities.</p>
<p>First, it iterates through the files in the current folder and checks their extensions to perform the following actions:</p>
<ul>
<li>For <code>.vbs</code> or <code>.vbe</code> files, it copies the worm into them by using the mechanism set up in the very beginning of the VBScript, overwriting the original content.</li>
<li>For <code>.js</code>, <code>.jse</code>, <code>.css</code>, <code>.wsh</code>, <code>.sct</code> or <code>.hta</code> files, it creates <code>.vbs</code> files with the same base names, copies the worm into them, and deletes the original files.</li>
<li>For <code>.jpg</code> or <code>.jpeg</code> files, it copies the worm into them, creates copies of those files, maintaining the full names but adding <code>.vbs</code> extensions to them, and deletes the original files.</li>
<li>For <code>.mp3</code> or <code>.mp2</code> files, it creates copies of those files, maintaining the full names but adding <code>.vbs</code> extensions to them, copies the worm into them, and adds <code>2</code> to the attribute type of the original files, which turns “normal” files (<code>0</code>) into “hidden” files (<code>2</code>). (Already hidden files would be turned into system files [<code>4</code>]. For all other
cases, the behaviour is undefined.)</li>
</ul>
<p>Second, it looks for files related to mIRC (an IRC client), namely <code>mirc32.exe</code>, <code>mlink32.exe</code>, <code>mirc.ini</code>, <code>script.ini</code>, and <code>mirc.hlp</code>. If it encounters any of those files, a new file named <code>script.ini</code> is created, and an mIRC script is written to it that runs every time a person joins any channel the victim is a member of. It verifies that the person joining is not the victim themselves (if it was, the script would halt) and then, using the Direct Client-to-Client (DCC) SEND command, requests the person joining to accept the transfer of the file <code>LOVE-LETTER-FOR-YOU.HTM</code> to their computer.</p>
<p>Interestingly, the mIRC script also contains the following lines, which appear to be a social engineering attempt to prevent anyone opening the script from editing it:</p>
<pre><code>; Please dont edit this script... mIRC will corrupt, if mIRC will
; corrupt... WINDOWS will affect and will not run correctly. thanks
;
;Khaled Mardam-Bey
;http://www.mirc.com</code></pre>
<h2 id="summary">Summary</h2>
<p>All in all, the ILOVEYOU worm was a relatively simple and slightly chaotic yet powerful piece of malware. Not only did it use novel social engineering techniques in a highly effective way, but it also excelled in replicating itself, with two separate ways of spreading to other computers. Additionally, the worm was able to infect systems with the Barok trojan and overwrite or delete victims’ files. While it had multiple dependencies that had to be met to reach its full potential, the worm was able to spread on such a large scale that it could compensate for this limitation.</p>
<p>Considering the devastating effects of the ILOVEYOU worm in the year 2000 and the fact that its author was a 23-year-old computer student in the Philippines whose radical idea of using password-stealing trojans to allow people to access the “Internet without paying” just got rejected by his lecturer as illegal, this is a unique malware that, in a strange way, deserves its place in history.</p> ]]>
		</content>
		<author>
			<name>Max Harder</name>
		</author>
	</entry>

	<entry>
		<title>Communication Over Untrusted Networks</title>
		<id>urn:uuid:1ca6c02a-2572-44e0-bceb-005f3ad04ce0</id>
    <published>2025-10-26T00:00:00Z</published>
		<updated>2026-04-01T16:13:00+11:00</updated>
    <summary>How can you stay in control over your digital communication? I highlight that end-to-end encryption is a readily available and indispensable technology that significantly reduces vulnerability against malicious actors and mass surveillance in private conversations.</summary>
		<content type="html">
			<![CDATA[ <section>
        <h2>Introduction</h2>
        <p>Communication makes you vulnerable – and that's not necessarily a bad thing. In fact, it's essential and allows you to form connections and grow as a person. But it also requires a great deal of trust. Some things, you may only want to share with someone who's very close to you, even if that person is actually very far away from you.</p>
        <p>When you write down a message, you add an additional layer of vulnerability to your communication. The message continues to exist until it's destructed. This, too, can be something very valuable – love letters from your partner and the like. But love letters from your ex-partner? Well, normally it's not too difficult to dispose of them. But what about the love letters you sent? They're beyond your control now.</p>
        <p>It can be even more difficult when the messages were sent over the Internet or any other digital network or medium. There are plenty of instant messaging services (and other apps that have a messaging functionality), and there's email and SMS, among other things. You probably have your own preferences when it comes to these services, and perhaps you would like a single, convenient app that everyone uses.</p>
        <p>But how can you stay in control over your digital communication? I think, for a good reason, many people avoid asking themselves this question – it's complicated. Some people may even say &lsquo;I have nothing to hide&rsquo; or something along that line. <span class=italic>(Love letters, please.)</span> But the truth is, the additional vulnerability that arises from handing over your messages and related data to an untrusted network – not only to some<span class=italic>one</span> else – is an actual threat.</p>
        <p>Everyone is subject to personally identifiable data. Laws around the world differ, but if you're not residing in the European Union, it it likely that this data is the property of whoever collects it. It's beyond your control. Apart from corporations, there are also criminal actors and governments that systematically try to invade your privacy to sustain themselves (we all remember <a href="https://en.wikipedia.org/wiki/2010s_global_surveillance_disclosures" target="_blank" rel="noopener noreferrer">Edward Snowden's disclosures about government-led mass surveillance</a>, including programmes like <a href="https://en.wikipedia.org/wiki/XKeyscore" target="_blank" rel="noopener noreferrer">XKeyscore</a>).</p>
      </section>
      <section>
        <h2>Encryption</h2>
        <p>You've probably heard about encryption, maybe even end-to-end encryption (E2EE). Encryption converts plaintext into so-called ciphertext that's unreadable by a human or computer without the proper encryption cipher and cryptographic key to decrypt it. That's nothing new. But service providers (or malicious actors) are technically still able to read the decrypted messages, as long as the encryption wasn't &lsquo;end to end.&rsquo; With E2EE, only the sender and intended recipient can read the messages. No-one else. (Well, ideally. There are also things like <a href="https://en.wikipedia.org/wiki/End-to-end_encryption#Backdoors" target="_blank" rel="noopener noreferrer">backdoors</a> so we still need trust, but we have a certain degree of autonomy here.)</p>
        <section>
          <h3>Digital Communication Channels</h3>
          <p>When it comes to digital communication channels, there are plenty: dedicated instant messaging services, other apps that have a messaging functionality (think social media platforms), email, SMS et cetera, and each channel has its own implications for your privacy. Let me go into a bit more detail.</p>
          <section>
            <h4>Transport-Encrypted</h4>
            <p>Many popular channels are, at best, only transport encrypted. Again, this means that at least the service providers or, at worst, anyone with the necessary technical skills, can read the messages sent over these channels, which include email, SMS, and lots of messaging applications and social media platforms. However, it should be noted that email and SMS are special in this context, as both use standardised communication protocols and hence avoid platform lock-in.</p>
            <p>Email is probably the most common channel for formal correspondence. Most of us send and receive emails every day, and we often include – or have to include – sensitive information. Nowadays, transport-level encryption (between you and the server) is fairly common (such as STARTTLS) but not guaranteed. E2EE can be added, but it's cumbersome to use and unfortunately not very widely adopted. OpenPGP is a notable data encryption standard in this context, which associates each email address with a public/private key pair. (My public key is linked on my <a href="https://max-har.de/r/">website</a>, feel free to send me an email using E2EE with your comments on this post.)</p>
            <p>SMS, short for Short Message Service, isn't Internet-protocol based and typically transmitted over cellular (or mobile) networks. While basic over-the-air encryption methods exist for SMS, they have significant limitations and vulnerabilities. But importantly, SMS does not support E2EE, and the mobile carriers involved in sending the messages have full access to them (and might even share data with third-party services). On top of that, SMS is likely the most costly way to transmit data in general if it's not included in your mobile plan.</p>
            <p>Then there are Internet-protocol based instant messaging services like Tencent-owned WeChat and various other platforms with messaging functionality that don't support E2EE. Today, Transport Layer Security (TLS) often adds transport encryption, for example in HTTPS, short for Hypertext Transfer Protocol <span class=italic>Secure</span>, or MMTLS (a modified version of TLS 1.3) in the case of WeChat. However, the corporations behind those services can access all messages and usually collect as much data as possible about their users. On Instagram, there are optional chats with E2EE (&lsquo;this feature is only available in some areas&rsquo;), but well, it's still Instagram (owned by Meta). Another notable example is Telegram (owned by Pavel Durov, who also co-founded VKontakte), which encrypts messages using its own layer of MTProto encryption, but it doesn't use E2EE by default. So-called Secret Chats that use E2EE have to be created separately, and this is only supported in one-on-one conversations (not in groups or channels).</p>
            <p>Update: In March 2026, Instagram announced that E2EE messaging will no longer be supported after 8 May 2026.</p>
          </section>
          <section>
            <h4>End-To-End Encrypted</h4>
            <p>When discussing messaging apps using E2EE, it can be useful to focus on three dimensions: (1.) for-profit versus not-for-profit services, (2.) proprietary versus open-source code (which correlates with the former), and (3.) centralised versus decentralised infrastructure. I argue that not-for-profit services with open-source code and decentralised infrastructure are the preferred option for digital communication. This is because (1.) there's no interest in collecting and monetising user data as well as no barrier to entry, (2.) the source code is publicly accessible and anyone with the necessary technical skills can assess it or contribute to it (or even create their own version), and (3.) there are no single points of control and failure (such as technical outages, data breaches et cetera).</p>
            <figure>
              <img src="https://max-har.de/feed/images/1ca6c02a-2572-44e0-bceb-005f3ad04ce0_1.png" class="blog" alt="A Drakeposting meme showing a preference for the Not-For-Profit, Open-Source, Decentralised category">
            </figure>
            <section>
              <h5>For-Profit, Proprietary, Centralised</h5>
              <p>WhatsApp (owned by Meta), and Facebook Messenger (also owned by Meta), which now appears to use E2EE for personal messages by default, fall into this category of for-profit services with proprietary source code and centralised infrastructure. In both instances, you have to trust Meta with your data, which is essentially its business model. In this context, the network effect that leads people into using these services is particularly problematic, as they inevitably become products themselves. The company also has a long history of <a href="https://en.wikipedia.org/wiki/Meta_Platforms#Lawsuits" target="_blank" rel="noopener noreferrer">lawsuits</a> against it. For example, in May 2023, it was fined a record EUR 1.2 billion by the European Data Protection Board for breaching European Union data privacy laws. In addition, it has been shown that WhatsApp is particularly vulnerable to <a href="https://propertyofthepeople.org/document-detail/?doc-id=21114562" target="_blank" rel="noopener noreferrer">law-enforcement searches</a>.</p>
            </section>
            <section>
              <h5>For-Profit, Open-Source, Centralised</h5>
              <p>Some services are for-profit and run on centralised infrastructure, but the code is (at least largely) open source. This includes Threema (the server code is proprietary) and Wire, for example. (If Telegram was using E2EE by default, it could probably also be mentioned under this category, though its server code is proprietary too.) The companies behind both services are headquartered in Switzerland and the servers are located either there or in the European Union, respectively, with relatively strong privacy laws protecting them. Both services aren't widely adopted for private communication. I assume part of the reason for this is the business model that isn't based on monetising user data but rather on selling apps (or licenses) and subscriptions.</p>
            </section>
            <section>
              <h5>Not-For-Profit, Open-Source, Centralised</h5>
              <p>Signal is an example of a not-for-profit service with open-source code and centralised infrastructure. The messenger, which has been endorsed by Edward Snowden on multiple occasions, is developed by the Signal Foundation (launched with initial funding from WhatsApp co-founder Brian Acton) and its subsidiary Signal Messenger LLC. Messages are encrypted with the Signal Protocol, which is generally considered secure and cryptographically sound (and has also been implemented into WhatsApp and Facebook Messenger, among others). However, the centralised nature of Signal makes it <a href="https://mastodon.world/@Mer__edith/115445701583902092" target="_blank" rel="noopener noreferrer">dependent on its large providers</a>, as seen during the Amazon Web Services outage on 20 October 2025. Moreover, Signal requires a phone number from its users, which isn't ideal, and access to Signal was blocked in some countries, including Russia. Thanks to the open-source nature of the service (and to amazing developers), there's an independent, security-hardened, free and open-source fork of the Signal client called <a href="https://molly.im/" target="_blank" rel="noopener noreferrer">Molly</a> (named after <a href="https://en.wikipedia.org/wiki/Molly_Millions" target="_blank" rel="noopener noreferrer">Molly Millions</a>), which adds valuable features, such as database encryption and <a href="https://www.torproject.org/" target="_blank" rel="noopener noreferrer">Tor</a> support. The team behind Molly is also working on Flatline, a modified Signal server that won't use phone numbers to register accounts.</p>
            </section>
            <section>
              <h5>Not-For-Profit, Open-Source, Decentralised</h5>
              <p>Not-for-profit services with open-source code and decentralised infrastructure that use E2EE by default aren't exactly abundant, but I want to include the open communication protocol <a href="https://matrix.org/" target="_blank" rel="noopener noreferrer">Matrix</a> here, which is looked after by The Matrix.org Foundation. The protocol supports E2EE and modern clients like Element (developed by the for-profit company Element) enable it by default in private conversations. (The Foundation currently lists nearly 30 Matrix clients it's aware of, with different levels of maturity.) Matrix servers are federated, which means you can choose the &lsquo;homeserver&rsquo; you want to use. Matrix also supports interoperability via bridges, which means that it's open to exchanging data and messages with other platforms, including Signal. My experience is that the use of Matrix is relatively common among free and open-source software developers, and Element also lists a number of large multinational corporations and government organisations as its customers. However, I think the onboarding can be quite complex, especially for those who aren't familiar with Matrix, as it does a lot of things differently.</p>
              <p>Addition: There's also <a href="https://delta.chat/" target="_blank" rel="noopener noreferrer">Delta Chat</a>, which uses secure and interoperable chatmail relays. I won't go into detail here, but I think it definitely deserves a mention.</p>
            </section>
          </section>
        </section>
      </section>
      <section>
        <h2>Conclusion</h2>
        <p>So, how can you stay in control over your digital communication? First of all, I highlighted that E2EE is a readily available and indispensable technology that significantly reduces vulnerability against malicious actors and mass surveillance in private conversations. Looking at messaging apps using E2EE, I introduced three dimensions: for-profit versus not-for-profit services, proprietary versus open-source code, and centralised versus decentralised infrastructure, and argued that not-for-profit services with open-source code and decentralised infrastructure are the preferred option for digital communication.</p> 
        <p>While the open communication protocol Matrix comes closest to my ideal, I also suggested that it might not be the most inclusive channel when it comes to usability. An alternative (with its own trade-offs) is Signal, which also has an independent fork called Molly with improved features. The point is that there are ways to protect our digital privacy. We just have to use them.</p>
      </section> ]]>
		</content>
		<author>
			<name>Max Harder</name>
		</author>
	</entry>

</feed>