A collaborative whiteboard — integrating Excalidraw into Sopher

Stefan Sechelmann
Becoming sopher
Published in
2 min readApr 1, 2021

--

Sopher has been part of the UpdateDeutschland 48h Sprint Hackathon initiative which took place from 19th to 21st of March 2021. It was clear quickly that there was one particular challenge posed by the City of Freiburg that had the potential for a match.

Wie können wir kollaboratives Arbeiten in Zeiten von Home Office und Home Schooling für städtische Mitarbeiter:innen, Schüler:innen und andere Akteuren:innen ermöglichen, ohne gegen den Datenschutz zu verstoßen?

How can we enable collaborative work in times of home office and home schooling for urban employees, students and other stakeholders without violating data protection?

During the Hackathon we met in video conferences organized by the UpdateDeutschland team and learned that the City of Freiburg had the concrete goal of implementing a collaborative whiteboard for their employees and possibly for other employees of the public sector.

As a result we produced a short video that showcases our activity during the three days:

At the same time during the night from Saturday to Sunday we integrated an existing open source SaSS whiteboard into Sopher.

Integrating Excalidraw into Sopher.

The open source collaborative whiteboard Excalidraw supports end-to-end encryption (E2EE), see E2EE in Excalidraw. Combining the communication features of Sopher with the collaborative features of Excalidraw seemed a perfect match for the challenge of the Hackathon. We integrated the SaSS deployment of Excalidraw into Sopher using simple key derivation in each channel. Here we derive a symmetric key from the channel's identity key like so

k_group = hkdf(tbp(identity), 'whiteboard')
k_contact = hkdf(ecdh(id_1, id_2), 'whiteboard')

In a group the key depends on the group identity key via its thumbprint and in the case of a one-to-one whiteboard we derive a ECDH shared secret first and then derive the whiteboard secret from that.

Further steps

In order to be useful we need to take into account that employees use Single-Sign-On mechanisms and already have accounts at their respective organization. To not overuse the resources of the Excalidraw team we plan to host our own instance of Excalidraw infrastructure and link to that in Sopher.

--

--