Es ist Zeit, Kryptographie einzusetzen 1 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 . Weil der Nutzen wird für die Plattform entwickelt Android Das Paket verwendet Androwish in der Skriptsprache Tcl/Tk, um Tokens zu verbinden. .
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 unter 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.

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

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:

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“):

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

Nun können Sie die Anfrage auf dem USB-Stick speichern und zusammen mit den Dokumenten darauf zugreifen. 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 . Das erhaltene Zertifikat wird im Reiter „Antrag/Zertifikat anzeigen“ in das Token importiert:

Sie können nun Dokumente mit auf dem Token gespeicherten Zertifikaten über die Registerkarte .
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. Nachdem 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):

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
