Het veilig en snel versturen van bestanden kan een heel gedoe zijn. Met de commandline-tool Magic Wormhole wordt dat een stuk makkelijker. Door het uitwisselen van een geheime code kan het versturen en ontvangen in gang worden gezet. Deze commandline-tool laat zien dat veiligheid en comfort best te combineren zijn.
Het principe van Magic Wormhole is lekker simpel: als afzender start je de bestandsoverdracht met wormhole send bestand. Het programma geeft als antwoord een geheime code zoals ‘2-intention-bluebird’ en wacht op de tegenpartij. Die geef je de geheime code via telefoon, (versleuteld) chatbericht of persoonlijk. Hij voert dan bij zichzelf het commando wormhole receive gevolgd door de geheime code uit. Daarna handelen de beide wormhole-instanties de verbinding af en worden de bestanden verzonden. Voorwaarde is wel dat beide partijen tegelijkertijd online zijn.
De veiligheid wordt gewaarborgd bij de opensourcetool door uit de geheime code een sterke sleutel te genereren. Die manier van werken heet Password Authenticated Key Exchange (PAKE) en geldt als veilig. De data zijn veilig zo lang de geheime code niet bij derden bekend is. Dat is ondanks de eenvoudige woorden onwaarschijnlijk omdat een aanvaller tegelijkertijd online moet zijn. Als de code aan de ontvangerskant verkeerd wordt ingevoerd, wordt er geen verbinding gemaakt. Als het versturen eenmaal begonnen is, is het wachtwoord verder ook weer zinloos.
Om de verbinding uit te onderhandelen, maakt wormhole verbinding met de server relay.magic-wormhole.io. Die doet niets anders dan een kanaal toekennen en de twee daarop binnenkomende verbinding met elkaar in contact brengen. De server kan de inhoud van het verstuurde niet inzien. Als de versleutelde verbinding opgebouwd is, wisselen de wormhole-clients hun beschikbare IPv4-adressen en poorten uit en proberen die wederzijds te bereiken. Als dat lukt, worden de data peer-to-peer versleuteld verzonden. Indien beide computers zich in het lokale netwerk bevinden, dan hoeft een omweg via internet niet.
Als NAT of een firewall een rechtstreekse verbinding tegenhouden, maken de clients een omweg via transit.magicwormhole.io.
Ontwikkelaar Brian Warner stelt de webdienst op dit moment gratis ter beschikking. Je kunt ook een eigen server als intermediair gebruiken. De serverdiensten en de API voor het protocol staan op GitHub, evenals een bibliotheek om de datatransfer in eigen toepassingen te integreren.
Magix Wormhole is in Python geschreven en werkt zowel met Windows, macOS als Linux.
Magic Wormhole | |
Commandline-tool om bestanden veilig en snel te versturen | |
Producent, weblink | Brian Warner, GitHub |
Systeemeisen | Python 2.7 of 3.5 en hoger |
Platforms | Linux, macOS, Windows |
Prijs | gratis |