虽然 Debian 在 cdimage.debian.org 里提供了 SHA 文件和 SIGN 文件两种校验方式,但这两种文件都无法使用 https 方式访问。也就是说存在中间人攻击的风险。
那该如何去校验下载的 ISO 文件呢?
虽然 Debian 在 cdimage.debian.org 里提供了 SHA 文件和 SIGN 文件两种校验方式,但这两种文件都无法使用 https 方式访问。也就是说存在中间人攻击的风险。
那该如何去校验下载的 ISO 文件呢?
参考
security.stackexchange.com/questions/4161/shouldnt-gpg-key-fetching-use-a-secure-connection
en.wikipedia.org/wiki/Web_of_trust
stackoverflow.com/questions/3591342/how-to-prevent-a-man-in-the-middle-attack-in-case-of-a-compromised-server
forums.debian.net/viewtopic.php?t=62272
lists.debian.org/debian-security/2014/05/msg00075.html
en.wikipedia.org/wiki/Public-key_cryptography
security.stackexchange.com/questions/14479/what-does-key-signing-mean
debian.org/CD/verify
[quote=“vickycq”]
参考
security.stackexchange.com/questions/4161/shouldnt-gpg-key-fetching-use-a-secure-connection
stackoverflow.com/questions/3591342/how-to-prevent-a-man-in-the-middle-attack-in-case-of-a-compromised-server
forums.debian.net/viewtopic.php?t=62272
lists.debian.org/debian-security/2014/05/msg00075.html
en.wikipedia.org/wiki/Public-key_cryptography
security.stackexchange.com/questions/14479/what-does-key-signing-mean
debian.org/CD/verify[/quote]
英语不好,能不能具体说说?
[quote=“I’mITman”]
英语不好,能不能具体说说?[/quote]
我也不是很懂。说一下自认为比较安全的校验方法:
具体还是要懂的人来解释。以上的步骤肯定不是万全的。
谢谢你。这真不是一般的复杂呀!
有懂的人来讲讲具体的步骤吗?!
没什么复杂的:对镜像文件签名代价太高,于是退而求其次对存储了镜像文件散列值的文本文件进行签名,仅此而已。问题转变为了验证这个文本文件的签名。
文本文件使用 Debian 官方的私钥进行数字签名,需要使用 Debian 官方的公钥进行验证。而这个公钥网上可以找到,也在 Debian 系统中自带。于是我们可以借助 PGP 工具(通常是 gnupg)进行验证。就是这样。
md5sum xxx.iso
[quote=“hosiet”]没什么复杂的:对镜像文件签名代价太高,于是退而求其次对存储了镜像文件散列值的文本文件进行签名,仅此而已。问题转变为了验证这个文本文件的签名。
文本文件使用 Debian 官方的私钥进行数字签名,需要使用 Debian 官方的公钥进行验证。而这个公钥网上可以找到,也在 Debian 系统中自带。于是我们可以借助 PGP 工具(通常是 gnupg)进行验证。就是这样。[/quote]
具体的操作步骤是怎么的呢?
现在 MD5 校验已经不安全了。
[quote=“I’mITman”]
[quote=“hosiet”]没什么复杂的:对镜像文件签名代价太高,于是退而求其次对存储了镜像文件散列值的文本文件进行签名,仅此而已。问题转变为了验证这个文本文件的签名。
文本文件使用 Debian 官方的私钥进行数字签名,需要使用 Debian 官方的公钥进行验证。而这个公钥网上可以找到,也在 Debian 系统中自带。于是我们可以借助 PGP 工具(通常是 gnupg)进行验证。就是这样。[/quote]
具体的操作步骤是怎么的呢?[/quote]
四楼给的方法就够了。
如果你觉得麻烦,也可以去 https 站点下载。例如 ftp.cn.debian.org(https://mirrors.ustc.edu.cn)提供 https 访问,前提是你需要信任该站点。当然为了防止文件在传输中出错,还是有必要验证散列值的。
[quote=“hosiet”]
四楼给的方法就够了。
如果你觉得麻烦,也可以去 https 站点下载。例如 ftp.cn.debian.org(https://mirrors.ustc.edu.cn)提供 https 访问,前提是你需要信任该站点。当然为了防止文件在传输中出错,还是有必要验证散列值的。[/quote]
很奇怪,为什么Debian不提供用https方式取得SHA值。
Ubuntu、CentOS等都是这样。
[quote=“hosiet”]
四楼给的方法就够了。
如果你觉得麻烦,也可以去 https 站点下载。例如 ftp.cn.debian.org(https://mirrors.ustc.edu.cn)提供 https 访问,前提是你需要信任该站点。当然为了防止文件在传输中出错,还是有必要验证散列值的。[/quote]
楼主的问题关键就在这里
光镜像源提供 https 是不够的,镜像源跟官方同步的过程又变成了新的软肋
所以关键在于签名机制,而这正是我和楼主不懂的地方
看到一个 Web of Trust 机制,应该跟这个有关。
4楼的方法和一般的相比,只是增加了人肉校验签名指纹。
关键是 debian.org/CD/verify 这个页面没有被篡改,从而保证下载到了正确的公钥?
[quote=“I’mITman”]
很奇怪,为什么Debian不提供用https方式取得SHA值。
Ubuntu、CentOS等都是这样。[/quote]
在邮件列表里已经吵过很多场架了,具体见 lists.debian.org/debian-security/2014/05/msg00075.html
[quote=“vickycq”]
[quote=“hosiet”]
四楼给的方法就够了。
如果你觉得麻烦,也可以去 https 站点下载。例如 ftp.cn.debian.org(https://mirrors.ustc.edu.cn)提供 https 访问,前提是你需要信任该站点。当然为了防止文件在传输中出错,还是有必要验证散列值的。[/quote]
楼主的问题关键就在这里
光镜像源提供 https 是不够的,镜像源跟官方同步的过程又变成了新的软肋
所以关键在于签名机制,而这正是我和楼主不懂的地方
看到一个 Web of Trust 机制,应该跟这个有关。
4楼的方法和一般的相比,只是增加了人肉校验签名指纹。
关键是 debian.org/CD/verify 这个页面没有被篡改,从而保证下载到了正确的公钥?[/quote]
这里和 web of trust 没关系,只要能获取可信的公钥即可。要么是网上公认正确的公钥,要么通过 https 得知,要么从已安装的 Debian 系统 gpg 数据库得知 。
原来如此。 那麽请问通过人肉比对 gpg --fingerprint 6294BE9B 和 debian.org/CD/verify,可否确认 gpg --recv-key 获取到的是正确的公钥 6294BE9B 呢?
因为我看到有个说法,gpg --recv-key 使用的 hkp 协议也是明文传输,安全性存疑
而 debian.org/CD/verify 这个页面是 https,应该不容易受到中间人攻击
pub 4096R/6294BE9B 2011-01-05
Key fingerprint = DF9B 9C49 EAA9 2984 3258 9D76 DA87 E80D 6294 BE9B
uid Debian CD signing key <debian-cd@lists.debian.org>
sub 4096R/11CD9819 2011-01-05
[quote=“vickycq”]
原来如此。 那麽请问通过人肉比对 gpg --fingerprint 6294BE9B 和 debian.org/CD/verify,可否确认 gpg --recv-key 获取到的是正确的公钥 6294BE9B 呢?
因为我看到有个说法,gpg --recv-key 使用的 hkp 协议也是明文传输,安全性存疑
而 debian.org/CD/verify 这个页面是 https,应该不容易受到中间人攻击
pub 4096R/6294BE9B 2011-01-05
Key fingerprint = DF9B 9C49 EAA9 2984 3258 9D76 DA87 E80D 6294 BE9B
uid Debian CD signing key <debian-cd@lists.debian.org>
sub 4096R/11CD9819 2011-01-05
[/quote]
hkp 协议没研究过,不发表意见。指纹一般很难重复,可信度还是比较高的。通过类似 pgp.mit.edu 之类的网站(注意可能被墙)是可以“安全地”获取公钥的(当然需要事先信任 https 那一套信任链)。
[quote=“hosiet”]
hkp 协议没研究过,不发表意见。指纹一般很难重复,可信度还是比较高的。通过类似 pgp.mit.edu 之类的网站(注意可能被墙)是可以“安全地”获取公钥的(当然需要事先信任 https 那一套信任链)。[/quote]
感谢讲解。
只有我心大到算出校验码就扔给谷歌搜一下吗?
[quote=“vickycq”]
[quote=“I’mITman”]
很奇怪,为什么Debian不提供用https方式取得SHA值。
Ubuntu、CentOS等都是这样。[/quote]
在邮件列表里已经吵过很多场架了,具体见 lists.debian.org/debian-security/2014/05/msg00075.html[/quote]
个人觉得不一定只能把SHA和下载文件放在一块儿。可以像FreeBSD一样,在放在声明中通过https再放一份。如:freebsd.org/releases/10.3R/announce.html
这样问题基本就可以解决了。
你厉害!