* Blocks of text that start and end with magic numbers are signed in-band in the style of "gpg --clearsign".
* The pubkey pair is automagically created on first use.
For legacy support with existing infrastructure (such as HN):
* When you submit a form with a <textarea>, the plugin provides a UI to sign the contents before submitting the form.
* When browsing a page that contains magic number wrapped text, the text is automagically verified and the key pinned.
* The structure of the signed text should allow the plugin to hide the magic numbers, signature, etc, so the text looks normal.
However, newer software would have other options:
* Define a mapping between the in-band data and a tag structure that holds the same data. This needs to be strictly defined, so it is possible to remove the tag structure and verify the original signed text. This gives full presentation control back to the website, while allowing individual posts on the page to be verified.
The big problem - as usual - is key distribution. In the latter case where it is easy to hide metadata with CSS, the public key can simply be included with the post. Unfortunately, in the legacy case I don't think there's a good way to include two pages of public key in each "--clearsign"d post.
* Websites do weird things with textareas. If it's a plain-ol HTML form, it's pretty easy to intercept and do what you want. It seems most websites intercept button clicks then pass your text around to twenty different JS functions and libraries before doing something useful with it. You wind up writing code to handle edge-cases more than anything else.
* To address your final comment, embedding the pubkey inside the text would defeat the entire purpose. A malicious actor (see recent Reddit controversy) can just create their own pubkey, sign the modified comment with it, and noone would be the wiser.
Some things I discovered, and found worked well:
* Keybase has a fantastic library for generating PGP keypairs in-browser. It really added that extra bit of "magic" to the extension.
* Chrome extensions can get CORS exemptions on a per-website basis, and uploading to a standard SKS keyserver is just a POST request that can be done by Javascript.
* Expanding on the last bullet point, verifying other user's comments was tricky. During development, I just downloaded all keys on the keyserver that were uploaded by my extension on a scheduled interval and stored them in localstorage. Unfortunately, I don't think this would scale.
If anyone is interested in picking up where I left off, I could upload the source to Github.
I'm probably not going to pick it up, but I'd definitely read the source.
> It seems to me that speaking to a large number of people anonymously is not possible with
> any of the existing tools, Signal included
While it's still at the testnet stage, I have very high hopes for Maidsafe's SAFEnet. This will allow a completely anonymous internet, providing both users and publishers complete anonymity. Upon release of the actual network, it will live in the wild, just like bitcoin, with no company in control of it. Maidsafe's business model is to be one of many developers that will consult to companies who want to migrate their data storage onto the network. The network itself will be controlled by nobody.It's peer to peer, but there are intermediate nodes which isolate content storage from those who view it, so neither IP addresses of storage nodes nor IP addresses of content consumers can be determined. Since there is no centralization, there's nobody for state actors to attack, legally or by force. All traffic is encrypted and even the ports are randomized, to avoid state firewalls from determining what the traffic is and blocking it.
I think it's our best hope to distribute large amounts of data to the world and avoid the censorship that many countries already have and that even those of us in the west see looming upon us.
You can learn more about it at https://safenetwork.org/ and https://safenetwork.org/documentation/ and https://safenetforum.org/
In countries that are not democracies, I'm uncertain what to do with your complaint. Would you dismiss giving oppressed people access to literature, news, entertainment, or technical and scientific information, on the premise that the information is unlikely to allow them to affect political change? I don't believe that premise is true, but even if it were, their lives are still made better, which means it's far from meaningless.
But governments do a pretty good job of keeping their secrets now, so in the end, I think this will balance the scales towards private citizens.
I see these two subjects as being inseparable. Before I feel comfortable asserting a dissenting opinion in a public forum, I would much rather discuss the subject among my peers where I don't feel I will be immediately eviscerated for a poorly constructed thought. If I don't feel that I have any privacy, I'm more likely to be subject to chilling effects.
While I certainly emphasize with the anxiety of publicly expressing an unpopular opinion, I believe it is, especially in times like these, your moral duty to endure in spite of the repercussions and speak your mind. Even though I went to Stanford and had direct access to Milgrom's famous prison experiment, the lesson from it didnt hit home until many years later I read this article: https://aeon.co/ideas/the-desire-to-fit-in-is-the-root-of-al...
Now, the phrase "All it takes for evil to triumph is for good men to remain silent" resonates with me.
Speaking out matters. So does when, where, and how you speak out. And that is something best discussed privately.
I'd have much more to say on how privacy and anonymity are inextricably linked, but I'll let the EFF say it: https://www.eff.org/deeplinks/2012/01/right-anonymity-matter...
> This phrase does not mean "All good men should continually natter on". It is also your moral duty to present a cogent argument
What I was trying to say is there will be times where you are not as prepared as you like. It's not about presenting an airtight, cogent argument, it's about having the courage to say something like, "Officer, stop beating the shit out of this guy in a wheelchair. He's clearly isn't resisting and you're being a dick."
NNTP, mixmaster remailers, and mail-to-news gateways.
Old school. Those were the days.
If it's not private, what you say, how you say it and when you say it can be analyzed to identify you.
It's a people problem not a technical one.
A good reason to support Wikileaks.
I'm also not sure I see the connection between 'dissent' and the dissemination of stolen private emails.
I think I'll give to the ACLU instead.
Signal seems to me to one tool in a large profile to maintain freedom of information dissemination and information gathering activity.
It seems to me that speaking to a large number of people anonymously is not possible with any of the existing tools, Signal included, and it seems that this set of tools is the next set that is needed.
Candidates for this include implementations of "Dining Cryptographer Nets," though there exist scalability and DoSability concerns.