Hacker News new | ask | show | jobs
by bscphil 2362 days ago
This is great, it fills a gap that I've long defended as PGP's remaining legitimate use case. Of course, now we just need to work on the adoption problem. Despite the fact that PGP adoption is a well-known joke in itself, all the tools designed to replace it (with the exception of the IM space) have somehow managed to achieve even lower use rates.

It's been almost five years since Magic Wormhole first released, and about half a year since that popular Latacora post recommended it for transferring files, and said "Someone stick a Windows installer on a Go or Rust implementation of Magic Wormhole right away". Guess what you're still not going to find a reliable Windows build (let alone a GUI) for? Yep that's right. Despite the fact that most of these projects come from a felt need for better alternatives to PGP for the average user, very few of them have actually come up with a product that's more accessible to the average person.

6 comments

> about half a year since that popular Latacora post recommended it for transferring files, and said "Someone stick a Windows installer on a Go or Rust implementation of Magic Wormhole right away".

I read this and then went and ported wormhole to Go: https://github.com/psanford/wormhole-william. There's no Windows installer but it's pure Go so building on Windows or cross compiling for Windows is easy. Besides Windows I also want to support iOS and Android (I have a very rough working react native frontend right now).

FWIW I'd be much more comfortable recommending Magic Wormhole if the default was tweaked to give bad guys only say 1-in-2^32 or worse chance of success.

It's roughly the same reasoning as for your Windows GUI argument. This tool is now very suitable for people who understand what it does, but it is not yet well adjusted for users who lack that understanding.

Today - when most Magic Wormhole users can probably explain what a PAKE is - if you attack a Magic Wormhole transfer and cause errors (by guessing wrong) those users will react by increasing the length of the Wormhole code. But if we popularize it without fixing this default, do you think my sister knows to do that?

But in a certain way this thinks are aspects of the magic wormhole CLI not the underlying tech.

It should be trivial to increase security on failed attempts or use a higher default security for an GUI frontend.

The CLI is clearly meant for somewhat technical versatile users (I mean it's a CLI) so I think it's normal to do some aprons when targeting other user groups. E.g. adding explanations over some aspects atonal to the thinks I already mentioned is quite doable for a GUI.

There is now a solid Go implementation of `wormhole` (it's my daily wormhole driver). It works on Windows. It just needs a UI.

Since PGP has almost no serious real-world adoption (search your feelings; you know it to be true), it's wide open for replacement. People should use `wormhole` for file transfer in preference to `age`-encrypted files, if the only reason they're encrypting is to get the file safely across the wires.

> it's wide open for replacement.

Totally agree there, but I'll remain skeptical until I actually see that adoption start to happen. Certainly it's not going to until there's a nice GUI. (It's kind of sad, actually. Wormhole has such a nice TUI that would be utterly trivial to wrap in a simple QT interface or something.)

Right? RIGHT? I keep saying: everyone I've ever taught `wormhole` to does the same thing I did when 'lvh showed it to me: immediately and gleefully wormholing everything. It's such a great tool; the good people of the world deserve it.

It kills me that so many UI-type people build new encrypted email systems and nobody works on putting solid UI on cool-kid crypto like `wormhole`. It's such a high-impact project and it's missing exactly the skillset these people are strongest with. I mean that sincerely: as I think is obvious to everyone, crypto people can't do UI to save their lives.

Do programs exist that generate the most basic portable GUI (in Qt for example) from command line application?

Basically what you need is list of parameters, their types, allowed ranges, preferred way to modify and input parameter values (file selection, input box, slider, ...). Then button to run the program.

EDIT apparently there is https://github.com/chriskiehl/Gooey for Python.

EDIT2 Hmm. maybe fbs is good enough https://build-system.fman.io/

One can literally use a drop-in replacement for argparse like Gooey[1] to get a reasonably good GUI for the Python implementation.

IMO the challenge is mobile clients for iOS and Android.

[1] https://github.com/chriskiehl/Gooey

What operating systems Gooey supports? Weird that they don't mention that anywhere. Is it only win and osx?
It’s based on wxWidgets so I assume it’s supported (at least roughly) wherever wxWidgets is supported. However, I’ve only used it to package a few small utilities for friends, and neither myself nor any of them run Linux Desktop, so I can’t be sure.
Flutter desktop can help here.
Since PGP has almost no serious real-world adoption (search your feelings; you know it to be true)

Checks...it's not true. Maybe the original email use case never caught on, but that's not the only one. For example, PGP is a standard way to transfer Visa, MasterCard, or Diner's Club credit card transaction files. We have thousands if not tens of thousands of entities transferring PGP encrypted files every day, and we get new requests for PGP enablement on a regular basis. This is a deeply embedded business process (even embedded in many corporate financial systems like Oracle Financials), and it's not going away any time soon.

Other use cases...yeah, PGP should go away.

Not only should PGP go away for that use case, but it easily could; very few people would need to be convinced to upgrade it to a better format. What's held that back from happening is nobody agreeing on what that better format is; it's the same reason we're only now getting WireGuard after almost 2 decades of IPSEC VPNs.
Not only should PGP go away for that use case, but it easily could

Says someone who has never had to do it.

very few people would need to be convinced to upgrade it to a better format

Only the tens of thousands of current users who I personally have who would see no reason to change something that currently works and is secure. I have, in fact, suggested a number of better solutions over the years.

Hell...it took us 10 years to convince all the third parties that plain FTP was probably a bad idea. And there's still a tiny handful of very, very large companies that still say 'meh' and force us to keep an FTP server around.

Must be nice to not have to deal with real customers.

Is there someone you know with a similar name to mine that you think you're talking to? The kinds of issues you're talking about are my actual full-time job.
Oh, my...don't you know who I am?. Classy. I guess my aversion to being Internet Famous makes me easy to condescend to.

My "actual full-time job" is building and operating security teams for Fortune 1000 sized companies, not startups. These kinds of issues are also what I do every day. I just do it with far more customers, internal stake holders, budget, technical debt, politics, employees, governance, geography, etc., etc. And I actually do those hard things; I don't just say "you should do this...it should be easy".

Consider that just maybe your perspective doesn't represent the totality of the security landscape. Things that are easy when you're consulting to the latest Foo of Bar startup or whatever is spooling out cat videos this week are very, very hard when you're dealing with entrenched, interconnected business processes processing billions of dollars of other peoples money. Just a thought.

I assume the go wormhole implementation you are talking about is https://github.com/psanford/wormhole-william . I've been working on building a mobile interface for it. After that I may look at doing a Windows UI.
Does the security of using magic wormholes depend on using a trusted relay? Should I be running my own relay?
The security doesn't, but availability might: the relay is very easy to DoS (not even DDoS!). This is the one thing that I think Thomas has jumped the gun on with his recommendation: the current protocol and infrastructure won't survive a DoS attack, which is tragically likely if magic-wormhole's popularity increases. Brian Warner is aware of this and has written about it.

https://github.com/warner/magic-wormhole/blob/master/docs/at...

https://github.com/warner/magic-wormhole/issues/107

https://github.com/warner/magic-wormhole/issues/150

I noticed the same issue as Joey Hess, except a couple of years later; then when I was giving a magic-wormhole demo, some of the audience members accidentally broke some of my live transfers in various ways.

(Otherwise, I feel just as gleeful as Thomas does. It's an awesome tool and fun to use!)

Isn't this basically what syncthing is (same functionality as wormhole, with gui)?

I also thought I've used a gui dat protocol client to transfer files but maybe it was only in the terminal.

Which is the Go implementation that you recommend? There seems to be a few.
> It just needs a UI.

Would you consider an Electron app adequate? ;)

200MB binary consuming 300MB of memory and 1% CPU at idle, hell no...
I asked the guy who wrote "JavaScript Cryptography Considered Harmful" if a JS app would be adequate followed by a winky face.

The /s was implied.

The document that says right at the start that it's only talking about browser Javascript crypto, and not standalone?

Not that the crypto itself would be handled by Javascript in an Electron app in the first place...

Yeah I did see the sarcasm.
Seriously I'm just fine with Electron applications. It's 2019, and that only for a couple more days. We have RAM, this is a good thing to burn it for.
2 billion individuals on this planet are unable to afford a shiny new computer.

"I don't mind about resource usage" is a proxy for "I don't care about those people"

Also, many devices do not allow RAM upgrades.

If I wanted to "burn" my RAM I would have just bought less.
That's missing the point. $2 of RAM in exchange for security is a good deal. Go ahead and use the command line version yourself, but if you're not going to contribute to a native GUI version then don't be a party pooper about Electron.

Electron's only a problem when there's lock-in of some kind.

I think that people who say this think "yeah, running one Electron app is no problem". The problem comes when everything is Electron and now, like the ocean, you have no memory.
Nope. Many laptops can not have more than 16GB. And you have to pay hundreds of dollars even for that privilege in many situations.

An electron app will hurt adoption, give the project a bad name and reduce the likelihood of a proper UI to never materialize. Please don't.

> $2 of RAM in exchange for security is a good deal.

1. I don’t know what RAM you’re buying, but mine costs way more than that. It’s especially bad if you’re using AMD.

2. How does using electron apps make me more secure than using native apps?

If only it was $2 of RAM...

> in exchange for security

Electron is not famous for its security. See for example https://www.trustwave.com/en-us/resources/blogs/spiderlabs-b... and https://securityboulevard.com/2018/06/june-vulnerability-of-...

How about flutter for desktop?
https://github.com/schollz/croc is written in Go, doesn’t need an installer and has worked reasonably well for me on Windows.
croc does not interop with magic-wormhole but tries to accomplish the same thing.

I made croc because it was really hard to install wormhole on Windows (especially for my non-dev friends). Also I wanted croc to support resuming transfers which has been stalled in wormhole for awhile now. [1]

[1]: https://github.com/warner/magic-wormhole/issues/88

Why doesn't croc use magic-wormhole's protocol ? Obviously its selling point is in the ease of installation, performance and portability, it's too bad that in doing those the compatibility is lost.
There's also https://github.com/psanford/wormhole-william. It's written in Go, doesn't need an installer and is compatible with the official wormhole client.
It does need binaries, though.
Fair. I'll get those added.
I published binaries for the latest release: https://github.com/psanford/wormhole-william/releases/tag/v1...
So how do I send an email securely without PGP? I've never been aware of any real alternative. The problem is just that people don't care enough to use it.
You don’t. But you don’t with PGP either: bad crypto primitive defaults, no header protection including From or Subject or Reply-to, bad typical UI showing up authenticated text/plain in with authenticated parts.

The case where I still use PGP is receiving reports of bugs from unaffiliated researchers, and I should replace it with a form on an HTTPS web site.

>no header protection including From or Subject or Reply-to

This is email, not IM we are talking about. There is no good way to do that without a lot of added complexity and hassle once the email ends up in your archive.

>bad crypto primitive defaults

If you mean forward secrecy then see the proceeding comment.

Its not forward secrecy. Its literally that the default ciphers and modes for PGP are a mess and it is so configurable that it is full of footguns.
I'm missing the email header issues, unless I'm trusting PGP public keys without any thought. If someone forges an email to me, has a PGP encrypted message in it, it doesn't validly decrypt unless my crypto discipline is already so lax I'm going to have issues with any system.
Why is the problem with pgp? Everybody agrees? But why? It's secure and versatile?
PGP is secure and versatile. It's also somewhat dated and GPG is quite an awful implementation to interact with. It barely composes with anything that wants to abstract it's insane UI into something an average user understands. It has dated defaults and supports outdated cryptography, while GPG has very dated UI and refuses to properly support bindings so applications can safely interact with it.