在Android平台上使用PKCS#11加密令牌机制

在Android平台上使用PKCS#11加密令牌机制 使用加密技术的时代已经到来 PKCS#1 机制1、Android平台上。 有人可能会说 Android 没有硬件令牌。 但是,如果真是这样,那么这只是暂时的现象。 但今天您可以放置​​软件令牌或使用 云令牌。 自从实用 隐臂kcs-A 使用Tcl/Tk脚本语言中的Androwish为Android平台开发,然后使用该包来连接token TclPKCS11 版本 1.0.1.

在这种情况下,不需要对包进行处理。 所做的就是向项目添加一个脚本来构建用该语言编写的包库 他们自己,适用于 Android 和库发行版本身。 决定将适用于各种平台的软件库 ls11sw2016 和云 ls11cloud 令牌添加到同一项目中。

其他一切都很简单。 我们将用于选择工作令牌的按钮添加到第二个窗口并得到:

  • 软件令牌 ls11sw2016;
  • 云代币 ls11cloud;
  • 另一个 PKCS11#11 令牌。

在Android平台上使用PKCS#11加密令牌机制

默认情况下,连接软件令牌。 如果之前没有创建过,系统会提示您进行初始化。 让我们提醒您 令牌初始化 包括分配标签和设置用户 PIN 码:

在Android平台上使用PKCS#11加密令牌机制

请注意,软件令牌是根据 PKCS#11 v.2.40 和 TK-26 的建议开发的。 要获取有关令牌的完整信息,包括支持的加密机制,只需单击主菜单中的“关于令牌及其加密”按钮(“功能”)。 如今,没有一个支持俄罗斯密码的硬件令牌具有此功能:

在Android平台上使用PKCS#11加密令牌机制

出现了问题: - 如何在令牌上安装个人证书。 有两种选择。 第一个选项是通过 PKCS#12 容器导入证书本身及其密钥对(“使用 PKCS12/PFX”按钮):

在Android平台上使用PKCS#11加密令牌机制

第二个选项涉及创建证书请求 (PKCS#10)。此选项(函数 “证书请求”)直接在令牌上生成密钥对:

在Android平台上使用PKCS#11加密令牌机制

现在您可以将请求保存到闪存驱动器并转到 认证中心 以获得证书。 如果您将证书用于测试目的或内部,您还可以使用该实用程序颁发证书 CAFL63。 生成的证书将导入到“查看请求/证书”选项卡中的令牌中:

在Android平台上使用PKCS#11加密令牌机制

您现在可以使用选项卡使用存储在令牌上的证书签署文档 “签署文件”.

在下一篇文章中,我们将告诉您如何连接到云令牌。 将证书生成功能转移到移动平台的问题仍然悬而未决。 有这个必要吗?

适用于 Android 平台的 cryptoarmpkcs-A 实用程序的更新版本可以在此处下载:

PS保存日志

要构建包,请使用骨骼实用程序 安卓Wish SDK。 成功构建包后,会出现一个“安装并运行”按钮,单击时会打开一个日志窗口,显示 adb logcat(Android 调试桥记录器)的输出。 此屏幕的缺点是很难找到错误消息,尤其是在启用“V”(详细)标志的情况下。 因此,添加了一个“保存”按钮,它将日志保存在文件 /tmp/logBone.txt 中(我们讨论的是 Linux):

在Android平台上使用PKCS#11加密令牌机制

随着这个按钮的出现,调试应用程序的过程已经大大简化。

要添加按钮,只需将以下代码添加到bones文件第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]

adb_logcat_save 保存命令如下所示:

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
}

来源: habr.com

添加评论