Okay, ik zal er beter naar kijken.
14-11-2025, 09:40 door Anoniem: Ik zie niet in wat die broker voor toegevoegde waarde heeft.
Ik herhaal:
De "broker" ontlast Logius van gedoe met allerlei partijen die petities willen organiseren.
14-11-2025, 09:40 door Anoniem: Stel dat de smartcard op een ID-bewijs een computertje is
Dat is het niet en dat moet je m.i. niet willen, voor je het weet heeft zo'n ding regelmatig updates nodig.
14-11-2025, 09:40 door Anoniem: dat beschikt over zowel een sleutel voor symmetrische encryptie die de smartcard nooit verlaat en buiten de smartcard nergens bekend is,
Na verder te hebben gelezen begrijp ik waarom je zoiets onzinnigs als penguin-encryptie wilt. Tip: gebruik een secret key als de secret input van een HMAC-functie voor wat jij wilt, dan krijg je bij dezelfde input altijd hetzelfde "onomkeerbare" resultaat (dat veel lastiger te "reversen" valt dan hashes van petitie-URL's). Toch is dit m.i. geen oplossing in dit geval, zie verderop.
14-11-2025, 09:40 door Anoniem: en de privésleutel voor asymmetrische encryptie die eveneens de smartcard nooit verlaat maar waarvan de bijbehorende "publieke" sleutel bij DigiD bekend is, maar verder nergens (dus zo publiek is die nou ook weer niet). De smartcard op het ID-bewijs heeft een API waar data aan kan worden aangeboden,
Dus gegarandeerd kwetsbaarheden, slachtoffers en updates nodig.
14-11-2025, 09:40 door Anoniem: die wordt versleuteld met de geheime symmetrische sleutel, het resultaat daarvan wordt ondertekend met de privésleutel, en dat wordt teruggegeven aan de aanvrager (een applicatie op iemands pc of smartphone).
Bij fatsoenlijke encryptie is dat een ondertekende blob data die niet van random te onderscheiden valt. Nb. bij betrouwbare symmetrische encryptie krijg je elke keer een ander resultaat doordat een random IV (Initialisatie Vector) gebruikt wordt (als je dat niet doet zie je penguins:
https://words.filippo.io/the-ecb-penguin/).
14-11-2025, 09:40 door Anoniem: Dan lijkt mij de volgende opzet mogelijk:
• Iemand bezoekt een petitie-website en besluit te ondertekenen.
• Daartoe wordt de URL van de petitie via de genoemde API doorgesluisd naar de smartcard van het ID-bewijs van deze persoon, en die geeft de met de symmetrische sleutel versleutelde URL terug, ondertekend door de privésleutel.
De ondertekende blob data die, als het goed is, niet van random te onderscheiden valt.
14-11-2025, 09:40 door Anoniem: • Dat gegeven wordt via een API aan DigiD aangeboden, samen met de BSN.
• DigiD controleert eerst of de digitale handtekening bij dat BSN hoort.
• Dan controleert DigiD of bij het ondertekende bericht (de versleutelde URL) al een alias is vastgelegd. Zo nee, dan wordt die alias (een random waarde) gegenereerd en vastgelegd, met een expiratiedatum.
Twee mogelijkheden:
a) Als er zwakke penguin-encryptie gebruikt is, zal de blob voor
exact dezelfde URL (zie verderop) inderdaad steeds hetzelfde zijn - doch uitsluitend voor de betreffende burger (immers, iedere burger zal een andere symmetrische sleutel hebben). En dus zal deze blob (of een hash daarvan) per burger moeten worden opgeslagen (zie ook de URL-manipulatie verderop). Maar dit is zwakke encryptie. Hoe vaker de burger blobs opstuurt, hoe eenvoudiger deze gekraakt
zouden kunnen worden.
b) Als er fatsoenlijke symmetrische encryptie is gebruikt, zal de blob voor
dezelfde URL telkens anders zijn en kan de burger zo vaak stemmen als hij/zij wil.
Bovendien is de kans groot (dat is wenselijk) dat je met de private key in jouw smartcard willekeurige bestanden kunt ondertekenen, dus ook blobs met random bytes i.p.v. een URL naar een petitiepagina.
Daarnaast schreef ik bovenaan deze pagina:
Door Erik van Straten: c) Of de validatie zonder app (uit te geven door de broker) mogelijk is zie ik niet zo snel, maar iets moet ervoor zorgen dat er niet eenvoudig gesjoemeld kan worden: één burger moet maximaal 1x diens doelgebonden pseudoniem kunnen gebruiken om een petitie te ondertekenen of op een NS publieksprijs te stemmen etc.
Eén van de zorgen die ik heb is dat een URL vaak op zeer veel verschillende manieren "geschreven" kan worden en toch dezelfde pagina opent.
Bijvoorbeeld de volgende URL's openen allemaal de bovenste posting:
[1] https://www.security.nl/posting/912595/Idee%3A+DigiD%2B%2B+voor+petities%3F[2] https://sEcUriTy.nl/posting/912595/Het+maakt-NiKs_UIT'wat?hier&staat![3] http://security.NL/posting/912595/URL's die security.nl niet klikbaar wil maken, maar die wel werken:
[4] https://security.nl:443/posting/912595/
[5] https://pipo:koeien@security.nl/posting/912595
M.a.w. de ontvanger (de broker of digid) zal moeten checken of de
enige acceptabele URL gebruikt wordt, en dat kan niet als je die URL versleutelt.
Wat wellicht beter is (beslist ook in
mijn voorstel), is dat de broker voor elke petitie een cryptografisch random gegenereerde GUID (of andere ID) aan de petitieboer geeft die elke stemmer moet gebruiken (i.p.v. de URL). Dat is natuurlijk hooguit obfuscatie van op welke petitie een burger stemt (maar nogmaals, een vóór én tégen stemmogelijkheid voor elke petitie houdt de mening van de stemmer geheim voor zowel de broker als digid - maar niet dat de burger een "uitgesproken" mening heeft over dat onderwerp).
Jouw voorstel met eventueel een penguin-versleutelde GUID (i.p.v. een URL) is m.i. ook geen optie, want
het exacte doel moet bekend zijn voor de doelbinding met de pseudonieme identiteit van de burger om dubbelingen te voorkómen. Alles wat je probeert om dat
het exacte doel te pseudonimiseren (ook met secret key + HMAC) zet de deur open voor fraude.
14-11-2025, 09:40 door Anoniem: • DigiD ondertekent de alias met een privésleutel en retourneert de ondertekende alias.
• De ondertekende alias wordt doorgesluisd naar de petitie-website, samen met een indicatie van wat de burger wil. De site kan aan de hand van de digitale handtekening controleren dat het gaat om iemand met een geldig Nederlands ID-bewijs, en vervolgens de reactie van de burger met de alias als sleutel vastleggen, of weigeren als die al was vastgelegd, of wijzigen of verwijderen als dat de gewenste opzet is.
Los van mijn bedenkingen hierboven: m.i. moet je het weigeren van "opnieuw-stemmers"
niet aan petitiesites overlaten. Meer stemmen is in hun belang en het is lastig of niet vast te stellen of zo'n petitiesite de stemmen van meervoudig stemmende enkelingen heeft doorgelaten.
14-11-2025, 09:40 door Anoniem: Ik kan dingen gemist hebben natuurlijk
Dat geldt beslist ook voor mij, vandaar dat ik mijn "back of the envelope" idee hier gedropt heb. Hartstikke goed dat je meedenkt, maar je verwijt mij niet naar jouw voorstel te kijken terwijl je meteen mijn voorstel voor een "broker" afschiet (dus stop ik hier).