Verwenden von kryptografischen Token-Mechanismen für PKCS # 11 auf der Android-Plattform

Es ist an der Zeit, PKCS # 1 1- Kryptografiemechanismen auf der Android-Plattform zu verwenden. Jemand könnte sagen, dass es keine Hardware-Token für Android gibt. Wenn dies jedoch so ist, ist dies nur ein vorübergehendes Phänomen. Aber heute können Sie ein Software-Token setzen oder ein Cloud-Token verwenden . Da das Dienstprogramm cryptoarmpkcs-A für die Android-Plattform unter Verwendung von Androwish in der Skriptsprache Tcl / Tk entwickelt wurde, wird das Paket TclPKCS11 Version 1.0.1 zum Verbinden von Token verwendet .

Es war jedoch keine Bearbeitung des Pakets erforderlich. Es wurde lediglich ein Skript zum Projekt hinzugefügt, um eine in C geschriebene Paketbibliothek zu erstellen, für Android und die Bibliotheksverteilung selbst. Es wurde beschlossen, die Bibliotheken der Software-Token ls11sw2016 und Cloud-Token ls11cloud für verschiedene Plattformen zum selben Projekt hinzuzufügen.

Der Rest ist einfach. Fügen Sie die Schaltflächen zum Auswählen des Arbeitstokens zum zweiten Fenster hinzu und erhalten Sie:

  • Software-Token ls11sw2016;
  • Cloud-Token ls11cloud;
  • ein weiteres PKCS11 # 11-Token.



Standardmäßig ist ein Software-Token verbunden. Wenn es noch nicht erstellt wurde, wird vorgeschlagen, es zu initialisieren. Denken Sie daran, dass die Initialisierung des Tokens darin besteht, ein Label



zuzuweisen und einen benutzerdefinierten PIN-Code festzulegen : Beachten Sie, dass das Software-Token gemäß den Empfehlungen von PKCS # 11 v.2.40 und TK-26 entworfen wurde. Um vollständige Informationen über das Token einschließlich der unterstützten kryptografischen Mechanismen zu erhalten, klicken Sie einfach im Hauptmenü auf die Schaltfläche „Informationen zum Token und seiner Kryptografie“ („Funktional“). Heutzutage verfügt kein einziges Hardware-Token mit Unterstützung für russische Kryptografie über diese Funktionalität:



Es stellt sich die Frage: - wie ein persönliches Zertifikat für ein Token installiert wird. Es gibt zwei Möglichkeiten. Die erste Option besteht darin, das Zertifikat selbst und sein Schlüsselpaar über den PKCS # 12-Container zu importieren (die Schaltfläche „Mit PKCS12 / PFX arbeiten“): Die



zweite Option umfasst das Erstellen einer Anforderung (PKCS # 10) für das Zertifikat. Diese Option (die Funktion „Anforderung von Zertifikat“ ) bietet direkt auf der Token - Schlüsselpaar Generation:



Jetzt können Sie die Anforderung für Flash - Laufwerke speichern und zur gehen Zertifizierungsstelle mit den Unterlagen für das Zertifikat. Wenn Sie das Zertifikat zu Testzwecken oder für unternehmensinterne Zwecke verwenden, kann das CAFL63- Dienstprogramm auch zum Ausstellen des Zertifikats verwendet werden . Das empfangene Zertifikat wird in das Token auf der Registerkarte "Anforderung / Zertifikat anzeigen" importiert:



Jetzt können Sie Dokumente mit auf dem Token gespeicherten Zertifikaten über die Registerkarte "Dokument signieren" signieren .

Im nächsten Artikel erfahren Sie, wie Sie eine Verbindung zu einem Cloud-Token herstellen. Und die Frage bleibt bis jetzt bei der Übertragung von Funktionen zur Zertifikatserstellung auf die mobile Plattform. Gibt es eine Notwendigkeit dafür?

Die aktualisierte Version des Dienstprogramms cryptoarmpkcs-A für die Android-Plattform kann hier heruntergeladen werden:


PS-Speicherjournal


Zum Erstellen des Pakets wird das Dienstprogramm Bones aus dem AndroWish SDK verwendet . Nach dem erfolgreichen Zusammenstellen des Pakets wird die Schaltfläche Installieren und Ausführen angezeigt, nachdem Sie darauf geklickt haben, dass ein Protokollfenster geöffnet wird, in dem die Ausgabe von adb logcat (Android Debug Bridge-Protokollierungsfunktion) angezeigt wird. Der Nachteil dieses Bildschirms besteht darin, dass es schwierig ist, eine Fehlermeldung darin zu finden, insbesondere wenn das Flag "V" (ausführlich) aktiviert ist. Daher wurde die Schaltfläche „Speichern“ hinzugefügt, mit der das Protokoll in der Datei /tmp/logBone.txt gespeichert wird (es handelt sich um Linux):



Mit dem Aufkommen dieser Schaltfläche wurde das Debuggen der Anwendung erheblich vereinfacht.

Um eine Schaltfläche hinzuzufügen, fügen Sie der Bones-Datei nach Zeile 2591 einfach den folgenden Code hinzu:

	    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]

Der Speicherbefehl adb_logcat_save hat die folgende Form:

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
}

All Articles