5 puan yazan GN⁺ 2023-09-17 | 1 yorum | WhatsApp'ta paylaş
  • Horcrux, bir dosyayı şifrelenmiş horcrux parçalarına bölen ve parolayı hatırlamaya gerek kalmadan özgün dosyanın geri yüklenmesini sağlayan bir CLI aracı
  • Büyük ve hassas dosyaları şifrelemesi gereken ancak birkaç yıl sonra parolayı hatırlayamama ihtimali olan kullanıcılar ya da dosyayı birden fazla kanal üzerinden göndererek saldırganların ele geçirme olasılığını büyük ölçüde azaltmak isteyenler için tasarlanmış
  • split, bir dosya bölünürken üretilecek parça sayısını ve özgün dosyayı geri yüklemek için gereken parça sayısını girdi olarak alır; örnekte 5 parçadan rastgele seçilen 3’üyle geri yükleme yapılabilen bir yapı gösteriliyor
  • bind, horcrux parçalarının bulunduğu dizinde özgün dosyayı yeniden birleştiren komuttur; dizini argüman olarak vermek de mümkündür
  • İç mekanizma, şifreleme anahtarını birden fazla parçaya ayırmak ve belirlenen eşik (threshold) sayısına ulaşan parça olduğunda özgün anahtarı yeniden oluşturmak için Shamir Secret Sharing Scheme kullanır
  • Anahtar üretimi için Go standart kütüphanesindeki crypto/rand Read fonksiyonu kullanılır; Shamir implementasyonu ise Hashicorp’un vault repo implementasyonunun uyarlanmış bir biçimidir
  • Kurulum, Homebrew üzerinden brew install jesseduffield/horcrux/horcrux, scoop üzerinden scoop bucket add extras; scoop install horcrux ya da binary release ile yapılabilir
  • Alternatif olarak sunulan ssss'in anahtarlar için çalıştığı ancak dosyanın kendisi için çalışmadığı belirtiliyor; diğer horcrux ve Haystack araçlarının ise horcrux eşik değerini desteklememesiyle ayrıştığı ifade ediliyor

1 yorum

 
GN⁺ 2023-09-17
Hacker News yorumları
  • Dikkat edilmesi gereken nokta, bu aracın dosya şifreleme/şifre çözme için AES OFB modunu kullanması ve şifreli metin bütünlüğü garantisinin, yani MAC’in olmaması
    [0]: https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation...

    • Şu wiki açıklaması, belli bir teknik arka planım olmasına rağmen anlaması zordu. 5 yaşındaki birine anlatır gibi açıklayabilir misin?
  • Kâğıt tabanlı yedekleme araçları arasında, Shamir gizli paylaşımını kullanarak birden fazla kâğıt kopyayı arkadaşlara dağıtmayı ve daha sonra optik olarak okuyup dosyayı geri yüklemeyi sağlayan harika bir proje var
    https://github.com/cyphar/paperback

    • Kullanılabilir bir kullanıcı arayüzü yapmak için mutlaka zaman ayırmam gerekiyor, ama grafik tarafı hiçbir zaman güçlü yanım olmadı
      Şu an tüm işlevler çalışıyor, ama QR kod içeriklerini komut satırına kopyalayıp yapıştırmak gerekiyor; ayrıca diskteki, daha doğrusu kâğıt üzerindeki formatı da sabitlemem lazım
    • Bunun farklı bir şey mi olduğunu, yoksa tam olarak aynı işi mi yaptığını merak ediyorum
      https://github.com/paritytech/banana_split
    • Çok temiz. Henüz güvenip kullanmak için biraz erken gibi, ama daha olgun ve kullanımı kolay hâle gelirse birçok kişi için epey faydalı olabilir gibi görünüyor
    • Shamir gizli paylaşımı büyük girdilerde de iyi çalışıyor mu? Yoksa düz metni AEAD ile şifreleyip yalnızca anahtarı Shamir gizli paylaşımıyla mı bölmek gerekir?
  • Levchin yakın zamanda Shamir gizli paylaşımı ve bunun PayPal’da yol açtığı karmaşa hakkında bir yazı yazmıştı: https://max.levch.in/post/724289457144070144/shamir-secret-s...
    Bu benim en sevdiğim algoritmalardan biri, ama dürüst olmak gerekirse son zamanlarda ona sadece akademik olarak mı ilgi duyuyorum, yoksa gerçek kullanım senaryoları sandığımdan daha mı sınırlı diye düşünmeye başladım

    • Shamir gizli paylaşımı temelde nerd sniping için mükemmel
      Kriptografi geçmişi ya da ileri matematik neredeyse hiç olmadan anlaşılabilecek kadar basit; aslında biraz cebir bilmek yeterli. Bunun mümkün olması başlı başına şaşırtıcı, en azından başlangıçta somut kullanım senaryoları da çok net görünüyor ve kendiniz de uygulayabiliyorsunuz. Elbette hâlâ tuzakları var
      Bu yüzden sadece tartışma panolarında değil, endüstriyel çözümlerde de gereğinden fazla sık karşımıza çıktığını düşünüyorum
    • Bağlantı verilen yazının böyle bir kuşku doğurması için bir neden görünmüyor
      İkisi arasında nedensellik kurup kurmadığını bilmiyorum, ama sorun algoritmanın kendisi değil, algoritmaya erişilen arayüzdü
    • Tam da bu kaygıdan yola çıkarak şu anda bir kitap yazıyorum: pmfpbook.org
  • FAQ’ya göre bu araç şifreleme anahtarını Shamir gizli paylaşım yöntemiyle parçalıyor. Ancak aslında Reed-Solomon yöntemi kullanılırsa şifreleme anahtarı olmadan da aynı hedefe ulaşılabilir
    Önce girdi verisini ya hep ya hiç dönüşümünden (AONT) geçirip ardından Reed-Solomon parçalarına bölmek yeterli. Reed-Solomon ayırt etme saldırılarına açık olduğu ve girdi bilgisini sızdırma olasılığı yüksek olduğu için AONT gerekli
    [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>

  • “Parolayla şifrelenmiş bir dosyayı, bazı parçalar eksik olsa bile yeniden birleştirilebilecek şekilde bölmenin” birkaç yolu akla gelebilir; ama bunu parola olmadan yapabilmesi ilginç geldi
    Güvenlik konularını ya da algoritmaları seven biri olarak epey ilgi çekici bir şey. Nasıl uygulandığını anlamak için muhtemelen kaynak kodunu kurcalayıp ilgili teknikleri okuyacağım. Yine de bunun nerede işe yarayacağından pek emin değilim. Hassas verileri koruyan “soğan kabuğu” katmanlarından biri olarak anlamlı bir tehdit modeli var mı, yoksa zaten başka yöntemlerle daha iyi çözülen kullanım senaryolarına göre üstün olduğu bir nokta var mı diye düşünüyorum
    Yazarı da eski günlük parolasını hatırlama sorunuyla yeterince saklama yeri hatırlama sorununu şaka yollu karşılaştırıyor; kişisel olarak ikincisinin çok daha büyük sorun olacağını düşünüyorum. Parça sayısını azaltıp saklama yerlerini artırmak gerekir, ama bu da sağlanan güvenliği azaltır[0]
    Aklıma multisig geliyor, ama benim karşılaştığım örnek “tek bir güncelleme yayımlamak için USB anahtarını takıp iki iş arkadaşıyla birlikte programı çalıştırmak zorunda kalmak” seviyesindeydi. Herkesin anahtarını sağlaması gerekiyordu ve “ben hastalıktaysam güncelleme çıkamaz” durumuydu; bunun aracın bir sınırı mı, yoksa o sırada alfa olduğu için böyle mi yapılandırıldığı bilmiyorum
    Yine de çok ilginç
    [0] Yine de “şiltenin altı” muhtemelen parolayı “password” yapmakla benzer düzeyde bir güvenlik sağlar

    • Acil durumlarda insanların kullanabilmesi için bilgi paylaşma amacıyla nasıl olur? Veriyi birden çok konumda saklayıp yalnızca bunlardan 3 konuma erişebilen kişilerin okuyabileceği bir yöntem
      Asıl güvenlik önlemi mevcut fiziksel erişim kontrolü olur. Bir hırsızın veriyi elde etmesi için üç yere birden girmesi gerekir
      Veriyi şifreleyip parolayı üç parçaya bölerek farklı konumlarda da saklayabilirsiniz, ama o zaman hem veriyi hem de parolayı saklamak gerekir
  • İsim olarak ilişkili görünen şeyler. Muhtemelen birden fazla proje var. Başka neler vardır?
    Horcrux: Split your file into encrypted fragments - https://news.ycombinator.com/item?id=29395575 - Kasım 2021, 11 yorum
    Show HN: Horcrux, a Playground for Shamir Secret Sharing - https://news.ycombinator.com/item?id=26256726 - Şubat 2021, 40 yorum
    Horcrux Encrypted Messaging - https://news.ycombinator.com/item?id=24322069 - Ağustos 2020, 93 yorum
    I made an app that lets you split a file into horcruxes - https://news.ycombinator.com/item?id=24026445 - Ağustos 2020, 80 yorum
    You can now make horcruxes out of your confidential files - https://news.ycombinator.com/item?id=21933983 - Ocak 2020, 17 yorum

  • Usenet’teki parity dosyalarını hatırlattı. Büyük bir arşiv küçük dosyalara ve belirli sayıda parity dosyasına bölünüp yüklenirdi; örneğin n dosyadan yalnızca n-3’ü olsa bile özgün arşiv yeniden oluşturulabilirdi
    https://en.wikipedia.org/wiki/Parchive

  • Yakın zamanda Clevis’in de Shamir Secret Sharing’i desteklediğini öğrendim. Aslında aynı tür ve yetkide pin’lerden birden fazla ayarlamanın tek yolu bu; tabiri caizse SSS’in RAID0’ı gibi
    https://github.com/latchset/clevis#pin-shamir-secret-sharing

  • Bunun temiz bir iş olduğunu düşünüp depoya girdim; yapan kişinin lazygit/lazydocker’ı yapan kişi olduğunu gördüm. Üretkenliğini görmek güzel

  • FAQ’da “Bu, Harry Potter evrenindeki hortkuluklardan farklı değil mi?” sorusuna “Epey benziyor. Tek bir hortkulukla özgün dosyayı diriltebilmek mümkün olmamalı, ama iki tanesiyle mümkün kılınabilir; yani sadece bir fark var. Şah mat, Harry Potter hayranları” diye yanıt verilmiş
    Ama hortkulukların özü, birden fazla yerde yedek bulundurmak. Yedekleri birden fazla yere yedekleyen şu araç, ismi çok daha iyi kullanan bir örnek: https://github.com/chrispoole643/horcrux. Şah mat, jesseduffield ;)

    • Doğru, ama aynı zamanda değil. Teknik olarak hortkuluklar yedekti, ama kavramın duygusal ağırlığı, tehlikeye karşı önlem almak için ruhunu bölüp kendi özünden eksiltmekteydi
      Kısmi yedekler bu fikrin ruhuna daha uygun
      Ek olarak, ben bu kavramı iffetsizliğe yönelik bir saldırı olarak okumuştum. “Whore crux” gibi. Buna karşılık Lord of the Rings evliliğe yönelik bir saldırı olarak görülebilir; çünkü yüzüğü taktığınızda görünmez olursunuz ve “fazla fazla ekmeğe sürülmüş tereyağı” gibi yavaş yavaş hiçliğe karışırsınız