如果我包含签名,是否可以跳过其他真实性步骤?

时间:2016-01-19 13:48:50

标签: java java-security

我正在使用这个:

        byte[] payload = objectMapper.writeValueAsBytes(contents);
        Signature s = Signature.getInstance("SHA256withRSA");
        s.initSign(privKey);
        s.update(payload);
        byte[] sig = s.sign();

然后将两个字节数组连接起来。基本上这应该足以防止任何类型的数据损坏,无论是有意还是无意。

最终,事情将以UDP数据包传输,因此我无法保证完整性。但在正常的运营中,我并不期待很多这些。

我能想到包含另一个更便宜的整个哈希的唯一原因是,即使在必须检查签名之前,也能够丢弃(意外地)损坏的数据包。

我想不出任何其他原因......你能吗?

编辑:

更多背景。用例明智,我只是在探索。基本思想是在UDP中找出加密文件传输。不一定是因为它很有意义,而是因为我可以,而且我已经看到了基于UDP的文件传输,我想弄清楚这个问题的具体问题。

在我目前的情况下,双方都知道双方的公钥。我认为应该足以启动会议:

A  ---- i want to connect (+sig +nonce) -------------------> B
                                                             |
A  <--- ok, here's a symmetric session key (+sig) ---------- B

这两个可能只是用对方的公钥加密,而req / res可能包含一个nonce和一个时间戳来避免重放攻击。

0 个答案:

没有答案