Мрежно дељење криптографског токена између корисника који користе усбип

У вези са променама у законодавству у вези са услугама поверења („О електронским услугама поверења“ Украјина), предузеће има потребу да неколико одељења ради са кључевима који се налазе на токенима (у овом тренутку, питање броја хардверских кључева је још увек отворено ).

Као алат са најнижом ценом (бесплатно), избор је одмах пао усбип. Сервер на Убинту 18.04 је почео да ради захваљујући публикацији Укроћење УСБ/ИП-а и успешно тестиран на неколико флеш дискова (због недостатка токена у то време). У том тренутку нису идентификовани никакви посебни проблеми осим монополског власништва (резервације за корисника). Јасно је да је за организовање приступа за неколико корисника (најмање два, за почетак) потребно временско поделити њихов приступ и натерати их да раде наизменично.

Питање је било: како то да урадим са најмање плеса да све ради за све...

Део је неспретан

Мрежно дељење криптографског токена између корисника који користе усбип
Опција 1. Неколико пречица до бат фајлова, наиме
а) Повезивање приступног кључа.
б) Намерно прекидање везе.

Stav "б» контроверзно, па је одлучено да се време за рад са кључем да на 3 минута.

Посебност усбип клијента је у томе што након покретања остаје да виси у конзоли; без прекидања сесије конзоле, можете затворити везу „грубо“ са стране клијента и са стране сервера.

Ево шта нам је добро функционисало:

прво: веза он.бат

usbip -a 172.16.12.26 4-1
msg * "Подпись/токен недоступны или заняты "

друго: гашење офф.бат

ping 127.0.0.1 -n 180
taskkill /IM usbip.exe /F

Без ослањања на свест корисника, скрипте су комбиноване у токен.бат

on.bat | off.bat

Шта се дешава: сви фајлови су у истом директоријуму, покренут датотеком токен.бат, ако је веза прекинута, корисник одмах добија поруку да је кључ недоступан, у другом случају тек након 180 пингова. Дате линије кода могу бити опремљене са „@ЕЦХО ОФФ“ и смером конзоле на „> нул“ како не би превише шокирали корисника, али није неопходно започети тестирање. Првобитно „трчање“ на УСБ драјву показало је да је све било предвидљиво, поуздано и јасно. Штавише, нису потребне никакве манипулације са стране сервера.

Мрежно дељење криптографског токена између корисника који користе усбип

Наравно, када се ради директно са токеном, све није ишло како се очекивало: са физичком везом у менаџеру уређаја, токен се региструје као 2 уређаја (ВУДФ и паметна картица), а са мрежном везом само као ВУДФ (иако ово је довољно да се захтева ПИН код).

Мрежно дељење криптографског токена између корисника који користе усбип

Такође се испоставило да брутални "тасккилл" није тако озбиљан, а затварање везе на клијенту је проблематично, па чак и ако је било успешно, не гарантује затварање за њега на серверу.

Пошто је жртвовао све конзоле на клијенту, друга скрипта је добила облик:

ping 127.0.0.1 -n 180 > nul
taskkill /IM usbip.exe /F /T  > nul
ping 127.0.0.1 -n 10 > nul
taskkill /IM conhost.exe /F /T  > nul

иако је његова ефикасност мања од 50%, пошто је сервер тврдоглаво наставио да сматра везу отвореном.

Проблеми са везом довели су до размишљања о надоградњи серверске стране.

Серверски део

Шта вам је потребно:

  1. Искључите неактивне кориснике са услуге.
  2. Погледајте ко тренутно користи (или још увек позајмљује) токен.
  3. Проверите да ли је токен повезан са самим рачунаром.

Ови проблеми су решени помоћу цронтаб и апацхе сервиса. Дискретна природа поновног писања стања резултата праћења тачака 2 и 3 које нас занимају указује на то да се систем датотека може налазити на рам драјву. Додата линија у /етц/фстаб

tmpfs   /ram_drive      tmpfs   defaults,nodev,size=64K         0       0

Фасцикла скрипти са скриптама је креирана у корену: демонтажа-монтажа токена усб_рестарт.сх

usbip unbind -b 1-2
sleep 2
usbip bind -b 1-2
sleep 2
usbip attach --remote=localhost --busid=1-2
sleep 2
usbip detach --port=00

добијање листе активних уређаја усблист_ид.сх

usbip list -r 127.0.0.1 | grep ':' |awk -F ":" '{print $1}'| sed s/' '//g | grep -v "^$" > /ram_drive/usb_id.txt

добијање листе активних ИП адреса (са накнадном модификацијом да би се приказали кориснички ИД-ови) усбип_цлиент_ип.сх

netstat -an | grep :3240 | grep ESTABLISHED|awk '{print $5}'|cut -f1 -d":" > /ram_drive/usb_ip_cli.txt

сам цронтаб изгледа овако:

*/5 * * * * /!script/usb_restart.sh > /dev/null 2>&1
* * * * * ( sleep 30 ; /!script/usblist_id.sh > /dev/null)
* * * * * (sleep 10 ; /!script/usbip_client_ip.sh > /dev/hull)

Дакле, имамо: сваких 5 минута нови корисник може да се повеже, без обзира на то ко је радио са токеном. Фасцикла /рамдриве је повезана са хттп сервером помоћу симболичне везе, у којој су сачуване 2 текстуалне датотеке које показују статус усбип сервера.

Следећи део: „Ружно у омоту“

Опција ИИ. Да мало задовољим корисника бар неким мање застрашујућим интерфејсом. Збуњени чињеницом да корисници имају различите верзије Виндовс-а са различитим оквирима, различитим правима, мање проблематичним приступом од Лазар Нисам га нашао (наравно, за Ц#, али не у овом случају). Можете покренути бат датотеке из интерфејса у позадини, минимизиране, али без одговарајућег тестирања, ја лично сматрам: потребно је да га визуелизујете да бисте прикупили незадовољство корисника.

Мрежно дељење криптографског токена између корисника који користе усбип

Интерфејс и софтвер су решили следеће задатке:

  1. Приказује да ли је токен тренутно заузет.
  2. Приликом првог покретања, почетно подешавање укључује генерисање „исправних“ бат датотека које имплементирају покретање и прекид сесије са сервером токена. Приликом наредних покретања, имплементација режима „сервис“ коришћењем лозинке.
  3. Провера присуства везе са сервером, услед чега он испитује да ли је заузет или приказује поруке о проблемима. Када се комуникација настави, програм аутоматски почиње да ради у нормалном режиму.

Рад са ВЕБ сервером се реализује коришћењем додатног фпхттпцлиент снап-ина.


овде ће бити веза до тренутне верзије клијента

ту су и даља разматрања о теми чланка, као и делимичан почетни ентузијазам за ВиртуалХере производ са његовим карактеристикама...

Извор: ввв.хабр.цом

Додај коментар