Χρήση κρυπτογραφικών μηχανισμών διακριτικών PKCS#11 στην πλατφόρμα Android

Χρήση κρυπτογραφικών μηχανισμών διακριτικών PKCS#11 στην πλατφόρμα Android Ήρθε η ώρα να χρησιμοποιήσουμε την κρυπτογράφηση Μηχανισμοί PKCS#11 και στην πλατφόρμα Android. Κάποιοι μπορεί να πουν ότι δεν υπάρχουν διακριτικά υλικού για Android. Αλλά, αν είναι έτσι, τότε αυτό είναι μόνο ένα προσωρινό φαινόμενο. Αλλά σήμερα μπορείτε να βάλετε ένα διακριτικό λογισμικού ή να χρησιμοποιήσετε διακριτικό σύννεφο. Από τη χρησιμότητα cryptoarmpkcs-A έχει αναπτυχθεί για την πλατφόρμα Android χρησιμοποιώντας το Androwish στη γλώσσα δέσμης ενεργειών Tcl/Tk και, στη συνέχεια, το πακέτο χρησιμοποιείται για τη σύνδεση διακριτικών TclPKCS11 έκδοση 1.0.1.

Σε αυτή την περίπτωση, δεν απαιτήθηκε επεξεργασία του πακέτου. Το μόνο που έγινε ήταν να προστεθεί ένα σενάριο στο έργο για τη δημιουργία της βιβλιοθήκης πακέτων γραμμένη στη γλώσσα Si, για το Android και την ίδια τη διανομή της βιβλιοθήκης. Αποφασίστηκε να προστεθούν βιβλιοθήκες λογισμικού ls11sw2016 και μάρκες cloud ls11cloud για διάφορες πλατφόρμες στο ίδιο έργο.

Όλα τα άλλα είναι απλά. Προσθέτουμε κουμπιά για την επιλογή ενός λειτουργικού διακριτικού στο δεύτερο παράθυρο και παίρνουμε:

  • διακριτικό λογισμικού ls11sw2016;
  • σύννεφο διακριτικό ls11cloud;
  • ένα άλλο διακριτικό PKCS11#11.

Χρήση κρυπτογραφικών μηχανισμών διακριτικών PKCS#11 στην πλατφόρμα Android

Από προεπιλογή, είναι συνδεδεμένο ένα διακριτικό λογισμικού. Εάν δεν έχει δημιουργηθεί προηγουμένως, θα σας ζητηθεί να το αρχικοποιήσετε. Ας το θυμηθούμε αρχικοποίηση διακριτικού αποτελείται από την αντιστοίχιση μιας ετικέτας και τον ορισμό ενός κωδικού PIN χρήστη:

Χρήση κρυπτογραφικών μηχανισμών διακριτικών PKCS#11 στην πλατφόρμα Android

Σημειώστε ότι το διακριτικό λογισμικού αναπτύχθηκε σύμφωνα με τις συστάσεις των PKCS#11 v.2.40 και TK-26. Για να λάβετε πλήρεις πληροφορίες σχετικά με το διακριτικό, συμπεριλαμβανομένων των υποστηριζόμενων κρυπτογραφικών μηχανισμών, απλώς κάντε κλικ στο κουμπί «Σχετικά με το διακριτικό και την κρυπτογράφηση του» στο κύριο μενού («Λειτουργικό»). Σήμερα, ούτε ένα διακριτικό υλικού που να υποστηρίζει τη ρωσική κρυπτογραφία δεν έχει αυτήν τη λειτουργία:

Χρήση κρυπτογραφικών μηχανισμών διακριτικών PKCS#11 στην πλατφόρμα Android

Τίθεται το ερώτημα: - πώς να εγκαταστήσετε ένα προσωπικό πιστοποιητικό σε ένα διακριτικό. Υπάρχουν δύο επιλογές. Η πρώτη επιλογή είναι να εισαγάγετε το ίδιο το πιστοποιητικό και το ζεύγος κλειδιών του μέσω του κοντέινερ PKCS#12 (το κουμπί "Εργασία με PKCS12/PFX"):

Χρήση κρυπτογραφικών μηχανισμών διακριτικών PKCS#11 στην πλατφόρμα Android

Η δεύτερη επιλογή περιλαμβάνει τη δημιουργία ενός αιτήματος (PKCS#10) για ένα πιστοποιητικό. Αυτή η επιλογή (συνάρτηση "Αίτηση Πιστοποιητικού") προβλέπει τη δημιουργία ενός ζεύγους κλειδιών απευθείας στο διακριτικό:

Χρήση κρυπτογραφικών μηχανισμών διακριτικών PKCS#11 στην πλατφόρμα Android

Τώρα μπορείτε να αποθηκεύσετε το αίτημα σε μονάδες flash και να μεταβείτε σε κέντρο πιστοποίησης για πιστοποιητικό. Εάν θα χρησιμοποιήσετε το πιστοποιητικό για δοκιμαστικούς σκοπούς ή εσωτερικά, μπορείτε επίσης να χρησιμοποιήσετε το βοηθητικό πρόγραμμα για την έκδοση πιστοποιητικού CAFL63. Το πιστοποιητικό που προκύπτει εισάγεται στο διακριτικό στην καρτέλα "Προβολή αιτήματος/Πιστοποιητικού":

Χρήση κρυπτογραφικών μηχανισμών διακριτικών PKCS#11 στην πλατφόρμα Android

Τώρα μπορείτε να υπογράψετε έγγραφα με πιστοποιητικά που είναι αποθηκευμένα στο διακριτικό χρησιμοποιώντας την καρτέλα "Υπογράψτε ένα έγγραφο".

Στο επόμενο άρθρο θα σας πούμε πώς να συνδεθείτε σε ένα διακριτικό cloud. Και το ζήτημα της μεταφοράς των λειτουργιών παραγωγής πιστοποιητικών στην πλατφόρμα για κινητά παραμένει ανοιχτό. Είναι απαραίτητο αυτό;

Μπορείτε να κατεβάσετε την ενημερωμένη έκδοση του βοηθητικού προγράμματος cryptoarmpkcs-A για την πλατφόρμα Android εδώ:

ΥΣΤΕΡΟΓΡΑΦΟ. Αποθήκευση του αρχείου καταγραφής

Για να δημιουργήσετε το πακέτο, χρησιμοποιήστε το βοηθητικό πρόγραμμα bones from AndroWish SDK. Μόλις το πακέτο κατασκευαστεί με επιτυχία, εμφανίζεται ένα κουμπί "Εγκατάσταση και εκτέλεση" και όταν κάνετε κλικ, ανοίγει ένα παράθυρο καταγραφής που δείχνει την έξοδο του adb logcat (Android Debug Bridge logger). Το μειονέκτημα αυτής της οθόνης είναι ότι είναι δύσκολο να βρείτε το μήνυμα σφάλματος, ειδικά με ενεργοποιημένη τη σημαία "V" (verbose). Επομένως, προστέθηκε ένα κουμπί "Αποθήκευση", το οποίο αποθηκεύει το αρχείο καταγραφής στο αρχείο /tmp/logBone.txt (μιλάμε για Linux):

Χρήση κρυπτογραφικών μηχανισμών διακριτικών PKCS#11 στην πλατφόρμα Android

Με την εμφάνιση αυτού του κουμπιού, η διαδικασία εντοπισμού σφαλμάτων της εφαρμογής έχει απλοποιηθεί πολύ.

Για να προσθέσετε ένα κουμπί, απλώς προσθέστε τον ακόλουθο κώδικα στο αρχείο bones μετά τη γραμμή 2591:

	    ttk::button $l.frame.clear -text "Clear" -width 6 
		-command [list adb_logcat_clear $l.text]
#Добавленный код
	    ttk::button $l.frame.save -text "Save" -width 6 
		-command [list adb_logcat_save $l.text]

	    ttk::button $l.frame.run -text "Run" -width 6 
		-command [list adb_logcat_run $l]

Η εντολή αποθήκευσης adb_logcat_save μοιάζει με αυτό:

proc adb_logcat_save {text} {
    set tt [$text get 1.0 end]
    set file "/tmp/logBone.txt"
    file delete -force $file
  #Собственно запись в файл
    set fd [open $file w]
    chan configure $fd -translation binary
    puts -nonewline $fd $tt
    close $fd
}

Πηγή: www.habr.com

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