Categories
Internet

Mastodon

I’m getting a lot of Usenet deja-vues when looking at the Mastodon architecture. A collection of servers that create a shared space for communication.

I like it. It should be this way: independent of a single operator.

But it’s hard to pull off the scaling and the abuse management. The Usenet Death Penalty (UDP) seems to have been built in and actually being used to keep misbehaving servers from ruining the experience for everybody.

Anyway, I’m otmar@infosec.exchange, let’s see if this link works as validation.

Categories
Austria Politics

#define gerechte Pensionen

Weil mal wieder der Generationenvertrag in Sachen Pensionen im Gespräch ist, und Alt gegen Jung diskutiert, will ich hier mal einen Gedanken einwerfen, der zu oft ignoriert wird.

Wir haben ein Umlagesystem bei den Pensionen: die jetzt Arbeitenden zahlen die Pensionen der vorigen Generation in der Erwartung, dass dann ihre Kinder und Enkel das Gleiche für sie machen werden. Alles gut und sinnvoll, aber was genau meinen wir eigentlich mit „das Gleiche machen“?

Durch die demoskopischen Entwicklungen und die Änderungen in der Lebenserwartung sind die Randbedingungen nicht konstant geblieben, die Frage hat daher keine triviale Antwort. Ich sehe grob zwei Ansätze, wobei ich bewusst nicht behaupte, dass der eine wahrer ist als der andere.

Der anspruchsbasierte Ansatz

Nach x Jahren Arbeit / ab dem y. Lebensjahr hat man einen Anspruch auf eine Pension in der Höhe von f(Arbeitseinkommen). Wenn die Generation, die jetzt in Pension ist, das für ihre Vorgänger ermöglicht hat, dann ist es nur fair, wenn auch sie zu den gleichen Konditionen in Pension gehen können. Ja, an ein paar der Parameter wurde in den letzten Jahren leicht gedreht, etwa der Funktion, die aus dem Einkommen über die Berufsjahre die Pensionshöhe ermittelt, aber der Ansatz blieb der gleiche: man hat sich eine Pension in einer gewissen Höhe verdient, und die haben die Kinder und der Staat zu garantieren. „Ist ja fair, wir haben das gleiche für unsere Vorfahren gemacht.“

Der kostenbasierte Ansatz

Wir können aber auch andersherum rechnen: die jetzigen Pensionisten mussten während ihres Arbeitslebens für die Unterstützung ihrer Eltern/Großeltern einen gewissen Teil ihres Einkommens abgeben. Teils direkt per SV-Abgaben auf ihr Einkommen, teils per Arbeitsgeberbeiträge auf ihren Lohn aber auch über Zuschüsse aus dem regulärem Staatsbudget. Das könnte man sicher aus historischen Statistik- und Budgetdaten für jedes Nachkriegsjahr ausheben. Der genaue Prozentwert spielt hier keine Rolle, aber ich bin mir sehr sicher, dass er über die Jahre hinweg gestiegen ist, weil die Bevölkerung nicht mehr so stark wächst (was das Ganze in Richtung Ponzi-Schema gerückt hat) und die Lebenserwartung viel stärker gestiegen ist als das Pensionseintrittsalter. Man kann gut argumentieren, dass das nicht fair ist. Warum sollen heutigen Arbeitenden mehr ihrer Wirtschaftsleistung an die Pensionisten abgeben, als was diese früher für ihre Vorgänger abgegeben haben?


Aus einer rein rationalen Sicht sind beide Ansätze gleich richtig. Beide sind in sich konsistent und logisch. Der Mathematiker und Informatiker in mir sagt: wenn man bei einer Optimierungsaufgabe die Zielfunktion nicht klar definiert (hier „Was ist gerecht?“), dann kann man nicht objektiv die beste Lösung suchen. Das geht mir bei der aktuellen Debatte ab. Die Anerkennung, dass es mehr als einen Blickwinkel auf das Thema gibt, und dass man daher einen politischen Kompromiss suchen wird müssen.

Aber in einem Bereich bin ich ganz hart für den kostenbasierten Ansatz: Angeblich sind die Politikerpensionen in Italien komplett aus dem Ruder gelaufen, weil schon kurze Karrieren dort großen Pensionsansprüche triggern. Hier wäre ein hartes „Aber in Summe kriegen sie nicht mehr als x% vom BIP.“ hilfreich.  

Categories
Austria Internet Politics

ID Austria und der Bundestrojaner

[2022-08-16: ein paar Klarstellungen hinzugefügt.]

Letztens hat wer auf Twitter geschrieben, dass es doch sein könnte, dass in die für ID Austria vorgesehene Smartphone App („Digitales Amt“) ein Bundestrojaner eingebaut ist. Ich halte das für ausgesprochen unwahrscheinlich, die Argumente dahinter (neben den trivialen “das schaffen sie nicht” und “das wäre illegal”) eignen sich aber nicht für Twitter, daher dieser Blogpost.

Auf die Frage, warum SMS nicht mehr sicher genug ist, und warum eine App am Smartphone als zweiten Faktor die Lösung sein soll, will ich hier nicht eingehen. Das ist ein anderes Thema, und ist in der Form auch gar nicht mehr wahr, da auch FIDO Tokens (Level 2) unterstützt werden. Auch das Thema Datenschutz will ich hier nicht ansprechen.

Hintergrund

Wir sind in Österreich gewöhnt, dass der Staat uns Mittel in die Hand gibt, uns mit sehr guter Qualität auszuweisen (und wir unsere Gegenüber), also zu beweisen, wer wir sind. Pässe und Personalausweise sind hilfreich. Wo es das nicht flächendeckend gibt (etwa im angelsächsischem Raum), dort wird dann auf so schwache Hinweise wie Stromrechnungen zurückgegriffen und dort gibt es viel mehr Probleme mit Betrug per Identitätsdiebstahl.

Es ist daher nicht überraschend, dass schon länger versucht wird, das gleiche Konzept auch auf die virtuelle Welt im Internet zu übertragen. Auch hier wäre es in vielen Fällen gut, wenn ich mich (als Nutzer, der einen Browser bedient) klar gegenüber einer Webseite ausweisen kann. Das kann von simplen e-Commerce bis hin zu e-Government reichen. Klar ist das oft mühsam, aber es ist oft zu meinem eigenen Schutz, damit niemand anderer in meinem Namen etwas machen kann. Beispiel aus der offline-Welt von 2007: Ich hebe eine große Summe Bargeld am Bankschalter ab, damit ich mein neues Auto bar bezahlen kann. Darauf will man sowohl meine Bankkarte, als auch einen Ausweis sehen und entschuldigt sich für die Umstände. Ich sag drauf: im Gegenteil, ich wäre sauer, wenn sie jemandem mehrere tausend Euro von meinem Konto geben, ohne sicherzustellen, dass das wirklich ich bin.

Nicht immer ist der „True Name“ relevant, sondern es ist nur wichtig, dass man beim Webservice wiedererkannt wird. Dafür reichen dann Sachen wie „Login via Google/Twitter/Facebook“, wobei es mir massiv gegen den Strich geht, meine Online-Aktivitäten auf vielen Webseiten vom Vorhandensein meines Google-Accounts abhängig zu machen. Weil bei den dortigen Gratis-Accounts habe ich null Handhabe, wenn irgendeine KI meint, sie müsse meinen Account sperren.

Ich halten es daher für ausgesprochen gut, dass sich der Staat in das Thema Online Authentication einmischt. Die Historie der Bürgerkarte will ich hier nicht breittreten, aber mit der eIDAS Verordnung auf EU-Ebene entsteht langsam ein föderiertes System von nationalen Identifikationsmethoden, die es jedem EU Bürger erlauben wird, sich EU-weit online zu identifizieren. Das ist einer der Kernbausteine des EU Single Market, und die EU treibt auf vielen Seiten das Thema Verifikation von Online-Identitäten voran. Das kann man jetzt gut finden, oder nicht, siehe etwa meine Blogposts zu NIS2 und Domaininhabern.

eID  / ID Austria

Aus dem obigem ergibt sich, dass ID Austria kein kurzfristiges Projekterl wie etwa das „Kaufhaus Österreich“ ist. ID Austria ist für Österreich nicht optional. Es ist strategisch wichtig, um die national Souveränität in der Onlinewelt zu erhalten. Und es ist eine Vorgabe von der EU, die umzusetzen ist.

Kurz: das Teil ist wichtig, da hängt viel dran. Das muss funktionieren. Was bewirkt sowas in der Umsetzung? Viel Aufmerksamkeit, jede Menge Leute, die mitreden und entsprechende Kontrolle.

Ist es daher denkbar, dass eine (illegale) Spionagekomponente als Teil des offiziellen Projektplans der ID Austria aufgenommen wurde? Keine Chance. Da sind zu viele Leute involviert. Das gefährdet deren Baby massiv.

Gäbe es ein bewusstes Backdoor und würde das enttarnt werden, so hätte das massiv negative Effekte. Auf die Beteiligten und das Thema eID. Das wäre ein Spiel mit sehr hohem Risiko.

Beteiligte Player

Früher habe ich, wie sicher viele andere auch, die Behörden als eine Einheit gesehen. Im Zuge der Zusammenarbeit mit der öffentlichen Verwaltung ist mir aber klargeworden, dass das völlig falsch ist. Erst mal muss man zwischen Bund, Ländern und Gemeinden unterscheiden, die oft divergente Interessen haben. Aber auch der Bund ist kein Atom: jedes Ministerium ist eigenständig, hat eigene Ziele, Prozesse und House-Rules. Zoomt man weiter, so sieht man weiter Strukturen, gerade das BMI und das BMLV sind Paradebeispiele von komplexen Organisationen mit jeder Menge interner Interessenskonflikte und Friktionen.

Wenn man also die Frage stellt, ob der Staat in die ID Austria App („Digitales Amt“) einen Bundestrojaner einbaut, dann muss die erste Rückfrage sein: Wer genau würde das tun?

Das Thema eID ist ein bisschen ein Wanderpokal: lange war das im Bundeskanzleramt angesiedelt, mit Schwarz-Blau wurde es an das BMDW (Bundesministerium für Digitalisierung und Wirtschaftsstandort) übergeben, und jüngst ist es in das Finanzministerium verschoben worden. Aus welcher Ecke käme der Wunsch, in die App eine Überwachungsfunktion einzubauen? Beim letzten Gesetzesvorschlag in die Richtung war das Innenministerium (genauer, das Bundeskriminalamt) zuständig. (Theoretisch könnte man noch an das BMLV/Abwehramt denken, in der Praxis passt das aber überhaupt nicht.)

Wir haben erst jetzt mit der Schwarz-Grünen Koalition BMI und BMx in der gleichen Couleur. Dass ein blauer Innenminister so etwas im der schwarzen BMDW-Frontfrau im Geheimen ausdealt? Nah. Und dass das nach Koalitionsende geheim bleibt? Sehr unrealistisch.

Neben den Ministerien ist aber auch noch der Technologiepartner im Spiel. Das BMDW programmiert die App ja nicht selber. Soweit ich weiß, ist das in diesem Fall das Bundesrechenzentrum (BRZ). Wie soll das BMI, das hier gar nicht Auftraggeber ist, und auch keine juristische Grundlage dafür hat, dem BRZ einreden, in die App noch was reinzugeben? Auf welcher Basis? Mit welchem Budget?

Gesetzeslage

Die anlasslose „Überwachung“ mittels der Vorratsdatenspeicherung wurde von den Höchstgerichten gekippt. Die von Schwarz-Blau angestrebte gezielte Kommunikationsüberwachung von Verdächtigen per Software am Handy wurde auch untersagt.

Eine Überwachungskomponente in der ID Austria App ist daher rechtlich sicher nicht zulässig.

Ja, man kann natürlich behaupten, dass das irrelevant ist, weil Gesetze gebrochen werden können. Meiner Erfahrung nach kommt das vielleicht im Kleinen vor, je mehr Personen aus verschiedenen Organisationen im Spiel sind, umso unwahrscheinlicher ist das.

Der Kreis der Verschwörer ist zu groß, und Vorteil, den sie daraus ziehen, ist zu abstrakt. Klassische Korruption passt hier nicht als Motiv, wie sollte man diesen Gesetzesverstoß zu privater Bereicherung nutzen? Was haben die Leute im BMDW oder BRZ davon, dass sie hier mitspielen? Für das BMDW wäre das ein Eigentor mit Anlauf. Und was würde es der Polizei wirklich bringen? Sie können mit dem potentiell erlangten Wissen ja nicht vor Gericht gehen, solange das ganze Schema illegal ist.

Weiters muss man sich noch die Frage stellen, ob die Tätergruppen, die gerne für diverse Überwachungsphantasien herhalten müssen, überhaupt die App haben. Pöhse Ausländer, Organisierte Kriminalität, Terroristen? Die haben sicher die App, um damit ihren Meldeschein auszufüllen und bei Volksbegehren zu unterschreiben. Genau.

Technisches

Im Gegensatz zum Einsatz von klassischer polizeilicher Ãœberwachungssoftware wird die „Digitales Amt“ App über die normalen App-Stores verteilt. Was heißt das?    

  • Die App muss durch die Sicherheitschecks von Apple und Google durch. Ja, die sind nicht perfekt, aber: Das muss bei jedem kleinen Update funktionieren, immer und immer wieder. Es reicht nicht, dass das einmal unerkannt bleibt. Egal, was die beiden in Zukunft machen, die Ãœberwachungskomponente darf nie erkannt werden.
  • Kauft man diese aber wo zu, ist die Chance sehr hoch, dass diese mal irgendwo auffliegt und dass dann die Erkennungen entsprechend verbessert werden.
  • Die App wird als normale App installiert und bekommt nur einen minimalen Satz an Rechten. Für die Nutzung als Spionagewerkzeug bräuchte sie viel mehr Privilegien, die sie sich über Schwachstellen erarbeiten müsste. Das ist nicht einfach und ein „moving target“.
  • Apps sind ziemlich einfach zu de-kompilieren. Es ist daher anzunehmen, dass sich mal wer den Code (der ja verfügbar ist) anschaut.

Zusammenfassung

  • Die Kosten+Risiko – Nutzen Rechnung geht für den Staat nicht auf
  • Die Involvierten haben großteils negative Motivation, warum sie das machen sollten
  • Technisch schwierig. Hohes Risiko, enttarnt zu werden
  • Es wäre klar illegal
  • Es sind viel zu viele Player involviert

Trotzdem

Es wäre kein Fehler, wenn man – analog zur Covid-Tracking App – auch hier die Civil Liberties- und Datenschutz-NGOs einbindet und mit wirklich offenen Karten spielt.

In Bezug auf den Datenschutz wurde das auch gemacht, die Datenschutz-Folgenabschätzung vom Research Institute ist umfassend und erklärt gut die Datenflüsse und Behandelt die Risiken in dieser Hinsicht.

Von einem unabhängigen Code-Review, Sicherheitstests oder laufenden Einsichtmöglichkeiten in den Source-Code der App habe ich aber (noch) nichts gehört.

Categories
System Administration

Parsing the EU Digital COVID Certificate

I recently go my first Covid-19 shot, and shortly after that I received my QR code that is supposed to prove to anybody that I’m vaccinated.

Of course, I was interested in the actual technical implementation of the thing so I started tinkering around. Initially, I wasn’t sure whether the QR code just links to a webpage or is a standalone document, but reading the documentation quickly made clear that it simply contains a signed document.

There is a python snippet floating around that does all the decoding (decode base45, decompress, decode cbor, ignore signature, cbor decode), but I was wondering whether I can just use standard Linux command-line tools to do the same.

To my big surprise, I could not find a simple base45 decoder to be used on the command line. Neither the GNU coreutils (which supports a bunch of encodings) or basez have implemented base45 yet. For a quick coding exercise, getting code into the coreutils was a bit too ambitious, so I rolled my own in a few minutes. I haven’t done coding in C for quite some time, so this was fun. (while probably not necessary, this should be doable as a one-liner in Perl)

Next step: The libz decompression. Here, too, I was surprised that my Debian box did not have a simple program ready to do it. After some googling, I found that
zlib-flate -uncompress
does the trick. zlib-flate is included in the qpdf package.

Update: The debian package zlib1g-dev contains a few example programs, zpipe.c does exactly what I need. Just copy the file from /usr/share/doc/zlib1g-dev/examples/ , compile with “cc -o zpipe zpipe.c -lz”.

Then cbor: at first this looked easy, there is a libcbor0 in Debian and appropriate modules for Perl and Python. But a command-line tool? That’s not included by default.

Initially, I tried using
python3 -m cbor2.tool
and then continue with jq to select the right element (jq ‘.”CBORTag:18″[2]’ seems to do the trick) but I ran into encoding issues: I did not manage to extract the element in binary form, I always had escape sequences like ‘\x04’ or ‘\u0012’ in there which are not suitable for next step of cbor decoding.

Update: I’ve now read a bit more about the cbor standard and on the things it can do that JSON can’t, is handling raw binary data. JSON knows strings, yes, but they are character strings encoded in utf-8, not sequences of octets. Back in the old days of latin1 that might not have mattered that much, but these days you really shouldn’t mix those two.

So this is still work in progress, watch this space for updates.

Updates:

  • I’m not the only one who tried this, see also this blogpost by Corentin Dupont.
  • Based on troubles with faked certificates, I had a closer look at the key distribtion and updates of the Austrian green pass system. I documented the results in a blogpost at CERT.at.

Categories
Internet

Ein anderer Vorschlag zu Facebook

Markus Sulzbacher schlägt im Standard vor, Facebook aus Datenschutz/Kartellrechtsgründen zu zerschlagen.

Ich hätte da einen andere, deutlich subtilere Idee:

Facebook (das social media network) selber halte ich nicht für wahnsinnig wichtig, diese Netze kommen und gehen und Facebook wird hier keine Ausnahme sein. Ich halte WhatsApp für die langfristig deutlich spannendere Plattform, weil sie ein deutlich grundlegenderes Thema mit noch stärkerem Metcalfe’s Law Effekt behandelt: Die simple (text/voice) Kommunikation zwischen zwei Menschen und (fast noch wichtiger) in Gruppen.

Es gibt aus regulatorischer Sicht dafür aber bereits eine klare Lösung, die beim Telefonnetz super funktioniert hat und die Monopole erfolgreich aufgebrochen hat: Die Pflicht zur transparenten Vernetzung der Telefonanbieter inklusive Nummernportierung.

Daher: es wäre einfach an der Zeit, IM Systeme mit einer gewissen Marktmacht, also etwa Skype, WhatsApp, Facebook Messenger, iChat, … genauso zu behandeln, wie Telefonnetze und SMS und deren Interoperabilität vorzuschreiben.

Ja, das kann Österreich nicht im nationalen Alleingang machen, aber die EU hätte die Macht dazu.

Ob die EU auch die Eier dafür hat, ist die offene Frage.

Categories
Windows 10

A nugget from the Windows 10 Event log

While investigating why Outlook stopped working, I found the following in the EventLog:

win10-event

2117? WTF?

Categories
Pet Peeves Windows 10

Win10: controlled folder access

I’ve enabled controlled folder access on my work Windows 10 machine.  Now it is giving me notifications like:

win10-ransomare

The idea is fine, of course I need to finetune the settings (and one click brings to the relevant settings page), but how the §$%& should I know which program to white-list? I cannot find a way to get the full path of the offending program.

I need to search.

Why is there no “Application ‘full path’ is trying to make changes: whitelist y/n” dialogue?

Categories
Windows 10

Windows accounts for Kids

While being logged in with my Microsoft Account I did not manage to create local accounts for the kids. There is this nice and fluffy “Create accounts for your family” system, but that implies that you create Microsoft Accounts for everybody.

I refuse to do that for kids. Sorry Microsoft, they are kids, they should not need cloud-based accounts yet.

Apparently you can create additional local account if you’re logged in on a local account. Great.

But there is no GUI to set the time limits for the kids if they are using a local account. You have to do this one the command line. e.g. with

net user kid1 /times:Sa,08:00-20:00

See this article.

Categories
Pet Peeves Windows 10

Windows 10 peeves

I’m not a computer newbie. Neither am I a first-time Windows user.

Windows 10 has proved to be a very mixed bag for me. Some things are very clever and nicely done, and then there are a bunch of “what the f*ck were they thinking” moments for me.

I’ve now added the category “Windows 10” to this blog to keep track of my peeves and my workarounds.

 

Categories
CERT Internet Pet Peeves

Of Ads and Signatures

Both advertisements and signatures have been with us in the analogue realm for ages, the society has learned about their usefulness and limits. We have learned that it’s (usually) hard to judge the impact of a single ad, and that the process of actually validating a contested signature is not trivial. There is a good reason why the law requires more than a single signature to authorize the transfer of real estate.

Both concepts have been translated to the digital, online world.

And in both cases, there were promises that the new, digital and online versions of ads/signatures can deliver features that their old, analogue counterparts could not do.

For ads, it was the promise of real-time tracking of their effectiveness. You could do “clickthrough rates” measuring how often the ad was clicked by a viewer. The holy grail of ad effectivity tracking is the fabled “conversion rate”: you can measure how many people actually bought your product after clicking an ad.

For signatures, it was the promise of automated validation. If you get a digitally signed document, you should be able to actually verify (and can have 100% trust in the result) whether it was really signed by the signatory. Remember: in the analogue world, almost nobody actually does this. The lay person can detect crude forgeries, but even that only if the recipient has access to samples of authentic signatures. In reality, a closer inspection of handwritten signatures is only done for important transactions, or in the case of a dispute.

So how did things work out after a few years of experience with digital ads and signatures?

Digital ads are in a midlife crisis. We’re in a death spiral of low clickthrough rates, more obnoxious formats, ad-blockers and ad-blocker-blockers. Just look at the emergence of Taboola and similar click-bait.
Digital signatures are at a cross-road as well: The take-up rates of solutions based on smart-card readers have been underwhelming so far. This applies to the German ePerso as well as to the Austrian citizen card. The usability just isn’t there. So there has been a push to increase the take-up rate by introducing alternatives to smart-card technology. That won’t make it more secure. Not at all.

So what’s the common lesson? In theory, both digital ads and signatures can offer features that their old, analogue counterparts just cannot deliver. In practice, they are killing themselves by over-promising. As long as click-through rates are the prime measurement of online ads, their death spiral will continue. And as long as digital signatures continue to promise instant, high-confidence validation, they will not achieve the take-up rates needed for broad acceptance.

Continuing the current trajectory will lead to a hard crash for both technologies. On one side it’s the ad-blocker, on the other side it’s malware.

The level of spam in the email ecosystem meant that no mail-service can exist in the market without a built-in spam-filtering solution. And given the early ad-excesses every browser includes a pop-up blocker these days. If the advertisers continue on their path of getting attention at all costs, ad-blocking will become a must-have feature in all browsers, and not just an optional ad-on (as right now).

Any digital security solution that protects actual money has been under vigorous attack. The cat and mouse game between online-banking defenders and attackers is a good lesson. The same will happen if digital signature solutions start to be actually relevant. And good luck if your “let’s make digital signatures more user-friendly” approach is actually less secure than what online-banking is using these days.

So what’s the solution?

In my opinion the right way to approach both topics is to reduce the promise. Make digital ads static images. No animation. No dynamic loading of js-code (which is its own security nightmare). Don’t overtax the visitor’s resources (bandwidth, browser-performance). No tracking. Tone it down. Don’t expect instant effects. Don’t promise clicktrough rate.

For digital signatures: Mass deployment is only possible for “non-qualified signatures”. Don’t promise “you can fully and solely rely on our solution”. Just sell “this is a good indication”, or “use this as one factor in your security design”. Prepare for it to be attacked and broken. Only use it when you have a pre-planned way to recover from such a breach. The real word is full of applications where signatures are used in a very low-security / low-impact settings. The state-sponsored digital identity solutions needs to think of those, too. For the high-impact, high-confidence settings I always have to think about the mantra we use at work: “You can’t mandate trust.”