Безопасно отправлять открытый ключ вместе с подписью - PullRequest
0 голосов
/ 02 апреля 2019

Я создаю блокчейн, в сообщении о транзакции есть поля отправителя и получателя, которые являются просто открытыми ключами (не адресами), и поле подписи RSA.Подпись генерируется с помощью закрытого ключа отправителя.Чтобы проверить подпись сообщения, вы должны использовать поле отправителя сообщения.Таким образом, для изменения подписи необходимо изменить поле отправителя, а затем изменить владельца сообщения.

Это безопасно?Это предотвращает поддельные сообщения?

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

1 Ответ

1 голос
/ 02 апреля 2019

Для проверки цифровой подписи рекомендуется, чтобы открытый ключ отправителя или его корневой ЦС в случае использования сертификатов был доступен в доверенном хранилище получателя (которое ранее было добавлено другими способами)

Процесс проверки должен проверить, что открытый ключ подписанного сообщения доступен в хранилище доверенных сертификатов, чтобы убедиться, что оно получено от доверенного эмитента. Если нет, любой может сгенерировать пару ключей и подписать действительное сообщение, просто включив свой открытый ключ.

Короче говоря, вам нужен механизм для проверки того, что открытый ключ является доверенным, в противном случае цифровая подпись не повысит уровень безопасности

...