乐趣区

关于安全:网络上如何保证安装包的安全

常常在网上下载各种安装包,但也没有深究过安装包是否是官网的、是否是平安没有被篡改的。
最近在用 elasticsearch 做挪动端在线日志收集,本地装置 ES 的时候,发现下载文件有两个,上面是下载命令:
1. wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.zip
2. wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.2.4.zip.sha512
3. shasum -a 512 -c elasticsearch-6.2.4.zip.sha512 
  • 1 是下载 es 安装包;
  • 2 是下载校验包(签名文件);
  • 3 是用签名文件校验网络下载的安装包是否残缺

原理

这里用到了哈希算法和非对称加密串,哈希算法是为了验证原始数据(ES 安装包)是否被篡改;对称加密是为了验证签名文件是不是官网收回的(安装包和签名文件都有可能被替换)。
哈希算法:

同一个文件包,通过哈希失去的哈希码是一样的。如果安装包活签名文件被替换了,哈希码就对不上了。

非对称加密:

软件公布时,作者用本人的私钥,对公布的软件生成一个签名文件,用户应用作者的公钥验证签名文件。

生成签名

Linux 零碎能够用 md5sum、sha1sum、sha256sum 这三个命令,计算哈希码
md5sum foo.zip

sha1sum foo.zip

sha256sum foo.zip
退出移动版