De app kijkt naar zijn eigen voordeur, en meet minder dan het plan beloofde
Open punt 5 van Webinterface, goedgekeurd en gebouwd. De agent verbindt met de eigen TLS-poort, maakt de handdruk af en vergelijkt het getoonde certificaat byte voor byte met het gekozen bestand. Die vergelijking blijkt waardevoller dan de handdruk. Ze vangt een certificaatwissel die nginx nooit heeft toegepast, en dat is precies het geval waar een controle op vertrouwen blind voor is. Er wordt daarom bewust niet tegen de certificaatwinkel van het besturingssysteem geverifieerd: een zelfondertekend certificaat uploaden is een ondersteunde bron en die opstelling zou dan als kapot gemeld worden. Twee dingen liepen anders dan het plan zei en staan nu rechtgezet in PLAN 4a2, OPEN punt 5 en de changelog. De belofte "luisteren, certificaat en doorverbinding in een keer" klopt voor twee van de drie: na de handdruk wordt er niets verstuurd. Een echt verzoek zou de sessie bytes geven, en sessies met bytes worden nooit uit het activiteitenlog gefilterd, want die kunnen een storing zijn. En dat filteren was de tweede verrassing. Elke meting is voor nginx een gewone sessie en levert dus een logregel op; zonder rem ging het log over onszelf in plaats van over wallets. Er zit nu een rem van vijf minuten op, er wordt niet gemeten vlak na een herlading omdat het vorige certificaat er dan nog staat, en de eigen regels worden weggelaten op grond van het moment. Tests: 22 nieuw, met de nadruk op de niet-gelukkige paden en op de rem, want dat is wat het log bruikbaar houdt. Alle vier de beslissende regels mutatie-getest. De changelog kreeg ook de ontbrekende 0.0.15 erbij. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -8,6 +8,60 @@ Wat er nog moet gebeuren staat **niet** hier maar in de plannen; zie [CONTINUE_H
|
||||
Een lijst met geplande features op twee plekken loopt uit elkaar, en dan is geen van beide meer te
|
||||
vertrouwen.
|
||||
|
||||
## [0.0.16] - 2026-08-27
|
||||
|
||||
### Added
|
||||
|
||||
- **De zelfcontrole: de agent verbindt met de eigen TLS-poort.** Tot nu toe keek de app of de
|
||||
Electrum-server antwoordde, maar niet of hij zélf antwoordde, en dat laatste is zijn enige taak. De agent
|
||||
zet nu een TLS-verbinding op naar poort 50022 van de nginx-container ernaast, maakt de handdruk af en
|
||||
vergelijkt het getoonde certificaat **byte voor byte** met het gekozen bestand.
|
||||
|
||||
Die vergelijking is het punt, en niet de handdruk. Een certificaatwissel die nginx nooit heeft toegepast
|
||||
ziet er van buiten goed uit en loopt pas bij de wallet stuk op naamverificatie; dat is precies het geval
|
||||
waar een controle op vertrouwen blind voor is. Er wordt daarom bewust **niet** tegen de certificaatwinkel
|
||||
van het besturingssysteem geverifieerd: een zelfondertekend certificaat uploaden is een ondersteunde
|
||||
bron, en die opstelling zou dan als kapot gemeld worden.
|
||||
|
||||
De uitkomst staat in `status.json` onder `tls.self_check`, met vier toestanden: `off` (geen certificaat
|
||||
gekozen, dus geen poort), `ok`, `wrong-certificate` en `failed`. Bij een **wijziging** komt er een regel
|
||||
in het activiteitenlog; elke ronde dezelfde regel zou ruis zijn.
|
||||
|
||||
**Wat het niet bewijst, en dat is minder dan het plan beloofde.** Er wordt na de handdruk niets
|
||||
verstuurd, dus de doorverbinding naar de Electrum-server zit er niet in; die wordt apart bevraagd. En de
|
||||
verbinding loopt van container naar container, dus de poortmapping naar de host en de doorstuurregel in
|
||||
de router blijven ongetest.
|
||||
|
||||
### Changed
|
||||
|
||||
- **De controle draait niet elke ronde, en zijn eigen sessies worden uit het activiteitenlog gefilterd.**
|
||||
Elke verbinding met poort 50022 is voor nginx een gewone sessie en levert dus een logregel op. Zonder rem
|
||||
zou het log elke minuut over onszelf gaan in plaats van over wallets. Er wordt daarom hoogstens elke vijf
|
||||
minuten gemeten, en de agent onthoudt wanneer hij zelf verbond om de bijbehorende regel weg te laten.
|
||||
|
||||
Twee eigenschappen van die filter horen erbij: hij laat **alleen** regels weg waarin niets is doorgegeven,
|
||||
want een sessie met verkeer kan een storing zijn en die verbergen is erger; en hij kan een échte scan
|
||||
missen die toevallig in hetzelfde venster van twee seconden eindigde.
|
||||
|
||||
- **Vlak na een certificaatwissel wordt er juist niet gemeten.** nginx herlaadt binnen tien seconden, dus
|
||||
een meting op dat moment ziet nog het vorige certificaat en zou dat als storing melden. De meting schuift
|
||||
één ronde op, en dan is het meteen de interessantste die er is.
|
||||
|
||||
## [0.0.15] - 2026-08-25
|
||||
|
||||
Deze regel is op 27-08-2026 alsnog toegevoegd; bij de verhuizing is de changelog overgeslagen.
|
||||
|
||||
### Changed
|
||||
|
||||
- **De app store is verhuisd naar `UmbrelApps`**, en `website`, `repo`, `support`, `submission` en `icon`
|
||||
wijzen daarheen. De app zelf is ongewijzigd: het app-id hangt aan het store-id `whatsnext` en niet aan de
|
||||
URL. Aanleiding was Evolu Relay, want umbrelOS leest per store één repo en een tweede app maakte een naam
|
||||
naar deze ene app onhoudbaar.
|
||||
|
||||
Wat hierbij geleerd is en verder gaat dan deze release: **een geïnstalleerde app overleeft een wisseling
|
||||
van store-URL niet.** umbrelOS tóónde de update wel en voerde hem niet uit, zonder foutmelding.
|
||||
Deïnstalleren plus opnieuw installeren loste het op, en de prijs daarvan is de certificaatkeuze.
|
||||
|
||||
## [0.0.14] - 2026-08-20
|
||||
|
||||
### Added
|
||||
|
||||
Reference in New Issue
Block a user