2015-12-04 103 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安全的過程是什麼? –