Activation Codes and Methods, Hardware Details, Sniffing
Post Reply
slytry
Posts: 5
Joined: 05 Mar 2016, 09:33

InfoCert Business Key - SmartCard/Reader emulation

Post by slytry » 05 Mar 2016, 10:54

Good morning.
I have a usb key for digital signature and site authentication that, teorically, should be perfectly supported.
It's that:
TargetVendor=0x072f
TargetProduct=0x100d
I even have got my detailed file 072f:0x100d in /etc/usb_modeswitch.d:
# InfoCert Business Key (SmartCard/Reader emulation)
TargetVendor=0x072f
TargetProduct=0x90cc
MessageEndpoint=0x02
MessageContent="01b0000000000000000000000000000000000000000000000000000000000000"
NoDriverLoading=1

My distribution is Antergos KDE (ArchLinux) 64x, with "usb_modeswitch 2.3.0-1" that comes already installed.
The system is supposed to switch to:
TargetVendor=0x072f
TargetProduct=0x90cc
But, as far, it did work just one time, and that one time the usb key was working great.
That sigle time I was removing then reinstalling all the package to make it work (pcsc, ccid, etc.).

My lsusb now - key not working - is:
Bus 004 Device 004: ID 0458:003a KYE Systems Corp. (Mouse Systems) NetScroll+ Mini Traveler / Genius NetScroll 120
Bus 004 Device 003: ID 046d:c31c Logitech, Inc. Keyboard K120
Bus 004 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 004: ID 072f:100d Advanced Card Systems, Ltd
Bus 002 Device 003: ID 048d:1167 Integrated Technology Express, Inc.
Bus 002 Device 002: ID 058f:6254 Alcor Micro Corp. USB Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

The day it was flawlessly working I had the right switched lsusb:
Bus 004 Device 004: ID 0458:003a KYE Systems Corp. (Mouse Systems) NetScroll+ Mini Traveler / Genius NetScroll 120
Bus 004 Device 003: ID 046d:c31c Logitech, Inc. Keyboard K120
Bus 004 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 005: ID 072f:90cc Advanced Card Systems, Ltd ACR38 SmartCard Reader
Bus 001 Device 004: ID 048d:1167 Integrated Technology Express, Inc.
Bus 001 Device 003: ID 058f:6254 Alcor Micro Corp. USB Hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

And my pcsc_scan was great:
PC/SC device scanner
V 1.4.25 (c) 2001-2011, Ludovic Rousseau <ludovic.rousseau@free.fr>
Compiled with PC/SC lite version: 1.8.13
Using reader plug'n play mechanism
Scanning present readers...
0: ACS ACR 38U-CCID 00 00

Fri Mar 4 18:23:25 2016
Reader 0: ACS ACR 38U-CCID 00 00
Card state: Card inserted, Shared Mode,
ATR: 3B FF 18 00 FF 81 31 FE 55 00 6B 02 09 03 03 01 11 01 43 4E 53 11 31 80 8C

ATR: 3B FF 18 00 FF 81 31 FE 55 00 6B 02 09 03 03 01 11 01 43 4E 53 11 31 80 8C
+ TS = 3B --> Direct Convention
+ T0 = FF, Y(1): 1111, K: 15 (historical bytes)
TA(1) = 18 --> Fi=372, Di=12, 31 cycles/ETU
129032 bits/s at 4 MHz, fMax for Fi = 5 MHz => 161290 bits/s
TB(1) = 00 --> VPP is not electrically connected
TC(1) = FF --> Extra guard time: 255 (special value)
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) = 55 --> Block Waiting Integer: 5 - Character Waiting Integer: 5
+ Historical bytes: 00 6B 02 09 03 03 01 11 01 43 4E 53 11 31 80
Category indicator byte: 00 (compact TLV data object)
Tag: 6, len: B (pre-issuing data)
Data: 02 09 03 03 01 11 01 43 4E 53
Mandatory status indicator (3 last bytes)
LCS (life card cycle): 11 (Proprietary)
SW: 3180 (Error not defined by ISO 7816)
+ TCK = 8C (correct checksum)

Then, arrested the pc, the day after nothing is working.
Now pcsc_scan gives me nothing, just stuck on "waiting".

I tried to give on console
$ sudo usb_modeswitch -v 072f -p 100d -V 072f -P 90cc -m 0x2 -M 01b0000000000000000000000000000000000000000000000000000000000000
This is the error I got:
Look for target devices ...
No devices in target mode or class found
Look for default devices ...
product ID matched
Found devices in default mode (1)
Access device 004 on bus 002
Get the current device configuration ...
Current configuration number is 1
Use interface number 0
Error: response endpoint not given or found. Abort.

Any help would be appreciated.

Josh
Site Admin
Posts: 6570
Joined: 03 Nov 2007, 00:30

Re: InfoCert Business Key - SmartCard/Reader emulation

Post by Josh » 05 Mar 2016, 15:15

The immediate thought that comes to mind:

If you installed the software from the device, it's not unlikely that a proprietary mode-switch tool was included - which may now collide with usb_modeswitch.

You can try to disable usb_modeswitch globally (see /etc/usb_modeswitch.conf) and watch what happens by calling "dmesg" repeatedly after re-inserting the device.

When running usb_modeswitch on the command line, skip the endpoint parameter "-m"; this should not be needed.

slytry
Posts: 5
Joined: 05 Mar 2016, 09:33

Re: InfoCert Business Key - SmartCard/Reader emulation

Post by slytry » 05 Mar 2016, 17:17

Thank you for answering.
I installed no software from the device, just ccid (along with pcsc, etc.).

This is the result of various dmesg;

[ 2.043811] hid-generic 0003:072F:100D.0004: hiddev0,hidraw3: USB HID v1.00 Device [Bit4id Key4] on usb-0000:00:1a.0-1.6.2/input0

[ 2.043811] hid-generic 0003:072F:100D.0004: hiddev0,hidraw3: USB HID v1.00 Device [Bit4id Key4] on usb-0000:00:1a.0-1.6.2/input0

[ 2.043811] hid-generic 0003:072F:100D.0004: hiddev0,hidraw3: USB HID v1.00 Device [Bit4id Key4] on usb-0000:00:1a.0-1.6.2/input0

[ 2.059168] hid-generic 0003:072F:100D.0004: hiddev0,hidraw3: USB HID v1.00 Device [Bit4id Key4] on usb-0000:00:1a.0-1.5.2/input0

[ 14.375280] hid-generic 0003:072F:100D.0004: hiddev0,hidraw3: USB HID v1.00 Device [Bit4id Key4] on usb-0000:00:1a.0-1.5.2/input0

[ 2.053171] hid-generic 0003:072F:100D.0004: hiddev0,hidraw3: USB HID v1.00 Device [Bit4id Key4] on usb-0000:00:1a.0-1.5.2/input0

I tried uninstalling usb_modswitch, instead of just disabling.

By the way, the result of cat /usr/share/usb_modeswitch/072f:100d:
$ cat /usr/share/usb_modeswitch/072f:100d
# InfoCert Business Key (SmartCard/Reader emulation)
TargetVendor=0x072f
TargetProduct=0x90cc
MessageEndpoint=0x02
MessageContent="01b0000000000000000000000000000000000000000000000000000000000000"
NoDriverLoading=1

Josh
Site Admin
Posts: 6570
Joined: 03 Nov 2007, 00:30

Re: InfoCert Business Key - SmartCard/Reader emulation

Post by Josh » 05 Mar 2016, 22:48

Did you run the manual command without the "-m" parameter?

slytry
Posts: 5
Joined: 05 Mar 2016, 09:33

Re: InfoCert Business Key - SmartCard/Reader emulation

Post by slytry » 05 Mar 2016, 23:04

Yes, I tried:
$ sudo usb_modeswitch -v 072f -p 100d -V 072f -P 90cc -M 01b0000000000000000000000000000000000000000000000000000000000000
Look for target devices ...
No devices in target mode or class found
Look for default devices ...
product ID matched
Found devices in default mode (1)
Access device 008 on bus 001
Get the current device configuration ...
Current configuration number is 1
Use interface number 0
Error: message endpoint not given or found. Abort

Even:
$ sudo usb_modeswitch -v 072f -p 100d -V 072f -P 90cc 0x2 -M 01b0000000000000000000000000000000000000000000000000000000000000
and the error is the same.

Josh
Site Admin
Posts: 6570
Joined: 03 Nov 2007, 00:30

Re: InfoCert Business Key - SmartCard/Reader emulation

Post by Josh » 06 Mar 2016, 09:52

Hmm, that is very unexpected.

I'd like to see more about the properties of this device; if you would be so kind and post the output of

Code: Select all

lsusb -v -d 072f:100d
As you may already know, you can redirect the output to a simple text file by adding " > infocert.txt" to that command line (choose any filename you like).

slytry
Posts: 5
Joined: 05 Mar 2016, 09:33

Re: InfoCert Business Key - SmartCard/Reader emulation

Post by slytry » 06 Mar 2016, 11:12

This is the output

Code: Select all

Bus 001 Device 005: ID 072f:100d Advanced Card Systems, Ltd 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         8
  idVendor           0x072f Advanced Card Systems, Ltd
  idProduct          0x100d 
  bcdDevice           10.9c
  iManufacturer           1 
  iProduct                2 
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           41
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.00
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      34
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval              10
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval              10

slytry
Posts: 5
Joined: 05 Mar 2016, 09:33

Re: InfoCert Business Key - SmartCard/Reader emulation

Post by slytry » 06 Mar 2016, 13:02

This is what I installed to get it work:
pcsc-perl, pcsc-tools, ccid, pcscd, ibminilector38u-bit4id, opensc-opendnie-git.

Just to tell you, I have another partition - I was ready to delete - with Linux Mint, and there usb_modeswitch works great!

So, I think it's an issue coming from this distribution (Antergos). In both (Mint and Antergos) I didn't installed usb_modeswitch because it's already there.

I tried with a copy/paste from Mint to Antergos of a rule in /etc/udev/rules.d/:

Code: Select all

# InfoCert Business Key (SmartCard/Reader emulation)
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="072f", ATTRS{idProduct}=="100d", RUN+="/sbin/modprobe usbserial vendor=0x072f product=0x90cc"
But no success.

Post Reply