自建CA实战之 《0x03 代码签名》

news2024/11/29 18:32:34

自建CA实战之 《0x03 代码签名》

本文针对Windows平台,介绍如何使用自建CA来签发代码签名证书。

之前的文章中,我们介绍了如何自建CA,以及如何使用自建CA来签发Web服务器证书、客户端证书。

本文将介绍如何使用自建CA来签发代码签名证书。用于给程序签名。

代码签名的好处是:

  • 证明程序的作者是谁。
  • 证明程序没有被篡改过,没有被木马病毒感染过,凡是修改过一个字节,都会导致签名验证失败。

创建支持代码签名的证书

来源 选项卡中选择我们创建的CA。

在这里插入图片描述

主体选项卡中按需填写,就不再细说了。

在这里插入图片描述

扩展选项卡中,选择代码签名(Code Signing),下图中多选了Microsoft Individual Code SigningMicrosoft Commercial Code Signing,这两个选项是为了兼容性考虑,如果只是给自己的程序签名,可以只选Code Signing即可。

文末对这三个选项有比较详细的说明。

在这里插入图片描述

与上一章节导出客户端证书一样,这里我们导出格式选择pfx,然后设置密码。

在这里插入图片描述

使用代码签名证书签名程序

Windows代码签名工具下载

https://raw.githubusercontent.com/taills/tools/master/SignTool.zip

无法直接点击下载的,可以到仓库中下载。

https://github.com/taills/tools

我们把导出的证书文件拷贝到桌面,以及把我们要签名的程序拷贝到桌面。

注意:这里证书**不用双击打开导入!**因为我们要使用命令行工具来签名程序。

我们这里使用的是记事本(notepad.exe)程序,当然你也可以使用其他程序。

cd C:\Users\Administrator\Desktop
xcopy C:\Windows\System32\notepad.exe .

我们查看记事本程序的属性,发现它并没有签名。
在这里插入图片描述

我们使用signtool工具来给记事本程序签名。

Microsoft Windows [版本 10.0.19044.1288]
(c) Microsoft Corporation。保留所有权利。

C:\Users\admin>cd Desktop

C:\Users\admin\Desktop>xcopy C:\Windows\System32\notepad.exe .
C:\Windows\System32\notepad.exe
复制了 1 个文件

C:\Users\admin\Desktop>SignTool\signtool.exe sign /f CodeSigning-WeiPang.pfx /p 12345678 notepad.exe
Done Adding Additional Store
Successfully signed: notepad.exe

C:\Users\admin\Desktop>

在这里插入图片描述

我们再次查看记事本程序的属性,发现它已经被签名了。但是时间戳显示不可用,这是因为我们没有使用时间戳服务器,所以时间戳显示不可用。我们再次增加一个参数/t http://timestamp.digicert.com,使用时间戳服务器来签名。

C:\Users\admin\Desktop>SignTool\signtool.exe sign /f CodeSigning-WeiPang.pfx /p 12345678 /t http://timestamp.digicert.com notepad.exe
Done Adding Additional Store
Successfully signed: notepad.exe

再次查看属性,发现时间戳显示正常了。

在这里插入图片描述

总结

命令行签名的命令格式如下:

signtool sign /f 证书文件 /p 证书密码 /t 时间戳服务器 要签名的程序

三项代码签名证书的异同

  1. 证书类型:

    • Microsoft Individual Code Signing(个人代码签名)证书:适用于个人开发者或个人使用的代码签名证书。
    • Microsoft Commercial Code Signing(商业代码签名)证书:适用于商业实体或组织使用的代码签名证书。
    • 普通的Code Signing证书:这是一个更通用的术语,指的是由各种证书颁发机构(如Symantec、Comodo、DigiCert等)颁发的代码签名证书。
  2. 证书颁发机构:

    • Microsoft Individual Code Signing和Microsoft Commercial Code Signing证书由Microsoft自己的证书颁发机构颁发。
    • 普通的Code Signing证书由各种证书颁发机构颁发,不限于Microsoft。
  3. 应用范围:

    • Microsoft Individual Code Signing和Microsoft Commercial Code Signing证书主要用于Microsoft平台(如Windows操作系统、Office等)上的代码签名。
    • 普通的Code Signing证书可以用于多个平台,包括Windows、macOS、Linux等。
  4. 验证和信任:

    • Microsoft Individual Code Signing和Microsoft Commercial Code Signing证书在Microsoft平台上享有更高的信任级别,因为它们由Microsoft颁发。
    • 普通的Code Signing证书的信任级别取决于颁发机构的声誉和受信任的根证书列表。
  5. 价格和购买渠道:

    • Microsoft Individual Code Signing和Microsoft Commercial Code Signing证书通常具有较高的价格,并且只能通过Microsoft的官方渠道购买。
    • 普通的Code Signing证书的价格和购买渠道因证书颁发机构而异,通常有更多的选择。

总的来说,Microsoft Individual Code Signing和Microsoft Commercial Code Signing证书是专为Microsoft平台开发者和商业实体设计的,享有更高的信任级别,但价格较高且适用范围有限。普通的Code Signing证书则更通用,可以适用于多个平台,但信任级别可能因颁发机构的声誉而异。选择适合自己需求的证书时,可以考虑具体的使用场景、平台要求和预算等因素。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1256192.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

坚鹏:中国人寿临沂公司当下中国经济形势与寿险业发展机遇培训

中国人寿保险(集团)公司属国家大型金融保险企业,2016年中国人寿入主广发银行,开启保险、投资、银行三大板块协同发展新格局。2022年,集团公司合并营业收入站稳万亿平台;合并总资产突破6万亿元大关。中国人寿…

基恩士软件的基本操作(五,日志记录与使用)

目录 基恩士是如何保存日志的? 如何使用日志功能 查看DM10的值1秒加1的记录日志 设定id与储存位置 软元件设定( 日志ID有10个(0~10),每一个ID最多添加512个软元件) 设定触发 执行日志的梯形图程序 触…

Windows 7隐藏用户测试

请注意Window 7是在虚拟机上安装的,ip是192.168.0.108。 下边都是在虚拟机Window 7上操作,直到最后远程连接才在自己本机Windows 11上操作。 需要同时按下Windowsr,然后输入cmd,再点击确定。 在命令上里边输入net user可以显示一下用户。 …

单链表原来是这样实现的!

文章目录 前言1. 链表的概念及结构1.1在链表里,每节“车厢”是什么样的呢?1.2为什么还需要指针变量来保存下⼀个节点的位置? 2. 单链表的实现1. 定义结构体(Seqlist)2. 打印函数(SLTPrint)小插曲,创建节点函数CreateNode3. 尾插函…

一种LED驱动专用控制电路

一、基本概述 TM1620是一种LED(发光二极管显示器)驱动控制专用IC,内部集成有MCU数字接口、数据锁存 器、LED驱动等电路。本产品质量可靠、稳定性好、抗干扰能力强。主要适用于家电设备(智能热 水器、微波炉、洗衣机、空调、电磁炉)、机顶盒、电子称、…

清分系统对账

流程1的问题: 1、通道一天的数据会有多少,有二三十万条交易数据吗? 2、如果数据过大都存到一个Map里面去,机器不得挂了 步骤1总结: 1、通过channelNo获取通道T的数据,因为通道是一天一个文件给过来。在转…

xxljob学习笔记01(小滴课堂)

分布式调度xxl-job源码部署和数据库建立: 在idea中打开安装包: 创建数据库: 建表: 在项目里: 在navicat里运行语句即可: 修改数据库地址和用户名,密码: 配置令牌,不然谁…

WiFi的CSMA/CA竞争窗口流程简述

1、若站点最初有数据要发送(不是发送不成功再进行重传的那种),且检测到信道空闲,在等待DIFS后,就发送整个数据帧。 2、否则,站点执行退避算法。一旦检测到信道忙,就冻结退避计时器。只要信道空…

卸载idea2017-2023步骤 (卸载干净)

1. 右击打开软件所在位置 2. 找到卸载程序 Uninstall.exe, 双击打开 3. 开始卸载 4. 注册表删除 打开winR, 输入命令regedit Ctrl F查找 "jetbrain" 删除查找出来的文件夹。卸载干净, 即可安装新idea

【Amazon】基于Amazon提供的托管式EKS通过eksctl命令部署Kubernetes集群

文章目录 一、使用CloudFormation创建堡垒机二、安装AWS CLI命令行工具三、安装eksctl命令行工具四、创建集群角色4.1 集群服务角色创建4.2 集群节点组角色创建 五、创建 EKS集群六、登录EKS控制台七、参考链接 一、使用CloudFormation创建堡垒机 导航至CloudFormation&#xf…

【前沿技术了解】web图形Canvas、svg、WebGL、数据可视化引擎的技术选型

目录 Canvas:HTML5新增 Canvas标签(画布) 渲染上下文canvas.getContext(contextType[, contextAttributes]) 上下文类型(contextType) 上下文属性 (contextAttributes) 示例 动画 setInterval(function, delay)…

【go入门】表单

4.1 处理表单的输入 先来看一个表单递交的例子&#xff0c;我们有如下的表单内容&#xff0c;命名成文件login.gtpl(放入当前新建项目的目录里面) <html> <head> <title></title> </head> <body> <form action"/login" meth…

软件介绍01- koodo Reader支持所有电脑平台!

1 软件简介 Koodo Reader软件是一款阅读器&#xff0c;可以阅读各种格式的文档。用来代替kindle。界面简洁&#xff0c;好看&#xff0c;阅读功能强大&#xff0c;而且可以多设备同步。 因为开源&#xff0c;所以免费。而且支持所有电脑平台&#xff01; 支持格式&#xff1a…

kafka2.x常用命令:创建topic,查看topic列表、分区、副本详情,删除topic,测试topic发送与消费

原创/朱季谦 接触kafka开发已经两年多&#xff0c;也看过关于kafka的一些书&#xff0c;但一直没有怎么对它做总结&#xff0c;借着最近正好在看《Apache Kafka实战》一书&#xff0c;同时自己又搭建了三台kafka服务器&#xff0c;正好可以做一些总结记录。 本文主要是记录如…

解密Kafka主题的分区策略:提升实时数据处理的关键

目录 一、Kafka主题的分区策略概述1.1 什么是Kafka主题的分区策略&#xff1f;1.2 为什么分区策略重要&#xff1f; 二、Kafka默认分区策略2.1 Round-Robin分区策略 三、自定义分区策略3.1 编写自定义分区器3.2 最佳实践&#xff1a;如何选择分区策略 四、分区策略的性能考量4.…

FO-like Transformation

参考文献&#xff1a; [RS91] Rackoff C, Simon D R. Non-interactive zero-knowledge proof of knowledge and chosen ciphertext attack[C]//Annual international cryptology conference. Berlin, Heidelberg: Springer Berlin Heidelberg, 1991: 433-444.[BR93] Bellare M…

粉丝提问:写博文怎样才能变现啊?

文章目录 粉丝提问&#xff1a;写博文怎样才能变现啊&#xff1f;我总结了一下博客变现的几个途径&#xff1a;另外做技术博主的五大好处 后记 粉丝提问&#xff1a;写博文怎样才能变现啊&#xff1f; type: Post status: Published date: 2023/11/26 tags: 推荐 category…

为什么PCB板大多数都是绿色的?

什么时候开始接触到PCB板的呢&#xff1f;也许是是把家里的电视遥控器拆开的时候&#xff0c;也许是你的小霸王学习机游戏手柄给按坏拆开的时候&#xff0c;也许那时候你还不知道这叫PCB电路板。然后就是大学里使用嘉立创免费打板的时候&#xff0c;有一个选项绿色板还是黑色板…

Java 文件常用操作与流转换

&#x1f680; 作者主页&#xff1a; 有来技术 &#x1f525; 开源项目&#xff1a; youlai-mall &#x1f343; vue3-element-admin &#x1f343; youlai-boot &#x1f33a; 仓库主页&#xff1a; Gitee &#x1f4ab; Github &#x1f4ab; GitCode &#x1f496; 欢迎点赞…

监控同一局域网内其它主机上网访问信息

1.先取得网关IP 2.安装IPTABLES路由表 sudo apt-get install iptables 3.启用IP转发 sudo sysctl -p 查看配置是否生效 4.配置路由 iptables -t nat -A POSTROUTING -j MASQUERADE 配置成功后,使用sudo iptables-save查看