Používání mechanismů kryptografických tokenů PKCS#11 na platformě Android

Používání mechanismů kryptografických tokenů PKCS#11 na platformě Android Nastal čas použít kryptografii mechanismy PKCS#11 a na platformě Android. Někdo může říci, že pro Android neexistují žádné hardwarové tokeny. Ale pokud tomu tak je, pak je to jen dočasný jev. Ale dnes můžete dát softwarový token nebo použít cloudový token. Od užitku cryptoarmpkcs-A je vyvinut pro platformu Android pomocí Androwish ve skriptovacím jazyce Tcl/Tk, pak balíček slouží k připojení tokenů TclPKCS11 verze 1.0.1.

V tomto případě nebylo vyžadováno žádné zpracování balíčku. Vše, co bylo uděláno, bylo přidat do projektu skript pro vytvoření knihovny balíčků napsané v daném jazyce Si, pro Android a samotnou distribuci knihovny. Bylo rozhodnuto přidat do stejného projektu knihovny softwaru ls11sw2016 a cloudových tokenů ls11cloud pro různé platformy.

Vše ostatní je jednoduché. Do druhého okna přidáme tlačítka pro výběr pracovního tokenu a získáme:

  • softwarový token ls11sw2016;
  • cloudový token ls11cloud;
  • další token PKCS11#11.

Používání mechanismů kryptografických tokenů PKCS#11 na platformě Android

Ve výchozím nastavení je připojen softwarový token. Pokud ještě nebyl vytvořen, budete vyzváni k jeho inicializaci. Připomeňme vám to inicializace tokenu spočívá v přiřazení štítku a nastavení uživatelského PIN kódu:

Používání mechanismů kryptografických tokenů PKCS#11 na platformě Android

Upozorňujeme, že softwarový token byl vyvinut v souladu s doporučeními PKCS#11 v.2.40 a TK-26. Chcete-li získat úplné informace o tokenu, včetně podporovaných kryptografických mechanismů, stačí kliknout na tlačítko „O tokenu a jeho kryptografii“ v hlavní nabídce („Funkční“). Dnes tuto funkci nemá ani jeden hardwarový token podporující ruskou kryptografii:

Používání mechanismů kryptografických tokenů PKCS#11 na platformě Android

Nabízí se otázka: - jak nainstalovat osobní certifikát na token. Jsou dvě možnosti. První možností je import samotného certifikátu a jeho páru klíčů přes kontejner PKCS#12 (tlačítko „Práce s PKCS12/PFX“):

Používání mechanismů kryptografických tokenů PKCS#11 na platformě Android

Druhá možnost zahrnuje vytvoření požadavku (PKCS#10) na certifikát. Tato možnost (funkce "Žádost o certifikát") umožňuje generování páru klíčů přímo na tokenu:

Používání mechanismů kryptografických tokenů PKCS#11 na platformě Android

Nyní můžete požadavek uložit na flash disky a přejít na certifikačním střediskem za certifikát. Pokud budete certifikát používat pro testovací účely nebo interně, můžete také použít utilitu k vydání certifikátu CAFL63. Výsledný certifikát se importuje do tokenu v záložce „Zobrazit žádost/certifikát“:

Používání mechanismů kryptografických tokenů PKCS#11 na platformě Android

Nyní můžete podepisovat dokumenty pomocí certifikátů uložených na tokenu pomocí karty "Podepsat dokument".

V příštím článku vám řekneme, jak se připojit ke cloudovému tokenu. A otázka přenosu funkcí generování certifikátů na mobilní platformu zůstává otevřená. Je to nutné?

Aktualizovaná verze nástroje cryptoarmpkcs-A pro platformu Android je ke stažení zde:

PS Ukládání protokolu

K sestavení balíčku použijte obslužný program bones from SDK pro AndroidWish. Po úspěšném sestavení balíčku se zobrazí tlačítko „Instalovat a spustit“ a po kliknutí se otevře okno protokolu s výstupem protokolu adb logcat (protokol Android Debug Bridge). Nevýhodou této obrazovky je, že je obtížné najít chybovou zprávu, zvláště když je povolen příznak "V" (verbózní). Proto bylo přidáno tlačítko „Uložit“, které uloží log do souboru /tmp/logBone.txt (mluvíme o Linuxu):

Používání mechanismů kryptografických tokenů PKCS#11 na platformě Android

S příchodem tohoto tlačítka se proces ladění aplikace výrazně zjednodušil.

Chcete-li přidat tlačítko, stačí přidat následující kód do souboru kostí za řádek 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]

Příkaz uložení adb_logcat_save vypadá 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: www.habr.com

Přidat komentář