Hacker News new | comments | ask | show | jobs | submit login
Reddit DMs will not reach their destination if they contain certain text (reddit.com)
232 points by ValentineC 8 months ago | hide | past | web | favorite | 68 comments

From that thread:

> Reddit's new "private" chat system is powered by send bird without any additional end to end encryption.

> This means send bird provides a searchable plaintext database of all of these "private" chats.

> https://sendbird.com/features

> I like the (public) chat feature but to introduce "private" chats a feature that is clearly intended to increase interactivity and thus use of the feature without making this clear is just wrong IMO.

I think that's backwards. You cannot assume that a "private" message is actually private unless end-to-end encryption is advertised. You still cannot safely assume so unless you've checked the code yourself. Privacy is never the default.

Hence the move to call things "direct" messages, rather than "private" as it used to be.

You cant even be sure when you have checked the source code of the project -- whos to say that is actually what is deployed?

Reproducible builds.

But how do you know that the build you verified yourself is the one that is running on their server? It would be amazing to solve this problem - are there any solutions?

End-to-end yousually means client to client. So all you need to verify is client code.

Intel SGX, if you trust Intel. But the amount of code that runs on SGX is limited so usually you'd run only critical parts there.

A practical example: https://signal.org/blog/private-contact-discovery/

Wow! That is an interesting issue.

I was thinking of having a third-party trusted services that compares the hash of the deployed application to the one they independently compiled themselves.

But the complexity is nontrivial and there is enough variations between the output of the same source code across different build environments that would make hashes useless.

Another possibility is having trusted compilers that would send link the source code to the build in a trusted repository.

You also need an agreement from the recipient to keep it private.

End-to-end encryption is for client-client communication.

When the sender and recipient are connected directly to the same system, there are no endpoints.

From sendbird:

"Customers can choose to further encrypt the messages prior to sending and after receiving for end- to-end encryption as needed (but this will cause moderation tools and search features to malfunction)."

Reddit may prefer to not provide end-to-end encryption due to reasons, say, keyword marketing.

I read this as saying that sendbird doesn't provide these features but you can use copy-paste to wedge them in if you're so moved.


I began work on a project for exactly this 2 months ago.


It encrypts messages with a passphrase using scrypt, AES-GCM, and sha256 for an HMAC.

Each v1 protocol message includes a salt/iv, scrypt N&r, HMAC, and whether or not to lower-case the password. All messages encrypted with the proof-of-concept will be decrypt-able by all future clients, as there's room for 13 more protocol versions.

The code is in complete disarray, and I wouldn't want anyone to sift through it in it's current state[1], but the proof-of-concept is finished, and life came up, so it's been sitting since.

I have a list of features[2] I want to add in the issues tracker :)

[1] if you do want to sift through it don't miss https://github.com/aurorabbit/libemojicrypt. I separated the repos without following through on that reorganization.

[2] https://github.com/aurorabbit/emojicrypt.com/issues

What's the point of HMAC when you already authenticate with GCM?

More buzzwords.

It appears to me that I simply misread, thank you for your assistance. I've edited it now.

The user who posted that has a strong history of looking for, and loudly proclaiming, malice in many decisions reddit makes. They're not necessarily wrong, though, just slightly more deserving of fact-checking than the average reddit user.

Whoever made the call to implement this third-party service as their private messaging system made a terrible call.

A bit ago there was a mass spam wave of malware being spread via PM hosted on mega. It could just as likely be an anti spam measure gone wrong.

I still get hit with DM spam on Reddit every once in a while.

I'm kinda surprised, if some new account tosses out 100 DMs ... you'd think they'd be able to automatically cut them off.

Then again they don't cut off accounts that just spam their blog or news site all the time either...

It’s a never ending battle.

Usually the offensive technology wins.

Defensive technology is expensive and loses utility in times of peace.

It yes, but there are a handful of very simple heuristics that Reddit (and Twitter) never cared to implement properly.

This is probably a sign that the situation is more complicated than it appears to be.

I mean if they have hundreds or thousands of engineers, billions of dollars etc. they have surely considered these heuristics before, and there's probably a reason they haven't done them "right," we just are not privy to that reason.

It’s not really.

You can throw the SpamAssassin detection engine at the PMs, and you’ll already get a much higher detection ratio than what Reddit gets today.

> I mean if they have hundreds or thousands of engineers, billions of dollars etc.

Reddit don't. They have a handful of engineers.

There's probably some class of genuine users who would get banned unfairly. Just look at the complaints of blocking mega links. Imagine if they went full Paypal and started randomly banning accounts just because someone's mother died and they sent a lot of messages all at once.

Most of the spam on Twitter (and assuming on Reddit PM) are from newly created accounts. They follow hundreds of other accounts (follow spam) and/or post hundreds of similar tweets mentioning someone else (mention spam).

Yeah, and MSN and Facebook block messages containing ThePirateBay.org. You can argue both ThePirateBay.org and Mega.co.nz are very likely copyright infringement material.

Also, these are not private messages. That's why Tweakers.net calls private messages "direct messages" (DMs) and not "private messages" (PMs). They scan them, they read them back in case of a dispute, but apart from the moderator team other users cannot read them.

The title of this subject seems to call it DM whereas Reddit appears to call their system PMs. Either way, Reddit falls under a different jurisdiction than Tweakers.

A simple solution could be using GPG, or a different method of communication e.g. using JS over a less censoring platform. By using GPG (or some other form of public key cryptography), the messages are private, and the integrity of the data can be guaranteed.

That thing about Facebook blocking messages with links to the thepiratebay.org doesn't seem to be true. I just tested it. Maybe it's a regional thing (i.e. it works in the US but not in the EU).

Here is my source [1]. Perhaps it refers to sharing links in posts but direct message still works? Either way, I can't test it.

[1] https://torrentfreak.com/facebook-blocks-all-pirate-bay-link...

Boy, if you think getting people to use encrypted email is hard, I can only imagine trying to convince reddit users. Why would you even use reddit to send an actual, private communique? If you know the person through some other channel, why prefer a pseudonymous platform controlled by a third party, that is notoriously unreliable? If you don’t know them outside of Reddit, I find the odds of wanting or needing truly private communications very small, and a DM could easily be used to establish a more secure connection elsewhere.

You don’t need to know them outside of Reddit, just outside of the DM. I can easily imagine a situation where members of a subreddit might want to DM each other securely. For example users of a marketplace subreddit might want to DM each other to negotiate transactions. In that case I could imagine the OP providing a GPG public key in a post and asking anyone who sends a DM to send it GPG encrypted with that key.

Also, convincing reddit users to use GPG is definitely easier than convincing email users, because it only needs to happen for specific subsets of them, and many already use it (eg in the old /r/DarkNetMarkets).

> If you know the person through some other channel

My assumption is that you don't.

A transparent browser addon using JS and redditcensored.com would take care of that. ProtonMail is also browser-based and user-friendly.

Meanwhile, ROT13 (or a variation) could be a useful alternative for the time being. Has anyone tested it?

Maybe ROT13 is good enough?

By using GPG (or some other form of public key cryptography), the messages are private, and the integrity of the data can be guaranteed.

Until they start blocking that (it's very easy to detect excessively high entropy, in fact one of the properties of good encryption is that output is indistinguishable from random noise) --- in which case, start using stenography...

Aren't stenotypes pretty expensive though?

I believe he meant concealment in plain sight aka https://en.wikipedia.org/wiki/Steganography

> in fact one of the properties of good encryption is that output is indistinguishable from random noise

Technically this is not correct, though your point about high entropy nonetheless stands. Ciphertext indistinguishability (IND, and more generally computational indistinguishability) refers to the inability of a polynomial-time algorithm to differentiate between two different output streams of data, given some input stream of data. To be precise, it is sufficient for a ciphertext to achieve indistinguishability under an adaptive chosen ciphertext attack (IND-CCA2) if an attacker cannot distinguish which of two ciphertexts corresponds to a plaintext message with greater with 50% probability in polynomial time, even when they can arbitrarily decrypt ciphertexts of their choosing.

Academically speaking, distinguishability against a set of uniformly random bits is a nice model and a bar to strive for. In practice it's not necessary, and it's harder to achieve with public-key cryptography than secret key cryptography. AES's substitution permutation network should generally have output that appears uniform (except for special cases, like GCM). But public-key cryptosystems like RSA rely on so much algebraic structure to achieve their encryption that it's very regular to find some latent structure which clearly distinguishes ciphertext data from random data. This doesn't diminish the security, because you still can't distinguish between ciphertexts themselves in polynomial time. But from the perspective of attackers and onlookers, if it's not already obvious how a ciphertext was generated from context, it's usually not infeasible to figure it out by looking directly at the ciphertexts or their accompanying metadata. It is much harder to do this with hash functions.

There is not much research in cryptographically secure stenography because that sort of obscurity is usually not desirable except for very special cases. To combat the appearance of high entropy, I would use a specialized encoding algorithm that breaks the ciphertext into many short, variable-length fragments, then intersperses it into a commensurately larger corpus of randomly generated plaintext. Localized pockets of entropy would still be evident even if it's less "loud", so I'd then disguise them by putting them into e.g. very long URLs, which often have great length and pseudorandomly generated tokens.

With an actual research team and a few months I'm confident you could massage this plan into something pretty decently secure as long as the underlying cryptography wasn't too radical. The real question is why go through all the effort to impose secrecy on a platform that's clear antagonistic to it? If you're at the point of considering stenography for a direct messaging system, just message a redditor and ask them to chat with you on a different system for security.

They are private because other users can't see them. I wouldn't advise reading anything more into the terminology than this.

Legally it might be a good call to avoid the word private.

It seems like Reddit, Facebook, YouTube and others are "converging", partly due to the economic forces behind delivering good engagement metrics to advertisers and not placing ads next to undesirable content.

It is a strange blessing and mercy that websites unattractive to advertisers, like 4chan, are seemingly spared the worst of it.

It has nothing to do with advertising. It's about control and propaganda. The elites want to take control over social media. They want social media to be like the rest of media. Where the masses see what they want us to see.

It's why europe has been on a censoring rampage. It's why china/russia/etc are very strict about social media.

Do you think that advertisers, who are stepping over each other to advertise in china ( where they kill prisoners to harvest their organs ) or saudi arabia ( where they stone rape victims for adultery ) have any morals?

Ultimately, reddit, facebook, youtube and others doesn't need advertisers. The advertisers need them. That's why the establishment has been waging a war to take control over social media. Social media is where the people ( young and increasingly the older ) are.

Reddit's blocked Mega links for years. I'd have been surprised if their new chat platform didn't use the same filters.

I bet URL shorteners don't work either, for the same reason.

first the redesign now this.

reddit is really starting to go downhill.

This was actually first. We saw the start of this about a year and a half ago when they deleted their warrant canary. And half a year ago they announced that they went closed-source.

They've been closed-source for a while longer. Some changes on the live site took months to arrive in the open source repo, if they ever did.

So its more work to replace them I guess.

I read their re-design announcement and am really confused. Did they actually conduct user studies? focus group studies? research? proper A/B testing?

The general consensus seems that the re-design has a horrible user experience for most people. Curious on what their approach would be as I'm sure they're seeing horrible conversions.

I bet they have a lot of “conversions” because a significant portion of their user base don’t log in and use the site to interact with others, they just browse the front page of some particular sub or thread they ran across. Not something you can exactly do with FB for example. Of course, the redesign is so badly broken it will dump you back to the old view half the time. But they have this weird sort of captive yet passive audience that sees what is delivered by default via the front page and the default subs.

> The general consensus seems that the re-design has a horrible user experience for most people.

Maybe on r/redesign that's the consensus, but that's ignoring the rest of the users that doesn't care.

Whenever I open reddit without logging in, I’m filled with abject horror by the abomination before me.

Sure, it’s fixed after logging in, as I’ve opted for the “classic” look, but how long will they support both displays?

I can't read Reddit without logging in because that's what applies all my filters. It's a much more agreeable site once you strip off all the politics subreddits. Now I just need a way to filter off the karma whores like gallowboob.

When I most recently logged in on a new computer, the new UI still persists. I suspect that's being rolled out slowly.

that’s what happens to me, except it’s delayed by 30 seconds because it loads so slowly.

>first the redesign now this.

Did they forget that the reason they got so many users in the first place was because of the Digg redesign?

This something people keep bringing up but many people have pointed out that Digg didn't just redesign their site. They changed the way the site worked.


Reddit is a private entity entitled to make their own decisions on what is allowed on their platform. I'm a private entity entitled to say their decisions suck. HN is a private entity which (for now) is willing to host my opinion.

Your response falls completely flat because I never claimed a right to Reddit.

the "private entity entitled to their decisions" argument is facing an interesting 1st ammendment challenge based on a 1946 court case Marsh v. Alabama


It may not hold up after all, i.e. facebook censoring users because they are a private entity, they may be forced to provide some avenue for people to do so in the future. Its interesting to me because it goes against everything I use to believed in, but at the same time these entities are being used to promote a dark globalist agenda.

Not a relevant xkcd to GP. You would have done better posting a link to "Time", at least that one has people going downhill.

I don’t see what’s in this for Reddit. They can’t possibly get sued for not doing this.

I've had the same experience with imgur "private" messages. At least imgur are honest enough to not concretely state that they don't look.

Mega is the best implementation of large file downloading on the web.


Nothing is private if someone else controls the channel.

That's not true. Private/Public key encryption is just one example of secure communication over an unsecured channel.

This is not true at all.

"It's a little insurance policy...You're our product. And we can't very well have our products turning against us, can we?"

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact