[–] [S] 1 point 1 year ago

sure!

during or after a conversation, anyone with the keys can create fake transcripts by creating messages with the same metadata, same nonce, different content.

because of this, no transcript can be proven to be the correct transcript. the trade-off is you don’t get forward secrecy on the per-message level, but you get it per-conversation.

another detail is that there is no identity, so all the above aside, there’s also no way to prove who sent which message.

  • source
  • parent
  • context
  • [–] [S] 1 point 1 year ago

    you’re not wrong, but that’s just the trade off that has to be made, i think. it’s the only way i can think to do it, at least. need -some- authentication for practical usability.

    your gpg example removes the deniability since it proves who wrote the message.

  • source
  • parent
  • context
  • [–] [S] 1 point 1 year ago (1 child)

    interesting point! i chose symmetric shared key because it means you can’t prove who sent what message.

    the shared secret does add some authentication, which i think is necessary. the goal is it only creates enough to be practical (a random person can’t eavesdrop), but not enough to prove things. messages themselves still aren’t authenticated by any one person.

  • source
  • parent
  • context
  •  

    i started a (very niche) private messaging protocol & little CLI app demo. i’m no security expert, so any feedback or questions would be appreciated.

    the gist is an ephemeral message exchange without identities. the goal is ultimate deniability.

    the interesting (and weird) part is that messages are encrypted but not authenticated. this means an imposter could show up if they know the shared secret. otoh this means you can deny anything you say.