this post was submitted on 17 Sep 2024
136 points (94.7% liked)

Technology

58115 readers
4389 users here now

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related content.
  3. Be excellent to each another!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, to ask if your bot can be added please contact us.
  9. Check for duplicates before posting, duplicates may be removed

Approved Bots


founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 41 points 1 day ago* (last edited 1 day ago) (4 children)

Discord’s audio and video end-to-end encryption (“E2EE A/V” or “E2EE” for short)

That last bit is a little concerning. E2EE is widely understood to mean full end-to-end encryption of communications, not selective encryption of just the audio/video bits while passing the text around in the clear. If Discord starts writing "E2EE" for short when describing their partial solution, it is likely to mislead people into thinking their text chats are protected, or thinking that Discord is comparable to real E2EE systems. They aren't, and it isn't.

We want an E2EE A/V protocol that is publicly auditable

Their use of the word "auditable" here is also concerning. What does it mean for a protocol to be auditable? Sure, it's nice that they're publishing their design, but that doesn't allow independent audit of the implementation that actually runs on their servers and (importantly) people's devices. Without publicly auditable code that can be independently, built, run, and used instead of the binaries they provide, there's no practical way to know that it matches the design that was reviewed. And even if code is made available, without a way to verify that the code being run is the code that was inspected, any claim giving the impression that the system was audited is misleading at best.

During the rollout phase, a single non-supporting member being present forces the call to transport-only encryption. The call will automatically “upgrade” to E2EE if that member disconnects.

This sort of thing has historically been ripe for abuse. (See also: downgrade attack.) I hope they are very careful about how they implement it.

The protocol uses Messaging Layer Security (MLS) for group key exchange

Interesting. This makes me wonder if their motivation might be eventual compliance with the European Digital Markets Act. If that is the case, perhaps they also have a plan in the works for protecting text chats?

My early impression, based on what they wrote:

This won't fix Discord's major fundamental flaws. However, if their E2EE A/V design holds up to scrutiny, and if they were to fix their problematic language and provide truly auditable client code, the protection offered for audio & video could at least reduce Discord users' exposure to unwanted harvesting of voice & face samples. A step in the right direction, and a timely one, given that biometric data collection and AI impersonation are on the rise.

[–] [email protected] 4 points 1 day ago* (last edited 1 day ago) (1 children)

The code is very auditable. I have not audited it myself though so I have no idea if it's actually good, but you can absolutely audit it.

EDIT: Just read through the Javascript portion, which seems incredibly anemic. Each file is like 20 to 40 lines of code max. I did notice there is a C++ folder though, I'm guessing that's where the meat and potatoes are.

[–] [email protected] 6 points 1 day ago (1 children)

Is Discord client code available?

[–] [email protected] 2 points 1 day ago

kind of

If you download the client, it's just an electron app, so all of the bits written in js/css/etc are sitting right there in the client itself. People have used this to repackage it with customizations, such as webcord (nicer user experience on Linux) and others.

As for the compiled bits... well, every binary executable is open source if you're brave enough

load more comments (2 replies)