首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于公钥密码学的商用.NET库

用于公钥密码学的商用.NET库
EN

Stack Overflow用户
提问于 2012-04-26 13:17:21
回答 3查看 934关注 0票数 0

在SO、代码项目等上有许多公钥加密实现的例子.

我想评估一些商业解决方案,因为,不是来自领域本身,宁愿依赖成熟的产品。

设想情况:

  • ASP .NET应用程序加密文件容器。
  • WinForms应用程序解密容器。
  • ASP .NET应用程序不应访问WinForms的私钥。
  • WinForms的应用程序不应该访问ASP .NET应用程序的私钥。

结果:强加密、防篡改和身份验证.

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-26 16:10:30

确保SSL不会对您所想的起作用。您似乎试图在客户端和服务器之间获得安全的通信和身份验证。为此使用SSL。事实上,这可能是您在服务器端可以获得的最好的安全性,因为您可以将加密密钥存储在哪里。请参阅我的答案这里以获得更深入的解释。

如果您想保护客户端上的数据(而不是来自用户的数据,即DRM),请使用DPAPI或其托管包装器。这实际上比你能买到的任何东西都安全,因为它解决了发行的密钥存储问题。如果客户端上有加密的数据,并且需要脱机访问,则最终可以将密钥存储在系统上,让用户插入某些内容,或者让用户输入单独的密码。第一个是不安全的,第二个是痛苦的。DPAPI在用户的登录密码(或智能卡或windows的生物识别技术正在使用的)下加密。

论密码图书馆的主体

.net附带了带有公钥密码的托管代码密码包和本机代码的包装器。它是System.security.cryptography包,它是免费的,并且已经安装在任何有.net的windows系统上。

最低限度,您可以使用它来处理公共私钥部分,而无需付出任何实际的努力(.e.g可以从zipblackbox加密密钥)。

一些免费/开放源码库还支持从密码创建加密容器。Truecrypt、tarsnap和7zip (尽管这可能需要管理员权限来安装)。有alos dotNetZip进行加密,我不认为需要管理员权限来安装,并且是免费的和开放源代码下的一个非副本左许可证。

您也可以非常容易地制作您想要的加密容器,不过我可以理解为什么您可能对此犹豫不决。只需使用Microsoft安全方面的人员编写的这个班级,将文件写入该流,在IV和标记前面加上,然后使用公钥加密加密它提供的密钥。在另一端,解密密钥,读取iv,解密数据,验证标签匹配,然后您的产品。

票数 0
EN

Stack Overflow用户

发布于 2012-04-26 13:20:15

然后,您应该查看的唯一库是加密下一代(CNG) API。这些程序都是在Windows上进行的,已经过了彻底的测试,并且实现了今天存在的每一个重要的、经过测试的算法。

此库还具有适用于Windows的加密安全随机数生成器。

您可能也需要查看DPAPI和windows证书存储区。记住,尝试在客户端实现任何安全性,停止客户端对应用程序的调查都是徒劳的。如果客户端拥有这个盒子,他们就拥有你的应用程序和你想要实现的任何安全。

标准的RSA算法非常适合您所做的工作,但是您可能需要研究使用证书注册公钥/私钥,因为这将使您的应用程序更具有适应性,更易于管理。

票数 0
EN

Stack Overflow用户

发布于 2012-04-26 14:37:07

公钥密码很容易被滥用,这种情况经常发生。例如,人们忘记的一件事是,公钥加密非常慢,要加密任何有意义的数据量(1024位RSA密钥超过100个字节),需要使用对称算法并生成会话密钥。这就是安全漏洞出现的地方。

为了解决这个问题,有几个标准用于使用公共/私钥和证书加密/解密数据。他们是PKCS#1和PKCS#7 (后来的CMS)和OpenPGP等等。

我们的SecureBlackbox组件库是一个全面的安全解决方案,它为许多安全方案和标准提供了实现,并提供了广泛的示例和支持。

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

https://stackoverflow.com/questions/10334240

复制
相关文章

相似问题

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