Kriptogrāfiskā marķiera koplietošana tīklā starp usbip lietotājiem

Saistībā ar izmaiņām likumdošanā par uzticamības pakalpojumiem (“Par elektroniskajiem uzticamības pakalpojumiem” Ukraina), uzņēmumam ir nepieciešams vairāku departamentu darbs ar atslēgām, kas atrodas uz marķieriem (šobrīd jautājums par aparatūras atslēgu skaitu joprojām ir atklāts ).

Kā rīks ar viszemākajām izmaksām (bez maksas) izvēle uzreiz krita usbip. Pateicoties publikācijai, Ubintu 18.04 serveris sāka darboties USB/IP pieradināšana un veiksmīgi testēts uz vairākiem zibatmiņas diskiem (jo tobrīd trūka marķiera). Tajā brīdī netika konstatētas nekādas īpašas problēmas, izņemot monopola īpašumtiesības (rezervācija lietotājam). Skaidrs, ka, lai organizētu piekļuvi vairākiem lietotājiem (sākumā vismaz diviem), ir jāsadala viņu piekļuve laikā un jāpiespiež strādāt pēc kārtas.

Jautājums bija: kā es to varu izdarīt ar vismazāko dejošanu, lai viss derētu visiem...

Daļa ir neveikla

Kriptogrāfiskā marķiera koplietošana tīklā starp usbip lietotājiem
XNUMX. iespēja. Vairāki īsceļi uz sikspārņu failiem, proti
a) Piekļuves atslēgas pievienošana.
b) Apzināta atvienošana.

Paragrāfs "б» strīdīgs, tāpēc tika nolemts laiku darbam ar atslēgu piešķirt 3 minūtes.

Usbip klienta īpatnība ir tāda, ka pēc palaišanas tas paliek karājoties konsolē, nepārtraucot konsoles sesiju, savienojumu var “aptuveni” aizvērt no klienta puses un arī no servera puses.

Lūk, kas mums darbojās labi:

pirmais: savienojums on.bat

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

otrais: izslēgšana off.bat

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

Nepaļaujoties uz lietotāja apziņu, skripti tika apvienoti žetons.sikspārnis

on.bat | off.bat

Kas notiek: visi faili atrodas vienā mapē, kuru palaiž fails token.bat, ja savienojums tiek aizvērts, lietotājs uzreiz saņem ziņojumu par atslēgas nepieejamību, citā gadījumā tikai pēc 180 ping. Dotās koda rindas var aprīkot ar “@ECHO OFF” un konsoles virzienu uz “> nul”, lai pārāk nešokētu lietotāju, taču nav nepieciešams sākt testēšanu. Sākotnējā "darba" veikšana USB diskā parādīja, ka viss bija paredzams, uzticams un skaidrs. Turklāt no servera puses nav nepieciešamas nekādas manipulācijas.

Kriptogrāfiskā marķiera koplietošana tīklā starp usbip lietotājiem

Protams, strādājot tieši ar marķieri, viss nenotika, kā paredzēts: ar fizisku savienojumu ierīču pārvaldniekā marķieris tiek reģistrēts kā 2 ierīces (WUDF un viedkarte), bet ar tīkla savienojumu tikai kā WUDF (lai gan ar to pietiek, lai pieprasītu PIN kodu).

Kriptogrāfiskā marķiera koplietošana tīklā starp usbip lietotājiem

Izrādās arī, ka brutālais "taskkill" nav tik smags, un savienojuma slēgšana klientam ir problemātiska un pat ja tas bija veiksmīgs, tas negarantē tā aizvēršanu serverī.

Upurējot visas klienta konsoles, otrais skripts ieguva šādu formu:

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

lai gan tā efektivitāte ir mazāka par 50%, jo serveris spītīgi turpināja uzskatīt, ka savienojums ir atvērts.

Savienojuma problēmas radīja domas par servera puses jaunināšanu.

Servera daļa

Kas jums nepieciešams:

  1. Atvienojiet neaktīvos lietotājus no pakalpojuma.
  2. Skatiet, kas pašlaik izmanto (vai joprojām aizņemas) marķieri.
  3. Pārbaudiet, vai marķieris ir savienots ar pašu datoru.

Šīs problēmas tika atrisinātas, izmantojot crontab un apache pakalpojumus. Mūs interesējošā 2. un 3. punkta uzraudzības rezultātu stāvokļa pārrakstīšanas diskrētais raksturs norāda, ka failu sistēma var atrasties ramdrive. Pievienota rindiņa /etc/fstab

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

Saknē ir izveidota skriptu mape ar skriptiem: marķiera atvienošana-montāža usb_restart.sh

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

aktīvo ierīču saraksta iegūšana usblist_id.sh

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

aktīvo IP saraksta iegūšana (ar sekojošām modifikācijām, lai parādītu lietotāju ID) usbip_client_ip.sh

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

pats crontab izskatās šādi:

*/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)

Tātad mums ir: ik pēc 5 minūtēm jauns lietotājs var izveidot savienojumu neatkarīgi no tā, kurš strādāja ar marķieri. Mape /ramdrive ir savienota ar http serveri, izmantojot simsaiti, kurā tiek saglabāti 2 teksta faili, kas parāda usbip servera statusu.

Nākamā daļa: “Neglīts iesaiņojumā”

II variants. Lai mazliet iepriecinātu lietotāju ar vismaz kādu mazāk biedējošu interfeisu. Apmulsuši par to, ka lietotājiem ir dažādas Windows versijas ar dažādiem ietvariem, dažādām tiesībām, mazāk problemātisku pieeju nekā Lazarus Es to neatradu (es, protams, esmu par C#, bet ne šajā gadījumā). Jūs varat palaist sikspārņu failus no interfeisa fonā, minimizējot, bet bez atbilstošas ​​​​testēšanas es personīgi uzskatu: jums tas ir jāvizualizē, lai savāktu lietotāju neapmierinātību.

Kriptogrāfiskā marķiera koplietošana tīklā starp usbip lietotājiem

Izmantojot saskarni un programmatūru, tika atrisināti šādi uzdevumi:

  1. Parāda, vai marķieris pašlaik ir aizņemts.
  2. Pirmajā palaišanas reizē sākotnējā iestatīšana ietver “pareizo” sikspārņu failu ģenerēšanu, kas nodrošina sesijas palaišanu un pārtraukšanu ar marķiera serveri. Turpmākajos startos “servisa” režīma ieviešana, izmantojot paroli.
  3. Pārbauda savienojuma esamību ar serveri, kā rezultātā tas aptaujā, vai tas ir aizņemts, vai parāda ziņojumus par problēmām. Kad sakari tiek atsākti, programma automātiski sāk darboties normālā režīmā.

Darbs ar WEB serveri tiek īstenots, izmantojot papildu fphttpclient pievienojumprogrammu.


šeit būs saite uz pašreizējo klienta versiju

ir arī turpmāki apsvērumi par raksta tēmu, kā arī daļējs sākotnējais entuziasms par VirtualHere produktu ar tā funkcijām...

Avots: www.habr.com

Pievieno komentāru