git 加密 4個用於Git加密的秘密管理工具

2021-10-08 04:36:02 字數 2754 閱讀 5222

git 加密

有很多很棒的開源工具可以在git中儲存秘密。 為您和您的組織確定合適的解決方案可能很困難-這取決於您的用例和要求。 為了幫助您進行比較和選擇,我們將介紹四個用於機密管理的最受歡迎的開源工具,並**它們之間的相互關係:

我們不會審查像hashicorp vault這樣的大型解決方案。 準備就緒的保管庫可能是乙個很大的障礙,尤其是在您的組織剛開始使用機密管理的情況下。 上面的工具易於使用且設定swift。

這些秘密管理工具使用gnu privacy guard( gpg ),對稱金鑰加密和/或雲金鑰服務。

這些機密管理工具使用的加密型別為:

gpg

對稱金鑰

亞馬遜kms

google kms

azure金鑰保管庫

地穴 x

x 黑盒子

xsops xx

x x

轉加密 x

如您所見,git-crypt和sops使用多個加密基礎。 這意味著git-crypt可以通過使用gpg 或對稱金鑰來實現加密,而sops可以使用gpg 或一種雲服務。

這些工具具有相似的目標:

git的透明度

全檔案加密

部分檔案加密

地穴 x

x 黑盒子 xx

sops

x x

轉加密 xx

除了sops之外,其他所有內容都對git透明,這意味著它們具有內建機制,可確保源**管理中的檔案被加密而無需使用者付出太多努力。 它們有助於防止git push意外將純文字機密推送到git。

此時,您可能會想,「如果不使用git進行透明加密,為什麼sops在這裡?這不是有關git加密工具的帖子嗎?」 原因是因為它如何處理基於鍵值的檔案,例如yaml和json。 對這些型別的檔案進行加密時,sops將使金鑰保持未加密狀態,但會對值進行加密。 在很多情況下,尤其是在配置管理中,這些型別的檔案需要在git中進行加密,但是檢視它們包含的資訊型別也很方便。 儘管sops不提供本機git透明性,但可以將git-secrets之類的工具與sops一起使用,以幫助確保將明文秘密不推送給git。

最後,所有這些工具都支援全檔案加密,其中,秘密檔案將被完整加密。

這些工具都不是特別難於使用的,但是它們都有一些古怪的問題和需要考慮的操作挑戰。

基於gpg的工具的基本工作流程是:

使用加密工具初始化儲存庫

為允許管理機密檔案的使用者建立gpg金鑰

將相應的公鑰新增到工具

指定應視為「秘密」的檔案

使用工具加密檔案

對每個被授予許可權的新使用者重複步驟2、3和5

要撤消使用者,請刪除該使用者並重複步驟5

從理論上講,此工作流程很簡單。 乙個操作問題是gpg金鑰維護。 如果意外刪除了gpg金鑰,您的團隊將需要備份其gpg金鑰以防止出現鎖定情況。 如果您使用自動化工具,則還需要考慮由誰負責建立和維護該服務的金鑰。 此外,如果您需要新增,刪除或旋轉金鑰,則需要重新加密每個檔案,以使更改生效。

基於gpg的工具的優缺點包括:

這是將sops與amazon kms結合使用的示例工作流程:

建立身份和訪問管理(iam)實體

建立kms主金鑰

授予iam實體訪問主金鑰的許可權

使用sops將主金鑰新增到每個秘密檔案並對該檔案進行加密(使用sops進行金鑰新增和加密通常是乙個一步的過程)

新增或刪除主金鑰時重新加密

在這四個工具中,sops是唯一允許使用者使用基於雲的金鑰服務配置加密的工具。 雲關鍵服務減輕了基於gpg的解決方案帶來的大部分運營負擔。 以amazon kms為例:將主金鑰新增到sops,並通過iam策略控制對機密檔案的訪問。 新增和刪​​除使用者就像使用iam授予或撤消許可權一樣簡單,這意味著更改許可權時無需重新加密秘密檔案,因為從sops的角度來看,什麼都沒有改變。 但是,此解決方案確實有其自身的操作挑戰。 團隊中的每個成員都必須擁有乙個aws賬戶才能訪問機密檔案。 另外,管理員必須配置和維護iam策略和kms主金鑰。

基於對稱金鑰的工具的工作流程可能是最簡單的:

使用加密工具初始化儲存庫

指定應視為「秘密」的檔案

git push透明地加密檔案

與需要訪問許可權的其他使用者共享對稱金鑰

每次使用者被撤銷訪問時旋轉金鑰

git-crypt和transcrypt都提供複雜的密碼作為對稱金鑰。 操作上的挑戰是找到一種共享對稱金鑰的安全方法,並確保每次刪除使用者時都旋轉金鑰。

以下是我們的對稱金鑰相容工具git-crypt和transcrypt之間的一些區別:

該工具的其他特徵包括:

就地編輯

審核 回購級別許可權

檔案級許可權

地穴 x

黑盒子 xx

sops xx

x 轉加密 x

blackbox和sops均具有「就地編輯器」工具,該工具會解密檔案並開啟$ editor環境變數指定的文字編輯器。 這使使用者可以在檔案進行儲存和重新加密之前對其進行就地編輯,因此使用者可以修改秘密檔案,而無需先對其進行「就地解密」。

git-crypt,blackbox和transcrypt在回購級別處理訪問,這意味著,如果您可以檢視乙個解密的檔案,則可以全部檢視。 根據您的用例,這可能是功能,也可能是功能不當。 sops在檔案級別處理許可權,這意味著僅由於使用者可以檢視乙個檔案,而不必一定要檢視儲存庫中的其他檔案。

翻譯自:

git 加密

Git配置SSHkey加密

應用tortoisegit為github賬號新增ssh keys 問題 如何實現idea toroisegit和gitkraken同時配置ssh key加密?1 生成id rsa和id rsa.pub 1 任意目錄下右擊滑鼠選擇git bash here或者win r輸入cmd回車開啟終端 2 在改...

ssh非對稱加密詳解(git)

git主要使用四種協議來進行資料的傳輸 1 本地傳輸 2 git協議 3 ssh協議 4 http協議 其中ssh協議和http協議是最常見的兩種協議了。ssh協議則是唯一同時支援讀寫操作的協議,很多企業內部在架設git伺服器的時候,都會提供ssh協議來傳輸資料。ssh協議的安全性體現在其使用了公鑰...

Git 的4個階段的撤銷更改

雖然git誕生距今已有12年之久,網上各種關於git的介紹文章數不勝數,但是依然有很多人 包括我自己在內 對於它的功能不能完全掌握。以下的介紹只是基於我個人對於git的理解,並且可能生編硬造了一些不完全符合git說法的詞語。目的只是為了讓git通俗化,使初學者也能大概了解如何快速上手git。同時,下...