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:
@@ -284,9 +284,20 @@ bijna verlopen certificaat: dat staat al als waarschuwing bovenaan en die verhui
|
||||
- **De dialoog met het `dialog`-element**, om dezelfde reden: focus en Escape zitten erin. Wat er in moet
|
||||
gebeuren is precies wat het certificaatkader nu doet, inclusief het uploaden en de melding dat de pagina
|
||||
níet zelf zegt dat het gelukt is (§4b en fase 4b van `TAKEN.md`).
|
||||
- **De zelfcontrole-widget is nieuw werk in de agent**, geen opmaak. Zie open punt 5: de agent zet een
|
||||
TLS-verbinding naar zijn eigen poort op en maakt de handdruk af. Dat bewijst luisteren, certificaat en
|
||||
doorverbinding in één keer.
|
||||
- **De zelfcontrole-widget is nieuw werk in de agent**, geen opmaak. Zie open punt 5. **Gebouwd in 0.0.16;
|
||||
de widget zelf hoort bij deze fase.** Wat er te tonen is, staat in `status.json` onder `tls.self_check`,
|
||||
met vier toestanden: `off` (geen certificaat gekozen, dus geen poort, en dat is geen storing), `ok`,
|
||||
`wrong-certificate` en `failed` met een reden.
|
||||
|
||||
**Bij het bouwen bleek de belofte hierboven te ruim**, en de widget moet niet meer beweren dan er
|
||||
gemeten wordt. Hier stond dat de controle luisteren, certificaat en doorverbinding in één keer bewijst.
|
||||
De eerste twee kloppen; de doorverbinding niet. Er wordt na de handdruk niets verstuurd, want een
|
||||
verzoek zou de sessie bytes geven en sessies met bytes worden nooit uit het activiteitenlog gefilterd.
|
||||
De backend wordt apart bevraagd, dus wat tussen wal en schip valt is alleen de `proxy_pass` zelf.
|
||||
|
||||
Evenmin gemeten: de weg van buiten naar binnen. De verbinding loopt van container naar container, dus
|
||||
een router die de poort niet meer doorstuurt leest hier als in orde. Een widget met de tekst "reachable"
|
||||
zou dus liegen; hij gaat over de voordeur en niet over de weg ernaartoe.
|
||||
|
||||
### 4b. Waarschuwen op een aflopend certificaat
|
||||
|
||||
|
||||
Reference in New Issue
Block a user