Eerste commit
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user