GPG操作——签名验证

摘要:
在软件下载过程中,由于网络原因,您可能遇到下载的软件量与实际软件量不一致的情况。用户下载的文件失去了摘要验证的意义。软件提供商对文件进行签名,并使用公钥验证数据签名。您真的想要CA审查数字证书的一系列过程吗?以commons-cdec下载为例,验证commons-codec-1.8-bin.tar.gz的签名。警告:

问题描述:

可能大家都遇到过软件在下载过程中由于网络原因导致下载的软件体积与实际软件体积不符。最常见的办法是对待下载文件附加一个摘要文件。这种做法比较常见,也比较容易实现。但是,还是会有一个问题:如果我篡改了网站,改变了文件的内容,并对该文件做了一次摘要,替换了原有的摘要文件。那用户下载的文件就失去了摘要验证的意义。如何避免这种问题呢?

解决方案:

软件提供者对文件做签名,软件使用者对文件做验证。

签名/验证,是一种用于对网络数据传输有效性鉴别的常见方法,属于非对称加密算法领域。

使用私钥对数据进行签名,使用公钥对数据签名做校验。

在这里的理解可以是,私钥由软件提供者保留,而公钥由软件提供者在网站上公布,并且,该公钥经过更权威认证机构的签名。是不是很想CA审核数字证书的系列流程?其实大同小异,只是这种方式更自由一些,也省去了CA认证的费用。这种开放的数字安全模式有别于我们熟悉的PKI,它属于GunPG/PGP。

实践操作:

用commons-cdec下载为例,上图:

GPG操作——签名验证第1张
 
 以commons-codec-1.8-bin.tar.gz为例,左边MD5的方式就不说了,看看pgp打开是个什么样的东西。蠢话


GPG操作——签名验证第3张
 加有“PGP SIGNATURE”标识的一段BASE64编码的数字签名。

前面说过,要对签名校验,就需要有对应的公钥。那么公钥在那里呢?

就是那个红框的KEYS。

 下载公钥:

Shell代码  收藏代码
  1. wget http://www.apache.org/dist/commons/KEYS  

  接下来,导入公钥,并对commons-codec-1.8-bin.tar.gz进行签名验证。

Shell代码  收藏代码
  1. $ gpg --import KEYS  
  2. $ gpg --verify commons-codec-1.8-bin.tar.gz.asc commons-codec-1.8-bin.tar.gz  

 得到如下提示:

gpg: Signature made Wed 24 Apr 2013 04:04:10 AM CST using RSA key ID A11262CB
gpg: Good signature from "Gary David Gregory (Code signing key) <ggregory@apache.org>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 2DB4 F1EF 0FA7 61EC C4EA 935C 86FD C7E2 A112 62CB

gpg: Good signature from "Gary David Gregory (Code signing key) <ggregory@apache.org>"说明这个签名有效。 

有个警告,是因为本地密钥库不信任该公钥。

需要对这个公钥签名:

Shell代码  收藏代码
  1. $ gpg --sign-key  A11262CB  
  2. gpg: checking the trustdb  
  3. gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model  
  4. gpg: depth: 0  valid:   1  signed:   1  trust: 0-, 0q, 0n, 0m, 0f, 1u  
  5. gpg: depth: 1  valid:   1  signed:   0  trust: 1-, 0q, 0n, 0m, 0f, 0u  
  6. gpg: next trustdb check due at 2014-05-30  
  7.   
  8. pub  2048R/A11262CB  created: 2011-04-12  expires: never       usage: SC  
  9.                      trust: unknown       validity: full  
  10. sub  2048R/AD3D7F94  created: 2011-04-12  expires: never       usage: E  
  11. [  full  ] (1). Gary David Gregory (Code signing key) <ggregory@apache.org>  
  12.   
  13. "Gary David Gregory (Code signing key) <ggregory@apache.org>" was already signed  
  14.  by key 23E8E553  
  15. Nothing to sign with key 23E8E553  
  16.   
  17. Key not changed so no update needed.  

 这时候就不会有警告了。

免责声明:文章转载自《GPG操作——签名验证》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇DBeaver连接达梦数据库Rocky Linux 正式版(8.4)系统安装下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

程序员常去的10个顶级开发社区

程序员常去的10个顶级开发社区 Livecoding.tv Livecoding.tv由一群欧美程序爱好者共同发起成立,旨在为全球程序员提供一个实时高效的互动平台。通过流视频技术将全世界优秀程序爱好者聚集起来,打破传统编程教育方式,同时视频直播程序员们可以实时互动。对于程序员们来说,直播当然不是娱乐大众,而是将编程从孤单的、令人苦恼的行为转变成一件欢乐的事...

谷歌浏览器中的自动播放问题

2018年一月份 谷歌开始了以后谷歌浏览器将不会自动播放视频音频文件 笔者猜测可能有一下几点: 1. 禁广告,不能自动播放了一定程度上起到了禁用广告的效果 2. 为用户节省流量,因为视频音频加载时需要缓冲的会耗费用户流量,但是用户不一定会看这个视频或音频 第一次打开不支持自动播放,就给了用户选择的空间,也给用户节省了流量 在HTML5中新增了 <vi...

Linux上运行安卓应用:安装使用Anbox

文章目录 #0x0 简介 #0x1 安装教程 #0x11 第一步,安装需要的内核模块 #0x12 安装Anbox #0x2 使用Anbox #0x21 一些简单的设置 #0x22 安装APK #0x3 卸载Anbox #0x0 简介 使用Linux运行安卓软件,类似于虚拟机,这种软件有不少 比如Genymotion,Andy OS,An...

5.移动渗透测试工具之drozer

本篇博文主要来介绍drozer在移动渗透中的作用 本次实验环境所用工具为:夜神模拟器,drozer-2.3.4,sieve.apk,adb drozer安装这里不再多嘴,给出链接:https://www.cnblogs.com/JDragons/p/5596258.html adb作为移动与pc的调试桥,我这里也已经安装完成。 1.安装agent.apk...

Metasploit 安装及使用

    官网 https://www.metasploit.com/ 使用手册 https://metasploit.help.rapid7.com/docs 简介 开源安全漏洞检测工具,附带数百个已知的软件漏洞,并保持频繁更新。被安全社区冠以“可以黑掉整个宇宙”之名的强大渗透测试框架。 MetaSploit 截止目前(2020/06/29)有两个版本:...

使用wps跨ubuntu和windows编辑“.doc”文档。报错“编辑受限”,乱码,软件卡死,强制关闭

背景介绍: 本人使用wps跨ubuntu和windows编辑“.doc”文档。文档一直存放在移动硬盘上,切换系统没有插拔移动硬盘。切换系统好几次,一切正常。 某日早晨,在ubuntu下编辑文档,保存,转入windows下打算继续编辑。windows下打开文档时,报错“编辑受限”,乱码,软件卡死,只能强制关闭。 尝试以下方法: 1)把文档从移动硬盘拷贝到wi...