共计 638 个字符,预计需要花费 2 分钟才能阅读完成。
常常在网上下载各种安装包,但也没有深究过安装包是否是官网的、是否是平安没有被篡改的。
最近在用 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
正文完