Files
MijnBesluit/docs/Volgende-stappen.md
T
2026-09-27 14:21:31 +00:00

73 lines
3.1 KiB
Markdown

# Volgende stappen
Wat er staat, en wat er nog moet. Eerlijk overzicht.
## Werkt en is gecontroleerd
- Domein en regels: eigendom van profielen, overlijdensprocedure, vrijgave van berichten.
- Versleuteling: AES-256-GCM in drie lagen, wachtwoordhashing, tokens.
- De handelingen: registreren, inloggen, familie, uitnodigen, claimen, kluis, berichten,
nalatenschap.
- Het socketprotocol: framing, server, client, sessies, dispatcher.
- De website in Blazor: inloggen, registreren, uitnodiging aannemen, overzicht, familie, kluis,
momenten, nalatenschap.
- Databaseschema voor MariaDB.
- De SocketServer als 64-bits Windows-service, met een beheerschermpje voor Install/UnInstall,
een eigen thread per verbinding en elk verzoek op zijn eigen thread.
- Inloggen en registreren met een code per e-mail, zonder wachtwoorden.
- De app-kant: `MijnBesluit.Client` (aanroepen over de socket) en `MijnBesluit.AppUi` (de
schermen). Zie `docs/Android-app.md`.
- Zesenvijftig controles in `MijnBesluit.SelfCheck`, alle groen.
## Nog te bouwen
### 1. De Android-app afmaken
De drie projecten staan er: `MijnBesluit.Client`, `MijnBesluit.AppUi` en de schil
`MijnBesluit.App`. De eerste twee bouwen en zijn getest; de schil is alleen op een toestel te
beproeven. Hoe je hem draait staat in `docs/Android-app.md`.
De serverkant staat: de SocketServer draait op mijnbesluit.nl, poort 5200 is open, en de
verbinding loopt over TLS 1.3 met het certificaat van het domein. Database en e-mail werken er
ook overheen.
Wat nu nog moet: de app op een echt toestel beproeven (`tools\Apk-maken.ps1 -Debug`), en daarna: opnieuw verbinden als het toestel uit de slaapstand komt, biometrisch ontgrendelen
voordat de kluis opengaat, en push-meldingen (Firebase) voor een bericht dat bezorgd wordt
terwijl de app dicht is.
### 2. Bijlagen in de schermen
`VaultService.StoreFileAsync` werkt, maar er is nog geen scherm om een document, foto of video te
uploaden en terug te bekijken. Denk aan een maximumgrootte en aan streamen in plaats van het hele
bestand in het geheugen laden.
### 3. Videoberichten
`MessageKind.Video` bestaat in het model. Opnemen in de app, versleuteld opslaan als
`VaultFile`, en tonen bij het lezen van het bericht.
### 5. Twee-factor-authenticatie
Het veld staat in de database. TOTP is de logische keuze; het geheim hoort versleuteld te worden
met dezelfde envelope-opzet als de kluis.
### 6. Koppeling met de BRP
Dit vervangt op termijn de drie meldingen. Alleen de plek waar `DeathConfirmedAt` gevuld wordt
verandert; de rest van de code niet. Houd de handmatige procedure ernaast: niet elke deelnemer
komt uit de BRP.
### 7. iOS
Zodra Android draait, is dat vooral een kwestie van een tweede doelplatform in de MAUI-csproj en
een Mac om mee te bouwen.
### 8. Voordat het live gaat
- Een onafhankelijke beveiligingsaudit.
- Snelheidsbegrenzing per IP-adres op inloggen en registreren.
- Beproef het terugzetten van een back-up — inclusief het sleutelbestand.
- Verwerkersovereenkomst en privacyverklaring: dit zijn bijzondere persoonsgegevens.
- Bedenk wat er gebeurt als MijnBesluit zelf ooit stopt. Mensen vertrouwen je hun
uitvaartwensen toe; daar hoort een antwoord bij.