Korištenje mehanizama kriptografskih tokena PKCS#11 na platformi Android

Korištenje mehanizama kriptografskih tokena PKCS#11 na platformi Android Došlo je vrijeme za korištenje kriptografije PKCS#1 mehanizmi1 i na Android platformi. Neki bi mogli reći da ne postoje hardverski tokeni za Android. No, ako je to tako, onda je to samo privremena pojava. Ali danas možete staviti softverski token ili koristiti token oblaka. Budući da je korisnost kriptoarmpkcs-A je razvijen za Android platformu koristeći Androwish u Tcl/Tk skriptnom jeziku, zatim se paket koristi za povezivanje tokena TclPKCS11 verzija 1.0.1.

U ovom slučaju nije bila potrebna obrada paketa. Sve što je učinjeno bilo je dodavanje skripte projektu za izgradnju knjižnice paketa napisane na jeziku B, za Android i sama distribucija biblioteke. Odlučeno je da se u isti projekt dodaju biblioteke softvera ls11sw2016 i cloud ls11cloud tokena za različite platforme.

Sve ostalo je jednostavno. Dodamo gumbe za odabir radnog tokena u drugi prozor i dobijemo:

  • softverski token ls11sw2016;
  • oblak token ls11cloud;
  • drugi PKCS11#11 token.

Korištenje mehanizama kriptografskih tokena PKCS#11 na platformi Android

Prema zadanim postavkama povezan je softverski token. Ako prethodno nije stvoren, od vas će se tražiti da ga inicijalizirate. Podsjetimo da inicijalizacija tokena sastoji se od dodjele oznake i postavljanja korisničkog PIN koda:

Korištenje mehanizama kriptografskih tokena PKCS#11 na platformi Android

Imajte na umu da je softverski token razvijen u skladu s preporukama PKCS#11 v.2.40 i TK-26. Za dobivanje potpunih informacija o tokenu, uključujući podržane kriptografske mehanizme, samo kliknite gumb "O tokenu i njegovoj kriptografiji" u glavnom izborniku ("Funkcionalno"). Danas niti jedan hardverski token koji podržava rusku kriptografiju nema ovu funkcionalnost:

Korištenje mehanizama kriptografskih tokena PKCS#11 na platformi Android

Postavlja se pitanje: - kako instalirati osobni certifikat na token. Postoje dvije mogućnosti. Prva opcija je uvoz samog certifikata i njegovog para ključeva kroz spremnik PKCS#12 (gumb "Rad s PKCS12/PFX"):

Korištenje mehanizama kriptografskih tokena PKCS#11 na platformi Android

Druga opcija uključuje kreiranje zahtjeva (PKCS#10) za certifikatom. Ova opcija (funkcija "Zahtjev za potvrdu") osigurava generiranje para ključeva izravno na tokenu:

Korištenje mehanizama kriptografskih tokena PKCS#11 na platformi Android

Sada možete spremiti zahtjev na flash diskove i otići na certifikacijski centar za potvrdu. Ako ćete koristiti certifikat u testne svrhe ili interno, također možete koristiti pomoćni program za izdavanje certifikata CAFL63. Rezultirajući certifikat se uvozi na token na kartici "View Request/Certificate":

Korištenje mehanizama kriptografskih tokena PKCS#11 na platformi Android

Sada možete potpisati dokumente s certifikatima pohranjenim na tokenu pomoću kartice "Potpiši dokument".

U sljedećem članku ćemo vam reći kako se spojiti na token u oblaku. I pitanje prijenosa funkcija generiranja certifikata na mobilnu platformu ostaje otvoreno. Je li ovo potrebno?

Ažuriranu verziju uslužnog programa cryptoarmpkcs-A za Android platformu možete preuzeti ovdje:

PS Spremanje dnevnika

Za izradu paketa upotrijebite uslužni program za kosti AndroWish SDK. Nakon što je paket uspješno izgrađen, pojavljuje se gumb "Instaliraj i pokreni" i kada se klikne, otvara se prozor dnevnika koji prikazuje izlaz adb logcat (Android Debug Bridge logger). Loša strana ovog zaslona je da je teško pronaći poruku o pogrešci, posebno s uključenom zastavom "V" (verbose). Stoga je dodan gumb “Save” koji sprema zapisnik u datoteku /tmp/logBone.txt (govorimo o Linuxu):

Korištenje mehanizama kriptografskih tokena PKCS#11 na platformi Android

Pojavom ovog gumba proces otklanjanja pogrešaka u aplikaciji znatno je pojednostavljen.

Da biste dodali gumb, samo dodajte sljedeći kod u datoteku s kostima nakon retka 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]

Naredba za spremanje adb_logcat_save izgleda ovako:

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
}

Izvor: www.habr.com

Dodajte komentar