Hej,

Det låter bra tycker jag och jag har lite fler tankar kring det tekniska nedan men jag tror inte att det är det primära problemet att lösa.

> Svea skickar först sin eleg-cert-fil till
> TredjePart och säger därmed "jag är Svea Svensson med personnummer
> 12345678". TredjePart vet i det läget inte om det verkligen är Svea
> eller om det är någon annan som skickat eleg-cert-filen, men Svea kan
> bevisa det genom att utföra operationer som bara är möjliga för den som
> har hennes privata nyckel.

Jag tror att det här kan vara en av de mer komplicerade problemen att lösa på ett sätt som inte är jättelätt för scammers att lura folk genom.
Även fast kanske inte alla kommer använda det här tror jag att man inte kan förvänta sig att alla som använder den här lösningen ska förstå de tekniska detaljerna.

Det är lite det här Mobilt BankID har haft problem med, t.ex:
Scammern ringer och säger "jag är från Bank AB, vi behöver verifiera information, kan du identifiera dig i bankid?".
Kunden öppnar sedan BankID och ser bara att det står att de ska identifiera sig hos BankAB och inget annat.

Detta har blivit lite bättre med hjälp av QR-koder men det är ändå något jag tror man behöver fundera en del på.

Tekniska tankar:

Jag tänker att X.509 certifikat antagligen skulle passa bra här och så används det redan inom liknande områden som  t.ex. pass och BankID.

Det finns flera olika sätt man skulle kunna specificera personnummer eller andra identifiers i ett X.509 certifikat, som t.ex. en extension eller ett attribut i "subject distinguished name". 

Relevant RFC: https://datatracker.ietf.org/doc/html/rfc5280

Översättning av termer (SSI -> PKI):
"verifiable credential" -> "subscriber certificate"
"issuer" -> "issuer"
"holder" -> "subject" eller "subscriber"
"verifier" -> "relying party"

-Cynthia

On Fri, Oct 1, 2021 at 1:41 AM Elias Rudberg <mail@eliasrudberg.se> wrote:
Hej alla på eleg-projekt-listan!

Nu när vi har en egen lista för projektet tänker jag att det är lika bra
att sätta igång och diskutera. :-)

Den här listan arkiveras och publiceras öppet precis som den vanliga
DFRI-listan men nu är det ju bara vi som valt att vara med i projektet
som är prenumeranter på listan så vi behöver inte oroa oss för att störa
folk som inte är intresserade. Den som är med på den här listan får
skylla sig själv.

Jag har skrivit en liten skiss av hur jag tänker att ett e-leg-system
skulle kunna fungera, och jag vill gärna höra vad ni tänker om det.
Observera att det här nu bara är mina egna tankar, kan vara helt fel
tänkt, jag vill bara börja bolla såna här saker med er.

Det hela bygger på asymmetrisk kryptering, "public-key cryptography".

Vi tänker oss att staten utfärdar e-legitimation till en person genom en
procedur där personen själv skapar ett nyckelpar (publik+privat nyckel)
och staten bokför den publika nyckeln. Staten sparar alltså
informationen om att personen som heter Svea Svensson med personnummer
12345678 har e-legitimation med den här publika nyckeln. Staten skapar
också en "eleg-cert-fil", ett digitalt dokument som säger samma sak,
alltså att Svea Svensson med personnummer 12345678 har e-legitimation
med den här publika nyckeln. Staten lägger till en elektronisk signatur
i eleg-cert-filen med hjälp av statens privata nyckel och ger sedan en
kopia av eleg-cert-filen till Svea. Poängen med det här är att Svea
senare kan visa upp eleg-cert-filen för en tredje part och den tredje
parten kan då veta att just den publika nyckeln hör till Svea Svensson
med personnummer 12345678.

Efter att staten utfärdat e-legitimationen till Svea har hon alltså sin
privata nyckel och sin eleg-cert-fil. De två delarna tillsammans utgör
hennes e-legitimation. Hon kan visa eleg-cert-filen för andra när hon
vill, men sin privata nyckel visar hon aldrig för någon annan.

Nu tänker vi oss att Svea vill använda sin e-legitimationen till att
bevisa sin identitet för en tredje part, t.ex. företaget TredjePart som
behöver identifiera sina kunder. Kommunikationen sker i en krypterad
kanal t.ex. via HTTPS (TLS). Svea skickar först sin eleg-cert-fil till
TredjePart och säger därmed "jag är Svea Svensson med personnummer
12345678". TredjePart vet i det läget inte om det verkligen är Svea
eller om det är någon annan som skickat eleg-cert-filen, men Svea kan
bevisa det genom att utföra operationer som bara är möjliga för den som
har hennes privata nyckel. TredjePart skickar en utmaning till Svea som
bara går att svara på för den som har Sveas privata nyckel. En bedragare
som kommit över eleg-cert-filen kommer alltså att misslyckas här, men
Svea själv kan övertyga TredjePart tack vara att hon har sin privata nyckel.

Staten behöver kunna återkalla en tidigare utfärdad e-legitimationen,
till exempel om det befaras att den privata nyckeln kan komma i orätta
händer. Ett sätt att hantera det är att staten har en publik lista
(revocation list) över återkallade e-leg i form av de publika nycklarna.
Alla som verifierar e-leg behöver kolla mot den listan när någon
använder ett e-leg för att säkerställa att det inte har återkallats.

Det kan också behövas ett sätt att begränsa giltighetstiden för
utfärdade e-leg. Det kan hanteras genom att ett sista datum skrivs i
eleg-cert-filen.

Systemet kan bygga helt på öppna standarder, det enda som är hemligt är
de privata nycklarna (statens och individens).

Hanteringen av individens privata nyckel är förstås väldigt viktig. Det
är bara individen själv som har nyckeln och har ansvaret att förvara den
säkert. Individen har själv kontroll. Olika företag kan tävla om att
erbjuda olika säkra lösningar (hårdvara+mjukvara) som individen kan
välja att använda men individen har också friheten att välja att göra på
sitt eget sätt.

Om man vill beskriva det här med termer som brukar användas kring
Self-sovereign identity (SSI), i så fall är eleg-cert-filen en
"verifiable credential", staten är "issuer", individen är "holder" och
tredje part är "verifier".

Vad tror ni, är jag helt ute och cyklar eller kan något i den här stilen
vara möjligt?

Har jag missat något viktigt, i så fall vad?

Vänliga hälsningar
Elias

Listan för diskussion om fri och öppen e-legitimation är öppen för alla.
Listan arkiveras och publiceras öppet på internet.
Arkiv: https://lists.dfri.se/eleg-projekt/