2015-12-04 105 views
0

我将openJDK源代码克隆到我的本地库,并且我想确保文件完整性在传输过程中保持不变。mercurial克隆数据inegrity

hg clone http://hg.openjdk.java.net/jdk8/jdk8/ 

善变的常见问题解答说,revlogs都对他们的哈希值检查,“但仅此是不够的,以确保有人不与仓库篡改。对于这一点,你需要加密签名。”这是否意味着我需要使用 这样的SSH?

hg clone ssh://hg.openjdk.java.net/jdk8/jdk8/ 

为了获得SSH访问权限,我是否必须注册为项目贡献者?如果是这样,是否有办法在不成为贡献者的情况下获得经过验证的克隆?

回答

1

SSH提供传输加密。它确保数据不能从OpenJDK存储库传输到您的计算机。

Mercurial常见问题解答是关于signing the commits,它确保您可以稍后验证这些提交没有被单独篡改。这意味着攻击者不能侵入OpenJDK服务器或伪造上游验收提交,并在修改中添加该项目并不意味着在那里。您将能够识别这些修订版本,因为它们缺少正确的签名或完全没有签名。

SSH不会保护您免受此类问题的困扰,因为SSH不关心其传输的数据。恶意(修改或添加)提交与安全修改一样安全。

已签名的提交不是您作为存储库稍后可以添加的消费者的东西。 OpenJDK项目必须从一开始就建立签名到他们的提交程序。

+0

感谢Martijn,是的,在途安全是我关心的。这听起来像我误解了Mercurial FAQ。当我尝试使用SSH进行克隆时,出现以下响应:remote:“Permission denied(publickey)。abort:no remote response from remote hg!”。鉴于这种反应,获得openJDK安全克隆的最佳方式是什么? –

+0

@kitakitsune:SSH要求您在服务器上有一个帐户(如果您为他们提供公钥,GitHub会为您提供此帐户)。另一种选择是使用HTTPS,但是我发现OpenJDK并没有为他们的Mercurial服务器提供这种服务。有一个[GitHub镜像](https://github.com/openjdk-mirror),同时使用HTTPS和SSH选项来提取克隆。问题是,将镜像推向GitHub安全的过程是什么? –