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

Support end-to-end encryption #35

Open
iblech opened this issue Apr 22, 2020 · 3 comments
Open

Support end-to-end encryption #35

iblech opened this issue Apr 22, 2020 · 3 comments

Comments

@iblech
Copy link
Contributor

iblech commented Apr 22, 2020

Thank you very much for WBO. Having compared many online collaborative whiteboard solutions, this is by far my favourite and a key ingredient to how I will conduct my university teaching this term. I'm currently packaging it for NixOS.

It would be awesome if WBO could support end-to-end encryption, in the simplest way possible: The encryption key has to be given in the fragment part of the URL, such as in http://localhost:8080/boards/secret-doodle#OVrijCCAQUJJQ22LEIYvyQ.

Perhaps I might work on that.

@lovasoa
Copy link
Owner

lovasoa commented Apr 22, 2020

Hello and thank you for the kind words :)
Currently, the server does read messages, and this allows it to maintain long-lived boards such as boards/anonymous. If the messages were completely encrypted (and thus not readable by the server), then the server would have to keep the list of every single message that was sent and send all of them back to clients when they connect. This wouldn't be a problem for small boards, but would quickly become unmanageable for boards that have a lot of text (where one message is sent by keystroke), or where objects are deleted and recreated often. The server also validates that messages are well-formed, and you would have to remove that validation, and let it store potentially invalid messages.

This leaves you with two possibilities if you want to implement this feature :

  1. Only encrypt the messages partially. You could keep only the information about the message type and object id, and not the position/size/tool used.
  2. Encrypt the message completely, and accept that encrypted boards will take longer to load, and will see their old objects disappear more quickly than in clear boards.

Anyway, a PR is welcome !

@pozzo-balbi
Copy link

pozzo-balbi commented Nov 15, 2020

If you are so concerned about privacy, why don't you just host it yourself.

  1. Get a VPS, setup your own DDNS service with your own (free) domain name or use a free/paid DDNS service (just in case you don't have a static IP like most users)
  2. Enable port forwarding on your home router and connect to DDNS service to update your IP regularly
  3. Setup whitebophir on your private computer and get free let's encrypt ssl certificates for it
  4. Share your private url and enjoy!

End-to-end encryption is not needed, in my opinion.

@iblech
Copy link
Contributor Author

iblech commented Jan 25, 2021

Sorry that I forgot this issue for so long. @pozzo-balbi, indeed, thank you for your suggestion, in fact I'm doing that exactly as you describe. The reason I'm still interested in end-to-end encryption is because I want my friends, colleagues and students not need to trust me to not look at their boards. (However, right now this issue has a very low priority in my life. Will most likely not get around to implementing it in the next couple months.)

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

No branches or pull requests

3 participants