Salaustunnuksen verkkojako usbip-pohjaisten käyttäjien välillä

Luottamuspalveluita koskevan lainsäädännön muutosten yhteydessä ("About electronic trust services" Ukraine) yrityksellä on tarve useille osastoille, jotka työskentelevät tokeneissa sijaitsevilla avaimilla (kysymys laitteistoavainten määrästä on tällä hetkellä vielä auki ).

Edullisimmana työkaluna (ilmainen) valinta osui heti päälle usbip. Ubintu 18.04:n palvelin alkoi toimia julkaisun ansiosta USB/IP kesyttäminen ja testattu onnistuneesti useilla flash-asemilla (tunteen puuttumisen vuoksi). Siinä vaiheessa ei havaittu muita erityisiä ongelmia kuin monopoliomistus (varaus käyttäjälle). On selvää, että useiden käyttäjien (alkuun ainakin kahden) pääsyn järjestämiseksi on tarpeen jakaa heidän pääsynsä ajassa ja pakottaa heidät työskentelemään vuorotellen.

Kysymys kuului: Kuinka voin tehdä sen vähimmällä tanssimäärällä niin, että kaikki toimii kaikille...

Osa on kömpelö

Salaustunnuksen verkkojako usbip-pohjaisten käyttäjien välillä
Vaihtoehto 1. Useita pikakuvakkeita bat-tiedostoihin, nimittäin
a) Pääsyavaimen yhdistäminen.
b) Yhteyden tahallinen katkaisu.

Kappale "б» kiistanalainen, joten päätettiin antaa avaimella työskentelyajaksi 3 minuuttia.

Usbip-asiakkaan erikoisuus on se, että käynnistyksen jälkeen se jää roikkumaan konsolissa, konsoliistuntoa keskeyttämättä voit sulkea yhteyden "karkeasti" asiakaspuolelta ja myös palvelinpuolelta.

Tässä on mikä toimi meille hyvin:

ensin: yhteys on.bat

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

toinen: sammutus off.bat

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

Käyttäjien tietoisuuteen luottamatta skriptit yhdistettiin token.bat

on.bat | off.bat

Mitä tapahtuu: kaikki tiedostot ovat samassa token.bat-tiedoston käynnistämässä kansiossa, jos yhteys katkeaa, käyttäjä saa välittömästi viestin avaimen poissaolosta, toisessa tapauksessa vasta 180 pingin jälkeen. Yllä olevat koodirivit voidaan varustaa "@ECHO OFF":lla ja konsolin suunnalla "> nul", jotta käyttäjä ei järkyttyisi liikaa, mutta testausta ei tarvitse suorittaa. Ensimmäinen "ajo" USB-asemalla osoitti, että kaikki oli ennustettavaa, luotettavaa ja selkeää. Lisäksi palvelinpuolelta ei vaadita manipulaatioita.

Salaustunnuksen verkkojako usbip-pohjaisten käyttäjien välillä

Luonnollisesti suoraan tunnuksen kanssa työskennellessä kaikki ei mennyt odotetusti: laitehallinnan fyysisellä yhteydellä token rekisteröidään kahdeksi laitteeksi (WUDF ja älykortti) ja verkkoyhteydellä vain WUDF-muodossa (vaikkakin tämä riittää PIN-koodin pyytämiseen).

Salaustunnuksen verkkojako usbip-pohjaisten käyttäjien välillä

Kävi myös ilmi, että brutaali "taskkill" ei ole niin vakava, ja yhteyden sulkeminen asiakkaalla on ongelmallista ja vaikka se onnistuisi, se ei takaa sen sulkemista palvelimella sille.

Uhrattuaan kaikki asiakkaan konsolit, toinen skripti otti muodon:

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

vaikka sen tehokkuus on alle 50%, koska palvelin piti itsepäisesti yhteyttä auki.

Yhteysongelmat johtivat ajatuksiin palvelinpuolen päivittämisestä.

Palvelimen osa

Mitä tarvitset:

  1. Katkaise ei-aktiiviset käyttäjät palvelusta.
  2. Katso, kuka tällä hetkellä käyttää (tai edelleen lainaa) korttia.
  3. Tarkista, onko tunnus liitetty itse tietokoneeseen.

Nämä ongelmat ratkaistiin crontab- ja apache-palveluilla. Meitä kiinnostavien kohtien 2 ja 3 seurantatulosten tilan uudelleenkirjoituksen diskreetti osoittaa, että tiedostojärjestelmä voi sijaita ramdrivessä. Lisätty rivi tiedostoon /etc/fstab

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

Skriptikansio skripteillä on luotu juuriin: tunnuksen irrotus-liittäminen 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

saada luettelo aktiivisista laitteista 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

aktiivisten IP-osoitteiden luettelon hankkiminen (mukaan lukien muutokset käyttäjätunnusten näyttämiseksi) usbip_client_ip.sh

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

itse crontab näyttää tältä:

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

Meillä on siis: 5 minuutin välein uusi käyttäjä voi muodostaa yhteyden riippumatta siitä, kuka tunnuksen kanssa työskenteli. /ramdrive-kansio on yhdistetty http-palvelimeen symlinkillä, johon on tallennettu 2 tekstitiedostoa, jotka osoittavat usbip-palvelimen tilan.

Seuraava osa: "Ruma kääreessä"

Vaihtoehto II. Miellyttääkseen käyttäjää hieman ainakin jollakin vähemmän pelottavalla käyttöliittymällä. Hämmentynyt siitä, että käyttäjillä on erilaisia ​​Windows-versioita erilaisilla kehyksillä, eri oikeuksilla, vähemmän ongelmallisella lähestymistavalla kuin Lazarus En löytänyt sitä (olen tietysti C#:n puolesta, mutta en tässä tapauksessa). Voit käynnistää bat-tiedostoja käyttöliittymästä taustalla, minimoituna, mutta ilman asianmukaista testausta olen henkilökohtaisesti sitä mieltä: sinun on visualisoitava se kerätäksesi käyttäjien tyytymättömyyttä.

Salaustunnuksen verkkojako usbip-pohjaisten käyttäjien välillä

Seuraavat tehtävät ratkaistiin käyttöliittymän ja ohjelmiston avulla:

  1. Näyttää, onko tunnus tällä hetkellä varattu.
  2. Ensimmäisen käynnistyksen yhteydessä alkuasennus sisältää "oikeiden" bat-tiedostojen luomisen, jotka toteuttavat token-palvelimen istunnon käynnistämisen ja keskeyttämisen. Myöhemmissä käynnistyksissä "palvelu"-tilan toteuttaminen salasanalla.
  3. Tarkistaa yhteyden olemassaolon palvelimeen, minkä seurauksena se kyselyn onko se varattu tai näyttää viestejä ongelmista. Kun yhteys jatkuu, ohjelma alkaa automaattisesti toimia normaalitilassa.

Työskentely WEB-palvelimen kanssa on toteutettu fphttpclient-lisälaajennuksella.


tässä on linkki asiakkaan nykyiseen versioon

artikkelissa on myös muita pohdintoja, samoin kuin osittainen alkuinnostus VirtualHere-tuotteeseen sen ominaisuuksineen...

Lähde: will.com

Lisää kommentti