18 ms·
Magic-Wormhole – Get things from one computer to another, safely
- dang 9y agoDiscussed in 2015: https://news.ycombinator.com/item?id=9953767 https://news.ycombinator.com/item?id=9953767.
- grizzles 9y agoCool. Does the data transit the server, or does it do NAT / UPNP type stuff for direct comms after the initial rendezvous?
- lotharrr 9y agoThe two sides exchange IP addresses (inside the encrypted channel), and try to connect to all of them. If that fails to produce a successful handshake, they fall back to a "Transit Relay Server" that I run. So they'll manage a direct connection if one of the machines has a public IP address, or if they're both on the same LAN. I'm hoping to add NAT/UPnP support, but it's not there yet.. still looking for an easy library with Python support.
- falcolas 9y agoWhat happens when your transit server's bandwidth bill gets out of hand because someone is transferring a few TB of data to their backup host? (see article a few days back about someone griping about their 13 TB backups on Backblaze if you aren't sure this is a real thing)
- grizzles 9y agoHe will probably shut it down. The server is in the source code.
- deleted 9y ago[deleted]
- lotharrr 9y agoIt'll probably just break for the remainder of that month. I'm hosting that transit server on Linode, and I think (does anyone know for sure?) that their policy is to just turn off the interface if you go over your monthly allowance, which is like 4TB or 6TB on that instance. Eventually I'm planning to have the client ask the transit server ahead of time for the size it intends to use, and the server can tell them to go away or make a donation or something. "wormhole --transit-helper=tcp:HOST:PORT send" is how you can use a different server: the sender will tell the receiver about it in-band, so the receiver doesn't need to do anything special. The receiver accepts that argument too.
- devindotcom 9y agoNice, this looks useful and extensible! I popped it up on TC, I like the idea of transferring files wizard-style. http://techcrunch.com/2017/06/27/magic-wormhole-is-a-clever-way-to-send-files-easily-and-securely/ http://techcrunch.com/2017/06/27/magic-wormhole-is-a-clever-...
- dak1 9y agoHow does this compare to AirDrop (besides obviously being cross platform)?
- benzinschleuder 9y agoIt operates over the Internet instead of Wi-Fi / Bluetooth and it initializes transfers by a code.
- lotharrr 9y agoAirDrop: waaaay better UI, awesome animated drag-and-drop, dead-simple to use, works offline. Not so strong at clearly identifying who the file came from or is going to. Not clear what sort of integrity/confidentiality properties you get (probably better than nothing, knowing Apple, but since the send-to-which-device picker UI shows their self-selected names, there's not any obvious way to distinguish between the real "Alice's iPhone" sitting next to you and the attacker who's within bluetooth range. Magic-Wormhole: CLI only (so far), no OS integration anywhere, better security properties. Also it's got a spiffy wizard-hat logo (thanks Katie!).
- deleted 9y ago[deleted]
- the_cat_kittles 9y agothe motivations are great: "Moving a file to a friend's machine, when the humans can speak to each other (directly) but the computers cannot Delivering a properly-random password to a new user via the phone Supplying an SSH public key for future login use" i had never even thought about those, and this is a great solution afaik
- pmontra 9y ago> Supplying an SSH public key for future login use It's public so it can be emailed in cleartext to the admin of the server, copied in any instant messenger or painted on walls. It's the secret key that ensures all the security of the connection.
- vbernat 9y agoIt still needs to be authenticated. It could be replaced by an attacker public key.
- pferde 9y agoThis is a scenario where "the humans can speak to each other (directly) but the computers cannot". Key authenticity is not a problem, the other party can verify that the fingerprint is correct.
- Piskvorrr 9y agoTrue, but have you actually tried to verify even a short SSH pubkey over a human communication channel? It can be done, but the horrible, horrible UX!
- jedisct1 9y agoAlso, Piknik: https://github.com/jedisct1/piknik https://github.com/jedisct1/piknik
- schoen 9y agoThis reminds me of the great tool http://www.fefe.de/ncp/ http://www.fefe.de/ncp/, which seems like the same thing only without the cryptographic authentication!
- lima 9y agoWhy the downvotes? ncp is really useful for hacker space like environments.
- lotharrr 9y agoNifty.. I'll look at the network side of that, maybe we can steal some ideas. At the moment magic-wormhole depends upon one of: * at least one side has a public IP address * both sides are on the same (private) LAN * a TURN-like "Transit Relay" server that I run That transit server hasn't gotten a worrysome amount of traffic yet, but it's a potential scaling problem. (Fortunately the two sides can offer their own transit servers, and they negotiate the one to use, so it's also not a difficult scaling problem to address). In the long run I'm hoping to get some NAT-hole-punching tools, maybe WebRTC, to reduce the need for the transit relay somewhat. Also in the long run, if both sides are using Tor, then one of then can run an onion service, which gets you the NAT-punching for free.
- schoen 9y agoIf I remember correctly, ncp only works on LANs (using local segment broadcast), so it doesn't require either side to have any Internet connectivity at all. Your approach would be a lot more flexible, but I bet people would also appreciate it if you could figure out a LAN-only mode -- for better privacy, and when the Internet connection is down. Maybe you could start with an ncp-style segment broadcast and then fall back to the transit relay server if nothing on the segment answers and begins negotiation?
- lotharrr 9y agoYeah, also the two sides can exchange (encrypted) notes about their apparent network environment (including their public IP address, as reported by the rendezvous server), which might give them a clue that they're on the same LAN. Also see https://github.com/warner/magic-wormhole/issues/48 https://github.com/warner/magic-wormhole/issues/48 for some discussion about making things work when you're connected to each other but not to the internet, e.g. an ad-hoc wifi network. It doesn't work at all now, but it totally should.
- llamataboot 9y agoWaiting for the security nits, but this looks awesome and I have use cases for it every week
- canada_dry 9y agoDitto. This would be very useful if it were available on all platforms (Android, OIS, Rpi)!
- astrodust 9y agoExtending this to a small text-based GUI with chat could make it a lot more useful, too. Sort of like a person-to-person BBS.
- foota 9y agoHow is the 16 bit wormhole code secure against brute force?
- meejah 9y agoAny attacker only gets a single guess
- 0x0 9y agoWhat if there are 65535 active send requests? Perhaps of which 65534 are opened by an attacker?
- tbodt 9y agoupvote, upvote, upvote, upvote, upvote
- meejah 9y agoThe attacker still just gets 1 guess per wormhole / send request. Each send-request / wormhole is its own separate thing.
- 0x0 9y agoI'm still unclear on a couple of things. How do you even know which send request the attacker attempted to attack if only the codeword identifies the send request, and the codeword was wrong? Also, what stops an attacker from trying again - alternatively, what stops an attacker from doing a denial-of-service by purposefully guessing the wrong codeword?
- meejah 9y agoThe codes have a small number in front; these are the requests. So if the server did allow 65k requests, each one would be a different number. You can guess once per request. Yes, an attacker can denial-of-service by guessing once on all the (possible) requests. There is some work towards stopping this sort of behavior (see e.g. https://github.com/warner/magic-wormhole/issues/126 https://github.com/warner/magic-wormhole/issues/126)
- Thespian2 9y agoTrusting the baked-in rendezvous server would seem to be the most obvious security "nit," which could be addressed by compiling and running your own server. But out-of-the-box, that would seem to be a weak-point for MitM attack.
- deleted 9y ago[deleted]
- api 9y agoA similar LAN or virtual network oriented tool: https://github.com/zerotier/toss https://github.com/zerotier/toss ... and another less magical one: http://www.fefe.de/ncp/ http://www.fefe.de/ncp/
- cestith 9y agoWhat's wrong with S/MIME? Email doesn't have to be unencrypted. Also, you only need to send the public part of an SSH key to the remote end to set up future keyed connections to that system. This seems like a solution with very narrow problems to solve.
- prophesi 9y agoOk, I'll bite. From the project page: "Copying files through email first requires transcribing an email address in the opposite direction, and is even worse for secrets, because email is unencrypted. Copying files through encrypted email requires bootstrapping a GPG key as well as an email address." And S/MIME is essentially PGP/GPG, except you bootstrap the key from a central Certificate Authority. So yes, it's still a hassle. As for SSH, how would /you/ place the public key on /their/ remote end? That's a bit of a chicken and the egg problem right there, don't you think?
- cestith 9y agoSince it's a public key, how about via unencrypted email?
- prophesi 9y agoEven then, the email would need to be signed and verified to ensure the key wasn't modified. You wouldn't want an attacker replacing it with their own public key.
- cestith 9y agoBut you would want tab completion of the shared secret so all an attacker needs is to guess the first character? Why not email the ssh public key in plaintext and verify the md5sum, sha1sum, fingerprint, and / or first and last X characters of the key itself over the phone? ... or... Why not just put the public key on a web server with SSL and a free cert and speak the URL, then scp the payload file over? Or go ahead and get the free S/MIME cert from Comodo for your email since you can sign without the other end sending a signed email first and attach the payload file itself or an ssh public key and then scp? Or use Pidgin or a similar client with the OTR plugin on any XMPP server and send the payload file in the first place? Or issue SSL keys from your own local CA and communicate the fingerprint orally? Or send the public ssh key plaintext and only allow ssh through the firewall from the IP of your friend? ... or ... allow ssh via password rather than key for a small timeframe and communicate a password out of band rather than a shared secret for this thing? ... or ... put your ssh public key on a well-known account of yours like GitHub, Facebook, HN, etc and let your friend install it from there?
- deleted 9y ago[deleted]
- nsxwolf 9y agoI would use this just to cut and paste text from my host machine to my VMs, because I've never been able to get that seemingly simple concept to work reliably.
- rplnt 9y agoI think Synergy does that as well.
- chx 9y agoI like using https://file.pizza/ https://file.pizza/ for this.
- fiatjaf 9y agofile.pizza always fails, while instant.io doesn't.
- superkuh 9y agofile.pizza requires WebRTC support so I can't use it.
- d4l3k 9y agoAlso https://instant.io/ https://instant.io/
- chx 9y agoI like this one but it becomes truly ardous to copy a magnet from one computer to the other. file.pizza at least uses easily pronounceable hashes. What I would to see from this is a JS which serves every asset on a site via webtorrent so visitors are sharing the bandwidth costs.
- pscsbs 9y agoI prefer https://www.justbeamit.com/ https://www.justbeamit.com/
- chx 9y agoOK I will try to remember this one, it's neat, "dba9q" is not too horrible, a plane ticket PNR is worse.
- curtis 9y ago> The receiving side offers tab-completion on the codewords... Nice.
- ohhhlol 9y ago> The wormhole library requires a "Rendezvous Server": a simple WebSocket-based relay that delivers messages from one client to another. This allows the wormhole codes to omit IP addresses and port numbers. The URL of a public server is baked into the library for use as a default, and will be freely available until volume or abuse makes it infeasible to support. why not make use of https://docs.syncthing.net/users/strelaysrv.html https://docs.syncthing.net/users/strelaysrv.html ? lots of servers http://relays.syncthing.net/ http://relays.syncthing.net/
- lotharrr 9y agoInteresting.. I'll take a look at it. My first thought is that magic-wormhole needs a canonical way to allocate "nameplates" (the numeric channel identifier at the start of the wormhole code), and that's tricky to do in a DHT (I'm assuming syncthing's relay server behaves like a DHT). We've got a ticket open (https://github.com/warner/magic-wormhole/issues/72 https://github.com/warner/magic-wormhole/issues/72) about distributing this rendezvous server.. I'll add a note to check out syncthing.
- ohhhlol 9y agosee also- https://docs.syncthing.net/specs/relay-v1.html https://docs.syncthing.net/specs/relay-v1.html
- hiq 9y agoWhy would I use magic worm-hole instead of Syncthing or Signal? They are both user-friendly and easy to install for the person I want to send the file to. The only shortcomings I can imagine: _AFAIR Signal has a size limit on the file you can send _you need a phone number and a smartphone to use Signal _The Synching key you have to share is complicated, but sending it via email and making sure you add the hosts quickly on both sides would provide enough security guarantees for most people. If you have a secure messenger then you can simply share the key through this channel. And overall I find it easier to explain how to 1) install Signal 2) install Syncthing and share the keys rather than install magic-wormhole and use some passphrase.
- allworknoplay 9y agoThe security model here is pretty great assuming you trust the rendezvous server. Maybe consider an optional challenge/response prompt (like when your pal enters the prompt code, their client generates a second code that they give back to you) to make sure nobody's intercepted the request before them, odds aside (if someone got your initial code somehow, they could definitely man in the middle the request otherwise).
- deleted 9y ago[deleted]
- lotharrr 9y agoIf I did things right, the rendezvous server shouldn't get any advantage over a network attacker: one guess per invocation of the program, 1-out-of-65536 chance of getting it right, 65535-out-of-65536 chance of giving you a WrongPasswordError. FWIW, there's also a --verify option, which causes the program to print out a hex hash of the session key, and wait for you to approve it before sending anything. Not as ergonomic, but it removes the MitM threat pretty effectively.
- benzinschleuder 9y agoDoes the session key hash help if the attacker guessed the code correctly?
- lotharrr 9y agoYup, it still does. In the face of a lucky-guessing attacker, PAKE basically degenerates down into plain unauthenticated Diffie-Hellman, which means Alice-Mallory has one key, and Mallory-Bob has a different key. Mallory could decrypt the messages from Alice and then reencrypt them for Bob, but Alice and Bob will still both see different keys. If they have some out-of-band means to compare those keys (which Mallory can't corrupt), then they can detect the attack.
- benzinschleuder 9y ago
- dexzod 9y agoInteresting. Would it be possible to use it on Android and IOS?
- daxorid 9y agoSo, basically, scp (with a 16-bit session key that has to be exchanged oob)?
- tonyhb 9y agoor, like, netcat? `nc -l -p 8888 > foo` to listen, `nc 10.10.10.1 8888 < tail -500 /dev/random` to send. Still cool though :)
- lotharrr 9y agoyup, except with netcat: * the network-side attacker gets to see and modify all your data * the receiver must have a public IP address * the receiver must tell something to the sender, which is the opposite of the direction the data will flow * you have to transcribe your IP address and port number to the other person, which I always get wrong (so many meaningless numbers!) * you don't get much confirmation that all the data arrived, or that it arrived accurately The wormhole code uses a wordlist that was carefully designed (not by me.. I'm using the PGP wordlist, as used by PGPfone and Zfone) for accurate spoken transcription in noisy environments. So it's more likely that they'll type in the right thing.
- tonyhb 9y agoThat's awesome :)
- lotharrr 9y agoYeah, if you've already gotten a public key set up (and an account on the target machine), then scp is much easier and completely secure. magic-wormhole is more aimed at situations where you don't yet have that pubkey copied over. Or where your receipient doesn't want to give you an entire account just to receive a single file. In fact there's a mode (kinda experimental right now) to use magic-wormhole to transfer an ssh pubkey into the ~/.ssh/authorized_keys on a new account. Ideally your site admin should be able to give you access to a new machine with a wormhole code, instead of having you email them a pubkey.
- bhenc 9y ago> Copying files with ssh/scp is fine, but requires previous arrangements and an account on the target machine, and how do you bootstrap the account?~ Assuming that you have openssh and rssh installed, you bootstrap like this: useradd -m -g users -s /usr/bin/rssh tmp passwd tmp edit /etc/rssh.conf and uncomment allowscp Share the password with the party you want to exchange data with. Make sure your ports are open. See: https://serverfault.com/questions/197545/can-non-login-accounts-in-linux-make-scp-connections/197546 https://serverfault.com/questions/197545/can-non-login-accou... The use case I see for wormhole is if you're working purely in the python ecosystem. That's it. You're free to disagree of course, but I prefer ssh, since it's peer-to-peer end-to-end encrypted, and extends to cover other use cases much more easily (rsync, VNC, etc.).
- mschuster91 9y agoWhen both parties are in a corp network (eg across companies) you would need a server anyway. Many either offer a FTP server or have switched to Accellion (which is kinda cr.p, and full of security holes)... so this is a nice, fast and secure alternative.
- dmd 9y ago> you bootstrap like this Ah, yes. oh come on please it's easy just /etc/init.apt-get/frob-set-conf --arc=0 - +/lib/syn.${SETDCONPATH}.so.4.2 even my grandma can do that
- deleted 9y ago[deleted]
- mcrmonkey 9y agoThere are some handy docker images for this over on the docker hub if you want to try them and dont have/want the needed python setup but just happen to have docker installed
- abhinai 9y agoInteresting. How does this compare to WebRTC based peer-to-peer file transfer like perhaps https://simplewebrtc.com/filetransfer https://simplewebrtc.com/filetransfer as an example?
- hossbeast 9y ago> The wormhole library requires a "Rendezvous Server": a simple WebSocket-based relay that delivers messages from one client to another.
- bob1029 9y agoI would highly recommend looking into this (seemingly-obscure) technique for NAT hole punching: https://samy.pl/pwnat/ https://samy.pl/pwnat/ It would allow for a "magic wormhole"-style system without the need for a MITM (trusted or otherwise).
- voltagex_ 9y agoHow likely is it that something like that trick makes IDS go crazy?
- bob1029 9y agoProbably moderate with this specific technique, but I imagine you could use some simpler method where each end of the transfer is willing to share their public IP. This would reduce the problem to UDP hole punching/scanning across some pre-defined port range and then running whatever traffic you need through that pipe. I feel like this would look less "suspicious" to an IDS than crafting odd-looking ICMP packets.
- Animats 9y agoThat's cute. But will it work if you have two sessions behind the same NAT trying to use it?
- huhtenberg 9y agoBoth pwnat and chownat are very clever techniques, but I have massive doubts they work _well_ in practice, when exposed to hundreds (or even dozens) of popular NAT devices and network configurations. Vast majority of NAT boxes change the source port on outbound packets even if a respective externally-facing port is not yet allocated. Anything that's BSD derived will randomize the port, lots and lots of others will +1 the port for each new session, thirds will +2 the port, etc. There's also egress filtering, intrusion detection systems and NAT devices that do things that make little sense such as remapping ID field in the IP header, presumably for security reasons. Also, depending on the OS, this will need root privileges to craft fake ICMP packets. All in all, pwnat/chownat are essentially very cool "tech demos" that can't be realistically used just on their own and require a conventional rendezvous server as a fallback.
- etanol 9y ago> Copying files onto a USB stick requires physical proximity, and is uncomfortable for transferring long-term secrets because flash memory is hard to erase. Copying files with ssh/scp is fine, but requires previous arrangements and an account on the target machine, and how do you bootstrap the account? Copying files through email first requires transcribing an email address in the opposite direction I had similar motivations in 2006 to write a tool to copy files "point to point". So here's my shameless plug: https://bitbucket.org/etanol/canute https://bitbucket.org/etanol/canute In my case, cryptography was not a requirement, though.
- ReverseCold 9y agoI expected something local, like airdrop, but cross platform. (someone, please)
- miles 9y agoSounds like Dukto: http://www.msec.it/blog/?page_id=11 http://www.msec.it/blog/?page_id=11 Supports Windows (XP and up), OS X/macOS (10.6 and up), Linux (packages for Ububtu and Fedora), and Symbian. Ports available for iOS, Blackberry, and more.
- convolvatron 9y agohttps://xkcd.com/949/ https://xkcd.com/949/
- lsh 9y agoI don't know why you're getting downvoted, sharing files is still in an abysmal state. This wheel will be reinvented again.
- jpillora 9y agoSee also https://www.sharedrop.io/ https://www.sharedrop.io/ (WebRTC-based AirDrop clone)
- jbergens 9y agoThis kind of tool should probably be distributed as a binary but then it would be a bit harder to know it doesn't do anything strange. I would probably write it in go to make it easy to compile for different platforms.
- sw1sh 9y agoMore people should use Keybase, and this would be more easier within its filesystem https://keybase.io/docs/kbfs https://keybase.io/docs/kbfs
- y4mi 9y agoEh,I like the concept of kbfs and have it installed on my PC and phone, but it's not really a competitor to this. Keybase reminds me of a secure alternative to Dropbox or Google drive. You've got a quota that you can upload to their server (encrypted). While you can use it to move files between destinations, that isn't it's primary goal. And it's not a lossless storage at that, as their filesystem doesn't support all metadata . I.e. it removes any timestamps from the files.
- kyberias 9y agoMy life is so much happier with Windows. Accessing files on any computer is very easy. Wannacry and that other nasty worm prove it to the world. :)
- aluhut 9y agoDidn't catch any malware or viruses since the 90s on my Windows. Copying files with a few mouse clicks is much more comfortable and fast then this...
- interfixus 9y agoStrictly for internal networks, and no crypto in transit, but dead easy - also for grandma - and covering phones as well as the three pc platforms: Dukto. I use it all the time. http://www.msec.it/blog/?page_id=11 http://www.msec.it/blog/?page_id=11
- bitexploder 9y agoI just use socat or netcat on home networks. Pipeview for a progress meter. I am as paranoid as they come, but if someone has my small home network they already have my data :)
- nattmat 9y agoI see you guys arguing what is easier, wormhole, syncthing, ssh. I'll argue that Keybase is by far the easiest. Just but the files in /Keybase/private/person0,person2
- lotharrr 9y agoI love Keybase.. they're doing great things to bind public keys to names at large identity providers (twitter, github, etc). And in many cases, the github username of your intended recipient is the only thing you know about them anyways. magic-wormhole can help you in the case where you're sitting next to someone at a conference and they don't have a github/twitter account, or if you want don't want to depend on github/twitter/etc access control (e.g. if some bug in github allowed gists to be published under other people's usernames, that aspect of the keybase security story would fail). It might also appeal to folks who don't care for centralized identity providers. When we worked on Mozilla Persona, we tried to make it possible for individuals to run their own IdPs and "own your own identity". Keybase can sorta do that (by proving ownership of an HTTP or HTTPS URL), but magic-wormhole is "better" in the sense that it doesn't have any concept of identity at all. The file goes-to/comes-from the person who knew the same code, end of story. I'm interested in some sort of combination: maybe a confirmation step that uses a wormhole code to exchange the expected public keys with a Keybase peer, to make sure they're the same, without needing to type or read the full RSA key. (There's a protocol named SAS, "Short Authenticated Strings", that can be useful in this case).
- reacweb 9y agoWhen I want to give things, I use ssh to put it in the static part of my website in a directory with a random name, then I send the url by mail. My sftp client is already configured with ssh keys. When the things I have to send is a collection of jpeg files, I use fgallery.
- Piskvorrr 9y ago"My sftp client is already configured with ssh keys." Well, one of the use cases is "how do you get the SSH pubkeys from here to there?"
- reacweb 9y agoMy point is that everybody should have a website somewhere (my C1 at cloudscale is 3.59€ per month). Everybody should have a ftp client configured to access it without hassles.
- Piskvorrr 9y agoEverybody? That's a very brave idea. As in "non-techies are non-people," or "everybody should become a techie"? (Also, FTP is an insecure, broken, incomplete, horrible, ancient protocol that should have died in a fire 20 years ago; never mind that I may want to transfer files between two people, not hang those files out onto the web)
- deleted 9y ago[deleted]
- zimbatm 9y agoI'm surprised https://datproject.org/ https://datproject.org/ didn't come up already. It also allows you to share any data but also deals with incremental updates. The main use-case is to share big scientific datasets that update over time.
- Aissen 9y agoLooks like another application the key exchanges algorithms used in Mozilla Weave/Firefox Sync. They used to do that to associate new devices and send them the keys, but they killed that because the UX was more complex than user/password.
- pveierland 9y agohttps://transfer.sh/ https://transfer.sh/ is another neat service which allows you to upload a file easily using a tool such as curl and get a shareable link. There was one time when I only had Chrome Remote Desktop access to a machine without root, where this was a convenient way to share some files. $ curl --upload-file ./hello.txt https://transfer.sh/hello.txt https://transfer.sh/66nb8/hello.txt
- usernam 9y agoIn a similar vein[1], using the python client: $ dl-cli some/files https://dl.example.com/t=<hash> additionally, the file is automatically cleared when it goes unused for a while. There is also FEX[2], which is geared more towards power-users and includes bi-directional transfers. Both are fully self-hosted and trivial to set-up. [1] https://www.thregr.org/~wavexx/software/dl/ https://www.thregr.org/~wavexx/software/dl/ [2] https://fex.rus.uni-stuttgart.de/ https://fex.rus.uni-stuttgart.de/
- Arkanosis 9y agohttp://termbin.com/ http://termbin.com/ is very cool too, especially if you have nothing but netcat. $ < hello.txt nc termbin.com 9999 http://termbin.com/e51k
- consultSKI 9y agoMake mine pushbullet. Love it. https://www.pushbullet.com/ https://www.pushbullet.com/
- JepZ 9y agoNot exactly the same, but for those Linux/KDE users who look for a tool to connect to another machine within the same LAN, I can recommend KDE-Connect (file-transfer, notifications, shared-clipboard, etc.).
- dagw 9y agoThis would be so much more useful it was written in a language that made it easy to distribute the whole thing as a single statically compiled binary.
- pflanze 9y agoInteresting to see the various approaches. I've been using a pair of simple scripts myself for ages: https://github.com/pflanze/chj-bin/blob/master/netoffer https://github.com/pflanze/chj-bin/blob/master/netoffer https://github.com/pflanze/chj-bin/blob/master/netfetch https://github.com/pflanze/chj-bin/blob/master/netfetch (they use a few other scripts from the same repo) used like follows (only practical when being able to copy-paste, my use case is to copy things between servers without needing ssh authentication between them, but having open ssh sessions into both from the same desktop/laptop): chris@a:/tmp/chris$ echo Hello > World chris@a:/tmp/chris$ netoffer World --Run:-- echo jxqtrb7xfq2e4dqy3uitc7986ydj56w59iqu84b | netfetch 78.47.51.206 15123 chris@b:/tmp/chris$ echo jxqtrb7xfq2e4dqy3uitc7986ydj56w59iqu84b | netfetch 78.47.51.206 15123 chris@b:/tmp/chris$ cat World Hello (Uses gpg symmetric encryption underneath.)
- Frogolocalypse 9y agoVery simple, handy, and yet powerful utility. Thanks.
- mihaifm 9y agoGreat collection of tools here. I'm adding here my own approach, aimed at getting around proxies/firewalls: the files are encrypted and sent in the body of a HTTP request. The receiving end is a simple nodejs http server that can be started on the fly. https://github.com/mihaifm/getransfer https://github.com/mihaifm/getransfer
- popey 9y agoThis is so handy. I pushed it to the snap store. So if you're on a snap supported Linux distro you can just run "snap install wormhole" to get it and future updates.
- nathan-osman 9y agoUsers may also want to look into NitroShare. Although it only works on the local network, it uses IP broadcast for automatic peer discovery (next version will use mDNS). It includes installers for Windows and macOS. Debian, Ubuntu, and Fedora include it in their respective package archives. There is also an Android app. (Disclaimer: I am the maintainer.)
- QuamVideri 9y agoSeems likely the use of the "Rendezvous" term is going to get you a cease-and-desist just like Apple got over what is now known as "Bonjour" (aka mDNS) https://en.wikipedia.org/wiki/Bonjour_(software) https://en.wikipedia.org/wiki/Bonjour_(software)
- cosinetau 9y agoRNDZ, and RV are two well understood abbreviations :)
- mbonzo 9y agoHey everyone! I just did a quick video on Magic Wormhole showing how it works: https://www.youtube.com/watch?v=1SXCLAlpD70 https://www.youtube.com/watch?v=1SXCLAlpD70
- draw_down 9y agoCool, seems like AirDrop which I find very useful.
- aidenn0 9y agoAnybody know how the author generated the word-list? I generated one for my own passphrase use; I took the 2000 most common english words and used metaphone to prune any similar sounding words, which got me down to around 600; I then truncated the list to 512 yielding 9 bits per word.
- meejah 9y agoIt is the PGP Word List: https://en.wikipedia.org/wiki/PGP_Words https://en.wikipedia.org/wiki/PGP_Words
- mbonzo 9y agoHey everyone! I just did a quick video on Magic Wormhole showing how it works: https://www.youtube.com/watch?v=1SXCLAlpD70 https://www.youtube.com/watch?v=1SXCLAlpD70
- mmargerum 9y agoSome of the golang folks are working on a very interesting project. https://github.com/upspin/upspin https://github.com/upspin/upspin
- niutech 9y agoWhy not use one of the online peer-to-peer file transfer services: https://send-anywhere.com https://send-anywhere.com https://takeafile.com https://takeafile.com https://www.justbeamit.com https://www.justbeamit.com https://www.sharedrop.io https://www.sharedrop.io https://www.reep.io https://www.reep.io