Text for Olm encryption is done. Just need to write a few more tests. Next up will be to-device messages, and then showing how all the different encryption parts get put together. At that point, we'll almost have a replacement for the current E2E implementation guide.
"If we spent just one-tenth of the effort we spend prosecuting the poor on prosecuting the rich, it would be a very different world." -- Bruce Schneier
The Olm section of my Matrix Client Tutorial is functioning, but still needs a bunch of explanatory text and some tests written. Is it weird to talk about a section in a book "functioning"? Welcome to literate programming.
I love using literate programming for this tutorial. It just feels so natural. If you ever want to write a tutorial or other document for teaching something programming-related, consider using literate programming.
@Hugo XMPP's OMEMO is based on the Double Ratchet system introduced by Signal, and used in most modern end-to-end encrypted messaging systems (before MLS). You could say that MLS is inspired by the Double Ratchet -- it came about from a desire to make something that scaled better than Double Ratchet for larger groups, and it uses some ratchet constructions. But MLS uses a tree structure that makes it more efficient, and also introduces some new features such as authenticated group membership.
XMPP might adopt MLS in the future, but I haven't heard of anyone trying to do so. But if anyone is working MLS in XMPP, I'd be interested to know.
Also, this seems like a good time to highlight the fact that end-to-end encryption is essential for secure communications, and attempts by governments to limit or backdoor encrypted messengers are misguided. There was a time when governments fought against SSL (now TLS), but now it is everywhere and widely accepted. Governments are now fighting against end-to-end encryption, but hopefully that will see the same fate as their fight against SSL.
One common question that comes up with MLS is whether different messaging systems that use MLS will be able to interoperate. For example, with Matrix, Wire, and Wickr using MLS, could users of one system communicate with users of the other? The short answer is "no", since even if the encryption system is the same, the payload is different. However, there is another working group at the IETF, https://datatracker.ietf.org/wg/mimi/about/, that is working on that issue, so we may get interoperable end-to-end encrypted messaging in the not-too-distant future. Naturally we at @Matrix.org are in on that effort (though not me personally, other than in a peripheral role).
I'm happy to be working on MLS support for @Matrix.org. You can see our progress at arewemlsyet.com. I've been working on it for several years now (the hardest part has been figuring out how to adapt it to work in a decentralised environment), but we're getting closer to something that's usable in clients. We have a proof-of-concept implementation (don't use it for anything serious, because it may self-destruct without warning), and some demo videos. And we'll be working on advancing our extensions for decentralisation into a standard, somehow.
Messaging Layer Security (MLS) is now RFC 9420 https://datatracker.ietf.org/doc/rfc9420/! MLS is a standard for end-to-end encryption in messaging systems. Many messaging systems, including @Matrix.org, are working on supporting MLS. A huge thank you to @Richard Barnes and @Raphael Robert, and to many others, for their work on MLS.
I haven't mentioned it here yet, I've been (slowly) writing a tutorial for writing a Matrix client. It's still in the very early stages, but I've gotten to showing how to send and receive events, and I've recently been working on the end-to-end encryption section. For those who saw an earlier version, you can now know more than you wanted to know about uploading device and one-time keys, and keeping track of recipient devices.
I have to laugh and shake my head at Smith calling it a "Miracle on the Praries". No, you were leading in the polls pretty much the whole time. You're in a strongly conservative province. I mean, if you're saying that it's a miracle that the majority of Albertans chose to ignore your terribleness, then yes, sure. But people voting the same way the polls said they would isn't a miracle. If the UCP ran with a saner leader, they probably would have won by a lot more.
Alberta, I'm disappointed in you. Especially you, Calgary. Though, congratulations to the seats in Calgary that managed to flip. And Banff-Kananaskis. Lethbridge-West, why couldn't you be more like Lethbridge-East?
Hubert Chathi (hubert@social.uhoreg.ca)'s status on Monday, 29-May-2023 09:59:37 EDT
Hubert ChathiAlberta, vote today! How is it that the UCP is polling ahead of the NDP? I know that Alberta likes their conservative governments, but with the things that Smith has said and done, the UCP shouldn't be polling so high. Get out and vote. It doesn't matter if you're in a "safe Blue", or a "safe Orange" riding. Vote!