Bruker PKCS#11 kryptografiske tokenmekanismer på Android-plattformen

Bruker PKCS#11 kryptografiske tokenmekanismer på Android-plattformen Tiden er inne for å bruke kryptografisk PKCS#1-mekanismer1 og på Android-plattformen. Noen vil kanskje si at det ikke finnes noen maskinvaretokens for Android. Men hvis dette er tilfelle, er dette bare et midlertidig fenomen. Men i dag kan du sette et programvaretoken eller bruke sky-token. Siden verktøyet cryptoarmpkcs-A er utviklet for Android-plattformen ved å bruke Androwish i Tcl/Tk-skriptspråket, deretter brukes pakken til å koble til tokens TclPKCS11 versjon 1.0.1.

I dette tilfellet var det ikke nødvendig med behandling av pakken. Alt som ble gjort var å legge til et skript til prosjektet for å bygge pakkebiblioteket skrevet på språket B, for Android og selve bibliotekdistribusjonen. Det ble besluttet å legge til biblioteker med programvare ls11sw2016 og cloud ls11cloud-tokens for ulike plattformer til det samme prosjektet.

Alt annet er enkelt. Vi legger til knapper for å velge et fungerende token i det andre vinduet og får:

  • programvaretoken ls11sw2016;
  • sky-token ls11cloud;
  • en annen PKCS11#11 token.

Bruker PKCS#11 kryptografiske tokenmekanismer på Android-plattformen

Som standard er et programvaretoken tilkoblet. Hvis den ikke har blitt opprettet tidligere, vil du bli bedt om å initialisere den. La oss minne deg på det token-initialisering består av å tilordne en tag og angi en bruker-PIN-kode:

Bruker PKCS#11 kryptografiske tokenmekanismer på Android-plattformen

Merk at programvaretokenet ble utviklet i samsvar med anbefalingene til PKCS#11 v.2.40 og TK-26. For å få fullstendig informasjon om tokenet, inkludert støttede kryptografiske mekanismer, klikker du bare på "Om tokenet og dets kryptografi"-knappen i hovedmenyen ("Funksjonell"). I dag har ikke et eneste maskinvaretoken som støtter russisk kryptografi denne funksjonaliteten:

Bruker PKCS#11 kryptografiske tokenmekanismer på Android-plattformen

Spørsmålet oppstår: - hvordan installere et personlig sertifikat på et token. Det er to alternativer. Det første alternativet er å importere selve sertifikatet og nøkkelparet gjennom PKCS#12-beholderen («Arbeid med PKCS12/PFX»-knappen):

Bruker PKCS#11 kryptografiske tokenmekanismer på Android-plattformen

Det andre alternativet innebærer å opprette en forespørsel (PKCS#10) for et sertifikat. Dette alternativet (funksjon "Sertifikatforespørsel") sørger for generering av et nøkkelpar direkte på token:

Bruker PKCS#11 kryptografiske tokenmekanismer på Android-plattformen

Nå kan du lagre forespørselen på flash-stasjoner og gå til sertifiseringssenter for et sertifikat. Hvis du skal bruke sertifikatet til testformål eller internt, kan du også bruke verktøyet til å utstede et sertifikat CAFL63. Det resulterende sertifikatet importeres til tokenet i "Se forespørsel/sertifikat"-fanen:

Bruker PKCS#11 kryptografiske tokenmekanismer på Android-plattformen

Du kan nå signere dokumenter med sertifikater lagret på tokenet ved å bruke fanen "Signer et dokument".

I den neste artikkelen vil vi fortelle deg hvordan du kobler til et skytoken. Og spørsmålet om å overføre sertifikatgenereringsfunksjoner til mobilplattformen er fortsatt åpent. Er dette nødvendig?

Den oppdaterte versjonen av cryptoarmpkcs-A-verktøyet for Android-plattformen kan lastes ned her:

P.S. Lagrer loggen

For å bygge pakken, bruk bones-verktøyet fra AndroWish SDK. Når pakken er bygget, vises en "Installer og kjør"-knapp, som åpner et loggvindu som viser utdataene fra adb logcat (Android Debug Bridge-logger). Ulempen med denne skjermen er at det er vanskelig å finne feilmeldingen, spesielt med "V" (verbose) flagget aktivert. Derfor ble en "Lagre"-knapp lagt til, som lagrer loggen i filen /tmp/logBone.txt (vi snakker om Linux):

Bruker PKCS#11 kryptografiske tokenmekanismer på Android-plattformen

Med bruken av denne knappen har prosessen med å feilsøke applikasjonen blitt betydelig forenklet.

For å legge til en knapp, legg til følgende kode i beinfilen etter 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]

Lagringskommandoen adb_logcat_save ser slik ut:

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

Legg til en kommentar