Fake News - kein Kraut gewachsen?

Letztens las ich von einer “massiven Fake News Maschinerie”, die das deutsche Außenministerium aufgedeckt haben will (siehe unten). Sie sei kaum noch von legitimen Nachrichten zu unterscheiden.

Mir kam spontan der Gedanke, dass wenn man nicht in der Lage ist, manipulierte Nachrichten zu stoppen, man doch wenigstens in der Lage sein sollte legitime Nachrichten zu kennzeichnen.

Die Idee ist einfach: Lasst uns ein digitales Netzwerk des Vertrauens schaffen mit kryptografischen Mitteln.

Ab hier wird es technisch…

Die einfachste Form des Signierens ist die Berechnung eines Hash Wertes. Also nehmen wir an, ich möchte als @holtwick tweeten: “Ich mag keine Fake News!” und mein Geheimnis wäre “Gurkensalat” (üblicherweise engl. als “salt” benannt). Im Terminal ginge das dann so:

echo -n "@holtwick Ich mag keine Fake News! Gurkensalat" | shasum -a 256

Alternativ mir OpenSSL:

echo -n "@holtwick Ich mag keine Fake News! Gurkensalat" | openssl dgst -sha256

Das Ergebnis ist:

26b1a58b82ffcc963e1a337623886b7d6dcf8c63dff592b9fa9113fd29aa82e7

Das kann auch schon berechnet werden, bevor ich es tweete. Dann nehme ich einen Teil der Ergebnisses, z. B. die ersten 8 Zeichen und sende sie mit der Nachricht, vielleicht noch mit einem Erkennungsmerkmal, wie einem vorangestellten ~ Zeichen:

@holtwick

Ich mag keine Fake News! ~26b1a58b

So, nun geht es noch darum, sowas zu verifizieren. Denkbar wäre ein kleiner Service auf der eigenen Website. Hier ein kleines Beispiel in PHP, wie eine Online Prüfung aussehen könnte:

<?php 

// This one is top secret :)
$salt = "Gurkensalat";

// Normalize whitespace to avoid copy paste issues
$sample = trim(preg_replace('/[\t\n\r\s]+/', ' ', $_GET["text"])) . " " . $salt;

// Calculate SHA256 and only use the first 8 chars
$hash = substr(hash('sha256',  $sample), 0, 8);

// Compare hashes and return result
echo strcmp($_GET["hash"], $hash) == 0 ? "ok" : "invalid";
?>

Die fertige URL wäre dann: https://holtwick.de/experiments/id.php?text=@holtwick%20Ich%20mag%20keine%20Fake%20News!&hash=26b1a58b

Probiere es aus:

Ok, das war jetzt eine relativ primitive Implementierung, um die Idee zu verdeutlichen. Für eine ernsthafte Anwendung würden sicherliche andere Techniken zum Einsatz kommen, wie z.B. ein Public-Key-Verfahren oder Blockchains. Natürlich gibt es auch schon Dienste, die ähnliches leisten wie diese Übersicht der Bundesnetzagentur zeigt.

Warning

Ich bin kein Kryptographie Experte und sicherlich habe ich einige Angriffsvektoren übersehen, trotzdem bin ich der Meinung, dass technische Möglichkeiten geben kann, die es zumindest erschweren in falschem Namen Dinge zu behaupten.

Quellen

Veröffentlicht am 7. Februar 2024

 
Zurück zur Liste der Beiträge