Door Krijn Soeteman

Freelanceredacteur

Online authenticatie zonder blockchain

KERI, protocol voor 'self sovereign identity'

12-08-2022 • 06:00

65

Een open protocol voor identifiers

Authenticatie is een groot probleem op internet. Het internetprotocol heeft geen authenticiteitslaag die onafhankelijk is van het platform waarop het wordt gebruikt, zoals telefoonnummers van provider kunnen wisselen. Het gemis van een authenticiteitslaag is al sinds het begin een probleem. Hoe bewijs je dat een gebruiker of bedrijf is wie hij of het zegt te zijn? Authenticatie is ook de basis voor de tegenwoordig in beleidsstukken populaire term self sovereign identity of ssi. Hoe kun je over je eigen online identiteit beschikken? En minstens zo belangrijk: hoe kun je ervoor zorgen dat anderen daar geen misbruik van maken?

Sinds een andere term, ‘blockchain’, populair werd, keken velen naar de mogelijkheden die deze min of meer decentrale systemen kunnen bieden. Het leek een ideaal onderdeel voor het decentraal orkestreren van een online identiteit. Toch kleven er nadelen aan, waarvan platformafhankelijkheid misschien wel het grootste is; de identifier is niet overdraagbaar en niet onafhankelijk of soeverein.

Dat moest anders, vond Sam Smith, bedenker van Key Event Receipt Infrastructure, ofwel KERI. Na te hebben meegedacht over een groot identiteitsproject gebaseerd op een blockchain, kwam hij erachter dat je helemaal geen blockchain of andere gedeelde database nodig hebt voor een online identiteit of online identifiers. Het enige wat je nodig hebt, is een geheime sleutel die aan de basis staat van je hele online identiteit. Of iets ingewikkelder: een publiek-geheime sleutelinfrastructuur, of pki, die resulteert in een zogeheten zelf-certificerende identifier, of scid.

'Internet heeft een authenticiteitsprobleem en KERI lost dat op'Smith legt in een paar woorden uit welk probleem zijn systeem oplost. “Internet heeft een authenticiteitsprobleem en KERI lost dat op. Er zit geen authenticiteitslaag in het internetprotocol, waardoor er allemaal extra systemen nodig zijn, bijvoorbeeld bij het doen van betalingen, als je je ergens wilt inschrijven of voor het domeinnamensysteem DNS. Om bijvoorbeeld te weten of een internetdomein is wat het zegt dat het is, gebruiken we certificaten voor authenticatie, maar die hebben fundamentele gebreken. Wat je nodig hebt, is een vertrouwenslaag die alle toepassingen er bovenop kan vertrouwen. Dat vereist een protocol dat niet gebonden is aan een bepaalde vertrouwde entiteit, een vertrouwd platform of een vertrouwde infrastructuur. Het moet zero-trust zijn."

Voordat we dieper op KERI en de werking ervan ingaan, staan we kort stil bij de basis van KERI en veel andere zaken op internet: het gebruik van publieke en geheime sleutels, en het toepassen van zogenoemde hashingtechnieken.

Public key infrastructure

De basis van KERI bestaat uit het beheren van een geheime sleutel. Uit die sleutel kunnen allerlei andere sleutels gegenereerd worden. Dat leek altijd een onmogelijke opgave voor 'gewone' mensen, waardoor er allerlei systemen zijn bedacht om dat te omzeilen. Sinds de komst van de bitcoin en de hele cryptovalutahausse zijn mensen echter steeds meer gewend geraakt aan het omgaan met geheime sleutels. Ook zijn er steeds meer systemen bedacht om dat te vergemakkelijken. Dit betekent volgens Smith dat de meesten probleemloos zelf een geheime sleutel moeten kunnen beheren om zo hun key-eventlog of kel te beheren, de basis van KERI. Een kel houdt veranderingen van geheime en afgeleide sleutels bij en maakt dat je data kunt verifiëren. Key rotation voorkomt dat je geheime sleutel, door welke oorzaak dan ook, bekend wordt.

Dat klinkt allemaal ingewikkeld voor de buitenstaander, maar Smith weerlegt dat. “Het is zelfs relatief simpel”, zegt hij. “Simpel genoeg om helemaal naar de basis van het systeem te gaan en geen heel complexe materie in te hoeven duiken. Een beetje basiskennis van cryptografie, software, algoritmen en consensusmechanismen is al genoeg.” In essentie komt dat neer op betrekkelijk oude technologie: hashes en digitale handtekeningen of signatures.

Via Google Meet spreek ik Smith over zijn werk. Het is Hemelvaartsdag 2022 en hier negen uur ‘s avonds. Daar, in de Amerikaanse staat Utah, is het een uur 's middags. “Hoeveel tijd hebben we?”, vraagt hij. “Ergens tussen een half uur en drie kwartier”, zeg ik. Het werd ruim een uur. Het is boeiende materie en het spelletje van de hele tijd elkaars publieke sleutels ondertekenen en daarmee bewijzen dat je bent wie je bent, kun je eindeloos doorvoeren. Er zijn ook ontzettend veel interessante zijpaden te bespreken, zoals hoe het makkelijker te maken om in de toekomst geheime sleutels te beheren. Een ander zijpad betreft de vraag hoe je anderen in een bedrijf of instelling verantwoordelijkheid kunt geven voor specifieke zaken met slechts een digitale handtekening van iemand die dat mag beslissen. Of simpelweg hoe je kunt bewijzen dat je achttien jaar of ouder bent bij het kopen van alcohol, zonder andere informatie weg te geven.

Wat ging er vooraf aan het bedenken van KERI?

“Eind 2014 had ik een aantal collega’s die deel uitmaakten van een start-up die een reputatiesysteem wilde bouwen dat gebaseerd was op gedecentraliseerde technologie. The World Table heette het en ze geloofden dat het internet kapot was vanuit het oogpunt van sociale netwerken en mensen die commentaar gaven op websites. Trollen waren een groot probleem en ze zagen een mogelijkheid om gedecentraliseerde technologie te gebruiken om die problemen te repareren.”

“Mijn collega’s dachten dat ze kunstmatige intelligentie nodig hadden voor hun project. Van het een kwam het ander en ze vroegen mij om ernaar te kijken. Ik heb in de jaren 90, onder andere aan een universiteit in Florida, wat pionierswerk gedaan in reinforcement learning. Daarbij leert een kunstmatige intelligentie van zijn eigen ervaringen. Het leek heel interessant; ik verliet het bedrijf waarvoor ik werkte en sloot me aan bij de start-up.”

“Al snel kwam ik erachter dat je voor een online reputatiesysteem een gedecentraliseerd identiteitssysteem nodig hebt. Ik schreef een aantal whitepapers, maar voordat we van start konden gaan, was het geld op. In die whitepapers beschreef ik wel het idee van zelfcertificerende identifiers en dat idee bleef bestaan. Niet veel later kwam ik in contact met Evernym, een bedrijf dat zich bezighield met identity space. Ze hadden net de overstap gemaakt naar gedecentraliseerde identiteit. Ze kwamen mijn whitepaper tegen en huurden mij in. Ik schreef de whitepaper Identity Systems Essentials, het basisontwerp van wat later Sovrin werd. Evernym deed een initial coin offering en begon de opensourceorganisatie Sovrin.”

Smith ging op zoek naar een oplossing waarvoor geen blockchain nodig is“Het idee van Sovrin is dat je een overal bruikbaar identiteitssysteem kunt bouwen met een publieke blockchain of public ledger. Alleen moet dan wel iedereen dezelfde ledger gebruiken en daar zit het grote struikelblok; je krijgt ledger wars.” Kort legt hij uit dat het zeker mogelijk is om verschillende blockchains en dergelijke aan elkaar te verbinden via bridges, roll-ups, atomic swaps en andere systemen, maar dat is in zijn ogen kunst-en-vliegwerk. Een blockchain is heel goed voor het volgen en uitvoeren van transacties en het wereldwijd ordenen daarvan in de tijd. Dat helpt tegengaan dat iets twee keer kan worden uitgeven, het bekende double spending problem, maar die ordening is niet nodig voor een identifier, die verwijst immers naar een identiteit. Smith ging op zoek naar een oplossing waarvoor geen blockchain of andere gedeelde database nodig is.

“In ons idee beheer je geheime sleutels die een identiteit, of preciezer, een identifier controleren. Dat bracht ons tot het ontwerpen van een protocol en geen platform. Dat protocol hebben we KERI genoemd. Een van de belangrijkste eisen voor het protocol was dat het overal op internet moet kunnen werken. Ook moet het onafhankelijk zijn van namespace en onafhankelijk van ledgers. Het geheel moet zorgen voor een verifieerbare datastructuur die ook nog eens overdraagbaar is. Met andere woorden: het maakt niet uit waar je het bestand host, iedereen kan de publieke sleutels en de key state verifiëren. Zo krijg je een echt gedecentraliseerd identifiersysteem, zonder gedeeld beheer. Deze essentiële eigenschap noemen we 'eindverifieerbaarheid'. Dit houdt in dat de toestand van de sleutel door iedereen, overal en op elk moment kan worden geverifieerd. Dit is de ultieme, basaalste vorm van zero-trust.”

Hoe KERI werkt

In essentie is KERI een type gedecentraliseerde pki. De eigenaar van een publieke sleutel of identifier kan bewijzen dat hij in het bezit is van de bijbehorende geheime sleutel waarbij de kel's de basis vormen van het systeem. Op deze manier kan iemand bewijzen eigenaar te zijn van een zelfcertificerend identificatiemiddel of scid. Een scid is een identifier waarvan met behulp van cryptografie bewezen kan worden dat dit de enige identifier is die gekoppeld is aan een specifieke publieke sleutel, zonder dat hiervoor een blockchain of andere databasestructuur nodig is.

Bij het aanpassen van sleutels kan iemand bewijzen de controle te hebben over de nieuwe publieke sleutels zonder op iemand anders te hoeven vertrouwen. Iedereen kan zijn eigen kel bewaren, maar anderen kunnen die ook bewaren en tekenen. Zo’n 'getuige' is een extra voorziening om sneller te bewijzen dat iemand valsspeelt als dat zich voordoet.

Om problemen rond blootstelling van geheime sleutels te voorkomen, zoals door diefstal, slordigheid, bruteforceaanvallen en dergelijke, wordt gebruikgemaakt van prerotation, ofwel een manier om de volgende geheime sleutel te beschermen. In de eigen wallet kunnen nieuwe sleutels voor toekomstig gebruik gegenereerd worden. Bij een KERI-identifier kunnen via de kel, verschillende typen events worden toegevoegd waarbij verschillende pki’s betrokken zijn. Toch is er op enig moment maar één geheime sleutel actief als beheerder van de kel. Dat actief zijn van maar een geheime sleutel, kan door prerotation. Zoiets zou niet op een blockchainsysteem kunnen; dat zou immers een transactie inhouden. Bij prerotation ondertekent een beheerder de volgende publieke sleutel digitaal en voegt dat bewijs van ondertekening toe aan de kel. Op die manier is het in de toekomst alleen mogelijk precies die aangekondigde sleutel te gebruiken en geen andere. Deze sleutel staat niet als publieke sleutel in de log, maar als hash, zodat de toekomstige publieke sleutels niet leesbaar zijn voordat ze gebruikt worden.

Een voorbeeld: is de geheime sleutel van publieke sleutel A gecompromitteerd? Haal de volgende publieke sleutel B uit je wallet. Op die manier gebruik je de volgende geheime sleutel voor het ondertekenen van toekomstige documenten. Toekomstige geheime sleutels hoeven niet op dezelfde plek te staan als het actieve apparaat dat je op dat moment gebruikt, of zoals Smith zegt: je kunt dat allemaal opslaan in een kluis in een berg met een zooitje navy seals voor de deur.

Omdat KERI-identifiers en eventlogs zelfcertificerend zijn, kunnen ze elk systeem als getuige gebruiken, zolang het systeem in kwestie maar data kan opslaan en terugsturen. Dus andere kel's, maar ook blockchains, traditionele databases, bestandssystemen enzovoort. Op die manier vormen kel's ondertekende, gehashte datastructuren die een verifieerbare key state opleveren. Doordat alles op cryptografische koppelingen berust, kunnen KERI-identifiers op zo'n manier aan elkaar gekoppeld worden dat altijd bewijsbaar is wie of wat ooit een identifier heeft geverifieerd of wat voor toestemmingen aan een identifier zijn toegekend. Zo kan een overheid een betrouwbare bron zijn voor het verifiëren van een identiteit en een bedrijf een persoon identificeren als tekenbevoegd. Of juist die bevoegdheid weer intrekken. Zo is het mogelijk om een hele hiërarchie van identifiers te maken.

Dit werkt met de functies die KERI aan identifiers toevoegt: inception (de start), prerotation, rotation, delegation en revocation (het einde, intrekken). Daarnaast zijn er tal van afgeleide en nevenfuncties. Denk aan functies als ondertekenen, het verzenden van data die verifieerbaar blijft tot aan de bron van het vertrouwen: de publiek-geheime sleutelparen die de beheerder in zijn kluis in zijn berg heeft gegenereerd zonder tussenliggende partijen te moeten vertrouwen.

Hoe werkt dat dan met bijvoorbeeld iets als een persoonlijke identiteit? Hoe bewijs ik dat dan?

“Heel simpel, je maakt een verifieerbare koppeling tussen een natuurlijk persoon en een cryptoanonieme identifier.”

Wat is zo’n cryptonoumos identifier precies?

“Die is afgeleid van je publiek-geheime sleutelpaar in het begin, maar die identifier blijft bestaan. Dus, je kunt je sleutels roteren, maar je houdt dezelfde identifier. De kel zegt: 'Hier zijn de sleutels die de identifier controleren en die kan niemand anders maken.' Dan zegt een gerenommeerde instantie, de overheid bijvoorbeeld: 'Ik ga je uitdagen, natuurlijk persoon, om me te bewijzen dat jij de beheerder bent van deze identifier.' Dat kun je bewijzen door iets te tekenen met de geheime sleutel. Als ik je publieke sleutel heb, kan ik verifiëren dat je handtekening alleen van de geheime sleutel kan komen, wat bewijst dat jij daar de controle over hebt. Daarna zal ik, de overheidsinstantie, een certificaat uitgeven dat zegt: ‘Dit is ondertekend door de cryptoanonieme identifier van de overheid die universeel gepubliceerd wordt, zodat iedereen kan verifiëren dat het klopt.' Omdat de publieke identifier bewijst dat de natuurlijke persoon met deze naam en persoonlijk identificeerbare informatie de beheerder is van deze cryptoanonieme identifier, is deze persoon de beheerder van de geheime sleutels.”

'Veel mensen die veel verstand hebben van blockchains zeggen: Het kan niet!'"We noemen het liever ‘autonome identifier’ dan cryptoanoniem, want dat is wat makkelijker uit te spreken en brengt het idee van zelfbestuur beter over: zelfbesturend omdat hij wordt bestuurd door de beheerder van de geheime sleutels, niet door een andere entiteit. Toch heeft de gerenommeerde entiteit voor het bepalen van jouw identiteit als natuurlijk persoon de verbinding gemaakt met je identifier. Hierdoor kunnen we zeggen: ‘Oké, officieel behoort deze identifier jou toe, natuurlijk persoon.’ Dus met dat certificaat kun je, als je bereid bent het te tonen, bewijzen wie je bent. Of je kunt het op een privacybeschermende manier toepassen. Zo kun je via cryptografische links bewijzen dat je bijvoorbeeld oud genoeg bent om drank te kopen, maar zonder dat je iets van jezelf hoeft op te geven. Gleif, de Global Legal Entity Identifier Foundation, doet dat niet voor natuurlijke personen, maar voor bedrijven en instellingen. Dat is vrij logisch; die tekenen heel wat de hele dag door.”

“Veel mensen die veel verstand hebben van blockchains zeggen: 'Het kan niet!' Nu is mijn uitdaging uit te leggen dat het wél kan. Inmiddels is dat doorgedrongen tot Gleif, een soort W3C voor identifiers.”

Hoe kan ik dat praktisch allemaal vormgeven als eindgebruiker? Wat heb ik nodig?

“Je hebt een apparaat nodig dat cryptografie kan doen, dus iets als een mobiele telefoon of een apparaat met vergelijkbare mogelijkheden. Daarin zit een secure enclave of iets dergelijks, dat is niet zo’n probleem.”

Wat als ik de boel kwijtraak?

“Je hebt een back-up van de geheime sleutels nodig, maar ook dat is geen probleem meer tegenwoordig. Een wachtwoordmanager, een hardcopyback-up, of mechanismen om geheimen te delen. Sinds de komst van de bitcoin en vele wallets zijn de mogelijkheden rond back-ups steeds beter geworden. Het belang van KERI is echter een goed protocol te zijn, niet om een goede userinterface te bouwen. Dat doen anderen.”

Hoe zit dat met mensen die dit soort systemen niet of niet meer kunnen bedienen?

“Dat is nou het mooie van delegeren. Als je daarvoor mogelijkheden inbouwt in identiteitssystemen, kun je bewijzen dat iemand gemachtigd is. De hele keten is verifieerbaar. Maar het is interessant, je hebt het nu over bruikbaarheid. Dat is iets dat wel opgelost wordt. Het probleem is: als je veiligheid opoffert voor bruikbaarheid, raak je het vertrouwen kwijt."

Dat laatste, vertrouwen, is volgens Smith een van de grootste problemen van internet; vertrouwen kun je niet over internet verplaatsen. "Web 3.0 heeft de bedoeling vertrouwen te vergroten, maar op dit moment is dat het laatste wat het doet. Iedereen denkt dat het op blockchains gebaseerd moet zijn, maar dat is niet waar. Het hoeft niet gebaseerd te zijn op een gedeelde ledger, het moet juist gebaseerd zijn op een verifieerbare datastructuur. Een type verifieerbare datastructuur is een blockchain, maar ik heb er ook een: een verifieerbare data tree, niet alleen een chain. Dus in mijn ogen is een verifieerbare data tree de oplossing, niet een gedeelde blockchain. Een blockchain is niet de oplossing omdat je te maken hebt met gedeeld bestuur en dat laatste is altijd een zwak punt. Het leidt tot hoge kosten en een lage doorvoersnelheid. Kijk naar ethereum. Op dit moment zijn de transactiekosten bizar. Nu proberen ze die omlaag te krijgen door middel van roll-ups. Daarbij worden allemaal ingewikkelde systemen doorgevoerd om de privacy te beschermen. Probeer maar eens zero knowledge proofs te managen…"

Dat laatste heeft ook veel te maken met juridische vraagstukken, zoals bij het kopen van producten en problemen daarmee. Smith legt uit dat dergelijke problemen om ontvangstbewijzen vragen, om een bonnetje. "Het heet niet voor niets Key Event Receipt Infrastructure", zegt hij. "Het basisidee is dat overeenkomsten gesloten worden met ontvangstbewijzen die verifieerbaar zijn. Zo hebben beide partijen een rechtsmiddel in handen."

Zo komt het allemaal vrij complex over…

"Toch is self sovereign identity relatief gezien vrij simpel. Het probleem is dat het inderdaad complex overkomt. Mensen horen het woord 'blockchain' en sluiten zich af, omdat ze denken dat het een grote zwarte doos is. Met KERI heb ik net alles uitgelegd tot aan de fundamenten. Die fundamenten vereisen een beetje kennis van cryptografie, een beetje van software en een beetje over consensusalgoritmen, maar het is in de verste verte niet zo complex als de meeste blockchainsystemen die voor ssi moeten zorgen."

Smith komt op dreef en haalt er nft's bij. Er zijn allemaal ingewikkelde gebruikersvoorwaarden voor de platforms waar je de nft's kunt halen, maar uiteindelijk kun je zo van een platform gegooid worden. "Je huurt in feite een nft van zo'n platform, je bezit niets. Je hebt simpelweg geen blockchain nodig voor een nft. Het is gewoon een chain of custody. Het is niet veel anders dan de key state. Als je een identifier hebt en die embed je in een hash van een self-certified identifier met een key state, dan kan ik de herkomst van de nft controleren. Een nft is immers niets anders dan een identifier. Als ik het eigenaarschap aan iemand anders wil overdragen, doe ik simpelweg een key rotation."

'Hoe dommer de technologie, hoe beter, mits nog voldoende om het probleem op te lossen'En het privacyissue?

Authenticiteit staat bij Smith op één als belangrijkste onderdeel. Vertrouwelijkheid volgt daar direct op en privacy komt in zijn ogen pas na die twee. Hij noemt dit PAC: Privacy, Authenticity and Confidentiality. Je kunt twee van de drie op een hoog niveau hebben; volgens Smith is privacy altijd het zwakke punt. Het is altijd lastig om dat te blijven beschermen. Als je daarvoor door te veel hoepels wilt springen, maak je het onmogelijk. "Nu mijn privacy beschermen is niet zo moeilijk, maar die informatie over tien jaar ook beschermen, is heel lastig. Daarom kies ik structureel voor sterke authenticiteit en iets minder sterke privacybescherming. Als ik met mensen omga, verlies ik al een stukje privacy. Dus als ik dat voor altijd wil beschermen, moet ik op een eiland gaan zitten, alleen. Waar het om gaat, is dat ik niet misbruikt wil worden door derden. Als ik met een partij in zee ga, wil ik niet dat een derde mijn data kan misbruiken. Ik deel informatie met een partij om samen een activiteit te kunnen ondernemen. Daarvoor moet die partij bepaalde dingen van mij weten. Ik moet hen kunnen vertrouwen en zij mij, heel specifiek voor de transactie die we aangaan. Nu wordt die relatie structureel misbruikt door derden, partijen die niets van onze relatie hoeven te weten. Vertrouwelijkheid is goed genoeg om misbruik door derden te voorkomen."

"Het gaat er niet om de laatste, coolste techniek te gebruiken die ook nog eens heel moeilijk is om goed te implementeren. Het principe van KERI is dan ook: een probleem oplossen in de echte wereld met de minimaal benodigde technieken. Hoe dommer de technologie, hoe beter, mits nog voldoende om het probleem op te lossen. 'Domme techniek' is vrij beschikbaar, voor iedereen inzichtelijk en makkelijk te implementeren. In ons geval: slechts hashes en digitale handtekeningen. Het zullen hoogstwaarschijnlijk de blockchainloze oplossingen zijn die in de nabije toekomst leiden tot veilige identifiers voor authenticatie op het web."

Reacties (65)

65
65
26
2
0
36
Wijzig sortering
Wat betreft blockchain, dat was ook altijd al mijn punt. Je hoeft je identiteit niet te verdedigen tegen double spend attacks bijvoorbeeld. Dus waarom zouden zulk soort dingen op de blockchain moeten. Sowieso heb je daar twee systemen: Degene die gewoon je hele publieke identiteit op de blockchain willen gooien. Ik hoef hopelijk niet uit te leggen waarom dat een rampzalig idee is vanuit privacy oogpunt. Daarnaast heb je degene die alleen willen dat de identity providers (zoals een bank, een overheid, etc) hun public keys verdelen over de blockchain. Waarbij inderdaad de vraag is: "En wat voegt dat toe?".

Je kan nog stellen dat daardoor makkelijker wordt voor random personen om ook identity provider te worden (met problemen zoals hier worden beschreven, welke blockchain is dan de juiste?). Maar als ik drank online wil kopen, dan gaat de winkel alleen een statement van bijvoorbeeld de overhoud, of een bank, geloven dat ik 18+ ben, en niet mijn neefje die met SSI ondertekend heeft dat ik echt 18+ ben.

Dus op dat punt kan ik me geheel vinden wat hier verteld wordt. En toch heb ik grote twijfels hierover. Namelijk:
Sinds de komst van de bitcoin en de hele cryptovalutahausse zijn mensen echter steeds meer gewend geraakt aan het omgaan met geheime sleutels. Ook zijn er steeds meer systemen bedacht om dat te vergemakkelijken. Dit betekent volgens Smith dat de meesten probleemloos zelf een geheime sleutel moeten kunnen beheren om zo hun key-eventlog of kel te beheren, de basis van KERI.
Kijk eens hoeveel die gehackt worden. Hoeveel mensen ze kwijtraken. En dat is bij grote hoeveelheden geld, maar mensen moeten wel vertrouwd worden dat iets wat nul monetaire waarde voor ze heeft veilig wordt opgeslagen?

Ik zie wel een rol voor zulk soort systemen, als aanvulling op. Goed voorbeeld de Covid certificaten. Wat in principe gewoon op zoiets als dit gebaseerd is. Maar ben je die kwijt om wat voor reden dan ook, dan log je in met je goede oude DigiD, en haal je een nieuwe op. Anders zou half Nederland bij een nieuwe telefoon een nieuwe inenting moeten hebben gekregen.
Ik zie nu dat ik een foutje heb gemaakt, double spending is wel een probleem bij AID's. Ik had dat blijkbaar niet goed overgenomen uit de check die Sam Smith (Engels uiteraard). Ik ga dat fixen!
Hoe dan? Als je stelt dat double spending een probleem is, dan heb je een blockchain nodig (of iets centraals). Maar hoe ga je je identity double spenden? Double spending is alleen een probleem bij iets waar je het weggeeft. Waar als jij je Bitcoin aan iemand anders stuurt, dan heb je het zelf niet meer. Je identity kan je aan 15 andere mensen sturen (of nou ja, bewijzen), en dan heb je hem zelf nog steeds.
Iemand kan je identifier 'double spenden', maar je hebt geen blockchain nodig, want een blockchain is nodig voor het vastleggen van transacties in de tijd. Je bent maar 1x uit te geven zeg maar. Een blockchain is nodig om transacties van jouzelf bij te houden, nou ja, jijzelf hebt maar 2 standen: levend of dood. Bij een bitcoin bijvoorbeeld moet je weten of de transacties uit het verleden kloppen om te controleren of daar niet gefraudeerd is (1btc naar die, 0,5 en 0,2 en 0,3 naar die, etc). Maar het is aangepast in dit: "Een blockchain is heel goed voor het volgen en uitvoeren van transacties en het wereldwijd ordenen daarvan in de tijd. Dat helpt tegengaan dat iets twee keer kan worden uitgeven, het bekende double spending problem, maar die ordering is niet nodig voor een identifier, die verwijst immers naar een identiteit." (van dit: "Een blockchain is heel goed voor het volgen en uitvoeren van transacties en het tegengaan van iets twee keer uitgeven, het bekende double spending problem, maar is niet nodig voor een identiteit die je slechts één keer uitgeeft.")
Iemand kan je identifier 'double spenden'
Hoe dan? Een ander heeft jouw private key niet, dus kan nooit een bericht ermee signen om te bewijzen dat jij het bent. Ja hij kan jouw gesignde bericht kopieren, maar dat is geen double spend.
Daar is duplicity checking en reconciliation voor bedacht in KERI.
De double spend optie zit 'm bij autonomic identifiers in de key state: je kunt meerdere tegenstrijdige uitspraken over een identifier doen. En daartegen wapent KERI zich door te stellen dat alles dat duplicitous is, in beginsel niet meer wordt vertrouwd.

[Reactie gewijzigd door Henk van Cann op 22 juli 2024 23:29]

Ja en dat is dus echt iets compleet en fundamenteels anders dan wat er bedoelt wordt met double spending in een blockchain.
Mijn indruk is dat het fundamenteel hetzelfde is en 'double spending' als fenomeen al veel langer dan de na -bitcoinse blockchain bestaat, namelijk sinds het digitaliseren van geld, en daarom geen blockchain-only ding is. E-cash (van Chaum) mislukte bijvootbeeld fundamenteel vanwege double spending kwetsbaarheid.

Maar laten we focussen op wat ons verbindt: een "double spend" in KERI kun je zien als een dubbele uitspraak over een SCID of Autonomic Identifier, vastgelegd in keystate. Duplicity hoeft niet 'dodelijk' te zijn voor de identifier; er zijn reconciliation opties op basis van een aantal consensus rules: pBFT en 'first seen', ofwel: een bepaalde keystate kan "gelijk" krijgen en daarmee de double spend tot een slechts tijdelijk fenomeen maken.
De vraag “wat als ik de boel kwijt raak” wordt eigenlijk niet beantwoord. Er wordt enkel gezegd dat je de boel niet moet kwijt raken door goeie backups. Backups kunnen falen. Wat als ik de boel kwijt raak?
Een goed Trust No One systeem kan hiervoor geen oplossing hebben. Mag hiervoor geen oplossing hebben.

Het is kiezen tussen zelf verantwoordelijk of iemand anders ook de sleutels geven.

Maar waarom is dit zo moeilijk. Een kopietje in je kluis en een kopietje bij je ouders/vrienden/kinderen etc.

Of heck. Gooi het in een bitlocker vault op Google drive….. opgelost

Trouwens. Is er hierbij niemand die denkt, waarom wordt SQRL niet gewoon gebruikt?
Daarom wil je dus liever een systeem gebaseerd op vertrouwen ipv trust no one. Een partij die het kan beheren, zoals de overheid bijvoorbeeld. Of zoals bij SSL certificaten nu. Of je moet een systeem maken dat biometrische data in leest en dat je je daarmee identificeert, een sleutel die je leven lang niet verandert, zoals DNA als sleutel. Maar het vertrouwen moet dan zitten in de verificatiemethode.
Ben bang dat dit voor de gemiddelde consument waar is. Hoewel ik als tweaker voor mijn gebruik echt liever TNO heb dan dat ik een derde partij moet vertrouwen. Hoevaak zo een derde partij dan niet toch gegevens lekken……….
Ik moet zeggen dat je echt wel een fair point hebt, ondanks dat ik wel denk dat een decentraal authenticatie systeem beter zal zijn in het algemeen. Al overtuig je mij niet snel dat de blockchain hier een rol in moet spelen.

En als ik dan even het artikel quote:
Toch is self sovereign identity relatief gezien vrij simpel. Het probleem is dat het inderdaad complex overkomt. Mensen horen het woord 'blockchain' en sluiten zich af, omdat ze denken dat het een grote zwarte doos is.
Nee. Blockchain heeft z'n grote carbon footprint dat technologieën over de blockchain gooien het in veel gevallen simpelweg niet waard is omdat er meer vervuild dan waarde opgeleverd wordt. En in heel veel gevallen is de blockchain an sich geen meerwaarde voor het project.

Vertrouwen. Daar draait alles om tegenwoordig. Ik denk alleen wel dat we het over een ding eens kunnen zijn en dat is dat big tech companies niet te vertrouwen zijn. Vandaar dat je dit soort technologie ziet opkomen. Daarnaast zijn veel dingen waarop aangehaakt wordt in dit artikel wel al in andere technologieën aanwezig.

Denk bijvoorbeeld aan GPG/PGP waar je een web of trust opbouwt door keys te signen. Alleen is GPG/PGP dan natuurlijk geen authenticatie protocol. En dat is het probleem wat ze met KERI proberen te tackelen.

En tja, je hebt een fair point met "Wat als...". Backups blijven belangrijk. Een 3-2-1 strategie is vaak voldoende. Daarnaast met key structures zou je ook nog altijd kunnen denken aan een master key. Dus met andere woorden een backup solution als de backups falen. Er valt altijd wel wat te verzinnen en waterdicht wordt een dergelijk systeem nooit; ook niet bij waar je eventueel de hosting afneemt.

[Reactie gewijzigd door Muna34 op 22 juli 2024 23:29]

.oisyn Moderator Devschuur® @Sannr212 augustus 2022 12:23
Daarom wil je dus liever een systeem gebaseerd op vertrouwen ipv trust no one
Nee, dat wil je niet liever. In een systeem gebaseerd op vertrouwen ben je verplicht iemand te vertrouwen. In een vertrouwenloos systeem hoeft dat niet, maar kan het alsnog wel door gebruik te maken van diensten van derden.
Maar waarom is dit zo moeilijk
Als dit systeem gebruikt dient te worden door mensen met voldoende affinitiet met IT of binnen een bedrijf en beheert door de IT afdeling, dan zou dat inderdaad niet moeilijk moeten zijn. Als dit uiteindelijk voor de elke internetgebruiker gebruikt zou moeten worden zal je zien dat er nogal een verschil is tussen theorie en praktijk. Keys worden niet gebackupped of komen zonder encryptie ergens in de cloud terecht.

Er zullen ongetwijfeld bedrijven komen die dit allemaal voor je regelen, net zoals dat nu het geval is voor je wachtwoorden. LastIdentity, 1identity, KeeIdentity...Maar waar we voor wachtwoorden nu al vertrouwen op zo'n bedrijf, gaat dat met een online identiteit nog veel verder en ook gevaarlijker worden. Immers: hoe meer we een systeem of protocol vertrouwen, des te groter de gevolgen wanneer het mis gaat.
Waarom SQRL als WebAuthn veel bredere ondersteuning geniet?
Anoniem: 421923 @I541312 augustus 2022 08:01
de beste kluis voor mij is en blijft mijn hoofd: het wachtwoord zit in mijn hoofd en in mijn muscle-memory.
Een kluis kan verbranden, gestolen worden, stroom kan uitvallen (waardoor je niet meer bij je backup kan).

Uiteraard kan ik overlijden, lijden aan geheugenverlies, gemarteld worden voor het wachtwoord...

ik snap dat het niet langer zo kan, maar ik ben nog oldschool: ik onthoud liever m'n wachtwoord in m'n hoofd dan dat ik het in online of offline password managers zet.

Dan wijzig ik het liever periodiek sowieso dan dat ik tal van andere wachtwoord/toegangscodes niet zelf ken maar alleen blind copypaste vanuit een pass-vault waar ik maar 1 code van ken.
Dan nog liever biometrisch.
Het probleem is dat dit een private key is die je lastig uit je hoofd leert. Met een ecdsa-key zit je toch al snel op enkele honderden characters, en met een rsa-key op duizenden.
Het èchte probleem is 'de mens'.
Plus de ontwikkelingen gaan veel sneller dan de gemiddelde mens kan (en wellicht wil blijven) bijhouden.
En het gaat hier niet alleen om het wachtwoord van de keys maar ook de daadwerkelijke bestanden. Deze bestanden heb je nodig, dus niet enkel dat wachtwoord, om jezelf te kunnen verifiëren.
Dan kun je gebruik maken van allerlei gebruiken en technieken om je sleutelbeheer goed in te richten, zie bijvoorbeeld het werk van blockchaincommons.com. Het valt buiten de scope van KERI.

[Reactie gewijzigd door Henk van Cann op 22 juli 2024 23:29]

Helaas worden voor de 'echte' identificaties andere keuzes gemaakt.

https://ec.europa.eu/info...opean-digital-identity_en

Veilig in de centrale handen van een ICT project van de overheid. :'(

[Reactie gewijzigd door goran op 22 juli 2024 23:29]

Anoniem: 1777010 @goran12 augustus 2022 08:52
No shit. Dit systeem is PGP met extra stappen en gaat natuurlijk nooit vliegen. Een significant deel van de bevolking zal nooit in staat zijn zijn eigen ID te bewaren en te beschermen, maar als overheid heb je de plicht om ook die mensen te helpen. Dat zie je ook aan het project waar je naar linkt: iedereen moet mee kunnen doen. Het moet overal werken.
Precies. En dat de overheid een set standaarden coördineert wil nog niet zeggen dat een uiteindelijke implementatie ook bij diezelfde overheid in handen is, zie bv. eHerkenning. Niet dat dat een perfect systeem is, maar het is wel een goed voorbeeld van een centrale set standaarden met implementatie door private partijen. Uiteraard is dit niet zero trust, want partijen moeten wel voldoen aan de standaarden (die bepalen of een partij wordt vertrouwd om identificatiemiddelen uit te geven), maar in principe kan iedere partij dit. Ik zie zelf meer in een overhaul/modernisatie van standaarden als SAML en XACML.
Deze technieken zoals SAML zijn gecentraliseerd, werken op een silo (domein) en / of vertrouwen tussenliggende partijen? Je kunt afaik niet decentraal bovenop centraal bouwen, wel andersom.
<reactie verplaatst>

[Reactie gewijzigd door Henk van Cann op 22 juli 2024 23:29]

Daar is de delegatie functionaliteit en cryptografische zekering voor bedacht en ontwikkeld in KERI.
Het is ingewikkeld, maar kan onder de motorkap van oplossingen terecht komen. Je oma spreekt ook geen Linux maar kan wel de moderne koffiezetter bedienen.
Volgens mij heb je voor identificatie van een fysiek persoon of biometrische techniek die in handen van een bedrijf ligt, of een 24/7 controlerende organisatie nodig
Biometrie is ook niet heilig, zelfs niet met DNA. Denk aan identieke tweelingen....
Tweelingen hebben volgens mij altijd verschillende vingerafdrukken, iris en DNA.
Dna natuurlijk niet voor tweelingen uit 1 ei wat gesplitst it.
Er zijn wel random mutaties die verschillen veroorzaken, alleen geen idee wat ervoor nodig is om dat te kunnen zien.
Mooi dat je je identiteit kunt bewijzen door een hash te posten, maar is dit ook voorbereid op het “post-quantum” tijdperk?
Ik denk niet dat het quantum resistant maken heel moeilijk is. NIST is druk bezig (maar er is nog werk aan de winkel). De hashing functie veranderen van KERI is geen fundamenteel bezwaar. Het is een soort lego blokje.
Pre-rotation is quantum computing bestendig.
Wat is het verschil? Ik heb dat hier nog nooit iemand steekhoudend zien uitleggen. Waarschijnlijk gaat net als bij AI gejaagd worden op autoriteit over de waarheid. "De elitaire technologie in deze zwarte doos heeft altijd gelijk".
Anoniem: 1777010 12 augustus 2022 08:17
Als je denkt dat je probleem opgelost kan worden met een blockchain, dan snap je je probleem niet. En de blockchain niet.
Maar kan ik niet meerdere identiteiten aanmaken, mij bij de bank overval als Jantje voordoen maar mij als Pietje uitgeven en zo onder strafbare feiten uitkomen?
Ik ken geen crimineel die met zijn paspoort loopt te wapperen als hij een strafbaar feit pleegt ;). Je moet het niet omdraaien.

Dit systeem is bedoelt om online een identiteit te kunnen verifieren. Zoals in een van de laatste alinea's staat, de overheid die jouw formele identiteit verfieert, stuurt je een document. Deze onderteken jij met je key en vervolgens verifeert de overheid dat die publieke sleutel bij jouw private sleutel past. Vervolgens krijg je een certificaat dat bevestigt dat de overheid van Nederland heeft geverifeert dat bij jouw private sleutel, een bepaalde identiteit hoort. Dat certificaat kun je vervolgens weer opsturen aan een partij die dat van jouw mag zien/weten. Nu weet die partij ook dat die sleutel vertrouwt is bij die identiteit.

In theorie zouden er je inderdaad meerdere certificaten kunnen hebben. Net als je nu meerdere paspoorten zou kunnen hebben. Dan moet de overheid dit natuurlijk goed managen, net zoals je nu niet meerdere paspoorten kunt hebben.

Het systeem van die sleutel-roulatie kun je ook toepassen op die certificaten, zodat er per persoon altijd maar één certificaat geldig is.
Omdat KERI-identifiers en eventlogs zelfcertificerend zijn, kunnen ze elk systeem als getuige gebruiken, zolang het systeem in kwestie maar data kan opslaan en terugsturen. Dus andere kel's, maar ook blockchains, traditionele databases, bestandssystemen enzovoort
Ik waardeer je antwoord maar ten eerste de gedachte was onafhankelijk ofwel soevereiniteit en als je de overheid moet vragen dan sluit dat gelijk uit. Die natuurlijk persoon heeft de overheid gecreëerd, die bezit jij niet maar heb je in bruikleen. Die identiteit is dus niet van jou. Ook je identiteitsbewijs is eigendom van de overheid.

Ik kon namelijk niet begrijpen wie de verificatie nou kan doen. Dit is een bekend en lastig probleem en dit systeem lost de 'mens-sleutels kant ' dus helemaal niet op.

Ik had juist waarde aan een identiteit gekoppeld zodat dat als een soort verzekering zou werken net als borg. Iemand staat voor je garant als je bvb. je portemonnee vergeten hebt en je gaat uit eten. Stom de eigenaar van het restaurant kent jou niet maar je vrienden kennen je wel goed en weten dat je terug betaald. Probleem opgelost. Maar wat als je alleen bent?

Als dit protocol zou moeten helpen met reputatie dan zou je toch transacties moeten opslaan, zodat je bijvoorbeeld kan bewijzen dat je een product toch echt hebt aangeschaft en dus kan beweren dat je er tenminste kennis mee gemaakt hebt en dat je beoordelingen erover niet zijn verzonnen.
Alleen is het altijd makkelijker, voordeliger en zonder risico om te liegen mits er niets tegenover staat.
Op papier klinkt het als een leuk idee maar zonder het risico je reputatie te verliezen lost het op dat vlak weinig op.
En dat de overheid een betrouwbare bron is... Je kan eenmaal je biometrische gegevens verliezen en iedereen kan voordoen als jou als ik het goed heb. Maar als de politie kan zoeken naar een vermist individu door willekeurige mensen te vragen of ze op de foto gelijkenis zien of zelfs herkennen dan kan je ook zonder overheid. Maar mensen zullen ook vragen wat je bedoelingen zijn dus wederom borg en garant staat voor iemand mist hier, vooral om reputatie hoog te houden denk ik.

[Reactie gewijzigd door n0np3r50n op 22 juli 2024 23:29]

Je wil dus een identiteit-systeem, maar zonder dat dat op overheidsniveau geverifeerd kan worden? Volgens mij is dat per definitie onmogelijk. De situatie die je schetst en er gaan een paar vrienden voor je instaan dat je terugbetaalt. Die vrienden zijn dan wel te vertrouwen? En kan je dan verifieren dat iemand is wie hij is?

Wat jij opschrijft is een systeem zonder identiteit, zonder overheid, zonder BAG. Dat eindigt dan in wetteloosheid, omdat iedereen zich anoniem kan verplaatsen en dus er nergens consequenties aan hangt.

Je moet niet vergeten dat een centrale overheid (die wij hebben gecreeerd inderdaad, dus eigenlijk wij met z'n allen zijn), alleen jou een bevestiging stuurt dat je je voor een persoon mag uitgeven. Iemand anders vertrouwt op zijn beurt een verifeerbaar certificaat van een NL overheid wel (met de juiste sleutel ondertekend), maar een certificaat van een of ander bedrijf niet, omdat die persoon dat bedrijf niet kent of vertrouwd.

Uiteindelijk ligt vertrouwen aan de basis van alles. Zonder ergens iets van vertrouwen in te bouwen, is het mijns inziens allemaal per definitie zinloos en onmogelijk.

In de basis vertrouwt je browser bijvoorbeeld ook een aantal root certificaten. Omdat dat partijen zijn die de processen op orde hebben, wat wellicht ook verifieerbaar is. Maar het blijft vertrouwen.

Ik scande nog even alle reacties op "zero trust", dat wordt ook in het artikel genoemd. Wat je niet moet vergeten, is dat het systeem "zero trust" is, dus:
Je hoeft geen certificaat van de NL overheid te hebben of te overhandigen (bankrekening openen in NL kon dan wel eens lastig worden). Maar uiteindelijk moet er wel een systeem van vertrouwen op dit KERI systeem gebouwd worden. Het vertrouwen zit echter niet ín het systeem, maar in het gebruik ervan.
Ik snap nog niet precies wat hier nou fundamenteel anders dan de huidige x509 pki?

Zoals ik het lees wordt iedereen een soort persoonlijke certificate authority, en moeten we nog steeds naar een derde autoriteit om onze identiteit te koppelen aan een private key. In het artikel worden er meerdere mogelijke instanties hiervoor genoemd, zoals overheden, maar ook blockchain (#hoedan) en bekenden (hallo pgp). Dit klinkt niet veel anders dan de huidige pki waarbij er CAs zijn met een root certificaat die je identiteit verifiëren. Een domein-naam of email adres is hierbij te vergelijken met een identiteit. Misschien ligt de focus bij Keri op cliënt-certificaten, en eigenlijk "iedereen is een CA", maar in beginsel is het niet veel anders, of zie ik dat verkeerd?

Dat doet mij ook vraagtekens zetten bij het zero-trust aspect van dit systeem. Er zijn nog steeds vertrouwde instanties nodig om mijn identiteit te verifiëren en te koppelen aan mijn public key.
Datzelfde probleem heb ik er ook mee.

Dat je kan bewijzen dat je de controle hebt over een sleutelpaar (de onderliggende private sleutel) is leuk, maar wat is het sleutelpaar nu eigenlijk waard zonder identiteitsvalidatie? Feitelijk is het, als je het vergelijkt met de huidige x509 gewoon een self-signed certificaat, zeggende dat je "Jan Jansen" bent. Dat je drie van je buren hun handtekening eroverheen zetten dat dat klopt zegt verder inderdaad weinig.

Een van de dingen die me wel opviel was inderdaad het proces van het alvast publiceren van een getekende hash van je volgende publieke sleutel.. klinkt leuk, maar wat nou als je er na het tekenen van die hash erachter komt dat je private sleutel (waar verder zo te zien ook niet echt bijzondere eisen aan worden gesteld voor opslag, alleen maar suggesties) daarvoor al gecompromitteerd zijn? Zonder externe validatie ben je dan ook nergens.. en als je je publieke sleutel laat tekenen door een externe Certificate Authority heb je weliswaar de mogelijkheid dat die dat certificaat kan intrekken, maar dat geldt dan alleen maar voor die combinatie van een specifiek certificaat en jouw publieke sleutel. Wat er als mogelijkheid staat dat je op basis van dezelfde publieke sleutel meerdere certificaten hebt (voor meerdere doeleinden) maakt het geheel alleen maar kwetsbaarder en lastiger te beheren.
Mooi jullie stellen min of meer dezelfde vragen die ik had tijdens het lezen en even hier verderop heb neergezet . Helaas niet (op tijd) gezien.

Dus inderdaad auteur kan je zijn maar wie ken je, wie kent jou en welke relaties heb je met andere levende mensen. Want als je een keer wilt stemmen is het toch handig dat je zeker weet dat het mensen zijn.
Met willekeurige (radio en ruis) signalen kan je bijvoorbeeld vaststellen waar iemand is en of hij beweegt. En daaruit door wie hij is gezien net als Bluetooth beacons misschien.
Je kan ook willekeurige QR of andere codes op vaste plekken zoals reclame of billboards (landmarks bvb ben je echt in Parijs of doe je alsof?)
Met een protocol spreek je iets af maar over opslag en geschiedenis dat denk ik van niet. Toch blockchain zou ik zeggen.
Maar er is toch IRMA? Dat doet volgens mij zo goed als hetzelfde.
Voor zover ik weet heeft IRMA geen portable identifiers (ledger-based) en is verificatie gebaseerd op vertrouwen (centrale servers). KERI is zero trust en volledig portable.
Voor de journalisten bij Tweakers: Ouwe lul full stack programmeur hier met 30 jaar ervaring in een dozijn programmeertalen en databases.

Alles wat met een blockchain kan, kan een stuk eenvoudiger zonder blockchain.

Een blockchain is niets anders dan een extreem inefficiënte distributed database. Als er geen piramidespel op gebaseerd was, was iedereen het allang weer vergeten.
Het piramide spel genaamd crypto coins.
veel crypto is idd troep en piramide spel. klein handje vol zijn goede crypto met zeer goede utility. scheer niet alle crypto over 1 kam en verdiep je eerst wat het precies is en wat het doet....
Nou zeg, lekker cynisch. Op deze manier vinden we nooit een probleem voor deze oplossing!

Op dit item kan niet meer gereageerd worden.