5 poin oleh GN⁺ 2023-09-17 | 1 komentar | Bagikan ke WhatsApp
  • Horcrux adalah alat CLI yang membagi file menjadi fragmen horcrux terenkripsi dan memungkinkan pemulihan file asli tanpa harus mengingat kata sandi
  • Ditujukan untuk pengguna yang perlu mengenkripsi file sensitif berukuran besar tetapi mungkin tidak lagi mengingat kata sandinya beberapa tahun kemudian, atau pengguna yang ingin mengirim file melalui beberapa saluran untuk sangat mengurangi kemungkinan penyadap mencegatnya
  • split bekerja dengan menerima jumlah fragmen yang akan dibuat saat membagi file dan jumlah fragmen yang diperlukan untuk memulihkan file asli; contohnya adalah konfigurasi yang dapat dipulihkan dengan 3 fragmen acak dari total 5 fragmen
  • bind adalah perintah untuk menyatukan kembali file asli dari direktori yang berisi fragmen horcrux, dan direktori juga bisa diberikan sebagai argumen
  • Mekanisme internalnya menggunakan Shamir Secret Sharing Scheme untuk membagi kunci enkripsi menjadi beberapa bagian, lalu merekonstruksi kunci asli ketika tersedia fragmen sebanyak ambang batas (threshold) atau lebih
  • Pembuatan kunci menggunakan fungsi Read dari crypto/rand di pustaka standar Go, sementara implementasi Shamir merupakan adaptasi dari implementasi di vault repo milik Hashicorp
  • Instalasi tersedia melalui Homebrew dengan brew install jesseduffield/horcrux/horcrux, scoop dengan scoop bucket add extras; scoop install horcrux, atau melalui binary release
  • Alternatif yang disebutkan, ssss, ditulis dapat bekerja untuk kunci tetapi tidak untuk file itu sendiri, sementara horcrux lain dan Haystack berbeda karena tidak mendukung threshold horcrux

1 komentar

 
GN⁺ 2023-09-17
Opini Hacker News
  • Hal yang perlu diperhatikan adalah alat ini memakai mode AES OFB untuk enkripsi/dekripsi file, dan tidak memiliki jaminan integritas ciphertext, yaitu tidak ada MAC
    [0]: https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation...

    • Penjelasan wiki di atas sulit dipahami meski punya sedikit latar belakang teknis. Bisa jelaskan seperti kepada anak 5 tahun?
  • Di antara alat backup berbasis kertas, ada proyek keren yang memakai Shamir Secret Sharing untuk membagikan beberapa salinan kertas kepada teman-teman, lalu nantinya membacanya secara optik agar file bisa dipulihkan
    https://github.com/cyphar/paperback

    • Saya benar-benar harus meluangkan waktu untuk membuat antarmuka pengguna yang layak, tetapi grafis memang bukan keunggulan saya
      Saat ini semua fungsinya berjalan, tetapi isi kode QR harus disalin-tempel ke command line, dan format di disk—atau tepatnya di kertas—juga harus distabilkan
    • Saya penasaran apakah ini berbeda, atau justru melakukan hal yang persis sama
      https://github.com/paritytech/banana_split
    • Sangat rapi. Rasanya masih sedikit terlalu dini untuk diandalkan, tetapi kalau sudah lebih matang dan lebih mudah digunakan, sepertinya bisa cukup berguna bagi banyak orang
    • Apakah Shamir Secret Sharing bekerja dengan baik untuk input besar? Atau plaintext sebaiknya dienkripsi dengan AEAD, lalu hanya kuncinya yang dibagi dengan Shamir Secret Sharing?
  • Baru-baru ini ada tulisan Levchin tentang Shamir Secret Sharing dan kekacauan yang ditimbulkannya di PayPal: https://max.levch.in/post/724289457144070144/shamir-secret-s...
    Ini salah satu algoritma favorit saya, tetapi jujur saja belakangan saya mulai bertanya-tanya apakah ketertarikan saya hanya bersifat akademis, atau kasus penggunaan nyatanya memang lebih terbatas dari yang saya kira

    • Shamir Secret Sharing pada dasarnya sempurna untuk nerd-sniping
      Cukup sederhana untuk dipahami meski hampir tanpa latar belakang kriptografi atau matematika tingkat lanjut; pada dasarnya hanya perlu sedikit aljabar. Fakta bahwa ini bisa dilakukan saja sudah menakjubkan, dan setidaknya pada awalnya kasus penggunaan konkretnya juga terlihat jelas, bahkan bisa diimplementasikan sendiri. Tentu saja tetap ada jebakan
      Karena itu menurut saya ia muncul terlalu sering, bukan hanya di forum diskusi tetapi juga dalam solusi industri
    • Sepertinya artikel yang ditautkan itu tidak seharusnya menimbulkan keraguan seperti itu
      Entah apakah Anda melihat hubungan sebab-akibat di antara keduanya, tetapi masalahnya bukan pada algoritmanya sendiri, melainkan antarmuka untuk mengakses algoritma tersebut
    • Berdasarkan kekhawatiran yang persis itu, saya sedang menulis sebuah buku: pmfpbook.org
  • Menurut FAQ, alat ini memecah kunci enkripsi dengan skema Shamir Secret Sharing. Namun sebenarnya, dengan skema Reed-Solomon, tujuan yang sama bisa dicapai tanpa kunci enkripsi
    Pertama, proses data input dengan all-or-nothing transform (AONT), lalu bagi menjadi fragmen Reed-Solomon. Reed-Solomon rentan terhadap distinguishing attack dan kemungkinan besar membocorkan informasi input, jadi AONT diperlukan
    [1] <https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_cor...>
    [2] <https://en.wikipedia.org/wiki/All-or-nothing_transform>
    [3] <https://en.wikipedia.org/wiki/Distinguishing_attack>

  • Ada beberapa cara yang terbayang untuk “membagi file yang dienkripsi dengan kata sandi agar bisa dirakit kembali meski sebagian fragmen hilang”, tetapi yang menarik adalah bahwa ini bisa dilakukan tanpa kata sandi
    Bagi orang yang menyukai topik keamanan atau algoritme, ini cukup menarik. Saya mungkin akan menggali kode sumbernya dan membaca teknik terkait karena ingin tahu bagaimana implementasinya. Namun, saya tidak begitu tahu ini berguna untuk apa. Saya jadi berpikir apakah ada model ancaman yang masuk akal sebagai salah satu lapisan “kulit bawang” untuk melindungi data sensitif, atau apakah ada titik keunggulan dibanding kasus penggunaan yang sudah diselesaikan lebih baik dengan cara lain
    Penulisnya juga secara bercanda membandingkan masalah mengingat kata sandi buku harian lama dengan mengingat cukup banyak tempat persembunyian, dan secara pribadi saya rasa yang terakhir jauh lebih besar masalahnya. Jumlah fragmen harus dikurangi dan tempat persembunyiannya harus ditambah, tetapi itu akan mengurangi keamanan yang diberikan[0]
    Ini memang mengingatkan saya pada multisig, tetapi yang pernah saya temui hanya sebatas “harus mencolokkan USB key dan menjalankan program bersama dua rekan kerja untuk menerbitkan satu pembaruan”. Semua orang harus menyediakan key, sehingga kondisinya “kalau saya cuti sakit, pembaruan tidak bisa dirilis”; saya tidak tahu apakah itu batasan alatnya atau karena saat itu masih alpha sehingga disetel seperti itu
    Bagaimanapun, ini sangat menarik
    [0] Namun, “di bawah kasur” sepertinya tingkat keamanannya mirip dengan menyetel kata sandi menjadi “password”

    • Bagaimana kalau untuk berbagi informasi agar bisa dipakai orang dalam keadaan darurat? Datanya disimpan di beberapa lokasi, tetapi hanya orang yang bisa mengakses 3 lokasi di antaranya yang dapat membacanya
      Pengaman sebenarnya adalah kontrol akses fisik yang sudah ada. Untuk mendapatkan data, pencuri harus membobol tiga tempat
      Bisa juga mengenkripsi data lalu membagi kata sandinya menjadi tiga fragmen dan menyimpannya di lokasi berbeda, tetapi dengan begitu Anda harus menyimpan data dan kata sandinya sekaligus
  • Ini hal-hal yang tampaknya terkait dari namanya. Mungkin ada lebih dari satu proyek. Apa lagi ya?
    Horcrux: Split your file into encrypted fragments - https://news.ycombinator.com/item?id=29395575 - November 2021, 11 komentar
    Show HN: Horcrux, a Playground for Shamir Secret Sharing - https://news.ycombinator.com/item?id=26256726 - Februari 2021, 40 komentar
    Horcrux Encrypted Messaging - https://news.ycombinator.com/item?id=24322069 - Agustus 2020, 93 komentar
    I made an app that lets you split a file into horcruxes - https://news.ycombinator.com/item?id=24026445 - Agustus 2020, 80 komentar
    You can now make horcruxes out of your confidential files - https://news.ycombinator.com/item?id=21933983 - Januari 2020, 17 komentar

  • Ini mengingatkan saya pada file parity di Usenet. Arsip besar diunggah dengan membaginya menjadi banyak file kecil dan sejumlah file parity, lalu misalnya meski hanya ada n-3 dari n file, arsip aslinya tetap bisa dibuat ulang
    https://en.wikipedia.org/wiki/Parchive

  • Baru-baru ini saya tahu bahwa Clevis juga mendukung Shamir secret sharing. Sebenarnya itu satu-satunya cara untuk menyetel beberapa pin dengan tipe dan izin yang sama; bisa dibilang seperti RAID0 untuk SSS
    https://github.com/latchset/clevis#pin-shamir-secret-sharing

  • Saya pikir ini rapi, jadi saya masuk ke repositorinya, dan ternyata pembuatnya adalah orang yang membuat lazygit/lazydocker. Senang melihat orang yang produktif seperti itu

  • Di FAQ, untuk pertanyaan “Bukankah ini berbeda dari Horcrux di dunia Harry Potter?”, ada jawaban: “Cukup mirip. Memang tidak boleh satu Horcrux saja bisa membangkitkan file asli, tetapi dua bisa dibuat cukup, jadi bedanya cuma satu. Checkmate, penggemar Harry Potter”
    Namun inti Horcrux adalah menaruh backup di beberapa tempat. Alat yang mencadangkan backup di beberapa tempat ini adalah contoh penggunaan nama yang jauh lebih tepat: https://github.com/chrispoole643/horcrux. Checkmate, jesseduffield ;)

    • Benar, tetapi juga tidak. Secara teknis, Horcrux memang backup, tetapi bobot emosional konsepnya ada pada tindakan membelah jiwa dan mengurangi esensi diri sendiri demi berjaga-jaga terhadap bahaya
      Backup parsial lebih sesuai dengan semangat ide itu
      Sebagai tambahan, saya membaca konsep itu sebagai serangan terhadap promis­kuitas. Seperti “Whore crux”. Sebaliknya, Lord of the Rings bisa dipandang sebagai serangan terhadap pernikahan, karena saat memakai cincin, seseorang menjadi tak terlihat dan perlahan memudar menjadi bukan apa-apa, seperti “mentega yang dioles terlalu tipis di atas terlalu banyak roti”