当前位置: 首页 > news >正文

【学习笔记】如何给软件加数字签名

一、问题的提出

《GB/T 36572-2018 电力监控系统网络安全防护导则》明确提出“重要电力监控系统关键控制软件应采用基于可信计算的强制版本管理措施,操作系统和监控软件的全部可执行代码,在开发或升级后应由生产厂商采用数字证书对其签名并送检,通过检测的控制软件程序应由检测机构用其数字证书对其签名,生产控制大区应禁止未包含生产厂商和检测机构签名版本的可执行代码启动运行。”

二、Windows系统如何给软件进行签名

1、软件准备

(1)makecert.exe       

(2)Signcode.exe

2、创建X.509 证书

makecert /sv "D:\\privatekey.pvk" /n "CN=授予人名称,E=邮箱,O=组织名"  -r  D:\\certfile.cer

注: privatekey.pvk密钥文件,certfile.cer证书文件

回车后会提示输入秘钥,输入密码及确认密码:yourpassword,点击ok

验证秘钥,输入上一步设置的秘钥yourpassword,证书创建成功

3、导入证书

按下Ctrl+M,会弹出添加或删除管理单元,找到“证书”

然后点击添加,直接点完成。

再点击“所有任务--导入”,然后第一个直接确定,第二个选择你的证书的路径。

选择之前生成的证书 bell.cer

一直下一步,

4. 给指定文件签名

运行signcode

从文件选择--- 选择 cer证书

选择私钥,输入私钥密码

添加描述

时间戳服务器:

Digicert:    http://timestamp.digicert.com

Symantec:    http://sha256timestamp.ws.symantec.com/sha256/

Comodo:    http://timestamp.comodoca.com

Starfield:    http://tsa.starfieldtech.com

GlobalSign:    http://timestamp.globalsign.com/scripts/timestamp.dll

Certum:    http://time.certum.pl

完成签名,查看“数字签名”的信息。

附上工具下载链接:

链接: https://pan.baidu.com/s/1qJ4c1AZ7nocLOKvp9iTdFw?pwd=7zwq 提取码: 7zwq

三、linux系统如何给软件进行签名

以Ubuntu为例:

1. 安装签名工具GPG

  要了解什么是GPG,就要先了解PGP。
        1991年,程序员Phil Zimmermann为了避开政府监视,开发了加密软件PGP。这个软件非常好用,迅速流传开来,成了许多程序员的必备工具。但是,它是商业软件,不能自由使用。所以,自由软件基金会决定,开发一个PGP的替代品,取名为GnuPG。这就是GPG的由来。

sudo apt-get install gnupg

2. GPG密钥生成

         使用--full-generate-key参数生成自己的密钥  

gpg --gen-key

依次选择key类型->key长度->有效期->key识别信息->随机操作

3.查看公钥和私钥

4. 导出公钥到文件中:

 

 gpg -a -o public-file.key --export D8A94AEC


5. 导出私钥到文件中

gpg -a -o private-file.key --export-secret-keys D8A94AEC

6.给指定文件签名,使用--sign参数;验证签名,使用--verify参数。

http://www.xdnf.cn/news/922195.html

相关文章:

  • 在 Windows 11 或 10 上将 Git 升级到最新版本的方法
  • 【Linux】LInux下第一个程序:进度条
  • 十一、【ESP32开发全栈指南: TCP通信服务端】
  • 1-3 Linux-虚拟机(2025.6.7学习篇- mac版本)
  • Sentry 接口返回 Status Code 429 Too Many Requests
  • 【优选算法】C++滑动窗口
  • 在ubuntu等linux系统上申请https证书
  • Redis内存淘汰策略
  • redis集群
  • [最全总结]城市灾害应急管理系统
  • Linux虚拟化技术:从KVM到容器的轻量化革命
  • Nodejs工程化实践:构建高性能前后端交互系统
  • sqlsugar WhereIF条件的大于等于和等于查出来的坑
  • WSL文件如何上传到GitHub
  • python版若依框架开发:后端开发规范
  • 快捷键的记录
  • UOS无法安装deb软件包
  • [论文阅读] 人工智能 | 搜索增强LLMs的用户偏好与性能分析
  • AcWing--数据结构1
  • stm32—ADC和DAC
  • 《JavaAI:稳定、高效、跨平台的AI编程工具优势解析》
  • Linux下的fuser用法简析
  • 文件(保存)通讯录
  • 长跑赛接力赛模式
  • C++ -- 多态
  • 《高等数学》(同济大学·第7版)第二章第五节“函数微分“
  • SpringBoot+Mysql校园跑腿服务平台系统源码
  • Doris 与 Elasticsearch:谁更适合你的数据分析需求?
  • 游戏常用运行库合集 | GRLPackage 游戏运行库!
  • LILIKOI FBG腹腔镜抓握力传感器的技术解析与应用前景