In Google Docs of Office 365 kun je met meerdere personen tegelijk aan een document werken, maar de server heeft toegang tot de inhoud van het document. Dat is nodig voor de werking, zou je denken, maar niets is minder waar: met Cryptpad kan het ook zonder dat de server kan meekijken.

Koen Vervloesem

CryptPad is een opensource realtime collaborative editor in de webbrowser, waarbij zelfs de server waarop de software geïnstalleerd is je data niet kan inzien: alle encryptie gebeurt client-side in de webbrowsers van de gebruikers.

Je kunt gratis gebruikmaken van de server op cryptpad.fr om de software te evalueren. Een gratis account aanmaken volstaat; je hoeft zelfs geen e-mailadres op te geven. De beschikbare opslag is dan wel beperkt tot 50 MB (tijdelijk verhoogd tot 1 GB om thuiswerken vanwege COVID-19 te ondersteunen). Vanaf € 5 excl. btw per maand krijg je 5 GB opslagruimte of meer. Daarmee steun je dan de ontwikkeling van het project, die gebeurt door het Franse bedrijf XWiki SAS. Uiteraard kun je ook je eigen CryptPad-server opzetten. De licentie van de code is AGPLv3.

Versleutelde pads

Cryptpad gebruikt een wat vreemde terminologie: ze spreken over pads. Die term komt uit de wereld van Etherpad, een andere opensource realtime collaborative editor (maar dan zonder end-to-end encryptie). Een pad is een document dat je in je webbrowser bewerkt. Het verschil met Etherpad is dat je pads en wijzigingen aan je pads versleuteld worden voor ze naar de server verstuurd worden, zodat de server helemaal niet kan zien wat je typt.

Een ander verschil is dat Cryptpad zelfs je gebruikersnaam en (gehasht) wachtwoord niet kent. In plaats daarvan wordt in je webbrowser op basis van je gebruikersnaam en wachtwoord met het algoritme scrypt een keyring gegenereerd. De geheime sleutel blijft in je webbrowser, en de server krijgt alleen je publieke sleutel te zien, iets als YIBzjPr3beuGgfHNglGfo3xq-dquxsj4Bst-ze7mL9A.

Door die sleutel kan de server accounts onderscheiden, wat nodig is om quota te handhaven. Weetje: er kunnen perfect meerdere gebruikers met dezelfde gebruikersnaam zijn. Zolang ze niet ook hetzelfde wachtwoord gebruiken (wat hen dezelfde publieke sleutel zou opleveren), is dat geen probleem. Merk op: als je je gebruikersnaam en wachtwoord vergeet en uitgelogd bent in je webbrowser, raak je niet meer aan je bestanden!

Als je je gebruikersnaam en wachtwoord vergeet, ben je je data onherroepelijk kwijt!

Aan de slag

Zelfs als je CryptPad op je eigen server wilt installeren, is het aan te raden om je eerst eens te registreren om de software te evalueren. Na een opvallende waarschuwing dat je je gebruikersnaam en wachtwoord goed moet onthouden, krijg je toegang tot je CryptDrive.

Al de pads die je op CryptPad aanmaakt of die met je worden gedeeld, komen automatisch in je CryptDrive terecht. Ze komen standaard in de hoofdmap, maar je kunt ze zelf organiseren in mappen. De link naar een pad blijft overigens hetzelfde als je de pad verplaatst. Door een pad naar de prullenbak te slepen, verwijder je die.

Je kunt eenvoudig documenten aanmaken met de wysiwyg-editor CKEditor (https://ckeditor.com). Door het document What is CryptPad? te openen dat standaard in de documentenmap klaarstaat, krijg je de editor te zien en kun je deze al uitproberen.

CryptPad bevat de wysiwyg-editor CKEditor om teksten in je webbrowser te bewerken.

Nieuwe pad

Klik je op New pad in je documentenmap of op het knopje + New bovenaan, dan kun je zelf een nieuwe pad aanmaken. Daar valt meer onder dan je op het eerste gezicht zou denken. Je krijgt een tiental mogelijkheden, van het aanmaken van een nieuwe (al dan niet gedeelde) map en het uploaden van bestanden of mappen tot het aanmaken van een “rich text”, een spreadsheet, code, presentatie, poll, een Kanban-bord of een whiteboard. Je kunt bij de aanmaak van een pad ook nog een geldigheidsduur en wachtwoord toevoegen.

De spreadsheets maken gebruik van OnlyOffice, dus hebben vrij veel mogelijkheden. Het Kanban-bord is basic, maar best bruikbaar. Je voegt nieuwe kaarten en borden toe met de plusknopjes en versleept eenvoudig items. Het whiteboard is dan weer een eenvoudig tekenprogramma om schetsen te maken. Meer dan wat kribbels moet je er niet van verwachten.

Je kunt ook bestaande bestanden en zelfs hele mappen uploaden en ze dan met anderen delen. Maar die kun je niet samen bewerken: de anderen kunnen ze alleen maar downloaden omdat het geen native Cryptpad-bestanden zijn. Er is ook een zoekfunctie om je pads te doorzoeken.

Markdown

Een code pad is vooral interessant omdat dit ook Markdown ondersteunt, een eenvoudige opmaaktaal voor tekst. Typ links je Markdown-code, en rechts krijg je realtime de rendering in je webbrowser te zien. Ook als je een presentatie aanmaakt, doe je dat met Markdown-code. De slides scheid je met de regel —.

Er is ook een poll-app om gebeurtenissen met meerdere deelnemers te plannen. De beschrijving maak je op in Markdown-syntax. Je kunt in alle Markdown-code ook eenvoudig media-elementen zoals afbeeldingen embedden uit je CryptDrive. Klik daarvoor op het afbeeldingsicoontje bovenaan rechts en selecteer een afbeelding uit je CryptDrive die je daar eerder geüpload hebt. CryptPad plaatst dan in je pad een tag zoals:

<media-tag src=”https://files.cryptpad.fr/blob/cb/cb56d2a2bb0201f4330488dbf1f0eee71fed01247105a446″ data-crypto-key=”cryptpad:rtC5OW3GxKYBRRWRycF3yupEuJJ+rvY3fgJxgycHOkw=”></media-tag>

Met de code-editor bewerk je eenvoudig Markdown-bestanden in CryptPad.

Bestanden delen

Als je toegang tot een pad wilt delen met iemand, hoef je gewoon maar de url met die persoon te delen. Je kunt ook een read-only link delen, zodat anderen die deze url bezoeken het document alleen kunnen bekijken; jij kunt nog altijd het document bewerken. Klik daarvoor op het delen-icoontje bovenaan de editor van het document en vink in het tabblad Link de optie View aan bij Access rights. Deze url deel je dan met anderen.

CryptPad plaatst de sleutel die nodig is voor toegang tot een pad in de ‘fragment identifier’ van een url (het deel na het hekje #). Het is weinig bekend dat zo’n fragment identifier niet naar een webserver gestuurd wordt: het is je webbrowser die deze evalueert. CryptPad maakt hier handig gebruik van: de server krijgt in de url alleen te zien tot welke pad je toegang vraagt, en je webbrowser gebruikt de fragment identifier om de versleutelde data hij van de webserver krijgt te ontcijferen. Het is uiteraard wel belangrijk dat je deze links op een veilige manier deelt met anderen, liefst met een end-to-end versleutelde berichtendienst zoals Signal of via versleutelde e-mail.

Als anderen de url openen, krijg je ze links bij Users te zien. Je kunt ook met hen chatten door op het icoontje van de tekstballonnen boven de gebruikerslijst te klikken. Let op: de chatgeschiedenis blijft opgeslagen en is ook voor toekomstige deelnemers zichtbaar als je de pad met extra personen deelt.