Optimierung einer Softwarebibliothek für sicherheitsrelevante
Optimierung einer Softwarebibliothek für sicherheitsrelevante
Optimierung einer Softwarebibliothek für sicherheitsrelevante
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
1 Einleitung 8<br />
Die Entscheidung eine Bibliothek <strong>für</strong> einen µController, der auf einem „ARM7TDMI“ 32-<br />
Bit Prozessor basiert zu entwickeln, wurde durch folgende Gründe beeinflusst. Als erster<br />
Grund hier<strong>für</strong> dient die Tatsache, dass ARM-Prozessoren in bestimmten Marktsegmenten<br />
sehr große Marktanteile besitzen. Deshalb entstand die Frage, ob es möglich wäre<br />
sicherheitskritische Anwendungen auf diesen µControllern auszuführen. Als zweiter<br />
Grund kann die Tatsache angesehen werden, dass während des Studiums nur mit<br />
µControllern, die 8-Bit bzw. mit 16-Bit Prozessoren besitzen, gearbeitet wurde. Deswegen<br />
dient diese Thesis auch als Einstieg in den 32-Bit µController-Welt. Zudem wurden<br />
die Selbsttests z.B. im BGIA (Berufgenossenschaftliches Institut <strong>für</strong> Arbeitschutz)-Report<br />
7/2006 <strong>für</strong> den 80C537 von Siemens, der eine 8-Bit CPU besitzt, entwickelt [BGIA706].<br />
Es bleibt noch hinzuzufügen, dass, obwohl eigentlich einzelne Testmethoden <strong>für</strong> Speicher<br />
oder CPU vorhanden sind und implementiert wurden, zu kompletten Testroutinen<br />
gibt. Ausnahmen bilden [BGIA706] und [TUR05].<br />
1.2 Aufbau der Thesis<br />
Für fast jedes Projekt sind festgelegte Anforderungen sehr wichtig. Deswegen werden in<br />
dieser Thesis im Kapitel 2 Grundlagen der Sicherheitstechnik, Besonderheiten der ARM-<br />
Architektur sowie Tests und Testverfahren vorgestellt. Basierend auf diesen Informationen,<br />
bilden im Kapitel 3 Anforderungen an eine Bibliothek festgelegt und anhand derer<br />
die Bibliothek im Kapitel 4 entworfen und im Kapitel 5 implementiert. Im Kapitel 6 werden<br />
die implementierten Methoden getestet, sowie deren Ausführungszeiten gemessen. Abschließend<br />
wird ein Fazit gezogen.<br />
1.3 Stand der Technik<br />
Als Ausgangsbasis <strong>für</strong> diese Thesis dient ein Prototyp <strong>einer</strong> <strong>Softwarebibliothek</strong>, der einige<br />
Selbsttest beinhaltet. Dieser Prototyp wurde im Fachbereich <strong>für</strong> interne Benutzung<br />
entworfen. Zu den Tests, die in der Bibliothek enthalten sind, zählen: Register-, Arbeitspeicher(RAM)-,<br />
Programmspeicher(ROM)-, Watchdog- und CPU-Test, wobei bei diesem<br />
Test nur einige Befehle getestet wurden. Diese Bibliothek wird überarbeitet und<br />
weiter entwickelt. Sehr viele Grundgedanken und Ideen sind in [BGIA706] und [TUR05]<br />
erläutert.<br />
Der in der Bibliothek vorhandene Register-Test basiert auf so genannten „Walking Bit<br />
Pattern“-Verfahren. Für den Arbeitsspeicher–Test wurden zwei verschiedene Methoden<br />
implementiert: Als erstes ein transparenter Speichertest und zweitens ein „March X“-<br />
Test. Dies hatte zum Ziel, Unterschiede in Ausführungsgeschwindigkeit und Fehleraufdeckungsgrad<br />
zu ermittelt. Beim Programmspeicher-Test wird beim Start eine 32-Bit<br />
lange Signatur(CRC 4 ) gebildet, dann im Betrieb in bestimmten Zeitintervallen eine neue<br />
berechnet und mit dem Anfangswert verglichen. Grundgedanke des implementierten<br />
4 CRC – Cyclic Redundancy Check