.net - 如何保护Azure存储/服务总线中的访问 key

标签 .net azure azureservicebus azure-storage

我认为这个问题有点类似于:What is the use of Default Issuer and Default Key in Windows Azure Service Bus? Does the key need to be secured?

我有一个 PC 应用程序,我想在其中访问“Azure 存储表”和“Azure 服务总线主题”。两者都可以通过使用“访问 key ”来访问。 (这是 Microsoft 设计的。)现在访问 key 嵌入在我的 .NET 代码中。 我估计大约需要 5 分钟才能反编译 .NET 程序集、提取访问 key 并获得对存储和服务总线命名空间的完全访问权限。 如果我想阻止用户完全访问我的数据,我该如何保护它?

  • 我可以构建一个非托管 dll,而不是 .NET 程序集?在这种情况下,需要 10 分钟才能破解。
  • 我可以使用自定义密码加密访问 key 并将其存储在磁盘或云中。在这种情况下,假设用户有权访问自定义密码,反编译和破解仍需要约 10 分钟的时间。
  • 我可以为所有用户创建单独的存储帐户。这样,如果一个帐户(被用户)泄露,他将只能访问他自己的帐户。但这阻止了诸如“共享系统数据”之类的概念。而且我不确定我是否有无限数量的存储帐户。 (现在我的门户中显示最多 20 个。)
  • 我可以混淆 .NET 程序集吗?不过,我非常不喜欢混淆 .NET 程序集。它通常会带来很多额外的问题。我猜你仍然可以通过内存调试器取出 key 。

您通常如何保护这种“系统帐户访问权限”?

最佳答案

任何有权访问存储帐户 key 的人都可以访问存储帐户上的任何操作。一般来说,您最好将存储帐户隔离在网站或某种 API 后面。即使是生成 shared access keys 的简单服务您的客户端应用程序随后用来执行操作就足够了......

编辑:错过了有关服务总线的部分...您也可以在这里使用 SAS - http://msdn.microsoft.com/en-us/library/dn170478.aspx

关于.net - 如何保护Azure存储/服务总线中的访问 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24243358/

相关文章:

.net - 什么是强类型数据集?

.net - Table<T>.DeleteOnSubmit 生成的 SQL 匹配所有列

python - df = pd.read_csv ('iris.csv' ) 指向 azure blob 报告中的文件 [errno 2] 没有这样的文件或目录

node.js - Azure blockBlobURL.download() 对文件大小有限制吗?

Azure Function 中的 Azure 服务总线处理程序

c# - .Net 到 SQL,比较唯一值的最佳方式

c# - 在 WPF 中,Windows 窗体中的 Suspend/ResumeLayout() 和 BackgroundWorker() 等同于什么

azure - Azure 上的 Log4Net

Azure 服务总线 InvalidOperationException

c# - 有没有办法使 Azure WebJobs ServiceBus 输出参数可选?