与签名一起发送公钥是安全的

时间:2019-04-01 23:25:49

标签: cryptography blockchain digital-signature packet

我正在创建一个区块链,交易消息有一个发送者和接收者字段,它们只是公钥(不是地址),还有一个RSA签名字段。签名是使用发件人的私钥生成的。 要验证邮件签名,您应该使用邮件发件人字段。 因此,要更改签名,您应该更改发件人字段,然后更改邮件所有者。

这样安全吗?这样可以防止虚假消息吗?

type TransactionBody struct {
    Sender    rsa.PublicKey `json:"sender"`
    Recipient rsa.PublicKey `json:"recipient"`
    ...
}

1 个答案:

答案 0 :(得分:1)

为验证数字签名,建议在收件人的信任库中使用发送者的公钥,或者在使用证书的情况下,其根CA也可以使用(以前已通过其他方式添加)< / p>

验证过程应验证已签名消息的公共密钥在信任库中是否可用,以确保它来自受信任的发行者。如果没有,那么任何人都可以生成一对密钥,只需包含其公共密钥即可签署有效消息。

简而言之,您需要一种机制来验证公钥是否可信,否则数字签名不会提高安全级别