Zum Inhalt springen
AutoST by Zyberum GmbH
Menü
GlossarCANDiagnose

ISO-TP (ISO 15765-2)

ISO-TP (ISO 15765-2) zerlegt UDS-Nachrichten in CAN-Frames mit Flow Control. Wie es funktioniert und warum fehlerhafte Frames Steuergeräte abstürzen lassen.

Aktualisiert Diese Seite als Markdown

Kurz gesagt

ISO-TP ist das Transportprotokoll aus ISO 15765-2, das Diagnosenachrichten trägt, die nicht in einen CAN-Frame passen. Es teilt eine Nachricht in einen First Frame und Consecutive Frames, und der Empfänger steuert den Ablauf mit Flow-Control-Frames (Block Size und Separation Time STmin). Kurze Nachrichten gehen in einem Single Frame. Jeder UDS-Request auf CAN oder CAN FD läuft über ISO-TP, deshalb ist dessen Parser der erste Code im Steuergerät, der von Angreifern kontrollierte Bytes verarbeitet.

Was ist ISO-TP?

ISO-TP ist die Netzwerk- und Transportschicht, mit der eine Diagnosenachricht, die länger als ein CAN-Frame ist, über CAN oder CAN FD läuft. Das erste Nibble jedes Frames, die Protocol Control Information (PCI), sagt, um welche Frame-Art es sich handelt:

PCIFrameBedeutung
0x0NSingle FrameGanze Nachricht, N Bytes (bis 7 auf klassischem CAN)
0x1N NNFirst FrameBeginn einer segmentierten Nachricht, 12-Bit-Gesamtlänge
0x2NConsecutive FrameNächstes Segment, Sequenznummer N von 1 bis F, dann wieder 0
0x30 / 0x31 / 0x32Flow ControlWeiter, warten, Überlauf; danach Block Size und STmin

Das Lesen einer 20 Byte langen VIN-Antwort sieht mit Normal Addressing so aus. Der Tester schickt 03 22 F1 90 55 55 55 55 (Single Frame, Padding 55). Das Steuergerät antwortet mit einem First Frame 10 14 62 F1 90 57 56 57 (0x014 = 20 Bytes), der Tester antwortet 30 00 00 (weiter, keine Blockgrenze, kein Abstand), und das Steuergerät schickt 21 ... und 22 ... mit den restlichen 14 Bytes.

Wo ist es definiert?

ISO 15765-2 definiert die Frame-Arten, die Adressierungsformate (Normal, Extended, Mixed und Normal Fixed für 29-Bit-Identifier), die Flow-Control-Parameter und die Timer N_As, N_Bs, N_Cr und weitere. Die Ausgabe 2016 brachte die CAN-FD-Unterstützung und die Escape-Sequenzen für längere Single und First Frames; aktuell ist ISO 15765-2:2024. CAN selbst ist ISO 11898-1, UDS darüber ist ISO 14229.

Was es in der Praxis bedeutet

In ISO-TP verarbeitet ein Steuergerät zum ersten Mal Bytes, die ein Tester oder ein Angreifer kontrolliert. Der Reassembly-Code legt aus der Länge im First Frame einen Puffer an, zählt Sequenznummern und lässt Timer laufen, alles bevor die UDS-Schicht irgendetwas sieht. Damit ist ISO-TP ein klassischer Ort für Speicherfehler.

Wir sehen regelmäßig Steuergeräte, die zurücksetzen oder hängen, wenn ein First Frame eine Länge ankündigt, die der Puffer nicht fassen kann, wenn die angekündigte Länge kleiner ist als die bereits gesendeten Daten, wenn Consecutive Frames außer der Reihe kommen oder wenn ein Sender STmin ignoriert. An Leistungselektronik-Steuergeräten haben wir erlebt, dass ein einziger fehlerhafter First Frame den Diagnose-Stack bis zum Neustart lahmlegt. Falsches Padding und ein unpassendes Adressierungsformat sind die anderen typischen Probleme am Prüfstand: das Steuergerät bleibt einfach stumm, was nach “keine Diagnose” aussieht, bis du das richtige Format probierst.

Wie AutoST es testet

AutoST findet ISO-TP-Endpunkte während der Enumeration, indem es Paare aus Request- und Response-Identifiern prüft, und führt dann jeden UDS-Test über diesen Transport aus. Die UDS-Fuzzing-Engine schickt Payloads bis 128 Bytes, was segmentierte Übertragungen mit First, Consecutive und Flow-Control-Frames erzwingt, und ein TesterPresent-Lebenszeichen-Check nach jeder Iteration meldet ein Steuergerät, dessen Transport nicht mehr antwortet.

Häufige Missverständnisse

ISO-TP bringt keine Sicherheit. Flow Control ist ein Takt-Mechanismus, keine Zugriffsprüfung, und ein Frame, der die Regeln bricht, soll ignoriert werden, nicht das Steuergerät abstürzen lassen. Außerdem beweist ein stummes Steuergerät nicht, dass die Diagnose abgeschaltet ist: Adressierungsformat oder Padding passen vielleicht einfach nicht.

FAQ

Häufig gestellte Fragen

Wie lang darf eine ISO-TP-Nachricht maximal sein?

Mit dem klassischen 12-Bit-Längenfeld im First Frame 4095 Bytes. Seit der Ausgabe 2016 folgt auf einen First Frame mit Länge 0 eine 32-Bit-Länge (die Escape-Sequenz), damit sind deutlich längere Nachrichten möglich, vor allem mit CAN FD und beim Flashen.

Was bedeuten Block Size und STmin?

Beide schickt der Empfänger im Flow-Control-Frame. Die Block Size sagt, wie viele Consecutive Frames der Sender schicken darf, bevor er auf die nächste Flow Control wartet (0 heißt: alle). STmin ist der Mindestabstand zwischen Consecutive Frames: 0x00 bis 0x7F sind Millisekunden, 0xF1 bis 0xF9 sind 100 bis 900 Mikrosekunden.

Wird ISO-TP nur für UDS verwendet?

Meist für UDS- und OBD-Diagnose auf CAN, aber jedes Protokoll, das auf CAN längere Nachrichten braucht, kann es nutzen. Über Ethernet ersetzt DoIP das Protokoll, weil TCP die Segmentierung schon übernimmt.

Quellen

Passende Seiten

Sieh es auf deinem ECU

Ein Begriff, der für dein Steuergerät zählt?

In 15 Minuten sagen wir dir, wie AutoST ihn testet, wie ein Finding aussieht und was er für deinen ISO/SAE-21434-Nachweis bedeutet.

  • Direkte Antwort von einem ECU-Security-Engineer
  • Welcher Test den Begriff abdeckt
  • Kostenlos und unverbindlich
Tom Zaubermann

Deine Demo ist mitTom ZaubermannGründer von Zyberum, früher Leiter des VW InCar Security Testing Lab

Bereits im Einsatz bei Tier-1-, Tier-2-Zulieferern und OEMs. Referenzen auf Anfrage.

Ruf uns an: +49 176 439 17074automotive@zyberum.com

Oder schreib uns eine Nachricht

Wir antworten innerhalb eines Werktags.

Ruf uns anAutoST-Team fragen

Wähle einen Termin, der dir passt

In neuem Tab öffnen