Omrežna skupna raba kriptografskega žetona med uporabniki, ki temeljijo na usbip

V zvezi s spremembami zakonodaje glede storitev zaupanja (»O elektronskih storitvah zaupanja« Ukrajina) ima podjetje potrebo po več oddelkih za delo s ključi, ki se nahajajo na žetonih (trenutno je vprašanje števila ključev strojne opreme še vedno odprto). ).

Kot orodje z najnižjimi stroški (brezplačno) je izbira takoj padla usbip. Strežnik na Ubintu 18.04 je začel delovati zahvaljujoč objavi Krotenje USB/IP in uspešno preizkušen na več bliskovnih pogonih (zaradi takratnega pomanjkanja žetona). Posebnih težav razen monopolnega lastništva (pridržek za uporabnika) v tem trenutku ni bilo ugotovljenih. Jasno je, da je za organizacijo dostopa za več uporabnikov (vsaj dva, za začetek) potrebno njihov dostop časovno razdeliti in jih prisiliti, da delajo izmenično.

Vprašanje je bilo: Kako naj naredim to z najmanjšo količino plesa, da bo vse delovalo za vse ...

Del je neroden

Omrežna skupna raba kriptografskega žetona med uporabniki, ki temeljijo na usbip
Možnost 1. Več bližnjic do datotek bat, in sicer
a) Priključitev ključa za dostop.
b) Namerno prekinitev povezave.

Odstavek "б» sporno, zato je bilo odločeno, da se čas dela s ključem dodeli 3 minutam.

Posebnost odjemalca usbip je v tem, da po zagonu ostane viseti v konzoli, brez prekinitve seje konzole lahko povezavo prekinete “grobo” tako s strani odjemalca kot tudi s strani strežnika.

Tukaj je tisto, kar je pri nas dobro delovalo:

prvi: povezava on.bat

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

drugič: zaustavitev off.bat

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

Brez zanašanja na zavest uporabnika so skripte združili v token.bat

on.bat | off.bat

Kaj se zgodi: vse datoteke so v isti mapi, sproži jih datoteka token.bat, če je povezava prekinjena, uporabnik takoj prejme sporočilo o nedosegljivosti ključa, v drugem primeru šele po 180 pingih. Dane vrstice kode lahko opremimo z “@ECHO OFF” in smerjo konzole na “> nul”, da uporabnika ne šokiramo preveč, ni pa nujno, da začnemo s testiranjem. Začetni »zagon« na USB pogonu je pokazal, da je vse predvidljivo, zanesljivo in jasno. Poleg tega s strani strežnika niso potrebne nobene manipulacije.

Omrežna skupna raba kriptografskega žetona med uporabniki, ki temeljijo na usbip

Seveda pri neposrednem delu z žetonom ni šlo vse po pričakovanjih: pri fizični povezavi v upravitelju naprav je žeton registriran kot 2 napravi (WUDF in pametna kartica), pri omrežni povezavi pa le kot WUDF (čeprav to je dovolj za zahtevo po kodi PIN).

Omrežna skupna raba kriptografskega žetona med uporabniki, ki temeljijo na usbip

Izkazalo se je tudi, da brutalni "taskkill" ni tako hud, zapiranje povezave na odjemalcu pa je problematično in tudi če je bilo uspešno, mu ne zagotavlja zapiranja na strežniku.

Po žrtvovanju vseh konzol na odjemalcu je drugi skript dobil obliko:

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

čeprav je njegova učinkovitost manjša od 50%, saj je strežnik vztrajno še naprej menil, da je povezava odprta.

Težave s povezavo so vodile k razmišljanju o nadgradnji strežniške strani.

Strežniški del

Kaj potrebujete:

  1. Odklopite neaktivne uporabnike iz storitve.
  2. Oglejte si, kdo trenutno uporablja (ali si še izposoja) žeton.
  3. Preverite, ali je žeton povezan s samim računalnikom.

Te težave smo rešili s storitvama crontab in apache. Diskretna narava ponovnega zapisovanja stanja rezultatov spremljanja točk 2 in 3, ki nas zanimajo, kaže, da je datotečni sistem mogoče najti na pogonu ram. Dodana vrstica v /etc/fstab

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

V korenu je bila ustvarjena mapa s skripti: odpenjanje-montaža žetona 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

pridobivanje seznama aktivnih naprav 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

pridobitev seznama aktivnih IP-jev (z naknadno spremembo za prikaz uporabniških ID-jev) usbip_client_ip.sh

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

sam crontab izgleda takole:

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

Tako imamo: vsakih 5 minut se lahko poveže nov uporabnik, ne glede na to, kdo je delal z žetonom. Mapa /ramdrive je s simbolno povezavo povezana s http strežnikom, v kateri sta shranjeni 2 tekstovni datoteki, ki prikazujeta stanje usbip strežnika.

Naslednji del: “Grd v ovoju”

Možnost II. Da uporabnika malo razveselimo z vsaj kakšnim manj zastrašujočim vmesnikom. Zmedeno nad dejstvom, da imajo uporabniki različne različice sistema Windows z različnimi ogrodji, različnimi pravicami, manj problematičnim pristopom kot Lazarus Nisem našel (seveda sem za C#, vendar ne v tem primeru). Datoteke bat lahko zaženete iz vmesnika v ozadju, minimizirane, vendar brez ustreznega testiranja, osebno sem mnenja: morate jih vizualizirati, da zberete nezadovoljstvo uporabnikov.

Omrežna skupna raba kriptografskega žetona med uporabniki, ki temeljijo na usbip

Z vmesnikom in programsko opremo smo rešili naslednje naloge:

  1. Prikaže, ali je žeton trenutno zaseden.
  2. Pri prvem zagonu začetna nastavitev vključuje generiranje "pravilnih" datotek bat, ki izvajajo zagon in prekinitev seje s strežnikom žetonov. Pri naslednjih zagonih izvedba "storitvenega" načina z uporabo gesla.
  3. Preverjanje prisotnosti povezave s strežnikom, zaradi česar vpraša, ali je zaseden, ali prikaže sporočila o težavah. Ko se komunikacija nadaljuje, program samodejno začne delovati v običajnem načinu.

Delo s spletnim strežnikom je izvedeno z dodatnim snap-inom fphttpclient.


tukaj bo povezava do trenutne različice odjemalca

obstajajo tudi nadaljnji premisleki o temi članka, pa tudi delno začetno navdušenje nad izdelkom VirtualHere s svojimi funkcijami ...

Vir: www.habr.com

Dodaj komentar