Používanie mechanizmov kryptografických tokenov PKCS#11 na platforme Android

Používanie mechanizmov kryptografických tokenov PKCS#11 na platforme Android Nastal čas použiť kryptografiu PKCS#1 mechanizmov1 a na platforme Android. Niekto môže povedať, že pre Android neexistujú žiadne hardvérové ​​tokeny. Ale ak je to tak, potom je to len dočasný jav. Ale dnes môžete dať softvérový token alebo použiť cloudový token. Vzhľadom k tomu, utility cryptoarmpkcs-A je vyvinutý pre platformu Android pomocou Androwish v skriptovacom jazyku Tcl/Tk, potom sa balík používa na pripojenie tokenov TclPKCS11 verzia 1.0.1.

V tomto prípade nebolo potrebné žiadne spracovanie balíka. Všetko, čo sa urobilo, bolo pridať skript do projektu na vytvorenie knižnice balíkov napísanej v jazyku B, pre Android a samotnú distribúciu knižnice. Do toho istého projektu bolo rozhodnuté pridať knižnice softvéru ls11sw2016 a cloud ls11cloud tokenov pre rôzne platformy.

Všetko ostatné je jednoduché. Do druhého okna pridáme tlačidlá na výber pracovného tokenu a získame:

  • softvérový token ls11sw2016;
  • cloudový token ls11cloud;
  • ďalší token PKCS11#11.

Používanie mechanizmov kryptografických tokenov PKCS#11 na platforme Android

Štandardne je pripojený softvérový token. Ak ešte nebol vytvorený, zobrazí sa výzva na jeho inicializáciu. Pripomeňme si to inicializácia tokenu pozostáva z priradenia štítku a nastavenia užívateľského PIN kódu:

Používanie mechanizmov kryptografických tokenov PKCS#11 na platforme Android

Upozorňujeme, že softvérový token bol vyvinutý v súlade s odporúčaniami PKCS#11 v.2.40 a TK-26. Ak chcete získať úplné informácie o tokene vrátane podporovaných kryptografických mechanizmov, stačí kliknúť na tlačidlo „O tokene a jeho kryptografii“ v hlavnom menu („Funkčné“). Dnes nemá túto funkciu ani jeden hardvérový token podporujúci ruskú kryptografiu:

Používanie mechanizmov kryptografických tokenov PKCS#11 na platforme Android

Vzniká otázka: - ako nainštalovať osobný certifikát na token. Sú dve možnosti. Prvou možnosťou je importovať samotný certifikát a jeho pár kľúčov cez kontajner PKCS#12 (tlačidlo „Pracovať s PKCS12/PFX“):

Používanie mechanizmov kryptografických tokenov PKCS#11 na platforme Android

Druhá možnosť zahŕňa vytvorenie požiadavky (PKCS#10) na certifikát.Táto možnosť (funkcia "Žiadosť o certifikát") umožňuje vygenerovanie páru kľúčov priamo na tokene:

Používanie mechanizmov kryptografických tokenov PKCS#11 na platforme Android

Teraz môžete žiadosť uložiť na flash disky a prejsť na certifikačného centra za certifikát. Ak budete certifikát používať na testovacie účely alebo interne, na vydanie certifikátu môžete použiť aj utilitu CAFL63. Výsledný certifikát sa importuje do tokenu na karte „Zobraziť žiadosť/certifikát“:

Používanie mechanizmov kryptografických tokenov PKCS#11 na platforme Android

Teraz môžete pomocou karty podpisovať dokumenty s certifikátmi uloženými v tokene "Podpísať dokument".

V ďalšom článku vám povieme, ako sa pripojiť ku cloudovému tokenu. A otázka prenosu funkcií generovania certifikátov na mobilnú platformu zostáva otvorená. Je to potrebné?

Aktualizovanú verziu nástroja cryptoarmpkcs-A pre platformu Android si môžete stiahnuť tu:

PS Ukladanie denníka

Na zostavenie balíka použite utilitu bones from AndroWish SDK. Po úspešnom zostavení balíka sa zobrazí tlačidlo „Inštalovať a spustiť“ a po kliknutí sa otvorí okno denníka s výstupom adb logcat (protokol Android Debug Bridge). Nevýhodou tejto obrazovky je, že je ťažké nájsť chybové hlásenie, najmä ak je povolený príznak „V“ (verbose). Preto bolo pridané tlačidlo „Uložiť“, ktoré uloží protokol do súboru /tmp/logBone.txt (hovoríme o Linuxe):

Používanie mechanizmov kryptografických tokenov PKCS#11 na platforme Android

S príchodom tohto tlačidla sa proces ladenia aplikácie výrazne zjednodušil.

Ak chcete pridať tlačidlo, stačí pridať nasledujúci kód do súboru kostí za riadok 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]

Príkaz na uloženie adb_logcat_save vyzerá takto:

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
}

Zdroj: hab.com

Pridať komentár