Nun gilt es, die Integritätsprüfung zu realisieren. Dazu muss zunächst die ungeschützte Original-Software signiert und verschlüsselt werden (Bild 3). Für die darauf folgenden Schritte wird der AxProtector verwendet, ein kommerzielles Tool zum Schützen von Software.
Der erste Teil der Integritätsprüfung nach vorn, d.h., Prüfung der zu ladenden Software oder Daten, besteht aus den folgenden Schritten, die in der AxEngine von Wibu-Systems beim Laden der Anwendung ausgeführt werden (Bild 4):
Zusätzlich zu diesen notwendigen Schritten können zur Erhöhung der -Sicherheit noch weitere Maßnahmen umgesetzt werden, z.B. eine ausgefeilte Handhabung der Zertifikate auf Zulässigkeit in bestimmten Geräten, auf Ablaufdatum oder auf eine Sperrliste. Daneben sind periodische Überprüfungen zur Laufzeit im Arbeitsspeicher des Systems denkbar (Watchdog).
Die Lösung mit CodeMeter führt folgende Schritte durch, die auch in automatisierten Build-Prozessen ablaufen können:
Rückwärtsprüfung
Die Prüfung durch das Betriebssystem, ob der Bootprozess korrekt durchgeführt wurde, oder die Integritätsprüfung des Betriebssystems durch die Anwendung ist nur deshalb schwierig durchzuführen, weil der folgende Schritt jeweils nur begrenzten Zugriff auf den vorherigen hat. Es wird eine Zustandsmaschine in einer vertrauenswürdigen Hardware benötigt. Konzepte dafür findet man bei der Trusted Computing Group, kurz TCG: Mittels Trusted Plattform Modules, kurz TPM, ist es möglich, korrekte Zustände in Registern zu speichern. Diese Register enthalten beispielsweise Messwerte des Bootloaders, die später vom Betriebssystem geprüft werden, um die Integrität des vorhergehenden Schrittes zu bestätigen, wie in Bild 5 dargestellt.
Die „Inner Shell“ ist dabei beispielsweise das Betriebssystem, die „Outer Shell“ der Bootloader. Das Trusted Device, z.B. ein TPM-Chip oder CodeMeter-Dongle, speichert den Zustand des Bootloaders; nur wenn dieser korrekt durchlaufen wird, kann das Betriebssystem anschließend starten. Dies gilt auch für die jeweils folgenden Stufen.
CodeMeter bietet hierfür eine sichere Zustandsmaschine: Die Funktion wird hier „Enabling“ genannt. Eine Entschlüsselung des Betriebssystems wird erst freigegeben, wenn der Boot-Prozess mit korrekter Integrität durchgeführt wurde. Außerdem werden gemeinsame Geheimnisse gespeichert und erst bei erfolgreichem vorherigen Schritt für den nächsten freigegeben.