1、基本概念
数字签名就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接收者)进行伪造。
数字证书是一段包含用户身份信息、用户公钥信息以及身份验证机构数字签名的数据。数字证书是由成为证书颁发机构(CA)的权威机构颁发的。由于数字证书由证书权威机构颁发,因此由该权威机构担保证书信息的有效性。此外,数字证书只在特定的时间段内有效。数字证书包含证书中所标识的实体的公钥。
密钥和公钥的作用:在公钥密码体制中,每个实体都有一对互相匹配的密钥:公开密钥和私有密钥。公开密钥为一组用户所共享,用于加密或验证签名,私有密钥仅为证书拥有者本人所知,用于解密或签名。
每个文件代表的含义和存储的内容:
.pkv文件——私人密钥文件
.cer文件——数字证书(证书中包含公钥)
.spc文件——数字证书(证书中包含公钥和私钥)
.cab文件——签名之后的cab包中,除了ocx、inf、dll等文件之外,还包含证书、公钥、私钥三部分内容。
2、数字签名的作用
数字签名可以解决否认、伪造、篡改及冒充等问题。
1)保证信息自签发后到收到为止未曾作过任何修改,身份验证机构的数字签名可以确保证书信息的真实性。
2)用户公钥信息可以保证数字信息传输的完整性。
3)用户的数字签名可以保证数字信息的不可否认性。
3、数字签名的工作流程
每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样信息就可以安全无误地到达目的地了。
二、制作数字签名的步骤
将要打包的文件如下所示:
1、配置环境变量
首先将makeCAB程序的路径放入环境变量中,如下图:
注意:在选择环境变量的时候选择的是系统变量中的Path。
2、进入命令提示符界面
在运行中输入“cmd”,再进入ocx所在的目录下,输入的命令如下图:
3、先要创建PVK文件(私人密匙文件)。
进入在命令行中输入“makecert-sk BPLAOCX BPLAOCX.pvk -n CN=SNBC”,然后回车,
提示succeed表示成功。
4、创建CER文件(公司证书)。
在命令行中输入“makecert -sk BPLAOCX.pvkBPLAOCX.cer”,然后回车,如图8所示,若出现“Successed”提示,则会在E:\evS1300目录下生成evS1300.cer文件。
5、创建SPC测试软件出版商证明书
SPC包含cer文件内容和私钥
在命令行中输入“cert2spc BPLAOCX.cerBPLAOCX.spc”,然后回车。
6、生成CAB文件
在命令行中输入“cabarc -s 6144 n BPLAOCX.cabUSBPrintDll.dll LabelUSBPrintDll.dll DeviceBindLib.dll ByUSBInt.dll BPLAOCX.ocxBPLAOCX.ini BPLAOCX.inf”,然后回车:
生成的文件结果:
7、生成签名
1)打开makeCAB下的signcode.exe程序。
2)点击下一步,进入选择cab文件的界面。
3)选中需要签名的cab文件,点击“下一步”。
4)选中自定义选项,点击“下一步”。
5)选择有效的证书,后面的步骤按照提示就可以继续走下去。