Software-SicherungsverfahrenSoftware assurance procedures
Die Erfindung betrifft die Sicherung der Software eines Computersystems gegen Manipulationen.The invention relates to securing the software of a computer system against manipulation.
Beispielsweise in Bankautomaten werden handelsübliche Computersysteme sowohl zur Steuerung des Ablaufs, der Kommunikation mit einem Bankenhost als auch der Benutzerschnittstelle eingesetzt. Die Verwendung handelsüblicher proprietärer Betriebssysteme wie Microsoft Windows hat den Vorteil einer großen Softwarebasis, aber derzeit den Nachteil, nur unzureichend gegen Manipulationen geschützt zu sein, wie sie durch die nicht autorisierte Veränderung, insbesondere von Dateien beispielsweise durch Viren, Würmer oder andere schädigende Software entstehen kann.For example, in ATMs, commercial computer systems are used to control the process, communication with a bank host, as well as the user interface. The use of commercial proprietary operating systems such as Microsoft Windows has the advantage of a large software base, but currently has the disadvantage of being insufficiently protected against manipulation, as may result from the unauthorized modification, in particular of files such as viruses, worms or other harmful software ,
In der Patentschrift US 5,224,160 wird ein Verfahren beschrieben, bei dem während des Ladevorgangs des Betriebssystems die jeweils aktive Ladestufe die jeweils folgende Ladestufe durch eine kryptographische Prüfsumme auf Integrität überprüft und den Ladevorgang nur dann fortgesetzt wird, wenn die Integrität gesichert ist. Damit werden jedoch Veränderungen während des laufenden Betriebs nicht überprüft. Zudem ist ein Eingriff in den Ladevorgang des Betriebssystems notwendig und daher bei proprietären Systemen nur vom Hersteller durchführbar.Patent Specification US Pat. No. 5,224,160 describes a method in which, during the charging process of the operating system, the respectively active charging stage checks the respective subsequent charging stage for integrity by means of a cryptographic checksum and the charging process is continued only if the integrity is ensured. However, this does not check changes during ongoing operation. In addition, an intervention in the loading of the operating system is necessary and therefore in proprietary systems only feasible by the manufacturer.
In der Patentschrift US 5,361 ,359 wird vorgeschlagen, die ausführbaren Programme und andere zu schützende Daten auf einen geschützten Datenträger abzulegen und nur von dort Programme aufrufbar zu machen. Auch diese Lösung benötigt einen Eingriff in das jeweilige Betriebssystem.In the patent US 5,361,359 it is proposed to store the executable programs and other data to be protected on a protected data carrier and to make programs only from there. This solution also requires an intervention in the respective operating system.
In der Patentschrift US 6,209,099 B1 wird ähnlich der US 5,224,160 ein kryptographischer Prozessor vorgeschlagen, durch den alle ausführbaren Programme auf Integrität geprüft werden.US Pat. No. 6,209,099 B1 proposes, similar to US Pat. No. 5,224,160, a cryptographic processor by which all executable programs are checked for integrity.
In der Patentschrift US 5,475,625 wird vorgeschlagen, dass ein Überwachungs¬ rechner über ein Netzwerk regelmäßig Prüfsummen von den zu überwachenden
Dateien anfordert, die von einem Serverprozess erzeugt, über das Netzwerk an den Überwachungsclient gesendet und dort mit Sollwerten verglichen werden. Damit lassen sich beliebige Dateien überwachen. Die Trennung der Überwachung in Client und Server verhindert zuverlässig eine Verfälschung der gespeicherten Prüfsummen; jedoch kann ein Schadensprogramm den Serverprozess auf dem zu überwachenden Rechner substituieren und weiterhin die bisherigen Prüfsummen liefern, obwohl die Dateien verändert wurden. Zwar kann ein Überwachungs¬ rechner mehreren zu überwachenden Rechnern zugeordnet sein; es wird jedoch immer ein zusätzlicher Rechner und eine Netzwerkverbindung benötigt. Weiterhin ergibt sich aus dieser Lösung keine Möglichkeit zur Reparatur.In the patent US Pat. No. 5,475,625, it is proposed that a monitoring computer regularly send checksums from the network to be monitored via a network Request files that are generated by a server process, sent to the monitoring client via the network and compared there with setpoints. This allows you to monitor any files. The separation of monitoring in client and server reliably prevents falsification of the stored checksums; however, a malicious program may substitute the server process on the host being monitored and still provide the previous checksums, even though the files have been modified. Although a monitoring computer can be assigned to several computers to be monitored; however, it always requires an additional computer and a network connection. Furthermore, there is no possibility for repair from this solution.
Die vorliegende Erfindung löst die Aufgabe, auf ein und demselben Computer¬ system die darauf laufende Software und andere konstante Datenbestände gegen Manipulationen zu sichern, indem Manipulationen frühzeitig erkannt und auto- matisch repariert werden.The present invention solves the problem of securing on one and the same computer system the software running on it and other constant databases against manipulation by early detection of manipulations and their automatic repair.
Hierzu wird von den zu schützenden Arbeitsdateien in einem autonomen Datenbereich eine Sicherheitskopie aller zu schützenden Dateien abgelegt und regelmäßig mit den Arbeitsdateien verglichen. Wird eine Abweichung erkannt, so werden die Arbeitsdateien durch die Sicherungsdateien ersetzt.For this purpose, a backup copy of all files to be protected is stored by the files to be protected in an autonomous data area and regularly compared with the working files. If a deviation is detected, the working files are replaced by the backup files.
Es handelt sich um die Sicherung eines Computersystems mit einem vorgegebenen Betriebssystem gegen Manipulation von Arbeitsdateien, die sich in einem von dem Betriebssystem herkömmlich verwalteten und benutzten primären Datenbereich befinden, wobei in einem sekundären Datenbereich Sicherungs¬ kopien der gegen Manipulation zu schützenden Arbeitsdateien gespeichert und durch bevorzugt asymmetrische Kryptographie gesichert sind, ein Vergleicher die Sicherungskopien bzw. deren Prüfsummen mit den jeweiligen Arbeitsdateien vergleicht und eine Korrekturaktion auslöst, wenn Unterschiede festgestellt werden.It is the backup of a computer system with a given operating system against manipulation of working files that are located in a conventionally managed and used by the operating primary data area, stored in a secondary data backup copies of protected against manipulation work files and preferred by asymmetric cryptography, a comparator that compares backup copies or their checksums with the respective working files and triggers a corrective action if differences are detected.
In Fig. 1 ist die Anordnung symbolisch dargestellt. Ein Computersystem (nicht dargestellt) hat einen primären Datenbereich 1 , der bevorzugt eine Partition einerIn Fig. 1, the arrangement is shown symbolically. A computer system (not shown) has a primary data area 1, which preferably is a partition of one
Festplatte ist. Weiterhin ist ein sekundärer Datenbereich 2 vorhanden, der eine weitere Partition derselben Größe, durchaus auf derselben Festplatte, ist. Der
primäre Datenbereich 1 enthält drei Arbeitsdateien 1A, 1 B, 1 C, von denen erstere und letztere eine Sicherungskopie 2A1 2C besitzen. Ein Überwachungsprogramm 4 vergleicht die Arbeitsdateien 1A und 1C mit den Sicherungskopien 2A und 2C. Wird ein Unterschied festgestellt, so wird die Korrekturaktion 5 angestoßen, die beispielsweise die Arbeitsdatei 1A durch die Sicherungsdatei 2A ersetzt. Um eine Sicherungsdatei zu erstellen oder zu verändern, wird ein Aktualisierungsprozess 6 verwendet.Hard disk is. Furthermore, there is a secondary data area 2, which is another partition of the same size, on the same hard disk. Of the primary data area 1 contains three working files 1A, 1B, 1C, of which the former and the latter have a back-up copy 2A 1 2C. A monitor 4 compares the working files 1A and 1C with the backup copies 2A and 2C. If a difference is detected, the corrective action 5 is initiated, for example, replacing the work file 1A with the backup file 2A. To create or modify a backup file, an update process 6 is used.
Der primäre Datenbereich ist insbesondere eine Partition für ein Microsoft Windows Betriebssystem, hier als NT-Filesystem formatiert.The primary data area is in particular a partition for a Microsoft Windows operating system, here formatted as an NT file system.
Im einfachsten Fall ist der sekundäre Datenbereich 2 gleichfalls eine Partition mit NT-Filesystem, in dem die Sicherungsdateien in Bezug auf die Namenskonventionen in gleicher Art wie in dem primären Datenbereich 1 abgelegt sind. Jedoch wird unter Verwendung der Sicherungsmaßnahmen von Windows (NT basiert) ein zusätzlicher administrativer Benutzer angelegt, der alleinigen Zugriff auf die Sicherungsdateien hat. Die Überwachung erfolgt durch einen Systemservice, der unter der Identität eben dieses Benutzers ausgeführt wird und damit alleinigen Zugriff auf die Sicherungsdateien hat. Die Korrekturaktion läuft als von dem Überwachungsservice gestartet mit dessen Privilegien und kann daher auf die Sicherungskopien zugreifen.In the simplest case, the secondary data area 2 is also a partition with NT file system, in which the backup files are stored in relation to the naming conventions in the same way as in the primary data area 1. However, using Windows (NT based) safeguards, an additional administrative user is created who has sole access to the backup files. The monitoring is performed by a system service that is run under the identity of this user and thus has exclusive access to the backup files. The corrective action runs as started by the monitoring service with its privileges and can therefore access the backup copies.
Alternativ kann der Vergleicher ein Dateisystem benutzen, das von dem verwendeten Betriebssystem nicht unterstützt wird, beispielsweise ein Linux extended Filesystem, während der primäre Datenbereich mit einem NT-Filesystem formatiert ist.Alternatively, the comparator may use a file system that is not supported by the operating system used, for example, a Linux extended file system, while the primary data area is formatted with an NT file system.
In diesem Fall, in dem die Dateien Byte für Byte miteinander verglichen werden, sollten die Sicherungskopien kryptographisch gegen Veränderung gesichert werden. Dies kann durchaus durch Verschlüsselung geschehen. Allerdings kann der Vergleicher dann nicht einfach erkennen, ob die entschlüsselte Sicherungsdatei korrekt ist. Bei der Verwendung von Blockchiffren führt jeder Input zu einem entschlüsselten Output, der insbesondere bei Binärdateien keine einfach erkennbare Redundanz enthält. Damit könnte die Veränderung einer
Sicherungskopien durch die automatischen Korrektur die zuvor korrekte Arbeitsdatei zerstören.In this case, where the files are compared byte by byte, the backup copies should be cryptographically secured against change. This can be done by encryption. However, the comparator then can not easily tell if the decrypted backup file is correct. When using block ciphers, each input leads to a decrypted output that contains no easily recognizable redundancy, especially for binary files. This could be the change of a Backup copies by the automatic correction destroy the previously correct work file.
Daher wird bevorzugt eine kryptographisch gesicherte Prüfsumme pro Datei gebildet, auch als 'message digest' bezeichnet. Diese wird zusätzlich in einer Tabelle (Datenbank) geführt, in der zu jeder Datei diese Prüfsummen gespeichert ist. Dann muss nur noch diese Tabelle gegen Veränderung geschützt werden.Therefore, preferably a cryptographically secured checksum per file is formed, also referred to as 'message digest'. This is additionally maintained in a table (database) in which these checksums are stored for each file. Then only this table needs to be protected against change.
Eine konventionelle Lösung besteht darin, die Tabelle mit symmetrischer Kryptographie zu verschlüsseln und Redundanz vorzusehen, so daß ein Angreifer ohne den entsprechenden Schlüssel die Tabelle nicht durch eine andere ersetzen kann. Als Redundanz genügt eine Titelzeile mit einer vorher festgelegtenA conventional solution is to encrypt the table with symmetric cryptography and provide redundancy so that an attacker without the corresponding key can not replace the table with another one. As redundancy, a title line with a predefined one is sufficient
Zeichenkette und einer Versionsnummer am Anfang sowie eine Summenzeile mitString and a version number at the beginning and a sum line with
Datei-Versionsnummer am Ende der Tabellendatei, wenn zur Verschlüsslung einer der 'chaining modes' verwendet wird, um ein Einschieben von falschenFile version number at the end of the table file, if one of the 'chaining modes' is used to encrypt a wrong insertion
Blöcken zu verhindern.Prevent blocks.
Bevorzug wird asymmetrische oder Public-Key Kryptographie verwendet, bei der der öffentliche Schlüssel nicht geheim gehalten werden muss. Für den Vergleichsvorgang ist nur der öffentliche Schlüssel notwendig; lediglich fürPreferably asymmetric or public-key cryptography is used, in which the public key does not have to be kept secret. For the comparison process only the public key is necessary; only for
Veränderungen wird der private Schlüssel benötigt, um die Signatur neu zu erzeugen. Besonders zweckmäßig ist hierbei die Verwendung von OpenPGP, dem weltweit am häufigsten verwendeten Kryptographie-Standard für E-mails, mit dem nicht nur über eine Kommandoschnittstelle Dateien signiert, sondern auch die Schlüssel verwaltet werden können. Der öffentliche Schlüssel wird zweckmäßig an mehreren Stellen ablegt und vor Verwendung auf Gleichheit überprüft. So kann er sowohl im Programmcode, in der Tabelle der Prüfsummen als auch in einer Datei abgelegt sein; ein Schadensprogramm müßte alle drei Stellen gleichzeitig modifizieren. Im Gegensatz zu privaten bzw. geheimen Schlüsseln erhöht statt erniedrigt diese Maßnahme die Sicherheit.Changes the private key is needed to re-create the signature. Particularly useful here is the use of OpenPGP, the world's most widely used cryptographic standard for e-mails, with which not only files can be signed via a command interface, but also the keys can be managed. The public key is expediently stored in several places and checked for equality before use. So it can be stored both in the program code, in the table of checksums and in a file; a damage program would have to modify all three places simultaneously. Unlike private or secret keys, this measure increases rather than lowers security.
Auf einem Selbstbedienungsgerät steht zur Speicherung der Schlüssel eine spezielle Tastatur, ein EPP (Encrypted Pin Päd) zur Verfügung, welches die Schlüssel vor unbefugtem Zugriff schützt.
Der Vergleicher muss dann nur noch die Prϋfsummen der Arbeitsdateien mit den in der Tabelle gespeicherten vergleichen. Sofern als Korrekturaktion die Arbeitsdatei mit der Sicherungskopie ersetzt werden soll, muss zuvor geprüft wer- den, ob die Prüfsumme von der Sicherungsdatei mit der in der gesicherten Tabelle enthaltenen übereinstimmt. Beide benötigen nur den integritätsgesicherten öffentlichen Schlüssel. Bevorzugt werden die Programme daher auf schreibgeschützten Datenträgern wie CD-ROM oder per Hardware ge¬ schützten FLASH-Speichem abgelegt, so dass sie von einem Schadensprogramm nicht verändert werden können.On a self-service device, a special keyboard, an EPP (Encrypted Pin Päd) is available for storing the keys, which protects the keys against unauthorized access. The comparator then only needs to compare the checksums of the working files with those stored in the table. If the work file containing the backup copy is to be replaced as a correction action, it must first be checked whether the checksum from the backup file matches that in the backed-up table. Both require only the integrity-secured public key. The programs are therefore preferably stored on write-protected data carriers such as CD-ROMs or hardware-protected FLASH memories, so that they can not be changed by a damage program.
Beim Verändern der Arbeits- und damit der Sicherungsdateien hingegen müssen nicht nur die Prüfsummen, sondern muss auch eine neue Signatur über die Tabelle der Prüfsummen gebildet werden. Der dazu benötigte Aktualisierer muss nur für die Dauer der Aktualisierung auf dem Rechner vorhanden sein. Erfolgt beispielsweise die Aktualisierung über eine CD-ROM, so ist das Aktualisierungsprogramm dort bereits gegen Veränderung geschützt. Da das Zeitfenster hierfür klein im Vergleich zur sonstigen Betriebszeit ist, kann der notwendige private Schlüssel entweder in dem Programmcode des Aktualisierers oder in einer getrennten Datei gespeichert sein. Im Falle einer Aktualsierung durch Netzwerkverbindungen wird der Aktualisierer, ggf. auch die Datei mit dem privaten Schlüssel, nur temporär auf den Zielrechner geladen und nach Gebrauch überschrieben. Außerhalb dieser Zeiten hat ein Schadensprogramm keine Möglichkeit, die Tabelle mit den Prüfsummen zu manipulieren. Anstatt mit einem Aktualisierer kann die neue Tabelle auch in einem Verwaltungsrechner erstellt werden, der ohnehin die Prüfsummen der auf dem Rechner eingesezten Software zur Verfügung hat. Dann muss das Aktualisierungsprogramm nur noch die veränderten Arbeitsdateien in den sekundären Datenbereich kopieren; der private Schlüssel erscheint nie auf dem zu überwachenden Rechner.When modifying the work files and thus the backup files, on the other hand, not only the checksums must be created, but also a new signature must be created using the table of checksums. The updater required for this must be present on the computer only for the duration of the update. For example, if the update is done on a CD-ROM, the updater is already protected against change. Since the time window for this is small compared to the other operating time, the necessary private key can be stored either in the program code of the updater or in a separate file. In the case of an update through network connections, the updater, possibly also the file with the private key, is only temporarily loaded onto the target computer and overwritten after use. Outside these times, a malicious program has no way to manipulate the checksum table. Instead of using an updater, the new table can also be created in a management computer, which in any case has the checksums of the software integrated on the computer. Then the update program only has to copy the changed work files to the secondary data area; the private key never appears on the computer to be monitored.
Dabei ist es durchaus sinnvoll, mehrere individuell, ggf. mit unterschiedlichen öffentlichen Schlüsseln, signierte Tabellen zu verwenden. Dies ist insbesondere dann der Fall, wenn ein Teil der Prüfsummen von dem Verwaltungsrechner bereitgestellt und der andere Teil lokal errechnet wird. Die Prüfsummen für den Vergleicher und Aktualisierer sind dann zweckmäßigerweise in der vom Verwaltungsrechner signierten Tabelle.
Da es häufig vorkommt, dass mehrere Dateien zusammengehören und nur zusammen ersetzt werden dürfen, ist in einer Weiterbildung der Erfindung vorgesehen, daß in der Tabelle oder durch andere Mittel diese Gruppen von Dateien festgelegt werden. Zumindest werden alle Dateien der Gruppe verglichen und erst dann die geänderten Dateien kopiert. Alternativ kann auch beim ersten Auftreten einer Änderung dafür gesorgt werden, dass unbedingt alle Arbeits- durch ihre Sicherungsdateien ersetzt werden.It makes sense to use several individually signed tables, possibly with different public keys. This is the case in particular when part of the checksums are provided by the management computer and the other part is calculated locally. The checksums for the comparator and updater are then expediently in the table signed by the administration computer. Since it frequently happens that several files belong together and may only be replaced together, it is provided in a further development of the invention that these groups of files are defined in the table or by other means. At a minimum, all files in the group are compared and then the changed files are copied. Alternatively, even when a change is made for the first time, it is important to ensure that all work files are replaced by their backup files.
Eine Weiterbildung der Erfindung benutzt einen kryptographischen Prozessor, wie er beispielsweise als PIN-PAD in der Tastatur eines Geldausgabeautomaten eingebaut ist. Damit steht einerseits ein sicherer Schlüsselspeicher mit den üblichen kryptographischen Funktionen zur Verfügung. Damit kann der Vergleicher aus einem relativ kleinen Startprogramm und dem Restprogramm bestehen, wobei das Startprogramm zunächst die eigene Integrität prüft, indem es seinen eigenen Code an den kryptographischen Prozessor sendet. Zweckmäßig enthält die Anfrage ein Zufallszahl ('nonce'), die in der Antwort zurückgeschickt wird und über einen 'message authenticatio code' (MAC) geprüft werden kann. Das Startprogramm lädt dann das Restprogramm, prüft dessen Integrität, und gibt die Kontrolle weiter, wenn die Prüfung positiv ausgefallen ist.A development of the invention uses a cryptographic processor, as it is installed, for example, as PIN-PAD in the keyboard of a cash dispenser. On the one hand, this provides a secure key memory with the usual cryptographic functions. Thus, the comparator can consist of a relatively small launcher and the remainder of the program, the launcher first checking its own integrity by sending its own code to the cryptographic processor. Conveniently, the request contains a random number ('nonce'), which is returned in the response and can be checked via a 'message authenticatio code' (MAC). The launcher then loads the remainder program, checks its integrity, and passes control if the test is positive.
Eine Spezialisierung der Weiterbildung verwendet die Bedingung, daß Transaktionen über den PIN-PAD abgewickelt werden. Dabei muß dem PIN-PAD im Rahmen einer Transaktion ein gültiger Codeschlüssel übermittelt werden. Im einfachsten Fall bildet der Vergleicher die Prüfsumme über die Prüfsummen, signiert diese und sendet sie an den PIN-PAD. Dabei wir bevorzugt nicht immer wieder die gleiche Prüfsumme übertragen; vielmehr wird von dem PIN-PAD eine Zufallszahl angefordert und in die signierte Antwort aufgenommen, so daß sich jedesmal eine unterschiedliche Antwort ergibt. Erst bei Vorliegen einer gültig signierten Antwort wird die Transaktion bestätigt; anderenfalls ist der Geldautomat gesperrt.
A specialization of the training uses the condition that transactions are handled via the PIN-PAD. In this case, a valid code key must be transmitted to the PIN-PAD as part of a transaction. In the simplest case, the comparator forms the checksum over the checksums, signs them and sends them to the PIN-PAD. We prefer not to transmit the same checksum again and again; rather, a random number is requested from the PIN-PAD and included in the signed response, so that each time results in a different answer. Only when there is a validly signed answer is the transaction confirmed; otherwise the ATM is locked.