โA large number of vulnerabilities are being exploited before security teams have any time to implement patches or other mitigationsโ
To be precise, 56% of the vulnerabilities in the report were exploited within seven days of public disclosure โ a 12% increase over 2021, and an 87% increase over 2020. Resources for triaging and remediating vulnerabilities remain limited, and priorities can be misdirected.
In our work, we present seven attacks against the cryptographic protocols used by Threema, in three distinct threat models. All the attacks are accompanied by proof-of-concept implementations that demonstrate their feasibility in practice.
In the event an ephemeral key is exposed even once, an attacker can permanently impersonate the client to the server and then obtain all metadata in all E2EE messages. This is a remarkable shortcoming because ephemeral keys should never be able to authenticate a user. With Threema, leaking of an ephemeral key has the same effect as leaking a long-term key.
The common cause is โrolling your own protocolโ. At the time when #Threema first released, the space of messaging protocols was still pretty empty, but OTR (from 2004) did already achieve forward secrecy. Threema is entirely built upon NaCl, the cryptographic library by Daniel J Bernstein. It was interesting to see, when talking to the team, that some of the bad design decisions (such as not authenticating the metadata of messages) arose from limitations of the #NaCl APIs. Another point to be made is that a company whose main product is based on cryptography, should always have a cryptographer at hand to assess its security and to propose already-existing protocols when possible, for example the battle-tested TLS instead of creating their bespoke client-to-server protocol.
The Threema protocols lack(ed) basic properties that are nowadays considered de rigueur for a messenger app to be regarded as secure: forward secrecy with respect to a malicious server, and protection against replay, reflection, and reordering attacks. While developers mostly stopped โrolling their ownโ cryptographic primitives, rolling your own protocol can be as dangerous: the recent attacks on Mega and Matrix are also an example of this. We need more provable security, and more scrutiny for cryptographic protocols before they are deployed.
contents: cautionary cyberpunk aesthetic; boosting signal; not that spicy~ask me about my PhD research.currently in an abusive relationship with my computer. #noBotseriously won't shut up about #Ada / #SPARK and #LISPmaking progress in my own way.don't hate; appreciate.#systemsPraxis: #systemsThinking + #systemDynamics + #systemsEngineering #antifragility #formalMethods #mind and #nature#retroComputing #OSdev #progLangDesign #fediScholar