Encrypted PGP Messaging

I basically outlined what I was getting at in my previous post attempting to articulate threat models and messaging models. My last post may have distracted from that.

###TLDR:

  1. The social and technical landscape has changed since this thread stopped in 2014.
  2. I really like the implementations of PGP notifications by Facebook and the aforementioned WP plugin. Discourse adding that capability would be helpful.
  3. I’d also love to be able to use Discourse messaging secured by something like Signal Protocol so I could avoid Facebook Messenger altogether for private conversations with forum users (currently, we end up shifting back and forth).
  4. My aesthetic preference for encrypting everything likely does not represent most users.

Email notifications with no content leakage would certainly be less useful, but it would alleviate some of the concerns. Thank you for pointing that out.

I don’t think I have anything further to add.

1개의 좋아요

The way I see it this completely solves “Thread Model 3”

Big Data: User email providers (Gmail, Yahoo!, Microsoft, etc.). Transactional email providers (Mandrill, etc.). Attacks on email in transmission or at rest.

I would only be comfortable solving

Directly in the Discourse mobile app (or whatever packaged desktop app).

1개의 좋아요

Hi there,

I work for a consortium of journalists (ICIJ) that investigates on highly sensitive projects. Most known being the Panama Papers and the Paradise Papers.

I’m about to use Discourse to help our network to coordinate and I wonder if anyone ever come out with solution for encrypted private messaging? Our main concern being: if ever the database get leaked, how can we prevent the attackers to read private messages which could reveal sensitive info about our sources.

With our current forum portal, we already setup a “proxy” service in front of our SMTP that uses GPG to automatically encrypt messages for the known keys. If the key for an email has not been provisioned, the email is not sent.

Thanks a ton!

4개의 좋아요

My suggestion would be to have the actual source info referenced as a general codename – all direct source communication should be through a highly secure medium like Signal.

https://medium.com/@mshelton/signal-for-beginners-c6b44f76a1f0

Derived from

1개의 좋아요

Yeah. Where that document says:

Assume that anything you say on Slack or in Twitter direct messages will one day be public.

Apply that to Discourse as well.

Discourse is trying to be a facilitator for public discussion and doesn’t put a lot of focus on protecting users from the admins.
As a case in point, the re-naming of “private messages” to “personal messages” – the forum admins need to be able to audit PMs for harassment etc without the abusive participant noticing.

Make sure that your journalists know how to go from a codename & document number to the actual document, and that this actually WORKS, so you don’t have people uploading documents to the forum in order to get their work done.

2개의 좋아요

Yes, we already advise them to use Signal, and of course we have many security instructions like the one @riking mentioned. But each investigation involve hundreds of journalists, not all of them are tech savvy and since there is no ways to ensure they follow our recommendations, we must encrypt as many things as possible to lower risks.

The main things to check with regards to “database being leaked”:

  • anyone who has admin access to your Discourse can download the DB so limit the number of admins, and perhaps only log in as admin when absolutely required, use a “regular” moderator account typically

  • anyone who can log into your hosting server can directly grab the database, so strictly limit and control who has login credentials to your hosting server.

5개의 좋아요

Gotcha, I’ll limit the number of admin, thanks!

So I suppose no one ever implemented OTR in PM then?

It’s a very difficult problem space. I’d also STRONGLY recommend (require?) two factor auth for your hosting server login.

(We do support two factor auth in Discourse as well, but admins can override that as a technical support tool.)

2개의 좋아요

We have 3-factors of authentication in fact, using our own SSO.

1개의 좋아요

I’d like to add one point:

  • Keep Discourse and the host up to date. As is the case for any complicated software, sometimes, security vulnerabilities surface that could lead to the database being compromised. Assuming you won’t be the target of sophisticated attacks that specifically target you, quickly installing patches can eliminate most of that risk.
3개의 좋아요

The underlying issue is that you can not trust the server if you want truly secure messaging between members.

This means that the software used to encrypt and decrypt stuff should not be sent from the discourse server.

I second what was said here, you want something like keybase or signal for secure comms, you have to invest in training here. Treat the info you have on Discourse as potentially leaked, there are just too many vectors. People hosting the service, web browser caches on local computers running old exploitable operating systems and so on.

If I was pushed hard to come up with something for journalists discussing highly sensitive info that is Discourse I would

  1. Host the physical server in my house or somewhere I can see it all the time

  2. Use SSL clearly

  3. Only have myself as admin

  4. Enforce limited user agent support, demand everyone use a very specific browser and only allow that user agent on the site, this browser would not store any cached files on local disk

But… even with all of that .. signal/keybase is much better on so many levels

10개의 좋아요

AutoCrypt 오버레이가 Discourse(또는 유사한 비동기 게시 플랫폼)에 있다면 좋겠습니다.

이것은 PGP의 "복잡성"을 사용자에게 투명하고 안전하게 관리합니다. ‘최선 노력(best effort)’ 모드에서는 명시적인 방 설정이 없을 경우 평문으로 폴백할 수 있다는 사실을 사용자가 충분히 인지하지 못하고 있습니다.

키 교환과 공개 루프 밖(public out of loop)의 차이를 인지하고 있습니다. 이것은 맹목적 신뢰 없이 이루어질 것입니다.

아니요. 2FA는 신원 관리(예: Shibboleth)와는 전혀 다릅니다. 우회적으로 내가 가진 것과 내가 아는 것을 언급하고 있는 건가요? 그렇다면 내가 가진 것에 대한 증명이 확장되어 신원이 된다는 뜻인가요?

DANE 확인도 필요합니다.

‘무료’ 계정을 의미하고 있는 건가요?

Movim도 그랬기 때문에 그들은 자신의 XMPP 소셜 웹 플랫폼에서 OMEMO를 포기했습니다.

고려해 볼 가치가 있는 GitHub 프로젝트는 OverSec입니다. 이는 안드로이드용이지만, 누군가가 안드로이드용으로 이 프로젝트를 이어갈 수 있을 것입니다.

–

위협 모델(threat models)에 대해 더 깊이 생각해보겠습니다.

AutoCrypt 만세(ftw)?

사생활에 대한 악행에 대한 관용이 현재의 위협을 위한 토대를 마련했습니다. 무관심을 어떻게 해결할지는 모르겠습니다.

이러한 논리를 사용하면 훨씬 더 구식인 인터넷 사용을 중단하도록 권유하겠습니다.

이메일은 XMPP와 Matrix와 마찬가지로 연방제(federated)입니다.

아멘. 감사합니다.

이러한 이유로 다이제스트 모드를 비활성화했습니다.

이들은 애드블로킹과 마찬가지로 이에 대해 재교육을 받아야 합니다.

이것은 여전히 문제적으로 모바일 번호를 요구하나요?

검색 결과와 가장 잘 일치하여 부활시켰습니다(necro’d).

1개의 좋아요

공개 포럼에 게시글을 올리기 전에 검색 기능을 좀 더 활용하거나(그리고/또는 작성 전에 더 읽어보거나) 하는 것도 좋을 것 같아요.

제가 잘 이해가 안 됩니다: 더 많은 애드블로킹을 주장하시는 건가요, 아니면 덜 하자는 건가요?

1개의 좋아요

네, 여기서는 주로 다음 사항들을 권장합니다

  • Discourse Encrypt 플러그인을 설치하고 사용하세요 (매우 안정적이며, 내부에서도 사용 중입니다)
  • "secure media"를 활성화하세요 (경고: 설정이 매우 어렵습니다)
  • "private email"을 활성화하여 이메일을 통해 콘텐츠가 유출되지 않도록 하세요
2개의 좋아요