News for hackers. Stuff that matters.
Re:What end-to-end encryption should look like by kodablah on Wednesday April 22, 2020 @03:15PM (#22949126)
I have a question on the definition of "end-to-end encryption" with regards to groups/rooms. Is it sufficient to have a single key shared by all "ends" for the room, or must each user have its own key? If a single group key is acceptable, must it be rotated as a member goes or comes?

I'm just looking for common definition of the term wrt webrtc groups for fear of misusing it when describing a product. (for the purposes of this clarification, pretend I have key distribution/derivation figured out and I whether I use asymm or symm encryption doesn't apply to the question itself)

Re:What end-to-end encryption should look like by otachack on Wednesday April 22, 2020 @03:32PM (#22949298)
I think it's a hot topic and the definition is divisive. Having 1 "secret" that end users share and use is technically end to end encryption, I'd say, but it's kind of like sending messages to yourself.

It's kind of like setting up one private/public key pair, then sharing both with everyone in your group and writing each other messages with them. If one of your group become a malicious actor, or if a malicious actor manages to steal the pair, it can compromise the group communications. You also can't cryptographically distinguish between each other since you share one identity.

Mix in video conferencing, though, and you really just have to trust what you see/hear from your peers video feed in addition to trusting your shared key pair isn't compromised.

Ideally, each party member has their unique key pair, they share their public keys between the group, then communicate that way. But you got more overhead in starting a Jitsi meet room rather than just a link and a shared password.

Re:What end-to-end encryption should look like by warkdarrior on Wednesday April 22, 2020 @04:20PM (#22949746)
Separate keys means you need to have separately encrypted streams for each pair of participants. This is probably not scalable, and definitely does not play well with multicast or with a video-routing server.
Re:What end-to-end encryption should look like by adrianmonk on Wednesday April 22, 2020 @04:51PM (#22950049)
Is that really true?

I'm not a cryptographer by any means, but it seems like every time you transmit a chunk of video over the network, you could generate a single-use key, encrypt the video with that key, and then encrypt the single-use key with every intended recipient's individual key.

When the recipients get the message, they'd find their encrypted copy of the temporary key in the list, recover the single-use key, then decrypt the video.

That way the only wasted bandwidth is in transmitting keys, which is a lot smaller than video.

The recipients could give the single-use key (that they decrypted with their individual key) to someone who isn't supposed to have it, but that doesn't seem like a problem since they already have the decrypted data and could give that away.

For a small performance improvement, you could re-use the temporary key a few times (for, say, 10 seconds) if the set of intended recipients doesn't change.

Re:What end-to-end encryption should look like by ccktlmazeltov on Wednesday April 22, 2020 @05:21PM (#22950321)
You both are right, what is not scalable is not encrypting messages to all when there are multiple keys, what is not scalable is sharing this shared secret and rotating it when members are added and removed frequently.

This scalability issue is a non-problem imo:

* I don't expect large group VCs, and I don't expect the member set to be updated frequently

* For large group VCs, the threat model is much different and you can do broadcasting (use the same key)

For group chat I would say that confidentiality goes out of the window when you start having a large group, so having one key is just more simple to implement and makes sense.

Re:What end-to-end encryption should look like by hathawsh on Wednesday April 22, 2020 @06:36PM (#22950964)
I like that idea. I think there might be some risk that because all recipients receive the same encrypted text (encrypted by a different key for each recipient), a recipient may be able to discover other recipients' encryption keys. To avoid that, I think I would pad each encrypted text with random data, where each recipient gets different random data.

Then the problem boils down to key management, but Keybase has that figured out IMHO. :-) It would be amazing to see a collaboration between Jitsi and Keybase to build end-to-end encrypted video chat with high quality crypto.

Re:What end-to-end encryption should look like by danenania on Wednesday April 22, 2020 @09:09PM (#22951846)
"I think there might be some risk that because all recipients receive the same encrypted text (encrypted by a different key for each recipient), a recipient may be able to discover other recipients' encryption keys."

If that's possible, it means you're using horribly broken encryption. So it shouldn't be a concern if you're doing things right.

Re:What end-to-end encryption should look like by hathawsh on Wednesday April 22, 2020 @09:41PM (#22952018)
Yeah, on second thought, that would mean TLS is broken: if many people connect to a static web site and receive the same content, they would be at risk of revealing key material. However, they are not at risk of any such thing. Never mind. :-)
Re:What end-to-end encryption should look like by 0xBeefFed on Wednesday April 22, 2020 @05:17PM (#22950290)
I am not sure if this relates, but this past year at Blackhat there was a talk on Messaging Layer Security and they broughtup a concept called TreeKEM, where users share keys in a tree heirachy to reduce the number of shared secrets.

Again, not sure if this is applicable, but the comments made me think of this.

[0] https://www.blackhat.com/us-19/briefings/schedule/index.html... [1] https://i.blackhat.com/USA-19/Wednesday/us-19-Robert-Messagi...

Re:What end-to-end encryption should look like by ccktlmazeltov on Wednesday April 22, 2020 @05:21PM (#22950317)
This still uses a single shared secret for the whole group.
Re:What end-to-end encryption should look like by 0xBeefFed on Wednesday April 22, 2020 @05:31PM (#22950419)
Thank you for verfiying that
Re:What end-to-end encryption should look like by ccktlmazeltov on Wednesday April 22, 2020 @05:46PM (#22950526)
To add to that, the only goal of TreeKEM is to avoid latency/complexity when adding and removing group member frequently/quickly. Which is really not the use-case of most groups (so not sure why they're doing this).
Re:What end-to-end encryption should look like by est31 on Wednesday April 22, 2020 @09:07PM (#22951838)
Probably groups with 6 or so members are alright, but the more people your group has, the more joining/parting there is. And the larger the effort is to distribute a new set of keys. So if you want your method to be scalable (and some telegram rooms have tens of thousands of members!), you need strategies like this.
Re:What end-to-end encryption should look like by ccktlmazeltov on Thursday April 23, 2020 @01:39PM (#22958572)
> some telegram rooms have tens of thousands of members

I'd say that at this point you can either:

* accept that there is no confidentiality anymore. It's just not realistic to have a "secret" group with that many members

* have the person who adds new members forward them the group key, and give up on key rotation

btw, I'm wondering how treeKEM manages malicious members when key rotation happens

Re:What end-to-end encryption should look like by est31 on Thursday April 23, 2020 @02:38PM (#22959403)
> accept that there is no confidentiality anymore. It's just not realistic to have a "secret" group with that many members

You do have a point, especially when it's a group where people are in their free time. However, if they are present for work they are less likely to leak information. Also, encryption should give a default level of privacy to build on.

Re:What end-to-end encryption should look like by ccktlmazeltov on Thursday April 23, 2020 @04:00PM (#22960482)
right, but how much do we want key rotation as a priority when a member leaves? What are the chances they're going to collude with whoever can see the traffic?
Re:What end-to-end encryption should look like by kodablah on Wednesday April 22, 2020 @05:10PM (#22950228)
I think it's fine if you don't re-encode (i.e. need to decode) the audio/video packets in any way. IIRC, you can broadcast RTP stream packets without knowing their contents if you settle on common codecs (e.g. opus and h264). But if you need to embed picture-loss-indicator messages or something, it might not work. I think this is the essence of "SFUs" (selective forwarding units) in WebRTC parlance.
Re:What end-to-end encryption should look like by the8472 on Wednesday April 22, 2020 @04:41PM (#22949967)
Not really. You can have internal per-packet keys which you throw away after your cryptographic setup and then only convey that key in separately in some encrypted form to each member along with a common payload which is amenable to multicast.

I think that's a piece of signal's group chat protocol.

Re:What end-to-end encryption should look like by notduncansmith on Wednesday April 22, 2020 @04:28PM (#22949832)
I think a strong cryptographic communications platform would offer the option of using either multi-party-shared-key or p2p key pairs depending on the use-case. Similar to how Slack has both private and public channels within an org.
Re:What end-to-end encryption should look like by ghostpepper on Wednesday April 22, 2020 @05:29PM (#22950395)
Signal has published some interesting material addressing this question.

https://signal.org/blog/signal-private-group-system/

Re:What end-to-end encryption should look like by crazygringo on Wednesday April 22, 2020 @04:10PM (#22949666)
I think it's very much a gray area.

True E2EE seems like each endpoint would have to have its own key. But the bandwidth realities of group videoconferencing make it entirely infeasible for each participant to be sending a separately encrypted stream to each other participant. So the only realistic solution is for all members to share the same key, which makes everything dependent on the security of the key distribution. But then... is it really E2EE? I'm not sure there's a generally accepted answer here.

Re:What end-to-end encryption should look like by oconnor663 on Wednesday April 22, 2020 @04:30PM (#22949847)
If you already have pairwise E2E encryption working, you can use it to distribute a shared key. It's the first part that's hard.
Re:What end-to-end encryption should look like by hunter2_ on Thursday April 23, 2020 @12:10AM (#22952720)
If your video was encrypted once and multicast to all n other participants, couldn't you do it in such a way that it would be decryptable by n different keys that you handed out, one per participant, without anyone knowing other people's decryption keys? There will be n^2 keys total, but only n streams total.

What would be an attack scenario here that wouldn't exist with the entirely infeasible n^2 streams scenario you mentioned? Nobody would be able to use the keys they possess to make an imposter stream.

Re:What end-to-end encryption should look like by devit on Wednesday April 22, 2020 @04:42PM (#22949984)
What matters is that the server or software provided and anyone not in the group can't obtain plaintext even if they can intercept and modify all traffic on the Internet.

Obviously you need to rotate the session keys when someone leaves, since they must no longer be able to obtain plaintext.

Re:What end-to-end encryption should look like by ccktlmazeltov on Wednesday April 22, 2020 @05:20PM (#22950312)
> Is it sufficient to have a single key shared by all "ends" for the room, or must each user have its own key?

It is enough that a single key is shared, that being said some systems do more because they want to provide additional properties to end-to-end encryption for groups.