Seminar / Training
Die Schulung behandelt FF-A als standardisierte Kommunikations- und Lebenszyklusgrundlage für Secure Partitions. TF-A wird als Secure Partition Manager Core beziehungsweise als Bindeglied zu einem SPMC betrachtet. Manifest, Partitionserkennung, Direct Messaging, Shared Memory, Interrupts, Scheduling und Fehlerbehandlung werden in einer durchgehenden Laborumgebung umgesetzt.
Inhaltsübersicht
- FF-A-Architektur und SPM-Modelle
- Build- und Bootintegration
- Partition Manifest
- Partition Discovery und Versionierung
- Direct Messaging
- Shared Memory
- Notifications und Interrupts
- Scheduling und Ausführungskontexte
- Speicher- und Geräteisolation
- Fehleranalyse und Kompatibilität
- Gesamtübung
Lernziele
- FF-A-Komponenten, Endpunkte, Versionen und Verantwortungsmodelle sicher unterscheiden.
- Secure-Partition-Manifeste und Bootreihenfolgen korrekt erstellen und validieren.
- Direkte Nachrichten, Shared-Memory-Transaktionen und Notifications implementieren.
- Interrupt-, Scheduling- und Laufzeitverhalten mehrerer Partitionen analysieren.
- FF-A-Systeme mit Isolationstests, Negativfällen und Kompatibilitätsprüfungen absichern.
Seminarinhalte
1. FF-A-Architektur und SPM-Modelle
- Schritt 1: Normal World, Secure World, SPMC, SPMD und Secure Partitions werden funktional abgegrenzt.
- Schritt 2: S-EL1- und S-EL2-Varianten werden nach Isolation, Scheduling und Plattformanforderung verglichen.
- Schritt 3: Der konkrete Aufrufpfad wird für die gewählte Referenzarchitektur festgelegt.
Praxis: Ein Komponenten- und Aufrufdiagramm für zwei SPM-Varianten wird erstellt.
2. Build- und Bootintegration
- Schritt 1: TF-A-, SPMC- und Secure-Partition-Artefakte werden mit kompatiblen Versionen gebaut.
- Schritt 2: FIP- und Ladebeziehungen werden so angelegt, dass jedes Image eindeutig adressiert und geprüft wird.
- Schritt 3: Bootlogs werden pro Komponente markiert und in eine gemeinsame Zeitleiste gebracht.
Praxis: Eine Umgebung mit SPMC und einer ersten Secure Partition wird reproduzierbar gestartet.
3. Partition Manifest
- Schritt 1: UUID, Execution Contexts, Speicherregionen, Geräte und Interrupts werden deklariert.
- Schritt 2: Berechtigungen und Abhängigkeiten werden auf das notwendige Minimum begrenzt.
- Schritt 3: Parser- und Laufzeitvalidierung behandeln fehlende, doppelte und widersprüchliche Angaben.
Praxis: Ein Manifest wird erstellt und mit mehreren absichtlichen Fehlern validiert.
4. Partition Discovery und Versionierung
- Schritt 1: FF-A-Version und Feature-Fähigkeiten werden zwischen Endpunkten ausgehandelt.
- Schritt 2: Partition Info und UUID-basierte Suche werden auf Sichtbarkeit und Rechte geprüft.
- Schritt 3: Nicht unterstützte Features führen zu einem definierten Fallback oder Abbruch.
Praxis: Ein Client entdeckt nur die für ihn sichtbaren Partitionen und prüft deren Fähigkeiten.
5. Direct Messaging
- Schritt 1: Synchronous Direct Requests und Responses werden mit korrekter Registerbelegung aufgebaut.
- Schritt 2: Aufrufrichtung, Reentrancy und verschachtelte Kommunikation werden begrenzt.
- Schritt 3: Fehler, Busy-Zustände und ungültige Endpunkte werden eindeutig zurückgegeben.
Praxis: Zwei Partitionen tauschen direkte Nachrichten aus und behandeln einen Busy-Fall.
6. Shared Memory
- Schritt 1: Donate, Lend und Share werden nach Ownership und Zugriffsrechten unterschieden.
- Schritt 2: Descriptoren, Empfängerrechte und Fragmentierung werden vollständig validiert.
- Schritt 3: Retrieve, Relinquish und Reclaim schließen den Lebenszyklus ohne Restzugriffe ab.
Praxis: Eine fragmentierte Shared-Memory-Transaktion wird durchgeführt und ordnungsgemäß zurückgenommen.
7. Notifications und Interrupts
- Schritt 1: Notification-Bitmaps, Bindung und Zustellung werden pro Endpunkt konfiguriert.
- Schritt 2: Virtuelle und physische Interrupts werden ihrer Partition und Priorität zugeordnet.
- Schritt 3: Verlorene, doppelte oder maskierte Ereignisse werden über definierte Tests erkannt.
Praxis: Eine Partition verarbeitet Notification und Interrupt in kontrollierter Reihenfolge.
8. Scheduling und Ausführungskontexte
- Schritt 1: Execution Contexts, VCPU-Zuordnung und Run/Wait-Zustände werden verfolgt.
- Schritt 2: Preemption, Yield und Blockierung werden mit der SPMC-Schedulingstrategie abgestimmt.
- Schritt 3: Mehrkernbetrieb wird auf Datenrennen und falsche Kontextzuordnung geprüft.
Praxis: Zwei Partitionen werden unter konkurrierender Last beobachtet und stabilisiert.
9. Speicher- und Geräteisolation
- Schritt 1: Stage-1- und Stage-2-Rechte werden mit dem Manifest abgeglichen.
- Schritt 2: Gerätezugriff, DMA und gemeinsam genutzte Puffer werden in das Bedrohungsmodell aufgenommen.
- Schritt 3: Unerlaubte Zugriffe müssen deterministisch blockiert und diagnostizierbar sein.
Praxis: Eine Isolationstestreihe prüft Speicher-, Geräte- und Endpunktgrenzen.
10. Fehleranalyse und Kompatibilität
- Schritt 1: FF-A-Fehlercodes werden von SPMC- und Partitionfehlern unterschieden.
- Schritt 2: Versions- und Featurekombinationen werden in einer Kompatibilitätsmatrix getestet.
- Schritt 3: Logs aus TF-A, SPMC und Partitionen werden über Transaktionskennungen korreliert.
Praxis: Ein fehlerhafter Shared-Memory-Fall wird schichtübergreifend diagnostiziert.
11. Gesamtübung
- Schritt 1: Eine zweite Partition wird mit eigenem Manifest und eingeschränkten Ressourcen ergänzt.
- Schritt 2: Discovery, Direct Messaging, Shared Memory und Notification werden in einem Ablauf kombiniert.
- Schritt 3: Positive und negative Tests bilden eine reproduzierbare Abnahme.
Praxis: Ein vollständiger FF-A-Dienst wird integriert, getestet und dokumentiert.
Zielgruppe
Firmware- und Secure-World-Entwickler, Trusted-OS-Teams, Plattformarchitekten, Security Engineers und Integratoren von Secure Partitions.
Voraussetzungen
Sehr gute TF-A- und AArch64-Kenntnisse, Secure-World-Grundlagen, C-Programmierung, Verständnis von MMU, Interrupts und Multicore-Ausführung.
Praxisumgebung
Linux-Arbeitsplatz mit TF-A, SPMC oder geeignetem Trusted OS, Secure-Partition-Beispielen, AArch64-Toolchain sowie FVP oder kompatibler Hardware.
Fachbereichsleiter / Leiter der Trainer / Ihre Ansprechpartner
-

Lucas Beich
Telefon: + 49 (221) 74740055
E-Mail: lucas.beich@seminar-experts.de -

Paul Goldschmidt
Telefon: + 49 (221) 74740055
E-Mail: paul.goldschmidt@seminar-experts.de
Seminardetails
| Dauer: | 4 Tage ca. 6 h/Tag, Beginn 1. Tag: 10:00 Uhr, weitere Tage 09:00 Uhr |
| Preis: |
Öffentlich oder Live Stream: € 2.396 zzgl. MwSt. Inhaus: € 6.800 zzgl. MwSt. |
| Teilnehmeranzahl: | min. 2 - max. 8 |
| Teilnehmer: | Firmware- und Secure-World-Entwickler, Trusted-OS-Teams, Plattformarchitekten, Security Engineers und Integratoren von Secure Partitions. |
| Voraussetzungen: | Sehr gute TF-A- und AArch64-Kenntnisse, Secure-World-Grundlagen, C-Programmierung, Verständnis von MMU, Interrupts und Multicore-Ausführung. |
| Standorte: | Stream Live, Inhaus/Firmenseminar, Berlin, Bremen, Darmstadt, Dresden, Erfurt, Essen, Flensburg, Frankfurt, Freiburg, Friedrichshafen, Hamburg, Hamm, Hannover, Jena, Kassel, Köln, Konstanz, Leipzig, Luxemburg, Magdeburg, Mainz, München, Münster, Nürnberg, Paderborn, Potsdam, Regensburg, Rostock, Stuttgart, Trier, Ulm, Wuppertal, Würzburg |
| Methoden: | Vortrag, Quellcodeanalyse, Demonstrationen, praktische Übungen am System und kontrollierte Fehlerfälle |
| Seminararten: | Öffentlich, Webinar, Inhaus, Workshop - Alle Seminare mit Trainer vor Ort, Webinar nur wenn ausdrücklich gewünscht |
| Durchführungsgarantie: | ja, ab 2 Teilnehmern |
| Sprache: | Deutsch - bei Firmenseminaren ist auch Englisch möglich |
| Seminarunterlage: | Dokumentation auf Datenträger oder als Download |
| Teilnahmezertifikat: | ja, selbstverständlich |
| Verpflegung: | Kalt- / Warmgetränke, Mittagessen (wahlweise vegetarisch) |
| Support: | 3 Anrufe im Seminarpreis enthalten |
| Barrierefreier Zugang: | an den meisten Standorten verfügbar |
| Weitere Informationen unter + 49 (221) 74740055 |
Seminartermine
Die Ergebnissliste kann durch Anklicken der Überschrift neu sortiert werden.
