| Carl Friedrich Gauß Faculty | Department of Computer Science

Hardware Security Key for the Matrix Protocol

Student(anonymous, Login required)
SupervisorDr. Dominik Schürmann
ProfessorProf. Dr.-Ing. Lars Wolf
IBR GroupCM (Prof. Wolf)
TypeMaster Thesis


With the rise of end-to-end encrypted instant messengers, modern cryptography is used on a daily basis by a lot of people. However, instant messaging infrastructure is often centralized. Matrix is an open source approach to establish secure, decentralized communication with modern primitives. Furthermore, Matrix wants to link different communication applications into one ecosystem. Even more, Matrix also wants to include communication between IoT devices in this ecosystem. On the security side, Matrix uses the Olm algorithm, which is a double ratchet algorithm similar to the signal protocol. However, Olm uses Elliptic Curve long term keys to establish communication. Stored private keys can become a great vulnerability, especially when stored on mobile devices. A theft or device corruption can lead into an impersonating attack or loss of perfect forward secrecy. For scenarios with high security demands such as industries or government entities, security keys have been used in the past. Security keys are often closed source devices due to different nondisclosure agreements and therefore in the suspicion of vulnerabilities or even backdoors. This work will enhance the security level of the Matrix protocol with an open hard- and software security key.

This work consists of two major parts, the first one is dedicated to the security key, the second one is dedicated to extending a current Matrix client to actually use the security key in one-to-one communication. For this work, the Solo security key was chosen. Solo key is an open hard-/software key, that uses software implementations of cryptography. However, by now this key does not support the widely used Curve25519, which is used in the Olm algorithm. This work will change this, by extending the Solo key with an existing library to use Curve25519 based keys for Elliptic Curve Diffie-Hellman (ECDH).

The second part of this work will extend the Matrix protocol to use the Solo key as a security key to establishing a session. Therefore, an Android Matrix client, probably the Riot client, will be extended to interact with the Solo key. However, the Megolm algorithm for group chat is optional. VoIP and support for multiple devices are out of scope.

last changed 2019-09-16, 14:15 by Dr. Dominik Schürmann