b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

sha256sum校验工具_数字签名算法 sha-256_md5校验工具 推荐

电脑杂谈  发布时间:2019-12-25 23:01:05  来源:网络整理

sha256sum校验工具_md5校验工具 推荐_数字签名算法 sha-256

每个人都下载文件,大家有没有想过,文件或许是假的,尤其来自网盘或专门的下载站。

本文就来谈谈如何辨别文件的真伪。

我们从一件真实的风波说起。

2015年9月,苹果手机的一些 App 被发觉向可疑网站发送数据。进一步调查核实sha256sum校验工具,可疑代码是 Xcode 打包时植入的。也就是说,开发者的编程软件 Xcode 被动过手脚了。

腾讯的安全团队发布,应用商店的前 5000 名应用有76个被感染。360 应用商店检查后看到,共有1076个 App 被感染,包括陌陌、网易云音乐、滴滴打车、高德地图、12306、同花顺等热门应用。苹果公司将所有被感染的版本,都从官网软件商店下架了。这个风波就称为 XcodeGhost 事件。

国家互联网应急中心专门发出了预警通知。

追查下去,那些动过手脚的 Xcode 都不是从官网渠道下载的,而是来自网盘或下载站。一个网名”coderfun”的人,在诸多 iOS 开发者论坛以及微博留言,引诱其他开发者下载修改过的 Xcode,版本从 Xcode 6.1 到 6.4。

sha256sum校验工具_数字签名算法 sha-256_md5校验工具 推荐

事后,这位 coderfun 发出道歉公告,表示这也是自己的一次实验,没有恶意。但是,这个风波足以造成警惕,任何下载的文件都不必定安全,很可能被更改过或植入恶意代码。

为了避免来源不明的硬件,很多系统都有签名模式。软件发布必须由认证过的开发商,使用系统的秘钥签名。如果客户安装已签名的硬件,平台会弹出警告,阻止安装。下面就是 MacOS 的警告。

但是,不可能所有开发者都去认证,尤其是认证要收费。而且,用户对这些警告不在意,一般还会忽略或自动关闭。所以,这种做法的疗效不显著。

目前的常见做法是,软件发布时,同时给出哈希码和签名文件。前者保证没有被第三方修改,后者保证确实出自原始作者。

举例来说,Linux 的发行版 Manjaro 除了提供原始的 iso 文件,还提供此外三个文件:sha1 哈希文件、sha 256 哈希文件和 sig 签名文件。 它们确保了工具的真实性。

哈希码指的是,文件内容经过哈希函数的推导,会返回一个独一无二的字符串。哪怕原始内容只改动一个字节,哈希码也会完全不同。用户下载工具后,只要计算一下哈希码,再和作者给出的哈希码比较一下,就会明白软件有没有被改动。

目前,常用的三种哈希函数是 MD5、SHA1 和 SHA256。其中,SHA256 最安全,SHA1 次之,MD5 垫底。一般来说,软件至少会提供其中一种哈希码。

数字签名算法 sha-256_sha256sum校验工具_md5校验工具 推荐

下面是哈希码的验证方式。

(1)Linux 系统

Linux 系统直接用md5sum、sha1sum、sha256sum这三个命令,计算哈希码。


$ md5sum foo.zip
$ sha1sum foo.zip
$ sha256sum foo.zip

上面命令返回文件foo.zip的三种哈希码。用户再和作者给出的哈希码比对。如果不一致,文件就是被改动了,或者没有完整下载。

有时,就像上面 Manjaro 的举例,哈希码不是写在网页上,而是成为一个单独的文本文件下载。这时可以使用-c参数。


$ md5sum -c foo.zip.md5file
$ sha1sum -c foo.zip.sha1file
$ sha256sum -c foo.zip.sha256file

上面命令会返回哈希码的比对结果,直接告诉用户是否一致。

(2)Mac 系统

MacOS 的验证命令必须自己安装。

sha256sum校验工具_数字签名算法 sha-256_md5校验工具 推荐


$ brew install md5sha1sum

执行后面命令之后,md5sum 和 sha1sum 就可以使用了。至于 sha256sum 要用 shasum -a256 命令代替。

(3)Windows 系统

Windows 可以下载安装免费工具 Quick hash 或者 Raymond’s MD5 & SHA Checksum Utility。其中,Quick hash 是跨平台的,还支持 Linux 和 MacOS。

哈希码只能确保文件内容没有修改,但是哈希码本身也是可能仿冒,完全可能连同原始文件一起造假。

文件签名可解决这个难题。软件发布时,作者用自己的私钥,对发布的硬件生成一个签名文件(Manjaro 例子的 sig 文件),用户使用作者的私钥验证签名文件。

第一步,下载公钥。

软件的官方通常就会给出作者公钥的下载方式。比如,Manjaro 就可以从 GitHub 仓库下载公钥。


$ wget github.com/manjaro/packages-core/raw/master/manjaro-keyring/manjaro.gpg

公钥也是可能放到专门的公钥服务器,这时可以使用gpg命令在从密钥服务器下载。

数字签名算法 sha-256_md5校验工具 推荐_sha256sum校验工具


$ gpg --keyserver hkp://eu.pool.sks-keyservers.net --search-keys [公钥 ID]

上面命令会列举搜索结果,让你选择是否下载某一个公钥。--keyserver参数指定公钥服务器,search-keys参数给出搜索参数,可以是作者的名称,也可以是公钥的指纹。

gpg命令在 Linux 下可以直接使用,MacOS 和 Windows 需要安装 GnuPG。

第二步,导入公钥。

下载得到公钥后,将其导入操作系统。


$ gpg --import [公钥文件]

如果有完整的私钥指纹,gpg 命令的 --recv-key参数可以直接从服务器导入公钥。


$ gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-key "27DE B156 44C6 B3CF 3BD7 D291 300F 846B A25B AE09"

第三步,验证签名。

导入公钥以后,就可以验证签名文件(后缀名为 sig的 文件)了。


# 用法一
$ gpg --verify [签名文件]
# 用法二
$ gpg --verify [签名文件] [原始文件]

上面命令的两种用法,效果是一样的。但是,用法一规定原始文件与签名文件同名sha256sum校验工具,且在一个目录下。比如,签名文件是foo.iso.sig,原始文件需要是同目录下的foo.iso。

签名文件通常包含完整的私钥指纹,所以也可以跳过前面的第一步和第二步,直接从密钥服务器获取公钥,验证签名。


$ gpg --keyserver-options auto-key-retrieve --verify [签名文件]

(完)


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-134655-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 岸尾大辅
        岸尾大辅

        甚至是扶持恐怖组织

      热点图片
      拼命载入中...