Verwendung von PKCS#11-Kryptografietokenmechanismen auf der Plattform Android

Verwendung von PKCS#11-Kryptografietokenmechanismen auf der Plattform Android Es ist Zeit, Kryptographie einzusetzen PKCS#1-Mechanismen1 und auf der Plattform AndroidManche mögen sagen, dass es keine Hardware-Token gibt für AndroidAber selbst wenn das stimmt, ist es nur vorübergehend. Heute können Sie jedoch einen Software-Token installieren oder verwenden Cloud-Token. Weil der Nutzen cryptoarmpkcs-A wird für die Plattform entwickelt Android Das Paket verwendet Androwish in der Skriptsprache Tcl/Tk, um Tokens zu verbinden. TclPKCS11 Version 1.0.1.

Darüber hinaus war keine Bearbeitung des Pakets erforderlich. Alles, was getan wurde, war, dem Projekt ein Skript zum Erstellen der Paketbibliothek hinzuzufügen, das in der Sprache geschrieben ist selbstunter Android und die Bibliotheksverteilung selbst. Außerdem wurde beschlossen, die Software-Bibliothek ls11sw2016 und die Cloud-Token-Bibliothek ls11cloud für verschiedene Plattformen in dieses Projekt aufzunehmen.

Von hier an ist alles einfach. Wir fügen dem zweiten Fenster Schaltflächen zum Auswählen eines funktionierenden Tokens hinzu und erhalten:

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

Verwendung von PKCS#11-Kryptografietokenmechanismen auf der Plattform Android

Standardmäßig ist ein Software-Token verbunden. Wenn es nicht bereits zuvor erstellt wurde, werden Sie aufgefordert, es zu initialisieren. Erinnern wir uns daran, Token-Initialisierung besteht aus der Zuweisung eines Tags und der Festlegung eines Benutzer-PIN-Codes:

Verwendung von PKCS#11-Kryptografietokenmechanismen auf der Plattform Android

Es ist zu beachten, dass das Software-Token gemäß den Empfehlungen von PKCS#11 v.2.40 und TK-26 entwickelt wurde. Um vollständige Informationen zum Token, einschließlich der unterstützten kryptografischen Mechanismen, zu erhalten, klicken Sie einfach im Hauptmenü („Funktionalität“) auf „Über das Token und seine Kryptografie“. Heute verfügt kein Hardware-Token mit Unterstützung für russische Kryptografie über eine solche Funktionalität:

Verwendung von PKCS#11-Kryptografietokenmechanismen auf der Plattform Android

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 von PKCS#11-Kryptografietokenmechanismen auf der Plattform Android

Die zweite Möglichkeit besteht darin, eine Anforderung (PKCS#10) für ein Zertifikat zu erstellen. Diese Option (Funktion "Antrag auf ein Zertifikat") ermöglicht die Generierung eines Schlüsselpaares direkt auf dem Token:

Verwendung von PKCS#11-Kryptografietokenmechanismen auf der Plattform Android

Nun können Sie die Anfrage auf dem USB-Stick speichern und zusammen mit den Dokumenten darauf zugreifen. Zertifizierungsstelle für ein Zertifikat. Wenn Sie das Zertifikat zu Testzwecken oder intern verwenden möchten, können Sie das Dienstprogramm auch zum Ausstellen des Zertifikats verwenden CAFL63. Das erhaltene Zertifikat wird im Reiter „Antrag/Zertifikat anzeigen“ in das Token importiert:

Verwendung von PKCS#11-Kryptografietokenmechanismen auf der Plattform Android

Sie können nun Dokumente mit auf dem Token gespeicherten Zertifikaten über die Registerkarte "Unterschreiben Sie das Dokument".

Im nächsten Artikel erklären wir Ihnen, wie Sie eine Verbindung zum Cloud-Token herstellen. Und die Frage der Übertragung der Funktionen zur Zertifikatsgenerierung auf die mobile Plattform bleibt offen. Besteht hierfür ein Bedarf?

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

P.S. Speichern des Protokolls

Zum Erstellen des Pakets wird das Dienstprogramm „Bones“ aus dem Paket verwendet. AndroWish SDKNachdem das Paket erfolgreich erstellt wurde, erscheint eine Schaltfläche „Installieren & Ausführen“, die beim Anklicken ein Protokollfenster öffnet, in dem die Ausgabe von adb logcat (dem Protokollierungstool) angezeigt wird. Android Debug Bridge). Der Nachteil dieses Bildschirms ist, dass die Fehlermeldung schwer zu finden ist, insbesondere wenn das Kontrollkästchen „V“ (ausführlich) aktiviert ist. Daher wurde eine Schaltfläche „Speichern“ hinzugefügt, die das Protokoll in der Datei /tmp/logBone.txt speichert (wir sprechen hier von …). Linux):

Verwendung von PKCS#11-Kryptografietokenmechanismen auf der Plattform Android

Mit der Einführung dieser Schaltfläche ist das Debuggen der Anwendung viel einfacher geworden.

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 Befehl 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

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz und VPS-VDS-Servern 🔥 Kaufen Sie zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server | ProHoster