GitHub - revery-project/revery: 💭 Conversations that never happened.
github.com
external-link
💭 Conversations that never happened. Contribute to revery-project/revery development by creating an account on GitHub.

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.

Same encryption key can create “alternative facts” - impossible to prove which conversation really happened

Can you elaborate on what this means?

@slugr@leminal.space
creator
link
fedilink
12M

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.

Cipherd
link
fedilink
52M

Couldn’t you use HMAC with shared secret key to authenticate messages while keeping plausible deniability? Since the key is only supposed to be known to the 2 parties, the recipient can deduce that a message was actually sent by the sender if he did not create it himself. I think that’s what OTR was using.

@slugr@leminal.space
creator
link
fedilink
12M

deleted by creator

@slugr@leminal.space
creator
link
fedilink
42M

ooh, i’ll have to think through it, but it sounds like that’d add message integrity without sacrificing deniability. also wouldn’t be much to add. appreciate the feedback!

@JumpyWombat@lemmy.ml
link
fedilink
3
edit-2
1M

.

@slugr@leminal.space
creator
link
fedilink
22M

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.

@JumpyWombat@lemmy.ml
link
fedilink
2
edit-2
1M

.

@slugr@leminal.space
creator
link
fedilink
12M

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.

@JumpyWombat@lemmy.ml
link
fedilink
1
edit-2
1M

.

@slugr@leminal.space
creator
link
fedilink
62M

also, i’m new to lemmy, so if there are any communities i should cross post this to that may be interested, please let me know!

Create a post

A place to discuss privacy and freedom in the digital world.

Privacy has become a very important issue in modern society, with companies and governments constantly abusing their power, more and more people are waking up to the importance of digital privacy.

In this community everyone is welcome to post links and discuss topics related to privacy.

Some Rules

  • Posting a link to a website containing tracking isn’t great, if contents of the website are behind a paywall maybe copy them into the post
  • Don’t promote proprietary software
  • Try to keep things on topic
  • If you have a question, please try searching for previous discussions, maybe it has already been answered
  • Reposts are fine, but should have at least a couple of weeks in between so that the post can reach a new audience
  • Be nice :)

Related communities

much thanks to @gary_host_laptop for the logo design :)

  • 0 users online
  • 124 users / day
  • 1.05K users / week
  • 1.3K users / month
  • 4.58K users / 6 months
  • 1 subscriber
  • 4.2K Posts
  • 106K Comments
  • Modlog