IExpress是微软为压缩CAB文件及制作安装程序所开发的小工具,其实应该算是MAKECAB的一个Shell。虽一直藏身于微软的产品中,却从未对它说明过,但不能否认是一款不错的免费软件。 打开 C:\WINDOWS\SYSTEM 文件夹,运行iexpress.exe,其中会使用到三个文件为:makecab.exe(CAB 文件制作工具)、iexpress.exe(CAB 自解压文件制作向导)、wextract.exe(CAB 自解压文件的“头”文件)。 (3)后面的根据提示进行制作既可。 给ActiveX签名 (转) 给AcitveX签名有很多种方式,现介绍我所了解的几种: 以下用到的工具请在http://ftp.intron.ac/pub/security/下载authenticode.zip文件 一,使用微软的工具不采用私钥文件 1.制作根证书 makecert -sk "myPK" -ss mySSName -n "CN=公司名称" -r myroot.cer sk-表示主题的密钥容器位置,ss-主题的证书存储名称, n-证书颁发对象,r-证书存储位置; 2.制作子证书 makecert -sk "myPK" -is mySSName -n "CN=公司名称" -$ commercial -ic myroot.cer test.cer 3.使用Cert2Spc生成spc发行者证书 cert2spc test.cer test.spc 4.使用signcode为你的程序,库或cab包签名: 5.将myroot.cer导入“受信任的根证书颁发机构”,使用chktrust测试刚才的文件是否签名成功 二,使用微软的工具采用私钥文件 1.制作根证书 makecert -sv "myroot.pvk" -ss mySSName -n "CN=公司名称" -r myroot.cer sv-私钥文件名,ss-主题的证书存储名称, n-证书颁发对象,r-证书存储位置; 2.制作子证书 makecert -sv "test.pvk" -iv myroot.pvk -n "CN=公司名称" -$ commercial -ic myroot.cer test.cer 3.使用Cert2Spc生成spc发行者证书 cert2spc test.cer test.spc 4.使用signcode为你的程序,库或cab包签名: 用命令方式:signcode -spc test.spc -v test.pvk -n test的软件 test.cab 注意:用signcode.exe签署自己的软件。假如是.cab文件,需要在用cabarc.exe制作的时候 5.将myroot.cer导入“受信任的根证书颁发机构”,使用chktrust测试刚才的文件是否签名成功 三,使用openssl产生根证书 1.用openssl创建CA证书的RSA密钥(PEM格式): 2.用openssl创建CA证书(PEM格式,假如有效期为一年): openssl是可以生成DER格式的CA证书的,很奇怪Windows却说那证书是“无效的”, 3.将ca.crt导入至IE中。 可以检查一下导入是否完全成功: 4.IE的Internet选项中的“证书”中“受信任根证书颁发机构”中将刚才 5.将PEM格式的ca.key转换为Microsoft可以识别的pvk格式。 6.步骤接第二种方式的第3步
---------------------------------------------------------------------------------------------
如何给ActiveX控件签名 2007-04-05 12:54
简单地说,所谓数字签名就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接收者)进行伪造。它是对电子形式的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。基于公钥密码体制和私钥密码体制都可以获得数字签名,目前主要是基于公钥密码体制的数字签名。包括普通数字签名和特殊数字签名。普通数字签名算法有 RSA、ElGamal、Fiat-Shamir、Guillou- Quisquarter、Schnorr、Ong-Schnorr-Shamir数字签名算法、Des/DSA,椭圆曲线数字签名算法和有限自动机数字签名算法等。特殊数字签名有盲签名、代理签名、群签名、不可否认签名、公平盲签名、门限签名、具有消息恢复功能的签名等,它与具体应用环境密切相关。显然, 数字签名的应用涉及到法律问题,美国联邦政府基于有限域上的离散对数问题制定了自己的数字签名标准(DSS)。一些国家如法国和德国已经制定了数字签名法。数字签名(Digital Signature)技术数字签名技术是不对称加密算法的典型应用。数字签名的应用过程是,数据源发送方使用自己的私钥对数据校验和或其他与数据内容有关的变量进行加密处理,完成对数据的合法“签名”,数据接收方则利用对方的公钥来解读收到的“数字签名”,并将解读结果用于对数据完整性的检验,以确认签名的合法性。数字签名技术是在网络系统虚拟环境中确认身份的重要技术,完全可以代替现实过程中的“亲笔签字”,在技术和法律上有保证。在公钥与私钥管理方面,数字签名应用与加密邮件 PGP技术正好相反。在数字签名应用中,发送者的公钥可以很方便地得到,但他的私钥则需要严格保密。 数字签名:数字签名验证发送方的标识并保护数据的完整性。事实上数字签名不是一种具体的技术实现,它是基于以上各种加密技术组合的解决方案。通常一个基本的数字签名方案可能有如下步骤:
双方各自生成一个公钥/私钥对。 makecert.exe 制作cer格式的证书,即X.509证书,同时可以创建私钥 cert2spc.exe 将cer格式证书转换成spc格式证书,即PKCS #7证书 signcode.exe 将证书签署到ocx上去 chktrust.exe 检查签署证书后的ocx是否正确 还有一个certmgr.exe,是管理证书用的。 下面是具体的步骤: 1、创建一个自己的证书文件: makecert /sv "Record.PVK" /n "CN=公司名称,E=email,O=作者" dream.cer 这里,Record.PVK表示新创建的私人密钥保存文件名 DreamCaptial是你想显示的公司名 dream.cer是你创建最后的证书文件名 这些根据你自己的要求填写,最后得到Record.PVK和dream.cer两个文件。 其中,运行过程中需要输入私人密钥的保护密码,一定要输入一致,不要 出错。 2、转换cer格式为spc格式(可以省略) cert2spc dream.cer dream.spc 得到dream.spc文件。 3、给ocx进行签名 运行signcode,命令行的我没有试验通过,我是通过界面实现的。 signcode运行后会出现数字签名向导,首先选择你要签名的ocx, 下一步后会出现签名选项,一种是典型,一种是自定义。选择自定义, 这样才能从文件选择证书,选择前面制作的dream.spc,再下一步是 选择私钥文件,选择Record.PVK,输入私人密钥的保护密码,选择散 列算法,一般用md5就可以了,下一步是选择其他证书,直接下一步, 填写一下这个控件的声明,用户用ie浏览的时候,会弹出证书说明, 再下一步是加盖时间戳,我不会,直接下一步就完成了。 4、用chktrust检查是否正确 chktrust -v RecordProj.ocx 就这样,得到了一个测试证书,恩,虽然只是一个测试证书,但至 少保证这个ocx在ie浏览的时候能够弹出来一个窗口,问你是否安装, 而不是直接禁止了。 |