背景
第三方客户审厂过程中,对公司现有流程管理方法工具有些改进建议。
其中有一条是:软件映像文件的完整性检验为MD5值,校验码和软件包一起发布,建议采用其它安全性更好的校验算法。
方案调研
参考链接: 为什么MD5不能用于存储密码
MD5 是一种摘要算法,我们也可以叫它哈希函数,哈希函数可以将无限键值空间中的所有键都均匀地映射到一个指定大小的键值空间中。一个好的摘要算法能够帮助我们保证文件的完整性,避免攻击者的恶意篡改。
作为一个 1992 年第一次被公开的算法,到今天为止已经被发现了一些致命的漏洞。在任何场景下,我们都应该避免MD5的使用,可以选择更好的摘要算法替代 MD5,例如 SHA256、SHA512。
改进方案
- 保留现有的md5校验文件(部分客户还在使用)
- 同时增加SHA256校验文件
基础命令使用
- SHA256
- 生成XXX文件sha256值:
1
2
3sha256sum XXX > XXX.sha256
[root@wangweilong wwl]# sha256sum clean_virus.sh > clean_virus.sh.sha256 - 追加YYY文件到已有sha256文件:
1
2
3sha256sum YYY >> XXX.sha256
[root@wangweilong wwl]# sha256sum install.log >> clean_virus.sh.sha256 - 生成的sha256文件内容:
1
2
3
4[root@wangweilong wwl]# cat clean_virus.sh.sha256
799750ecaf018307e3f3a5b69c69d28635bf047472e99c85f094ef210deb8ac9 clean_virus.sh
328de949506461ffb371cb2e951d25aadb9e94d7c3038bb08aebce42cd8b84ee install.log - 校验方法:
1
2
3
4
5
6下载文件和对应的md5值文件到同一目录下,执行 sha256sum -c XXX.sha256 命令
[root@wangweilong test]# sha256sum -c clean_virus.sh.sha256
clean_virus.sh: OK
install.log: OK
- 生成XXX文件sha256值:
- MD5
生成XXX文件md5值
1
2
3md5sum XXX > XXX.md5
[root@wangweilong wwl]# md5sum clean_virus.sh > clean_virus.sh.md5追加YYY文件到已有md5文件
1
2
3md5sum YYY >> XXX.md5
[root@wangweilong wwl]# md5sum install.log >> clean_virus.sh.md5生成的md5文件内容
1
2
3
4[root@p5-centos6-wangweilong wwl]# cat clean_virus.sh.md5
7840489fe303c097fb142a982f9f41e7 clean_virus.sh
16c04079cc2cda26cbab5cfa801df6c6 install.log校验方法
1
2
3
4
5
6
7
8下载文件和对应的md5值文件到同一目录下,执行md5sum -c XXX.md5 命令
为了更好的展示,我修改了install.log文件的内容
[root@wangweilong test]# md5sum -c clean_virus.sh.md5
clean_virus.sh: OK
install.log: FAILED
md5sum: WARNING: 1 of 2 computed checksums did NOT match