Cryptography 数字签名.分布式环境.散列和签名分离

Cryptography 数字签名.分布式环境.散列和签名分离,cryptography,hash,digital-signature,Cryptography,Hash,Digital Signature,我需要在分布式环境中对大小为50MB的数据包进行数字签名。签名在中央服务器上进行,客户端将向中央服务器发送数据包。我想通过发送大量数据包来避免网络中的瓶颈 我的问题是 我是否可以在客户端生成哈希并将哈希发送到中央服务器进行签名 这种方法是否存在安全缺陷 谢谢您可以对从客户端收到的哈希进行签名,但这里存在安全问题--您需要找到一种方法来确保哈希是从授权进行哈希的数据派生的。想象一下服务器使用公司证书对开发团队编译的可执行文件进行签名的情况。现在,黑客创建了一个troyan,并找到了一种将签名请求(

我需要在分布式环境中对大小为50MB的数据包进行数字签名。签名在中央服务器上进行,客户端将向中央服务器发送数据包。我想通过发送大量数据包来避免网络中的瓶颈

我的问题是

  • 我是否可以在客户端生成哈希并将哈希发送到中央服务器进行签名
  • 这种方法是否存在安全缺陷

  • 谢谢

    您可以对从客户端收到的哈希进行签名,但这里存在安全问题--您需要找到一种方法来确保哈希是从授权进行哈希的数据派生的。想象一下服务器使用公司证书对开发团队编译的可执行文件进行签名的情况。现在,黑客创建了一个troyan,并找到了一种将签名请求(仅通过传递哈希)发送到服务器的方法。他得到了一个troyan,用你的公司证书签名。这对于外部攻击不太真实,但对于内部攻击则不然

    盲目地签署散列似乎是一个危险的提议。在这种情况下,有几个问题似乎是相关的:

    • 客户是否“值得信任”
    • 通信通道是否可信
    • 服务器是否对其接收和签名的数据执行任何验证

    最后一个可能是最关键的。如果服务器不验证数据,只是对其进行盲签名,那么它可能与对哈希进行盲签名没有什么区别。任何一种流程都允许任何人对任何数据进行签名。

    您试图防范哪些威胁?我的要求是在将一家银行的金融交易数据发送给另一家银行进行验证之前,对其实施数字签名。所以我应该确保我的实现足够安全。一切都取决于客户端的完整性是正确的。但无论发送散列还是完整内容,这都是有效的。@mtraut不完全正确。如果要签名的是50Mb的大型PDF文档(在服务器上),那么服务器可以检查PDF文档的某些参数(甚至可以通过放置水印等方式对其进行修改)。如果是XML文件,服务器可以检查XML是否遵循可接受的结构。但这一切都不可能只有一个杂凑。没错。但他只能做正式检查。他不知道10.00美元或10000000.00美元是否有效。@mtraut这也要视情况而定。例如,可以将系统配置为仅自动签署10000美元以下的文件(否则需要手动验证)。几乎在任何情况下,拥有数据总比仅仅拥有一个散列要好。@eugene,我听说过一些计算机,它们能够以1.00美元的速度创建非常快速的请求,而这些请求的总和很快。老实说,你是保安公司的。您永远不会接受(SOX和任何审查这些流程的人也不会接受)一个依赖于服务器启发式的方案,在这种方案中,需要客户端和传输安全性。当然,可以进行“附加”检查-但如果您确定请求完整性,则不会进行任何检查,如果由于协议缺陷无法确定,则不会对其进行签名…如果服务器未执行任何数据验证,您不妨完全取消中央服务器,并将签名密钥交给客户端。谢谢,您的问题总结了我应该考虑的因素。