Skip to content

Onionshare für den Dateiaustausch verwenden

In regelmäßigen Abständen habe ich das Vergnügen, auf Journalisten aus verschiedenen Ländern der Welt zu treffen. Ich schule diese, wie man Internetsperren umgehen kann, worauf es bei der Anonymität ankommt etc. Eines der Werkzeuge, die ich dabei erwähne und welche Begeisterung auslöst, ist OnionShare (Onion-Link).

Wie der Name schon sagt, geht es um den Austausch (von Dateien) über Onions (also das Tor-Netzwerk). OnionShare entstand ursprünglich als Werkzeug, um eine einfache und sichere Downloadmöglichkeit über Tor Onion Services zur Verfügung zu stellen. Das Gute hieran ist, dass der Austausch komplett über das Tor-Netzwerk läuft, Sender und Empfänger können also unerkannt kommunizieren. Wenn OnionShare beendet wird, dann verschwindet auch der Link und kann auch nicht wieder wiederhergestellt werden. Mittlerweile lassen sich über das Programm Downloads oder Uploads bereitstellen, chatten und auch Webseiten anbieten. All das passiert mit wenigen Klicks. Wie funktionier das?

Für Windows gibt es eine MSI-Datei und für macOS eine DMG-Datei, die man installieren kann. Unter Linux gibt es Flatpak- oder Snap-Pakete. Ich nutze in der Regel das Flatpak. Dazu müsst ihr zunächst Flatpak einrichten. Der konkrete Weg ist abhängig von eurer Distribution und verbirgt sich hinter dem Link. Wenn das eingerichtet ist, kann das dann über flatpak install flathub org.onionshare.OnionShare installiert werden.

Willkommen-Bildschirm beim Start von OnionShare
Willkommen-Bildschirm beim Start von OnionShare

Oben seht ihr das Menü nach dem Start von OnionShare. Im einfachsten Fall klickt ihr auf “Connect to Tor”, OnionShare verbindet sich mit Tor und ihr könnt nun aus vier Möglichkeiten auswählen:

  1. Dateien teilen
  2. Dateien empfangen
  3. Webseite
  4. Anonym chatten

Sollte keine Verbindung zu Tor hergestellt werden können, empfehle ich einen Blick in das Handbuch. Dort stehen verschiedene Möglichkeiten beschrieben, die ihr einstellen könnt.

Die weitere Benutzung von OnionShare ist recht einfach. Ihr wählt den entsprechenden Menüpunkt aus, beantwortet ein paar Fragen und schon kann es losgehen.

Wenn ihr Dateien teilen wollt, klickt auf Dateien oder Ordner hinfügen und wählt diese aus. Wenn ihr damit fertig seid, könntet ihr schon mit dem Teilen beginnen. Allerdings solltet ihr über zwei Punkte nachdenken:

  1. Standardmäßig lässt OnionShare einen Download zu und schließt danach den Onion Service. Das ist sinnvoll, wenn ihr einer Person die Datei(en) schicken wollt. Wenn sich der Download an mehrere richtet, solltet ihr den Menüpunkt “Dateifreigabe beenden, …” deaktivieren. Dann bleibt der Dienst bis zum Schließen von OnionShare erhalten.
  2. Weiterhin richtet OnionShare eine private OnionShare-Adresse ein. Damit wird neben der Onion-Adresse ein privater Schlüssel erzeugt, der an den Empfänger übertragen werden muss. Dies ist einerseits die sichere Variante, andererseits macht das aus meiner Erfahrung mehr Probleme. Daher wähle ich meist aus, dass das ein öffentlicher OnionShare-Dienst ist.

Beide Punkte findet ihr auch bei den anderen Menüpunkten von OnionShare. Wenn ihr eure Auswahl getroffen habt, klickt auf den grünen Knopf und das Teilen kann beginnen.

OnionShare teilt Dateien

OnionShare teilt Dateien

Die obigen Ansicht zeigt euch OnionShare an, nachdem das Teilen begonnen wurde. Ich habe mal eine Datei geteilt, die nsu-akten-gratis.pdf heißt. Wenn ihr den Artikel lest, wird es die Onion-Adresse nicht mehr geben. Die Datei bezieht sich auf eine Veröffentlichung von Frag den Staat und Jan Böhmermann (Alternative). Das Original liegt hier.

Das Wichtige oben ist die Onion-Adresse. Diese schickt ihr weiter und der Empfänger öffnet diese mit dem Tor-Browser. Dort wird dann folgendes angezeigt:

Download im Tor-Browser
Download im Tor-Browser

Mit einem Klick auf “Download Files” werden die Dateien schließlich heruntergeladen. Probiert das mal aus. Ihr werdet sehen, dass dies wirklich einfach ist.

Doch wie funktionieren die anderen drei Punkte? Findet es heraus! Probiert es mal für euch und teilt eure Erfahrungen in den Kommentaren. Ich freue mich, von euren Erfahrungen zu hören. ;-)

security.txt

Kennt ihr noch die Datei robots.txt, die auf verschiedenen Webseiten hinterlegt sind? Dahinter stand der Robots Exclusion Standard und die verschiedenen Bots sollen zuerst die Seite ausweren, bevor sie eine Webpräsenz indexieren. Daneben entstand auch die Idee für eine humans.txt und mit dem “Erschaffen” des .well-known-Verzeichnisses auf dem Webserver gibt es eine ganze Reihe Dateiformate zur Information oder für andere Zwecke.

Seit April 2022 gibt es nun den RFC 9116 für die Datei security.txt. Diese soll anderen helfen, Sicherheitslücken an die richtige Stelle zu melden. Denn oftmals steht das Problem, dass eine Schwachstelle gefunden wurde und es vielleicht unklar ist, wohin diese zu melden ist.

Mail wäre natürlich eine mögliche Wahl. Im besten Fall existiert sogar eine E-Mail-Adresse namens security@. Aber sehr häufig ist dies nicht der Fall. Mails an info@ oder ähnliche Adressen landen eher im Nirwana oder werden mit Standardtextbausteinen beantwortet. Daher ist ein gezielter, standardisierter Weg gut.

Der RFC 9116 definiert hierfür eben die Datei security.txt, die im Unterordner .well-known einer Webpräsenz liegen muss. Die Datei selbst muss über HTTPS erreichbar sein. Ein korrekter Pfad wäre also https://example.com/.well-known/security.txt.

Doch was darf da drin stehen? Naheliegend sind Kontaktinformationen. :-) Spezieller Informationen, an die man Informationen zu Schwachstellen melden kann. Hierfür ist der Eintrag Contact: gedacht. Dieser muss in der Datei enthalten sein und sollte die Kontaktmöglichkeiten in absteigender Reihenfolge enthalten. Daneben benötigt die Datei zwingend ein Ablaufdatum. Eine Minimalversion der Datei kann also so aussehen:

Contact: mailto:security@example.com
Expires: 2023-05-01T12:13:24+02:00

Weiterhin könnt ihr in der Datei Informationen zu einer Policy hinterlegen, welche Sprachen ihr sprecht, ob ihr Leute einstellt, wer in der Vergangenheit Lücken meldete und einen Verweis zu einem Schlüssel machen. Eine erweiterte Version der Datei sähe also so aus:

Contact: mailto:security@example.com
Contact: +49-123-456-7890
Contact: https://example.com/meldeformular.html
Policy: https://example.com/security-policy.html
Preferred-Languages: de, en
Acknowledgments: https://example.com/hall-of-fame.html
Encryption: https://example.com/pgp-key.txt
Expires: 2023-05-01T12:13:24+02:00

Hier sind mehrere Kontaktmöglichkeiten genannt. Es gibt eine Policy. Die Leute sprechen Deutsch und Englisch und ihr bekommt Infos über andere, die etwas gemeldet haben. Am Schluss findet sich auch ein PGP-Schlüssel. Optimalweise würde der über Web Key Discovery bereit gestellt. Aber das ist ein Thema für einen anderen Beitrag. ;-)

Schließlich könnt ihr den Eintrag auch noch mittels OpenPGP signieren. Dann sähe meine obige Datei so aus:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Contact: mailto:security@example.com
Contact: +49-123-456-7890
Contact: https://example.com/meldeformular.html
Policy: https://example.com/security-policy.html
Preferred-Languages: de, en
Acknowledgments: https://example.com/hall-of-fame.html
Encryption: https://example.com/pgp-key.txt
Expires: 2023-05-01T12:13:24+02:00

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.2.19

[Viele Zeichen, die gpg auswerten kann]
-----END PGP SIGNATURE-----

Wenn ihr also eine Schwachstelle gefunden habt, dann lohnt es sich nach der Datei zu schauen und die dort genannten Kontakte anzusprechen. Ich habe mal ein wenig gegraben. Bei den großen, bekannten Seiten, wie Google, Facebook, Twitter, GitHub usw., fand ich jeweils eine solche Datei. Seiten aus dem Microsoft-Universum wie auch viele chinesische Seiten haben keinerlei solche Informationen.

Ansonsten ist das Bild recht gemischt. Während beispielsweise Facebook und WhatsApp eine security.txt anbieten, hat Instagram keine, obwohl alle zum selben Konzern gehören.

Unter andere namhaften Seiten fand ich nichts bei

  • Reddit
  • Wikipedia
  • Zoom
  • Netflix
  • Stackoverflow
  • Apple
  • und weiteren

Hier ist also noch ein wenig Arbeit zu tun. Wenn die Datei auch bei euch oder eurem Arbeigeber fehlt, sprecht die doch an und bittet die, diese Informationen bereitzustellen (und natürlich bei Bedarf zu aktualisieren).

Siehe auch:

Update: Ich hatte übersehen, dass das Expires:-Feld auch ein Pflichtfeld ist und habe die obige Beschreibung ergänzt. Vielen Dank an Jürgen für den Hinweis!

Einbindung von Flickr doch konform zur DS-GVO

GDPR
GDPR & ePrivacy Regulations von Dennis van der Hejden. Original bei Flickr

Vor kurzem stellte ich mir hier im Blog die Frage, ob man noch Bilder des Dienstes Flickr einbinden kann. Nach meiner Prüfung kam ich zu dem Schluss, dass dies nicht mehr der Fall ist und entfernte die Bilder aus meinem Blog.

Heute hielt ich einen Workshop, der u.a. auch die Datenschutz-Grundverordnung zum Thema hatte. Dort fragte mich ein Teilnehmer, ob denn das Land Thüringen eine korrekte Datenschutzerklärung (DSE) hat. Der folgende Abschnitt brachte mich dann doch ins Staunen:

Flickr

Innerhalb unseres Onlineangebotes können Funktionen und Inhalte des Dienstes Flickr eingebunden sein. Flickr ist ein Foto- und Bilder-Dienst des amerikanischen Unternehmens SmugMug Inc. (67 E. Evelyn Ave, Suite 200
Mountain View, California, U.S.)Wenn Sie selber Flickr aktiv nutzen und ein Bild oder Video veröffentlichen, können wir ihn ebenfalls sehen, wenn Sie ihn jedermann zugänglich gemacht haben oder wenn wir Ihnen über Flickr folgen. Ebenfalls können wir Ihre Angaben auf Flickr sehen, wenn thueringen.de Ihrem Profil folgt. Einzelheiten zur Verarbeitung der Daten bei Flickr und den Sichtbarkeitseinstellungen entnehmen Sie bitte den Datenschutzbedingungen von Flickr bzw. Oath (ehemals Yahoo): policies.oath.com/ie/de/oath/privacy/index.html  

Das heißt, das Land Thüringen ist der Meinung, rechtmäßig Flickr-Bilder einbinden zu können. Wie kann das sein?

Weder Flickr noch Yahoo! noch eine der anderen Firmen steht bisher auf der Privacy-Shield-Liste. Und die Datenschutzbedingungen von Flickr gaben doch bisher auch nichts her. Aber: Unter anderen ist das Datenschutzcenter von Oath mit verlinkt. Dort steht gleich am Anfang:

Für Produkte oder Dienste von Oath, auf die ohne Anmeldung bei einem Account zugegriffen wird, gilt diese Datenschutzerklärung für diese Produkte und Dienste ab 25. Mai 2018.  

Flickr gehört mit zu Oath. Also gelten diese Bedingungen auch für Flickr. In der DSE steht drin, dass die Oath (EMEA) Limited in Dublin diese Dienste bereitstellt und damit wohl Verantwortlicher im Sinne der DS-GVO ist. Also werden die Daten von einem Unternehmen mit Sitz in der EU verarbeitet und die DS-GVO möchte ja den freien Verkehr personenbezogener Daten fördern (oder zumindest nicht einschränken).

Weiterhin erklärt Oath, dass sie die Standardvertragsklauseln der EU-Kommission verwenden bzw. nur Daten mit Unternehmen austauschen, die nach Privacy Shield zertifiziert sind.

Insgesamt scheint die Datenschutzerklärung den Anforderungen der Art. 13 und 14 DS-GVO zu entsprechen. Und auch inhaltlich ist es jetzt so, dass man wohl doch bedenkenlos Bilder von Flickr in seinem Blog einbinden kann.

Aufruf: Schickt mir eine mit Minilock verschlüsselte Datei

Kürzlich rief ich euch auf, mir eine verschlüsselte Datei zuzusenden. Die Ergebnisse des Experiments waren recht durchmischt. Weniger als die Hälfte der Einsendungen hatte enthielt eine verschlüsselte Datei. Knapp die Hälfte dieser Dateien waren mit OpenPGP verschlüsselt. Insgesamt fand ich einige der Ergebnisse ziemlich unerwartet.

Unter anderem erwartete ich, dass auch Minilock für die Aufgabe genutzt werden würde. Dennoch nutzte niemand diese Möglichkeit. Aus meiner Sicht ist das eine recht einfache Möglichkeit, um eine Datei zu verschlüsseln. Daher will ich dies unten vorstellen und bitte euch, mir eine Datei mit Minilock zu verschlüsseln und zukommen zu lassen. Dabei interessiert mich natürlich, was euer Eindruck von der Software ist. Also schreibt ruhig ein paar bewertende Worte dazu.

Minilock-ID-Erzeugung
E-Mail-Adresse und Passwort angeben, um eine Minilock ID zu erzeugen

Minilock ist eine Erweiterung für den Google Chrome oder die freie Alternative Chromium. Bei anderen Lösungen ist meist das Betriebssystem die Einschränkung und hier ist es der Browser. Um die zu installieren, besucht ihr die Minilock-Seite im Web Store und klickt rechts oben auf den blauen Button (zu Chrome hinfügen, add to chrome). Wenn ihr die Anwendung zum Browser hinzugefügt habt, öffnet sich ein neuer Tab und ihr seht das Icon für die Anwendung. Jetzt kann es losgehen.

Zu Anfang erzeugt Minilock eine ID. Dieses Kennzeichen wird später benutzt, um Dateien für euch zu verschlüsseln bzw. könnt ihr die Minilock IDs anderer nutzen, um Dateien für diese Leute zu verschlüsseln. Gebt in das Feld eine E-Mail-Adresse sowie ein Passwort ein. Minilock prüft zunächst die Komplexität des Passworts. Sollte dies zu schwach sein, erscheint eine Warnung sowie eine Empfehlung für ein sichereres Passwort. Gebt hier als ein langes und komplexes Passwort ein. Merkt euch beide Merkmale. Ihr benötigt die später, um euch bei der Anwendung “einzuloggen”.

Meine Minilock ID für dieses Experiment ist

MkUrFQM6NDPpYgd813BZub5cLaW1K2Sk5zF3SnG5RBXKm
Dateiauswahl und Minilock ID
Ansicht mit Dateiauswahl und Minilock ID

Nun könnt ihr Dateien verschlüsseln. Wenn ihr auf dem Bild rechts, in die obere Hälfte klickt, öffnet sich eine Dateiauswahl. Sucht dort eine oder mehrere Dateien aus und bestätigt eure Auswahl. Danach müsst ihr die oben angesprochenen Minilock IDs als Empfänger eingeben und Minilock erzeugt eine Datei mit der Endung .minilock. Diese ladet ihr auf den Rechner (Klick auf Dateiname) und könnt diese anschließend versenden. Der Empfänger kann die dann wiederum in sein Minilock laden und hoffentlich entschlüsseln.

Versucht mal, die obige Anleitung umzusetzen und verschlüsselt mir an die obige ID eine Datei. Wie einfach oder schwierig fühlte sich das für euch an?

Mit minilock verschlüsselte Datei
Mit minilock verschlüsselte Datei

Ergebnis des Verschlüsselungsexperiments

Anfang Februar 2018 rief ich dazu auf, mir eine verschlüsselte Datei zukommen zu lassen. Ich bekam fast 50 Zusendungen und war überwältigt. Vielen Dank für eure Mitarbeit!

Viele reden heute in meiner Umgebung über Verschlüsselung. Es gibt Messenger, die verschlüsseln, Webseiten werden verschlüsselt übertragen und Festplatten können verschlüsselt werden. Eine der einfacheren Aufgaben sollte die Verschlüsselung einer Datei sein. Aus meiner Sicht ist dies eine grundlegende Aufgabe, die einfach zu bewältigen sein müsste. Meine Annahme war, dass dies in der Praxis nicht der Fall ist.

Zum Vergleich: Stellt euch vor, ihr fragt beliebige Personen euch einen Text zu schreiben und das Ergebnis zukommen zu lassen. Meine Annahme ist, dass ein Großteil der Menschen dieses Problem lösen können. So ähnlich sollte es sich auch mit der Verschlüsselung einer beliebigen Datei verhalten. Die Betonung liegt jedoch auf sollte.

Im Vorfeld hätte ich erwartet, dass die meisten Dateien als gezippte (oder sonstwie gepackte) und verschlüsselte Datei kommen, dicht gefolgt von Officedateien mit Passwort. Am Ende kamen drei gezippte Dateien (entspricht 6% aller Dateien und 14% der verschlüsselten Dateien) und  keine Oficedatei. Das war eine Überraschung.

Die überaus meisten Dateien etwa ein Drittel aller Dateien und 64% der verschlüsselten Dateien waren gegen meinen OpenPGP-Schlüssel verschlüsselt. Auch dies fand ich überraschend, denn ich hätte vermutlich ein symmetrisches Verfahren gewählt und das Passwort auf einem anderen Weg übertragen. Allerdings ist die hohe Zahl für mich ein eindeutiges Zeichen der Filterblase in der mein Aufruf gelandet ist. Denn kann mir schwer vorstellen, dass die breite Masse der Menschen so oft und viel OpenPGP auf- und einsetzt.

Leider bekam ich nahezu keine Rückmeldung über fehlgeschlagene Versuche oder von Leuten, die gar keine Idee hatten, wie sie das Problem angehen können. Jedoch würde ich mehr als die Hälfte der Versuche, die mich erreichen als gescheitert betrachten. Diese enthielten entweder eine Datei im Klartext oder gar keine Datei. Das ist für mich schon ein deutliches Zeichen, dass die Aufgabe schwierig ist.

Aber wie geht es einfacher? Eine Lösung sind die oben angesprochenen gezipten Dateien. Hier müsste man natürlich über die Art der Verschlüsselung und deren Sicherheit reden. Ein ebensolches Problem steht bei Office-Dateien. LibreOffice bietet in der letzten Version auch die Benutzung von OpenPGP an. Aber dies muss erstmal eingerichtet werden.

Eine recht einfache, wenn auch unbekannte Lösung ist Minilock. Dies ist eine Erweiterung für Google Chrome und Chromium. Damit lässt sich die Aufgabe aus meiner Sicht recht bequem erledigen. Ich werde später eine kleine Anleitung schreiben und mal zu einem Praxistest aufrufen.

Zahlen zum Verschlüsselungsexperiment

Ich hatte euch gebeten, mir eine verschlüsselte Datei zu schicken. Die An- und Vielzahl der Antworten war überwältigend. Vielen Dank an alle, die mitmachten! Doch was kam dabei heraus? Unten findet ihr eine Auswertung in Zahlen:

Insgesamt erhielt ich knapp 50 Dateien. Diese kamen überwiegend per E-Mail (37). Daneben schickten mir Leute Hinweise über Quitter (3), Twitter (2), Slack (1), XMPP (1), Wire (1) und als Kommentar (2) zum Blogbeitrag.

Jemand hatte sich den Spass erlaubt, einen PGP-Schlüssel für die betreffende E-Mail-Adresse zu erstellen. Ich erhielt drei E-Mails, die einen falschen Schlüssel nutzten. Ich hatte im Beitrag auf meinen Schlüssel verwiesen und gehofft, dieser würde benutzt werden. Aber einige arbeiten offensichtlich anders, als ich das erwartet habe. ;-)

Insgesamt 22 Dateien oder weniger als die Hälfte der Versuche waren verschlüsselt:

  • Die meisten davon (11) waren mit OpenPGP gegen meinen Schlüssel verschlüsselt.
  • Vier Dateien nutzten AES zur Verschlüsselung. Das Passwort lag der E-Mail bei.
  • Dreimal erhielt ich eine gepackte (Zip) Datei mit Passwort in der E-Mail.
  • Zwei Dateien nutzten das TLS-Zertifikat und waren gegen dieses verschlüsselt. Ich bin natürlich im Besitz des privaten Schlüssels und konnte diese entschlüsseln.
  • Ein Link führte auf einen Pastebin mit einer OpenPGP-verschlüsselten Nachricht.
  • Schließlich kam noch ein Veracrypt-Container.

Auf der anderen Seite heißt das eben auch, dass ein Großteil der Dateien nicht verschlüsselt war. Insgesamt kamen fünf E-Mails mit einem Klartext-Anhang an. Ebenso erhielt ich eine klartextliche Datei über Keybase, drei Dateien über send.firefox.com, eine über Tutanota. Die Dateien, die über XMPP und Wire kamen, waren ebenso unverschlüsselt. Allerdings war hier die Leitung selbst verschlüsselt.

Schließlich erhielt ich noch Nachrichten, die keine Datei enthielten. Eine Mail verwies auf Peersm. Dies konnte ich in keinem Browser zum Laufen bekommen. Ein Kommentar im Blog enthielt eine Base64-kodierte Datei. Dies ist keine Verschlüsselung, sondern kann immer dekodiert werden.

Alles in allem ist das Ergebnis etwas anders als ich im Vorfeld erwartet hatte. Zu meinen Erwartungen und meiner Bewertung werde ich einen separaten Beitrag verfassen.

Aufruf: Schick mir eine verschlüsselte Datei

tl;dr: Bitte verschlüsselt eine Datei und schickt mir diese zusammen mit einer (kurzen) Beschreibung, wie ich die lesbar mache.

Alle Welt redet von Verschlüsselung und keiner macht es. So könnte man meine These kurz zusammenfassen. Habt ihr schonmal versucht, eine Datei zu verschlüsseln und diese jemand anderem zuzusenden? Wie habt ihr dies angestellt?

Aus meiner Sicht ist das eine einfache, grundlegende Aufgabe, die man in jedem Anfängerkurs stellen könnte:

Stelle dir vor, dein Gegenüber nutzt einen öffentlichen Computer (Internetcafe, Bibliothek etc.). Du möchtest mit diesem eine Datei austauschen, deren Inhalt nur ihr beide kennt. Verschlüssele eine Datei auf deinem Rechner und übermittle diese an dein Gegenüber.

Ich frage mich nun, wie ihr das machen würdet. Daher habe ich mich zu einem kleinen Experiment entschlossen: Liebe Leserinnen und Leser, bitte verschlüsselt eine (nicht allzugroße) Datei und schickt mir diese zu (per E-Mail an enc2018@kubieziel.de, hinterlasst einen Kommentar oder kontaktiert mich anderweitig) . Legt ein paar Informationen bei, wie ich die wieder entschlüsseln kann. Ihr wisst nicht, wie ihr das machen könnt? Schreibt mir bitte unbedingt eine Mail an enc2018@kubieziel.de oder hinterlasst unten einen Kommentar und erzählt mir davon. Ihr habt es probiert und seid daran gescheitert? Schreibt mir bitte unbedingt eine Mail an enc2018@kubieziel.de oder hinterlasst unten einen Kommentar und erzählt mir davon. Ich würde gern wissen, wie einfach oder schwierig dies für euch ist.

Ich plane, die Umfrage später anonymisiert auszuwerten und ggf. in weiteren Beiträgen verschiedene Werkzeuge vorzustellen.

 

cronjob