Social Home huishoud-OS · gefedereerd · open

Privacymodel

Wat Social Home bewaart, wat reist, en wat niemand — ook wij niet — ooit kan zien.

Social Home is gebouwd op een simpele regel: het huishouden bewaart alles. Er is geen cloudaccount, geen analytics, geen logger op afstand, geen groeiteam. De website die je nu leest is statische HTML, geserveerd door GitHub Pages — geen analytics, geen cookies, geen verzoeken naar derden; zelfs de lettertypen komen van dezelfde plek.

Deze pagina somt elk stukje data op dat Social Home aanraakt en precies waar het heen gaat. De pagina Beveiligingsmodel legt uit hoe het verzegelen werkt en wat het niet kan; de woorden die hier worden gebruikt staan in Woorden die we gebruiken.

Wat waar woont

DataThuis opgeslagen?Verlaat het je server?
Berichten, posts, foto’sjaalleen naar huishoudens in de space, verzegeld
Privéberichtenjaverzegeld naar de server van het andere huishouden
Boodschappenlijstjaalleen tussen de apparaten van je huishouden
Agenda-afsprakenjaalleen naar huishoudens die de agenda delen
Spraaktranscriptiesja (de tekst)net als posts
Avatars + weergavenamenjaja — naar gekoppelde huishoudens (zo herkennen ze je)
Publieke sleutel (identiteit)jaja — dat is letterlijk het hele punt van koppelen
Externe URLjaja — naar gekoppelde huishoudens wanneer die verandert
Je Home Assistant-account (e-mail, wachtwoord)nooit gelezennooit
Gps / locatiegeschiedenisnooit standaardalleen de huidige zone, alleen als je ervoor kiest; kaartspelden afgerond op ~11 m
Logsblijven op je servernooit

Wat de wereldwijde relay ziet

De GFS (Global Federation Server) — de wereldwijde federatieserver, de relay die huishoudens helpt elkaar te vinden — toont wereldwijde spaces en brengt hun posts, als verzegelde enveloppen, naar huishoudens waarmee je niet gekoppeld bent. Wat hij over je te weten komt, hangt af van hoe de space is ingesteld (zie GFS in de woordenlijst):

  • Vertrouwd (de standaard): alleen dat iemand in de space plaatste, en wanneer. Leden posten anoniem.
  • Strikt (opt-in per space): hetzelfde, en hij kan niet eens zien welke huishoudens mogen schrijven.
  • Een privé space met de GFS-schakelaar aan (standaard uit): welke huishoudens bij het kanaal horen — nooit de naam, het id, de sleutel of de inhoud van de space.

Alleen de GFS’en die de eigenaar van de space heeft gekozen, doen mee. Een GFS waarmee je huishouden nooit verbonden was, maar die de eigenaar heeft gekozen, ziet je internetadres als je daar post — nooit welk huishouden je bent.

Hij ziet nooit:

  • De inhoud van welk bericht, welke post, agenda-afspraak, foto of spraakmemo dan ook.
  • Iets uit een privé space met de GFS-schakelaar uit, of uit een huishoudspace.
  • De boodschappenlijst, agenda, aanwezigheid of logs van je huishouden.

Hij ziet wel je IP-adres, de tijdstippen en de ruwe grootte van elke envelop, en welke huishoudens de posts van een space ontvangen.

Er komt helemaal geen relay aan te pas als je geen wereldwijde spaces hebt, geen openbare momenten, geen openbare highlight-links en geen privé space met de GFS-schakelaar aan. Je huishouden praat dan alleen met huishoudens waarmee je gekoppeld bent, rechtstreeks.

Onder de motorkap

Alleen routeringsmetadata: space_id, event_type, grootteklasse (1 / 4 / 16 / 64 / 128 KiB, plus 191 KiB voor envelop-relay), tijdstippen, abonneeset, bron-IP. Een post die door het host-huishouden wordt doorgegeven is identiteitsvrij {space_id, event_type, payload} op een sessie zonder cookies; een lid dat voor zichzelf publiceert, ondertekent in beide modi met een gedeelde schrijfsleutel per epoche. Een privé space met private_gfs aan gebruikt een ondoorzichtig 128-bits kanaal-id op de GFS’en die de eigenaar kiest. Offline ontvangers staan 24 h in de wachtrij (2000 enveloppen / 64 MiB per ontvanger); daarbuiten wordt geen inhoud opgeslagen.

Versleuteling

Elk bericht dat je server verlaat is versleuteld — altijd, zonder schakelaar die je kunt vergeten. Elke post wordt in een envelop verzegeld en ondertekend, zodat alleen de huishoudens in de space hem kunnen openen en zelfs een kwaadwillende relay geen woord kan lezen. Privéberichten worden verzegeld van jouw huis tot het hunne. Er is geen schakelaar „versleuteld / niet versleuteld” en geen terugval naar platte tekst: als een space niet kan verzegelen, verstuurt hij niet.

De regel is simpel: niets verlaat het huis onverzegeld, en niets wat een relay aanraakt is ooit leesbaar.

Onder de motorkap

AES-256-GCM-enveloppen, Ed25519-handtekeningen. De enige leesbare velden op een envelop zijn event_type, from_instance, to_instance, space_id en epoch. Alle details op de pagina Beveiligingsmodel.

Dingen die Social Home niet heeft

  • Een account in een Social Home-cloud (die is er niet).
  • Een kopie van je gegevens ergens anders. Heb je de add-on geïnstalleerd, dan maakt Social Home deel uit van je normale Home Assistant-back-up; op een losstaande installatie download je een Recovery Kit en bewaar je die op een veilige plek.
  • Telemetrie, analytics, crashrapportage of A/B-testen.
  • Een advertentieplek.
  • Een groeiteam dat je avond wil verzilveren.
Onder de motorkap

Sleutels in rust zijn ingepakt onder een KEK. De Recovery Kit is een .shrk-bestand, verzegeld met scrypt + AES-256-GCM.

Dingen waar jij over gaat

  • Wie er in een space zit (Instellingen → Spaces — nodig leden uit of verwijder ze; elke wijziging in het ledenbestand geeft de space een nieuwe sleutel, dus wie verwijderd is kan niets lezen wat daarna is geplaatst).
  • Aanwezigheid delen (Instellingen → Privacy — opt-in, per lid van het huishouden, op elk moment uit te zetten).
  • Koppelen (Instellingen → Verbindingen — verwijder een huishouden en zijn kopie van je berichten wordt niet langer vertrouwd).
  • Welke relay, als er al een is (Instellingen → Verbindingen — de GFS is optioneel en jij kiest welke).
  • Back-ups — jouw verantwoordelijkheid, zoals al het andere in je huis.

Problemen melden

Beveiligingsproblemen horen thuis in social-home-io/socialhome op GitHub. Meld ze liever privé via de link naar GitHub Security Advisories dan in een openbaar issue.