This project made me learn about and attempt to implement the SPAKE2 protocol and HKDF as an exercise. It's quite fascinating. It lets you upgrade a short password to a long key, but requires trusting a server to rate limit attempts on brute-forcing that short password. It seems difficult to find a practical use case for it tho. Because it's only relevant when it is impractical to send a long key. But if you think fo…
That's all nice and dandy, but what about sending data the other way, from a phone to a desktop? Meticulously typing in long strings of text with no mistakes is not really a practical solution for the vast majority of users.
Magic Wormhole: Get things from one computer to another, safely
71–80 of 107 posts
Re: Magic Wormhole: Get things from one computer to another, safely
#72Re: Magic Wormhole: Get things from one computer to another, safely
#73This project made me learn about and attempt to implement the SPAKE2 protocol and HKDF as an exercise. It's quite fascinating. It lets you upgrade a short password to a long key, but requires trusting a server to rate limit attempts on brute-forcing that short password. It seems difficult to find a practical use case for it tho. Because it's only relevant when it is impractical to send a long key. But if you think fo…
This isn't true. Particularly, if an attacker attempts to connect with the wrong password, this will be seen by the client, which then aborts the connection. So an attacker can only try one password. You can test this yourself:
A: $ wormhole send foobar
A: Wormhole code is 1-whimsical-klaxon
B: $ wormhole receive 1-klaxon-whimsical # wrong password
B: ERROR: Key confirmation failed. Either you or your correspondent
B: typed the code wrong, or a would-be man-in-the-middle attacker guessed
B: incorrectly. Try sending the file again.
B:
A: ERROR: Key confirmation failed. Either you or your correspondent
A: typed the code wrong, or a would-be man-in-the-middle attacker guessed
A: incorrectly. Try sending the file again.
A:
So if you receive this error (potentially repeatedly), you learn that there is an attacker trying to guess passwords. You can then choose to increase code length or simply stop using that channel.The CLI also has an option to further mitigate MITM attacks with the `--verify` flag -- this shows to both clients a hash of the transcript, which can be verbally verified before proceeding with the transfer. This allows detecting an attack even if the attacker gets the password right on the first try (which has probability 1/65536).
Re: Magic Wormhole: Get things from one computer to another, safely
#74croc[1] has worked better for me. It supports resuming transfers, which is a must. It is very wormhole like and written in Go. [1] https://github.com/schollz/croc
Re: Magic Wormhole: Get things from one computer to another, safely
#75This project made me learn about and attempt to implement the SPAKE2 protocol and HKDF as an exercise. It's quite fascinating. It lets you upgrade a short password to a long key, but requires trusting a server to rate limit attempts on brute-forcing that short password. It seems difficult to find a practical use case for it tho. Because it's only relevant when it is impractical to send a long key. But if you think fo…
Re: Magic Wormhole: Get things from one computer to another, safely
#76This project made me learn about and attempt to implement the SPAKE2 protocol and HKDF as an exercise. It's quite fascinating. It lets you upgrade a short password to a long key, but requires trusting a server to rate limit attempts on brute-forcing that short password. It seems difficult to find a practical use case for it tho. Because it's only relevant when it is impractical to send a long key. But if you think fo…
> requires trusting a server to rate limit attempts on brute-forcing that short password This isn't true. Particularly, if an attacker attempts to connect with the wrong password, this will be seen by the client, which then aborts the connection. So an attacker can only try one password. You can test this yourself: A: $ wormhole send foobar A: Wormhole code is 1-whimsical-klaxon B: $ wormhole receive 1-klaxon-whimsic…
Re: Magic Wormhole: Get things from one computer to another, safely
#77This project made me learn about and attempt to implement the SPAKE2 protocol and HKDF as an exercise. It's quite fascinating. It lets you upgrade a short password to a long key, but requires trusting a server to rate limit attempts on brute-forcing that short password. It seems difficult to find a practical use case for it tho. Because it's only relevant when it is impractical to send a long key. But if you think fo…
That's all nice and dandy, but what about sending data the other way, from a phone to a desktop? Meticulously typing in long strings of text with no mistakes is not really a practical solution for the vast majority of users.
There are some forks since the software was originally opensource but then closed it.
Re: Magic Wormhole: Get things from one computer to another, safely
#78Re: Magic Wormhole: Get things from one computer to another, safely
#79Re: Magic Wormhole: Get things from one computer to another, safely
#80Wormhole William (Android): https://github.com/psanford/wormhole-william-mobile
Destiny (iOS): https://github.com/LeastAuthority/destiny
For interoperability, don't use Destiny's default servers. After you install Destiny, change the config to the standard Magic Wormhole servers:
Mailbox: ws://relay.magic-wormhole.io:4000/v1
Transit Relay: tcp://transit.magic-wormhole.io:4001