1 (2018-07-03 13:54:19 отредактировано igoro)

Тема: видимость vdToken в RHEL 7

Столкнулся со следующей проблемой.

vdToken не определяется операционной системой RHEL 7.5 как смарт-карта
В то время как ОС Windows 7 сразу определяет, что вставленное USB-устройство -- это смарт-карта неизвестного типа.

Подчеркну особо, что ни на машине с RHEL 7.5, ни на машине с Windows 7 не установлено никакого софта от Валидаты.
Но это и не нужно, т.к. наш use case заключается в следующем:

Мы редиректим этот vdTоken через rdp-сессию на машину, где валидатовский софт установлен.

В случае с Windows всё работает ОК:
запускаем mstsc.exe, на всяк.случай в .rdp файле указываем
redirectsmartcards:i:1

rdp-сервер видит, что ему в сессии передали смарткарту и после указания пин-кода обнаруживает на vdToken'е приватные ключи


А вот в случае с RHEL 7.5 система просто не понимает, что ей подсунули смарткарту.

Расскажу, как это выглядит с поддерживаемыми через opensc смарткартами:
Утилитой pcsc_scan можно определить, какие в точности смарткарты есть у вас в системе:

root@regl ~# pcsc_scan 
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.8
Using reader plug'n play mechanism
Scanning present readers...
0: Aktiv Rutoken ECP 00 00
1: Aladdin eToken PRO USB 72K Java [Main Interface] 01 00

Tue Jul  3 11:47:49 2018
Reader 0: Aktiv Rutoken ECP 00 00
  Card state: Card inserted, Shared Mode, 
  ATR: 3B 8B 01 52 75 74 6F 6B 65 6E 20 44 53 20 C1

ATR: 3B 8B 01 52 75 74 6F 6B 65 6E 20 44 53 20 C1
+ TS = 3B --> Direct Convention
+ T0 = 8B, Y(1): 1000, K: 11 (historical bytes)
  TD(1) = 01 --> Y(i+1) = 0000, Protocol T = 1 
-----
+ Historical bytes: 52 75 74 6F 6B 65 6E 20 44 53 20
  Category indicator byte: 52 (proprietary format)
+ TCK = C1 (correct checksum)

Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):
3B 8B 01 52 75 74 6F 6B 65 6E 20 44 53 20 C1
    Rutoken ECP (DS)
Reader 1: Aladdin eToken PRO USB 72K Java [Main Interface] 01 00
  Card state: Card inserted, Shared Mode, 
  ATR: 3B D5 18 00 81 31 FE 7D 80 73 C8 21 10 F4

ATR: 3B D5 18 00 81 31 FE 7D 80 73 C8 21 10 F4
+ TS = 3B --> Direct Convention
+ T0 = D5, Y(1): 1101, K: 5 (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
  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) = 7D --> Block Waiting Integer: 7 - Character Waiting Integer: 13
+ Historical bytes: 80 73 C8 21 10
  Category indicator byte: 80 (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: 21
        - Behaviour of write functions: proprietary
        - Value 'FF' for the first byte of BER-TLV tag fields: invalid
        - Data unit in quartets: 2
      Command chaining, length fields and logical channels: 10
        - Logical channel number assignment: by the card
        - Maximum number of logical channels: 1
+ TCK = F4 (correct checksum)

Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):
3B D5 18 00 81 31 FE 7D 80 73 C8 21 10 F4
    Bank of Lithuania Identification card
    Aladdin PRO/Java card
    http://www.aladdin-rd.ru/catalog/etoken/java/
^C
root@regl ~#

и потом запустить rdp-сессию вот так:

root@regl ~# xfreerdp -a 16 -g 1280x768 -d DOMAIN -u user testhost.domain.local:3389 --plugin rdpdr --data scard:"Aladdin eToken PRO USB 72K Java [Main Interface] 01 00" &
connected to  testhost.domain.local:3389
Password: 
root@regl ~#

А вот в случае с vdToken просто нечего указать в параметре --data scard:

2

Re: видимость vdToken в RHEL 7

Забыл уточнить -- dmesg правильно определяет все вставляемые в систему USB смарт-карты

[14734.071735] usb 4-2: New USB device found, idVendor=2bb1, idProduct=0f10
[14734.071745] usb 4-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[14734.071751] usb 4-2: Product: vdToken
[14734.071756] usb 4-2: Manufacturer: Validata
[14734.071761] usb 4-2: SerialNumber: 44F100005D150009000C100F32344E45
[14736.953112] usb 4-1: USB disconnect, device number 20
[14738.909140] usb 4-1: new full-speed USB device number 22 using uhci_hcd
[14739.065363] usb 4-1: New USB device found, idVendor=0a89, idProduct=0030
[14739.065373] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[14739.065379] usb 4-1: Product: Rutoken ECP
[14739.065384] usb 4-1: Manufacturer: Aktiv
[14752.203098] usb 4-1: USB disconnect, device number 22
[14755.909022] usb 4-1: new full-speed USB device number 23 using uhci_hcd
[14756.065518] usb 4-1: New USB device found, idVendor=0529, idProduct=0620
[14756.065528] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[14756.065533] usb 4-1: Product: Token JC
[14756.065538] usb 4-1: Manufacturer: Aladdin
oot@regl ~#

Если уважаемые валидатовцы знают, в каком дистрибутиве линукса это работает (т.е. vdToken определяется как смарткарта) -- прошу назвать этот дистр.

3

Re: видимость vdToken в RHEL 7

Добрый день,

в файле  Info.plist d в соответствующие секции необходимо добавить следующие значения:

    <key>ifdVendorID</key>
    <array>
        <string>0x2BB1</string>
    </array>

    <key>ifdProductID</key>
    <array>
        <string>0x0F10</string>
    </array>

    <key>ifdFriendlyName</key>
    <array>
        <string>Validata vdToken</string>
    </array>

Использование vdToken под линуксом  сертифицировано  только в составе  Скад Сигнатура-L  и Скад Сигнатура - Клиент  (Согласно формуляру RHEL 7.1, 7.2, 7.3). Также согласно формуляру на СКАД Сигнатура - Клиент (ВАМБ.00106-01 30 01)  пункт 2.13    Требования к сетевому взаимодействию.

2.13.4    «Сигнатура-клиент» обеспечивает удаленный доступ к терминальному серверу из состава ОС Windows Server (Microsoft Terminal Services) по сетевому каналу, защищенному шифрованием и аутентификацией  по протоколу TLS.

То есть, использование ключевых носителей через RDP без закрытия канала (шифрования) не допускается.