AUTOSAR_CP_SWS_CryptoDriver
FIG-0d8448ed7a37e06a
614 × 347 px
2 Release(s)
Figure 7.2: NvBlock configuration for key persistence
SHA-256 Inhalts-Fingerabdruck:
0d8448ed7a37e06af871b3edd86ffad96c63c56f83879bf08e1c6ac0ee416e5f
✦
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-Metamodell- / BSW-Konfigurations-Klassendiagramm (ECUC-Strukturmodell).
- Technischer Zweck & Einordnung: Spezifikation des Persistierungsmodells kryptografischer Schlüssel (Key Persistence) im AUTOSAR Classic Platform Crypto Driver (
Crypto, MCAL/BSW-Treiberschicht) in Relation zum Non-Volatile RAM Manager (NvM, BSW-System-/Serviceschicht) gemäßSRS_CryptoStack_00061undSWS_Crypto_00242. - Funktionale Einordnung: Definiert die statische Verknüpfung zwischen logischen Schlüsselinstanzen des Crypto-Stacks und persistenten Speicherblöcken des NvM zur Erhaltung des Schlüsselmaterials über Power-Cycles hinweg.
2. Komponenten, Entitäten & Schnittstellen
NVM::NvBlock(NvMBlockDescriptor):- Konfigurationscontainer des NvM-Moduls.
- Repräsentiert die logische Abstraktion eines nicht-flüchtigen Speicherblocks (EEPROM/Flash) inklusive RAM-Spiegel (RAM Block) und Management-Headern.
Key(CryptoKey):- Konfigurationscontainer einer logischen Schlüsselinstanz im Crypto Driver, adressiert über eine systemweit eindeutige
CryptoKeyId. - Hält Laufzeitstatus, Gültigkeitsflags (valid/invalid) und die Instanzdaten.
- Konfigurationscontainer einer logischen Schlüsselinstanz im Crypto Driver, adressiert über eine systemweit eindeutige
KeyType(CryptoKeyType):- Struktureller Typ- und Metadatencontainer, der das logische Layout eines Schlüssels definiert.
KeyElement(CryptoKeyElement):- Atomare Dateneinheit innerhalb eines Schlüssels (z. B. eigentlicher Schlüsselwert, IV, Salt, Exponent, Zähler).
- Definiert Attribute wie
CryptoKeyElementId,CryptoKeyElementSize, Format und Lese-/Schreibberechtigungen.
Beziehungen & Kardinalitäten
Key$\xrightarrow{\text{<<reference>>}}$NvBlock(1..*zu0..1):- Gerichtete Konfigurationsreferenz (
CryptoKeyNvBlockRef). 0..1anNvBlock: Ein Schlüssel ist entweder flüchtig (Kardinalität0, rein transientes Key-Handling im RAM) oder persistent (Kardinalität1, an einen persistenten NV-Block gekoppelt).1..*anKey: EinNvBlockkann von einem oder mehreren Schlüsseln referenziert werden (Shared-Block-Ansatz bei aggregierten Key-Containern).
- Gerichtete Konfigurationsreferenz (
Key⟶KeyType(Kardinalität1):- Typisierungsbeziehung: Jede Schlüsselinstanz instanziiert exakt einen definierten
KeyType.
- Typisierungsbeziehung: Jede Schlüsselinstanz instanziiert exakt einen definierten
KeyType—KeyElement(Kardinalität1..*):- Aggregation/Komposition: Ein
KeyTypesetzt sich aus mindestens einem oder beliebig vielen atomarenKeyElement-Definitionen zusammen.
- Aggregation/Komposition: Ein
3. Dynamisches Verhalten & Sequenzablauf
- Initialisierungsphase (
Crypto_Init/ Startup):- Das Laden persistenter Schlüsseldaten erfolgt typischerweise im Zuge von
NvM_ReadAll()oder über eine explizite Ladeoperation (NvM_ReadBlock()) in den konfigurierten RAM-Spiegel des Treibers. - Der Crypto Driver synchronisiert den Zustand (
VALID/INVALID) anhand der im NvM abgelegten Metadaten.
- Das Laden persistenter Schlüsseldaten erfolgt typischerweise im Zuge von
- Schlüsselmodifikation (
Crypto_KeyElementSet):- Aktualisierungen einzelner
KeyElementsschreiben Daten zunächst synchron in den RAM-Arbeitspuffer des Crypto Drivers.
- Aktualisierungen einzelner
- Persistierungs-Trigger (
Crypto_KeySetValid):- Durch das Validieren des Schlüssels via
Crypto_KeySetValid()wird der Persistierungsvorgang ausgelöst (SWS_Crypto_00242). - Ist
CryptoKeyNvBlockRefgesetzt, initiiert der Treiber das Schreiben des Schlüsselmaterials in den NvM (asynchroner Aufruf vonNvM_WriteBlock()bzw. Vormerkung fürNvM_WriteAll()).
- Durch das Validieren des Schlüssels via
- Fehlerbehandlung & Synchronisation:
- Fehler beim Lese-/Schreibzugriff auf den NvM führen zu Dem-Events bzw. Fehlerrückmeldungen (
E_NOT_OK) und setzen den Status desCryptoKeyauf ungültig. - Während eines laufenden NvM-Schreibvorgangs verriegelt der Treiber Zugriffe auf den Schlüssel gegen Dateninkonsistenz (
CRYPTO_E_BUSY).
- Fehler beim Lese-/Schreibzugriff auf den NvM führen zu Dem-Events bzw. Fehlerrückmeldungen (
4. Normative Relevanz & Entwickler-Hinweise
- Blockgrößen-Kalkulation:
- Der in NvM konfigurierte
NvBlockmuss exakt dimensioniert sein: Summe der Maximalgrößen aller imKeyTypeenthaltenenKeyElemente, für dieCryptoKeyElementPersist == TRUEgesetzt ist, zuzüglich treiberspezifischer Header (z. B. Validitäts-Flag, Längenfelder).
- Der in NvM konfigurierte
- Sicherheitsvorgaben (Hardware Trust Anchor / HSM / SHE):
- Plaintext-Ablage im Standard-Flash/EEPROM verletzt Security-Anforderungen. Bei Verwendung von Standard-NvM-Blöcken muss der Treiber das Schlüsselmaterial vor der Übergabe an den NvM verschlüsseln (Key Wrap) oder signieren.
- Bei reiner Hardware-Persistenz (z. B. dedizierter Secure NVRAM im HSM) entfällt die
NvBlock-Referenz (0), da die Persistierung treiberintern über die HSM-Firmware gesteuert wird.
- API- und Scheduling-Restriktionen:
- Da
NvM_WriteBlock()asynchron operiert, darf der Crypto Driver in synchronen CSM/Crypto-Aufrufen nicht blockierend auf den Abschluss des NvM-Zyklus warten. Der API-Vertrag verlangt geeignete Zustandspolling- oder Callback-Mechanismen (Csm_CallbackNotification).
- Da
Zugeordnete Anforderungen
Diese Angaben zeigt der Versions-Explorer.