在线商店

NFC数字签名软件SDK

数字签名源代码软件µFR系列NFC RFID非接触式阅读器bob全站版

数字签名是在线业务的未来,无论我们谈论的是简单的文档、代码和电子邮件签名,还是我们现在在加密货币和区块链中看到的更高级的加密实现。
BOB直播官网appDigital Logic Ltd.是世界上最早使用非接触式RFID卡实施数字签名解决方案的公司之一。
我们预计,仍在使用联系人卡片的旧系统将很快成为历史。

µFR Signer软件支持RSA和ECDSA加密算法用于数字签名文件。
软件适用于我们的µFR系列NFC设备:纳米经典经典的计算机科学,推进
µFR Signer适用于支持RSA和ECDSA的所有卡。在我们的演示视频中,我们使用JCOP卡J3D081。

文档和软件下载

数字签名和验证工具

DL Signer卡使用RSA或ECDSA非对称加密算法为卡本身的数据和文档提供数字签名。支持PKI基础设施,并且在DL Signer卡中,可以存储与卡本身生成的加密密钥对相关的X.509证书。支持存储构成从根证书到最终实体证书的信任链的所有X.509证书。

在创建证书签名需求(以下简称CSR)时,在DL Signer卡中生成的公钥被放置在请求主体中。请求在卡本身中使用适当的私钥签名,该私钥永远不会离开卡本身,并且在生成密钥对后无法读取。此外,CSR被发送到认证机构,以基于它创建和签署X.509证书。该最终实体证书与来自信任链的其他证书一起放置在DL Signer卡中,并准备对数据和文档进行数字签名。用户可以将CSR发送到他希望使用其服务的任何认证机构。Digital Logic提供了一种机制来颁发终端实体证书来测试系统。终端实体证书的基本特征之一是,私钥(与此类证书包含的公钥配对)不得用于签署其他证书。

启动加密密钥对的生成、生成csr、管理DL Signer卡的PIN和PUK代码、操作X.509证书的内容以及对数据和文件进行签名的Windows软件工具作为“ufr-signer”分发。

“签名验证器”是一个验证RSA和ECDSA数字签名的Windows应用程序。

数字签名和签名验证也可以使用我们为此目的开发的ufr-pkcs11模块在adobeacrobatreader DC应用程序中完成。我们的pkcs# 11模块还可以与流行的Mozilla电子邮件客户端和web浏览器以及与pkcs# 11规范兼容的其他软件工具一起使用。

我们还提供了在线检查X.509证书和签名pdf文件的web服务。

在这里签名者

“uFR签名者”是一个软件工具,它启动加密密钥对的生成,生成CSR请求,用于管理DL签名者卡的PIN和PUK代码,操纵X.509证书的内容,并对数据和文件进行签名。

应用程序使用选项卡控件可视组件划分为几个逻辑单元。标签上标有这些单位的名称:

“RSA密钥”和“EC密钥”用于创建和操作RSA或ECC密钥对。

RSA (Rivest, Shamir, & Adleman)和ECC (Elliptic Curve Cryptography)代表了当代的非对称加密算法。DL Signer卡支持分别存储3个RSA和3个ECC密钥。每个加密密钥可以具有不同的长度和特征,并由加密算法和密钥索引表示。

“PIN码”选项卡指的是管理和记录用户的PIN码到位于uFR阅读器字段的DL Signer卡上。密码是“个人识别号码”的缩写。除了PIN码,在此选项卡上,您还可以使用PUK码解锁最终被封锁的卡。PUK代表“PIN解锁密钥”。

“Card Objects”选项卡用于管理CA证书和终端实体证书,它们通过索引与其各自的加密密钥相关联。证书必须在X.509版本3之下。终端实体凭证必须包含最初在DL Signer卡中生成的公钥,并与关联的私钥成对使用。该证书的主要用途是为通过pkcs# 11模块进行签名做准备。在专有应用程序中使用DL签名者卡时,X.509证书的存在并不是强制性的。

在“签名”选项卡上有创建数字签名的选项。可以对字节数组、文本输入或文件进行签名。这些签名可以使用“签名验证器”应用程序进行验证。

为了有效地解决性能问题,DL签名卡被设计成尽可能简洁地签名数据块。因此,使用pkcs# 1 v1.5方案定义的RSA算法对数据进行数字签名是一种实践。对于ECDSA算法,在RFC 6979中定义了数字签名生成过程、填充和对齐机制。

uFRSigner应用程序的最新版本为1.5.3.0,需要使用ufrcoder库版本5.0.1及以上,uFR固件版本5.0.7及以上。

密码

PIN码是“个人识别号码”的缩写。DL签名卡包含2个不同的PIN码。这些是SO(安全人员)PIN码和用户PIN码。所谓的“安全官员”是具有访问DL签名者卡上安全对象的管理权限的用户。所以PIN码应该与用户PIN码不同。

当需要更改PIN码和PUK码,以及更改密钥和证书的存储内容时,需要“安全员”登录才能访问该卡。要获得散列数据字符串的数字签名,必须使用用户PIN码登录。

DL签名卡上的PIN码最少为4个字符,最多为8个字符。这里,在字符下面,有任何字母数字(区分大小写)或任何可打印字符。可打印字符主要是指标准键盘上的标点符号。当更改PIN码时,不建议使用只能在单个本地化键盘上找到的特定字符,而只建议使用ASCII标准和标准美式英语键盘上存在的字符。

在所有DL签名卡中,初始设置默认PIN码和用户PIN码,由8个连续的数字字符“0”(零)或“00000000”组成。

连续输入错误PIN码最多为5次。如果超过连续错误输入PIN码的次数,则锁定该PIN码。当PIN码不被阻止时,输入正确的PIN码将重置错误输入的PIN码计数器。

解锁PIN的唯一方法是输入正确的PUK代码。PUK是“PIN解锁密钥”的缩写。SO PUK码专门用于解锁SO PIN码,用户PUK用于解锁用户PIN码。如果连续输入10个错误的PUK代码,则PUK代码将无法使用,并且与被阻塞的PIN码相关的卡的功能将永远被阻塞。

uFR DL签名Pin

RSA密钥

在“RSA密钥”选项卡上有创建和管理RSA密钥的选项。在使用RSA密钥之前,DL签名者卡必须位于连接到运行uFR签名者应用程序的计算机的uFR阅读器字段中。另外,SO(保安员)也需要登录。

uFR DL签名者RSA密钥

EC的钥匙

在“EC密钥”选项卡上有创建和管理EC密钥的选项。在使用EC密钥之前,DL签名者卡必须位于连接到运行uFR签名者应用程序的计算机的uFR阅读器字段中。另外,SO(保安员)也需要登录。

uFR DL Signer ECC

DL Signer卡支持以下标准ECC曲线:

DL签名者22:

Secp112r1, secp112r2, secp128r1, secp128r2, secp160r1, secp160r1, secp192k1, secp192r1, secp224k1, secp256r1, secp256r1, secp384r1, secp521r1, sect113r1, secp113r2, sect131r1, sect163r1, sect163r2, sect193r1, sect233r1, sect233r1, sect233k1, sect283k1, sect283r1, sect409k1, sect409r1。

DL签名者30:

Secp192k1, secp192r1, secp256k1, secp256r1, secp384r1。

DL Signer 145:

Secp160k1, secp160r1, secp160r2, secp192k1, secp192r1, secp224k1, secp224r1, secp256k1, secp256r1, secp384r1, secp521r1。

生成证书签名请求(CSR)

它是由pkcs# 10标准定义的,它表示一个标准化的记录,除其他事项外,该记录在专有名称中包含关于证书用户的基本信息。基于特征名称,在最终的X.509证书中形成所谓的Subject(主题字段)。此外,CSR记录还可能包含由X.509标准指定的扩展,证书颁发机构(CA)可以根据其认证策略考虑或丢弃这些扩展。CSR的基本部分当然是公钥及其参数。所有这些数据都以pkcs# 10标准定义的形式打包,最后通过适当的加密摘要算法,并使用适当的私钥在卡片中签名。由此获得的数字签名成为CSR的一个组成部分。

CSR被发送到证书的预期颁发者,它代表所谓的证书颁发机构(CA)。证书颁发者将生成您的X.509终端实体证书,该证书由它们各自的私钥签名,现在与适当的中间或根CA证书中包含的公钥相关联。通过这种方式,您的最终实体证书成为由证书颁发机构(CA)保证的信任链的一部分。

“证书签名请求(CSR)”对话框是一个单独的组,用于输入“专有名称(DN)”,“扩展”,并在组合框组的右上角,用于控制哈希算法和加密密钥的定义。右下是一组按钮,用于选择与生成CSR相关的活动。

区别名(distinguished name,简称DN)由一个表示属性组的相对区别名(Relative distinguished name, RDN)组组成。在定义DN时,RDN字段的顺序非常重要。值得注意的是,可以在DN中多次重复一个RDN字段。必须记住,证书颁发机构(CA)没有义务颁发与CSR中定义的DN相同的证书,但是DN可以根据自己的规则和先前实现的用户身份验证过程中获得的数据形成。

通过从组合框中选择适当的RDN并在文本框中键入所需的值,可以形成DN。通过按下“Put”按钮,声明的RDN将被放置在定义DN的列表(列表框)中。如果其中一个RDN字段已经在列表中被选中,那么新的RDN将被插入到选中的字段和之前的字段之间。如果在DN列表中没有选择任何内容,则在列表末尾插入一个新的RDN字段。要取消列表上的选择,请按“取消选择”按钮。不正确的RDN可以按“删除”从列表中删除。RDN字段的顺序可以使用“上移”和“下移”按钮来改变,这些按钮会影响列表中所选RDN的冗余。

扩展是CSR的可选部分,证书颁发机构(CA)可以考虑或拒绝它们,这取决于它们的证书策略。可以分配更多属性,并且希望在主题的备选主题(主题备选名称,缩写为subjectAltName)中定义电子邮件地址,因为这是用于此目的的最常见的证书颁发者。对于扩展,单个属性的顺序并不重要。可以设想,仍然可以定义密钥的预期目的、扩展密钥的目的以及与合格证书相关的语句。需要再次强调的是,证书的颁发者可以忽略扩展,只有其中一些可以颁发所谓合格的电子证书。在任何情况下,在扩展中,用户都可以指出未来证书所需的元素,但是,再一次,X.509证书的最终消除完全取决于它们的颁发者,并且在签署颁发合同之前,所有细节都需要完全熟悉它们的策略。

uFR DL Signer CSR

哈希算法的选择是从标有“签名者摘要算法”的组合框中完成的。默认选择是SHA-256,它与输出为256位或32字节的SHA2算法相关,建议用于CSR。SHA1不再被推荐,SHA2的输出字节数更高(384和512),SHA3算法计划在未来更频繁地使用。

密钥及其参数(“签名人密码算法”和“签名人密钥索引(卡)”)不能在这里更改,并且已经在您打开此对话框的选项卡上定义(“RSA密钥”或“EC密钥”),它们在这里的目的只是提供信息。如果您打开CSR对话框的“RSA密钥”或“EC密钥”中,没有相应的公钥,先前从卡中读取,标签上指示RSA密钥的大小,则ECDSA曲线将显示为“公钥未设置”。如果没有设置公钥,则不可能执行“签名并保存CSR”,但可以从现有CSR或所谓的TBS CSR加载DN和扩展。

TBS CSR是我们所谓的“待签署”请求的内部记录格式,可以作为创建具有多个共同特征的CSR请求的模板。TBS CSR不包含加密密钥,只存储DN和扩展名。

按“Clear Entries”按钮删除DN和扩展名中的所有项,以便为新条目准备好对话框。

按下“签名并保存CSR”键,完成对卡中的CSR签名并将其存储到所选文件中。如果卡不在连接的uFR读取器的字段中或输入了错误的用户PIN码,您将收到一条带有适当描述的错误消息。

生成CSR后要做的最后一件事是将其发送给证书颁发者以接收X.509证书。您可以选择任何一个商业或非商业证书颁发机构,或按下“在线获取证书”按钮,您可以将CSR发送到我们的web服务,以获得由“Digital Logic Ltd.”颁发的演示、测试证书。BOB直播官网app演示,测试证书仅供测试使用,有效期为3个月。随附的根和中间CA证书,您可以从中下载http://ca.d-logic.com

如果您点击“Get Certificate Online”按钮,系统将提示您输入先前保存的CSR文件。pem”扩展名,该扩展名将被发送到HTTP服务器。连接到服务器上https://certificates.d-logic.com如果成功并颁发了X.509证书,系统将提示您输入保存证书的文件名。否则,您将收到相应的错误消息。

x对象

此选项卡旨在管理与DL签名者卡上的证书相关的X.509对象。要从卡片上读取X.509对象,不需要使用任何PIN码登录。要更改卡上X.509对象的存储内容,您需要在“PIN码”页面上使用SO PIN码登录。

uFR DL签名者文件

在X.509上对象”选项卡时,应用程序立即尝试读取uFR阅读器字段中存在的卡片。如果字段中没有DL签名者卡,则会出现错误信息,如下图所示:

错误图片

如果成功地从卡中读取了X.509对象存储,那么将用该内容填充证书显示列表。您可以随时刷新这些列表,只需将所需的卡放在阅读器字段中,并按下“从卡中刷新对象”按钮。

X.509证书文件的选择是通过按“打开证书文件”键来完成的。也可以从PEM格式(Base64编码)的文件中读取证书,其扩展名通常为“”。或从ASN.1标准(der编码)编写的二进制文件,它可以有扩展名。crt”、“。“。der”或“。der”。如果选择了一个有效的文件,将显示一个系统对话框,其中显示所选X.509证书的内容。检查完证书项后,按“OK”按钮就足够确认了。

要将所选证书存储在卡中,需要输入所需的对象ID(任意字母数字字符串),该对象ID与卡上存储的其他证书必须是唯一的。对象ID在“对象ID:”文本框中输入。建议将包含RSA公钥的证书标记为ID eg。“0001”至“0003”以及包含ECDSA公钥的文件将被标记为ID eg。从1001到1003。CA证书还必须在卡片上有一个唯一的ID标签,因此建议用例如“5001”到“5012”来标记它们。仍然需要选择密钥类型。对于RSA和ECDSA类型,卡中的私钥索引绑定到该证书,并且这些索引必须一致。对于CA证书颁发机构,索引的顺序无关,但由于推荐的透明度,它们应该按顺序输入,一个接一个成对输入,例如,从根到中间。支持pkcs# 11模块并使用X.509证书的应用程序通过从卡中读取所有公共对象,然后根据证书本身的内容检查信任链来工作。 In the end, you need to press the button with a descriptive name “Put certificate from a file in the card with a designated ID, object type and index”.

我们提到了根和中间CA证书对,可能有必要进一步澄清这一点。这里我们假设信任链中的最终实体证书是通过根CA证书的中间体建立的。这是由证书的官方发行者形成信任链的通常方法。然而,这并不是一个严格的规则,其他配置可以改变形成信任链的CA证书。需要强调的是,始终存在两个最终证书,在链的开头,即所谓的根(根)CA证书和在链的末尾,即终端实体证书(叶子证书)。

签名

在“签名”选项卡上有从卡中获取数字签名的命令。可以对输入行标记为“M:”(消息)的一组数据或通过单击“设置文件签名”单选按钮可以设置路径的文件进行签名。数据可以十六进制格式输入,也可以Base64编码输入,或者ASCII码输入。

十六进制(HEX)格式包括可以用空格分隔的十六进制数字对。Base64格式常用于X.509证书的密码学和PEM记录。这里我们不详细处理Base64格式。ASCII码布局是一种常用的标准,用于记录文本数据集,包括所有字母数字字符以及所有标准标点符号。原则上,所有可以通过标准美式英语键盘输入的内容都包含在ASCII码布局中。如果碰巧输入了不属于ASCII码布局的字符,并且选中了此选项,则这些字符将在内部被字符' ? '替换。不属于ASCII码布局的字符可以通过一些本地化的键盘输入,或者从“M:”文本框的上下文菜单中选择“粘贴”选项。

当在输入行中输入一些数据时,除非出现输入错误,否则只需选择所需的记录格式(HEX / Base64 / ASCII选项)就可以转换为另一种类型的记录。

点击“设置文件签名”单选按钮打开一个文件选择对话框,这是Windows操作系统的标准。当文件被选中时,路径设置为“M:”文本框。

按下“将信息保存到二进制文件”按钮,可以将在“M:”文本框中输入的字节数组存储到二进制文件中。

通过选择“获取签名”,待签名的数据通过所选择的哈希算法(消息摘要算法),其结果发送到卡上。然后,卡根据从“密码算法”组合框(RSA或ECDSA)和卡中的密钥索引(“卡中的密钥索引”组合框)中选择的加密算法生成签名。要在卡上签名,必须事先使用用户密码登录。

uFR DL Signer签名

签名成功后,根据所选择的选项,在“签名”文本框中显示HEX或Base64格式的数字签名值。通过改变HEX / Base64选择,可以转换签名显示。按下“将签名保存到二进制文件”按钮可以将签名保存到二进制文件中。

还实现了数字签名哈希值的可选计算。出于历史原因,用于此目的的散列算法的选择还包括过时的MD5算法,因为一些旧的加密系统仍然依赖于这种机制。数字签名的哈希值可以通过按“保存哈希到文件”按钮存储到二进制文件中。

软件下载

软件开发工具包(SDK)可用于从我们的软件存储库下载。

先决条件

µFR系列NFC读取器µFR固件版本3.9.53或更高,µFR库版本4.3.3或更高。

视频演示:

软件截图:

使用NFC RFID阅读器uFR经典cs2的bob全站版数字签名

额外的链接:

浏览或下载其他软件示例,请访问我们的Gitlab软件存储库

购买我们的设备,请访问我们的官方网上商店

请随意联系我们的技术支持如果您对我们的软件示例有任何疑问。

Baidu
map