29.01.2013 Aufrufe

Optimierung einer Softwarebibliothek für sicherheitsrelevante

Optimierung einer Softwarebibliothek für sicherheitsrelevante

Optimierung einer Softwarebibliothek für sicherheitsrelevante

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

4 Konzept und Implementierung 47<br />

4.1.5 RAM-Test<br />

Konzept<br />

In dem Kapitel Grundlagen wurden zwei Testverfahren genannt, mit denen in der vorhandenen<br />

Bibliothek das RAM getestet wurde. Die beiden Testmethoden wurden auf<br />

ihre Fehleraufdeckung, Zeit und die sicherheitstechnische Tauglichkeit beglichen. Dabei<br />

kam nur ein entscheidender Unterschied als Ergebnis heraus: bei dem X-March-Test<br />

wird der Inhalt des RAMs vollständig „zerstört“, weil das gesamte RAM mit Nullen überschrieben<br />

wird. Beim Überschreiben des RAMs können sehr wichtige und <strong>für</strong> den Erhalt<br />

der Sicherheitsfunktion benötigte Daten einfach gelöscht werden. Anhand dieser Tatsache<br />

wurde der transparente Speichertest ausgewählt und überarbeitet.<br />

Der Philips LPC2148 verfügt über einen 32 KB großen Arbeitspeicher(RAM). Abbildung<br />

29 [LPC2148] zeigt der Adressbereich des RAMs:<br />

Abbildung 29: Adressbereich des RAMs<br />

Aus der Abbildung geht hervor, dass das RAM sich von 0x40000000 bis 0x40007FFF<br />

erstreckt. Im unteren RAM-Bereich befindet sich ein reservierter Bereich. In diesem Bereich<br />

befinden sich Stack, Heap und Interrupt Vektoren. In dieser Thesis werden diese<br />

Bereiche nicht getestet, weil es sich während der Ausführung von Programmen der Stackinhalt<br />

ständig verändert, was zu immer neuen CRC-Werten führen wird, also nach<br />

Definition des Tests zu einem Fehler. Um diese Bereiche zu testen, sollen neue Testmethoden<br />

entworfen werden. Leider ist diese Thesis zeitlich begrenzt und lässt dies nicht<br />

zu.<br />

Implementierung des ROM-Tests<br />

Dem vorhandenen transparenten Speichertest werden die Start-, Endadressen, Sektorlänge<br />

und Anzahl der Sektoren übergeben. Anhand dieser Daten wird der Test durchgeführt.<br />

Zuerst wird das Testwort selbst mit einem Walking Bit Pattern überprüft. Als nächstes<br />

wird der Sektor, in dem sich das Testwort befindet, getestet, danach die übrigen Sektoren.<br />

Falls die Tests erfolgreich waren, wird das nächste Testwort genommen.<br />

In der vorhandenen Bibliothek wurde zur Signaturberechnung (CRC-Bildung) eine 16 Bit<br />

Signatur verwendet. Dies wird geändert und eine 32 Bit lange CRC genommen. Anstatt<br />

der Berechnung jedes einzelnen Wertes zur Laufzeit, was zusätzlichen zeitlichen Aufwand<br />

bedeutet, wird eine andere Methode verwendet. Bei dieser Methode wird eine Tabelle<br />

(Look-Up-Tabelle) im ROM angelegt mit Hilfe derer die CRC-Signatur berechnet

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!