4 ms·
Signatures only appear in the Signal protocol for prekeys, which allow limited asynchrony [1]. Signatures are not necessary for synchronous E2E with PFS. [1] T
by formerly_proven 5y ago
Signatures only appear in the Signal protocol for prekeys, which allow limited asynchrony [1]. Signatures are not necessary for synchronous E2E with PFS.
[1] The basic PFS key exchange is a triple DH: ee, es, se (e=ephemeral key, s=static key). This is obviously a synchronous protocol, because the ephemeral keys need to be exchanged for the handshake. X3DH works around this by publishing a bunch of unused ephemeral keys in advance. Those are signed. Note that the signature is not necessary for the protocol to be secure per se, the triple DH gives you mutual authentication already. The signature is only there to prevent the prekey-exchange-server from publishing prekeys for arbitrary clients and then decrypting initial messages using those ephemeral prekeys after compromising the corresponding static key. So the purpose of the signature is to close a loophole weakening PFS when you publish ephemeral keys in advance. X3DH also has a few other subtleties due to this, so it should only be used if you really need an asynchronous handshake. Otherwise, normal triple DH (Noise_XX) should be used instead.
- upofadown 5y ago>Signatures only appear in the Signal protocol for prekeys... Correct me if I am wrong (Signal protocol is pretty complicated), but doesn't the triple DH take a long term identity factor as an input? So in a sense the signature is built in. The result is logically the same as signing a DH exchange.
- supermatt 5y agothe prekeys are to establish the ratchet, which is distinct from the identity. They are signed by the identity so that they can be verified.
- upofadown 5y agoNo, not the prekeys. I meant the triple DH itself. I think my comment/question might of been confused. It appears that in practice Signal only uses prekeys to start things off. The prekeys are just signed chunks of the triple DH just stored somewhere for a time. So from that I conclude that Signal does in fact use signatures just like any other public key messaging system. The issue is fundamental after all...
- supermatt 5y agoYep, sigs are fundamental part of X3DH.