DEENESPTFRRUARHIKOZHNL
AUTOSAR_AP_EXP_SWArchitecture FIG-0f3ce3b04cf4263b 723 × 373 px 1 Release(s)

Figure 9.110: Interfaces for security

SHA-256 Inhalts-Fingerabdruck: 0f3ce3b04cf4263b14048dc04933abf112786abff030c6db6a7063b065241345
✦ KI-generierte Bildanalyse & technische Beschreibung Modell: gemini-3.8-flash (via agy) · Rezept figure-series@1 · erstellt am 2026-10-08

1. Diagrammtyp & Architektur-Kontext

  • Klassifikation: UML-Komponenten- und Schnittstellendiagramm (AUTOSAR Adaptive Platform Architecture Modeling).
  • Funktionaler Kontext: Das Diagramm spezifiziert die Interaktion zwischen dem zentralen Diagnostic Management (DM) Functional Cluster (ara::diag, daemon-basiert) und einer Adaptive Application (AA) für sicherheitskritische Diagnosefunktionen gemäß ISO 14229-1 (UDS).
  • Architektonischer Zweck: Trennung von protokollarischer Diagnoseabwicklung (UDS/DoIP-Terminierung im Daemon) und applikativer Autorisierungs-, Validierungs- sowie Kryptologielogik im Prozesskontext der Adaptive Application.

2. Komponenten, Entitäten & Schnittstellen

Akteure & Komponenten
  • Adaptive Application: Applikationsprozess im POSIX User Space der Adaptive Platform, der Diagnose- und Security-Funktionen als Service-Consumer nutzt und Handler-Methoden als Callbacks bereitstellt.
  • «aapFunctionalCluster» Diagnostic Management (Attribut: daemon-based): Zentraler Plattformdienst (Daemon), der als UDS-Server fungiert und die Port-Schnittstellen implementiert bzw. bereitstellt.
Port-Schnittstellen («aapPortInterface,aapAPI» bzw. «aapAPI,aapPortInterface»)
  1. SecurityAccess (UDS Service 0x27):
    • + Offer() / + StopOffer(): Reguläre Service-Methoden zur Lebenszyklus- und Registrierungssteuerung.
    • «aapCallbackMethod» + CompareKey(): Callback zur Schlüsselverifikation (Key Comparison) durch die Applikation.
    • «aapCallbackMethod» + GetSeed(): Callback zur Anforderung eines kryptografischen Zufallswerts (Seed) von der Applikation.
  2. ServiceValidation:
    • + Offer() / + StopOffer(): Reguläre Methoden zur Lebenszyklus-Steuerung der Validierungsinstanz.
    • «aapCallbackMethod» + Confirmation(): Callback zur Bestätigung über Abschluss oder Statusänderung einer Diagnoseanfrage.
    • «aapCallbackMethod» + Validate(): Callback zur Prüfung von System-Vorbedingungen vor der Service-Ausführung.
  3. Authentication (UDS Service 0x29):
    • + Offer() / + StopOffer(): Reguläre Methoden zur Lebenszyklus-Steuerung.
    • «aapCallbackMethod» + VerifyCertificateBidirectional(): Callback zur gegenseitigen Zertifikatsauthentifizierung.
    • «aapCallbackMethod» + VerifyCertificateUnidirectional(): Callback zur einseitigen Zertifikatsprüfung (Tester gegen ECU).
    • «aapCallbackMethod» + VerifyOwnership(): Callback zur Verifikation des Besitznachweises (Proof of Ownership).
  4. TransmitCertificate (UDS Service 0x29 Subfunktionen):
    • + Offer() / + StopOffer(): Reguläre Methoden zur Lebenszyklus-Steuerung.
    • «aapCallbackMethod» + Process(): Callback zur Verarbeitung und Übertragung von Zertifikatsdaten.
Beziehungen & Ports
  • Applikationsseite (Adaptive Application): Greift auf alle vier Schnittstellen (SecurityAccess, ServiceValidation, Authentication, TransmitCertificate) jeweils über einen «aapRequiredPort» mit «use»-Abhängigkeit zu.
  • Daemon-Seite (Diagnostic Management): Realisiert alle vier Schnittstellen vollständig (UML-Schnittstellenrealisierung: gestrichelte Linien mit geschlossener, nicht ausgefüllter Pfeilspitze vom Diagnostic Management zur jeweiligen Schnittstelle).

3. Dynamisches Verhalten & Sequenzablauf

Lifecycle & Registrierung
  1. Service Announcement: Die Applikation initialisiert ihre Diagnose-Handler und ruft Offer() auf. Dies publiziert die Instanz per IPC (z. B. UNIX Domain Sockets/Shared Memory) beim DM-Daemon.
  2. Shutdown: Bei Prozessbeendigung oder Degradation wird StopOffer() ausgeführt, woraufhin der DM-Daemon UDS-Anfragen für diesen Service mit NRCs abweist (z. B. 0x31 RequestOutOfRange oder 0x22 ConditionsNotCorrect).
UDS 0x27 SecurityAccess-Ablauf
  1. Seed-Request: Tester sendet Subfunktion 0x01 (RequestSeed). DM parst die PDU und ruft asynchron GetSeed() an der Applikation auf.
  2. Seed-Response: Applikation generiert den Seed (typischerweise via ara::crypto) und gibt ihn an den DM zurück; DM kapselt ihn in die UDS-Antwort.
  3. Key-Verifikation: Tester sendet Subfunktion 0x02 (SendKey). DM ruft CompareKey() auf. Bei Übereinstimmung setzt DM die Sicherheitsstufe aktiv; bei Fehlschlag wird der Fehlversuchszähler (Attempt Counter / Penalty Timer) inkrementiert.
Service-Validierung (Pre-Condition Check)
  1. Eingehender UDS-Request triggert Validate(). Die Applikation prüft interne Zustände.
  2. Gibt Validate() ein negatives Resultat zurück, antwortet DM unmittelbar mit NRC 0x22 (ConditionsNotCorrect) oder herstellerspezifischen NRCs, ohne den Service auszuführen.
  3. Nach erfolgreicher Verarbeitung informiert DM die Applikation via Confirmation().
UDS 0x29 Authentication & Zertifikatsaustausch
  1. Tester initiiert Zertifikatsübertragung (TransmitCertificate::Process()), um Certificate Chains in den ECU-Puffer zu laden.
  2. Validierung erfolgt über VerifyCertificateUnidirectional() bzw. VerifyCertificateBidirectional().
  3. Asymmetrischer Besitznachweis wird über VerifyOwnership() verifiziert, bevor erweiterte Diagnoserechte freigeschaltet werden.

4. Normative Relevanz & Entwickler-Hinweise

  • Asynchroner API-Vertrag (ara::core::Future / ara::core::Result): Methoden wie GetSeed(), CompareKey() und VerifyCertificate*() sind nicht-blockierend zu implementieren. Da kryptografische Berechnungen Latenzen erzeugen, muss der DM-Daemon bei Überschreitung des UDS-Timers P2_Server automatisch Response Pending (0x78) an den Tester senden, bis das Future aufgelöst ist.
  • ARXML-Modellierung (Manifest):
    • DiagnosticSecurityAccessInterface und DiagnosticServiceValidationInterface müssen im Execution- und Service-Instance-Manifest korrekt an die Port-Prototypen der AA gebunden werden.
    • Zuweisung der Security-Levels (SecurityLevel-Referenzen) und Zuordnung der UDS-Service-IDs zur ServiceValidation muss im Diagnose-Extrakt konsistent definiert sein.
  • Interaktion mit ara::crypto: Für Authentication (UDS 0x29) und SecurityAccess (UDS 0x27) darf die Applikation Schlüsselmaterial nicht im Klartext halten; private Keys und Root-Zertifikate müssen über die Krypto-APIs (X509Provider, KeyStorageProvider) in Hardware-Vertrauensankern (HSM/Secure Element) abgesichert sein.

Versionsvergleich KI-generiert · gemini-3.8-flash (via agy)

R24-11 → R25-11 normative Änderung Vorgänger: FIG-dbe10d5d26d0b330
  • Umkehrung der Realisierungs- und Portbeziehungen:
    • Adaptive Application: Realisiert die vier Schnittstellen (SecurityAccess, ServiceValidation, Authentication, TransmitCertificate) nicht mehr direkt, sondern bindet alle vier Schnittstellen nun einheitlich als Client über «use» mit dem Stereotyp «aapRequiredPort» an.
    • Diagnostic Management: Verwendet die Schnittstellen nicht mehr über Ports («aapRequiredPort» bzw. «aapProvidedPort»), sondern implementiert/realisiert nun alle vier Schnittstellen direkt (UML-Schnittstellenrealisierung: gestrichelte Linien mit geschlossener, nicht ausgefüllter Pfeilspitze).
  • Einführung des Stereotyps «aapCallbackMethod»:
    • SecurityAccess: + CompareKey() und + GetSeed() sind nun explizit als «aapCallbackMethod» typisiert; + Offer() und + StopOffer() verbleiben als reguläre Methoden.
    • ServiceValidation: + Confirmation() und + Validate() sind nun explizit als «aapCallbackMethod» typisiert; + Offer() und + StopOffer() verbleiben als reguläre Methoden.
    • Authentication: + VerifyCertificateBidirectional(), + VerifyCertificateUnidirectional() und + VerifyOwnership() sind nun explizit als «aapCallbackMethod» typisiert; + Offer() und + StopOffer() verbleiben als reguläre Methoden.
    • TransmitCertificate: + Process() ist nun explizit als «aapCallbackMethod» typisiert; + Offer() und + StopOffer() verbleiben als reguläre Methoden.

Zugeordnete Anforderungen

Diese Angaben zeigt der Versions-Explorer.

Aus dem Dokument extrahierter Text & Kontext

Beschriftungen im Schaubild:

«aapFunctionalCluster» Diagnostic Management daemon-based | «aapPortInterface,aapAPI» | SecurityAccess | + Offer() + StopOffer() | «aapCallbackMethod» + CompareKey() + GetSeed() | Adaptive Application | «aapPortInterface,aapAPI» | ServiceValidation | + Offer() + StopOffer() | «aapCallbackMethod» + Confirmation() + Validate() | «aapAPI,aapPortInterface» | Authentication | + Offer() + StopOffer() | «aapCallbackMethod» + VerifyCertificateBidirectional() + VerifyCertificateUnidirectional() + VerifyOwnership() | «aapAPI,aapPortInterface» | TransmitCertificate | + Offer() + StopOffer() | «aapCallbackMethod» + Process() | «use» «aapRequiredPort» «use» «aapRequiredPort» «use» «aapRequiredPort» | «use» «aapRequiredPort»

Vorkommen in AUTOSAR-Releases (1)

Release Dokument Seite Nr. Bildunterschrift im Dokument
R25-11 AUTOSAR_AP_EXP_SWArchitecture S. 158 9.110 Figure 9.110: Interfaces for security