-
Die Erfindung der Anmelderin betrifft
allgemein das Gebiet der Steuerungssysteme mit einer Zentraleinheit
und insbesondere ein System zur Verifizierung der Gültigkeit
einer Datei, die zur Steuerung des Steuerungssystems verwendet wird.
-
Hintergrund
der Erfindung
-
Die Fernüberwachung und Steuerung von
Systemen und Vorgängen
hat verschiedenste Formen angenommen. Die Datenübertragung zwischen einem Steuerungssystem
und einem davon entfernten Standort durch Modems ermöglicht es,
auf ein Steuerungssystem von verschiedenen Standorten aus zuzugreifen,
um Dateien herunterzuladen und hinaufzuladen. Diese Dateien können einfache
Datendateien oder -bibliotheken sein,
können
aber auch ausführbare
Dateien zur Steuerung des Steuerungssystems sein. Es wurden verschiedene
Verfahren entwickelt, um ein Verfahren zu schaffen, das gewährleistet,
dass die empfangene Datei während
der Übertragung
der Dateien nicht verfälscht
wird. Diese Verfahren reichen von der sehr einfachen Paritätsbitüberprüfung bis
zu komplexeren Prüfsummenverfahren,
wie z. B. der zyklischen Redundanz-Überprüfung (CRC). Die bekannteste
Technik besteht darin, einen bestimmten Dateityp, der einen Dateikopf
mit einem CRC-Wert oder einem Prüfsummendatensatz
hat, zu definieren. Die meisten Dateiköpfe enthalten jedoch keinerlei
Information über
die Datei selbst. In einer sich rasch verändernden Arbeitsumgebung werden
Betriebssysteme fortlaufend verbessert. Es werden Nummern oder Buchstaben
verwendet, um eine bestimmte Datei- oder Programmversionen zu identifizieren.
Wird eine bestimmte Datei in das Steuerungssystem geladen, ist es
extrem wichtig, die Versionsnummer identifizieren zu können, um
zu verifizieren, dass sie mit den bestehenden Dateien kompatibel
ist. Eine Nichtkompatibilität
kann zu Betriebsstörungen
des Steuerungssystems führen.
-
Weitere Probleme können im
Steuerungssystem selbst auftreten, nachdem die Dateien heruntergeladen
oder installiert wurden. Sind die Dateien in der Steuerung in einem
Di rektzugriffsspeicher (RAM) eingebettet oder auf einer Magnetplatte
gespeichert, können
potenzielle Fehler infolge von Verfälschungen der Datei bzw. des
Speichers oder unbeabsichtigter Veränderungen der Benutzerdateien
auftreten. Diese Probleme können
sowohl im Laufzeitbetrieb als auch im Bereitschaftsbetrieb auftreten.
-
Die
US
5050212 offenbart ein System, welches eine separat von
einem Computer gespeicherte Datei darauf überprüft, ob sie mit einer vorhergehenden
Version einer Datei identisch ist. Dies erfolgt durch das Berechnen
einer Prüfsumme,
wenn die Datei gespeichert ist, und Chiffrieren und Speichern der
Prüfsumme
sowohl lokal als auch im Dateikopf der Datei. Beim Wiederherstellen
der Datei wird die Prüfsumme
in der Kopfzeile unter Verwendung eines zuvor im Computer gespeicherten
Kennworts dechiffriert und erneut eine Prüfsumme mit derselben, vorher
verwendeten Formel berechnet. Die beiden Prüfsummen werden anschließend miteinander
verglichen.
-
Es soll nun ein automatisches Steuerungssystem
entwickelt werden, welches diese und andere damit verbundene Probleme
beseitigt, so dass ein hoher Grad an Sicherheit für einen
Endbenutzer geschaffen wird und allgemeine, kommerzielle Netzwerke,
wie z. B. das Internet, anstatt spezieller industrieller Netzwerke
zur Übertragung
von Datendateien, Bibliotheken und ausführbaren Dateien zu automatischen
Steuerungssystemen und anderen Einrichtungen verwendet werden können.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Es ist daher eine Hauptaufgabe der
vorliegenden Erfindung, die im anhängigen Anspruch 1 detailliert festgelegt
ist, ein Verfahren zum Identifizieren einer beliebigen Version einer
in einem industriellen Steuerungssystemen verwendeten Datei zu schaffen.
-
Es ist eine weitere Aufgabe der vorliegenden
Erfindung, ein Verfahren schaffen, um zu bestimmen, ob eine Datei
zu irgendeinem Zeitpunkt durch einen Virus, durch Zufallsrauschen
oder durch einen Hardwarefehler und darüber hinaus während der Übertragung
von einem Standort zum einem anderen oder im Laufzeit- oder Bereitschaftsbetrieb
verfälscht
wurde.
-
Es ist noch eine weitere Aufgabe
der vorliegenden Erfindung, ein Verfahren zum Verifizieren einer Gruppe
von Dateien zu schaffen, die eine bestimmte Softwareversion für ein Betriebssystem
oder andere Installationsprogramme enthalten.
-
Bei der bevorzugten Ausführungsform
der Erfindung umfasst die Erfindung für den Fall, dass sie bei einem
industriellen Steuerungssystem verwendet wird, das ein Anwenderprogramm
zur Steuerung von Ausgabeeinrichtungen in Abhängigkeit des Status von Eingabeeinrichtungen
ausführt,
ein Verfahren zur eindeutigen Identifizierung von Dateien zusammen
mit deren spezieller Versions-ID einer beliebigen, bei dem Steuerungssystem
verwendeten Art. Ein Dateisiegelprogramm berechnet einen CRC-Wert
für eine
Datei und hängt anschließend eine
Versionszeichenfolge und den CRC-Wert an das Ende der Datei entsprechend
deren Versions-ID an. Die hinzugefügte CRC/Versions-Datensatzinformation
ist unschädlich.
Der CRC-Wert ermöglicht es,
die Unversehrtheit der Datei jederzeit zu verifizieren, und dient
zur Erfassung von Viren oder verfälschten oder manipulierten
Dateien sowohl beim Hochfahren als auch im Laufzeitbetrieb des Steuerungssystems.
Der CRC/Versions-Datensatz wird an das Ende einer Datei als ein
Siegel angehängt
und ist nicht Bestandteil der Datei selbst. Der Datensatz wird,
ist er einmal angehängt,
beim Verschieben oder Kopieren der Datei mitgeführt.
-
Das CRC/Versions-Siegel funktioniert ähnlich einem
Virus, mit dem Unterschied, dass das Siegel gutartig ist. Das Betriebssystem
der Steuerung speichert die neue Dateilänge in einer Datei-Zuordnungstabelle (FAT)
und kopiert darüber
hinaus mit der Datei auch das Dateisiegel. Bei Verwendung mit einer
Gruppe von Dateien für
ein bestimmtes Installationsprogramm tiefem die Dateisiegel individuelle
Stücklisten,
um die genauen Dateiinhalte des bestimmten Installationsprogramms
zu identifizieren. Herunterladbare Dateien werden dann mit den Stücklisten
verglichen, um die Version der Dateien zu verifizieren, und generieren
Fehlernachrichten, wenn sie nicht mit den installierten Systembasisdaten
kompatibel sind. Der „Follow-up"-dienst ist bei einer
bestimmten Installation in der Lage, direkt auf die Zuordnungstabelle
zuzugreifen, um die Unversehrtheit der installierten Datenbasis
zu verifizieren.
-
Durch die Verwendung des CRC-Datensatzes
kann eine Verifizierung der installierten Software bei der Installation
erfolgen, können
die Dateien gegen Viren, Verfälschungen
oder Manipulation geschützt
werden, und kann eine Identifizierung der genauen Version der installierten
Software auf einem beliebigen Computer erfolgen.
-
Weitere Merkmale und Vorteile der
Erfindung, die neu jedoch nicht nahe liegend sind, werden im Folgenden
durch die Beschreibung einer bevorzugten Ausführungsform der Erfindung anhand
der beigefügten Zeichnungen
näher beschrieben.
Zur Auslegung des Schutzumfangs der Erfindung, der nicht notwendigerweise
durch diese Ausführungsform
repräsentiert
wird, werden die Ansprüche
herangezogen
-
Kurzbeschreibung
der Zeichnungen
-
1 zeigt
ein Gesamtblockschaltbild eines typischen Systems, das die Beziehung
zwischen einem Dateisiegelmodul gemäß der vorliegenden Erfindung
und den übrigen
Komponenten eines Prozesssteuerungssystems zeigt;
-
2 ist
ein Flussdiagramm, in welchem die von dem in 1 gezeigten Dateisiegelmodul 40 verwendeten
Schritte zur Prüfung
von Dateien gemäß der vorliegenden
Erfindung detailliert angegeben sind;
-
3 ist
ein Blockschaltbild, in welchem die Reihenfolge angegeben ist, in
der das Dateisiegelmodul in 1 Dateien
gemäß der vorliegenden
Erfindung überprüft;
-
4 zeigt
einen Algorithmus, der als Kommandozeilensyntax für jede Datei
dient, wie sie bei der vorliegenden Erfindung verwendet wird;
-
5 zeigt
eine Tabelle einiger Transformationsregeln des Dateisiegelmoduls,
wenn Dateien gemäß der vorliegenden
Erfindung überprüft werden;
und
-
6 zeigt
eine Tabelle von möglichen
Fehlernachrichten, die vom Dateisiegelmodul nach Überprüfung und
Erfassung eines Fehlers in der überprüften Datei
zurückgesendet
werden.
-
Detaillierte
Beschreibung
-
Obwohl bei der vorliegenden Erfindung
Ausführungsformen
in mehreren unterschiedlichen Formen möglich sind, wird im Folgenden
eine bevorzugte Ausführungsform
beschrieben und detailliert dargestellt. Die vorliegende Offenbarung
beschreibt beispielhaft die Prinzipien der Erfindung und soll nicht
als Einschränkung der
weitreichenderen Aspekte der Erfindung auf die beschriebene besondere
Ausführungsform
aufgefasst werden.
-
1 zeigt
ein Gesamtblockschaltbild eines typischen Systems 10 betreffend
eine Ausführungsform der
vorliegenden Erfindung. Obwohl ein Steuerungssystem gezeigt ist,
kann die vorliegende Endung selbstverständlich in jedem Systemtyp implementiert
werden, bei dem eine Übertragung
oder Installation von Dateien, die ausführbare Dateien, Datendateien
oder Bibliothekdateien sein können,
erfolgt. Eine Zentraleinheit 12 steuert das Gesamtsystem 10 mit
einem Betriebssystem 14. Ein Monitor 16 kann visuelle
oder grafische Darstellungen der Systemablaufs anzeigen. Eine Benutzerschnittstelle 18 dient
als Einrichtung zur Überwachung, Steuerung
und Modifizierung des Systems 10. Ein interner Datenbus 20 verbindet
eine Eingabe/Ausgabe-Steuerung 22 und einen Speicher 24 mit
der Zentraleinheit 12. Anwenderprogramme 26 werden
verwendet, um Ausgabeeinrichtungen 28 in Abhängigkeit
von Steuerungssignalen von Eingabeeinrichtungen 30 zu steuern.
Die Datenübertragung
vom Steuerungssystem nach außerhalb
erfolgt über
eine Datenübertragungsschnittstelle 32 in
ein Netzwerk 34. Ein Dateisiegelmodul 40 sorgt
für die
Sicherheit und Unversehrtheit der Daten durch das Berechnen eines
CRC-Wertes für
jede ausführbare
Datei in den Anwenderprogrammen 26 und den ausgewählten und
in einer Bibliothek 42 befindlichen Daten. Anschließend hängt es eine
Versionszeichenfolge und einen CRC-Wert an das Ende der Datei gemäß deren
Versions-ID an. Die hinzugefügte CRC/Versions-Datensatzinformation
ist unschädlich.
Der Datensatz wird, sobald er einmal angehängt ist, mit der Datei beim
Verschieben oder Kopieren mitgeführt.
-
Es besteht die Möglichkeit, eine separate Stückliste 46 hinzuzufügen, die
eine Auflistung jeder ausführbaren
Datei oder Bibliotheksdatei enthält,
die mit einer individuellen Versionsidentifizierungsnummer oder einem
Versionsidentifizierungsbuchstaben immer dann, wenn die Datei gebildet
wird, versiegelt wird. Somit kann jede Version einer Datei individuell
identifiziert werden und verhindert werden, dass sie anstelle einer
anderen Version an einer anderen Stelle, die nicht für diese
Version zugelassen ist, verwendet oder installiert wird. Das Versionssiegel
ist unabhängig
von den Daten, der Zeit oder der Dateigröße. Somit kann eine eindeutige
Stückliste 46 freigegeben
werden, durch welche die Version jeder Datei an einer bestimmten
Stelle identifiziert wird. Diese Stücklistendatei kann durch eine
Direktkorrektur aktualisiert werden, wenn Aktualisierungen der Installation
erfolgen.
-
Das CRC/Versions-Siegel funktioniert ähnlich einem
Virus, mit dem Unterschied, dass das Siegel gutartig ist. Das Betriebssystem 14 speichert
die neue Datenlänge
in einer Datei-Zuordnungstabelle 44 und kopiert darüber hinaus
das Dateisiegel mit der Datei. Herunterladbare Dateien aus dem Netzwerk 34 oder
von der Bedienerschnittstelle 18 werden dann mit der Zuordnungstabelle 44 verglichen,
um die Version der Dateien zu verifizieren und Fehlernachrichten
zu erzeugen, wenn sie nicht mit der installierten Systemdatenbasis
kompatibel sind.
-
Das CRC ist ein System zur Überprüfung von
Fehlern zwischen einer Übertragungsstelle
und einem Empfänger.
Es besteht aus zwei Prüfzeichen,
die beim Empfänger
erzeugt und an das Ende der übertragenen Datenzeichen
hinzugefügt
werden. Der Empfänger
verwendet dasselbe Verfahren, um seinen eigenen CRC-Wert für die ankommenden
Daten zu bilden und vergleicht ihn mit dem von der Übertragungsstelle
gesendeten CRC-Wert, um sicherzustellen, dass die Daten korrekt übertragen
wurden. Die ausführliche
Herleitung des CRC-Wertes ist bereits bekannt und nicht Bestandteil
der vorliegenden Erfindung. Die Wesentlichen Schritte zur Berechnung
des CRC-Wertes sind wie folgt:
-
Die Datenbits der Nachricht werden
mit der Anzahl der Bits des CRC-Wertes multipliziert. Diese beträgt üblicherweise
16 oder 32.
-
Das daraus resultierende Produkt
wird anschließend
durch ein Polynom unter Verwendung von Modulo 2 ohne Übertrag
dividiert. Das Polynom wird algebraisch durch eine Folge von Termen
der xten Potenz ausgedrückt,
die anschließend
in eine binäre
Zahl konvertiert wird. Der CRC-Wert 16 verwendet das Polynom x16
+ x15 + x2 + x0, das in die Binärzahl
1 1000 0000 0000 0101 umgewandelt wird.
-
Der Quotient wird vernachlässigt, der
CRC-Rest an das Ende des Datenbits hinzugefügt und das Ergebnis an den
Empfänger übertragen.
-
Der Empfänger dividiert dann die empfangene
Nachricht mit dem CRC-Wert durch dasselbe Polynom. Die empfangende
Nachrichtenübertragung
gilt als fehlerfreie Übertragung,
wenn der Rest Null ist.
-
Das Dateisiegelmodul 40 versiegelt
Dateien mit einem CRC-Wert zur Sicherung unter Verwendung der folgenden
Kommandozeilensyntax:
SEALFILE[/[-]L][/[-]M][/[-]C][/V=mm.nn.bb][/E=xxx][/Q][/S]file...
(1),
wobei:
file die Datei, das Verzeichnis oder die Dateiliste
ist, die bzw. das bearbeitet werden soll.
/L sperre Datei.
/M
kennzeichne Datei mit einem CRC-Wert als versiegelt.
/C hänge CRC-Wert
an das Dateiende an.
/V hänge
Versionslabel an die Datei an.
/E schließe Dateien mit den Erweiterungen
xxx von der Bearbeitung aus.
/Q Ruhemodus.
/S Unterverzeichnisse
eingeschlossen.
-
Der /L-Schalter sperrt jede Datei.
Dies geschieht durch das Setzen des Nur-Lese-Bits. Der /-L-Schalter entsperrt
jede Datei. Dies geschieht durch das Löschen des Nur-Lesen-Bits. Der /M-Schalter
kennzeichnet Dateien als versiegelt, vorausgesetzt, dass der CRC-Wert
korrekt ist. Dies geschieht durch das Löschen des Archivbits. Der Versuch,
eine Datei mit einem ungültigen
CRC-Wert zu kennzeichnen, ist ein Fehler. Diese Option ist für den Fall
vorgesehen, bei dem die Datei vorher mit einem CRC-Wert versiegelt
wurde. Der CRC-Wert muss nicht neu berechnet werden, wenn der CRC-Wert,
der vorher an die Datei angehängt
wurde, zur Verifizierung verwendet werden kann. Der /-M-Schalter
entfernt das CRC-Siegelzeichen. Dies geschieht durch das Setzen
des Archivbits. Der /C-Schalter hängt einen CRC-Wert an das Ende
einer Datei an. Wenn die Datei als bereits versiegelt mit einem
CRC-Wert gekennzeichnet ist, wird der CRC-Wert nicht überschrieben, und ein Fehler
tritt auf, wenn der existierende CRC-Wert nicht korrekt ist. Der
CRC-Wert wird auch dann nicht überschrieben,
wenn die Datei gesperrt ist. Der /-C-Schalter entfernt einen angehängten CRC-Wert
vom Ende einer Datei. Der CRC-Wert wird jedoch nicht entfernt, wenn
die Datei als versiegelt gekennzeichnet ist oder die Datei gesperrt
ist.
-
Der /V-Schalter hängt ein Versionskennzeichen
an das Ende eine Datei an. Dieser Schalter kann nur in Kombination
mit dem /C-Schalter verwendet werden. Es gibt keinen /-V-Schalter,
da das Versionskennzeichen zusammen mit dem CRC-Wert entfernt wird
(/-C). Der /E-Schalter verhindert, dass Dateien mit der spezifizierten
Erweiterung verarbeitet werden. Dieser Schalter kann mehrmals spezifiziert
werden, um mehr als eine Erweiterung auszuschließen. Der /S-Schalter veranlasst
das Programm, alle Unterverzeichnisse zu durchsuchen und die gewünschte Bearbeitung
für jede
Datei, die mit der Dateispezifikation übereinstimmt, durchzuführen.
-
Es gibt eine Reihe von nicht genannten
Schaltern, die ebenfalls vorgesehen sind, umfassend:
/permanent,
der das Dateisiegel permanent kennzeichnet, so dass es nicht mit
dem /-C-Schalter
entfernt werden kann. Der /debug-Schalter gibt einen Diagnoseausgang
frei und schaltet den Selbsttest aus. Die Verwendung dieses Schalters
ist erforderlich, um das Dateisiegelmodul 40 selbst zu
versiegeln. Ist das Dateisiegelmodul nicht korrekt versiegelt, läuft es nicht.
/QE und /QU sind modifizierte Ruhemodus. Der Schalter /QE ist ruhig
mit Ausnahme von Dateien, die fehlerhaft sind, und der Schalter
/QU ist ruhig mit der Ausnahme von Dateien, die nicht gekennzeichnet,
nicht versiegelt oder fehlerhaft sind.
-
Sind keine Operationsschalter spezifiziert,
wird der gegenwärtige
Status der Datei wie folgt gemeldet. Ist das Archivbit gelöscht ist,
meldet das Dateisiegelmodul 40, dass die Datei mit einem
CRC-Wert als versiegelt gekennzeichnet ist. Der CRC-Wert wird verifiziert.
Ist der CRC-Wert nicht vorhanden, falsch oder verfälscht, wird
die Ursache gemeldet. Ist das Nur-Lese-Bit gesetzt, wird gemeldet,
dass die Datei gesperrt ist.
-
Mehrere Schalter können in
Kombination unter Einhaltung bestimmter Regeln verwendet werden.
Jeder Operationsschalter (/L, /M, und /C) kann nur einmal spezifiziert
werden. Der /V-Schalter kann nur in Kombination mit dem /C-Schalter
verwendet werden. Dieser Schalter kann nur einmal spezifiziert werden.
Der /S-Schalter kann mit irgendeinem der anderen Schalter verwendet
werden. Der /E-Schalter kann mit einem beliebigen anderen Schalter
verwendet werden und mehrmals spezifiziert werden.
-
Das Dateisiegelmodul 40 arbeitet
wie in dem Flussdiagramm in 2 angegeben.
Das Betriebssystem des Systems startet das Dateisiegelmodul 40 durch
das Entsperren bei S1 in der Kommandozeile (1) unter Verwendung
des geeigneten Systems 4DOS, NDOS oder der standartgemäßen COMMAND.COM.
Dies erfolgt während
des Hochfahrens und periodisch während
der Laufzeit des Gesamtsystems. Die Kommandozeile (1) wird
analysiert S2, um zu bestimmen, welche Schalter der Anwendung zugeordnet
sind. Bevor die Bearbeitung fortgesetzt wird, führt das Dateisiegelmodul 40 ein
Selbstüberprüfungs-Dienstprogramm
aus S3, um sicherzustellen, dass es bei der Bearbeitung nicht selbst
von irgendwelchen anderen Dateien verfälscht wurde. Eine vorübergehende
Datei wird erzeugt S4, um eine Liste von allen zu überprüfenden Dateien
zu erstellen. Eine Schleife S5 wird für jede aufgelistete Datei durchlaufen.
Jede Datei wird überprüft, um den
Schalterstatus für
jeden Dateityp zu bestimmen S6. Dies umfasst die Überprüfung, ob
die Datei tatsächlich
existiert, gesperrt, markiert oder versiegelt ist, eine korrekte
oder permanente Versiegelung hat. Verschiedene Schalter können miteinander
kom biniert werden. Daher müssen
sie überprüft werden
S7, um zu verifizieren, dass die Kombinationen zulässig sind,
wie im Folgenden näher
beschrieben. Ist dies nicht der Fall, wird die Datei als fehlerhaft gekennzeichnet
und die nächste
Datei wird beginnend mit Schritt 5 überprüft.
-
Sind die Kombinationen zulässig, wird
jeder Datenschalter bezüglich
der in den Datei-Zuordnungstabellen 44 gespeicherten
Information überprüft S8–S13. Die
Ergebnisse der Dateioperation werden, beispielsweise als eine Auflistung
auf einer visuellen Anzeige, gemeldet S14 und eine Zusammenfassungsliste
wird durch die Ergebnisse aktualisiert 15. Dieser Vorgang
wird für
jede aufgelistete Datei wiederholt.
-
Nachdem alle Dateien bearbeitet wurden
S16, wird ein Antwortcode berechnet S17. Dieser ist ein 1-Byte-Code,
der angibt, dass bei der Bearbeitung kein Fehler aufgefunden wurde
und erfolgreich war oder ein Fehler aufgefunden wurde. Falls ja,
listet er einen entsprechenden Fehlercode für den aufgefundenen Fehler
auf. Eine Zusammenfassung der Ergebnisse des gesamten Bearbeitungsvorgangs
wird auf dem Monitor 16 angezeigt. Alle temporären Dateien,
die während
des Bearbeitungsvorgangs erzeugt wurden, werden gelöscht S19
und das System springt zurück
zur Startposition, um auf den nächsten
Zyklus des Dateisiegelmoduls 40 zu warten.
-
3 zeigt
ein Blockschaltbild, welches die Reihenfolge angibt, in der das
Dateisiegelmodul 40 Dateien bearbeitet. Jeder Operationsschalter,
der in der Kommandozeile spezifiziert ist, schaltet den ihn zugeordneten
Kasten an. Die Kästen,
die nicht eingeschaltet sind, sind nicht in Betrieb und dienen lediglich
als Durchgang zum nächsten
Schalterkasten.
-
4 zeigt
z. B. einen Algorithmus für
die Kommandozeilensyntax:
Sealfile /C/L file1.txt. Nach dem
Banner zeigt das Programm die Ergebnisse der Operation wie folgt:
{fiel} → _CL file1.txt
CRC:02948657 (2)
-
Das erste Attributfeld vor dem Pfeil
entspricht "A" in 3 und das zweite Attributfeld nach dem
Pfeil entspricht „B". Die Attribute einer
Datei werden durch jeden Kasten transformiert. Die Transformation
der ursprünglichen
Datei wird anhand der Transformationstabelle, wie in 5 gezeigt, deutlich. Bei
Verwendung eines MCL-Formats kann die Transformationstabelle eine
Datei als versiegelt mit einem CRC gekennzeichnet, als mit M bezeichnet,
als gesperrt, als mit L bezeichnet oder als zum Anhängen des
CRC-Wertes an das
Ende der Datei bestimmt, und als mit C bezeichnet darstellen. Z.
B. ergeben sich aus der in 4 spezifizierten
Operation folgende sequentielle Transformationen:
-
-
Eine Mehrfachschalter-Kommandozeile
kann in mehrere einfache Transformationen unterteilt werden. Jedoch
sind einige Transformationen nicht zulässig. Die Regeln sind für jede mögliche Transformation
in der Transformationstabelle in 5 aufgelistet.
-
Bei „A" wird die gesamte Kommandosequenz durch
das Dateisiegelmodul 40 vorverifiziert, bevor die eigentliche
Operation durchgeführt
wird. Für
den Fall, dass die Operation nicht durchgeführt werden kann, zeigt das
Modul eine Fehlernachricht nach dem Dateinamen anstatt des CRC-Wertes
an. Für
den Fall, dass ein Fehler während
des eigentlichen Bearbeitungsvorgangs einer Datei aufgefunden wurde,
werden die Dateiattribute zum Zeitpunkt des Fehlers dort angezeigt,
wo normalerweise „B" angezeigt wird.
Zusätzlich
zeigt das Dateisiegelmodul 40 eine Fehlernachricht nach
dem Dateinamen anstatt des CRC-Wertes an. Die Nachricht wird hervorgehoben,
um anzuzeigen, dass ein Ausnahmezustand vorliegt. Das Dateisiegelmodul 40 macht
bereits erfolgte Veränderungen
der Datei nicht rückgängig. Weitere
Fehler können
auch während
der Bearbeitung der Datei aufgefunden werden, wie z. B. DOS-Fehler,
I/O-Streamfehler und Speicherzuweisungsfehler. Derartige Zustände werden
in einer ähnlichen
Weise gehandhabt.
-
In Bezug auf 5 haben die ersten drei Schalter keine
Fehlerzustände. 6 zeigt eine Tabelle von möglichen
Fehlernachrichten. Die gezeigten Fehlernachrichten entsprechen nicht
genau denjenigen, die vom Dateisiegelmodul 40 gemeldet
werden, sind jedoch für
den Fehlerzustand selbst charakteristisch. Dies ist nicht der komplette
Satz von Kippzuständen.
Die Siegel können
permanent sein und ein optionales Versionslabel enthalten, das ebenfalls
registriert werden muss.
-
Nachdem das Dateisiegelmodul 40 eine
Datei bearbeitet hat, sendet es einen 1-Byte-Antwortcode zurück, der entweder als erfolgreich
oder als fehlgeschlagen interpretiert werden kann. Betrachtet man
alle Dateien, die mit den Dateispezifikationen übereinstimmen, können die
vier Felder für
SPERREN, VERSIEGELN, CRC und KENNZEICHNEN Werte von 0, um anzugeben,
dass alle Dateien verifiziert sind, bis 3, um einen Fehler anzuzeigen,
annehmen. Für
den Fall, dass ein FEHLER während
der Bearbeitung der Dateien festgestellt wurde, liegt der zurückgesendete
Fehlerpegel in einem Bereich von 0xF0 (240) bis 0xFF (255).
Der ANTWORTCODE enthält
den Code für
den ersten festgestellten FEHLER.
-
Das Dateisiegelmodul 40 hängt einen
CRC-Datensatz an das Ende einer Datei in der im Folgenden angegebenen
Form an:
File
^Z
Optional Records
^Z
CRC
Signature
CRC:12345678
Read/Write
Offset to top
***:)
(4)
-
Das ^Z ist ein EOF-Kennzeichen und
der CRC-Wert wird im ASCII-Format gespeichert. Funktionale Datensätze werden
vor dem CRC-Datensatz eingefügt.
Die CRC-Signatur hat eine Länge
von sieben Bytes in der Form von „n\rXXX:". Read/write ist eine Freigabemarkierung,
um zu ermöglichen,
dass das Dateisiegel-Dienstprogramm das Siegel überschreibt. Ein Nur-Lese-Siegel
ist permanent. Das Dateisiegelmodul 40 verändert oder
entfernt ein Nur-Lese-Siegel nicht. Der „Offset to the top" ermöglicht es,
zusätzliche
Datensätze,
wie z. B. den Versionsdatensatz, zum Siegel hinzuzufügen und
zeigt auf den Kopf des Datensatzstapels. Die Zeichen am Ende betreffen
ein Kennwort als Sicherheitsmaßnahme,
um sicherzustellen, dass ein zufälliger
Bytestrom nicht als Siegel interpretiert wird.
-
Das Dateisiegelmodul 40 ermöglicht es,
Dateien beliebiger Art durch das Anhängen der Versionszeichenfolge
und des CRC-Wertes an das Ende der Datei zu eindeutig zu identifizieren.
Die hinzugefügte
Information ist unschädlich.
Ist der Datensatz einmal angehängt,
wird er mit der Datei sowohl beim Verschieben als auch beim Kopieren
mitgeführt.
Wird das optionale Versionslabel verwendet, wird es vor dem CRC-Datensatz eingefügt. Das
Format für
den Datensatz ist wie folgt:
^Z
Version Signature
Version
Number
-
Zusätzliche Datensätze werden
auf dem CRC-Datensatz gestapelt und können später hinzugefügt werden.
Der CRC-Wert ist für
die Datei und alle weiteren Datensätze vorgesehen. Eine Verfälschung
des Versionsdatensatzes zerstört
das Siegel, auch für
den Fall, dass die ursprüngliche
Datei unangetastet ist.
-
Die Stückliste 46 für eine bestimmte
Installation listet die Versionsnummer für jede Datei auf. Diese Dateien
können
auf einem harten Medium gespeichert werden oder Teil eines Programmspeichers
sein. Das Dateisiegelmodul benötigt
einen bestimmten freien Speicherplatz für die Verwendung als temporärer Pufferspeicher,
um eine Liste der zu bearbeitenden Dateien zu erstellen. Die Datei
muss groß genug
sein, um die Pfadna men aller Dateien, die bearbeitet werden sollen,
aufnehmen zu können.
Bei ausführbaren
Dateien, Objektdateien, DLL-Bibliotheken und anderen binären Dateien
ist die Dateilänge
in deren Kopfzeile gespeichert. Bei vielen Systemen verwenden die
Software-Ladeprogramme
die in der Dateikopfzeile gespeicherte Dateigröße, so dass es unerheblich
ist, wenn die tatsächliche
Datei unspezifizierte Daten nach der EOF-Markierung hat. Der modifizierte
CRC-Wert dient als nützlicher
Virus. Während
nicht alle Programme Viruserkennungsprogramme haben, betrachten
diejenigen, die eines haben, das Dateisiegel nicht als einen Virus
und ignorieren es. Das Editieren oder Kopieren einer versiegelten
Datei zerstört
das Siegel, da das Archivbit gesetzt wird. Wird eine Datei kopiert,
wird das Archivbit der neuen Datei gesetzt. Durch das Umbenennen
oder Verschieben einer Datei wird das Archivbit nicht verändert.
-
Die vorliegende Erfindung schafft
Sicherheit für
die Dateien des Systems. Dadurch wird das System gegen potenzielle
Fehler geschützt,
die ein Verfälschen
der Datei oder des Speichers zur Folge haben können. Das Betriebssystem schafft
eine Prüfsummensicherheit
durch die Verwendung des CRC-Wertes, eine Laufzeitsicherheit und
eine Dateisicherheit durch die Versionsnummer. Die Prüfsumme wird
verifiziert, wenn das System gestartet wird und unterbricht das
Hochfahren für
den Fall, dass irgendeine Task eine ungültige Prüfsumme enthält. Das Betriebssystem führt dieselbe
Verifikation für
ihren eigenen Code durch. Dieses Merkmal ist immer freigegeben.
Die Betriebssystemtasks und alle Systemtasks sind permanent mit
einem CRC-Wert versiegelt und gekennzeichnet, um festzustellen,
ob das Siegel der Datei verifiziert werden muss oder nicht. Während des
Hochfahrens wird die Unversehrtheit jeder gekennzeichneten Datei
auf den CRC-Wert im Siegel der Datei und der Datei-Zuordnungstabelle 44 verifiziert.
Jede Unstimmigkeit erzeugt eine Fehlernachricht und verhindert das
Komplettieren des Hochfahrens.
-
Der Dateiversionsschutz verhindert,
dass ein System startet oder läuft,
wenn sämtliche
Systemtasks und das Anwenderprogramm nicht dieselben Versionsnummern,
wie sie in der Stückliste 46 gespeichert
sind, haben. Da viele Steuerungssysteme PCs verwenden, werden diese
Programme von Dateien, die auf Magnetdisketten oder Magnetplatten
gespeichert sind, installiert. Veränderungen dieser Dateien oder
neuer Dateien können
heruntergeladen werden während
das Steuerungssystem offline ist. Wird die fal sche Versionsdateinummer
heruntergeladen, kann ein unbeabsichtigter Arbeitsvorgang des Steuerungssystems
stattfinden. Das Dateisiegelmodul 40 vergleicht die Versionsnummer
der Datei mit der Stückliste
des Systems während
der Hochfahrsequenz und während
des Laufens eines Anwenderprogramms. Wird ein Fehler erfasst, fährt das System
herunter und zeigt eine Fehlernachricht an, die die Ursache für das Herunterfahren
angibt.
-
Obwohl die spezifischen Ausführungsformen
dargestellt und beschrieben wurden, sind zahlreiche Modifizierungen
möglich,
ohne den Schutzumfang der Erfindung zu verlassen. Nachdem die Dateien
während des
Hochfahrens überprüft wurden,
registriert eine geladene Abbildung aller System- und Benutzertasks
automatisch die Speicherbereiche, die den während des Hochfahrens erzeugten
Code enthalten. Das Betriebssystem 14 kann ein 32-Bit-CRC-Wert
für diesen
Speicher berechnen und kontinuierlich verifizieren, dass er während der
Laufzeit nicht verfälscht
wird, so dass Gültigkeitsüberprüfungen während der
Laufzeit erfolgen.
-
Obwohl ein typisches Steuerungssystem
beschrieben wurde, können
die zuvor aufgezeigten Verfahren bei beliebigen Arten von Dateisicherungsverfahren
angewendet werden, die dazu dienen, die Gültigkeit von installierten
oder heruntergeladenen Dateien zu verifizieren.