Categories
Datenschutz German OccuSearch

OccuSearch überarbeitet und in neuer Version

Kürzlich habe ich bei OccuSearch ein Update auf Searx 0.16.0 auf 0.17.0 durchgeführt. Dabei handelt es sich um eine Open-Source Metasuchmaschine, die von quasi jedem Serverbetreiber selbst aufgesetzt und für private Zwecke oder auch die Öffentlichkeit zur Verfügung gestellt werden kann.

Das stellte sich nicht ganz so einfach heraus, da anscheinend Python 2 nicht mehr unterstützt wird. Anmerkung: Das ist prinzipiell auch gut so, da Python 2 eine alte Leiche im Keller ist und schon viel zu lange gelebt hat. Also Update auf Python 3. Ein inkrementelles Upgrade habe ich damit leider nicht hinbekommen, sodass ich Searx schlussendlich komplett neu aufgesetzt habe.

Auch da bin ich auf die ein oder anderen Unwegsamkeiten gestoßen. Leider haben meine Skripte wie etwa “service searx start” leider nicht mehr so funktioniert und ich musste sie anpassen (dazu in einem anderen Artikel).

Neue Features

Zuerst ein mal gibt es neue Suchengines. Darunter wären die Folgenden:

  • eTools
  • Wikibooks
  • Wikinews
  • Wikiquote
  • Wikisource
  • Wiktionary
  • Wikiversity
  • Wikivoyage
  • Rubygems

Interessant ist insbesondere eTools, da diese Suchmaschine zum Teil sogar mehr finden soll als Google es tut. So schreibt zumindest Digitalcourage (Quelle).

Auch wurden einige Suchmaschinen gefixed: Google, Google Images, Startpage, Gigablast und YaCy. Außerdem wurde die Dokumentation wesentlich überarbeitet, was Betreiber freuen wird. Kleinere Änderungen im Oscar-Theme haben leider mein selbst gestaltetes Design etwas kaputt gemacht. Ich bin nun wieder bei “Simple”-Design, zumindest vorübergehend. Außerdem wurde eine Reihe von Design- und Usabilityverbesserungen durchgeführt. Es gibt nun einige weitere Anbieter zur Autovervollständigung von Sucheingaben. Dazu zählen nun “dbpedia”, “duckduckgo”, “google”, “startpage”, “swisscows”, “qwant” und “wikipedia”. Bei OccuSearch setzen wir standardmäßig auf DuckDuckGo, da die Ergebnisse relativ gut sind und wir gerne eine Alternative zu google haben möchten. Unter der Haube gibt es noch viele weitere Änderungen, die ihr den Changelogs entnehmen könnt.

Suchmaschinen: Unsere Auswahl

Außen vor lassen möchten wir Google, da die Interessen der Weltbevölkerung schon genug durch Google gelenkt werden. Abgesehen von der Marktmacht ist es Google so sehr einfach möglich bestimmte Meinungen besonders zu pushen. In wie fern das gezielt getan wird, ist umstritten, aber zumindest geben uns die Algorithmen vor, was wir sehen und was nicht.

Wir haben aktuell folgende Suchmaschinen per Default eingebunden:

  • Wikipedia – Die freie Datenquelle. Einfach sinnvoll.
  • Bing – Der größte Konkurrenz von Google im internationalen Vergleich. Wird von Microsoft betrieben. Die gute Durchmischung der Resultate macht es aber durchaus ok diesen Anbieter hier hinzuzufügen. Die Auswahl wird so nicht einseitig.
  • Wikidata – Eine frei bearbeitbare Wissensdatenbank mit dem Ziel Wikipedia zu unterstützen.
  • DuckDuckGo – Eine Suchmaschine die einen eigenen Suchindex betreibt, aber auch Ergebnisse von einigen anderen Suchanbietern einschließt (insbesondere Bing)
  • ETools – Ansich schon eine Metasuchmaschine, wie diese hier auch, die aber den Ruf besitzt seltene Webseiten zu finden, die selbst nicht von Google gefunden werden.
  • MetaGer – Eine deutschsprachige Metasuchmaschine mit schon ganz guten Suchergebnissen. Insbesondere für deutschsprachiges Publikum von Relevanz. Hält sehr hohe Ansprüche an Datenschutz ein.
  • Qwant – Eine französische Suchmaschine mit ebenfalls eigenem Index. Nach eigenen Angaben ist der Suchindex aber noch nicht vollständig und wird von Bing ergänzt. Zu begrüßen sind eigene Suchindizes aber auf jeden Fall!
  • Wikibooks – Ist ein Wiki zur Erstellung von Lehr-, Sach- und Fachbüchern unter der Creative Commons Attribution/Share-Alike Lizenz 3.0 und GNU-Lizenz für freie Dokumentation. Die deutschsprachige Variante hat 746 Bücher mit insgesamt 28.000 Buchkapiteln – immerhin!
  • Wictionary – Ein Wörterbuch ähnlich dem Duden aber basieren auf freiem Wissen, wie auch die Wikipedia. Mit cA. 1.000.000 deutssprachigen Einträgen.
  • dictzone – Ein Wörterbuch nicht nur für Deutsch-Englisch / Englisch-Deutsch.

Fußnote

So viel zu meiner Aktualisierung von Searx auf OccuSearch und die letzten Anpassungen an den vorbelegten Suchmaschinen. Ich wünsche weiterhin viel Spaß beim Nutzen von OccuSearch. Empfehlt es gerne an Freunde und Bekannte weiter. Die Suche lässt sich in den meisten Browsern auf einfach in die Adressleiste hinzufügen – schlechte Browser mit wenig Freiheiten wie der von Samsung auf Android mal außen vorgelassen. Nutzt lieber Firefox oder einen anderen privatsphärenfreundlichen Browser mit Addons zu eurem Schutz. Das soll es nun für heute hier gewesen sein. Ich wünsche noch eine schöne Woche.

Categories
Datenschutz Dokumentenvorlagen German

Wir bieten nun Dokumentenvorlagen an

Eigentlich war ich auf der Suche nach einer Website, wo ich meine Vorlagen für Ordnerrücken, Deckblätter für Ordnerregister und Visitenkarten Online stellen kann. Nun habe ich leider keine entsprechende Seite gefunden und so sind die Vorlagen nun hier auf the-digital-native.de gelandet. Auch wenn das nicht ganz dem Kernthema dieser Seite entspricht, habe ich mir bei einigen Vorlagen wirklich Mühe gegeben und möchte diese auch der Allgemeinheit zur Verfügung stellen.

Solltest du einen Dienst kennen, wo man Vorlagen kostenlos unter einer freien Lizenz zur Verfügung stellen kann, dass melde ich unbedingt bei mir. Ich würde die Sachen dann auch gerne noch dort veröffentlichen, da die Audienz vermutlich doch größer sein wird.

Musterschreiben

Etwas Themennäher sind wiederum die Musterschreiben, die dem Durchsatz vom persönlichen Datenschutz gelten. Darunter der häufig sinnvolle Widerspruch Markt- und Meinungsforschung sowie ein Auskunftsersuchen für Bewegungsdaten.

Categories
Datenschutz German Mailserver OccuMail

Ein Spamfreies Postfach mit OccuMail ZeroSpam

Heute soll es um unseren Maildienst OccuMail gehen, für den auch du eine kostenlose Adresse bekommen kannst. Typischerweise vergeben wir etwa 1GB Speicher kostenlos. Mehr Speicher können wir gerne zur Verfügung stellen, aber wir bitten dann um eine geringfügige Beteiligung an den Serverkosten. Für mehr Informationen, bitte anfragen!

Mögliche, kostenlose Mailaliase sind:

  • nickname@occumail.net
  • nickname@new-visual-dimension.de
  • nickname@the-digital-native.de
  • nickname@the-digital-native.net
  • nickname@your-domain.tld (zum Selbstkostenpreis)

Unser Dienst ist Datenschutzfreundlich, Werbefrei und deine Mailinhalte werden von uns nicht eingesehen oder kontrolliert. Außerdem geben wir deine Mailinhalte niemals an Behörden oder sonstige staatliche Institutionen heraus. Im Zweifelsfall würden wir es auf einen Gerichtsprozess ankommen lassen. Glücklicherweise gab es eine solche Anfrage bis heute noch nie.

Bei OccuMail gibt es keinen Spamfilter

Einige Nutzer von OccuMail fragten mich bereits, warum es denn keinen Spam-Ordner in Ihrem Postfach geben würde. Die Antwort ist einfach: Wir bieten keinen Spamfilter an. Warum das so ist? Weil man seine E-Mailadresse Spamfrei halten kann. Ich habe meine aktuelle E-Mailadresse seit Oktober 2013, also knapp 7 Jahre, und erhalte immernoch keinerlei Spam.

Dafür muss man jedoch ein paar Regeln einhalten:

  • Poste deine E-Mailadresse niemals öffentlich im Internet auf irgendeiner Website.
  • Wenn du deine E-Mailadresse doch irgendwo publizieren musst (z.B. Impressum), dann nimm dafür, wenn möglich, einen Alias, der auf deine E-Mailadresse weiterleitet. Du kannst diesen Alias dann im Notfall einfach deaktivieren, ohne deine Hauptadresse zu verlieren.
  • Wenn du deine E-Mailadresse publizierst, tue dies niemals im Klartext, sondern als Privacy Captcha. Als Bild, oder besser als Privacy Captcha, kann deine E-Mailadresse nicht durch Bots gefunden und für Spam missbraucht werden. Solche Bots durchsuchen tagtäglich so gut wie alle Webseiten und schnüffeln E-Mailadressen auf!
  • Wann immer du dich bei irgendeinem Service oder Dienstleister mit einer E-Mailadresse registrierst, tue dies mit OccuMail ZeroSpam.

Über OccuMail ZeroSpam

Die Idee ist, wann immer du dich irgendwo mit einer E-Mailadresse registrierst, eine neue Mailadresse zu benutzen. Diese E-Mailadresse ist dann ausschließlich für diesen einen Anbieter bestimmt. Der Hintergrund: Meist wird deine E-Mailadresse nicht durch Freunde und Bekannte an Spammer und Phisher gegeben, sondern durch irgendeinen Serviceanbieter oder Dienstleister.

Wie funktioniert das bei OccuMail ZeroSpam?

Wenn du bei uns eine Adresse nickname@occumail.net hast, kannst du selbst über unsere Administrationsoberfläche Postfix Admin E-Mailadressen der Form alias@nickname.occumail.net anlegen. Wenn du deine eigene Top-Level Domain hast, dann natürlich auch alias@your-domain.tld. Wir empfehlen, sprechende Namen zu verwenden.

Erstelle dir z.B. eine der folgenden E-Mailadressen:

  • amazon@nickname.occumail.net
  • buch7@nickname.occumail.net
  • facebook@nickname.occumail.net
  • diaspora@nickname.occumail.net
  • twitter@nickname.occumail.net
  • mastodon@nickname.occumail.net

Das sieht in unserer Administrationsoberfläche wie folgt aus:

Wenn du Spam erhältst, kannst du einen Mailalias nun jederzeit wieder löschen. Wir empfehlen jedoch den Eintrag einfach zu deaktivieren. Dann kommen auch keine Mails mehr an, aber du hast den Überblick von wo schon mal Spam- oder Phishingmails kamen.

Tritt den Übeltätern auf die Füße!

Eine weitere tolle Eigenschaft dieser Methode: Erhältst du Mails auf eine Adresse, weißt du ja wo du diese Adresse benutzt hast. Von daher hast du die Möglichkeit dem Verantwortlichen auf die Füße zu treten. Entweder dieser hat die Daten selbst an Spammer oder Phisher weitergegeben, oder es gab ein Sicherheitsleck, über das die Kundendaten entwendet wurden. Auch letzteres gilt es zu Verfolgen, da die Kunden darüber informiert werden müssen. Das gilt sogar qua Gesetz!

Der Fall Foto Erhardt

Tatsächlich hatte ich schon mal einen solchen Fall, wo bei mir persönlich ein Phishingversuch auf meinen PayPal Account stattgefunden hat und das sogar unter Angabe meines Namens und meiner kompletten Adresse. Dank OccuMail ZeroSpam konnte ich den Ursprung des Ganzen nachverfolgen. An dieser Stelle nehme ich auch kein Blatt vor den Mund und sage, dass dieser Fall Foto Erhardt betraf, wo ich einige Zeit zuvor eine Onlinebestellung getätigt hatte. Ich ging zunächst von keiner böswilligen Absicht aus und unterstellte ein Sicherheitsleck, also dass die Daten gestohlen wurden. Ich informierte Foto Erhardt sofort telefonisch, wo man sich wenig zu interessieren schien und man mir sagte, ich sollte doch eine E-Mail schreiben. Das tat ich auch. Diese blieb jedoch unbeantwortet. Es gab auch keine Information der Kunden über ein Datenleck, sodass Foto Erhardt seinen gesetzlichen Pflichten nicht nachgekommen ist. Ich entschied mich deswegen damals, zumindest den Fall publik zu machen. Ich postete den Vorfall in einigen Foren für Fotografie. Angesichts dieses Verhaltens, sollte man doch noch mal überdenken, ob man denn gerade bei diesem Anbieter bestellen möchte (sei es auch gerade der günstigste).

Fazit

Mit ein paar grundlegenden Regeln und OccuMail ZeroSpam kann man den Spammern und Phishern ein Schnippchen schlagen. Möglich wird dies durch das Prinzip “eine Adresse pro Dienst”. Als Zusatznutzen kann man die Schuldigen identifizieren. Ich selbst habe übrigens inzwischen etwa 370 Aliase, wovon 40 deaktiviert sind. Das Prinzip hat mein Postfach also wirkungsvoll geschützt.

Wer noch keinen Adresse von OccuMail hat, der darf sich nun gerne melden und in den Genuss von OccuMail ZeroSpam kommen. Wer schon einen Account hat und ZeroSpam noch nicht nutzt, der möge sich zwecks Einrichtung kurz bei mir melden. Ich wünsche ein Spamfreies Wochenende!

Categories
Android Corona Datenschutz German IT-Security

Einschätzungen zur Corona-Warn-App

Letzes Update: 25.06.2020 um 21:57 Uhr
(Änderungen sind farblich gekennzeichnet)

Inzwischen nutzen stand Heute (24.06.2020) etwa bereits 13 Millionen Menschen die Corona-Warn-App. 15 Prozent der Bevölkerung werden erreicht, es gibt erste Infektionswarnungen. Es sollten sich nun erste positive Effekte zeigen. (Quelle)

Ich möchte hier meine Einschätzungen zur Corona-Warn-App hinsichtlich Datenschutz, IT-Sicherheit und Nützlichkeit kund tun. Dabei bemühe ich mich, alle Blickwinkel der verschiedenen involvierten Parteien und Berichterstatter Gehör zu schenken und abschließend eine rationale Empfehlung zu geben. Nach meiner Ansicht muss bei jeder digitalen Entscheidung der Trade-Off zwischen Risiko und Nutzen gezogen werden. Das berührt die Themen Datenschutz, IT-Security sowie Offenheit und Vertrauenswürdigkeit des Dienstanbieters gleichermaßen.

Funktion und Datenschutz

Konkret funktioniert die App so: Ein Handy sendet stets IDs per Bluethooth aus, die von anderen Handys empfangen werden können. Diese IDs ändern sich zudem über die Zeit. Rückschlüsse auf personenbezogene Daten (Name, Handynummer, usw.) der Nutzer sind nicht möglich. So kann man den Kontakt zwischen Nutzern über pseudonomysierte IDs nachzuweisen. Gespeicherte Daten sind neben der ID auch das Datum des Kontakts und die Distanz der Personen. Dies scheint sinnvoll, um das Gefahrenpotenzial zu bemessen. Die IDs der Nutzer werden generell erst mal nicht übertragen. Ist nun ein Mensch positiv, kann und sollte dieser dies in die App hinterlegen (per QR-Code Scan auf dem Bescheid oder per TAN-Verfahren). Nun werden die (pseudonymen) IDs dieses Benutzers auf den zentralen Servern abgelegt und für Warnmeldungen an die Nutzer verbreitet. Die Smartphones der Anwender entscheiden nun selbst gemäß ihres Protokolls, ob sie mit einer infizierten Person in Kontakt getreten sind. Das Infektionsrisiko wird in “niedriges Risiko” oder “hohes Risiko” oder “Risiko unbekannt” eingeteilt. Ein niedriges Risiko wird angegeben, wenn “keine Begegnung mit nachweislich Corona-positiv getesteten Personen aufgezeichnet wurde oder sich Ihre Begegnung auf kurze Zeit und einen größeren Abstand beschränkt hat” (Zitat aus der App). Der Server erfährt davon nichts. Zudem werden IDs nach 14 Tagen gelöscht, da hier die übliche Inkubationszeit erreicht ist. Damit ist dem Datenschutz nochmals besser genüge Getan. Auf die Übertragung einer GPS-Position wird bewusst verzichtet, sodass sich die Erstellung von Bewegungsprofilen der Nutzer ausschließt.

Hinsichtlich Datenschutz ist ein eindeutig positives Fazit zu ziehen: Das Konzept Privacy-by-Design wurde hier berücksichtigt. Tatsächlich funktioniert die App nicht, wie zuerst von einigen Datenschützern befürchtet, zentral, sondern die Datenhoheit bleibt so weit wie eben möglich in den Händen der Nutzer.

Die Datenschutzbestimmungen der App zeigen sich sehr offen und gut erklärt. Die zu verarbeitenden und zu speichernden Daten scheinen im gegebenen Kontext sinnvoll, d.h. so streng wie möglich, um den Einsatzzweck der App noch zu erfüllen.

Digitalcourage führt als Problem an “Detaillierte Bewegungsprofile der User können erstellt werden.” Das sehe ich Anhand der oben beschriebenen Funktionsweise als sehr unwahrscheinlich an. Die App ist gerade so konzipiert, dass das kaum möglich erscheint.

Digitalcourage führt als Problem an “Beteiligte Personen können unter Umständen de-anonymisiert werden.” Wie das konkret passieren soll, bleibt unklar. Die App ist Open Source und es wäre nachzuvollziehen, wenn das passieren würde. Es scheint nicht sehr wahrscheinlich.

Ein berechtigter Kritikpunkt ist hingegen, dass die App wohl nicht ohne die Google Play Services läuft (Quelle). Diese stehen unter Verdacht, den Benutzer auf die ein- oder andere Weise auszuspionieren und die Ergebnisse an Google zu senden. Jedes übliche Android-Smartphone von der Stange hat diese Services. Es gibt jedoch Möglichkeiten durch Installation eines eigenen Betriebssystems (z.B. LinageOS) trotz der Android-Basis sein Handy komplett entgooglet laufen zu lassen. Das machen zwar nur die wenigsten, besonders datenschutzaffine Menschen, aber es gibt gute Gründe dafür. Es sollte keiner auf Grund der Corona-Warn-App dazu gezwungen werden, sich die Google Play Services installieren zu müssen. Klare Forderung: Corona Warn-App bitte auch ohne Google Play Services! Es gibt bereits ein Projekt namens CoraLibre-android-sdk, welches eine freie, aber kompatible, Alternative zu Googles Privacy-Preserving Contact Tracing entwickeln möchte. Wir wünschen dem Projekt viel Erfolg und dass es auch in der offiziellen Corona-Warn-App Einzug hält.

IT-Security

Die App ist in sehr kurzer Zeit entstanden und konnte dementsprechend wenig getestet werden. Das liegt hier aber in der Natur der Sache, denn noch X Monate warten erhöht auch die Corona-Gefahren weiter. Sehr schön ist, dass die Corona-App von Anfang an von einem deutsches Team (SAP, Deutsche Telekom) entwickelt und Open Source publiziert wurde. Damit hat jeder die Möglichkeit in den Source Code zu gucken, Fehler zu finden und diese zu melden. Das können natürlich insbesondere auch unabhängige IT-Security-Spezialisten und Penetration-Tester.

Von Seiten des TÜV Nord wurden Fehler dann tatsächlich auch gefunden und mitgeteilt. Die Verantwortlichen von Telekom und SAP hätten darauf aber schnell reagiert und die kritischen Punkte noch vor Veröffentlichung der App beseitigt. So wünscht man es sich eigentlich. Fehler in Software werden wir nie verhindern, aber der Umgang damit ist entscheidend. Und der scheint hier gut zu sein. Während der TÜV sich zuerst über den kurzen Testzeitraum von 14 Tagen und die frühe Veröffentlichung beschwerte, lautete das Fazit zwei Tage später dann doch, die App werde “stabil und sicher laufen, ohne die Anwender auszuspionieren.” (Quelle).

Ein letzter, ernst zu nehmender Kritikpunkt: Warum gibt es die App nicht bei F-Droid? Wenn die App doch Open Source ist und unter einer entsprechenden Lizenz steht, sollte das möglich sein. Grund sind hier die nötigen Google Play Services, die proprietär sind, sodass das F-Droid jegliches Projekt auf dessen Basis ablehnt. Hier haben wir auch den Punkt, dass wir jederzeit sicherstellen können, dass die binäre *.apk-Datei dem frei verfügbaren Source Code entspricht und nichts untergejubelt wird (Reproducible Builds). Hier bleibt also noch ein Kritikpunkt, trotz Open Source. Wir werden sehen, ob das Projekt CoraLibre-android-sdk es schaffen kann, die App auch in den F-Droid Store zu bringen!

Ältere Geräte

Ein Problem scheint tatsächlich zu sein, dass die App für ältere Geräte nicht zur Verfügung steht. Es wird mindestens ein iPhone 6 / iPhone SE oder Android 6 benötigt. Nach aktuellen Zahlen wären damit tatsächlich etwa 12% der Android-Nutzer ausgeschlossen, da diese eine ältere Version nutzen (Quelle). Das ist nicht wenig und betrifft tatsächlich wohl vor allem sozial schlechter gestellte wie Geringverdiener, Arbeitslose und arme Familien.

Tatsächlich muss man sich in der heutigen Zeit als Nutzer jedoch die kritische Frage stellen, ob man es denn für sich selbst verantworten kann, mit einem so alten Android durch die Gegend zu laufen. Schließlich gibt es hier auch gehörig Sicherheitslücken, die schon lange nicht mehr geschlossen werden. Schutz würde hier nur liefern, was ich schon länger fordere: Eine gesetzlich vorgeschriebene Updatepflicht über mehrere Jahre für noch auf dem Markt befindliche Geräte. Ich denke, 5 Jahre sollten es schon mindestens sein, wenn man ein neues Smartphone erwirbt. Also: Gesetze schaffen!

An dieser Stelle müssten übrigens Google (für Android) und Apple (für das iPhone) etwas machen. Es liegt an ihren Schnittstellen, dass es diese Versionsbeschränkungen gibt. Ganz vermeiden lässt sich das Problem jedoch auch bei bestem Willen nicht, da es alte Smartphones mit unzureichender Hardwareausstattung (insbesondere Bluetooth-Version) gibt, die nicht überwunden werden können.

Freiwilligkeit

Ein großer Punkt ist der der Freiwilligkeit. Diese sollte stets gewahrt bleiben. Auch wenn von der Bundesregierung die Freiwilligkeit betont wird, heißt das nicht, dass sich z.B. auch die Wirtschaft daran halten muss. Der Arbeitgeber könnte z.B. die Installation der App einfordern. Oder ein Supermarkt/Restaurant. Oder ein Veranstalter eine Großveranstaltung. Dass ein solcher Zwang nicht sein darf, klingt selbstverständlich. Daher sind die Forderungen eines entsprechenden Gesetzes nicht unberechtigt. Eine Formulierung wie “Die nicht-Installation der so genannten Corona-Warn-App darf zu keiner Benachteiligung führen” würde da schon reichen.

Die Sichtweisen

“Da kann man nicht meckern”, sagen sie dann. Übersetzt heißt das so viel wie: “Alle Achtung, das ist ja mal richtig gut geworden.”

So ähnlich darf man Linus Neumann interpretieren, wenn er sich zur deutschen Corona-App äußert. Niemals würde er als Sprecher des Chaos Computer Club (CCC) zum Download der App aufrufen. “Wir haben aus grundsätzlichen Erwägungen noch nie ein Produkt oder eine Dienstleistung empfohlen”, sagt er ZDFheute. Wohl aber würde er vor der App warnen, sollte er Bedenken haben. Eine solche Warnung aber spricht Neumann nicht aus. Was für ein Lob.

Linus Neumann, Hacker, Netzaktivist und einer der Sprecher des Chaos Computer Clubs (CCC).
Quelle: ZDF Heute

[Die App wird] stabil und sicher laufen, ohne die Anwender auszuspionieren

Dirk Kretzschmar, TÜV Informationstechnik (TÜVit)

Es sprechen gute Gründe dafür, die Corona-Warn-App zu installieren: Die App scheint, nach allem was wir bisher wissen, solide programmiert, der Quellcode ist offen und IT-Sicherheits- und Privatsphäre-Experten haben keine Bedenken angemeldet. Falls die App funktioniert, könnte sie helfen, die Verbreitung von COVID-19, jedenfalls in Deutschland, einzudämmen. Alle, die dabei mithelfen, ihre Mitmenschen auf diese Art zu schützen, erweisen der gesamten Gesellschaft einen Dienst.

Heise Online, Quelle

Unser Fazit: Die App ist ein Placebo mit Nebenwirkungen!

[…]

Darum können wir gegenwärtig nicht dazu raten, die App zu nutzen.

Digitalcourage BLOG, Quelle

Es fällt auf, dass hier Digitalcourage als einzige Instanz zu dem Ergebnis kommt, explizit vom Einsatz der App abzuraten. Ansonsten scheint ein Großteil der Experten, auch für Datenschutz, im Gesamtfazit zufrieden. Ich kann mich dem Fazit von Digitalcourage nicht so ganz anschließen. Einige Kritikpunkte von Digitalcourage sind zu entschärfen, andere sind berechtigt und sollten durchdacht werden. Das Gesamtfazit kann ich angesichts der ehrlichen Bemühungen der Bundesregierung und der Verantwortlichen jedoch nicht nachvollziehen. Mein persönliches Fazit folgt im Anschluss.

Fazit

Ja, ein paar Kritikpunkte sind stehen geblieben: Probleme mit alten Geräten, das Thema Freiwilligkeit, die Pflicht zu den proprietären Google Play Services bzw. iOS Schnittstellen, das Fehlen im freien F-Droid Store und die kurzen Testzeiten für die IT-Security.

Der konkrete Nutzen muss sich während der Verwendung beweisen. Pauschale Vorabkritik zu möglicherweise erhöhten False-Positive- oder False-Negative-Ergebnissen halte ich für falsch. Auch, dass die Menschen dank ihrer tollen App dann plötzlich unvorsichtig werden, halte ich für fragwürdig.

Insgesamt ist das Projekt “Corona-Warn-App” ein Musterbeispiel für gute Entscheidungen der Bundesregierung. Es wird konsequent auf Datenschutz und Privacy-By-Design gesetzt, die Entwicklung erfolgt in Deutschland, das Projekt ist Open Source und auf gemeldete Kritik/Sicherheitslücken wird schnell reagiert.

Im Allgemeinen würde ich eine Installation der Corona-Warn-App befürworten. Im Speziellen muss jeder für sich selbst die richtige Entscheidung treffen.

Categories
Android German LinageOS

Update OnePlus 7 Pro von LinageOS 16.0 zu 17.1 inkl. Firmware

LineageOS ist ein alternatives Betriebssystem für viele Android-Handys, das auf dem Android Open Source Projekt basiert und vollständig offen ist. Es ist eine hervorragende Alternative zu Stock-Androids vom Hersteller, bietet eine pure Android Erfahrung und wird gut gepflegt bzw. häufig geupdatet. Leider ist die erstmalige Installation für Laien nicht immer ein einfaches Unterfangen. Updates der aktuellen Version können sehr einfach im laufenden Betrieb per Updater installiert werden. Major Updates, also eine neue Android Version, benötigen ein händisches Eingreifen und sind nicht immer ganz einfach umzusetzen.

Ich möchte hier beschreiben, wie man LinageOS 16.0 (Android 9) auf LinageOS 17.1 (Andorid 10) auf einem OnePlus 7 Pro updatet. Das Problem ist, dass bei der offiziellen Anleitung am Ende das Ein- oder Andere nicht mehr funktioniert, weil die Firmware nicht entsprechend geupdatet wurde. Dazu gehören wirklich wichtige Sachen, wie die mobile Datenverbindung. Man muss hier also etwas anders vorgehen und vorher über das originale OxygenOS 10 gehen.

Adb und Fastboot

Zuerst müssen wir sicherstellen, dass adb und fastboot installiert sind. Wie das allgemein für Windows & Linux geht, ist hier im offiziellen Wiki von LinageOS beschrieben. Zumindest wer Ubuntu oder Debian hat, hat es jedoch etwas leichter, denn da gibt es adb und fastboot bereits im offiziellen Ubuntu/Debian Repository. Installation wie folgt:

sudo apt-get install android-tools-adb 
sudo apt-get install android-tools-fastboot 

Adb lauffähig machen

Wir müssen zuerst schauen, dass wir mit adb auf das Smartphone zugreifen können. Solltest du USB-Debugging bereits aktiviert haben, könnt ihr diesen Schritt überspringen. Schließ dein Smartphone per USB an und prüfe einfach, ob dein Smartphone gelistet wird, wenn du den Befehl adb devices im Terminal ausführst. Falls dein Device hier nicht auftaucht, die USB-Verbindung wieder trennen und wie folgt vorgehen:

  1. Die Einstellungen öffnen und “Über das Telefon” auswählen.
  2. Auf den Eintrag “Build-Nummer” (ganz unten) sieben mal tippen. Die Entwickleroptionen werden nun freigeschaltet.
  3. Zurück zu den Einstellungen gehen und unter “System” die “Entwickleroptionen” öffnen.
  4. Etwas runterscrollen, den Eintrag “Android-Debugging” finden und aktivieren”.
  5. Das Smartphone wieder per USB anschließen.
  6. Im Terminal adb devices eintippen.
  7. Nun sollte ein Dialog auf deinem Smartphone erscheinen, der nach USB-Debugging fragt. Markiere “immer erlauben” und klicke auf “OK”.

Dein Smartphone sollte nun beim ausführen von adb devices gelistet werden.

Update durchführen

Wir werden zunächst das aktuelle OxygenOS 10 installieren (deine Daten gehen nicht verloren!), dann LinageOS 17.1 und schlussendlich (optional) die Open GApps, wenn ihr die Google Services haben wollt, die ihr nicht direkt aus dem PlayStore beziehen könnt. Achtung: Vor dem Installieren der GApps keinenfalls das neue LinageOS booten.

OxygenOS 10 installieren

Ladet euch folgendes herunter:

Nun noch alles flashen:

adb reboot fastboot
fastboot flash dtbo dtbo_op7p-P.img
fastboot boot twrp-3.3.1-79-guacamole-unified-Pie-mauronofrio.img
adb push OnePlus7ProOxygen_XXX.zip /tmp
adb shell twrp install /tmp/OnePlus7ProOxygen_XXX.zip
adb reboot bootloader

LinageOS 17.1 installieren

Ladet euch folgendes herunter:

Nun noch alles flashen:

fastboot boot twrp-3.3.1-79-guacamole-unified-Q-mauronofrio.img
adb shell twrp sideload
adb sideload copy-partitions.zip
adb shell twrp sideload
adb sideload lineage-17.1-xxxxxxx-nightly-guacamole-signed.zip
adb reboot bootloader

Open GApps (optional)

Wichtig: Das Smartphone nicht neu starten! Ladet euch die Open GApps für ARM und Android 10.0 herunter (hier)

Nun noch flashen:

fastboot boot twrp-3.3.1-79-guacamole-unified-Q-mauronofrio.img
adb shell twrp sideload
adb sideload open_gapps-arm64-10.0-nano-XXXXXXXX.zip
adb reboot

Magisk neu installieren (Optional)

Wer auf seinem Smartphone root-Rechte nutzen möchte, wird idr. Magisk installiert haben, was jedoch durch das Update überschrieben wurde. Während der Magisk Manager weiterhin installiert ist, muss Magisk neu installiert werden.

Ladet euch zuerst die neuste Version von magisk von der GitHub-Projektseite unter Releases herunter. Aktuell ist Magisk v20.4 und die Datei heißt Magisk-v20.4.zip. Die Installation geht wie folgt:

adb reboot fastboot
fastboot boot twrp-3.3.1-79-guacamole-unified-Q-mauronofrio.img
adb shell twrp sideload
adb sideload Magisk-v20.4.zip
adb reboot

Und fertig, Magisk läuft wieder!

Schlussbemerkung

Wir haben nun ein LinageOS 17.1 auf unserem OnePlus 7 Pro und es sollte alles funktionieren inkl. mobiler Datenverbindung. Wenn euch dieses Tutorial gefallen hat, dann meldet euch doch beim Newsletter an!

Newsletter Anmeldung

[newsletter]

Categories
Datenschutz German

Im Hotel: Kostenloses High-Speed Internet nur mit Facebook Login?

Vor einiger Zeit war ich im Arcotel Rubin in Hamburg zu Gast. Der Urlaub war auch wirklich wunderschön, aber darum soll es in diesem Beitrag natürlich nicht gehen.

Warum mein Urlaub dennoch etwas interessantes für diesen Blog zu Tage gefördert hat, liegt daran, dass ich natürlich auch den kostenlosen W-LAN Zugang nutzen wollte. Nun, an dieser Stelle kam dann die Überraschung: High-Speed W-LAN kostet 4,95€ am Tag, es sei denn, man loggt sich mit seinem Facebook-Zugang ein! Es stellt sich die Frage: Welche Intention kann es hierfür geben? Werden Daten gesammelt? Wenn ja, von Facebook oder vom Arcotel? Auch wenn ich hier keine konkrete Antwort geben kann – einen fader Beigeschmack bleibt allemal.

Bitte zur Stellungnahme – Keine Reaktion

Diesen Artikel habe ich bereits 2014 in meinem damaligem Blog unter gleichem Namen gepostet – und dem Arcotel Rubin die Möglichkeit zur Stellungnahme gegeben. Konkret wollte ich Informationen dazu warum und wofür Daten erhoben werden und was damit passiert. Auf die Stellungnahme warte ich bis heute. Und so findet dieser Beitrag heute im Jahre 2020 noch mal einen Platz in meinem Blog.

Hier mein Brief

Categories
Datenschutz German

HanseMerkur speichert nach Versicherungsantrag rechtswidrig Daten beim HIS und muss sie wieder löschen

Es war März 2014 und ich entschied mich, dass eine Berufsunfähigkeitsversicherung für mich eine gute Sache sei. Daher sprach ich mit einigen Versicherungen und stellte auch Anträge. Darunter: Die HanseMerkur. Nun liest man als datenschutzaffiner Mensch ja die Datenschutzbestimmungen genau durch. Darunter stand dann auch, dass sich die HanseMerkur vorbehält, Einträge beim HIS (Hinweis- und Informationssystem der Versicherungswirtschaft) vorzunehmen und fordert dafür eine Schweigepflichtsentbindung.

Auszug aus der HanseMerkur “Schlusserklärung” zum Vertrag

Das HIS, das muss man wissen, ist eine “Gemeinsame Warn- und Hinweisdatenbank der im Gesamtverband der Deutschen Versicherungswirtschaft (GDV) organisierten Versicherungsunternehmen.” (Wikiepdia) Kurz gesagt heißt das: Passt einem Versicherer irgendetwas bei seinem Kunden nicht, werden hier Einträge getätigt, damit man bei einer anderen Versicherung auch bloß keinen Vertrag mehr bekommen kann.

Man muss dazu sagen, dass diese Warnungen nicht sehr konkret sind und keinen Hinweis darauf geben, welche Gründe wirklich zu dem Eintrag geführt haben. Es wird eine so genannte “Erschwernis” eingetragen. Was die tatsächliche “Erschwernis” ist bleibt unklar. Und so passiert es ganz schnell, dass man auf dieser Blacklist der Versicherungen landet und so keine Versicherung mehr bekommt! Dabei kann es sehr wohl sein, dass der neue Versicherer die “Erschwernis”, wenn sie denn wüsste was genau diese Erschwernis war, gar nicht so bewerten würde. Aber man steht ja auf einer Blacklist und da ist es doch besser, einen Vertrag einfach mal pauschal abzulehnen. Sicher ist die Mutter der Porzellankiste. Das HIS ist also nicht unbedingt die tollste Sache. Auch für unbescholtene Versicherte.

Speicherung trotz Widerspruch. Interesse der Versicherung überwiegt?

Nun habe ich die Versicherungsbedingungen ja ausführlich gelesen und mich informiert. Daher strich ich zum Einen den oben genannten Passus im Vertrag und schrieb zusätzlich unter “Nebenabreden”:

Die Datenweitergabe an das HIS wird nicht gestattet.

Aus dem VersicherungsANTRAG, Nebenabreden (PDF)

Dieser Hinweis wurde geflissentlich ignoriert. Sehr wahrscheinlich führten angegebene Vorerkrankungen dazu, dass man mir keinen Vertrag für eine BU geben wollte. Und das heißt nun für mich: Ein Eintrag “Erschwernis” in der Kategorie “Leben”. Folge: So wird mir keine Versicherung aus dem Bereich “Leben” mehr einen Vertrag geben. Das ist schon eine Ungeheuerlichkeit.

Das ist, by the way, ein Grund, warum ich eine vollständige Absicherung von Berufsunfähigkeit durch den Staat fordere. Denn nicht jeder ist in der komfortablen Situation sich absichern zu können. Die Einen können es sich einfach nicht leisten, die Anderen werden wegen vermeintlich zu hohen Risiken abgelehnt, wie wir es hier sehen. Mich haben 5 Versicherungen abgelehnt. Dann habe ich aufgegeben. Die lächerliche Erwerbsunfähigkeitsrente reicht auf jeden Fall weder zum Leben noch zum Sterben. Ein klarer Fall von “unverschuldet in Not geraten”, was in unserer sozialen Marktwirtschaft doch abgesichert sein sollte?

Da die HanseMerkur verpflichtet ist, mich über einen HIS-Eintrag in Kenntnis zu setzen, erhielt ich einen Brief mit folgendem Inhalt:

HIS Einmeldung

Sehr geehrter Herr Benter,
im Zusammenhang mit der Bearbeitung Ihres Antrags / Ihres Leistungsfalles haben wir Ihre Daten, insbesondere Name, Anschrift, Geburtsdatum sowie Angaben zum Risiko, zur Versicherungssummen bzw. Rentenhöhen oder zu Häufigkeit und Besonderheiten von Versicherungsfällen an das Hinweis- und Informationssystem (HIS) gegeben, welches von der Insurance Risk+Fraud Prevention GmbH, Rheinstraße 99, 76532 Bade-Baden, unterhalten wird.

Zweck des durch das HIS ermöglichten Informationsaustausches ist die Unterstützung der Risikobeurteilung bei Versicherungsanträgen, der Sachverhaltsaufklärung bei Versicherungsfällen unter Rückgriff auf frühere Leistungsfälle sowie die Bekämpfung von Versicherungsmissbrauch. Die Daten werden daher zu einem späteren Zeitpunkt, wenn Sie einen Versicherungsantrag stellen oder einem Versicherer einen Leistungsfall melden, von dem jeweiligen Versicherer abgefragt und genutzt werden. Weitere Informationen erhalten Sie unter www.informa-irfp.de

Mit freundlichen Grüßen,
HanseMerkur Lebensversicherung AG

Gezeichnet von Holger Ehses und Gerhard Krebs.

Brief der HanseMErkur vom 12. Juni 2014 (PDF)

Umgehend legte ich bei der HanseMerkur Widerspruch gegen den HIS Eintrag ein, verwies auf meinen Widerspruch in den Nebenabreden des Vertrags und forderte die sofortige Löschung:

Betreff: Unverzügliche Löschung von Daten beim HIS und bei der HanseMerkur

Sehr geehrte Damen und Herren,,
in Ihrem Schreiben vom 12. Juni 2014 informierten Sie mich über die Weitergabe von Daten an das HIS (Hinweis- und Informationssystem). In den Vertragsunterlagen wurde meinerseits jedoch der Abschnitt über die Weitergabe von Daten an das HIS gestrichen. Zusätzlich ist unter “Besondere Vereinbarungen” folgendes vermerkt “Die Datenweitergabe an das HIS wird nicht gestattet”.

Ich weise darauf hin, dass Sie mit der Weitergabe bereits einen Verstoß gegen das BSDG (Bundesdatenschutzgesetz) begangen haben. Ich weise Sie an, das HIS unverzüglich aufzufordern, die Übermittelten Daten zu löschen, da für die Übermittlung und Speicherung die Rechtsgrundlage fehlt. Ich setzte hierfür eine Frist von 14 Tagen, d.h. bis zum 11. Juli 2014 und bitte um schriftliche Bestätigung. Ich behalte mir Rechtsschritte bezüglich des bereits erfolgten Verstoßes gegen das BDSG vor.

Ich weise zudem darauf hin, dass im Vertrag auch die Speicherung von Personenbezogenen Daten sowie Gesundheitsdaten meinerseits, bei nicht zu Stande kommenden des Vertrages, untersagt wurde. Da dieser Fall eingetreten ist, weise ich die HanseMerkur an, die genannten Daten zu löschen. Auch hierfür setze ich eine Frist von 14 Tagen, also zum 11. Juni 2014, und bitte um schriftliche Bestätigung der erfolgten Löschung.

Mit freundlichen Grüßen,
M. Benter

Mein Schreiben vom 27.06.14 an die HanseMerkur (PDF)

Es antwortete der Datenschutzbeauftragte der HanseMerkur, der doch glatt behauptete, die Interessen der Versicherung würden meinen Interessen an Datenschutz überwiegen:

Auch ohne erteilte Einwilligung kann eine Übermittlung [an das HIS] im Wege der Interessenabwägung erfolgen. Dies ist zulässig, wenn keine überwiegenden schutzwürdigen Interessen des Betroffenen, also Ihre, vorhanden sind.

Brief der HanseMerkur vom 14.07.2014 (PDF)

Der HIS Eintrag bleibt wage

Natürlich wollte ich erst mal sehen, wie denn mein HIS-Eintrag nun aussieht. Daher stellte ich beim HIS auf Grundlage meiner Auskunftsrechte nach BSDG einen Antrag auf eine vollständige Information über die über mich gespeicherten Daten (Antrag auf Selbstauskunft als PDF). Und was soll man sagen, die Datenlage bleibt wage. Folgende Informationen sind in einem solchen Eintrag enthalten:

  • Das Stichwort “Erschwernis”
  • Das Meldegrunddatum
  • Die Meldende Stelle (also die Versicherung)
  • Die Sparte, die eines der Folgenden Kategorien enthalten kann: Kfz, Unfall, Rechtsschutz, Sach, Leben, Transport, Haftpflicht
  • Eine Vorgangs-ID
  • Eine Referenznummer der meldenden Stelle (sozusagen eine ID der meldenden Versicherungsgesellschaft).

Wer mal sehen möchte wie so was aussieht (ganzes PDF):

Vorgehen mit dem Hamburgischen Datenschutzbeauftragten und Sieg auf ganzer Linie

Nun schrieb ich also den Hamburgischen Beauftragten für Datenschutz und Informationsfreiheit an, der die Sache ganz anders sah: Er forderte die HanseMerkur auf, meine Daten umgehend zu löschen. Und das taten sie dann auch. Hier der entsprechende Brief:

Ihre Beschwerde gegen die Hanse Merkur Versicherungsgruppe

Sehr geehrter Herr Benter,
ich nehme Bezug auf Ihre uns vom schleswig-holsteinischen unabhängigen Landeszentrum für Datenschutz weitergeleitete Beschwerde gegen die Hanse Merkur Versicherungsgruppe vom 22.07.2014. Wie Ihnen bereits eine Kollegin mitgeteilt hat, hatten wir die Hanse Merkur zur Stellungnahme hinsichtlich des von Ihnen geschilderten Sachverhalts sowie zur Löschung Ihrer Daten aufgefordert.

Die Veranlassung der Löschung Ihrer Daten wurde uns nunmehr durch die Hanse Merkur am 29.09.2014 schriftlich angezeigt. Dies umfasst sowohl die Daten, welche bei der Hanse Merkur gespeichert sind, als auch die Daten, welche in der HIS Datenbank hinterlegt worden waren.

Darüber hinaus erklärte die Hanse Merkur uns gegenüber, dass in Zukunft nur noch Versicherungsanträge bearbeitet würden, die mit einer unveränderten und vollständigen Einwilligungs- und Schweigepflichtentbindungserklärung versehen sind.

Wir beachten die Angelegenheit damit als abgeschlossen.

Brief vom hamburgischen Beauftragten für Datenschutz und Informationsfreiheit vom 14.10.2014 (PDF)

Sieg auf ganzer Linie würde ich dazu sagen

Mein Widerspruch war also gültig und mein Interesse am Schutz meiner Daten überwiegt. Das musste auch die HanseMerkur eingestehen. Dass man daraus nun schlussfolgert, Anträge mit derartigen Einschränkungen in der Einwilligungserklärung gar nicht mehr zu bearbeiten, ist jedoch höchst bedenklich. So ist der Versicherungsnehmer nun am Ende doch wieder der Leidtragende! Eine erneute Anfrage meinerseits an das HIS bestätigte übrigens, dass nun keine Einträge mehr vorlagen.

Categories
German Linux Virtualisierung

Eine physikalische Windows 10 Partition unter Linux in VirtualBox booten

Kürzlich habe ich ein Lenovo P1 erworben, welches bereits ein vorinstalliertes Windows 10 Pro hatte. Natürlich habe ich direkt ein Linux installiert: In meinem Fall ein Kubuntu 20.04. Dazu habe ich die bereits existente NTFS-Partition mit Windows Installation auf 850GB etwas verkleinert und 100GB freien Platz für Linux geschaffen. Warum habe ich die NTFS-Partition so groß gelassen? Weil es nach meinen Recherchen wesentlich besser funktioniert von Linux aus auf einer NTFS-Partition zu schreiben, als in Windows eine ext4 Partition einzurichten. Die gemeinsame Datenpartition wird also die Windows NTFS-Partition. Auf eine swap-Partition habe ich ganz verzichtet, da 48GB Ram für alles Mögliche ausreichen wird.

Nun habe ich also ein Dual-Boot System Ubuntu 20.04 / Windows 10. Das ist schon mal fein. Aber auch unter Linux brauche ich gerne mal schnell die Windows-Funktionalitäten zur Hand (Photoshop, …). Und da zwei Windows 10 Instanzen zu pflegen doppelter Aufwand ist, kommt eine Möglichkeit das physische System in VirtualBox zu booten hier gerade recht. Darum soll es hier nun gehen.

Die Windows-Partitionen identifizieren

Ich benutze hier mal ganz einfach den KDE-Partition Manager. Wer kein Kubuntu hat und wo der KDE-Partition Manager fehlt, kann er nachinstalliert werden:

sudo apt-get install partitionmanager

Schauen wir uns mal die Partitionierung an. Diese sollte auf jedem System mit EFI ähnlich aussehen.

Hier sehen wir folgende Partitionen:

  • /dev/nvme0n1p1 eine fat32 Partititon, die zum EFI gehört. Man erkennt sie auch, weil sie unter /boot/efi gemountet ist. Diese Partition ist für uns relevant, da wir sie zum booten benötigen.
  • /dev/nvme0n1p2 ist eine so genannte Microsoft Reserved Partition, die heutzutage eigentlich keine Relevant mehr hat.
  • /dev/nvme0n1p3 ist nun die eigentlich wichtige Partition für uns. Hier liegt Windows.
  • /dev/nvme0n1p5 enthält unsere Linux Distribution
  • /dev/nvme0n1p4 enthält ein Windows Recovery, falls man Windows mal neu aufsetzen muss.

Zugriffsrechte im Dateisystem

Um auch ohne sudo vollständigen Zugriff auf unsere Windows 10 Partition zu haben, müssen wir noch was tun. Der beste Weg dazu ist eine udev Regel zu definieren, die die Windows 10 Partition zu einer bestimmten group hinzufügt.

Erstellen wir zunächst eine neue Gruppe für die Windows 10 Partition:

sudo groupadd win10disk

Nun den eigenen Benutzer der Gruppe hinzufügen

sudo usermod -a -G win10disk youruser

Nun müssen wir die UUID der Windows 10 Partition herausfinden. Das geht wie folgt:

sudo udevadm info /dev/nvme0n1p3 | grep UUID

Dies sollte die UUID ausgeben, z.B. wie folgt:

E: ID_PART_TABLE_UUID=579b23f9-843f-4fec-a246-0ed74800bef1

Sollte sich eine andere eindeutige ID als ID_PART_TABLE_UUID ergeben, funktioniert dies auch. Kopiere die Variable und erstelle die Datei /etc/udev/rules.d/99-win10disk.rules mit in etwa folgendem Inhalt:

ENV{ID_PART_TABLE_UUID}=="579b23f9-843f-4fec-a246-0ed74800bef1", GROUP="win10disk"

Speichere die Datei und führe nun einen Neustart durch. Prüfe nun, ob alles funktioniert hat mit:

ls -l /dev/nvme0n1p3

Der Output sollte in etwa wie folgt aussehen:

brw-rw---- 1 root win10disk 259, 3 Jun  1 13:29 /dev/nvme0n1p3

VirtualBox Raw Host Access VMDK Datei

Damit VirtualBox die physischen Partitionen vom EFI und Windows booten kann, muss einen spezielle VMDK (Virtual Machine Disk) Datei erstellt werden, welche die Partitionen repräsentiert. Diese Datei enthält keinen Daten von den physischen Partitionen, sondern ist nur eine Art Verweis, der VirtualBox den Zugriff erlaubt.

Du kannst das VirtualBox raw disk image mit VBoxManage erstellen. Das Zielverzeichnis kann mit der Option -filename spezifiziert werden. Wir wollen die Partitionen /dev/nvme0n1p1 (EFI) und /dev/nvme0n1p3 (Windows) einbinden. Das wären Partitionen 1 und 3 von /dev/nvme0n1:

VBoxManage internalcommands createrawvmdk -filename ~/win10.vmdk -rawdisk /dev/nvme0n1 -partitions 1,3

Die Ausgabe sollte in etwa wie folgt aussehen:

RAW host disk access VMDK file /path/to/windows10.vmdk created successfully.

Die Virtuelle Maschine Erstellen und Konfigurieren

Erstelle wie üblich eine Windows 10 VM. Wähle bei Hard disk die Option “Use an existing virtual hard disk file” und wähle die zuvor erstellte win10.vmdk aus.

Wenn der Wizard abgeschlossen ist, öffne die Settings der neuen VM. Wähle bei System bei “Boot Order” als einziges “Hard Disk” aus und deaktiviere alle anderen Optionen. Aktiviere die Option “Enable EFI (special OSses only)”, sofern dein Laptop EFI benutzt (davon gehen wir hier aus):

Unter Storage kannst du noch mal kontrollieren, ob alles richtig eingebunden ist. Hier sollte unter Controller: SATA die Datei win10.vmdk ausgewählt sein. Vermutlich wirst du die Option “Solid-state Drive” noch aktivieren wollen.

GRUB einrichten

Starten wir nun die virtuelle Maschine. Höchst wahrscheinlich wird nun GRUB starten ohne Windows direkt laden zu können. Mit ls kannst du dir alle Partitionen anzeigen lassen:

grub> ls
(proc) (hd0) (hd0,gtp5) (hd0,gpt3) (hd0,gpt2) (hd0,gpt1)

Wir wissen schon, dass unsere Windows Installation auf Partition 3 liegt. Verifizieren wir dies:

grub> ls (hd0,gpt3)
Partition hd0,gpt3: Filesystem type ntfs - Label 'Windows', UUID ABCDEF - Partition start at 283648KiB

Führe jetzt folgendes aus:

grub> insmod part_gpt
grub> insmod chain
grub> set root=(hd0,gpt3)
grub> insmod ntfs

Wir müssen noch die bei unserem Linux als /boot/efi gemountete Partition/dev/nvme0n1p1als chainloader definieren:

grub> chainloader (hd0,gtp1)/EFI/Microsoft/Boot/bootmgfw.efi

Und das wars! Wir können nun den Bootvorgang starten. Die gemachten Einstellungen werden gespeichert und Windows fährt in Zukunft von selber hoch.

grub> boot

Was es noch zu beachten gibt

Nun nicht vergessen die VBoxGuestAdditions.iso einzulegen (DevicesInsert Guest Additions CD Image) und zu installieren. Nach einem Neustart von Windows sollte jetzt alles funktionieren. Insbesondere sollte die Fenstergröße frei verändert werden können.

Ist das nicht der Fall, liegt das an einem Bug der aktuellen VirtualBox Version (6.1.8), der bei manchen aufzutauchen scheint und bei manchen nicht. Das Problem lässt sich lösen, in dem in den Settings der VM unter Display den Graphics Controller auf VBoxVGA setzt und Enable 3D Acceleration deaktiviert. Das ist nicht optimal, aber alle mal besser als auf einem viel zu kleinen Bildschirm zu arbeiten. Dann die VM ein mal sauber über das Betriebssystem herunterfahren und wieder hochfahren. Es sollte jetzt funktionieren.

Windows 10 Schnellstart & Hibernate

Denkt daran, dass man den Schnellstart unter Windows 10 deaktivieren muss. Das sollte man aber auch schon für einfaches Dual-Boot tun. Es kommt sonst zu Problemen mit ggf. Datenverlusten. Auch Hibernate ist manchmal Problematisch und ich rate davon ab, diesen zu benutzen.

Fazit

Es ist erstaunlich, dass Windows 10 in dieser Form so gut funktioniert. Man bedenke, dass wir bei jedem direkten Start andere Hardware haben als über VirtualBox. Man sollte also Treiberprobleme vermuten. Auch erstaunlich ist, dass keine erneute Aktivierung bei jedem Hardwarewechsel nötig ist. Aber alles ist super und es funktioniert!

Ich persönlich nutze die VM vor allem für Adobe Produkte (Photoshop, Lightroom, Illustrator, Acrobat Pro), Canon EOS Utility, den Brother P-Touch Editor (Labeldrucker) und die Steuererklärung (Taxman 2020 für Selbstständige). Insbesondere Photoshop und Lightroom arbeiten unter einem nativ gebooteten System natürlich besser (Hardwarebeschleunigung!) Eine brauchbare Software für Steuererklärungen von selbstständigen Kleingewerbetreibenden scheint es für Linux leider nicht zu geben (beweist mir gerne das Gegenteil!)

Viele Spaß mit eurem Hybrid-Windows-10

Attribution

Dieser Artikel basiert zum Teil auf dem Artikel “Booting a Physical Windows 10 Disk Using VirtualBox on Linux” von jamieweb.net. Danke für seine Mühen!

Dieser Artikel ist lizenziert unter der Creative Commons Attribution-ShareAlike 4.0 International License.

Categories
Administration / Webmaster German Linux Mailserver

Serverseitige Mailfilter mittels Sieve. Einrichtung von Dovecot & Roundcube

Sieve-Skripte sind eine einfache Möglichkeit Mailfilter auf Mailservern umzusetzen. So können serverseitig etwa Regeln definiert werden, die eingehende Nachrichten z.B. bei vorliegen eines bestimmten Absenders, Empfängers oder Betreffs in einen Ordner verschiebt. Nachrichten können z.B. auch gelöscht oder als gelesen markiert werden. Man kann auch Nachrichten weiterleiten oder mit automatisierter Antwort ablehnen. Auch Abwesenheitsnotizen sind ein Typischer Anwendungsfall.

Die Möglichkeiten sind im Prinzip sehr ähnlich zu den Filterregeln, die man in Thunderbird hinterlegen kann. Der Wesentliche Vorteil: Das Filtern erfolgt auf dem Server. Das ist insbesondere dann von Vorteil, wenn man von mehreren Clients auf ein IMAP-Account zugreift. Da wir heutzutage in der Ära der Smartphones angelangt sind, tut das quasi jeder. Manch einer neben Desktop und Smartphone womöglich noch auf der Arbeit oder per Webmail. Mittels Sieve muss man die Filter nur ein mal pflegen und zwar auf dem Server.

Sieve Clients

Sieve stellt ein eigenes Protokoll zur Verfügung und ist unter Port 4190 zu erreichen. Nun könnte man seine Filter tatsächlich sogar per Telnet pflegen. Komfortabler ist aber ein Sieve Client (Überblick hier). Viele Clients sind jedoch veraltet. Empfehlenswert ist Manage Sieve (Windows und Linux), welches das editieren von Sieve Skripten mit Syntax-Hervorhebung ermöglicht. Das ist toll für Informatiker und Enthusiasten, wird aber den Otto-Normal-Verbraucher abschrecken. Wer seinen Nutzern die Filter komfortabel per GUI erstellen lassen möchte, dem sei die Sieve Erweiterung für den Webmailclient Roundcube empfohlen. Weiterer Vorteil: Man braucht keine weitere Software installieren. Wir besprechen daher im Folgenden auch die Installation von Sieve in Roundcube.

Editieren eines Sieve Skripts mittels Manage Sieve unter Linux

Voraussetzungen

Wir verwenden folgendes System:

  • Debian 10 (Buster)
  • dovecot 2.3.4.1 (Befehl /usr/sbin/dovecot --version)

Wir gehen davon aus, dass Dovecot bereits vollständig für die Verwendung mit IMAP eingerichtet ist. Auch Roundcube sollte schon installiert sein. Wir besprechen hier nur die nötige Konfiguration für Sieve!

Dovecot einrichten

Bekanntermaßen wird Sieve häufig auch für das Filtern von z.B. Spam in den Spam-Ordner verwendet. Während hier die Regeln lediglich durch den Administrator auf dem Server abgelegt werden, möchten wir dem Endanwender ermöglichen Sieve-Skripte anzuwenden. Hierzu verwenden wir neben dem sieve Plugin auch managesieve.

Zuerst installieren wir die Sieve-Erweiterung von Dovecot:

sudo apt-get install dovecot-sieve dovecot-managesieved

Sieve für LMTP aktivieren

Wir aktivieren nun das Sieve Plugin für den LMTP (Local Mail Transfer Protocol). Dazu editieren wir die Datei /etc/dovecot/conf.d/20-lmtp.conf:

protocol lmtp {
  # Space separated list of plugins to load (default is global mail_plugins).
  mail_plugins = $mail_plugins sieve
}

Sieve konfigurieren

Nun richten wir Sieve selbst ein. Dazu editieren wir /etc/dovecot/conf.d/90-sieve.conf. Generell gilt, dass ein Benutzer beliebig viele Sieve-Skripte haben kann. Diese müssen an einem Ort gespeichert werden. Hierfür bietet sich z.B. /var/vmail/sieve/scripts/%u an. Hierbei ist %u ein Platzhalter für den vollständigen Benutzernamen inklusive Domain, also der Form user@example.com. Außerdem muss der Ort für das aktuell aktive Sieve-Skript eines Nutzers angegeben werden. Ein Nutzer kann zwar beliebig viele Sieve-Skripte definieren, hat aber immer nur genau ein aktives Skript. Wir nehmen hier den Pfad /var/vmail/sieve/%u.sieve. Die 90-sieve.conf beinhaltet nun folgendes:

sieve = file:/var/vmail/sieve/scripts/%u;active=/var/vmail/sieve/%u.sieve

Wer ein Sieve-Skript für einen Spamfilter anlegen möchte, also z.B. bei vorliegen eines Spam-Headers in einen Spam-Ordner filtern möchte, tut dies in der Regel bevor das Skript des Benutzers ausgeführt wird. Daher wird sieve_before gesetzt. Folgendes könnte in 90-sieve.conf eingetragen werden:

sieve_before = /var/vmail/sieve/spam-global.sieve

Die Datei spam-global.sieve kann wie folgt aussehen:

require "fileinto";
if header :contains "X-Spam-Flag" "YES" {
  fileinto "Spam";
}

Managesieve konfigurieren

Um unsere Sieve-Skripte auch von außen bearbeiten zu können, müssen wir nun managesieve aktivieren. Wir bearbeiten /etc/dovecot/conf.d/20-managesieve.conf:

service managesieve-login {
  inet_listener sieve {
    port = 4190
   }
}

Damit hätten wir es geschafft. Jetzt noch neu starten!

sudo service dovecot restart

Roundcube

Zuerst richten wir das Plugin managesieve für Roundcube ein. Dazu legen wir die Configdatei config.inc.php durch Kopieren der Defaultconfig config.inc.php.dist an:

cp /path-to-roundcube/plugins/managesieve/config.inc.php.dist /path-to-roundcube/plugins/managesieve/config.inc.php

Nun editieren wir die config.inc.php wie folgt:

$config['managesieve_port'] = 4190;
$config['managesieve_host'] = '%h';
$config['managesieve_usetls'] = true;

Der Port 4190 ist der Standardport für Sieve und wir haben diesen in der managesieve.conf von Dovecot entsprechend gesetzt. Ich gehe davon aus, dass die Hostnamen in der Roundcube Konfigurationsdatei explizit gesetzt sind. So ist es mit dieser Konfiguration auch möglich Sieve-Skripte auf fremden Mailservern (ungleich localhost) zu editieren. Da dies möglich ist, sollten wir managesieve_usetls auf jeden Fall auf true setzen, damit wir Transportverschlüsselung haben. Wir müssen nun noch das managesieve-Plugin in der Roudcube Konfigurationsdatei aktivieren. Bei mir sieht /path-to-roundcube/config/config.inc.php ausschnittsweise wie folgt aus:

$config['default_host'] = array('tls://imap.occumail.net','tls://imap.digitalcourage.de');
$config['smtp_server'] = 'tls://smtp.%z';
$config['smtp_port'] = '587';
$config['plugins'] = array(
'emoticons',
'archive',
'zipdownload',
'password',
'managesieve',
);

Filter in Roundcube bearbeiten

Wir können uns nun in Roundcube einloggen. Oben rechts unter Einstellungen finden wir nun links den Eintrag Filter. Hier können wir neue Filtersätze anlegen und einen Filtersatz aktivieren. Filter können sehr komfortabel über die GUI zusammengeklickt werden. Roundcube generiert das Sieve-Skript und pusht dieses auf den Server.

Bezüglich der möglichen Filter sind bei mir keine Wünsche offen geblieben. Aktuell wäre mir nicht bekannt, dass die Sieve-Skriptsprache Operationen unterstützt, die hier nicht abgedeckt werden. Solltest du andere Erfahrungen gemacht haben, dann kontaktiere mich doch bitte und ich werde den Artikel entsprechend ergänzen!

Einstellen eines Sieve-Filters auf Roundcube
Categories
Administration / Webmaster Datenschutz German IT-Security Linux Wordpress

Sicherheit und Datenschutz mit Content-Security-Policy Header für WordPress

Heute wollen wir uns mit Content Security Policy (CSP) Headern beschäftigen. In erster Linie ist dies ein Sicherheitsfeature, um das Laden von (Java-)Skripten, aber auch Bilder, Fonts, iFrames etc. aus böswilligen Quellen zu unterbinden und so insbesondere Cross-Site-Scripting zu unterbinden. Wikipedia sagt dazu folgendes:

Content Security Policy (CSP) ist ein Sicherheitskonzept, um Cross-Site-Scripting und andere Angriffe durch Einschleusen von Daten in Webseiten zu verhindern.

In der Praxis sind jedoch Cross-Site-Scripting-Schwachstellen sehr verbreitet. Die Content Security Policy erzwingt eine strikte Trennung zwischen Inhaltsdaten im HTML-Code und externen Dateien z.B. mit JavaScript-Code. In der Regel ist der JavaScript-Code statisch und wird nicht dynamisch generiert.

Content Security Policy, Wikipedia

Wir wollen CSP aber für noch mehr benutzen: Wir können damit auch unerwünschte Drittanbieter ausschließen, die uns WordPress quasi aufzwingt. Diese Drittanbieter können die Besucher eurer Webseite möglicherweise (in einigen Fällen sogar ziemlich sicher) tracken. Wer seinen Benutzern gegenüber Datenschutzfreundlich sein möchte, verzichtet nicht nur auf Google Analytics, sondern auch auf andere Drittanbieter. Dennoch möchte ich das Analysieren von Benutzerverhalten nicht gänzlich verteufeln, denn es liefert nützliche Einsichten, welche Reichweite man mit seinem Angebot erzielt und welche Angebote die Besucher womöglich besonders interessieren. Aber dazu gibt es auch Datenschutzfreundliche Alternativen: Matomo ist ein Paradebeispiel, welche ein selbst gehostetes System darstellt und freingranulare Einstellungen im Bezug auf Datenschutz bietet. Aus meiner Sicht ist der wichtigste Punkt, dass die Daten in den eigenen Händen bleiben und nicht z.B. bei Google landen. Ich beschreibe daher hier auch wie Matomo mit CSP funktioniert, wenn dieses auf einer Subdomain wie https://matomo.the-digital-native.de betrieben wird.

Für WordPress ganz übliche Drittanbeiter sind:

  • Gravatar: Verknüpft beim Dienstanbieter hinterlegte Avatare mit der E-Mailadresse. Sammelt möglicherweise Daten und wird ohnehin von nur wenigen Nutzern gebraucht. Damit Benutzer trotzdem Avatare verwenden können, ist es ratsam das Plugin WP User Avatar als Ersatz zu installieren.
  • Google Fonts: Stellt zentral und kostenlos Schriftarten zur Verfügung, die durch Webdesigner einfach als Fremdresource eingebunden werden können. Eine der ärgerlichsten Datenschutzsünden, denn Google erfährt so von jedem Besucher! Außerdem ist es wirklich sehr einfach möglich, Fonts auch auf dem eigenen Server abzulegen und per CSS nachzuladen. Es gibt also nicht mal einen guten Grund auf diesen Service zurück zu greifen.

Basiskonfiguration für WordPress

Folgende Konfiguration habe ich ausführlich getestet und kann im VirtualHost von apache2 so in der Form hinterlegt werden:

Header always set Content-Security-Policy \
  "default-src 'none'; \
  img-src 'self' data: \
  style-src 'self' 'unsafe-inline'; \
  font-src 'self' data:; \
  script-src 'self' 'unsafe-inline' 'unsafe-eval'; \
  frame-src 'self' \
  form-action 'self'; \
  base-uri 'none'; \
  frame-ancestors 'self'"

Was bedeuten diese Optionen nun?

  • default-src wird immer dann angewandt, wenn eine Ressource geladen werden soll, auf die keine andere Regel zutrifft. Es wird hier empfohlen none zu setzen. Wer ein Kontakt-Formular wie Contact Form 7 einsetzt, wird hier leider zumindest self setzen müssen. Theoretisch sollte das auch anders gehen (via Direktive connect-src auf self). Leider funktioniert dies in der Praxis nicht.
  • img-src definiert, woher Bilder per <img>-Tag geladen werden können. self benötigt man hier logischerweise. Die Option data: ermöglicht das Laden von Bildern aus im HTML codierten Bildmaterial. Dies nutzt WordPress ebenfalls. Wer weitere Quellen für Bilder hat, muss diese hier angeben. Hier schließen wir u.a. Gravatar aus. Wer seinen Benutzern trotz allem Gravatar zur Verfügung stellen möchte, muss hier die URL https://secure.gravatar.com hinzufügen.
  • style-css gibt an, woher CSS-Dateien geladen werden können. Leider muss hier die unsichere Option unsafe-inline hinzugefügt werden, weil WordPress mittels <style>-Tag CSS-Attribute in das HTML einbettet. Dies ist ein Sicherheitsdefizit von WordPress. Wir schließen hier insbesondere auch Google Fonts aus, denn darauf kann man bei auch nur etwas Liebe zum Datenschutz wirklich verzichten.
  • font-src gibt Möglichkeiten zum Nachladen von Schriftarten an. Werden nur Systemschriftarten eingesetzt, kann hier none gewählt werden. WordPress lädt aber, je nach Theme, Schriftarten nach. Zum Teil auch eingebettete Schriftarten, sodass data: nötig wird.
  • script-src gibt insbesondere die Quellen für JavaScripte an. Dass wir hier self haben ist ok, jedoch erfordert WordPress auch unsafe-inline und unsafe-eval, was ein besonderes Sicherheitsrisiko darstellt. Letzteres ermöglicht das Ausführen von JavaScript-Code mit der so genannten eval()-Funktion und gibt als typischer Punkt, um Schadcode einzuschleusen. Die Entwickler von WordPress sollten hier dringend nachbessern und auch ohne unsafe-eval auskommen.
  • frame-src ermöglicht das Laden von Webseiten in <frame> oder <iframe> Elementen. Sollte aus Sicherheitsgründen auf self beschränkt bleiben, falls möglich.
  • form-action beschränkt die Webseiten, die durch das Absenden eines Formulars erreicht werden können. Für Funktionen wie Kontaktformulare, Newsletteranmeldung (lokal) etc. sollte hier self genügen.
  • Setzt man base-uri auf none, muss jede verlinkte Ressource mit einem vollständigen Pfad angegeben werden. Damit wäre z.B. <img src="my_picture.png"> nicht zulässig, sehr wohl aber <img src="https://the-digital-native.de/my_picture.png">. Erfreulicherweise setzt Wodpress dieses Sicherheitsfeature um!
  • frame-ancestors erlaubt bzw. verbietet, dass die eigene Webseite in andere Webseiten eingebunden werden kann, z.B. per iframe. Die Option self verhindert möglicherweise Missbrauch des eigenen Contents durch andere Webseitenbetreiber.

Konfiguration von Matomo

Ich empfehle Matomo auf der eigenen Domain zu hosten, z.B. als Subdomain. In dem Fall muss Matomo in img-src sowie script-src hinzugefügt werden. Wenn man die Opt-Out-Box von Matomo z.B. in die Datenschutzerklärung einbinden möchte, muss Matomo auch als frame-src zulassen, da es mittels iFrame eingebunden wird.

Header always set Content-Security-Policy \
  "default-src 'none'; \
  img-src 'self' data:  https://matomo.the-digital-native.de; \
  style-src 'self' 'unsafe-inline'; \
  font-src 'self' data:; \
  script-src 'self' https://matomo.the-digital-native.de 'unsafe-inline' 'unsafe-eval'; \
  frame-src 'self' https://matomo.the-digital-native.de; \
  form-action 'self'; \
  base-uri 'none'; \
  frame-ancestors 'self'"

Konfiguration für WordPress Administration

Die WordPress-Administration benötigt etwas mehr Rechte, um korrekt zu funktionieren. Da ich die Rechte für die Benutzerspezifischen Seiten nicht unnötig ausweiten möchte, habe ich in apache2 eine Location-Direktive erstellt, die auf das Unterverzeichnis wp-admin abzielt.

<Location ~ "/wp-admin">
Header always set Content-Security-Policy \
  "default-src 'self'; \
  img-src 'self' data: https://ps.w.org https://s.w.org; \
  style-src 'self' 'unsafe-inline'; \
  font-src 'self' data:; \
  script-src 'self' 'unsafe-inline' 'unsafe-eval'; \
  form-action 'self'; \
  base-uri 'none'; \
  frame-ancestors 'self'"
</Location>

Konfiguration von Matomo

Auch hier braucht eine Matomo Instanz ein paar extra-Regeln, um die Einbettung in das Adminmenü zu ermöglichen. Eine Konfiguration kann wie folgt aussehen:

<Location ~ "/wp-admin">
Header always set Content-Security-Policy \
  "default-src 'self'  https://matomo.the-digital-native.de; \
  img-src 'self' data: https://ps.w.org https://s.w.org  https://matomo.the-digital-native.de; \
  style-src 'self' 'unsafe-inline'; \
  font-src 'self' data:; \
  script-src 'self' https://matomo.the-digital-native.de 'unsafe-inline' 'unsafe-eval'; \
  form-action 'self'; \
  base-uri 'none'; \
  frame-ancestors 'self'"
</Location>

Weitere Plugins

Wer das Plugin Yoast zur SEO-Optimierung benutzt, muss unter default-src den Eintrag https://yoast.com hinzufügen.

Generell gilt, dass ihr bei weiteren Plugins immer überprüfen solltet, ob diese auch funktionieren. Unter F12 gibt es in Firefox & Chrome die Console, wo durch CSP geblockte Inhalte angezeigt werden. Surft damit durch eure Webseite und auch das Admin-Menü. Fügt, falls nötig, weitere Webseiten zu den einzelnen Policies hinzu. Bedenkt aber: Lokale Lösungen sind Drittanbietern aus Datenschutzsicht immer vorzuziehen! Verwendet z.B. einen eigenen Captcha-Generator statt Googles ReCaptcha. Ja, es gibt viele Dienste, die euren Benutzern tolle Funktionalitäten bieten, aber wägt immer zwischen Datenschutz und Nice-To-Have Features ab!

Qualität der CSPs testen

Dafür gibt es das Mozilla Obversatory. Trotz dass wir das Maximum rausgeholt haben und einige grüne Häkchen sammeln, bekommen wir aktuell leider -20 Punkte. Kaputt macht uns das Ranking unsafe-inline und unsafe-eval. Hier sind die Softwareentwickler von WordPress gefragt, die hier als einziges Abhilfe schaffen können. Es bleibt Verbesserungspotential!

Mozilla Obversatory für https://the-digital-native.de

Garvatar Ersetzen

Fazit

Mit Content Security Policy Headern kann man eine Menge an zusätzlicher Sicherheit und Datenschutz für seine Nutzer erzielen. Eine gut getestete Grundlage für eine WordPress-Basisinstallation sowie eine Matomo Instanz haben wir hier geliefert. Bereits dies war tagelange Ausprobiererei, bis wir das Optimum an CSPs erreicht haben, ohne das die Funktionalität Schaden genommen hat. Komplexere Installationen benötigen hier evtl. nochmals mehr Aufwand.