AUTOSAR_CP_SWS_KeyManager
FIG-36ce43b55553b125
929 × 922 px
2 Release(s)
Figure 9.2: Store multiple key
SHA-256 Inhalts-Fingerabdruck:
36ce43b55553b125ad5dee66d0f723fddf8df313146320ead5ec760488fb4302
✦
KI-generierte Bildanalyse & technische Beschreibung
Modell: gemini-3.8-flash (via agy) · Rezept figure-description@2 · erstellt am 2026-10-07
1. Diagrammtyp & Architektur-Kontext
- Diagrammtyp: UML-Sequenzdiagramm (Interaktionsdiagramm).
- Technischer Zweck: Spezifikation des synchronen Interaktions- und Protokollablaufs zur sicheren Einbringung und Verifizierung mehrteiliger bzw. mehrerer kryptografischer Schlüssel (
Store multiple key) im AUTOSAR Classic Platform Crypto-Stack. - Architektonische Einordnung:
- Liegt in der BSW-Serviceschicht (Service Layer).
- Beschreibt die Vermittlerrolle des Key Managers (
KeyM) zwischen Applikationsebene/Diagnose (z. B. Dcm, Security-SWC) und dem Crypto Service Manager (Csm), welcher die Hardware-Abstraktion (CryIf, Crypto Driver/HSM) anbindet.
2. Komponenten, Entitäten & Schnittstellen
- Beteiligte Instanzen (Lifelines):
Application: Aufrufende Applikations-SWC oder BSW-Komponente (z. B. Diagnose-/Update-Dienst zur Schlüsselbereitstellung).«module» KeyM: AUTOSAR Key Manager BSW-Modul (Zustandsverwaltung, Format-Parsing, Orchestrierung).KeyHandler: Interner/konfigurierter Callback- bzw. Sub-Handler für herstellerspezifische Schlüsselvorbereitung (KeyM_KH_*).«module» Csm: AUTOSAR Crypto Service Manager (Kryptografische Basisfunktionen und Schlüsselverwaltung im HSM/Crypto-Treiber).
- Schnittstellen & Parameter-Signaturen:
- Application → KeyM:
KeyM_Start(Std_ReturnType, KeyM_StartType, const uint8*, uint16, uint8**, uint16**): int: Initialisierung des Schlüssel-Update-Vorgangs; Übergabe von Betriebsmodus und Ein-/Ausgabepuffern.KeyM_Prepare(Std_ReturnType, const uint8*, uint16, uint8**, uint16**): Vorbereitung des Zielspeichers und Kontextes.KeyM_Update("1".."3", ...): Sequentielles Laden einzelner Schlüsselteile/Elemente.KeyM_Finalize(Std_ReturnType, const uint8*, uint16, uint8**, uint16*): Abschluss der Übertragung und Hash-/Längen-Validierung.KeyM_Verify(Std_ReturnType, const uint8*, uint16, const uint8*, uint16, uint8**, uint16**): int: Verifikation der eingebrachten Schlüsseldaten (z. B. per Signatur/MAC).
- KeyM → KeyHandler:
KeyM_KH_Prepare(): Modulinterne Schnittstelle zur Formatanpassung/Vorvalidierung.
- KeyM → Csm:
Csm_KeyElementSet(keyId, keyElementId, keyPtr, keyLength): Schreiben einzelner Schlüsselelemente in den persistenten oder transienten Schlüsselspeicher (HSM/SHE/Crypto-Treiber).Csm_KeySetValid(keyId): Atomares Aktivieren/Gültigsetzen des Schlüssels nach vollständiger Übertragung.Csm_XXXVerify(...): Dynamisch aufgelöste Verifikationsfunktion basierend auf dem ParameterKeyMCryptoCsmVerifyJobRef(im Diagramm typografisch alsKeyMCryptpKeyCsmVerifyJobRefannotiert).
- Application → KeyM:
3. Dynamisches Verhalten & Sequenzablauf
- Initialisierungsphase:
ApplicationtriggertKeyM_Start(...).KeyMwechselt intern in den Zustandstate = active(Session ist geöffnet, Exklusivität für Schlüsseloperationen etabliert) und quittiert synchron.
- Vorbereitungsphase:
Applicationruft synchronKeyM_Prepare(...)auf.KeyMleitet den Aufruf anKeyHandlerviaKeyM_KH_Prepare()weiter, um Parsing-Strukturen und Puffer zu allozieren/vorzubereiten.
- Iterative Übertragungsphase (Schlüsselkörper 1 bis 3):
- Die Applikation transferiert die Schlüsseldaten blockweise oder elementspezifisch über wiederholte Aufrufe von
KeyM_Update(...)("1","2","3"). - Jeder Aufruf resultiert in einer synchronen Weiterleitung von
KeyManCsmviaCsm_KeyElementSet(...), wodurch die Schutzelemente direkt im Ziel-Treiber/HSM abgelegt werden.
- Die Applikation transferiert die Schlüsseldaten blockweise oder elementspezifisch über wiederholte Aufrufe von
- Finalisierungsphase:
- Nach vollständigem Datentransfer ruft die Applikation
KeyM_Finalize(...)auf. KeyMschließt das Setzen der Elemente ab und validiert den Schlüsselbestand im CSM überCsm_KeySetValid(...). Der Schlüsselstatus wechselt im CSM von in Bearbeitung/ungültig auf gültig.
- Nach vollständigem Datentransfer ruft die Applikation
- Verifikationsphase:
ApplicationinitiiertKeyM_Verify(...)mit Zertifikats-/Signatur-Prüfdaten.- Gemäß Konfigurationsparameter
KeyMCryptoCsmVerifyJobTypebzw.KeyMCryptoCsmVerifyJobRefmapptKeyMden Funktionsnamen und stößt den Verifikationsjob synchron überCsm_XXXVerify(...)an (z. B. SignatureVerify oder MacVerify). - Nach erfolgreichem Rückgabewert meldet
KeyMden Abschlussstatus an die Applikation zurück.
4. Normative Relevanz & Entwickler-Hinweise
- Zustandskonsistenz & Rollback:
- Der Schlüssel verbleibt im CSM bis zum erfolgreichen Aufruf von
Csm_KeySetValidim Zustand invalid. Schlägt ein Teilschritt (KeyM_Update,KeyM_FinalizeoderKeyM_Verify) fehl, darf der Schlüssel nicht als gültig markiert werden bzw. muss invalidiert werden.
- Der Schlüssel verbleibt im CSM bis zum erfolgreichen Aufruf von
- Synchroner Aufrufkontext:
- Alle dargestellten CSM-Schnittstellen (
Csm_KeyElementSet,Csm_KeySetValid,Csm_XXXVerify) werden hier synchron bedient. Dies erfordert, dass die zugrundeliegenden CryIf-/Crypto-Treiber-Jobs für synchrone Verarbeitung (CRYPTO_PROCESSING_SYNC) konfiguriert sind, um Blockaden des aufrufenden Tasks zu vermeiden bzw. deterministische Laufzeiten zu garantieren.
- Alle dargestellten CSM-Schnittstellen (
- Konfigurationsabhängige API-Ableitung:
- Die Verifikationsschnittstelle
Csm_XXXVerifyist generisch. Der Entwickler/Integrator muss über den KonfigurationscontainerKeyMCryptoCsmVerifyJobRefden konkreten CSM-Job (z. B. RSA/ECC-Signaturprüfung oder CMAC) referenzieren;KeyMgeneriert bzw. bindet die entsprechende Service-API typsicher ein.
- Die Verifikationsschnittstelle
- Puffer- und Alignment-Anforderungen:
- Doppelzeiger-Signaturen (
uint8**,uint16**) inKeyM_Start,KeyM_Prepare,KeyM_Verifydienen dem dynamischen Handling von Response-Daten bzw. Restdatenpuffern. Entwickler müssen sicherstellen, dass die übergebenen Pufferbereiche gültig bleiben und den Cache-/Alignment-Vorgaben der Plattform entsprechen.
- Doppelzeiger-Signaturen (
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.