Magic Wormhole: Teknologi transfer file yang aman antar komputer
(github.com/magic-wormhole)- Magic Wormhole menyediakan library dan alat command-line
wormholeuntuk memindahkan file berukuran berapa pun, direktori, dan teks pendek secara aman dari satu komputer ke komputer lain - Kedua ujung transfer diidentifikasi dengan wormhole code yang sama; umumnya perangkat pengirim membuat dan menampilkan kode, lalu kode tersebut dimasukkan di perangkat penerima
- Kode menggunakan daftar kata yang singkat dan mudah diucapkan manusia; sisi penerima menyediakan autocomplete dengan tombol Tab untuk kata-kata kode, sehingga biasanya cukup memasukkan beberapa huruf saja
- wormhole code bersifat sekali pakai, tidak perlu dihafal, dan program ini menggunakan dua server dari repositori terpisah: mailbox server dan transit relay
- Magic Wormhole didistribusikan dengan lisensi MIT, kompatibel dengan Python 3.10 atau lebih baru, dan telah diuji hingga 3.12
Fitur yang disediakan Magic Wormhole
- Magic Wormhole adalah proyek yang bertujuan untuk “mengambil sesuatu secara aman dari satu komputer ke komputer lain”
- Paket ini menyediakan dua bentuk
-
Library
- Alat command-line bernama
wormhole - Target transfer mencakup hal-hal berikut
- File berukuran berapa pun
- Direktori
- Potongan teks pendek
- Alat command-line bernama
-
Metode transfer berbasis wormhole code
- Dua endpoint diidentifikasi menggunakan wormhole code yang sama
- Alur umumnya adalah sebagai berikut
- Perangkat pengirim membuat kode dan menampilkannya di layar
- Kode tersebut dimasukkan di perangkat penerima
- Kode bersifat singkat, mudah diucapkan manusia, dan menggunakan daftar kata yang dapat dibedakan secara fonetik
- Sisi penerima menyediakan autocomplete dengan tombol Tab untuk kata-kata kode, sehingga biasanya cukup memasukkan beberapa huruf saja
- wormhole code bersifat sekali pakai dan tidak perlu dihafal
Konfigurasi server
- Program ini menggunakan dua server, dan kode sumber masing-masing server berada di repositori terpisah
Dokumentasi dan materi presentasi
- Dokumentasi lengkap dapat dilihat di dokumentasi Magic Wormhole atau subdirektori
docs/dalam repositori - Materi presentasi PyCon 2016 tersedia
Lisensi, kompatibilitas, dan instalasi
- Magic Wormhole didistribusikan dengan lisensi MIT; detailnya ada di file
LICENSE - Library ini kompatibel dengan Python 3.10 atau lebih baru dan telah diuji hingga 3.12
- Paket Magic Wormhole tersedia di beberapa sistem operasi
- Untuk instalasi tanpa paket OS, ikuti Installation docs
1 komentar
Opini Hacker News
Saya sudah memakainya selama beberapa tahun untuk memindahkan file berukuran besar antar-sistem di lingkungan jaringan yang aneh, dan hampir selalu bekerja tanpa masalah
Untuk pengujian yang sedikit lebih tidak biasa, saya pernah menjalankan relay Magic Wormhole sendiri, lalu menyetelnya agar penyalinan file yang sangat besar jadi lebih cepat dan stabil
Saya masih tidak suka Google Drive karena terlalu sering ambruk kalau dilempari file puluhan GB
https://www.jeffgeerling.com/blog/2023/my-own-magic-wormhole...
Terakhir kali saya mencoba mengirim data besar dengan Wormhole, saya dibatasi 20MB/s karena bandwidth-delay product, dan akhirnya memakai HTTP biasa dengan aria2c dan multi-stream untuk memenuhi koneksi 1Gbps
Menurut saya tidak ada alasan alat berbasis PAKE tidak bisa sepenuhnya menggantikan alat proprietary yang terlalu rumit seperti Globus untuk transfer jarak jauh berukuran besar, tetapi kenyataannya masih tertinggal di masa lalu
Data sebenarnya seharusnya lewat relay hanya jika ada pembatasan jaringan tertentu; kalau tidak begitu, saya penasaran bagaimana biaya menjalankan relay gratis bisa ditanggung
python -m http.serveruntuk unduhan lokal saat mendesakSayang sekali komik xkcd ini masih sama relevannya seperti pada 2011: https://xkcd.com/949/
Ini salah satu utilitas satu fungsi yang melakukan satu hal dengan sangat baik; saking baiknya bekerja dan tidak mencolok, ia sama sekali tidak terlihat
Saya merasa harus lebih mengapresiasi karya-karya hebat seperti ini
Saya memakai croc, proyek serupa dengan fitur yang bagus: https://github.com/schollz/croc
https://redrocket.club/posts/croc/
Saya pernah memindahkan file 70GB dengan wormhole. Dulu itu sesuatu yang mustahil saya lakukan
Saya tahu itu memakai bandwidth server relay, jadi saya langsung berdonasi ke Debian. Setahu saya Debian menjalankan relay untuk versi paket apt
Itu CNAME yang mengarah ke tempat yang sama dengan alamat yang dipakai kode git upstream, tujuannya agar mudah diganti jika biaya menjadi beban
Sejauh ini belum menjadi masalah; tiap bulan sekitar 10–15TB dipindahkan, tetapi karena berbagi pool bandwidth dengan server-server lain yang memang saya sewa, saya baru sekali membayar biaya kelebihan pemakaian
Kalaupun ada yang berdonasi kepada saya, sejujurnya mungkin akan langsung saya teruskan ke Debian
Sesekali ketika seseorang mengalirkan setengah terabyte, saya berpikir harus memindahkannya ke penyedia yang lebih lambat tetapi flat-rate, atau mengimplementasikan kode pembatasan kecepatan yang lebih baik, atau akhirnya mengimplementasikan ekstensi protokol agar klien menyatakan terlebih dahulu berapa banyak data yang akan ditransfer dan server bisa menolaknya
Namun sejauh ini prioritasnya belum pernah cukup tinggi
Jelas motivasi terbesarnya adalah traversal NAT-ke-NAT. Kalau kedua sisi tidak punya penghalang, tinggal pakai scp, rsync, atau sftp
Saya juga penasaran apakah server relay bisa dikonfigurasi. Kelihatannya agak di-hardcode
Saya juga kebetulan menemukan ini. “Implementasi Rust dari Magic Wormhole dengan fitur dan peningkatan baru”: https://github.com/magic-wormhole/magic-wormhole.rs
Saya pembuatnya. Kalau ada pertanyaan, saya bisa menjawab
Apakah ini perilaku paranoid?
Saya juga penasaran bagaimana rencananya menghadapi komputasi kuantum, dan apakah ada rencana beralih ke kriptografi tahan-kuantum untuk menghadapi serangan simpan-sekarang-dekripsi-nanti
Saya juga ingin tahu apakah protokolnya bisa diperluas di atas proxy yang lebih umum seperti server TURN
Ada juga beberapa alat lain
p2pcopy https://github.com/psantosl/p2pcopy
pcp https://github.com/dennis-tra/pcp
wormhole-william https://github.com/psanford/wormhole-william
https://github.com/mat-sz/filedrop
https://github.com/saljam/webwormhole
https://github.com/schollz/croc
https://github.com/dutchcoders/transfer.sh
https://github.com/timvisee/send
https://github.com/schlagmichdoch/pairdrop
https://github.com/SnapDrop/snapdrop
Mungkin ini pertanyaan bodoh, tapi sebaiknya bagaimana melakukan ini antara iPhone dan MacBook?
AirDrop dinonaktifkan karena kebijakan, penyimpanan iCloud penuh karena saya malas mengurusnya, dan di semua perangkat lain saya memakai Syncthing, tetapi saya tidak menemukan klien yang bisa dipakai di iPhone kantor
Saya terutama suka karena tidak perlu memasang aplikasi pihak ketiga di perangkat mana pun
Di Safari pada Mac biasanya tampaknya tidak sebaik Chrome, tetapi saya pernah mentransfer tanpa instalasi dari Windows ke iOS, Windows ke macOS, dan macOS ke iOS
python -m http.serverArtikel terkait: Magic Wormhole: Get things from one computer to another, safely - https://news.ycombinator.com/item?id=27262193 - Mei 2021, 178 komentar
Tailscale sekarang juga punya Taildrop: https://tailscale.com/kb/1106/taildrop
Di sini kami menggunakan Tailscale secara umum, tetapi masih sering mengirim file dengan wormhole