LINUX.ORG.RU
ФорумAdmin

JaCartaGOST. Можно ли как то понять в какой USB подключен ключ?

 , , ,


0

1

Доброго времени суток, есть ли возможность понять в какой USB порт подключен ключ Jacarta, при условии что этих ключей несколько..их нужно отделить друг от друга..

lsusb выводит следующее:

Bus 004 Device 003: ID 24dc:0101  
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 003: ID 24dc:0101 

24dc:0101 - это у нас и есть JacartaGost..

я могу узнать серийный номер каждой он уникален:

 pkcs11-tool -L --module /lib64/libjcPKCS11.so

вывод примерно следующий:

Slot 0 (0x0): Aladdin R.D. JaCarta [SCR Interface] (000000000000) 00 00
  token label        :  JaCarta GOST
  token manufacturer : Aladdin R.D.
  token model        : eToken GOST
  token flags        : login required, rng, token initialized, PIN initialized, readonly
  hardware version   : 0.0
  firmware version   : 0.0
  serial num         : 4e3211164312304d
Slot 1 (0x1): Aladdin R.D. JaCarta [SCR Interface] (000000000000) 01 00
  token label        :  JaCarta GOST
  token manufacturer : Aladdin R.D.
  token model        : eToken GOST
  token flags        : login required, rng, token initialized, PIN initialized, readonly
  hardware version   : 0.0
  firmware version   : 0.0
  serial num         : 4e350006432212a

Не могу понять как мне мух от котлет друг от друга отличить.

Посмотрите вывод ″lsusb -v″, там может быть серийник. bus это номер usb-контроллера и по идее он не изменяется при перезагрузках. Если у вас физические порты относятся к разным usb-контроллерам, то по bus и идентифицируйте.

mky ★★★★★
()
Ответ на: комментарий от mky

Если контроллеров (директорий в /dev/bus/usb) меньше, чем устройств, будет грусть-печаль.

anonymous
()
Ответ на: комментарий от mky

В том то и проблема что все токены в один порт воткнуты..Если их втыкать в разные..портов не хватит.

lsusb -v нет серийника..вывод полностью одинаков.

vsafonin
() автор топика

Они у тебя как минимум в разные контроллеры воткнуты. идёшь в /sys/bus/usb/devices и там ищешь один и второй. Дальше пытаешься соотнести с выводом софтины.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от vsafonin

Ничего не понял.

тебе английским по белому пишут, что Bus 004 и Bus 003. не забывай, у тебя в системнике контроллеров usb больше одного.

Dark_SavanT ★★★★★
()
Ответ на: комментарий от vsafonin

Загляни в исходники и посмотри как назначаются слоты. А вообще - если устройство не возвращает серийник в специально предназначенном для этого стандартном поле USB - это не огонь устройство.

Dark_SavanT ★★★★★
()
Последнее исправление: Dark_SavanT (всего исправлений: 1)
Ответ на: комментарий от Dark_SavanT

Это виртуалка..я тут пытаюсь понять что мне с этим делать.

вот что на реальном хосте:

Bus 003 Device 023: ID 24dc:0101
Bus 003 Device 020: ID 24dc:0101
Bus 003 Device 021: ID 24dc:0101
Bus 003 Device 014: ID 24dc:0101
vsafonin
() автор топика
Ответ на: комментарий от Dark_SavanT

ну вот такой вот JacartaGost...

Bus 003 Device 014: ID 24dc:0101
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x24dc
  idProduct          0x0101
  bcdDevice           25.14
  iManufacturer           1
  iProduct                2
  iSerial                 3
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           93
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          4
    bmAttributes         0x80
      (Bus Powered)
    MaxPower               44mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass        11 Chip/SmartCard
      bInterfaceSubClass      0
      bInterfaceProtocol      0
      iInterface              5
      ChipCard Interface Descriptor:
        bLength                54
        bDescriptorType        33
        bcdCCID              1.10  (Warning: Only accurate for version 1.0)
        nMaxSlotIndex           0
        bVoltageSupport         2  3.0V
        dwProtocols             3  T=0 T=1
        dwDefaultClock       4800
        dwMaxiumumClock      4800
        bNumClockSupported      0
        dwDataRate          12903 bps
        dwMaxDataRate      999936 bps
        bNumDataRatesSupp.      0
        dwMaxIFSD             254
        dwSyncProtocols  00000000
        dwMechanical     00000000
        dwFeatures       00010330
          Auto clock change
          Auto baud rate change
          CCID can set ICC in clock stop mode
          NAD value other than 0x00 accpeted
          TPDU level exchange
        dwMaxCCIDMsgLen       271
        bClassGetResponse      00
        bClassEnvelope         00
        wlcdLayout           none
        bPINSupport             0
        bMaxCCIDBusySlots       1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval             254
vsafonin
() автор топика

Неясно, чего собственно ты хочешь добиться, но может тебе поможет вариант, примерно как udev поступает с дисками? Я об /dev/disk/by-id, by-uuid,.... udev с помощью дополнительных программ создаёт уникальные ссылки на устройства.

Elyas ★★★★★
()
Последнее исправление: Elyas (всего исправлений: 1)
Ответ на: комментарий от vsafonin

Лучше lsusb запускать от root (или через sudo), не знаю, поможет ли это серийнику, но хотя бы строка

Couldn't open device, some information will be missing

исчезнет.

mky ★★★★★
()
Ответ на: комментарий от Elyas

Я их прокидываю в вируталки, где с ними работают бухи. после каждого ребута тот еще квест найти чей ключ: 1) сейчас я кидаю его в виртуалку 2) смотрю серийник 3) прокидываю в нужну виртуалку. Вариант вынести эту логику на клиента (как должно быть по идее) - не подходит..ибо через RDP оно вечно отваливается...

Про UDEV:

А можно пнуть в сторону где об этом говориться?

vsafonin
() автор топика
Ответ на: комментарий от vsafonin

/lib/udev/rules.d/*storage*

Тебе нужно сделать замену blkid для токенов, ну и правило для udev, естественно, написать. Если нужен ликбез по UDEV вообще, то найдёшь.

Elyas ★★★★★
()
Ответ на: комментарий от vsafonin

Могу предложить разве что udev правило, в котором запускаешь pkcs11-tool, смотришь какой новый токен появился и куда-то кладёшь связку busaddr/serial. список уже занятых виртуальных слотов так же где-то держишь.

Dark_SavanT ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.