FriBID forum

FriBID är ett fritt program för e-legitimation med BankID.

You are not logged in.

#1 2010-04-02 17:32:22

astaro
Member
Registered: 2010-04-02

Smarta kort

Hej,
Jag undrar om det är någon som är intresserad att utveckla stöd för BankID på kort? Handelsbanken delar ut fria kortläsare till alla just nu. Vore väldigt trevligt att få bra stöd för detta i linux!
SHB säger sig ha stöd för ubuntu 8.04 men det fungerar inte längre för mig sedan jag uppdaterade till 9.10 (kraschar hela firefox). Deras kundsupport verkar helt clueless!

Offline

#2 2010-04-17 22:57:10

MDC
Member
Registered: 2010-04-11

Re: Smarta kort

Håller med, det vore toppen. Men som jag förstått det så är det inte helt enkelt. Först måste man skapa en drivrutin (usb userspace iofs) för kortläsaren och om inte leverantören vill ge ut information om hur man skapar den så får man reverse enginer:a genom att sniffa usb. Sen kan man lägga in stöd i programmet för att prata med PKCS#11 (också lurigt om jag förstått det rätt). Men vi får hoppas någon vill ta sig an uppgiften smile

Offline

#3 2010-04-18 00:44:14

MDC
Member
Registered: 2010-04-11

Re: Smarta kort

Har kollat lite på det här och kommit fram till följande (är dock ingen expert på området så ta infon med en nypa salt). Tydligen så finns det en standard för kortläsare som heter typ CCID. I Ubuntu finns ett paket med drivrutiner (libccid) som gör att nästan alla kortläsare som följer standard fungerar. Jag har testat det och så klart fungerade det inte för att "äkta" kortläsare ska ge information om vad de klarar av (typ capabilities) via någon sträng som heter "extra" och "extralen". extralen ska vara 54. Handelsbankens läsare säger extralen = 0. Alltså följer den inte standard. Det finns i koden även en liten patch för en annan kortläsare som inte följer standard och då letar den i andra fält efter något med längden 54, jag provade det på min läsare men det gick inte heller.

ccid paketet har även en liten parser för att gå igenom alla usb enheter och skriva ut om de är en CCID enhet eller inte, detta är vad den ger för min läsare:
Parsing USB bus/device: 004/007
idVendor:  0x0B0C  iManufacturer: Todos Data System AB
idProduct: 0x003F  iProduct: Handelsbanken card reader
  Found a CCID/ICCD device at interface 0
idVendor: 0x0B0C
  iManufacturer: Todos Data System AB
idProduct: 0x003F
  iProduct: Handelsbanken card reader
bcdDevice: 0.00 (firmware release?)
bLength: 9
bDescriptorType: 4
bInterfaceNumber: 0
bAlternateSetting: 0
bNumEndpoints: 2
  bulk-IN and bulk-OUT
bInterfaceClass: 0xFF
  NOT A CCID DEVICE
  Class is 0xFF (proprietary)
bInterfaceSubClass: 255
  UNSUPPORTED SubClass
bInterfaceProtocol: 255
  UNSUPPORTED InterfaceProtocol
iInterface: MCI_OSR_0205
USB extra length is too short: 0

  NOT A CCID DEVICE


Ganska tydligt. Ingen CCID enhet där inte.

Så, några tänkbara scenarion;
1) de har gjort en fuling för de här läsarna och lagt vilka "capabilities" de ska ha i kod istället för läsaren och i övrigt följer de standard
2) man måste kanske skicka något init kommando till enheten för att den ska fungera som standard, kanske även i kombination med 1)
3) de har ett helt eget sätt att prata med enheten, inte helt omöjligt då den har några knappar på sig som inte känns som standard alls (login, buy, sign, code)

1) och 2) är ganska lätta att testa sig fram på, 1) är bara att prova lite olika kommandon och hoppas att läsaren / kortet inte brinner upp och 2) är att sniffa usb och se vad den skickar.
3) väldigt mycket sniffning...

En idé kan ju vara att ta kontakt med todos / bankerna och se om de kan släppa specar till läsarna alternativt ge ut koden för drivrutinera.

Offline

#4 2010-04-18 10:56:34

Nille
Member
Registered: 2010-03-31

Re: Smarta kort

Todos har Linuxstöd i binär form för RedHat och Debian http://www.todos.se/index.php/download/drivers
Så en kontakt med Todos vore nog inte fel.

Hittade en öppen drivrutin för den äldre Argos Mini men vet inte hur den skiljer sig från Argos Mini II
http://www.citi.umich.edu/projects/smar … c7816.html

Även http://pcsclite.alioth.debian.org/ bör kontrolleras då den står med som att den borde fungera http://pcsclite.alioth.debian.org/shouldwork.html

Skulle nog haft en läsare hemma idag när man har tiden att testa sad

Last edited by Nille (2010-04-18 10:59:14)

Offline

#5 2010-04-18 11:13:18

MDC
Member
Registered: 2010-04-11

Re: Smarta kort

@Nille, problemet är den läsaren vi har fått inte är en Argos, utan en OEM version av C200 (?), den till och med heter "Handelsbanken card reader" om man kör lsusb. Men visst, fråga dem kan man alltid göra, vill du göra det? smile

Offline

#6 2010-04-18 12:23:40

Nille
Member
Registered: 2010-03-31

Re: Smarta kort

Ojdå då blev det lite fel wink Men jag både läser och skriver dåligt så är inte förvånad.
Fungerar inte handelsbankens drivrutin eller krashar den? http://www.handelsbanken.se/shb/INeT/IC … endocument
Visserligen stängd samt tveksamt 64bit stöd då det är en binär.
För det är väl libshbecrDeb.so som används till C200

Offline

#7 2010-04-18 15:04:12

MDC
Member
Registered: 2010-04-11

Re: Smarta kort

@Nille, visst, finns det en 64-bits binär (verkar inte finnas i dagsläget iaf) blir det ju enklare men då blir det ju inte helt öppet heller vilket är lite synd. Men det går ju att börja så och hacka ihop drivrutinen senare.

Offline

#8 2010-04-18 16:37:40

astaro
Member
Registered: 2010-04-02

Re: Smarta kort

Hej,
Det är egentligen två saker, den ena är att få till open source drivrutiner för Handelsbankens och Nordeas kortläsare (som verkar vara identiska förutom utseendet). Henrik Nordström (från SQUID projektet) hade fått till open source drivrutiner för en annan TODOS läsare (argos mini): http://www.henriknordstrom.net/code/TodosArgosMiniII/

Jag vet inte om det går att bygga vidare på det... Vem vet kanske man kan få lite hjälp av Henrik själv? ;-)

Annars så har jag märkt att kortet fungerar utmärkt (än så länge bara med Nexus) med andra läsare som stöds av pcsc drivrutinerna (det är bara att installera pscs-tools och pcscd i ubuntu).

Den andra delen är att kolla vilka APDU som används för att kommunicera med chipet på kortet och implementera detta i fribid. Det verkar vara genomförbart med hjälp av pcsc libs och relativt enkelt bara man får tag på de APDU som används.

Så om det visar sig allt för komplicerat att få till drivrutiner för Handelsbankens läsare, skulle man kunna börja med att få till stöd för kortet med vanliga pcsc läsare (finns att köpa på dustin)...

Offline

#9 2010-04-19 21:38:24

Alcor
Member
Registered: 2010-04-19

Re: Smarta kort

Hej

Jag förstår inte riktigt vad ni pratar om, men jag har i alla fall en 64-bitars drivrutin till Handelsbankens läsare i deb-format om ni är intresserade. Fick den av Todos men fick den aldrig att fungera i Ubuntu.

Offline

#10 2010-04-19 21:48:23

MDC
Member
Registered: 2010-04-11

Re: Smarta kort

@Alcor, absolut, har du en sådan så får du gärna skicka den till mig eller lägga upp den på någonstans där vi kan få tag i den.

Last edited by MDC (2010-04-19 22:06:56)

Offline

#11 2010-04-20 21:17:15

MDC
Member
Registered: 2010-04-11

Re: Smarta kort

OK, tack vare Alcor har jag nu en 64-bitars rutin för läsaren och den fungerar bra. Dock var jag tvungen att ta bort .so-filen för den inbyggda läsaren i libccid för att den tog överhand och ville hantera läsaren, som den dock misslyckades med. Så den kan behövas patchas, men det är en annan historia. Kan även skicka kommandon till den via scriptor, vet dock inte riktigt vad jag ska skicka. Men, den fungerar iaf smile
Nästa steg är att titta på api för att prata med pcscd/libccid för att kunna signera och logga in......

Offline

#12 2010-04-21 07:12:52

MDC
Member
Registered: 2010-04-11

Re: Smarta kort

En fråga; Ligger PKCS#11 som ett lager ovanpå libpcsclite/libccid/pcscd (eller vad man nu ska kalla det) eller är det två helt olika standarder för samma sak?

Offline

#13 2010-04-21 07:32:23

MDC
Member
Registered: 2010-04-11

Re: Smarta kort

Verkar som att OpenSC gör precis det jag vill. Implementerar PKCS#11 för smarta kort.

Exempel:
http://www.opensc-project.org/libp11/br … les/auth.c

Verkar ju inte omöjligt smile

Offline

#14 2010-04-22 22:25:30

MDC
Member
Registered: 2010-04-11

Re: Smarta kort

Whohoo!!
Efter typ två dagars hårt letande och testande kan jag nu lyckats använda pkcs11 libben för att prata med kortet. Det fåniga såklart är att de var en liten liten konfig i en fil för att aktivera pinkodsinslagning på enheten och inte via datorn (man skickar in NULL som password). Finns även en standard för det, PC/SC 2.01 Secure Pin Entry [1]. Men, man måste då aktivera det med enable_pinpad = true i /etc/opensc/opensc.conf (jag kan tycka att det är lite dumt då den i kod [2] försöker se om kortläsaren har stöd för det - men men).

Nu är det "bara" att få fribid att signera med PKCS11 också, sen är det klart wink

[1] http://www.pcscworkgroup.com/specificat … 2.01.6.pdf
[2] http://www.opensc-project.org/opensc/br … csc.c#L885

Offline

#15 2010-04-22 22:51:04

samuellb
Administratör
Registered: 2010-02-15
Website

Re: Smarta kort

Härligt! Då är drivrutins/librarybiten löst big_smile

Om du bestämmer dig för att försöka implementera detta i FriBID, så hör av dig om du undrar något om koden.

Ändring: Eller du kanske kör binära drivrutiner fortfarande? Är inte så insatt på vad OpenSC/libbarna tillhandahåller för funktioner. Men i alla fall så är det ett stort steg på vägen.

Offline

#16 2010-04-22 23:08:27

MDC
Member
Registered: 2010-04-11

Re: Smarta kort

@samuellb, stämmer, fortfarande stängda drivrutiner, men tycker inte det borde vara så svårt att komma runt då de verkar följa standarder och så ändå. Kan bara vara någon init-grej som borde kunna avlyssnas via wireshark/libpcap eller liknande.

Tänkte att jag försöker hacka ihop något i koden lite slarvigt först som ett p-o-c - så kanske du får städa upp senare smile Men får se hur det blir, ska ju ha tid också wink

Offline

#17 2010-04-26 20:40:16

MDC
Member
Registered: 2010-04-11

Re: Smarta kort

@samuellb, finns du på irc någonstans. Har lite frågor kring kryptodelen i fribid o tänkte att det är smidigare att ta över chat än forum/mail. Är du (eller någon annan) duktig på libopenssl - ser ut som att jag kan ha några frågor om det...

Offline

#18 2010-04-26 21:56:12

samuellb
Administratör
Registered: 2010-02-15
Website

Re: Smarta kort

samuellb @ quakenet

Har tyvärr lite ont om tid nu i veckan, men fråga på så svarar jag på det jag hinner.

Offline

#19 2010-04-27 21:00:32

arran
Member
Registered: 2010-04-27

Re: Smarta kort

Jag har en todos argos mini ii (från nordea) som fungerar bra med källkoden från todos tillsammans med pcsclite och nexus. pcsclite säger säg ha stöd för argos mini ii, men den som listas på pcsclite's hemsida har inte samma prodid som nordea's version. Jag misstänker att de är identiska dock.

Nordea ger nuförtiden ut en annan dosa som heter Todos NCR1. Den verkar vara väldigt lik (om inte samma som) Todos C200. Någon som vet hur det förhåller sig egentligen?

Offline

#20 2010-04-27 21:48:18

MDC
Member
Registered: 2010-04-11

Re: Smarta kort

@arran, skulle gissa på att Nordeas dosa fungerar ungefär som Handelsbankens som verkar vara en OEM version av Todos C200 och därför inte helt kompatibel med libccid/pcsclite. Men jag gissar på att det är ganska lätt att komma förbi det med något initieringskommando då den i övrigt verkar följa standarder, men som sagt, det är spekulationer. Har du provat 64-bits drivrutinen för handelsbankens dosa och se om den fungerar?

Offline

#21 2010-05-01 17:02:11

MDC
Member
Registered: 2010-04-11

Re: Smarta kort

Goda nyheter.
Jag har precis lyckats logga in på Handelsbanken med en dosa + kort med hjälp av (sönder-) hackad fribid smile

Den närmsta tiden blir det till att snygga till koden samt göra om GUI mm. Men det här är en bra bit på vägen!

Offline

#22 2010-05-02 00:29:13

MDC
Member
Registered: 2010-04-11

Re: Smarta kort

Sådär, en första patch finns nu tillgänglig för den modige.

http://mejlamej.nu/fribid_smartcard.patch

Långt ifrån färdig men verkar fungera rätt bra (kräver dock att man matar in pin kod från dosan). Förmodligen läcker även programmet minne nu också. Men prova gärna och kom med synpunkter smile

Kräver även att man får ordning på pcscd och drivrutin för dosan vilket är lite småpyssligt men verkar fungera om man tar bort den inbyggda drivrutinen helt...

Offline

#23 2010-05-02 00:37:22

samuellb
Administratör
Registered: 2010-02-15
Website

Re: Smarta kort

Coolt smile Jag ska ändra i FriBID-koden lite så att den blir mer oberoende av legitimationstyp när jag får tid över, så att du kan göra en snyggare patch. Som det är nu så är den ganska låst till fillegitimationer.

Offline

#24 2010-05-12 07:36:18

astaro
Member
Registered: 2010-04-02

Re: Smarta kort

He snyggt jobbat MDC!!
Skulle du möjligen orka skriva en kort how-to för vad man ska göra för att få igång det? Kort vilka paket behövs (jag antar att man behöver pcscd? opensc?) och vilka drivrutiner du använder.
Jag skulle gärna vilja komma igång och hjälpa till fesöka / debugga / förbättra ;-)

Offline

#25 2010-05-12 15:54:48

MDC
Member
Registered: 2010-04-11

Re: Smarta kort

astaro, absolut. Ska försöka få igång allt på en annan dator för att se vad som faktiskt behövs. Borde ha tid med det ikväll/helgen. Skulle du behöva mer hjälp så går det alldeles utmärkt att höra av dig smile

samuellb, kan man få önska sig en egen branch (typ smartcard) + konto i git så att vi kan jobba lite smidigare ihop?

Offline

Board footer

Powered by FluxBB