Nu talar jag lite i egen sak men vill göra projektet åtminstone medveten om en ny teknisk lösning för identitet: Tillitis TKey.
En av våra första PoC-användningar av TKey är en SSH-agent (host-sidan) som tillsammans med en ed25519-signerare (device-sidan) gör att man kan använda TKey som sin SSH-identitet utan att den privata nyckeln någonsin lämnar enheten eller ens sparas persistent.
TKey är inte alls lika polerad eller ens inriktad på att ersätta en traditionell legitimation som BankID eller Freja e-ID men kan nog vara intressant för projektdeltagarna att känna till. Med lite hjälp från host-sidan kan man bygga mer avancerade applikationer.
Tillitis TKey är en hårdvarulösning baserad på ett FPGA-chip som vi stoppar in vår hårdvarudesign i. Det är en liten dator (32-bitars RISC-V-processor) som kör godtyckliga uppladdade program. Det riktigt intressanta är att programmen ovillkorligen mäts in och skapar en unik identitet för varje program. Den identiteten kan till exempel användas som en privat nyckel som i vår signer/SSH-agent.
Hårdvarudesign, alla ritningar och alla program är släppta under fria licenser. Huvudrepo med bland annat hårdvarudesign och firmware är här:
https://github.com/tillitis/tillitis-key1
Host- och device-appar inklusive SSH-agenten finns här:
https://github.com/tillitis/tillitis-key1-apps
Vi har skrivit en emulator av TKey med hjälp av qemu så man kan testköra utan att faktiskt ha någon hårdvara:
https://github.com/tillitis/qemu
Använd branchen "tk1" i qemu.
Företagets websida:
Vi hänger på #tillitis på OSFC.
Hej MC,
Tack för att du berättar om det här! Jag har några frågor.
En av våra första PoC-användningar av TKey är en SSH-agent (host- sidan) som tillsammans med en ed25519-signerare (device-sidan)
Få se nu om jag förstår rätt: om jag skulle ha en TKey som jag pluggar in i en USB-port i min dator, då är min dator "host-sidan" och TKey är "device-sidan"?
TKey är inte alls lika polerad eller ens inriktad på att ersätta en traditionell legitimation som BankID eller Freja e-ID men kan nog vara intressant för projektdeltagarna att känna till.
Okej, men om vi ändå skulle tänka ett steg till på hur det skulle gå till att använda TKey för e-legitimation, hur skulle det kunna gå till? Jag föreställer mig att utfärdaren (kunde vara Skatteverket eller Polisen eller annan myndighet, eller någon privat aktör) då skulle ge varje person en egen TKey som personen har med sig i fickan, precis som man har körkort och andra id-kort i plånboken. Utfärdaren skulle också upprätthålla ett register med motsvarande publika nycklar där det framgår vem som är vem, och där det blir möjligt att återkalla en legitimation när det behövs. Skulle det gå att göra ungefär så?
Hårdvarudesign, alla ritningar och alla program är släppta under fria licenser.
Om det läser jag i readme-filen här https://github.com/tillitis/tillitis-key1/blob/main/README.md följande: "All of the TKey software, firmware, FPGA Verilog source code, schematics and PCB design files are open source. Like all trustworthy security software and hardware should be. This in itself makes it different, as other security tokens utilize at least some closed source hardware for its security-critical operations."
Är Yubikey och Nitrokey exempel på "other security tokens" som har "some closed source hardware"? Hur ser argumentationen ut där, hävdar de att det är nödvändigt för säkerheten att ha hemlig hårdvara, medan du menar att det inte är nödvändigt?
/ Elias
Hej igen,
Ursäkta att det tagit lite tid att svara. Vi jobbar för fullt på att bli lite mer färdiga med Tillitis TKey.
Elias Rudberg mail@eliasrudberg.se, 2022-12-20 05:21 (+0100):
En av våra första PoC-användningar av TKey är en SSH-agent (host- sidan) som tillsammans med en ed25519-signerare (device-sidan)
Få se nu om jag förstår rätt: om jag skulle ha en TKey som jag pluggar in i en USB-port i min dator, då är min dator "host-sidan" och TKey är "device-sidan"?
Ja.
TKey är inte alls lika polerad eller ens inriktad på att ersätta en traditionell legitimation som BankID eller Freja e-ID men kan nog vara intressant för projektdeltagarna att känna till.
Okej, men om vi ändå skulle tänka ett steg till på hur det skulle gå till att använda TKey för e-legitimation, hur skulle det kunna gå till? Jag föreställer mig att utfärdaren (kunde vara Skatteverket eller Polisen eller annan myndighet, eller någon privat aktör) då skulle ge varje person en egen TKey som personen har med sig i fickan, precis som man har körkort och andra id-kort i plånboken. Utfärdaren skulle också upprätthålla ett register med motsvarande publika nycklar där det framgår vem som är vem, och där det blir möjligt att återkalla en legitimation när det behövs. Skulle det gå att göra ungefär så?
Ja. Men om man gör exakt som du säger skulle man i så fall behöva slå upp och kontrollera denna publika nyckel centralt varje gång man använde den. Det känns lite primitivt att behöva kontrollera varje gång, kräva att de man legitimerar sig för har uppkoppling hela tiden och att alla är beroende av en central tjänst.
Istället kan man tänka sig att man registrerar sin TKey första gången genom att signera någon slags utmaning. Sedan utfärdas något slags certifikat signerat av utfärdaren som man sparar någonstans hos användaren (inte riktigt ännu inne i själva TKey men det kommer troligen).
Ett sådant certifikat innehåller då typiskt:
- lite information om dig: det som ett vanligt leg innehåller. - publika nyckeln som din TKey fick av signer-appen. - tidsstämpel för utfärdande. - giltighetstid.
Allt är i sin tur signerat av utfärdaren.
Då kan man sedan presentera både certifikatet och en egen signatur gjort över något meddelande med TKey till den man vill legitimera sig för. De behöver i sin tur bara hålla reda på utfärdarens publika nyckel och vid varje identifiering verifiera din signatur mot publika nyckeln i certifikatet för att se att allt stämmer.
Till att börja med måste ett sådant certifikat sparas utanför TKey för det finns inget sätt att lagra något i TKey som den ser ut just nu.
Hårdvarudesign, alla ritningar och alla program är släppta under fria licenser.
Om det läser jag i readme-filen här https://github.com/tillitis/tillitis-key1/blob/main/README.md följande: "All of the TKey software, firmware, FPGA Verilog source code, schematics and PCB design files are open source. Like all trustworthy security software and hardware should be. This in itself makes it different, as other security tokens utilize at least some closed source hardware for its security-critical operations."
Är Yubikey och Nitrokey exempel på "other security tokens" som har "some closed source hardware"? Hur ser argumentationen ut där, hävdar de att det är nödvändigt för säkerheten att ha hemlig hårdvara, medan du menar att det inte är nödvändigt?
Jag tror det inte har med säkerheten att göra i första hand. Det är nog ett rent komersiellt intresse för att undvika att det dyker upp billiga kopior.