基本密码学理解:RSA 签名

发布于 2024-11-17 09:04:41 字数 426 浏览 0 评论 0原文

我需要设置一个场景,其中客户端发送加密(AES)和签名的文件,服务器解密它并验证签名(RSA)。

以下是我想到的步骤:

1)计算文本文件的签名,然后将(base64 编码的)签名附加到标头中 2)加密文本文件(带有添加的标头)。 3)将加密后的文件发送到服务器 4)在服务器上,解密文件,然后从标头中提取签名(base64 解码)。验证发件人。如果已验证,则使用文本文件。

我的问题是:

您认为我应该首先加密文本文件,然后以普通方式添加标头(base64),以便首先完成发件人验证,然后如果验证了发件人,则操作可以继续解密文件内容吗?

最重要的是,当我第一次这样做时,我想象签名也可以被混淆,因此我将其全部加密。现在的问题是,签名真的应该被混淆吗? 攻击者如何使用签名(如果是普通签名?)?他无论如何都不能篡改它,因为验证会失败......请提供一些线索。

I need to setup a scenario where a client sends an encrypted(AES) and signed file and the server decrypts it and verifies the signature(RSA).

Here are the steps that I thought of:

1)Compute the signature of the textfile and then append the (base64 encoded)signature into a header
2) Encrypt the textfile(with the added header).
3)Send the encrypted file to server
4)At server, decrypt the file, then extract the signature from the header(base64 decode it). Verify the sender.Then use the textfile if verified.

My question is:

Do you think I should first encrypt the textfile and then add the header(base64) in plain so that verification of sender is done first and then if sender is verified can the operation proceed to decrypt the file contents?

Bottomline is, when I did it at first, I imagined the signature can also be obfuscated and therefore I encrypted it all. Now the question is, should signatures be really obfuscated??
How does the attacker use the signature(if in plain?)? He cannot anyway tamper it as verification will fail... Please throw some light.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风透绣罗衣 2024-11-24 09:04:41

简而言之:不要重新发明轮子,特别是如果您没有密码学方面的专业知识。

采用现有的加密方案,例如 OpenPGP 或 PKI(您需要它的 CMS 部分)并使用它。如果您没有集中密钥管理(即不涉及证书颁发机构等),OpenPGP 会很好。如果您想依赖现有的证书(和密钥)分发和管理基础设施,那么 PKI 是不错的选择。 PKI在各种软件中都有比较好的支持,但是如果客户端和服务器都是你自己设计的,这个就没有多大关系了。

In brief: don't reinvent the wheel, especially if you don't have expertise in cryptography.

Take existing cryptography scheme, such as OpenPGP or PKI (you'll need it's CMS part) and use it. OpenPGP is good if you don't have centralized key management (i.e. no certificate authorities are involved etc). PKI is good if you want to rely on existing infrastructure of certificate (and key) distribution and management. PKI has better support in various software, but if both the client and the server are designed by you, this doesn't matter much.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文