Κοινή χρήση δικτύου ενός κρυπτογραφικού διακριτικού μεταξύ χρηστών που βασίζονται σε usbip

Σε σχέση με τις αλλαγές στη νομοθεσία σχετικά με τις υπηρεσίες εμπιστοσύνης ("Σχετικά με τις υπηρεσίες ηλεκτρονικής εμπιστοσύνης" Ουκρανία), η επιχείρηση χρειάζεται πολλά τμήματα να εργαστούν με κλειδιά που βρίσκονται σε μάρκες (προς το παρόν, το ζήτημα του αριθμού των κλειδιών υλικού είναι ακόμα ανοιχτό ).

Ως εργαλείο με το χαμηλότερο κόστος (δωρεάν), η επιλογή έπεσε αμέσως usbip. Ο διακομιστής στο Ubintu 18.04 άρχισε να λειτουργεί χάρη στη δημοσίευση Εξημέρωση USB/IP και δοκιμάστηκε με επιτυχία σε πολλές μονάδες flash (λόγω της έλλειψης διακριτικού εκείνη τη στιγμή). Δεν εντοπίστηκαν ειδικά προβλήματα εκτός της μονοπωλιακής ιδιοκτησίας (κράτηση για τον χρήστη) εκείνη τη στιγμή. Είναι σαφές ότι για να οργανωθεί η πρόσβαση για πολλούς χρήστες (τουλάχιστον δύο, για αρχή), είναι απαραίτητο να χωριστεί η πρόσβασή τους στο χρόνο και να αναγκαστούν να εργαστούν εναλλάξ.

Το ερώτημα ήταν: Πώς μπορώ να το κάνω με τον ελάχιστο χορό, ώστε όλα να λειτουργούν για όλους...

Το κομμάτι είναι αδέξιο

Κοινή χρήση δικτύου ενός κρυπτογραφικού διακριτικού μεταξύ χρηστών που βασίζονται σε usbip
Επιλογή XNUMX. Αρκετές συντομεύσεις για αρχεία bat, συγκεκριμένα
α) Σύνδεση του κλειδιού πρόσβασης.
β) Σκόπιμη αποσύνδεση.

Παράγραφος "б» αμφιλεγόμενο, γι' αυτό αποφασίστηκε να δοθεί ο χρόνος εργασίας με το κλειδί στα 3 λεπτά.

Η ιδιαιτερότητα του προγράμματος-πελάτη usbip είναι ότι μετά την εκκίνησή του παραμένει κρεμασμένος στην κονσόλα· χωρίς να διακόψετε τη συνεδρία της κονσόλας, μπορείτε να κλείσετε τη σύνδεση «κατά προσέγγιση» από την πλευρά του πελάτη αλλά και από την πλευρά του διακομιστή.

Να τι λειτούργησε καλά για εμάς:

πρώτο: σύνδεση on.bat

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

δεύτερο: διακοπή λειτουργίας off.bat

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

Χωρίς να βασίζονται στη συνείδηση ​​του χρήστη, τα σενάρια συνδυάστηκαν σε συμβολικό.ρόπαλο

on.bat | off.bat

Τι συμβαίνει: όλα τα αρχεία βρίσκονται στον ίδιο φάκελο, ξεκινώντας από το αρχείο token.bat, εάν η σύνδεση κλείσει, ο χρήστης λαμβάνει αμέσως ένα μήνυμα ότι το κλειδί δεν είναι διαθέσιμο, σε άλλη περίπτωση, μόνο μετά από 180 ping. Οι συγκεκριμένες γραμμές κώδικα μπορούν να εξοπλιστούν με "@ECHO OFF" και την κατεύθυνση της κονσόλας σε "> nul", ώστε να μην σοκάρετε πολύ τον χρήστη, αλλά δεν είναι απαραίτητο να ξεκινήσετε τη δοκιμή. Η αρχική «τρέξιμο» σε μια μονάδα USB έδειξε ότι όλα ήταν προβλέψιμα, αξιόπιστα και ξεκάθαρα. Επιπλέον, δεν απαιτούνται χειρισμοί από την πλευρά του διακομιστή.

Κοινή χρήση δικτύου ενός κρυπτογραφικού διακριτικού μεταξύ χρηστών που βασίζονται σε usbip

Φυσικά, όταν εργάζεστε απευθείας με το διακριτικό, όλα δεν πήγαν όπως αναμενόταν: με μια φυσική σύνδεση στη διαχείριση συσκευών, το διακριτικό καταχωρείται ως 2 συσκευές (WUDF και μια έξυπνη κάρτα) και με σύνδεση δικτύου μόνο ως WUDF (αν και αυτό αρκεί για να ζητήσετε κωδικό PIN).

Κοινή χρήση δικτύου ενός κρυπτογραφικού διακριτικού μεταξύ χρηστών που βασίζονται σε usbip

Αποδεικνύεται επίσης ότι το βάναυσο "taskkill" δεν είναι τόσο σοβαρό και το κλείσιμο της σύνδεσης στον πελάτη είναι προβληματικό και ακόμη κι αν ήταν επιτυχές, δεν εγγυάται ότι θα το κλείσει στον διακομιστή.

Έχοντας θυσιάσει όλες τις κονσόλες στον πελάτη, το δεύτερο σενάριο πήρε τη μορφή:

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. Δείτε αν το διακριτικό είναι συνδεδεμένο στον ίδιο τον υπολογιστή.

Αυτά τα προβλήματα επιλύθηκαν χρησιμοποιώντας τις υπηρεσίες crontab και apache. Η διακριτική φύση της επανεγγραφής της κατάστασης των αποτελεσμάτων παρακολούθησης των σημείων 2 και 3 που μας ενδιαφέρουν δείχνει ότι το σύστημα αρχείων μπορεί να βρίσκεται στο ramdrive. Προστέθηκε γραμμή στο /etc/fstab

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

Ένας φάκελος σεναρίου με σενάρια έχει δημιουργηθεί στο root: unmounting-mounting the token 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

λήψη μιας λίστας ενεργών συσκευών 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

λήψη μιας λίστας ενεργών IP (με επακόλουθη τροποποίηση για την εμφάνιση των αναγνωριστικών χρηστών) usbip_client_ip.sh

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

το ίδιο το crontab μοιάζει με αυτό:

*/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 λεπτά ένας νέος χρήστης μπορεί να συνδέεται, ανεξάρτητα από το ποιος εργάστηκε με το διακριτικό. Ο φάκελος /ramdrive συνδέεται με τον διακομιστή http χρησιμοποιώντας έναν συμβολικό σύνδεσμο, στον οποίο αποθηκεύονται 2 αρχεία κειμένου, που δείχνουν την κατάσταση του διακομιστή usbip.

Επόμενο μέρος: "Άσχημο σε περιτύλιγμα"

Επιλογή II. Για να ευχαριστήσουμε λίγο τον χρήστη με τουλάχιστον κάποια λιγότερο εκφοβιστική διεπαφή. Απορώτοι από το γεγονός ότι οι χρήστες έχουν διαφορετικές εκδόσεις των Windows με διαφορετικά πλαίσια, διαφορετικά δικαιώματα, μια λιγότερο προβληματική προσέγγιση από Λάζαρος Δεν το βρήκα (είμαι φυσικά για C#, αλλά όχι σε αυτήν την περίπτωση). Μπορείτε να εκκινήσετε αρχεία bat από τη διεπαφή στο παρασκήνιο, ελαχιστοποιημένα, αλλά χωρίς την κατάλληλη δοκιμή, προσωπικά είμαι της γνώμης: πρέπει να το οπτικοποιήσετε για να συγκεντρώσετε τη δυσαρέσκεια των χρηστών.

Κοινή χρήση δικτύου ενός κρυπτογραφικού διακριτικού μεταξύ χρηστών που βασίζονται σε usbip

Οι ακόλουθες εργασίες επιλύθηκαν από τη διεπαφή και το λογισμικό:

  1. Εμφανίζει εάν το διακριτικό είναι απασχολημένο αυτήν τη στιγμή.
  2. Κατά την πρώτη εκκίνηση, η αρχική ρύθμιση περιλαμβάνει τη δημιουργία των «σωστών» αρχείων bat που υλοποιούν την εκκίνηση και τη διακοπή μιας περιόδου λειτουργίας με τον διακομιστή διακριτικών. Στις επόμενες εκκινήσεις, υλοποίηση της λειτουργίας «υπηρεσία» με χρήση κωδικού πρόσβασης.
  3. Έλεγχος ύπαρξης σύνδεσης με τον διακομιστή, με αποτέλεσμα να ελέγχει εάν είναι απασχολημένος ή εμφανίζει μηνύματα σχετικά με προβλήματα. Όταν επαναληφθεί η επικοινωνία, το πρόγραμμα ξεκινά αυτόματα να λειτουργεί σε κανονική λειτουργία.

Η εργασία με τον διακομιστή WEB υλοποιείται χρησιμοποιώντας το πρόσθετο συμπληρωματικό πρόγραμμα fphttpclient.


εδώ θα υπάρχει ένας σύνδεσμος προς την τρέχουσα έκδοση του πελάτη

Υπάρχουν επίσης περαιτέρω σκέψεις σχετικά με το θέμα του άρθρου, καθώς και μερικός αρχικός ενθουσιασμός για το προϊόν VirtualHere με τα χαρακτηριστικά του...

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο