Mike Gerwitz's GNU Social Instance
  • Login
  • Public

    • Groups
    • Recent tags

Conversation

Notices

  1. Mike Gerwitz (mikegerwitz)'s status on Sunday, 09-Apr-2017 06:02:56 UTC Mike Gerwitz Mike Gerwitz
    And while we're on the topic of #PGPday: I wish PGP were integrated into sites/services. Any time I post on sites like HN, Reddit, or even my own GNU Social instance, I don't assert my identity like I do with every e-mail I send. I could, but people would get rather annoyed with a lengthy hash and delimiters in each message. I was starting to maintain a separate repo at one point with copies of my messages, signed, but that was too much work.

    So you can't really trust the authenticity of any message anywhere online except mail. Nothing's to stop HN/Reddit admins (or crackers) from pretending to be me or modifying my messages. Or forging messages from me on other GNU Social instances.

    And even if you _do_ include a signature, the site might format the message differently than how you typed it (e.g. normalizing whitespace, formatting syntax), so when a user goes to manually verify it by copying the text in their browser, they may get a failure on a message that is otherwise valid.
    about a year ago from web permalink
    • Mike Gerwitz (mikegerwitz)'s status on Sunday, 09-Apr-2017 06:05:23 UTC Mike Gerwitz Mike Gerwitz
      in reply to
      And to clarify: having the site itself verify the message using a public key the user uploaded to a server is also half-useless---if the server is compromised or if the connection is MitM'd, you could be tricked. I'd argue that it might even be _worse_ than not doing signature verification, since it would provide a false sense of security.

      So this would need collaboration with browser authors.
      about a year ago permalink
    • Maiyannah Bishop (maiyannah)'s status on Sunday, 09-Apr-2017 06:07:50 UTC Maiyannah Bishop Maiyannah Bishop
      in reply to
      @mikegerwitz For what it's worth, cryptographic signing of messages is something I eventually want to add to my GNU social fork, postActiv.
      about a year ago permalink
      Mike Gerwitz and Linux Walt (@lnxw48a1) like this.
    • Maiyannah Bishop (maiyannah)'s status on Sunday, 09-Apr-2017 06:14:56 UTC Maiyannah Bishop Maiyannah Bishop
      in reply to
      • Maiyannah Bishop
      • Verius
      @mikegerwitz Fellow dev @verius and I have gone back and forth a few times on how to implement it.  The implementation details is where the hangup has been, since we would want it to degrade well on other instances or software that don't have the functionality.
      about a year ago permalink
    • Mike Gerwitz (mikegerwitz)'s status on Sunday, 09-Apr-2017 06:21:41 UTC Mike Gerwitz Mike Gerwitz
      in reply to
      • Maiyannah Bishop
      @maiyannah It'd be nice if it could be incorporated into a W3C standard---a way to provide a signature on the content of some HTML element, that the browser could then verify using the user's keyring. If it were added as an e.g. data attribute and implemented by plugins in the meantime (perhaps using something similar to the SRI syntax), it'd be backwards-compatible with HTML5 and wouldn't be rendered by the browser.

      ...would be nice, anyway. As long as the web page did not have an API to access any information about this system; otherwise they could query the user's keyring by trying various signatures and checking for their validity.
      about a year ago permalink
    • Hazukashii (moonman)'s status on Sunday, 09-Apr-2017 06:22:54 UTC Hazukashii Hazukashii
      in reply to
      @mikegerwitz This is definitely a consideration. One thing I would note is that GS has two canonical fields, a plaintext one and an html one, and the html one goes through an html cleanser to remove certain tags, attributes, etc. also unfortunately different servers may do their own processing (not least of which is plugins, my greentext plugin modifies the HTML.) Submitting content would have to either have a two-step process of submitting a post, then getting back the canonical representation so it could be signed, or making the the server's preferred canonicalization a publicly accessible spec so clients could conform before submitting. Likewise, servers, including remote ones, would have to have a way to regurgitate the canonical version of a notice so that clients could independently verify.

      Some of us have had some discussion on this. I'm of the opinion that a simple elliptical curve sig with keys that don't implement web of trust, ala OpenBSD's "signify" tool for signing releases. But I'm still open to PGP. Just the default key created these days in enigmail is a 4096-bit RSA key, which has a lot of overhead. Then again, it's just text.
      about a year ago permalink
      Mike Gerwitz likes this.
    • Maiyannah Bishop (maiyannah)'s status on Sunday, 09-Apr-2017 06:24:02 UTC Maiyannah Bishop Maiyannah Bishop
      in reply to
      @mikegerwitz Yeah, unfortunately the W3C seems more interested in pushing digital handcuffs onto the web than they are in improving the protocols and security in means like this.  

      The thought I've had is maybe some microcode in the notice but I'm not sure there isn't an easy way to do that without increase the overhead of the message significantly.  We could maybe use magic envelopes for something like this.  I am unsure though.  I actually don't have a lot of experience in cryptology programming so I'm uncertain what would be best here.
      about a year ago permalink
      dewoo~ likes this.
    • Mike Gerwitz (mikegerwitz)'s status on Sunday, 09-Apr-2017 06:26:04 UTC Mike Gerwitz Mike Gerwitz
      in reply to
      • Maiyannah Bishop
      • Verius
      @maiyannah @verius unfortunately I know virtually nothing about the protocol to provide any advice. Despite what I said above, server-side signature verification is much less of a problem for self-hosted instances (I could trust the keyring on my server, but not someone else's), so I could still see use for something like that in federated protocols. A user could decide whether or not to trust the keyring of instance they're using, especially if the instance provided a way to manually verify it (e.g. copying the raw signed message).
      about a year ago permalink
    • Bob Mottram (bob)'s status on Sunday, 09-Apr-2017 06:27:27 UTC Bob Mottram Bob Mottram
      in reply to
      @mikegerwitz trying to retrofit security onto gnusocial I think would be a mistake. Instead if folks want DMs or verified posts they should use existing secure apps which have been well tested. gnusocial should merely make it easy to look up your direct communication address. GPG key, Tox ID, xmpp, etc.
      about a year ago permalink
      pettter ✅ and shp like this.
    • Maiyannah Bishop (maiyannah)'s status on Sunday, 09-Apr-2017 06:27:40 UTC Maiyannah Bishop Maiyannah Bishop
      in reply to
      @mikegerwitz Perhaps the server could act something like a PGP keyserver, and then individuals could verify keys on that server and load it into a keyring.  I'd have to give it some thought and would want to consult people who better know the domain than I do before I implement something.  It's something I do want to do though, it would be a good addition to the software.
      about a year ago permalink
    • Mike Gerwitz (mikegerwitz)'s status on Sunday, 09-Apr-2017 06:37:07 UTC Mike Gerwitz Mike Gerwitz
      in reply to
      • Hazukashii
      @moonman A web of trust would be essential to me (and others among us that go through the trouble of meeting up for keysigning) to verify someone's identity; signify wouldn't do that.

      While EC does result in significantly smaller keys (and signatures), not all systems support them. My Nitrokey, for example, uses RSA.
      about a year ago permalink
    • Hazukashii (moonman)'s status on Sunday, 09-Apr-2017 06:38:23 UTC Hazukashii Hazukashii
      in reply to
      @mikegerwitz I wish browsers had good integration for things like PGP sticks. Mozilla had a thing with browserid going for a while, but it was still really, really clunky.
      about a year ago permalink
    • Mike Gerwitz (mikegerwitz)'s status on Sunday, 09-Apr-2017 06:41:11 UTC Mike Gerwitz Mike Gerwitz
      in reply to
      • Bob Mottram
      • Maiyannah Bishop
      @bob I'm suggesting retrofitting PGP into the entire Web, not GNU Social specifically; though that's what @maiyannah was referring to. I want to be able to assert my identity anywhere on the Web, where other people are looking; the fact that I am having this problem at all shows that I'm communicating a lot with people through unsecured channels.

      @maiyannah If the user's browser isn't doing the signature verification using their own keyring, then the server would have to do it using it's own keyring (e.g. how GitHub is doing it today). But I can't trust what GitHub says: they could be malicious, they could be compromised, or the user's account could be compromised and someone could upload their own GPG key to that user's account.
      about a year ago permalink
      Bob Mottram likes this.
    • Mike Gerwitz (mikegerwitz)'s status on Sunday, 09-Apr-2017 06:44:53 UTC Mike Gerwitz Mike Gerwitz
      in reply to
      • Maiyannah Bishop
      @maiyannah unless you meant that the user would do the verification client-side using the server's keyring. Which would be essentially the same as the server doing it---while Mallory wouldn't be able to MitM the output form the verification (since it doesn't exist), he could MitM the keyserver request or replace the actual signature on the served request, or both. Relying on the server in any way relies on TLS to securely deliver the communication, which relies on a _second_ PKI, which has a host of problems.
      about a year ago permalink
    • Maiyannah Bishop (maiyannah)'s status on Sunday, 09-Apr-2017 06:46:52 UTC Maiyannah Bishop Maiyannah Bishop
      in reply to
      @mikegerwitz Right, these are all concerns I share, and why I would want to solicit opinions from the crypto/security community that would probably have ideas on how to overcome these problems.  It isn't something I have an immediately-evident answer to.
      about a year ago permalink
    • m0n5t3r (m0n5t3r)'s status on Sunday, 09-Apr-2017 06:54:39 UTC m0n5t3r m0n5t3r
      in reply to
      • Maiyannah Bishop
      @maiyannah the verification part is easy, just fetch the user's public key from a public keyserver and do it (or have the user upload the public key in the first place); the signing part is the one that will give you headaches, because storing users' private keys on the server is a no-no, it makes you a big fat target for lots of people

      Maybe something like https://addons.mozilla.org/en-US/firefox/addon/webpg-firefox/ could work? (never used it, found it now)

      @mikegerwitz
      about a year ago permalink
      Mike Gerwitz and Maiyannah Bishop like this.
    • Mike Gerwitz (mikegerwitz)'s status on Sunday, 09-Apr-2017 07:03:31 UTC Mike Gerwitz Mike Gerwitz
      in reply to
      • m0n5t3r
      @m0n5t3r Oh, interesting, I'll have to look into that addon. Using GPGME is the approach I would have hoped would be possible with an addon.

      With regards to auto-fetching from a keyserver: if it's done on-demand, that'll effectively treat the signature as a checksum, in the sense that it will verify that the message has not been tampered with, but it won't necessarily assert the identity of the author. Unless it's persisted, e.g. TOFU model, then it'd be like the user uploading it, if they happen to post more than once.
      about a year ago permalink
      m0n5t3r likes this.
    • Verius (verius)'s status on Sunday, 09-Apr-2017 08:51:46 UTC Verius Verius
      in reply to
      • Maiyannah Bishop
      @mikegerwitz @maiyannah In general the problem is not so much server validation vs client validation, once there's a mechanism for signing messages it's not all that difficult to have both.

      The details where the devil is at is how to sign messages in such a way that all the information we want signed is signed but we don't impose undue restrictions on servers regarding how to handle messages.
      about a year ago permalink
    • Maiyannah Bishop (maiyannah)'s status on Sunday, 09-Apr-2017 08:53:20 UTC Maiyannah Bishop Maiyannah Bishop
      in reply to
      • Verius
      @verius @mikegerwitz Yeah as I noted earlier in the thread the real devil in the details here is not having it break servers which do not implement signing and having it degrade gracefully.
      about a year ago permalink

Feeds

  • Activity Streams
  • RSS 2.0
  • Atom
  • Help
  • About
  • FAQ
  • TOS
  • Privacy
  • Source
  • Version
  • Contact

Mike Gerwitz's GNU Social Instance is a social network, courtesy of Mike Gerwitz. It runs on GNU social, version 1.2.0-beta4, available under the GNU Affero General Public License.

Creative Commons Attribution-ShareAlike 3.0 Unported All Mike Gerwitz's GNU Social Instance content and data are available under the Creative Commons Attribution-ShareAlike 3.0 Unported license.

Switch to mobile site layout.