首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类库安全与许可技术

类库安全与许可技术
EN

Stack Overflow用户
提问于 2011-01-21 18:54:13
回答 1查看 542关注 0票数 0

我问了一个关于组装安全性的问题,有人告诉了我几件事:

,您可以在实例化库时调用许可技术。我过去所做的是将公钥作为dll的资源,然后查找带有用我的私钥签名的加密签名的许可证xml文档。只要我紧盯着我的私钥,就很难打败。

看完这篇文章后,我有几个问题:

  1. 如何在开发类库时调用我的许可技术?
  2. 如何将公钥添加到程序集中?
  3. 如何查找带有用我的私钥签名的加密签名的许可证xml文档,以及从何处和何时查看?

如果有人能帮助我更好地理解这些细节来实现上面的安全性会更好。非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-21 19:34:34

“许可技术”基本上是他在这一段的其余部分中详细介绍的方法。“许可”只不过是一个参与者(用户自己或代表他们运行的其他代码)使用您的代码的权限证明。它不必是某种通用标准,比如SSL证书。它只是需要你知道,很难被别人伪造。

至于资源,这只是.Net固有的东西。在VS解决方案资源管理器中,转到希望能够访问受限DLL的项目。展开内容中的第一个项将是一个“属性”文件夹;在该文件夹下,您应该找到一个项Resources.resx。打开它,您将得到一个GUI,它将允许您引用字符串、图像、纯文本文件等,在构建解决方案时,这些文件可以编译到DLL中或与DLL一起保存。在这里,您将指定一个字符串,该字符串是一些加密的已知值。可能要加密的最安全的字符串是程序集的强名称或GUID,因为这样您就可以将解密的内容与调用方的程序集信息进行比较,从而防止有人从库中获取加密字符串并在其库中使用。在受限制的DLL中,您可以使用相同的特性来存储您将用于解码调用DLL提供的字符串的解密密钥。

关于如何在.NET中使用RSA加密(此处推断的加密方法),有许多可用的资源可供教程使用。有一个RsaCryptoServiceProvider将执行加密/解密、生成密钥等;您所要做的就是删除它。令人困惑的是,在不对称密钥算法(如RSA )中,数据通常使用“公共”密钥加密,而使用“私有”密钥进行解密。这是因为非对称密钥通常在公共通信通道上使用,您需要给远程用户一个密钥,它们可以用来编写消息,然后您将对其进行解码。但是,在这种情况下,受限制的DLL必须解密它需要比较的数据,因此需要一个固定的“私钥”。这使得解密密钥对任何使用.NET反射器或类似反汇编程序的人都是“公开的”。但是,如果开发人员是唯一能够向授权访问DLL的DLL提供加密字符串的开发人员,则可以将加密密钥保密。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4762646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档