我将openJDK源代码克隆到我的本地仓库,我希望确保在传输过程中保持文件完整性。
hg clone http://hg.openjdk.java.net/jdk8/jdk8/
Mercurial常见问题解答说,根据他们的哈希值检查revlog,"但仅凭这一点还不足以确保某人没有篡改存储库。为此,您需要加密签名。"这是否意味着我需要使用 像这样的SSH?
hg clone ssh://hg.openjdk.java.net/jdk8/jdk8/
要获得SSH访问权限,我是否必须注册为项目的贡献者?如果是这样,有没有办法获得经过验证的克隆而不成为贡献者?
答案 0 :(得分:1)
SSH提供传输加密。它确保数据不会在从OpenJDK存储库传输到您的计算机的过程中。
Mercurial常见问题解答讨论signing the commits,确保您以后可以验证这些提交未单独篡改。这意味着攻击者不能闯入OpenJDK服务器或伪造上游接受提交,添加项目并不意味着存在的修订。您将能够识别此类修订,因为它们缺少正确的签名或根本没有签名。
SSH不会保护您免受此类问题的影响,因为SSH并不关心它传输的数据。恶意(更改或添加)提交的转移与有效修订一样安全。
签名提交不是您作为存储库的使用者可以稍后添加的内容。 OpenJDK项目必须从一开始就签署他们的提交程序。