Description
update April 2017: we now have more-or-less operational E2E encryption in matrix. The work remaining on this issue is to specify it.
End-to-end encryption in Matrix is currently a work-in-progress. A draft of the specification is being prepared on the drafts/e2e branch of matrix-doc. The purpose of this issue is to provide an overview of the work that is outstanding.
An audit of the Olm library, and Olm's use in matrix
Matrix's cryptographic support has been designed according to our understanding of the latest security research and algorithms. However, none of the matrix.org team are trained security experts.
We would welcome an independent audit of our designs and implementations, to highlight any potential vulnerabilities.
(update: NCC group carried out a review on the olm and megolm protocols, and the libolm implementations in November 2016: https://www.nccgroup.trust/us/our-research/matrix-olm-cryptographic-review/)
New device handling (SPEC-271)
We need better support for adding new devices to conversations.
Protocol support for out-of-room messages (#443), and implementations in homeservers and clients
Once all recipients have received encrypted data, it is useless (even to the original recipients), because nobody can decrypt it. There is no point keeping such history in a DAG forever. Good security practice dictates that we destroy the ciphertext even if we are confident in the security of the encryption.
Group chat support (#589)
m.room.encrypted
events are a valid proof-of-concept to show that we can transmit encrypted data between clients; however this does not scale beyond a few users, and does not give a good user experience. #589 considers how this can be improved.
Encryption controls on rooms (#590)
Not every room will need or want the same level of security. We need to define some controls for room administrators to use.
Support for encryption of attachments (#461)
This might become obvious after #589, but we should remember to make sure that uploaded files can be encrypted as well as messages.
(Imported from https://matrix.org/jira/browse/SPEC-162)
(Reported by @ara4n)