Lad os blive tekniske.
Alt det, forsiden siger, skrevet ud som det, det er bygget af. Den rigtige database, hvordan en kontakt faktisk bliver til, og hvem andre der rører ved et opkald.
Du har ikke brug for denne side for at bruge Rilo, og intet her modsiger den enklere version. Samme produkt, bare beskrevet præcist.
Hele databasen
Alt, hvad vores server ved om din familie.
Ikke et resumé. Det her er de sytten tabeller, serveren har, med de kolonner de har. Fire handler om din familie. Hvem de er, hvem der må handle på et barns vegne, de telefoner de taler fra, og hvor de kan ringes op. Fire holder noget for en telefon, der var slukket, og alle fire sletter sig selv. Tre handler om, hvem der må handle på et barns vegne, og hvilken telefon der ikke længere er betroet. To er underskrevne spor af en afslutning, en kontakt der blev klippet over, eller en person der er væk. De bliver gemt, så en telefon, der var offline, kan tjekke dem i stedet for at tro på os. Én er brugte engangstal, ryddet op efterhånden som de udløber. Én er abonnementet, og der står intet i den, som nævner nogen. Én er en anmeldelse, som en voksen har sendt os, og det er den eneste tabel her, der findes for at få noget til at ske. Den sidste handler slet ikke om din familie.
- iden hash af den offentlige nøgle, ikke et navn
- public_keytelefonens nøgle, som er kontoen
- typevoksen eller barn
- type_certunderskriften, der beviser det. En barnekonto er underskrevet af en forælder, så der er ikke noget flag at vende
- created_at
- last_activesidste gang en af dine telefoner sagde hej
- dormant_warned_attom
- consent_sealeddin e-mail fra oprettelsen, forseglet til en nøgle, der ligger på papir hos grundlæggeren. Ingen server kan læse den
- uncovered_sincetom, medmindre dit abonnement ikke længere dækker dette barn — så dagen, hvor vi bemærkede det, så måneden før noget stopper begynder derfra
- keyhvad der bliver husket
- valueog hvad der står
- account_id
- guardian_keyen nøgle, der må handle for dette barn
- added_at
- removed_at
- account_id
- device_keyén telefons egen nøgle. En person kan tale fra mere end én
- agreement_keyden nøgle, en besked bliver forseglet til, så kun den telefon kan åbne den
- certunderskriften, der lukkede denne telefon ind, gemt ord for ord, så din telefon kan tjekke den i stedet for at tro på os
- kinden telefon, eller det printede gendannelsesark
- added_at
- removed_at
- account_id
- device_keyhvilken af dine telefoner denne ringer på
- platformapns eller fcm
- tokenet betydningsløst håndtag fra Apple eller Google
- updated_at
- nonce
- expires_at
- edge_hashen hash af parret, ikke af de to personer
- denied_at
- expires_at
- edge_hashen hash af parret, ikke af de to personer
- grant_recordden tilladelse, der bliver afgjort, og de underskrifter, der er samlet indtil nu
- waiting_keyhvis underskrift der stadig mangler
- requested_byden telefon, der spurgte, så én telefon ikke kan oversvømme en familie med spørgsmål
- originscannet ansigt til ansigt, eller en forælder, der handler for sit barn
- delivered_tohvilke telefoner der allerede har den
- declaredden spørgende sides eget navn, forseglet så kun den familie, de scannede, kan læse det
- created_at
- expires_at
- id
- recipient_iddenne skal stå i klartekst, ellers kan beskeden ikke sendes videre
- recipient_devicehvilken af deres telefoner æsken er forseglet til. Hver telefon har sin egen nøgle, så hver får sin egen æske
- sender_idså telefonen ved, hvis nøgle der åbner den
- sender_devicehvilken af deres telefoner der forseglede den, så den rigtige kopi finder den rigtige lås
- edge_hashparret, hashet, så dette ikke kan læses som et kort over, hvem der taler med hvem
- sealedkrypteret tekst. Der er ingen tekstkolonne, og den kommer der aldrig
- sent_at
- expires_at
- edge_hashparret, hashet
- revoked_at
- recorddet underskrevne spor, så en telefon, der var offline, selv kan bekræfte, at kontakten blev klippet over, i stedet for at tage vores ord for det
- id
- account_idhvis liste over telefoner og voksne der ændrer sig
- kindkommer til, eller bliver fjernet
- subject_keyden telefon eller den voksne, det handler om
- subject_kindhvilken af de to
- agreement_keyden anden nøgle, en telefon har brug for, tom for papir
- recordunderskriften selv, gemt ord for ord, så en telefon kan tjekke den i stedet for at tro på os
- signed_byhvilken nøgle der underskrev den
- by_authorityom et gendannelsesark underskrev den, som er det, der får den til at vente
- issued_atdet øjeblik, underskriveren påstår, aldrig vores ur
- reasontom, medmindre underskriveren skrev en
- proposed_at
- effective_athvornår den bliver sand, to nætter efter den blev foreslået
- contested_at
- contested_byhvem der protesterede, og den underskrift de protesterede med
- contest_record
- resolved_at
- resolutiongennemført eller annulleret, når den er afgjort
- change_idhvilken ventende ændring
- voter_keyhvilken voksen
- decisionlad den gå igennem, eller stop den
- recordderes underskrift
- at
- account_idhvis telefon det var
- device_keyden nøgle, der blev stjålet
- revoked_at
- recorddet underskrevne bevis, så en telefon kan tjekke det uden at spørge os
- account_idden konto, der er væk
- retired_at
- recorddet underskrevne bevis, lavet med kontoens egen nøgle, før nøglen blev ødelagt
- account_id
- storeapple, google eller på huset
- store_refet betydningsløst håndtag fra butikken, det eneste vi kan spørge den om noget med senere
- store_ref_hashet fingeraftryk af håndtaget ovenfor. Det er det, der forhindrer én kvittering i at dække to konti
- environment
- stateactive, grace, lapsed, lapsed_trial eller disabled
- seatshvor mange børn det dækker. Et tal, aldrig deres navne
- expires_at
- acts_at
- updated_at
- device_keyden telefon, der ikke har fået det at vide endnu
- change_idhvilken ændring det handler om
- whatforeslået, anfægtet eller afgjort
- account_idhvis liste over telefoner der ændrede sig. Når en voksen får noget at vide om sit barn, er det barnet her
- subject_keyden telefon, der blev tilføjet eller fjernet
- effective_at
- created_at
- expires_at
- delivered_athvornår vi fik det sagt, eller tom, fordi vi ikke har
- id
- about_keyhvem anmeldelsen handler om. Læsbart, så nogen kan gøre noget ved det
- reasonhvilke af seks ting der skete, sådan som den voksne, der anmelder, valgte det
- csa
- sealedhvad der blev skrevet, forseglet på den telefon, der sendte det, med en nøgle, der ligger på papir hos grundlæggeren. Ingen server kan læse det
- sealed_digestet fingeraftryk af den forseglede del, så det, der bliver åbnet senere, påviseligt er det, der kom ind
- received_at
- edge_snapshothvem der havde fået lov at nå hvem, og hvilken voksen der gav lov, som det stod i det øjeblik. Denne kan ikke stykkes sammen bagefter
- reporter_keyhvem der sendte den, eller slet ingenting, når den blev sendt uden navn
- source
- sealed_key
- receiptdet kendetegn, afsenderen beholder. Det er den eneste måde, vi kan svare nogen om en anmeldelse, vi ikke kan åbne
- acknowledged_at
- decided_at
- actioned_at
- escalated_at
- decided_by
- outcome
Kolonner, der ikke findes
- navn
- alder
- foto
- beskedtekst
- samtaleindhold
- opkaldshistorik
- kontaktliste
- placering
- telefonmodel
Din e-mail bliver tjekket én gang, når du opretter dig, og forseglet i samme åndedrag, til en nøgle, der ligger på papir hos grundlæggeren og aldrig har været i nærheden af en server. Loven beder os om at kunne bevise, at en voksen sagde ja. Vi kunne ikke selv læse den igen. Navne og billeder bliver sat på hver telefon og givet direkte til den anden telefon. De kommer aldrig frem til os, og det er også derfor, du kan kalde morfar “Bedste”, uden at vi nogensinde får det at vide. Vi kunne ikke vise noget af det til nogen, hvis vi ville, og vi kunne ikke tvinges til det.
Dette afsnit er genereret ud fra serverens eget skema, i accounts.ts og roster-changes.ts, de to filer, der laver databasen. Hvis de nogensinde er uenige, har filerne ret, og denne side er fejlen.
Kontakter
Sådan bliver en kontakt faktisk til.
Nogens telefon laver en engangsinvitation. Den anden telefon læser den, scannet fra en skærm i samme rum eller åbnet fra et link, som den voksne sendte. At læse den starter introduktionen og noterer i samme øjeblik den anden telefons offentlige nøgle, så begge telefoner fra da af ved præcis, hvilken nøgle der hører til hvem. Det er den del, der gør det umuligt at sætte sig ind i midten af et senere opkald, også for os. Intet af det bliver forbundet, før en voksen på den anden side har sagt ja.
Stadig ikke en kontakt. En voksen med ansvar skal underskrive kontakten på sin egen telefon, bag en biometrisk kontrol lavet i netop det øjeblik. Det, de skriver under på, er det hele. Hvem, med hvem, og i hvilken retning. Deres underskrift er det, serveren tjekker, før den vil sende noget videre. Serveren har ingen nøgle, der kan underskrive, så den kan ikke lave en kontakt, og det kan den, der stjæler databasen, heller ikke.
Når begge telefoner har den færdige kontakt, bliver rækken slettet, og kontakten findes kun på de to enheder. Klipper man den over senere, bliver der skrevet en underskrevet tilbagekaldelse, og det er det ene spor, der bliver gemt uden tidsgrænse. Den ligger som en hash af parret, så den siger, at en kontakt sluttede, uden at sige hvem der kendte hvem.
Hvem andre er involveret
Tre firmaer rører ved et opkald. Ingen af dem kan høre det.
Seks andre firmaer rører ved tjenesten, og de står alle i privatlivspolitikken. Tre af dem er med til at få et opkald til at ringe, og her står, hvad hver af de tre kan og ikke kan se.
-
Apple & Google
Push-beskeder, så et opkald ringer på en telefon, der sover. Uundgåeligt på begge platforme. De bærer en betydningsløs identifikator og ellers ingenting. Intet navn, intet nummer, intet indhold.
-
Cloudflare
Cirka hvert sjette opkald kan ikke forbinde de to telefoner direkte, på hotel-Wi-Fi eller nogle mobilnet, og bliver sendt gennem et relæ. Relæet sender krypterede pakker videre, som det ikke kan åbne, men det ser godt nok, at to anonyme id’er blev forbundet, hvornår, hvor længe, og fra hvilke adresser. Det er metadata, vi ikke gemmer, som ligger hos nogen andre.
-
Os
Tabellen ovenfor. Én lille server i Holland, der introducerer to telefoner for hinanden og så går af vejen.