2012-07-11 84 views
15

我對如何在Windows Azure中存儲密鑰(用於數據加密)有些困惑。Windows Azure中的密鑰管理

根據以下兩個鏈接(#1#2),建議存儲密鑰/在Windows Azure存儲密鑰庫:

存儲在Windows Azure存儲服務中的自己的密鑰庫這是一種保存一些祕密信息的好方法,因爲您可以依賴這些數據在多租戶環境中保護數據安全並通過您自己的存儲密鑰進行保護。

但「安全最佳實踐開發Windows Azure應用程序」(#3)建議不向任何鍵相關材料存儲在Windows Azure中:

此外,開發人員不應該上傳 鍵或任何將材料鎖定到Windows Azure存儲,無論他們如何謹慎地隱藏它。如果 任何計算機或存儲服務受到威脅,可能會導致加密密鑰泄露。

什麼是Windows Azure的存儲密鑰的最佳方法進行加密?

回答

7

最近發佈的Azure密鑰庫服務可能非常適合該問題。這已被引入,以便密鑰可以在中心位置進行管理,並且可以輕鬆控制訪問。它還支持HSM支持的服務,使其非常安全。

這裏是Getting Started with Azure Key Vault

+0

對於任何人來說,這真的是最好的答案。唯一可能考慮的是分裂他們的鑰匙。在本地文件上保留一半(不檢查源代碼),另一半保存在AKV中。這看起來似乎有點矯枉過正,但如果您需要遍歷多個服務/域,則很難破壞系統。 – radpin 2015-12-02 20:29:45

+0

5年後,我必須將這個答案標記爲最好的答案。詳細閱讀:https://azure.microsoft.com/zh-CN/blog/keep-credentials-out-of-code-introducing-azure-ad-managed-service-identity/ – Robar 2017-09-21 12:23:56

1

總是存在風險。如果有人通過任何方式(例如使用工具)訪問您的存儲帳戶,他們可能能夠找到您的密鑰。因此,最終需要保護存儲帳戶本身免受未授權訪問的訪問。

例如,請不要開發人員訪問生產存儲帳戶。這包括不允許他們使用工具訪問帳戶。請保護存儲帳戶密鑰,並且不要泄露任何應用程序中的任何信息。

只有存儲管理員(以及您100%信任的開發人員)才能完全訪問生產存儲帳戶。然後,您可以安全地將密鑰存儲在您的存儲帳戶中。

+0

-1你的答案直接違背的問題引述最佳實踐文檔條每頁。 – 2012-07-11 12:56:07

+4

另外,從我在我的回答中鏈接到的Microsoft文章中:*「開發人員可能會將加密密鑰存儲在Windows Azure存儲中作爲Blob,只要引用Windows Azure存儲的存儲密鑰是安全的,這將是安全的。但這不是最佳實踐,...「* – 2012-07-11 18:34:23

10

你會從我在第一個鏈接的評論中看到我同意你的關注。 :)

Azure沒有存儲密鑰的安全方式,而不是自己的證書存儲。下面是使用這種方法的文章:

Field Note: Using Certificate-Based Encryption in Windows Azure Applications

你會發現,我還談到了該文章的不足之處也鏈接到這個問題:

Read azure ServiceConfiguration file's certificate section using c#

的例子使用Azure的內置證書存儲來加密AES密鑰(避免RSA對加密數據長度的限制,同時保持AES密鑰安全)可以在此項目中找到:

Codeplex: Azure Table Encryption via Attribute

EncryptDecrypt項目中的SymmetricKeyHelper類特別感興趣。

榮幸@breischl提到它,併爲他的項目貢獻。

+0

Thx爲您的答案,您對第一個鏈接的評論讓我寫了這個問題;)我會明確檢查您提供的這兩個鏈接。 – Robar 2012-07-11 12:26:40

+0

@Robar:我已經爲您鏈接的第二篇文章添加了適當的評論,並在第一篇文章中將此討論鏈接起來。也許他們會重新考慮他們的建議,但可能不會。 – 2012-07-11 14:41:03

+0

1.謝謝你的鏈接,他們幫了一下。 2.好東西你添加了這個問題的鏈接,也許他們會重新考慮他們的建議。 3.很遺憾,沒有真正的支持存儲密鑰或加密支持blob。 – Robar 2012-07-11 14:52:13