Es gibt bei PostModern ein Verfahren namens Prelabel. Bei diesem Verfahren bekommt man einen Stapel mit mehreren Bögen Blanko-Briefmarken zugesendet und kann diese als Briefmarken benutzen. Doch ist das Verfahren so sicher wie es sein könnte?
Eine coole Idee mit jeder Menge Vorteile
Das Prinzip ist genial: Anstatt immer die richtigen Briefmarken im Voraus zu bezahlen und dann jeden Brief einzeln zu wiegen und zu entscheiden, welches Porto entfällt, hat PostModern hier ein sehr einfaches Verfahren: Prelabel.
Ein unscheinbarer Aufkleber mit einer Nummer und einem Strichcode wird neben das Adressfeld geklebt. Damit kann der Scanner bei PostModern das Prelabel erfassen und dem Kunden zuordnen. Der Brief ist damit dann frankiert. Die Abrechnung geschieht monatlich.
Leider werde ich in diesem Artikel kein Foto von meinen Prelabels veröffentlichen. Ich bin selbst Prelabel-Kunde und würde damit in ein ganz schönes Eigentor schießen: meine geheime Kundennummer verraten.
Kundennummer als Geheimnis: Security by Obscurity in seiner Höchstform
Die Krux daran: In diesem Fall geschieht die Autorisierung einer Bezahlfunktion über ein Geheimnis, das keines ist.
Denn: Der Aufkleber bleibt beim Versand auf dem Brief kleben. Das bedeutet: Der Empfänger des Prelabel-Briefes kennt die Kundennummer und den Strichcode nachher auch.
Ein Angreifer muss somit nur einmalig in Besitz irgendeiner Kundennummer kommen und kann sich die Etiketten anschließend selbst drucken. Er klebt sie auf einen Brief und gibt sie in den Postkasten. Die Rechnung bekommt anschließend derjenige, dessen Kundennummer er geklaut hat.
Die Prelabel von PostModern sind außerdem relativ schmucklos und lassen sich somit leicht fälschen. Sie verfügen über keine schwer nachzuahmenden Muster, Farben oder ähnlichem.
Was sagt PostModern dazu?
Ich habe anschließend den Kontakt zu PostModern gesucht. Ihre Begründungen, warum das Verfahren sicher ist, waren nach mehrerem Nachbohren folgende:
- Dazu müsste man erst einmal Ihre Kundennummer kennen (Gegenargument: ich versende den Brief und schon kennt sie eine weitere Person)
- Das Verfahren kennt ja niemand (Gegenargument: PostModern wirbt Neukunden und erklärt ihnen das Verfahren)
- Die gefälschten Prelabel lassen sich nicht einscannen (Begründung warum fehlt. Unsichtbare Sicherheitsmerkmale wie UV-Marken oder Wasserzeichen habe ich ebenfalls nicht gefunden)
- Wenn Sie eine Abweichung auf Ihrer Abrechnung entdecken, melden Sie sich einfach bei uns (Hier wird die Pflicht, die Briefe nachzuzählen und Betrugsfälle aufzudecken, auf den Kunden abgewälzt (Postausgangsbuch). Im Gegenzug übernimmt PostModern das Haftungsrisiko für ihre eigene IT-Sicherheit)
- Derartige Dinge sind bis jetzt noch nicht vorgekommen (Gegenargument: Laut Murphys Gesetz werden sie aber irgendwann vorkommen)
- PostModern-Briefkästen gibt es nicht in komplett Deutschland. Die Möglichkeit, das Prelabel-System auszubeuten, ist also begrenzt
Es ist zwar grundsätzlich löblich, für die eigene Sicherheitsarchitektur auch anzukündigen, dafür die Haftung zu übernehmen. Doch wäre es nicht besser, das System von Anfang an sicher aufzubauen? Der Weg dahin ist gar nicht so schwer.
Der Selbsttest: Klappt die Masche jetzt?
Nachdem wir als Launix unsere Bögen erhalten haben und die Sicherheitsmängel vermutet haben, haben wir den Selbsttest gestartet. Wir haben jemanden beauftragt, mit einer von uns geschriebenen Anleitung selbst Prelabel zu fälschen. Das Ergebnis war katastrophal:
- Unser Fälscher hat das Etikett viel zu groß ausgedruckt
- Das Label war durch die Vergrößerung leicht verschwommen
- Das Label wurde nicht auf selbstklebendem Papier wie das Original, sondern mit Bastelkleber auf den Brief aufgetragen
- Der Brief wurde in einem Ort 20km von unserem Firmensitz eingeworfen
- Die Absender-Adresse stimmte nicht mit unserer Adresse überein
Doch trotz aller dieser groben Fehler hat PostModern die gefälschten Briefe anstandslos verschickt. Hier besteht auf alle Fälle Nachbesserungsbedarf.
Lösungen aus der Misere
Natürlich steht man hier nicht vor einem unlösbaren Problem. Die Idee mit den Prelabel lässt sich sicher umsetzen und ich werde hier einige Wege aufzeigen. Manche funktionieren, manche funktionieren nicht so gut.
Falsche Lösung 1: Auf ein geheimes Strichcodeverfahren umsteigen
Der im Prelabel verwendete Strichcode ist der „Interleaved 2 of 5“. Es ist verlockend, einfach zu sagen: „Wir wechseln auf ein geheimes Code-Format, das keiner kennt, dann kann es auch keiner kopieren“.
Diese Idee funktioniert aber nicht, da man ja lediglich das Bild des Strichcode kopieren muss. Man muss ihn nicht verstehen, um ihn nachahmen zu können. Da auf jedem Brief derselbe Strichcode geklebt wird, ist somit dessen Herkunft nicht mehr nachvollziehbar.
Falsche Lösung 2: Jedem Brief eine Seriennummer mitgeben
Jetzt könnte man sagen: Wir hängen an die Briefnummer einfach eine Seriennummer an. Beginnend bei 000000 wird der Bogen bis 001999 bedruckt.
Diese Idee funktioniert ebenfalls nicht. Die Briefe werden niemals in exakt der Reihenfolge eingeworfen, wie sie gelabelt sind. Somit müsste bei der Abrechnung immer ein gewisser Rahmen an Seriennummern erlaubt sein. Diese Ungenauigkeit kann sich ein Angreifer wieder zu Nutzen machen und von seinem zuletzt erhaltenen Brief einfach einige Nummern hochzählen. Wer zuerst kommt, malt zuerst: In diesem Fall würde dann der legitime Brief abgelehnt werden und der gefälschte Brief durchkommen.
Falsche Lösung 3: Herkunftsbriefkästen überwachen, Absenderadresse kontrollieren
Dieser Kontrollmechanismus würde zwar einem Betrüger einige Steine in den Weg legen – prinzipiell muss dieser aber nur einen Prelabel-Kunden finden, der im selben Ort oder Bezirk wie er selbst wohnt und seine Absenderadresse nicht gerade öffentlich auf den Brief schreiben. Das Briefgeheimnis schützt ihn vor weiteren Kontrollmechanismen.
Falsche Lösung 4: Einführung zusätzlicher physischer Sicherheitsmerkmale
Auch eine händische Überwachung jedes Briefs auf Fälschungsmuster, geklebte Kanten usw. ist heute nicht mehr zeitgemäß. UV- und Wasserzeichen-Markierungen lassen sich zwar maschinell überprüfen, sind aber genau so leicht zu fälschen, denn die Technik steht jedem zur Verfügung. Man könnte sich – ähnlich der Geldscheine – spezielle Farbrezepturen mischen lassen, die dann eindeutig für PostModern wären. Eine maschinelle Überprüfung halte ich aber für unrealistisch und auch der Aufwand für die Herstellung der Prelabel-Marken wird deutlich erhöht.
Richtige Lösung 1: Prelabel-Etiketten im Versandzentrum vom Brief entfernen
Sollte die Kundennummer tatsächlich ein Geheimnis bleiben, benötigt man einen durchgängig vertraulichen Bereich, in dem sie dann beliebig frei verarbeitet und versendet werden darf.
Die Kundennummer ist mit 16 Dezimalstellen an sich lang genug, um nicht erraten werden zu können. Natürlich weiß man nicht, wie viele der Ziffern Kodierungen für Länder, Landkreise etc. sind. Das würde das Verfahren schwächen. Im Havariefall, also wenn eine Kundennummer Dritten bekannt wird, müsste man die Kundennummer einfach austauschen und missbräuchlich entstandene Versandgebühren dem Kunden erstatten.
Wenn man anschließend im Versandzentrum die Aufkleber mit der Kundennummer wieder entfernt, hat man eine durchgängig vertrauliche Kette: PostModern kennt die Kundennummer, behält sie aber vertraulich. Der Kunde und seine Mitarbeiter erhalten die Kundennummer (man kann sie ja auf den Briefen ablesen) und behandelt sie vertraulich. Auf den Weg zum Postkasten werden sie von einer vertrauensvollen Person gebracht. Im Postkasten sind sie gut abgeschlossen und werden von einer vertrauensvollen Person zum Versandzentrum gebracht. Im Versandzentrum selbst wird dann der Aufkleber von vertrauensvollen Mitarbeitern entfernt, um das Geheimnis zu schützen.
Die Etiketten überkleben oder mit Edding übermalen geht übrigens nicht. Der Grund sollte jedem klar sein.
Ziemlich umständlich, finden Sie nicht?
Richtige Lösung 2: Zugriffstoken benutzen anstatt der Kundennummer
Diese Lösung ist recht simpel zu erkären und benötigt nur eine vertretbare zusätzliche Infrastruktur.
Anstatt der sich wiederholenden Kundennummer, die jederzeit kopiert und wiederverwendet werden kann, muss man etwas fälschungssicheres verwenden: Eine sicher generierte Zufallszahl, sogenannte Einmal-Token, die sich PostModern intern abspeichert und abhakt, sobald der damit gelabelte Brief abgesendet wurde.
Jedes Prelabel hätte damit eine andere Nummer, die in keinem Zusammenhang weder mit der Kundennummer noch untereinander stehen (Unterschied zu den Seriennummern!). Jedes dieser Token darf nur einmal benutzt werden.
Eine Lieferung mit 50 Bögen enthält 3.200 Prelabel. Würde man 3.200 64-Bit-Zufallszahlen hintereinander auf der Festplatte speichern, wäre das ein Datenvolumen von 26 Kilobyte. Selbst wenn man jetzt noch Datenbank-Verwaltungsstrukturen hinzurechnet, um eine schnellere Auffindbarkeit und einfachere Löschbarkeit der Einträge zu erreichen, kommt man auf maximal 100 KiB je Kunde. Wer die Ewigkeitskosten noch hinzurechnet, dem kann man ja noch ein Verfallsdatum von 10 Jahren vorschlagen. Bei Cloud-Speicherkosten von € 0.0184/GB/Monat käme man bei dieser Lösung auf Netto-Infrastrukturkosten von 0,02 Cent pro Kunde für 10 Jahre bei einem Umsatzpotenzial von 1.440 €.
Von der Größe der Zufallszahl sollten 64 Bit reichen. Das ist eine Ziehung 1 aus 18446744073709551616, wobei wenn man 1 Milliarde gültige Token im Umlauf hat die Chance immer noch 1:18446744073 beträgt, einen Brief fälschen zu können (im Gegensatz zu 1:0 mit der alten Methode)
Viele Unternehmen scheuen trotzdem den Infrastruktur-Aufwand, einzelne Briefe per Datenbank nachverfolgen zu können. Sie versuchen, ein Token-Verfahren mit Seriennummern nachzuahmen und eine Prüfsumme an die Seriennummer anzuhängen, um die gewünschte Sicherheit zu erzeugen. Allerdings sind die meisten bekannten Prüfsummen-Verfahren linear, das bedeutet, sie sind unsicher. Das Verfahren könnte ein Mathematiker mit etwas Knobelarbeit durchschauen. Das zusätzliche Vertrauen in das System, da ja „die Sicherheit durch das Prüfziffer-Verfahren gegeben ist“, würde nur die Angreifer decken, die damit unbehelligt gefälschte Briefmarken ins System einschleusen können. Ein kryptografisch sicheres Hash-Verfahren unter Verwendung eines Geheimnisses, wäre hingegen sicher. Das MAC-Verfahren (Message Authentication Code) funktioniert ja ähnlich. Um doppelt eingereichte Seriennummern zu erkennen, ist dann aber spätestens die Speicherung notwendig.
Richtige Lösung 3: Alles so lassen, wie es ist
Als Sicherheitsforscher kitzelt es einen natürlich in den Fingern, alle Security-Fehler zu finden, zu melden und zu sehen, wie sie behoben werden. Letzendlich treffen die Entscheidungen aber Wirtschaftsvertreter.
In der Anfangszeit der Kreditkarten wurden Kreditkarten genau so designt wie das Prelabel-System von PostModern: Auf einem Magnetstreifen wurde die Kreditkartennummer eingespeichert und konnte ausgelesen werden. Die Betrugsverluste beliefen sich auf 1-2 Millionen pro Jahr – Peanuts im Vergleich zu den Mehrkosten, die ein Chipkarten-System anstelle der Magnetstreifen gekostet hätte.
Eines Tages aber – mit zunehmender Verbreitung des sogenannten Internets – konnte man plötzlich anonym mit gefälschten Kreditkarten einkaufen gehen. Die Betrugszahlen schossen so in die Höhe, dass die Entschädigungen, die die Banken an ihre Kunden zahlen mussten, zu groß wurden. Bis alle Kreditkarten auf das sicherere System umgestellt waren, sind noch mehrstellige Milliardenbeträge an Schäden zusammengekommen.
Ein selten genutztes Instrument zu missbrauchen, fällt auf. Es gibt nur wenige Kunden und Missbraucher lassen sich leicht eingrenzen. Wächst PostModern und das bequeme Prelabel-System sollte man sich aber eine Strategie in der Schublade bereithalten.
PostModern: Ein Schulbeispiel für IT-Sicherheit
Ich schreibe über dieses Thema, da es ein Schulbeispiel für ein unsicheres System ist, das man einfach hätte anders designen müssen. Normalerweise werden beim Entwurf solcher Systeme Informatiker involviert, die bereits in der Planungsbesprechung auf solche Schwachstellen hinweisen. Ich gehe davon aus, dass spätestens die Entwickler bei PostModern auf dieses Problem hingewiesen haben müssen, aber ihre Einwände von ihren Vorgesetzten übergangen wurden, weil es dann vielleicht schon zu spät war.
Meinen Lehrlingen kann ich daran gut erklären, dass ein Fehler, je später er gefunden wird, umso teurer zu korrigieren ist. In diesem Fall müssten hunderte und tausende Stapel an Bögen zurückgerufen werden, eine Übergangszeit für die Gültigkeit der Prelabel festgelegt und kommuniziert werden, ein neues System ausgearbeitet werden und neue Bögen an die Kunden verschickt werden. Die Kunden dürfen ihre Bögen dann erneut untereinander verteilen. Kosten, die man hätte vermeiden können, wäre man in der Entwurfsphase (Fachleute in die Planung einbeziehen!) oder in der Implementierungsphase zurückgerudert und nicht erst nach der Markteinführung.
Die Korrektur des Fehlers könnte bei weitem so teuer sein, dass man eher damit lebt, dass im Jahr 1.000-2.000 Briefe unrechtmäßig verschickt werden, was dann die Kunden entweder nicht entdecken und mitbezahlen oder in Extremfällen reklamieren. In dem Fall müsste man lediglich die Möglichkeit einbauen, dass ein Kunde seine Kundennummer ändert, nachdem zu viele betrügerische Briefe über ihn versendet werden. Die dann noch herumschwirrenden Briefe könnte man dann einsammeln und der Polizei zur Ermittlung wegen Betrug übergeben.
Die Betrugsmasche bleibt wackelig
Wer Kundennummern „klaut“ und zum „kostenlosen“ Versand von Briefen verwendet, hat in der Anfangszeit, solange er unauffällig bleibt, nicht viel zu befürchten. Es gilt zudem das Briefgeheimnis, das auch den Inhalt seines Briefes schützt, aus dem man seine Identität eventuell ableiten könnte – Er könnte aber jederzeit abstreiten, den Brief selbst frankiert zu haben. Oder einfach behaupten, es gab einen Online-Service, bei dem man Marken kaufen durfte. Wo genau, könnte man dann vergessen haben.
Strafrechtlich hat man es hier mit Betrug zu tun: Wer sich selbst oder Dritten einen Vermögensvorteil durch Vortäuschen falscher Tatsachen verschafft, begeht einen Betrug. Die Täuschung besteht hier darin, dass der Betrüger Versandetiketten anfertigt, bei denen PostModern denkt, sie selbst autorisiert an den Kunden herausgegeben zu haben.
Den Schaden trägt momentan hauptsächlich der Prelabel-Kunde. Wenn er seine Briefe nicht genau nachzählt, wird er PostModern die Abweichung nicht nachweisen können und den Diebstahl gar nicht bemerken. Gerade bei großen Unternehmen können kleine Zahlen schnell untergehen.
An sich denkt man, aus dem System kann man nicht all zu viel herausholen. Firmen werden das Risiko nicht eingehen, ihre Firmenpost über „geklaute“ Briefmarken zu verschicken. Privatpersonen schicken nicht so viele Briefe und ein Briefporto sind vielleicht ein paar Cent.
Doch was, wenn jemand eine Betrugsmasche ähnlich PC-Fritz stattfindet? Ein gewerblicher Betrüger könnte sich als Reseller ausgeben und die Prelabel mit der Begründung eines „Mengenrabatts“ sehr günstig anbieten. Wenn er dann noch den Massenhaften Versand von Werbepost – tausende Versendungen – bewirbt, werden die Briefe erst einmal verschickt – egal, wer dann später dafür bezahlen muss.
Wie ist es mit den anderen Post-Anbietern?
Auf dem Markt sind unterschiedliche Systeme unterwegs. Die Deutsche Post beispielsweise verwendet eine Art Seriennummern-System. Auf dem Foto sieht man zum Beispiel die Nummern RJ 19 013 504 6DE und RJ 19 013 501 5DE. Zwischen der 504 6 und 501 5DE sind 2 Ziffern Unterschied. Angenommen, es handelt sich um Seriennummern (501, 502, 503, 504) mit jeweils einer Prüfziffer, kommt es darauf an, wie sicher die Prüfsummenberechnung ist, sprich: ob es sich um eine kryptografisch sichere Prüfsumme unter Einbeziehung eines Geheimnisses (einem Passwort, das nur die Post kennt) handelt, oder eine einfache Prüfsumme wie auf den D-Mark-Scheinen, welche bereits geknackt wurde. Eine einzelne Ziffer dann richtig zu raten, liegt bei 10% Wahrscheinlichkeit – untauglich, wenn man ein vorhat, Briefe zu versenden, die auch ankommen. Lässt sich die Zahl berechnen, könnte man entsprechend die Seriennummern eines Postkunden hochzählen.
Sind hingegen die Nummern Seriennummern mit Lücken (15, 46), hat man denselben Effekt: Ein Angreifer müsste mit einer 2%-10%igen Wahrscheinlichkeit eine Seriennummer erraten, welche Nummern auf der Rolle vorhanden sein könnten. Wichtig für die Sicherheit des Verfahrens wäre wiederum, dass die Lücken nicht „berechenbar“ sind. Ansonsten besorgt sich ein Angreifer eine Rolle dieser Nummern und knackt den Algorithmus. Hier benötigt man also auch einen Token-Speicher. Ich bezweifele, dass die Post einen solchen benutzt.
Es gibt noch eine Menge Post-Anbieter wie z.B. NordPost, CitiPost OWL, LMF-Postservice, BW-Post und viele mehr. Da ich nicht in deren Einzugsgebiet lebe, war es mir nicht möglich, deren Systeme ebenfalls zu durchleuchten. Gerne bin ich über Feedback dankbar, welche Prelabel-Verfahren andere Anbieter einsetzen.
Fazit
Die Behebung des Fehlers würde in etwa 30.000 bis 100.000 Euro an Kosten verursachen. Es müsste die bisherige Erkennungssoftware auf das Token-System umgebaut werden, sowie alle Prelabel-Kunden informiert werden, dass nach einer Übergangszeit von X Wochen die alten Prelabel-Etiketten nicht mehr verwendet werden sollen und es müssen neue Bögen versandt werden.
Es kann aber sein, dass PostModern das alte System noch so lange betreiben wird, wie die Sicherheitslücke nicht aktiv bzw. nicht in ausrechenden Mengen ausgenutzt wird.
Comments are closed