UWP、C#:ECDSA 密钥生成和上线
[我是安全新手,因此,如果我问一些显而易见的问题,我深表歉意]
我正在努力制作现有的 UWP 应用程序,以便通过以太网 (TCP) 与本地嵌入式设备进行加密本地通信。下面是第 1 步:
第 1 步
第 1 步是安全存储相同 EC 密钥以供 UWP 应用程序使用。这些密钥将用于在后续步骤中对会话密钥进行签名。
您现在一定已经猜到了,即使有人反编译应用程序并嗅探它们,这些密钥也不应该可用。我看到的几乎所有实现示例都建议使用 DataProtectionProvider 类来保护这些静态密钥。我无法使用该类,因为私钥需要硬编码到应用程序中,这不是很好。
您能否告诉我以下信息:
- 如何获取 ECDSA 密钥以加载到应用程序中?我知道我可以使用 OPENSSL 生成密钥对,但我的计算机可能没有 TRNG。
- 如何将私钥加载到 UWP 应用程序中,而不将私有组件硬编码到应用程序本身中?
- 加载密钥后,我应该如何防止它被其他恶意应用程序读取?
Azure/是否有任何云产品可以为我们做到这一点?
提前致谢!
[I am new to security so, I apologize if I am asking something obvious]
I am working on making an existing UWP Application to have encrypted local communication over Ethernet (TCP) with an local embedded device. Here's step 1:
Step 1
Step 1 is to have same EC keys securely stored for the UWP application to consume. These keys shall be used to sign the session keys in the further steps.
As you must've guessed by now, these keys should not be available even if someone de-compiles the application and sniff around for them. Almost all the implementation examples I saw recommends using DataProtectionProvider Class to protect these keys at rest. I can't use that class because the private keys needs to be hard-coaded into the application which isn't very good.
Can you please tell me the following:
- How can I get the ECDSA keys for loading into the application? I know I can use OPENSSL to generate a keypair but my computer may not have TRNG.
- How can I load the private key into the UWP application in a way that I am not hard-coding the private component into the application itself?
- After loading the key, what should I do to isolate it from being read by other malicious applications?
Is there any cloud offering from Azure/likes to do this for us?
Thanks in advance!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论