数字签名 - 分布式环境 - 单独的哈希和签名
我需要在分布式环境中对大小为 50 MB 的数据包进行数字签名。签名在中央服务器上进行,客户端将数据包发送到中央服务器。我想通过发送巨大的数据包来避免网络瓶颈。
我的问题是
- 我可以在客户端生成哈希并将哈希发送到中央服务器进行签名吗?
- 这种方法有安全缺陷吗?
谢谢
I need to digitally sign a data packet of size 50 MB in a distributed environment. Signing takes place at the central server and the clients will be sending the data packets to the central server. I wanted to avoid the bottlenecks in the network by sending huge packets of data.
My question is
- Can i generate the Hash at the client end and just send the hash to the central server for signing?
- Is there any security flaws in this approach?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以对从客户端收到的哈希值进行签名,但这里存在一个安全问题——您需要找到一种方法来确保哈希值是从授权进行哈希处理的数据派生的。想象一下您的服务器使用公司证书来签署您的 dev.team 编译的可执行文件的情况。现在,黑客创建了一个特洛伊人,并找到了一种将签名请求(仅传递哈希值)发送到您的服务器的方法。他会得到一个 troyan,使用您的公司证书签名。这对于外部攻击来说不太真实,但对于内部攻击则不然。
You can sign the hash received from the client, yet there's a security problem here -- you need to find a way to ensure that the hash is derived from the data that is authorized to be hashed. Imagine the situation where your server uses corporate certificate to sign executables that your dev.team compiles. Now a hacker creates a troyan and finds a way to send signing request (by passing only the hash) to your server. And he gets a troyan, signed using your company certificate. This is less real for external attacks, but not for internal ones.
盲目地签署哈希值似乎是一个危险的提议。在这种情况下,有几个问题似乎是相关的:
最后一项可能是最关键的。如果服务器不验证数据而只是盲目地对其进行签名,那么它可能与盲目地对哈希进行签名没有什么不同。这两个过程都允许任何人对任何数据进行签名。
Blindly signing a hash seems like a risky proposal. There are a few questions that seem pertinent in this situation:
The last one may be the most critical. If the server does not verify the data and just blindly signs it, then it probably is not really any different than blindly signing a hash. Either process allows anyone to get any piece of data signed.