5 Punkte von GN⁺ 2023-09-17 | 1 Kommentare | Auf WhatsApp teilen
  • Horcrux ist ein CLI-Tool, das Dateien in verschlüsselte Horcrux-Fragmente aufteilt und es ermöglicht, die Originaldatei wiederherzustellen, ohne sich ein Passwort merken zu müssen
  • Gedacht für Nutzer, die große sensible Dateien verschlüsseln müssen, aber Jahre später das Passwort möglicherweise nicht mehr wissen, sowie für Nutzer, die Dateien über mehrere Kanäle übertragen wollen, um die Wahrscheinlichkeit eines Abfangens durch Angreifer deutlich zu senken
  • split fragt beim Aufteilen einer Datei ab, wie viele Fragmente erstellt werden sollen und wie viele Fragmente zur Wiederherstellung des Originals nötig sind; das Beispiel zeigt eine Konfiguration, bei der beliebige 3 von 5 Fragmenten zur Wiederherstellung ausreichen
  • bind ist der Befehl, der in einem Verzeichnis mit Horcrux-Fragmenten die Originaldatei wieder zusammensetzt; alternativ kann das Verzeichnis auch als Argument übergeben werden
  • Intern nutzt es das Shamir Secret Sharing Scheme, bei dem der Verschlüsselungsschlüssel in mehrere Teile aufgeteilt wird und der ursprüngliche Schlüssel rekonstruiert werden kann, sobald mindestens die festgelegte Schwelle (threshold) an Fragmenten vorhanden ist
  • Die Schlüsselerzeugung verwendet die Funktion Read aus crypto/rand der Go-Standardbibliothek; die Shamir-Implementierung ist eine angepasste Version der Implementierung aus Hashicorps vault repo
  • Die Installation ist per Homebrew mit brew install jesseduffield/horcrux/horcrux, über scoop mit scoop bucket add extras; scoop install horcrux oder über ein Binary Release möglich
  • Die als Alternative genannte Lösung ssss funktioniert laut Beschreibung zwar mit Schlüsseln, aber nicht mit Dateien selbst; andere Tools namens horcrux und Haystack unterscheiden sich dadurch, dass sie keine Horcrux-Schwelle unterstützen

1 Kommentare

 
GN⁺ 2023-09-17
Meinungen auf Hacker News
  • Zu beachten ist, dass dieses Tool für die Ver- und Entschlüsselung von Dateien den AES-OFB-Modus verwendet und keine Integrität des Chiffrats garantiert, also keinen MAC hat.
    [0]: https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation...

    • Die Wikipedia-Erklärung war selbst mit etwas technischem Hintergrund schwer zu verstehen. Kann das jemand so erklären, als wäre ich fünf?
  • Unter den papierbasierten Backup-Tools gibt es ein cooles Projekt, das Shamir Secret Sharing nutzt, um mehrere Papierkopien an Freunde zu verteilen und später optisch einzulesen, damit die Datei wiederhergestellt werden kann.
    https://github.com/cyphar/paperback

    • Ich muss mir unbedingt Zeit nehmen, um ein brauchbares User Interface zu bauen, aber Grafik war nie meine Stärke.
      Im Moment funktioniert alles, aber man muss den Inhalt der QR-Codes in die Kommandozeile kopieren und einfügen, und das Format auf der Festplatte – beziehungsweise auf dem Papier – muss auch noch festgezurrt werden.
    • Ich frage mich, ob das etwas anderes ist oder ob es genau dasselbe macht:
      https://github.com/paritytech/banana_split
    • Sehr sauber. Wirkt noch ein bisschen zu früh, um sich darauf zu verlassen, aber wenn es reifer und benutzerfreundlicher wird, könnte es für viele Leute ziemlich nützlich sein.
    • Funktioniert Shamir Secret Sharing gut mit großen Eingaben? Oder sollte man den Klartext mit AEAD verschlüsseln und nur den Schlüssel per Shamir Secret Sharing aufteilen?
  • Levchin hat kürzlich etwas über Shamir Secret Sharing und das Chaos geschrieben, das es bei PayPal ausgelöst hat: https://max.levch.in/post/724289457144070144/shamir-secret-s...
    Das ist einer meiner Lieblingsalgorithmen, aber ehrlich gesagt frage ich mich inzwischen, ob ich ihn heutzutage eher aus akademischer Sicht faszinierend finde oder ob die tatsächlichen Anwendungsfälle begrenzter sind, als ich dachte.

    • Shamir Secret Sharing ist im Grunde perfekt für Nerd-Sniping.
      Es ist so einfach, dass man es auch mit kaum Kryptografie-Hintergrund oder höherer Mathematik verstehen kann; im Grunde reicht ein bisschen Algebra. Dass es überhaupt möglich ist, ist verblüffend, und zumindest am Anfang sieht man auch klare konkrete Anwendungsfälle, außerdem kann man es selbst implementieren. Natürlich gibt es trotzdem Fallstricke.
      Deshalb taucht es meiner Meinung nach nicht nur in Diskussionsforen, sondern auch in Branchenlösungen übermäßig häufig auf.
    • Ich sehe keinen Grund, warum der verlinkte Artikel solche Zweifel auslösen sollte.
      Ich weiß nicht, ob du zwischen beidem einen Kausalzusammenhang siehst, aber das Problem war nicht der Algorithmus selbst, sondern das Interface, über das man auf ihn zugriff.
    • Genau zu dieser Sorge schreibe ich gerade ein Buch: pmfpbook.org
  • Laut FAQ teilt dieses Tool den Verschlüsselungsschlüssel per Shamir Secret Sharing auf. Tatsächlich kann man dasselbe Ziel aber auch ohne Verschlüsselungsschlüssel mit Reed-Solomon erreichen.
    Man verarbeitet die Eingabedaten zuerst mit einer All-or-Nothing-Transformation (AONT) und teilt sie dann in Reed-Solomon-Fragmente auf. Die AONT ist nötig, weil Reed-Solomon anfällig für Distinguishing-Angriffe ist und mit hoher Wahrscheinlichkeit Informationen über die Eingabe preisgeben kann.
    [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>

  • Es gibt zwar mehrere Ansätze, wie man „eine per Passwort verschlüsselte Datei so aufteilt, dass sie sich auch dann wieder zusammensetzen lässt, wenn einige Teile fehlen“, aber dass das ohne Passwort möglich ist, fand ich interessant.
    Für jemanden, der Sicherheitsthemen oder Algorithmen mag, ist das ziemlich spannend. Ich werde wohl im Quellcode wühlen und die dazugehörigen Techniken nachlesen, weil ich wissen will, wie es umgesetzt wurde. Allerdings bin ich mir nicht sicher, wofür so etwas nützlich ist. Ich frage mich, ob es als eine Art Schicht der „Zwiebelschale“ zum Schutz sensibler Daten ein sinnvolles Threat Model gibt, oder ob es gegenüber Use Cases, die bereits auf andere Weise besser gelöst sind, irgendwo überlegen ist.
    Der Autor vergleicht scherzhaft auch das Problem, sich an das Passwort eines alten Tagebuchs und an genügend Verstecke zu erinnern; persönlich glaube ich, dass Letzteres das deutlich größere Problem wäre. Man müsste die Zahl der Fragmente reduzieren und die Zahl der Verstecke erhöhen, aber dadurch sinkt die gebotene Sicherheit[0].
    Multisignatur kommt einem zwar in den Sinn, aber was ich damit erlebt habe, war eher: „Um ein Update auszurollen, mussten wir einen USB-Key einstecken und zusammen mit zwei Kollegen ein Programm ausführen.“ Alle mussten ihren Key beisteuern, und es war der Zustand „Wenn ich krank bin, kann das Update nicht raus“. Ich weiß nicht, ob das eine Grenze des Tools war oder ob es damals nur deshalb so konfiguriert war, weil es noch Alpha war.
    Trotzdem sehr interessant.
    [0] Allerdings dürfte „unter der Matratze“ ungefähr das gleiche Sicherheitsniveau haben wie das Passwort auf „password“ zu setzen.

    • Wie wäre es als Möglichkeit, Informationen so zu teilen, dass Menschen sie im Notfall nutzen können? Die Daten werden an mehreren Orten gespeichert, sind aber nur für jemanden lesbar, der auf 3 dieser Orte zugreifen kann.
      Die eigentliche Sicherheitsmaßnahme ist die bestehende physische Zugangskontrolle. Ein Dieb müsste in drei Orte einbrechen, um an die Daten zu kommen.
      Man könnte die Daten auch verschlüsseln und das Passwort in drei Teile aufteilen und an verschiedenen Orten speichern, aber dann müsste man sowohl die Daten als auch das Passwort aufbewahren.
  • Dem Namen nach scheinen diese Dinge verwandt zu sein. Vermutlich gibt es mehr als ein Projekt. Was gibt es noch?
    Horcrux: Split your file into encrypted fragments - https://news.ycombinator.com/item?id=29395575 - November 2021, 11 Kommentare
    Show HN: Horcrux, a Playground for Shamir Secret Sharing - https://news.ycombinator.com/item?id=26256726 - Februar 2021, 40 Kommentare
    Horcrux Encrypted Messaging - https://news.ycombinator.com/item?id=24322069 - August 2020, 93 Kommentare
    I made an app that lets you split a file into horcruxes - https://news.ycombinator.com/item?id=24026445 - August 2020, 80 Kommentare
    You can now make horcruxes out of your confidential files - https://news.ycombinator.com/item?id=21933983 - Januar 2020, 17 Kommentare

  • Das erinnert mich an Paritätsdateien im Usenet. Man lud ein großes Archiv aufgeteilt in mehrere kleine Dateien und eine bestimmte Anzahl von Paritätsdateien hoch, und zum Beispiel konnte man das ursprüngliche Archiv wiederherstellen, selbst wenn von n Dateien nur n-3 vorhanden waren.
    https://en.wikipedia.org/wiki/Parchive

  • Vor Kurzem habe ich erfahren, dass auch Clevis Shamir Secret Sharing unterstützt. Tatsächlich ist das die einzige Möglichkeit, mehrere Pins desselben Typs und mit denselben Berechtigungen einzurichten; gewissermaßen RAID0 für SSS.
    https://github.com/latchset/clevis#pin-shamir-secret-sharing

  • Ich fand das hier sauber gemacht und habe mir das Repository angesehen; da stellte sich heraus, dass es vom Macher von lazygit/lazydocker stammt. Schön zu sehen, wie produktiv er ist.

  • In den FAQ gibt es auf die Frage „Ist das nicht anders als ein Horkrux im Harry-Potter-Universum?“ die Antwort: „Ziemlich ähnlich. Ein einzelner Horkrux sollte die Originaldatei nicht wiederbeleben können, aber man kann es so machen, dass es mit zwei geht, also ist es nur ein Unterschied von eins. Schachmatt, Harry-Potter-Fans.“
    Der Kern eines Horkrux ist aber, Backups an mehreren Orten zu haben. Dieses Tool, das Backups an mehreren Orten sichert, ist ein deutlich besseres Beispiel für die Verwendung des Namens: https://github.com/chrispoole643/horcrux. Schachmatt, jesseduffield ;)

    • Stimmt, aber auch wieder nicht. Technisch gesehen war ein Horkrux ein Backup, aber das emotionale Gewicht des Konzepts lag darin, die eigene Seele zu spalten und einen Teil des eigenen Wesens abzugeben, um sich gegen Gefahr abzusichern.
      Ein partielles Backup passt besser zum Geist dieser Idee.
      Nebenbei: Ich habe das Konzept als Angriff auf Promiskuität gelesen. Wie „Whore crux“. Umgekehrt kann man Lord of the Rings als Angriff auf die Ehe lesen, weil man unsichtbar wird, wenn man einen Ring trägt, und allmählich zu nichts verblasst, wie „Butter, die auf zu viel Brot verstrichen wurde“.