niochat / nio

💬 Nio is an upcoming matrix client for iOS.
https://nio.chat
Mozilla Public License 2.0
542 stars 44 forks source link

E2EE #39

Open kiliankoe opened 4 years ago

kiliankoe commented 4 years ago
kiliankoe commented 3 years ago

There's a few improvements with 8b35d6a3860203219a3a8223a2e119e40a3fcbcf (kudos to @pixlwave for figuring that out). The current state is that encrypted messages can be received and sent, but encrypted history is always lost when logging in new or "restoring" the session.

elsiehupp commented 3 years ago

I was going to post this as a new Issue (titled "Element.io 'Verification' Handshake?"), but I decided it would be better as a comment here.

It would nice to be able to "Verify" my Nio login on Element. Once I log in on Nio, I get get this notification on Element:

New Login. Was this you? Verify the new login accessing your account: Elsie's iPhone [Later] [Verify]

Clicking "Verify" I got this notification:

New session. Use this session to verify your new one, granting it access to encrypted messages: Elsie's iPhone (IXTZQRTCQP) If you didn't sign into this session, your account may be compromised. [This wasn't me] [Continue]

Clicking "Continue" it went to this screen and then sat there while nothing happened in Nio:

Verify the other session: Waiting for you to accept on your other session...

Presumably the main purpose here is just for Nio to have access to encrypted messages (hence it being this Issue here), but mainly Element just pesters you repeatedly when you have unverified sessions, which is mildly annoying.

FWIW, Element's iOS key-verification module, which is written in Swift, is available here, if you want to borrow from it liberally.

kiliankoe commented 3 years ago

Nio presumably receives the verification request, but unfortunately doesn't yet do anything with it. We're hoping to get the groundwork for E2EE support working soon, which should hopefully make verification just another checkbox to check.

Huge thanks for the link to Element's key-verification module! That's definitely a great starting point.

elsiehupp commented 3 years ago

I was surprised that Element's iPhone app is built in Swift, considering it's a weird Electron app on desktop, but it should definitely make things easier in terms of building a compatible "handshake" module in Nio!

kiliankoe commented 3 years ago

Ha, yeah, many people have stated that Element mobile doesn't really feel like a native application, but rather like something built using x-platform frameworks 😅 And it would fit with Element Desktop, that's true.

But Element is also making great strides to modernize the entire stack and the app runs a lot better with every update!

qwerzl commented 2 years ago

Any progress on this? Without E2EE matrix is almost unusable (imo).