Jeg har alltid ønsket en enkel måte å sende tekst og filer sikkert mellom datamaskiner uavhengig hvor de befinner seg. Uten å måtte gå via skytjenester som man stoler mer eller mindre på. Derfor lagde jeg hermod!
Hurtigstart
Se hele bruksanvisningen og last ned programmet fra GitHub - aheimsbakk/hermod: Hermod is a post-quantum secure by default peer-to-peer (P2P) file and text transfer application.
# Stol på (TOFU) demo signaltjener
./hermod-linux-amd64 trust hermod.sanntid.org
# Send en fil
./hermod-linux-amd64 send rapport.pdf
Transfer code: 39758-scam-grape-pace
# Motta filen på en annen maskin
./hermod-linux-amd64 receive 39758-scam-grape-pace
Establishing P2P connection...
Saved to rapport.pdf
Transfer complete.
Kortversjoner:
send | txreceive | rx
Signaltjener
Jeg anbefaler å kjøre egen signaltjener. Det er superenkelt! Sørg for at TCP og UDP porten 4376 er åpen i brannmuren din. Du kan endre porten til hva du ønsker.
# Start signaltjener
./hermod-linux-amd64 serve
Historikk
I 2016 så jeg Magic-Wormhole: Get Things From One Computer To Another. Ideen er god. Men jeg synes det skortet litt på sikkerheten.
Det gikk mange år. Så kom KI-assistert koding, agentisk koding, vibbekoding, kall det hva du vil. Nå ble plutselig oppgaven om å lage programmet jeg har ønsket overkommelig. Fokus kunne være på arkitektur, implementation og resultatet uten å ta all fritid nærmeste halve året.
Resultatet ble hermod, med et sterkt fokus på sikkerhet i alle ledd.
Forskjeller mellom Hermod og Magic Wormhole
KI ble brukt til å gå igjennom Hermod sitt repo og Magic Wormhole sine tre repoer. Den ble bedt om å summere opp de 7 viktigste sikkerhetsforskjellene mellom Magic Wormhole og Hermod.
Magic Wormhole:
- magic-wormhole/magic-wormhole
- magic-wormhole/magic-wormhole-mailbox-server
- magic-wormhole/magic-wormhole-transit-relay
Hermod:
Hermod vs Magic Wormhole
| Område | Hermod | Magic Wormhole |
|---|---|---|
| Tåler kvantedatamaskiner | Ja. Bruker ML-KEM-768 (FIPS 203) i alle sesjoner som standard. | Nei. Ingen beskyttelse mot angrep med kvantedatamaskiner. |
| Data på vei mellom deg og mottaker | Går direkte mellom deg og mottaker via QUIC med TLS 1.3. Ingen tredjepart kan se dataene. | Går via en videresendingstjener (transit relay). Du må sette opp TLS selv — standard er ubeskyttet TCP. Token og metadata er synlige på nettverket hvis du ikke gjør det. |
| Hva signaliseringsserveren lagrer | Kanallister i minne (aldri på disk). Bare krypterte blobs — kan ikke lese meldingsinnhold. | Meldingene dine i klartekst i SQLite på disk, sammen med IP-adresser og protokollfaser. |
| Beskyttelse mot overbelastning | 3 uavhengige hastighetsbegrensere, grenser per IP og per kanal, grenser på meldingsstørrelse. | Ingen. Ingen sperre mot at noen overvelder tjeneren med forespørsler. |
| Koden du deler (standard) | 3 ord fra 1296-ordliste (~31 bits). Cirka 700 ganger vanskeligere å gjette. | 2 ord fra 512-ordliste (~18 bits). En angriper kan gjette seg frem lett. |
| Bekreftelse av den andre parten | Felles kode + midlertidige sertifikater + valgfri ekstra bekreftelse via 6 ord og identikon. | Kun via felles kode (PAKE). Ingen ekstra kontroll av hvem du snakker med. |
| Sikkerhet ved programvareavhengigheter | Én statisk kjørbar fil. Ingen kjøretidsavhengigheter. Alle kryptofunksjoner fra Go-standardbiblioteket (FIPS 140-sertifisert). | 3 separate systemer (klient + 2 tjenere), mange eksterne Python-pakker, flere uten versjonslås. |