OP
- Beiträge
- 9.189
- Reaktionspunkte
- 2.936
-> Hier kostenlos registrieren
zu 2)
Meine Vermutung:
Beim Verbindungsaufbau wird ein geheimer Schlüssel ausgehandelt, der später in die Berechnung das Wertes mit einfließt. Das Verfahren entspricht also MAC bzw. HMAC. Beim Verbindungsaufbau verraten auch ein paar Objekt-ID was da ablaufen könnte. Bei einer S7-1200 die keine Integrität beherrscht, fehlen diese Objekt-IDs beim Verbindungsaufbau. Ich habe ein paar zaghafte Versuche unternommen um herauszufinden woraus die sich die Objekt-Daten beim Verbindungsaufbau zusammensetzen, denn da gibt es feste und variable Teile. Wie das im Detail funktioniert weiß ich aber auch nicht.
Damit keine Replay-Angriffe möglich sind, muss es eine Wertänderung im Datenpaket geben, darum die Integritäts-ID. Diese erhöht sich nicht nur, sondern laut meinen Berechnungen wird diese aus der letzten Response usw. berechnet (glaub ich habs im Code-Kommentar vermerkt). D.h. selbst wenn der Datenteil komplett identische Daten aufweist, ist die Signatur aufgrund des sich ändernden ID und dem Hashverfahren völlig unterschiedlich.
Wie die Signatur berechnet wird ist mir nicht bekannt, ich vermute (und es wäre für Siemens auch empfehlenswert) etwas standardisiertes wie SHA-256 (würde von der Byteanzahl passen) zu verwenden.
Wahrscheinlich gab es da mal ein Sicherheitsproblem im Übertragungsprotokoll, denn die Struktur mit FW 1.5 geändert (Position des Integritätsblocks hat sich geändert). Evtl. lässt sich daraus noch etwas ableiten.
zu 1)
Muss ich mir mal ansehen, ich habe das bei der 1500 selber noch nicht nachgerechnet. Bei den ersten 1200er ließen sich noch über die 0x32er Telegramme mit LID/CRC Variablenwerte abfragen. Ob das bei der 1500er überhaupt noch funktioniert weiß ich nicht. Ich hatte bisher kein Zugang zu einer 1500.
Meine Vermutung:
Beim Verbindungsaufbau wird ein geheimer Schlüssel ausgehandelt, der später in die Berechnung das Wertes mit einfließt. Das Verfahren entspricht also MAC bzw. HMAC. Beim Verbindungsaufbau verraten auch ein paar Objekt-ID was da ablaufen könnte. Bei einer S7-1200 die keine Integrität beherrscht, fehlen diese Objekt-IDs beim Verbindungsaufbau. Ich habe ein paar zaghafte Versuche unternommen um herauszufinden woraus die sich die Objekt-Daten beim Verbindungsaufbau zusammensetzen, denn da gibt es feste und variable Teile. Wie das im Detail funktioniert weiß ich aber auch nicht.
Damit keine Replay-Angriffe möglich sind, muss es eine Wertänderung im Datenpaket geben, darum die Integritäts-ID. Diese erhöht sich nicht nur, sondern laut meinen Berechnungen wird diese aus der letzten Response usw. berechnet (glaub ich habs im Code-Kommentar vermerkt). D.h. selbst wenn der Datenteil komplett identische Daten aufweist, ist die Signatur aufgrund des sich ändernden ID und dem Hashverfahren völlig unterschiedlich.
Wie die Signatur berechnet wird ist mir nicht bekannt, ich vermute (und es wäre für Siemens auch empfehlenswert) etwas standardisiertes wie SHA-256 (würde von der Byteanzahl passen) zu verwenden.
Wahrscheinlich gab es da mal ein Sicherheitsproblem im Übertragungsprotokoll, denn die Struktur mit FW 1.5 geändert (Position des Integritätsblocks hat sich geändert). Evtl. lässt sich daraus noch etwas ableiten.
zu 1)
Muss ich mir mal ansehen, ich habe das bei der 1500 selber noch nicht nachgerechnet. Bei den ersten 1200er ließen sich noch über die 0x32er Telegramme mit LID/CRC Variablenwerte abfragen. Ob das bei der 1500er überhaupt noch funktioniert weiß ich nicht. Ich hatte bisher kein Zugang zu einer 1500.