Callyou
NL
Download

Zo werkt het

Een telefoonlijn tussen je eigen apparaten.

Dit gebeurt er als de kinderen op je naam tikken, in gewone woorden, en dit kan elk onderdeel onderweg wel en niet zien. Je hebt het niet nodig om Callyou te gebruiken. Het staat hier voor wie nieuwsgierig is.

In het kort

  1. Elk apparaat maakt zijn eigen sleutel. De geheime helft verlaat het apparaat nooit.
  2. Apparaten die je koppelt, vertrouwen elkaars sleutel, en die van niemand anders.
  3. Een gesprek wordt opgezet via een versleutelde verbinding tussen de twee apparaten, en geluid en beeld gaan versleuteld van het ene naar het andere.
  4. Slaapt een telefoon, dan wekt een kleine server hem. Kunnen twee apparaten elkaar niet bereiken, dan geeft een relayserver het gesprek door, nog steeds versleuteld.

01 · Een eigen sleutel

Elk apparaat is zijn eigen telefoonnummer

APPARAATSLEUTELMINO

Als je Callyou voor het eerst opent, maakt het apparaat een sleutel: een lang geheim getal, en een openbare helft die werkt als zijn adres. De geheime helft verlaat het apparaat nooit. Op een telefoon staat hij in de beveiligde sleutelopslag van de telefoon zelf.

Aan de openbare helft herkennen andere apparaten dat dit apparaat echt dit apparaat is. Ook de mino komt eruit voort: de sleutel tekent de mino, dus hetzelfde apparaat toont altijd dezelfde, op elk scherm.

Omdat de sleutel het apparaat nooit verlaat, is er geen account om op in te loggen, en valt er niets van een server te stelen. Een nieuwe of teruggezette telefoon maakt een nieuwe sleutel, en die koppel je opnieuw.

02 · Koppelen

Alleen gekoppelde apparaten kunnen bellen

CODESCANVERZOEKTABLET

Twee apparaten vertrouwen elkaar pas als je ze koppelt. Het ene toont zijn code, als QR-code of als link. Het andere scant de code of opent de link, en stuurt een verzoek. Het eerste toont dat verzoek met de mino van het apparaat dat het stuurde, en jij controleert of die overeenkomt met de mino op het andere scherm voordat je accepteert.

Vanaf dan bewaart elk apparaat de openbare sleutel van het andere. Komt er een gesprek binnen, dan vergelijkt het apparaat de sleutel van de beller met de apparaten die het heeft gekoppeld, en weigert het elk ander gesprek nog voordat het overgaat. Er is geen telefoonnummer om te raden en geen gids om iemand in op te zoeken.

03 · Elkaar vinden

Een apparaat bellen met zijn sleutel

RELAY

Thuisnetwerken verstoppen apparaten achter hun router, dus twee apparaten kunnen elkaar niet zomaar vinden. Callyou gebruikt iroh, een opensourcebibliotheek voor netwerken, om een apparaat met zijn sleutel te bellen. Elk apparaat houdt contact met een relayserver, zodat het andere het kan bereiken. Als je belt, proberen de twee apparaten rechtstreeks verbinding te maken, dwars door hun routers heen, en blijven ze de relayserver gebruiken als dat niet lukt.

In beide gevallen is de verbinding versleuteld, en bewijst elke kant dat hij zijn sleutel heeft, zodat niemand zich kan voordoen als een van je apparaten. Die relayservers, en het adresboek dat ernaar verwijst, zijn nu de openbare van n0, de makers van iroh. Zij zien welke sleutels online zijn en met elkaar verbinden, en de internetadressen van de apparaten, maar niet wat er tussen hen heen en weer gaat.

04 · Het gesprek

Geluid en beeld, end-to-end versleuteld

Via die verbinding spreken de twee apparaten het gesprek af: wat elk kan versturen en ontvangen, en hoe ze elkaar bereiken. Daarna gaan geluid en beeld via WebRTC, dezelfde techniek die browsers voor videogesprekken gebruiken.

Het gesprek wordt op het ene apparaat versleuteld en op het andere geopend. De twee apparaten controleren elkaars versleutelingssleutels via hun eigen versleutelde verbinding, zodat geen server ertussen kan meeluisteren.

RELAY

Sommige netwerken verhinderen dat twee apparaten elkaar bereiken. Het gesprek loopt dan via de relayserver van Callyou, een TURN-server in Nederland. Het blijft end-to-end versleuteld, zodat de relayserver het niet kan zien of horen. Die ziet de internetadressen van beide apparaten en hoeveel data er doorheen gaat.

05 · Een telefoon wekken

Hoe een slapende telefoon toch overgaat

PUSHzz

Een slapende telefoon hoort geen gesprek binnenkomen, en de hele dag een verbinding openhouden zou zijn batterij leegtrekken. Daarom vraagt het bellende apparaat de pushserver van Callyou om hem te wekken. De pushserver stuurt een klein wekbericht via Apple op een iPhone, via Google of je eigen UnifiedPush-app op Android, of via de pushdienst van je browser. De telefoon wordt wakker, maakt verbinding en gaat over.

De pushserver bewaart per apparaat één ding: zijn openbare sleutel en zijn pushadres. Een naam leert hij nooit. Een computer blijft aan om te kunnen overgaan, dus die wordt nooit gewekt.

06 · Wat elke server ziet

Wie wat weet

Geen enkele server ziet of hoort ooit een gesprek, en geen enkele leert een naam. Dit is wat elk wel ziet.

ServerWat hij ziet
Iroh-relayservers, van n0Welke apparaatsleutels online zijn en met elkaar verbinden, wanneer, en hun internetadressen.
De pushserver van CallyouDe sleutel en het pushadres van elk apparaat. Vraagt een apparaat hem een ander te wekken, dan ziet hij beide sleutels en het internetadres van het vragende apparaat. Van het gesprek bewaart hij niets.
De relayserver van CallyouDe internetadressen van apparaten in een gesprek, wanneer, en hoeveel data er doorheen gaat. Apparaten melden zich bij de meeste gesprekken bij hem, ook als het gesprek uiteindelijk rechtstreeks loopt.
Apple, Google of je push-appDat er een wekbericht naar een apparaat gaat. Op een iPhone bevat het wekbericht van Apple de sleutel van het bellende apparaat. Op Android en in een browser is het wekbericht versleuteld, zodat alleen de telefoon het kan lezen.

Op onze privacypagina staat hoe lang elk het bewaart.

Geloof ons niet op ons woord

Alles op deze pagina is open source: de apps, de engine die ze delen en de software op onze servers. Lees het zelf, of vraag iemand die je vertrouwt om het te doen.

Bekijk de broncode