Verwendung der kryptografischen Token-Mechanismen PKCS#11 auf der Android-Plattform

Verwendung der kryptografischen Token-Mechanismen PKCS#11 auf der Android-Plattform Es ist an der Zeit, kryptografische Verfahren einzusetzen PKCS#1-Mechanismen1 und auf der Android-Plattform. Manche mögen sagen, dass es keine Hardware-Tokens für Android gibt. Aber wenn dem so ist, dann handelt es sich nur um ein vorübergehendes Phänomen. Aber heute können Sie einen Software-Token einsetzen oder verwenden Cloud-Token. Da das Dienstprogramm cryptoarmpkcs-A wird für die Android-Plattform mit Androwish in der Tcl/Tk-Skriptsprache entwickelt, dann wird das Paket zum Verbinden von Tokens verwendet TclPKCS11 Version 1.0.1.

In diesem Fall war keine Bearbeitung des Pakets erforderlich. Es wurde lediglich ein Skript zum Projekt hinzugefügt, um die in der Sprache geschriebene Paketbibliothek zu erstellen selbst, für Android und die Bibliotheksverteilung selbst. Es wurde beschlossen, demselben Projekt Bibliotheken der Software ls11sw2016 und Cloud-ls11cloud-Tokens für verschiedene Plattformen hinzuzufügen.

Alles andere ist einfach. Wir fügen dem zweiten Fenster Schaltflächen zur Auswahl eines funktionierenden Tokens hinzu und erhalten:

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

Verwendung der kryptografischen Token-Mechanismen PKCS#11 auf der Android-Plattform

Standardmäßig ist ein Software-Token verbunden. Wenn es noch nicht erstellt wurde, werden Sie aufgefordert, es zu initialisieren. Wir möchten Sie daran erinnern Token-Initialisierung besteht aus der Zuweisung eines Tags und dem Festlegen eines Benutzer-PIN-Codes:

Verwendung der kryptografischen Token-Mechanismen PKCS#11 auf der Android-Plattform

Beachten Sie, dass das Software-Token gemäß den Empfehlungen von PKCS#11 v.2.40 und TK-26 entwickelt wurde. Um vollständige Informationen über den Token, einschließlich der unterstützten kryptografischen Mechanismen, zu erhalten, klicken Sie einfach auf die Schaltfläche „Über den Token und seine Kryptografie“ im Hauptmenü („Funktionalität“). Heutzutage verfügt kein einziger Hardware-Token, der die russische Kryptographie unterstützt, über diese Funktionalität:

Verwendung der kryptografischen Token-Mechanismen PKCS#11 auf der Android-Plattform

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

Verwendung der kryptografischen Token-Mechanismen PKCS#11 auf der Android-Plattform

Die zweite Möglichkeit besteht darin, eine Anfrage (PKCS#10) für ein Zertifikat zu erstellen. Diese Option (Funktion „Zertifikatsanfrage“) sieht die Generierung eines Schlüsselpaares direkt auf dem Token vor:

Verwendung der kryptografischen Token-Mechanismen PKCS#11 auf der Android-Plattform

Jetzt können Sie die Anfrage auf Flash-Laufwerken speichern und zu gehen Zertifizierungsstelle für ein Zertifikat. Wenn Sie das Zertifikat zu Testzwecken oder intern verwenden, können Sie das Dienstprogramm auch zum Ausstellen eines Zertifikats verwenden CAFL63. Das resultierende Zertifikat wird auf der Registerkarte „Anfrage/Zertifikat anzeigen“ auf das Token importiert:

Verwendung der kryptografischen Token-Mechanismen PKCS#11 auf der Android-Plattform

Über die Registerkarte können Sie nun Dokumente mit auf dem Token gespeicherten Zertifikaten signieren „Ein Dokument unterschreiben“.

Im nächsten Artikel erklären wir Ihnen, wie Sie eine Verbindung zu einem Cloud-Token herstellen. Und die Frage der Übertragung von Zertifikatsgenerierungsfunktionen auf die mobile Plattform bleibt offen. Ist das notwendig?

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

PS Speichern des Protokolls

Um das Paket zu erstellen, verwenden Sie das Bones-Dienstprogramm von AndroWish SDK. Sobald das Paket erfolgreich erstellt wurde, erscheint die Schaltfläche „Installieren und ausführen“ und beim Klicken öffnet sich ein Protokollfenster mit der Ausgabe von adb logcat (Android Debug Bridge Logger). Der Nachteil dieses Bildschirms besteht darin, dass es schwierig ist, die Fehlermeldung zu finden, insbesondere wenn das Flag „V“ (ausführlich) aktiviert ist. Daher wurde ein „Speichern“-Button hinzugefügt, der das Protokoll in der Datei /tmp/logBone.txt speichert (wir sprechen von Linux):

Verwendung der kryptografischen Token-Mechanismen PKCS#11 auf der Android-Plattform

Mit der Einführung dieser Schaltfläche wurde das Debuggen der Anwendung erheblich vereinfacht.

Um eine Schaltfläche hinzuzufügen, fügen Sie einfach nach Zeile 2591 den folgenden Code zur Bones-Datei 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 sieht folgendermaßen aus:

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
}

Source: habr.com

Kommentar hinzufügen