element-web icon indicating copy to clipboard operation
element-web copied to clipboard

Manual Device Verification (eyeballing the key) doesn't work in ER

Open ara4n opened this issue 11 months ago • 10 comments

Steps to reproduce

  1. Log in on a new device
  2. Don't verify it (e.g. because it doesn't implement verification on its side)
  3. Go to your user in EWR to check the untrusted device
  4. Manually verify it by comparing fingerprint
  5. Discover nothing happens when clicking manual verification.

Outcome

What did you expect?

You should get a prompt to compare fingerprint, and hit 'yes' if they match.

What happened instead?

Nothing; the button ignores the presses. Nothing in the JS console either.

Operating system

No response

Application version

Element Nightly version: 2024031801 Crypto version: Rust SDK 0.7.0 (b1918e9), Vodozemac 0.5.1

How did you install the app?

No response

Homeserver

No response

Will you send logs?

No

ara4n avatar Mar 18 '24 21:03 ara4n

I'm not sure this is a thing we want to expose: it sounds very much like a dev tool to me. So I think the action here is to remove it from the UI

richvdh avatar Mar 22 '24 12:03 richvdh

I'm not sure this is a thing we want to expose: it sounds very much like a dev tool to me. So I think the action here is to remove it from the UI

Without this I can't verify maubot, may be this feature can be hidden somewhere? Or you it's must be done on maubot side?

BasilYes avatar Apr 09 '24 10:04 BasilYes

In addition to the information given in #27497, I would also like to point out that I use a version 6 key backup.

KsmoinO avatar May 24 '24 15:05 KsmoinO

still an issue

JuniorJPDJ avatar Jun 20 '24 01:06 JuniorJPDJ

This is a real problem if you're trying to use or develop a simple client that will never have the more complex verification methods.

For example, I have a lightweight unread message notifier with nearly zero dependencies and no UI of its own. Its sessions have device keys, but no crypto beyond that. Element was the only way of verifying them, and that's now broken. Using it anyway would trigger alerts and brand the account with red badges of shame, which is no good for anyone, so AFAICT, it's effectively shut out of the ecosystem because of this bug.

I see several other reports have already been filed (now marked as dupes), but just in case it helps, here's what appears on the firefox console when I click the (unresponsive) Verify Session button:

Uncaught Error: End-to-end encryption disabled
    checkKeyBackup client.ts:3324
    setDeviceVerified client.ts:2439
    o UntrustedDeviceDialog.tsx:77
    d QuestionDialog.tsx:42
    React 11
    unstable_runWithPriority scheduler.production.min.js:17
    React 3
client.ts:3324:12
Uncaught (in promise) Error: End-to-end encryption disabled
    setDeviceVerification client.ts:2490
    setDeviceVerified client.ts:2433
    o UntrustedDeviceDialog.tsx:77
    d QuestionDialog.tsx:42
    React 11
    unstable_runWithPriority scheduler.production.min.js:17
    React 3
client.ts:2490:12

foresto avatar Jun 27 '24 04:06 foresto

This is a real problem if you're trying to use or develop a simple client that will never have the more complex verification methods.

For example, I have a lightweight unread message notifier with nearly zero dependencies and no UI of its own. Its sessions have device keys, but no crypto beyond that. Element was the only way of verifying them, and that's now broken. Using it anyway would trigger alerts and brand the account with red badges of shame, which is no good for anyone, so AFAICT, it's effectively shut out of the ecosystem because of this bug.

I see several other reports have already been filed (now marked as dupes), but just in case it helps, here's what appears on the firefox console when I click the (unresponsive) Verify Session button:

Uncaught Error: End-to-end encryption disabled
    checkKeyBackup client.ts:3324
    setDeviceVerified client.ts:2439
    o UntrustedDeviceDialog.tsx:77
    d QuestionDialog.tsx:42
    React 11
    unstable_runWithPriority scheduler.production.min.js:17
    React 3
client.ts:3324:12
Uncaught (in promise) Error: End-to-end encryption disabled
    setDeviceVerification client.ts:2490
    setDeviceVerified client.ts:2433
    o UntrustedDeviceDialog.tsx:77
    d QuestionDialog.tsx:42
    React 11
    unstable_runWithPriority scheduler.production.min.js:17
    React 3
client.ts:2490:12

Yup, see this.

jadedeane avatar Jul 10 '24 20:07 jadedeane

I just sent logs, some clients are very buggy and this is a really important feature imho, it makes everything everywhere red, which means that in really annoys everyone...

chagai95 avatar Aug 27 '24 04:08 chagai95

@chagai95 I found a workaround: log in in an older version of Element and verify it via any method. And then you will be able to use text verification from there. For security reasons, I recommend logging out from old Element immediately after you're done.

@foresto if you need a quick verification for testing, I put up Element v1.11.19 at https://element.mazie.rocks/oldversion - but for a private account you should use a trusted source, not from random person on the internet ^^

MRAAGH avatar Oct 11 '24 16:10 MRAAGH

Thanks for thinking of me. I tried an older Element Desktop build, but it was missing this feature, too. I guess 1.11.33 isn't old enough, but I didn't want to go older, due to security concerns.

Anyway, I no longer need it. In the months since my last comment, I gave up on Element, worked my way through some confusingly worded parts of the spec, and built my own tool for verifying Matrix devices by fingerprint.

Not everyone has the time or skills to do that, though, and device signing is not just a dev tool. As things stand now, anyone who needs their communication service to support automation will find Matrix lacking, for the rather silly reason that the official client removed the ability to verify automation clients. For the community's sake, I hope this regression will be fixed.

foresto avatar Oct 11 '24 17:10 foresto

Thx for thinking of me too, already did that but it kind of didn't work on some clients, it's very weird. Anyway check out riots.im

chagai95 avatar Oct 12 '24 07:10 chagai95