FriBID forum

FriBID är ett fritt program för e-legitimation med BankID.
OBS! FriBID är i praktiken nedlagt, och fungarar inte att använda längre.

You are not logged in.

#1 2014-01-22 15:28:14

SysGhost
Member
Registered: 2014-01-22

Får inte Nordeas NCR1 att fungera

Tjo.

Jag har här suttit under Arch Linux och experimenterat fram och tillbaka med massor av olika lösningar.
Till slut fastnar jag på en enda detalj: Nordeas drivrutin för kortläsaren NCR1 fungerar inte under ett 64 bits -system... alls.
Drivrutinen: http://www.nordea.se/sitemod/upload/roo … _Linux.zip

Jag har extraherat filerna:

unzip NCR1_Linux.zip
deb2targz NCR1_Linux.deb
mkdir NCR1
tar -xzf NCR1_Linux.tar.gz -C NCR1/
sudo cp -rv NCR1/usr/lib/pcsc/drivers/NordeaDeb.bundle /usr/lib/pcsc/drivers/

Jag startar sedan pcsc:

pcscd --foreground

När jag ansluter NCR1 läsaren, får följande felmeddelande:

00000000 dyn_unix.c:37:DYN_LoadLibrary() /usr/lib/pcsc/drivers/NordeaDeb.bundle/Contents/Linux/libNordeaDeb.so.1.0.0.0: /usr/lib/pcsc/drivers/NordeaDeb.bundle/Contents/Linux/libNordeaDeb.so.1.0.0.0: wrong ELF class: ELFCLASS32
00000030 readerfactory.c:996:RFInitializeReader() RFLoadReader failed: 0xFFFFFFFF80100014
00000007 readerfactory.c:312:RFAddReader() Nordea E-code Reader [MCI_OSR_0205] init failed.
00000006 hotplug_libudev.c:391:HPAddDevice() Failed adding USB device: Nordea E-code Reader

Första raden är rätt tydlig: Wrong ELFCLASS.
Det går alltså inte att ladda en 32 bitars drivrutin i ett 64 bitars system.

Nu måste jag alltså sätta upp en komplett 32 bitars chroot miljö enbart för en kortläsare... och vet inte om det ens kommer att fungera då heller.

Medans jag jobbar på det, är ni välkomna med förslag.

"Dosan" ifråga är alltså Nordeas gamla vita pryl:
http://www.nurmijarvi.linux.fi/w/images … NCR1.A.jpg

Last edited by SysGhost (2014-01-22 15:31:07)

Offline

#2 2014-02-03 22:49:36

manneorama
Member
Registered: 2014-02-03

Re: Får inte Nordeas NCR1 att fungera

Jag har exakt samma problem så jag kommer tyvärr inte med svar utan mest eventuellt grundlösa spekulationer smile.

Har själv även testat använda ccid (en generell drivrutinsimplementation för SC-läsare, finns i community-repot) utan framgång. Nu såhär på kvällskvisten sitter jag och leker med tanken att helt enkelt skriva en egen drivare.

Hittills har jag konstaterat att libbet inte är strippat eller "obfuskerat" på något sätt, alla symboler finns kvar vad jag kan se (nm -D libNordeaDeb.so.1.0.0.0). Jag har också konstaterat att vissa symboler verkar åtminstone delvis överensstämma med CCID-specen (http://www.usb.org/developers/devclass_ … Rev110.pdf). Så, anledningen till att den generella ccid-drivaren inte funkar är troligtvis för att man helt enkelt valt att rapportera fel parametrar (bInterfaceClass, bInterfaceSubClass samt bInterfaceProtocol (0xfff istället för 0x00h i det fallet) och ccid-drivaren är helt enkelt för anal för att acceptera detta. Det kan även vara så att dosan kräver något sorts magiskt kommando för att börja bete sig som den ska, vilket vore värre men inte lika troligt.

Jag har även roat mig med att använda USBPcap för att spela in kommunikationen mellan Windows och dosan vid en autentisering med VISA-kort på test.bankid.com, för att ha något att utgå från om jag bestämmer mig för att försöka.

Så, jag har aldrig gjort något liknande förut och inlärningskurvan lär väl vara minst vertikal, men det är ju ett alternativ om vi inte hittar någon annan lösning. Jag börjar bli trött på att banktjänster via internet funnits i femton år men fortfarande måste man böja sig framåt baklänges för att kunna använda tjänsterna under Linux.

PS. Jag läste på nåt forum att någon lyckats få ut källkod till någon annan dosa från Todo (tillverkaren av NCR1 alltså), men deras hemsida verkar vara stendöd så den vägen blir nog svår. Spontant känns en 32bit chroot, eller en windowsinstallation i en VM, som en litet tråkig lösning smile.

Offline

#3 2014-02-04 20:40:37

manneorama
Member
Registered: 2014-02-03

Re: Får inte Nordeas NCR1 att fungera

Ikväll har jag googlat runt lite, jämfört output från nm -D, och strings, med andra kortläsardrivare för att se om de alla är baserade på den öppna ccid-drivaren. De är alla snarlika, men då är ju också protokollet ganska tight.

Testade även att helt sonika pilla runt lite i .plist-filen för Handelsbankens 64-bitarsdrivare (samma dosa). Lyckades därmed få pcscd att börja kommunicera med dosan. Dock gick det, föga förvånande kanske, inte att autentisera sig med Nordeakortet någonstans, och "pkcs15-tool --list-applications" hävdade att kortet antingen är korrupt eller oanvändbart.

Fast igen alltså.

Offline

#4 2014-02-04 20:48:30

manneorama
Member
Registered: 2014-02-03

Re: Får inte Nordeas NCR1 att fungera

Däremot (många inlägg nu) verkar pcsc_scan känna igen Nordeakortet om man använder Handelsbankens drivare för läsaren.

Tue Feb  4 20:46:00 2014
Reader 0: Nordea E-code Reader [MCI_OSR_0205] 00 00
  Card state: Card inserted, 
  ATR: 3B E8 00 00 81 31 FE 45 00 73 C8 40 00 00 90 00 88

ATR: 3B E8 00 00 81 31 FE 45 00 73 C8 40 00 00 90 00 88
+ TS = 3B --> Direct Convention
+ T0 = E8, Y(1): 1110, K: 8 (historical bytes)
  TB(1) = 00 --> VPP is not electrically connected
  TC(1) = 00 --> Extra guard time: 0
  TD(1) = 81 --> Y(i+1) = 1000, Protocol T = 1 
-----
  TD(2) = 31 --> Y(i+1) = 0011, Protocol T = 1 
-----
  TA(3) = FE --> IFSC: 254
  TB(3) = 45 --> Block Waiting Integer: 4 - Character Waiting Integer: 5
+ Historical bytes: 00 73 C8 40 00 00 90 00
  Category indicator byte: 00 (compact TLV data object)
    Tag: 7, len: 3 (card capabilities)
      Selection methods: C8
        - DF selection by full DF name
        - DF selection by partial DF name
        - Implicit DF selection
      Data coding byte: 40
        - Behaviour of write functions: write OR
        - Value 'FF' for the first byte of BER-TLV tag fields: invalid
        - Data unit in quartets: 1
      Command chaining, length fields and logical channels: 00
        - Logical channel number assignment: No logical channel
        - Maximum number of logical channels: 1
    Mandatory status indicator (3 last bytes)
      LCS (life card cycle): 00 (No information given)
      SW: 9000 (Normal processing.)
+ TCK = 88 (correct checksum)

Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):
3B E8 00 00 81 31 FE 45 00 73 C8 40 00 00 90 00 88
    VISA Card (Skandinaviska Enskilda Banken) with Swedish BankID
    VISA card (Chinatrust Bank (Taiwan), dual-interface card with a Taipei Metro e-purse function)

Offline

Board footer

Powered by FluxBB