Brug af PKCS#11 kryptografiske token-mekanismer på Android-platformen

Brug af PKCS#11 kryptografiske token-mekanismer på Android-platformen Tiden er inde til at bruge kryptografisk PKCS#1 mekanismer1 og på Android-platformen. Nogle vil måske sige, at der ikke er nogen hardware-tokens til Android. Men hvis dette er tilfældet, så er dette kun et midlertidigt fænomen. Men i dag kan du sætte et softwaretoken eller bruge sky token. Siden brugen cryptoarmpkcs-A er udviklet til Android platformen ved hjælp af Androwish i Tcl/Tk scriptsproget, så bruges pakken til at forbinde tokens TclPKCS11 version 1.0.1.

I dette tilfælde krævedes ingen behandling af pakken. Det eneste, der blev gjort, var at tilføje et script til projektet for at bygge pakkebiblioteket skrevet på sproget B, til Android og selve biblioteksdistributionen. Det blev besluttet at tilføje biblioteker af software ls11sw2016 og cloud ls11cloud-tokens til forskellige platforme til det samme projekt.

Alt andet er enkelt. Vi tilføjer knapper til at vælge et fungerende token til det andet vindue og får:

  • softwaretoken ls11sw2016;
  • sky token ls11cloud;
  • endnu et PKCS11#11-token.

Brug af PKCS#11 kryptografiske token-mekanismer på Android-platformen

Som standard er et softwaretoken tilsluttet. Hvis det ikke er blevet oprettet tidligere, vil du blive bedt om at initialisere det. Lad os huske det token-initialisering består af at tildele et tag og indstille en bruger-PIN-kode:

Brug af PKCS#11 kryptografiske token-mekanismer på Android-platformen

Bemærk, at softwaretokenet er udviklet i overensstemmelse med anbefalingerne fra PKCS#11 v.2.40 og TK-26. For at få fuldstændige oplysninger om tokenet, inklusive understøttede kryptografiske mekanismer, skal du blot klikke på knappen "Om tokenet og dets kryptografi" i hovedmenuen ("Funktionel"). I dag har ikke et eneste hardwaretoken, der understøtter russisk kryptografi, denne funktionalitet:

Brug af PKCS#11 kryptografiske token-mekanismer på Android-platformen

Spørgsmålet opstår: - hvordan man installerer et personligt certifikat på et token. Der er to muligheder. Den første mulighed er at importere selve certifikatet og dets nøglepar gennem PKCS#12-beholderen (knappen "Arbejd med PKCS12/PFX"):

Brug af PKCS#11 kryptografiske token-mekanismer på Android-platformen

Den anden mulighed involverer oprettelse af en anmodning (PKCS#10) for et certifikat "Certifikatanmodning") sørger for generering af et nøglepar direkte på tokenet:

Brug af PKCS#11 kryptografiske token-mekanismer på Android-platformen

Nu kan du gemme anmodningen på flashdrev og gå til certificeringscenter for et certifikat. Hvis du vil bruge certifikatet til testformål eller internt, kan du også bruge værktøjet til at udstede et certifikat CAFL63. Det resulterende certifikat importeres til tokenet på fanen "Se anmodning/certifikat":

Brug af PKCS#11 kryptografiske token-mekanismer på Android-platformen

Du kan nu underskrive dokumenter med certifikater gemt på tokenet ved at bruge fanen "Underskriv et dokument".

I den næste artikel vil vi fortælle dig, hvordan du opretter forbindelse til et cloud-token. Og spørgsmålet om at overføre certifikatgenereringsfunktioner til den mobile platform forbliver åbent. Er dette nødvendigt?

Den opdaterede version af cryptoarmpkcs-A-værktøjet til Android-platformen kan downloades her:

PS Gemmer loggen

For at bygge pakken skal du bruge bones-værktøjet fra AndroWish SDK. Når pakken er bygget med succes, vises en "Installer og kør"-knap, og når der klikkes på den, åbnes et logvindue, der viser output fra adb logcat (Android Debug Bridge-logger). Ulempen ved denne skærm er, at det er svært at finde fejlmeddelelsen, især med "V" (verbose) flag aktiveret. Derfor blev der tilføjet en "Gem"-knap, som gemmer loggen i filen /tmp/logBone.txt (vi taler om Linux):

Brug af PKCS#11 kryptografiske token-mekanismer på Android-platformen

Med fremkomsten af ​​denne knap er processen med at fejlfinde applikationen blevet meget forenklet.

For at tilføje en knap skal du blot tilføje følgende kode til knoglefilen efter linje 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]

Gem kommandoen adb_logcat_save ser sådan ud:

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
}

Kilde: www.habr.com

Tilføj en kommentar