Lässt sich die Stromzähler-PIN durch Brute-Force Attacke hacken?

Hallo allerseits,

ich hätte da mal eine Frage: Wenn man einen digitalen Stromzähler bekommt, dann gibt der sowohl über das Display, als auch über die optische Schnittstelle erst mal nur begrenzt Daten Preis. Wenn man mehr Information möchte, muss man sich beim Netzbetreiber die individuelle, 4-stellige PIN für den Stromzähler besorgen und diese per Taschenlampe "hinein-blinken".

Jetzt kam mir da eine Frage in den Sinn: Wie viele Versuche hat man da eigentlich? Sperrt sich der Zähler nach mehreren Fehleingaben? Oder kann man es beliebig oft probieren?

Ich habe mal im Internet gesucht. In diesem Flyer eines Netzbetreibers steht: "Eine mehrfache Fehleingabe der PIN führt nicht zur Sperrung der Anzeige."

Beim EMH mMe4.0 Zähler scheint dagegen eine Sperrzeit nach einer bestimmten Zahl an Fehleingaben zumindest optional vorgesehen zu sein, siehe dieses Datenblatt , letzte Seite unten: "Manipulationssicherheit (optional) mit Sperrzeit nach mehrmaliger Pin-Fehleingabe".

Zumindest manche Zähler erlauben dann wohl beliebig viele Versuche. Man könnte also eine LED vor den Zähler hängen und mit einem Skript alle 10.000 möglichen PINs von 0000 bis 9999 durchprobieren - die klassische Brute-Force Attacke. Angenommen, man schafft eine PIN pro Minute - das wären dann 60 pro Stunde, oder 1440 am Tag, oder 10.080 in einer Woche. Sprich: Spätestens nach 1 Woche hat man die PIN gehackt, im statistischen Mittel (Annahme: PINs von 0000 bis 9999 gleich verteilt) dauert es 3,5 Tage. Da geht das Hacken vielleicht sogar schneller, als wenn man auf die Post vom Netzbetreiber wartet :slight_smile:

Hat zufällig jemand einen Draht zum CCC (Chaos Computerclub)? Die sind doch immer gut darin, Sicherheitslücken aufzudecken.

Ich frage mal ganz schnippisch: Was bringt Dir das? Dann siehst Du den aktuellen Verbrauch in "Watt" und die historischen Werte.

Und damit kann man dann die Welt erobern?

1 „Gefällt mir“

@alexx das Prinzip der verbietet eine Sperrung schon... (ironie) da es mit dem Licht eh schon zu viele Versuche braucht...

Irgend wo hatte ich mal eine Lösung gesehen, die mit dem Volkszählerlesekopf die Sachen durchprobiert hatte um den Code automatisch einzugeben. Aber der Versorger ist schneller dir den Brief zu senden und du gibst ihn ein.

Zugegeben, das "ganz schlimme" Datenleck kann man damit nicht produzieren. Kommt auch auf die Einbausituation an:

  • In Einfamilienhäusern, Doppelhaushälften und Reihenhäusern haben ohnehin zur die Bewohner physischen Zugang zum Stromzähler. Da bringt der PIN-Schutz nichts. Vielmehr ist er rein störend, wenn man berechtigterweise Daten auslesen möchte.

  • In Mehrfamilienhäusern gibt es oft einen gemeinschaftlichen Zählerraum, zu dem jeder Zugang hat. Da kann man die Nachbarn ausspionieren. Das ging allerdings auch schon zu Ferrariszähler-Zeiten. Ein neugieriger Bewohner kann jeden Tag in den Raum gehen und alle Zählerstände mit Bleistift und Papier notieren. So kann er ablesen, wann wer nicht zu Hause war. Der PIN-Schutz digitaler Zähler bewirkt hier eine minimale Verbesserung. Die Tages-, Wochen- und Monatswerte sind so nicht zugänglich, so dass der neugierige Nachbar weiterhin täglich ablesen muss. Bei Zugang zum Verbrauch der letzten 24 Stunden würde beispielsweise 2-tägiges Ablesen reichen (Gesamtzählerstand und 24h-Verbrauch liefern zusammen die Tageswerte). Insgesamt aber wenig Zusatz-Schutz.

Sogesehen müsste man rein moralisch gar kein arg schlechtes Gewissen haben, wenn man sich einen PIN-Hacker-Schreibkopf baut... :slight_smile:

Kommt darauf an. Wenn mir am Freitag Abend in den Sinn kommt, dass ich die PIN wissen möchte, ist Hacken potentiell schneller :slight_smile:

Und außerdem ist das Hacken ökologisch viel besser. Man bedenke, wie viel Papier und CO2-Emissionen eingespart werden können, wenn kein Brief verschickt werden muss.

Würdest du mir schreiben, wo das war, bzw wo ich das Programm dazu finde?

Ich will zwar nur mit meinem Lesekopf "meine" Pin automatisch eingeben,

aber da muss ich ja nicht das Rad mit Timings und Rückmeldung neu erfinden...

Ich frage wiederholt, wem interessiert der Verbrauch des Nachbarn? Selbst wenn ich damit heraus finden will, ob er zu hause ist und ich einbrechen kann. Dann ist es immer noch einfacher durch den Spion zu beobachten oder auf dem Balkon zu stehen.

Außerdem, mit einer Uhr und 2 Zählerständen kannst auch ohne PIN den aktuellen Verbrauch ermitteln!

Ich begreife nicht, warum sich alle so anstellen wenn es um den Strom-Zählerstand geht. Warum zuckt keiner bei Wasser oder Gas?

Anderes Beispiel: Wenn Du nur 10 Minuten mit Deinem Handy (in der Tasche) durch die Stadt läufst, gibst du mehr Daten von die preis als ein SamrtMeter ohne PIN.

2 „Gefällt mir“

Mir scheint Alexx möchte selbst zum Stromzählerableserhacker werden... {green}:idontknow:

habe ich mir nicht gemerkt wo das war, google ist dein Freund. aber groß Timings kann es da nicht geben, machst du ja sonst per Taschenlampe.

Für die reine Eingabe einer (bekannten) PIN gibt es inzwischen auch ein paar Smartphone Apps. Beispiele:

https://flashmypin.de/

Das benötigte Timing steht meist in der Bedienungsanleitung des Stromzählers. Üblich ist: Kurze Pulse, um die aktuelle Stelle zu inkrementieren, und >3 Sekunden warten, um zur nächsten Stelle zu springen.

Magst Du zufällig mal ausprobieren, was Dein Stromzähler sagt, wenn Du 10x oder 20x eine falsche PIN eingibst? Ist der dann irgendwann mal "beleidigt", oder hat man beliebig viele Versuche?

Wenn dort mit meinen Suchbegriffen etwas zu finden wäre, würde ich kaum fragen.

Diese "such doch selber, Idiot" Antworten sind zu 99% mehr als daneben.

Ich kenne niemanden, der so etwas fragt und ggf tagelang auf Antwort wartet, nur weil er zu faul ist, 3 Worte in die Suchmaschine zu Tippen.

Man findet eben oftmals einfach nicht die richtigen Suchbegriffe um etwas zu finden.

Hatte ich bei meinem Zähler versucht. Der hat die LED meines Handys nichtmal erkannt.

Danach hab ich es mit einer LED Maglite versucht. Ebenfalls nix.

Erst mit einer alten Maglite mit Glühbirne hatte ich Erfolg.

Hm. Ich hatte als "Return" einen Puls länger 5 Sekunden im Kopf. Da muss ich doch nochmal nachschaun.

Für meine Stromzähler habe ich jeweils die Pin, aber da ich das Rad gerade eh neu erfinde, schau ich mal, ob das mit dem Bruteforce klappt.

Hängen ja genug Zähler rum :stuck_out_tongue_winking_eye:

Ich habe übrigens inzwischen das Suchen gegen das doppelt Erfinden ersetzt und bin dabei, die einblink Hard und Software selbst zu machen.

Eigentlich eher Einfach, wenn man es nur für eine bekannte PIN benutzen will.

Wenn das mal funktioniert, werd ich dann schaun, wie ich am einfachsten die Rückmeldung des Zählers auswerte, damit ich weiß, wenn er die richtige Pin hat.

Und Wenn man noch wissen will, welche PIN es ist, muss ich die dann ja auch abspeichern. Oder ich lasse einfach alle 9900, bzw 9999 Pins durchlaufen und schau am Ende ob er Frei ist...

.

Sehr interessant!
Das ist gut zu wissen für den Fall, dass bei mir auch mal ein Stromzähler auf Blinkpulse nicht reagiert. Das liegt an der spektralen Empfindlichkeit der Photodiode im Stromzähler. Die hat wohl im Infraroten ihre höchste Empfindlichkeit, wahrscheinlich irgendwo um die 900-1000 nm. Eine Glühbirne ist ein rein Planck'scher Strahler mit breitem Spektrum, da kommt bis weit ins Infrarote hinein einiges an Leistung heraus. Deswegen reagiert der Stromzähler. Weiße LEDs dagegen sind auf Energieeffizienz optimiert und sollen möglichst nur in dem Wellenlängenbereich emittieren, den der Mensch auch sieht - also 400 bis 800 nm. Alles außerhalb wäre reine Energieverschwendung. Deswegen kommt da mitunter sehr wenig IR-Leistung heraus, obwohl die Lampe im sichtbaren Spektralbereich sehr hell erscheint.

Magst Du kurz schreiben, welches Stromzählermodell das bei Dir war?

Das ist nach meiner Erfahrung manchmal wirklich das beste. Wenn es zwar an sich eine bestehende Lösung gibt, man aber doch stundenlang herummachen muss, bis die endlich mal das tut, was sie soll, kann es tatsächlich schneller gehen, es selbst von Null beginnend zu implementieren.

Die Frage habe ich mir auch schon gestellt. Eine Idee hätte ich: Bei vielen Stromzählern sollten über die optische Schnittstelle mehr Daten herauskommen, sobald die PIN richtig eingegeben wurde. Man könnte eine Lesediode davorsetzen und einfach "mitstoppen", wie viele Millisekunden lang die SML-Message ist, die da herauskommt. Also ohne die Daten irgendwie zu erfassen oder zu interpretieren - einfach nur die Dauer des Blinkens der Sendediode im Zähler bestimmen. Wird die nach einer PIN-Eingabe länger, wird die PIN wohl richtig gewesen sein.

Ja, klar. Sonst wäre ich ja nicht auf die Idee gekommen, eine andere Lampenart zu nehmen.

Die Diode ist eine 880nm, wie üblich.

Bei mir ist es ein iskra MT681, aber es sollte bei jedem EDL Zähler gleich sein, egal ob EDL21 oder EDL40.

Die arbeiten ja alle nach §21 oder $40 MsbG.

Ja, hab ich gestern Abend dann gemacht.

Nicht ganz so hab ich es gemacht.

Die Empfangsdiode ist eh klar. aber ich Werte da garkein Telegramm aus, sondern einfach die Leuchtdauer.

Ohne Pin sendet der Iskra jede Sekunde ein kurzes Telegramm.

Mit Pin sendet er nahezu permanent.

Ist also recht einfach auszuwerten.

Mein Einblinken der Pin funktionierte auch sofort problemlos. Etwas erschwerend war, dass ich das unbedingt mit Tasmota lösen wollte, da ich dann auch gleich die SML Auswertung und Einbindung in Homeassistant damit machen will.

Für das Bruteforce werde ich aber dann einfach ein normales Arduinoscript schreiben (wenn das nicht was ist, das dann mal wieder liegenbleibt).

Ah, und das Wichtigste fast vergessen:

in der Anleitung zum Iskra steht:

Was passiert nach der Eingabe einer falschen PIN?
Sie können die Eingabe beliebig oft wiederholen.

Ist ja genial, noch besser könnte man eine Einladung zum Hacken gar nicht formulieren :slight_smile:

Ich hatte gerade die Gelegenheit, bei einem Bekannten mit einem EMH mMe4.0 Stromzähler zu "spielen". Die PIN dazu ist nicht bekannt. Der Stromzähler reagiert problemlos auf meine Handy-Taschenlampe. Wenn man einen kurzen Blink-Puls gibt, dann macht der erst einen Displaytest (alle LCD-Segmente in der oberen Zeile an, danach in der unteren, dann nochmal oben, dann nochmal unten), und zeigt anschließend "- 0--- -" an. Kurze Blink-Pulse inkrementieren die Zahl, kurzes Warten schaltet zur nächsten Stelle weiter. Wenn man nur einmal kurz blinkt und dann nichts mehr tut, gibt man somit die 0000 ein. Ich habe dann versuchsweise 22x hintereinander eine falsche PIN eingegeben (von 0000 bis 0021), ohne dass sich der Zähler irgendwie sperrte. Mehr Zeit/Geduld hatte ich gerade nicht. Falls es bei diesem mMe4.0 doch eine Sperre gibt, hat man jedenfalls viele Versuche frei.

Ein Tipp: Fang hinten an. :slight_smile:

Bisher waren alle meine PIN im oberen Bereich.

Von den letzten 10 begannen 5 mit einer 9. Keine hatte als erstes eine Ziffer kleiner 7.

Das ist ja interessant. Deutet also sehr darauf hin, dass die PINs im Wertebereich 0 - 9999 nicht statistisch gleichverteilt sind.
Dass ich bei 0000 angefangen habe, ist rein der Bequemlichkeit geschuldet. Je niedriger die einzelnen Ziffern, desto weniger muss man blinken. Falls ich mal einen automatisierten Eingabevorgang implementiere, werde ich dann aber auf Deinen Rat hin bei 9999 anfangen.

Du hast mich überzeugt. ich warte auf deine Lösung und lege meins auf Eis. Hab eh eigentlich garkeine Zeit... :slight_smile:

Es kann auch einfach Zufall sein. Die Zählernummern mit den mit 9 beginnenden PIN unterscheiden sich nur in der letzten Stelle, sprich ich habe da 10 Zähler mit fortlaufenden Seriennummern.

Wenn ich den Link dazu hätte, hätte ich ihn ja gepostet, aber da ich den nicht habe, werde ich nicht los rennen und ihn suchen. Habe nur den Hinweis gegeben, es gibt es, weil ich es schon mal gesehen hatte.

Lasst euch doch einen richtigen Zähler einbauen, meiner spuckt alle Daten auch ohne PIN aus, obwohl man die anfordern kann... Da hat wohl einer geschlafen bei der Programierung.

Mit diesem Script auf einem Raspberry Pi und Anschluss einer weissen LED + Vorwiderstand (<a href=" Link entfernt "> Link entfernt ) hatte ich meinen Stromzähler PIN nach rund 2 Tagen per Bruteforce geknackt.

Mein Netzbetreiber sagte bei telefonischer Anforderung der Zähler-PIN damals er bräuchte 2-3 Monate zur Zusendung, allerdings bin ich notorisch ungeduldig und hatte dann mit Hilfe von ChatGPT und eigenen Scripterfahrungen dieses Teil gebaut: <a href=" Link entfernt "> Link entfernt - Meine PIN fing mit 7 an. Ich hab 2-3 Videos dazu gemacht, es sah schon sehr lustig aus und brachte einige Erheiterung.

EDIT: kann keine Links posten. Na gut, bei Interesse PN.

2 „Gefällt mir“

[quote data-userid="21839" data-postid="151677"]
Mit diesem Script auf einem Raspberry Pi und Anschluss einer weissen LED + Vorwiderstand hatte ich meinen Stromzähler PIN nach rund 2 Tagen per Bruteforce geknackt.[/quote]

Gratuliere! Mit dem Gedanken hatte ich auch gespielt! :wink:

Bitte unbedingt noch 2 Beiträge schreiben, damit du links einstellen kannst!!! Danke

1 „Gefällt mir“