记录我的第一次代码签名

代码签名是对软件进行标识的一个过程,它通过对软件增加了发布商的信息来检查软件在发布后是否被修改或受病毒影响。在软件出售前进行签名已经成为了行业范围的专业实践。随着用户的安全意识的提高,现在越来越多的用户限制下载未签名的软件,因此作为专业的软件公司,在软件出售前进行签名已经成为必不可少的一步。

要进行代码签名,需要以下准备:
1)代码签名证书和密码;
2)代码签名工具;
3)时间戳服务器的URL地址;

代码签名工具
代码签名工具,微软提供了两套代码签名工具,

1)signcode.exe,从1998年开始使用,随.NET Framework SDK发布。

signcode.exe 代码签名工具

makecert.exe 创建代码签名证书

cert2spc.exe 将代码签名证书转化为软件发布者证书格式

2)signtool.exe,随visualstudio 2005及其以后的版本发布。

signtool.exe 代码签名工具

makecert.exe 创建代码签名证书

cert2spc.exe 将代码签名证书转化为软件发布者证书格式

pvk2pfx.exe(pvkimprt.exe)将私有的密匙和软件发布者证书合并为pfx文件,此文件将被signtool.exe使用

上面2中工具的不同是signcode.exe需要输入私有密匙和软件发布者证书(pvk和spc文件),signtool.exe只需要输入由pvk和spc合并产生的一个个人信息交互文件(pfx)。

获得代码签名证书

代码签名证书,你需要向可信赖的证书颁发机构购买代码签名证书和密码,例如你可以向以下的证书机构WoSign购买。

时间戳服务器,你可以选择下列之一,
- http://timestamp.wosign.com/timestamp
- http://timestamp.wosign.com/rfc3161

1)使用signcode.exe,如下:
signcode.exe -t <timestamp URL> -spc mycert.spc -v mykey.pvk"<file to be signed>"进行代码签名的文件可以是.exe, .dll, .ocx 或者是其他的可执行文件。

2)使用signtool.exe,如下:

现在,就可以使用WDK的 SignTool 签名你的文件了,点这里下载 Signtool签名工具。签名命令行为:

XP,Win7用户 signtool sign /v /s my /t  http://timestamp.wosign.com/timestamp  test.cab

Win7用户    signtool sign/v /s my /tr http://timestamp.wosign.com/rfc3161  test.cab

其中:

(1)/v:显示详细的签名结果

(2)/s my:加载个人证书库中的代码签名证书。请确保只有一个WoSign颁发的微软代码签名证书;

(3)/t,/tr:为代码加上WoSign免费时间戳,确保签名后的代码永不过期;

(4) test.cab: 就是您要签名的Windows文件,如:.cab, .dll, .exe 等文件

以下是使用signtool.exe签名的一个实例:

时间: 2024-10-14 06:50:44

记录我的第一次代码签名的相关文章

第六篇 SQL Server安全执行上下文和代码签名

本篇文章是SQL Server安全系列的第六篇,详细内容请参考原文. SQL Server决定主体是否有必要的执行代码权限的根本途径是其执行上下文规则.这一切都可能复杂一个主体有执行代码的权限,但是却没有访问代码中基础对象的权限,比如表中的数据.这一篇将探讨SQL Server的执行上下文.所有权链接和模拟,以及告诉你如何通过T-SQL代码控制访问数据.执行上下文当用户执行一个存储过程或其他数据库代码,SQL Server检查以确保用户不但有执行过程权限,而且有代码访问的数据库对象的权限.如果没

iOS代码签名理解

前言 做了几年iOS app coder了,对于证书的生成.使用流程烂熟于心,然而对于这套机制的原理却一直不甚理解.近来由于工作需要仔细研究了一下,特将自己的学习经验记录于此,以供大家学习指正. 问题 通常的iOS应用的签名流程是这样的(这里只是大概写一下,具体流程网上有很多): 访问钥匙串,使用“证书助理”的“从证书颁发机构请求证书”生成一个CertificateSigningRequest.certSigningRequest文件. 打开https://developer.apple.com

【转】代码签名探析

转至:objc中国 代码签名探析 dopcn  15 Oct 2014 分享文章 "用户会感激代码签名带来的好处" – Apple Developer Library: Code Signing Guide 在 iOS 或 OS X 平台上进行应用开发时,你所需要使用的 API 大多设计得简洁明了.你可以轻易地实现酷炫的动画效果,便捷地进行应用发布前测试,或是用 Core Data 将数据安全的存储在本地.但是总有一天,你会碰上代码签名 (code signing) 和配置文件 (pr

java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)

java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessController的checkPerssiom方法,访问控制器AccessController的栈检查机制又遍历整个 PerssiomCollection来判断具体拥有什么权限一旦发现栈中一个权限不允许的时候抛出异常否则简单的返回,这个过程实际上比我的描述要复杂 得多,这里我只是简单的一句带过,因为这

SQL Server安全(6/11):执行上下文与代码签名(Execution Context and Code Signing)

在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切.但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念.这篇文章提供了基础,因此你可以对SQL Server里的安全功能充分利用,不用在面对特定威胁,不能保护你数据的功能上浪费时间. SQL Server决定主体是否有需要的许可执行代码的基本方式是它的执行上下文角色.这都是复杂的可能性,主体有执行代码的许可,但没有代码访问的潜在对象的许可,例如表里的数据.这篇文章会探寻SQL Server执行上下

iPhone OS 开发 - 了解并解决代码签名问题

译者:Jestery 发表时间:2010-04-24浏览量:21082评论数:0挑错数:0 了解并解决代码签名问题 (为保持跟开发环境以及APPLE开发者社区网站结构对应,一些名词未作翻译) 绝大多数iPhone Developer/Distribution 的代码签名生成错误是因为证书和Provisioning profiles没有在开发系统上正确安装引起的. .. 了解并解决代码签名问题 (为保持跟开发环境以及APPLE开发者社区网站结构对应,一些名词未作翻译) 绝大多数iPhone Dev

软件工程(C编码实践篇)课程总结——我的第一次代码实战之路

课程内容来自网易云课堂-软件工程(C编码实践篇)--中国科学技术大学孟宁老师主讲! 作者:魏红 魏红<软件工程(C编码实践篇)>MOOC课程作业http://mooc.study.163.com/learn/USTC-1000002006 一.心得体会 在写这篇博客时,我的心情不是想象中的如释重负,而是感慨和激动.作为一名理科生,代码对于我来说,陌生.遥远.不曾触及,所以当我开始接触到实验,需要自己动手的时候,我就崩溃了.哪怕是最简单的hello world小程序,我都折腾了好久,第一次的实验

android代码签名和混淆打包

研究了一下android的apk的签名和代码的混淆打包,如果不混淆打包,那么apk可以直接被人反编译出来查看源码,混淆打包虽然还是能看懂,但是没有那么好懂了,至少要话费些时间 如果不混淆,反编译后的代码如下: 基本上就是源码. 如果混淆后,反编译后的代码如下: 代码中出现很多的a.b.c之类的变量命名,所以要读懂就具有一定的困难了! 下面先说一下apk的签名: 1.apk签名必须先弄一个key,如何生成key呢?那么就要运用jdk来生成. 首先必须把jdk在系统环境变量中配置好.这个就不多说了,

天威诚信代码签名证书助手操作指南

天威诚信数字签名工具 代码签名工具,帮您一站式完成,证书管理,数字签名,工具更新,让数字签名变得如此简单! 证书管理支持多个主流时间戳地址:支持时间戳自主选择功能:支持签名描述和URL:支持双签名,并自主选择不同哈希算法的证书: 数字签名保存用户输入参数:导出私钥支持设置密码,更安全:一键签名,自动识别如CAB包中子文件,并同步签名:独家支持EV证书 签署多个文件只需输入一次密码功能,更快捷: 工具更新应用程序内置多种内核交叉证书.使用对应品牌的证书进行交叉签名时,程序会自动识别相应交叉证书链,