Zum Inhalt springen
Zurück zum Blog
Framework18. August 2026 · 9 min read

Wir haben versucht, weichgezeichneten, verpixelten und geschwärzten Text wiederherzustellen. Das kam zurück.

Lässt sich verwischter Text wiederherstellen: 92 % des mit Sigma 4 px verwischten Texts kam in einem Test mit 480 Fällen exakt zurück; eine Kartennummer vorher, verwischt und wiederhergestellt

Kurze Antwort: Wenn ein Screenshot einem Angreifer das liefert, was Screenshots üblicherweise liefern (eine bekannte UI-Schrift, eine bekannte Textgröße, einen erratbaren Filter), dann sind leichtes Gauß-Weichzeichnen und Verpixelung mit kleinen Blöcken keine Schwärzung. In unserem Test mit 480 Fällen gab Weichzeichnen mit einem Radius von 2 bis 4 px den Originaltext in 92 bis 100% der Fälle exakt zurück. Verpixelung mit 4 px gab ihn in 71% der Fälle zurück. Eine "transparente" Überlagerung mit 20% Deckkraft gab ihn jedes einzelne Mal zurück. Das Ergebnis anschließend als JPEG zu speichern, wie es eine Chat-App tut, half kaum. Die einzige Behandlung, die nichts preisgab, war ein deckendes, flaches Feld über dem Text.

Die Regel, die sich aus den Daten ergibt, ist einfach. Wenn der Weichzeichnungsradius oder der Pixelblock kleiner ist als etwa das 0.3-Fache der Schriftgröße in Pixeln, geh davon aus, dass der Text zurückgelesen werden kann. Beim 0.4- bis 0.6-Fachen gibst du immer noch ein Drittel bis die Hälfte der Zeichen preis, und bei einer Kartennummer oder einem API-Key ist das ein Datenleck, kein Weichzeichnen. Erst ab dem 0.8-Fachen fiel die Wiederherstellung auf Zufallsniveau. Dann ist das Weichzeichnen so stark, dass ein deckendes Feld ohnehin besser aussieht.

Alles hier ist reproduzierbar. Der Code, die 480 behandelten Bilder und die Ergebnistabelle sind unter CC-BY veröffentlicht; Link am Ende.

Warum wir das gemacht haben

"Nicht weichzeichnen, sondern schwärzen" ist ein alter Rat. dheera.net hat ihn 2014 begründet, Depix hat 2020 gezeigt, wie verpixelte Passwörter zurückgelesen werden, und security.stackexchange sagt es seit einem Jahrzehnt. Was wir nicht finden konnten, war eine parametrische Antwort: Wie viel Weichzeichnen reicht, bei welcher Textgröße, und was passiert, nachdem das Bild durch einen Messenger gegangen ist, der es neu komprimiert. Die Leute wählen den Weichzeichnungsradius nach Augenmaß. Wir wollten Zahlen.

Methode

Stichproben. Sechs Felder von der Art, die auf geteilten Bildschirmen tatsächlich durchsickert: eine E-Mail-Adresse, eine Kartennummer, eine IBAN, eine Telefonnummer, ein API-Key (sk_live_...) und der Name einer Person. Jedes gerendert in zwei Schriften, Arial (proportional) und Menlo (monospace), bei 14 px und 20 px, auf dunklem UI-Hintergrund, bei 2x Device Pixel Ratio, also ein Retina-Screenshot. Das ergibt 24 Ausgangsbilder.

Behandlungen, zehn Stück. Gauß-Weichzeichnen mit Sigma 2, 4, 8 und 12 px. Verpixelung mit Blöcken von 4, 8, 12 und 16 px. "Transparent": Text mit 20% Deckkraft über den Hintergrund gezeichnet, was manche Tools weiche Maske nennen. Und ein deckendes Feld in der Vordergrundfarbe, das wir Schwärzen nennen. Jedes behandelte Bild wurde zusätzlich noch einmal als JPEG mit Qualität 80 gespeichert. 24 x 10 x 2 = 480 Fälle.

Der Angreifer. Wir haben angenommen, was ein Screenshot eines bekannten Produkts gratis verrät: die Schrift, die Größe, die Position des Felds und seinen Zeichensatz (Ziffern bei einer Karte, [a-z0-9._@-] bei einer E-Mail). Der Angreifer kennt oder errät die Behandlung und ihre Stärke. Die Wiederherstellung ist eine Beam-Suche über Zeichen: einen Kandidaten-String mit derselben Schrift rendern, dieselbe Behandlung anwenden, mit dem Ziel vergleichen, die sechs besten Präfixe behalten, um ein Zeichen verlängern, wiederholen. Das ist die systematische Version dessen, was Depix bei Verpixelung tut, und es funktioniert genauso bei Weichzeichnen und Transparenz. Kein Machine Learning, keine GPU. Ein kompletter Durchlauf dauert etwa 25 Minuten auf einem Laptop.

Bewertung. Zeichenfehlerrate (CER, Character Error Rate; 0 ist perfekte Wiederherstellung, 1 ist nichts richtig) und ob der wiederhergestellte String exakt übereinstimmte. Schwärzen wird konstruktionsbedingt mit CER 1.0 bewertet: Jeder Kandidat rendert zu demselben flachen Feld, es gibt also nichts zu vergleichen.

Ergebnisse

Nach Behandlung

Ergebnisse nach Behandlung: mittlere Zeichenfehlerrate und Rate exakter Wiederherstellung für transparente Überlagerung, Blur Sigma 2 bis 12 px, Verpixelung 4 bis 16 px und massive Schwärzung, mit und ohne JPEG
  • Transparent (20% Deckkraft): Mittlere CER 0.00 · Exakte Wiederherstellung 100% · Nach JPEG q80 0.00 / 100%
  • Weichzeichnen Sigma 2 px: Mittlere CER 0.00 · Exakte Wiederherstellung 100% · Nach JPEG q80 0.00 / 100%
  • Weichzeichnen Sigma 4 px: Mittlere CER 0.03 · Exakte Wiederherstellung 92% · Nach JPEG q80 0.10 / 88%
  • Verpixeln 4 px: Mittlere CER 0.11 · Exakte Wiederherstellung 71% · Nach JPEG q80 0.11 / 71%
  • Verpixeln 8 px: Mittlere CER 0.49 · Exakte Wiederherstellung 8% · Nach JPEG q80 0.49 / 8%
  • Weichzeichnen Sigma 8 px: Mittlere CER 0.57 · Exakte Wiederherstellung 21% · Nach JPEG q80 0.64 / 17%
  • Verpixeln 12 px: Mittlere CER 0.63 · Exakte Wiederherstellung 21% · Nach JPEG q80 0.63 / 21%
  • Verpixeln 16 px: Mittlere CER 0.83 · Exakte Wiederherstellung 0% · Nach JPEG q80 0.84 / 0%
  • Weichzeichnen Sigma 12 px: Mittlere CER 0.84 · Exakte Wiederherstellung 4% · Nach JPEG q80 0.87 / 0%
  • Deckende Schwärzung: Mittlere CER 1.00 · Exakte Wiederherstellung 0% · Nach JPEG q80 1.00 / 0%

Die transparente Überlagerung hat uns am wenigsten überrascht und beunruhigt uns am meisten. Text mit 20% Deckkraft zu zeichnen heißt nur, ihn mit weniger Kontrast zu zeichnen. Eine Tonwertkorrektur holt ihn zurück, und unsere Suche hat alle 48 Fälle geknackt. Manche Screenshot-Tools bieten das als Datenschutzmodus an. Das ist keiner.

Leichtes Weichzeichnen und kleine Pixel sind vollständig umkehrbar. Weichzeichnen mit Sigma 2 und Sigma 4 sowie Verpixelung mit 4 px gaben den Text meistens zurück. Nicht ungefähr. Exakt.

JPEG rettet dich nicht. Die Neukompression fügte beim Sigma-4-Fall ein paar Fehler hinzu und änderte bei der Verpixelung nichts: Die Blöcke sind groß und flach, und genau das bewahrt JPEG gut.

Nach Stärke relativ zur Textgröße

Heatmap der exakten Wiederherstellungsrate nach Blur- bzw. Pixelblockgröße geteilt durch Schriftgröße: 100 % unter 0,2, 83 % Blur und 50 % Verpixelung bei 0,3, nahe null ab 0,8

Absolute Zahlen hängen von der Schriftgröße ab, deshalb liest man sie am sinnvollsten als Verhältnis von Weichzeichnungs-Sigma (oder Pixelblock) zur Schriftgröße in Pixeln:

  • bis 0.2: Weichzeichnen: mittlere CER / exakt 0.00 / 100% · Verpixeln: mittlere CER / exakt 0.01 / 92%
  • etwa 0.3: Weichzeichnen: mittlere CER / exakt 0.07 / 83% · Verpixeln: mittlere CER / exakt 0.20 / 50%
  • etwa 0.4: Weichzeichnen: mittlere CER / exakt 0.37 / 33% · Verpixeln: mittlere CER / exakt 0.42 / 8%
  • etwa 0.6: Weichzeichnen: mittlere CER / exakt 0.80 / 8% · Verpixeln: mittlere CER / exakt 0.40-0.56 / 8-42%
  • 0.8 und darüber: Weichzeichnen: mittlere CER / exakt 0.87 / 0% · Verpixeln: mittlere CER / exakt 0.80-0.87 / 0%

Unter etwa 0.3 kommt der Text zurück. Zwischen 0.4 und 0.6 kommt er teilweise zurück, und teilweise ist der gefährliche Bereich: In 46% der Durchläufe mit 8-px-Verpixelung und 33% der Durchläufe mit Sigma-8-Weichzeichnen war mindestens die Hälfte der Zeichen korrekt. Die Hälfte einer Kartennummer oder die ersten zwölf Zeichen eines Live-API-Keys sind kein Datenschutz. Erst ab 0.8 lagen die Ergebnisse nahe am Zufall (bei einem reinen Ziffernfeld liegt der Zufall bei einer CER um 0.9).

Monospace und großer Text lassen sich leichter wiederherstellen

Eine Kartennummer unter vier Behandlungen und was der Angreifer zurückbekam: Blur Sigma 4 und 20 % Transparenz vollständig, 8-px-Verpixelung zur Hälfte, massive Schwärzung nichts

Menlo bei 20 px mit 12-px-Verpixelung, also Blöcke von mehr als der halben Texthöhe, kam immer noch mit einer CER von 0.02 zurück. Schriften mit fester Zeichenbreite geben der Suche ein Raster; größerer Text gibt jedem Zeichen mehr Pixel, in denen es eine Signatur hinterlässt. Das ist wichtig, weil Terminals, IDEs, Log-Viewer und die meisten Admin-Tabellen genau diese Kombination verwenden.

Nach Feld

Kartennummern waren das leichteste Ziel (mittlere CER 0.22, 64% exakt über die Behandlungen Weichzeichnen, Verpixeln und Transparent, ohne JPEG): ein Alphabet aus zehn Symbolen und eine feste Länge. E-Mail-Adressen und API-Keys waren am schwersten, mit einer CER um 0.47, weil der Suchraum pro Zeichen größer ist. "Am schwersten" hieß trotzdem, dass 36% von ihnen exakt zurückkamen.

Was das in der Praxis bedeutet

Schwärzen statt weichzeichnen, wenn es auf den Inhalt ankommt. Ein deckendes Feld war in diesem Test die einzige Behandlung, die nichts preisgab, bei jeder Schrift, Größe und Kompression. Es ist auch die einzige, deren Sicherheit nicht von einem Parameter abhängt, den du richtig treffen musst.

Wenn du weichzeichnen musst, dann kräftig und passend zur Textgröße: Sigma von mindestens dem 0.8-Fachen der Schriftgröße oder Pixelblöcke von mindestens dem 0.8-Fachen der Schriftgröße. Das Verhältnis zählt, nicht die absolute Pixelzahl; miss beides in denselben Einheiten. Bei einer 14-px-UI-Schrift ist das ein Sigma von 11 px oder mehr, also weit stärker als jeder Standardwert.

Vertrau nie auf Deckkraft. Eine transparente Überlagerung ist eine Farbänderung, keine Entfernung.

Verlass dich nicht darauf, dass der Messenger den Rest erledigt. Die JPEG-Neukompression ließ Verpixelung unberührt und Weichzeichnen fast unberührt.

Das sicherste Weichzeichnen ist das, das nie auf den Bildschirm gelangt. Alles, was nach der Aufnahme verschleiert wird, lässt sich über die aufgenommenen Pixel angreifen. Den Wert zu verbergen, bevor er gezeichnet wird, direkt in der Seite, bevor die Freigabe oder die Aufnahme beginnt, entfernt die Pixel, die der Angriff braucht. Das ist der Ansatz von DataBlur, und deshalb haben wir diese Studie überhaupt durchgeführt.

Einschränkungen

Das ist ein Angreifer mit bekannter Schrift und bekannter Behandlung. Das ist realistisch für Screenshots gängiger UIs, bei denen Schrift und Größe öffentlich sind, aber eine ungewöhnliche Schrift legt die Latte höher. Sie beseitigt sie nicht; der Angreifer kann immer noch die wahrscheinlichen Kandidaten durchprobieren.

Zwei Schriften, zwei Größen, ein Hintergrund. Helle Themes, Unterschiede beim Anti-Aliasing und Subpixel-Rendering werden die Zahlen verschieben. Wir erwarten nicht, dass sie die Schwellenwerte stark verschieben, aber wir haben es nicht gemessen.

Kein Rauschen aus der Praxis jenseits von JPEG q80. Keine Fotos vom Bildschirm mit dem Handy, keine Videokompression. Videocodecs sind eine eigene Studie.

Der Angriff ist eine einfache Beam-Suche. Es gibt bessere Angriffe (gelernte Priors, breitere Beams, Wörterbuch-Einschränkungen für E-Mails und Namen). Unsere Zahlen sind eine Untergrenze dessen, was ein Angreifer erreichen kann, keine Obergrenze.

Wir haben die Wiederherstellung von Text bewertet, dessen Vorhandensein der Angreifer erwartet. Verborgener Text unbekannter Länge ist schwerer zu lokalisieren, auch wenn der Feldrahmen im weichgezeichneten Bild meist ohnehin sichtbar ist.

Daten und Code

Alle 480 behandelten Bilder, die Ergebnistabelle (results.csv) und das Experiment-Skript (experiment.py, Python mit Pillow und NumPy) sind veröffentlicht unter github.com/yochef17/blur-recovery-study unter CC BY 4.0. Die komplette Matrix erneut zu rechnen dauert etwa 25 Minuten auf einem Laptop. Wenn du sie erweiterst, mit mehr Schriften, hellen Themes oder Video, sag uns Bescheid: support@datablur.app.

Veröffentlicht von DataBlur. DataBlur ist eine Browser-Erweiterung, die sensible Daten auf einer Seite weichzeichnet oder schwärzt, bevor sie geteilt oder aufgenommen wird. Wir haben diese Studie durchgeführt, um herauszufinden, wie viel das Wort "Weichzeichnen" in diesem Satz überhaupt schützt. Keine der Schlussfolgerungen hängt vom Produkt ab.