Beyond Olm
About challenges and opportunities in Messaging Layer Security (MLS)
Part 1: Olm in detail
Fundamentals
Key algorithms
Key types
Key distribution
Key verification
Encryption & decryption
Key algorithms
ed25519
curve2559
signed_curve25519
Ed25519
32-bit elliptic curve keys
Bullet Two
Bullet Three
Key types
Device fingerprint keys
Device identity keys
One time keys
Fallback keys
Megolm encryption keys
Megolm signing keys
Device fingerprint keys
Ed25519
The device fingerprint
Signs all other keys of the device
Public key shared across the [matrix]
Device identity keys
Curve25519
Used to deviate shared secrets
Signed using the fingerprint keys
Public key shared across the [matrix]
Could in future be rotated
One time keys
Signed Curve25519
Disposable, single-use keys
There are looooots of them
Claimed by other users to establish Olm sessions
Fallback keys
Signed Curve25519
Similar to one time keys but not disposable
Used once one-time keys are consumed
New fallback keys regenerated once device online
Megolm encryption keys
Random secret
Used to derive AES-256 and HMAC-SHA-256 keys
After each sent message, a hash derives the next key
Future messages can be decrypted but past ones can't
Megolm signing key
Ed25519
Used to sign messages sent via Megolm
Public key shared in the room along with encryption key
Olm
Encrypt to-device messages
Secure channel for key sharing
Megolm
Encrypt room events
Keys for Megolm are shared using Olm-encrypted to-device messages
Key distribution
Made with Slides.com