Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

End to end encryption #1035

Closed
davidzhao opened this issue Sep 26, 2022 · 10 comments
Closed

End to end encryption #1035

davidzhao opened this issue Sep 26, 2022 · 10 comments

Comments

@davidzhao
Copy link
Member

This issue tracks support for end to end encryption in LiveKit ecosystem. The design goals are:

  • Consistent support across all LiveKit SDKs
  • Protocol to communicate metadata about Tracks' encryption status
  • Standard set of encryption algorithms (i.e. AEC-GCM)
  • API to support simple shared key encryption
  • Flexible API to allow clients to use more advanced key exchange techniques (i.e. double ratcheting algorithm)

Open issues

  • Firefox does not support RTCRtpScriptTransform. bug
@NOT-HAL9000
Copy link

NOT-HAL9000 commented Oct 12, 2022

Flexible API to allow clients to use more advanced key exchange techniques (i.e. double ratcheting algorithm)

This is exactly what I'm looking to do right now in a react native app. Jitsi has a recent blog about their journey to e2ee with react native and how their flexible client api's works here. They use a FrameEncryptorInterface and FrameDecryptorInterface. FYI, I'm planning on using Matrix's vodozemac olm rust implementation, which is what Jitsi mentioned at the bottom of the article referenced above (they are planning to migrate to it).

I was planning to use Livekit until I realized that an e2ee api wasn't supported yet. In the other issue, you mentioned this was on the roadmap, but since I wasn't able to find it publicly, would you be able to provide me with an estimate as to when you expect to address this as the top priority?

I would much prefer to use this over mediasoup.

@davidzhao
Copy link
Member Author

We are currently working on this! It's one of the highest priority features for the team. There isn't a release date yet.

@NOT-HAL9000
Copy link

@davidzhao Thank you so much! Looking forward to it. The developer experience with Livekit is good enough that I will wait for e2ee support

@davidzhao
Copy link
Member Author

Max from the community has a fork of the JS SDK that implements E2EE: https://github.com/invisv-privacy/client-sdk-js/

@davidzhao
Copy link
Member Author

E2EE has just been merged in JS. It's also available in Flutter. Other platforms will follow shortly!

@NOT-HAL9000
Copy link

E2EE has just been merged in JS. It's also available in Flutter. Other platforms will follow shortly!

Thank you so much! This is really exciting :) Would love to see some information/guides/examples about how to use it in the docs!

@davidzhao
Copy link
Member Author

PRs for native SDKs:

@davidzhao
Copy link
Member Author

An update on this, E2EE is available in all of our SDKs except for react-native. Given the general availability of the feature, I'm closing this issue. Will open a new issue under react-native

@davidzhao
Copy link
Member Author

livekit/client-sdk-react-native#96 for tracking React-Native implementation

@castig
Copy link

castig commented Feb 13, 2024

@davidzhao Hi! Thanks for all the great work here!

  1. Does E2EE for Livekit mean that the video itself is encrypted?

  2. If the React Native SDK isn't available. How do you decide which rooms/users are using E2EE?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants