Usbip-ga asoslangan foydalanuvchilar o'rtasida kriptografik tokenni tarmoq almashish

Ishonch xizmatlari to'g'risidagi qonun hujjatlaridagi o'zgarishlar munosabati bilan ("Elektron ishonch xizmatlari to'g'risida" Ukraina) korxona tokenlarda joylashgan kalitlar bilan ishlash uchun bir nechta bo'limlarga ehtiyoj sezmoqda (hozirda apparat kalitlari soni masalasi hali ham ochiq. ).

Eng past narxga ega vosita sifatida (bepul) tanlov darhol tushib ketdi usbip. Ubintu 18.04 serveri nashr tufayli ishlay boshladi USB/IP-ni sozlash va bir nechta flesh-disklarda muvaffaqiyatli sinovdan o'tkazildi (o'sha paytda token yo'qligi sababli). O'sha paytda monopol egalikdan (foydalanuvchi uchun zaxiradan) boshqa hech qanday maxsus muammolar aniqlanmagan. Ko'rinib turibdiki, bir nechta foydalanuvchilar uchun (kamida ikkitasi) kirishni tashkil qilish uchun ularni vaqtga bo'lish va ularni navbat bilan ishlashga majbur qilish kerak.

Savol shunday edi: buni qanday qilib eng kam raqs bilan qilishim mumkin, shunda hamma narsa hamma uchun ishlaydi ...

Qismi noqulay

Usbip-ga asoslangan foydalanuvchilar o'rtasida kriptografik tokenni tarmoq almashish
Variant XNUMX. Bat fayllari uchun bir nechta yorliqlar, xususan
a) Kirish kalitini ulash.
b) ataylab uzish.

Paragraf "б» munozarali, shuning uchun kalit bilan ishlash uchun vaqt miqdorini 3 daqiqada berishga qaror qilindi.

Usbip mijozining o'ziga xos xususiyati shundaki, u ishga tushirilgandan so'ng u konsolda osilgan holda qoladi, konsol seansini to'xtatmasdan, ulanishni mijoz tomonidan ham, server tomonidan ham "taxminan" yopishingiz mumkin.

Mana biz uchun yaxshi ishlagan narsa:

birinchi: ulanish on.bat

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

ikkinchisi: o'chirish off.bat

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

Foydalanuvchi ongiga tayanmasdan, skriptlar birlashtirildi token.bat

on.bat | off.bat

Nima bo'ladi: barcha fayllar token.bat fayli tomonidan ishga tushirilgan bir papkada joylashgan, agar ulanish yopilgan bo'lsa, foydalanuvchi darhol kalit mavjud emasligi haqida xabar oladi, boshqa holatda, faqat 180 pingdan keyin. Yuqoridagi kod satrlari foydalanuvchini haddan tashqari hayratda qoldirmaslik uchun "@ECHO OFF" va konsol yo'nalishi "> nul" bilan jihozlanishi mumkin, ammo testni o'tkazish shart emas. USB drayvidagi dastlabki "yugurish" hamma narsa bashorat qilinadigan, ishonchli va aniq ekanligini ko'rsatdi. Bundan tashqari, server tomonidan hech qanday manipulyatsiya talab qilinmaydi.

Usbip-ga asoslangan foydalanuvchilar o'rtasida kriptografik tokenni tarmoq almashish

Tabiiyki, token bilan to'g'ridan-to'g'ri ishlaganda, hamma narsa kutilganidek ketmadi: qurilma menejerida jismoniy ulanish bilan token 2 ta qurilma (WUDF va smart-karta) sifatida ro'yxatdan o'tgan va tarmoq ulanishi bilan faqat WUDF (garchi bo'lsa ham) bu PIN kodni so'rash uchun etarli).

Usbip-ga asoslangan foydalanuvchilar o'rtasida kriptografik tokenni tarmoq almashish

Bundan tashqari, shafqatsiz "taskkill" unchalik jiddiy emasligi va mijozga ulanishni yopish muammoli va u muvaffaqiyatli bo'lgan taqdirda ham uni serverda yopishga kafolat bermaydi.

Mijozdagi barcha konsollarni qurbon qilib, ikkinchi skript quyidagi shaklni oldi:

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

uning samaradorligi 50% dan kam bo'lsa-da, chunki server o'jarlik bilan ulanishni ochiq deb hisoblashda davom etdi.

Ulanish bilan bog'liq muammolar server tomonini yangilash haqidagi fikrlarga olib keldi.

Server qismi

Nima kerak:

  1. Faol bo'lmagan foydalanuvchilarni xizmatdan uzing.
  2. Hozirda kim tokendan foydalanayotganini (yoki hali ham qarz olayotganini) ko'ring.
  3. Token kompyuterning o'ziga ulanganligini tekshiring.

Ushbu muammolar crontab va apache xizmatlari yordamida hal qilindi. Bizni qiziqtirgan 2 va 3-bandlar monitoringi natijalari holatini qayta yozishning diskret tabiati fayl tizimi ramdriveda joylashgan bo'lishi mumkinligini ko'rsatadi. /etc/fstab ga qator qo'shildi

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

Ildizda skriptlar bilan skript papkasi yaratildi: usb_restart.sh tokenini o'chirish-montaj qilish

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

usblist_id.sh faol qurilmalar ro'yxatini olish

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

faol IP-lar ro'yxatini olish (keyinchalik foydalanuvchi identifikatorlarini ko'rsatish uchun o'zgartirishlar bilan) usbip_client_ip.sh

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

crontabning o'zi quyidagicha ko'rinadi:

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

Shunday qilib, bizda: token bilan kim ishlaganidan qat'i nazar, har 5 daqiqada yangi foydalanuvchi ulanishi mumkin. /ramdrive papkasi http serveriga simli havola yordamida ulanadi, unda usbip server holatini ko'rsatuvchi 2 ta matnli fayl saqlanadi.

Keyingi qism: "O'ramdagi xunuk"

Variant II. Hech bo'lmaganda kamroq qo'rqinchli interfeys bilan foydalanuvchini biroz xursand qilish uchun. Foydalanuvchilar Windows-ning turli xil ramkalar, turli huquqlar va kamroq muammoli yondashuvga ega bo'lgan versiyalariga ega ekanligi hayratda. Lazar Men uni topa olmadim (albatta men C# uchunman, lekin bu holda emas). Siz bat fayllarni interfeysdan fonda, minimallashtirilgan holda ishga tushirishingiz mumkin, ammo to'g'ri sinovdan o'tmasdan, men shaxsan shunday fikrdaman: foydalanuvchi noroziligini to'plash uchun uni tasavvur qilishingiz kerak.

Usbip-ga asoslangan foydalanuvchilar o'rtasida kriptografik tokenni tarmoq almashish

Quyidagi vazifalar interfeys va dasturiy ta'minot yordamida hal qilindi:

  1. Token hozir band yoki yoʻqligini koʻrsatadi.
  2. Birinchi ishga tushirishda dastlabki sozlash token server bilan seansni ishga tushirish va to'xtatishni amalga oshiradigan "to'g'ri" bat fayllarni yaratishni o'z ichiga oladi. Keyingi ishga tushirishda parol yordamida "xizmat" rejimini amalga oshirish.
  3. Server bilan ulanish mavjudligini tekshirish, buning natijasida u band yoki muammolar haqida xabarlarni ko'rsatadi. Aloqa tiklanganda dastur avtomatik ravishda normal rejimda ishlay boshlaydi.

WEB-server bilan ishlash qo'shimcha fphttpclient snap-in yordamida amalga oshiriladi.


Bu erda mijozning joriy versiyasiga havola bo'ladi

Shuningdek, maqola mavzusi bo'yicha qo'shimcha mulohazalar, shuningdek, VirtualHere mahsulotiga o'zining xususiyatlari bilan qisman dastlabki ishtiyoqi bor...

Manba: www.habr.com

a Izoh qo'shish