DE69818978T2 - Verfahren um die gültigkeit der beschreibung einer ausführbaredatei zu identifizieren - Google Patents

Verfahren um die gültigkeit der beschreibung einer ausführbaredatei zu identifizieren Download PDF

Info

Publication number
DE69818978T2
DE69818978T2 DE69818978T DE69818978T DE69818978T2 DE 69818978 T2 DE69818978 T2 DE 69818978T2 DE 69818978 T DE69818978 T DE 69818978T DE 69818978 T DE69818978 T DE 69818978T DE 69818978 T2 DE69818978 T2 DE 69818978T2
Authority
DE
Germany
Prior art keywords
file
version
files
seal
crc
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69818978T
Other languages
English (en)
Other versions
DE69818978D1 (de
Inventor
R. Allan TATE
J. Michael SAYLOR
T. John GROSSER
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Schneider Automation SAS
Schneider Electric USA Inc
Original Assignee
Schneider Automation SAS
Schneider Automation Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Schneider Automation SAS, Schneider Automation Inc filed Critical Schneider Automation SAS
Application granted granted Critical
Publication of DE69818978D1 publication Critical patent/DE69818978D1/de
Publication of DE69818978T2 publication Critical patent/DE69818978T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/006Identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99954Version management

Description

  • 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:
  • Figure 00110001
  • 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.

Claims (7)

  1. Verfahren zur Überprüfung der Unversehrtheit einer Datei, die bei der Ausführung eines Anwenderprogramms (26) benutzt wird, wobei das Anwenderprogramm (26) zur Benutzung mittels einer Zentraleinheit (12) mit einem Betriebssystem (14) geeignet ist und das Verfahren Folgendes umfasst: A. Berechnen eines Prüfsummendatensatzes für die Datei, bevor die Datei in dem Anwenderprogramm (26) installiert wird; B. Erzeugen einer Siegelzeichenfolge für die Datei, wobei die Siegelzeichenfolge den Prüfsummendatensatz der Datei und beliebige optionale Datensätze enthält; C. Anhängen der Siegelzeichenfolge an ein Ende der Datei; D. Installieren der mit Anhang versehenen Datei in dem Anwenderprogramm (26); E. Verarbeiten der installierten Datei, um ihre angehängte Siegelzeichenfolge zu decodieren; und Verifizieren einer Binärunversehrtheit der Datei; F. Verhindern des Laufens des Anwenderprogramms (26), wenn die Verifikation der Binärunversehrtheit fehlschlägt, dadurch gekennzeichnet, dass folgende Schritte vorgesehen sind: G. Erzeugen einer Auflistung aller anwendbaren Dateien (46), die für das Laufen des Anwenderprogramms von Bedeutung sind, wobei die Auflistung die Siegelzeichenfolge der Datei enthält und wobei von der Zentraleinheit (12) auf die Auflistung zugegriffen werden kann; H. Erzeugen eines Versionsdatensatzes für die Datei, wobei der Versionsdatensatz eine bestimmte Version der Datei identifiziert und wobei der Versionsdatensatz in der Siegelzeichenfolge enthalten ist; und I. Verhindern des Laufens des Anwenderprogramms (26), wenn der in der Siegelzeichenfolge enthaltene Versionsdatensatz nicht mit einem Versionsdatensatz vergleichbar ist, der in der Auflistung (46) der anwendbaren Dateien gespeichert ist.
  2. Verfahren nach Anspruch 1, wobei der Prüfsummendatensatz eine zyklische Redundanzprüfung oder eine CRC-Berechnung ist.
  3. Verfahren nach Anspruch 2, wobei Mittel zum Identifizieren verschiedener Attribute der Datei vorgesehen sind, zu denen der Status einer Reihe von Logikschaltern (V, L, M, C) zählt, die der Datei zugeordnet sind.
  4. Verfahren nach Anspruch 3, wobei die Attribute einen Logikschalter (C) umfassen, der angibt, dass die Datei mit einer Prüfsumme versehen ist, die an das Ende der Datei angehängt ist.
  5. Verfahren nach Anspruch 3, wobei die Attribute einen Logikschalter (M) umfassen, der markiert, dass die Datei mit einer Prüfsumme versiegelt wurde, vorausgesetzt, dass die CRC richtig ist.
  6. Verfahren nach Anspruch 3, wobei die Attribute einen Logikschalter (L) umfassen, der die Datei verriegelt, die mit einer Prüfsumme versiegelt wurde.
  7. Verfahren nach einem der vorangehenden Ansprüche, wobei das Verarbeiten der installierten Datei zum Decodieren ihrer angehängten Siegelzeichenfolge und zum Vergleichen mit der gespeicherten Siegelzeichenfolge beim Systemstart des Anwenderprogramms eingeleitet wird.
DE69818978T 1997-12-22 1998-12-22 Verfahren um die gültigkeit der beschreibung einer ausführbaredatei zu identifizieren Expired - Fee Related DE69818978T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/995,711 US5991774A (en) 1997-12-22 1997-12-22 Method for identifying the validity of an executable file description by appending the checksum and the version ID of the file to an end thereof
US995711 1997-12-22
PCT/US1998/027220 WO1999032973A1 (en) 1997-12-22 1998-12-22 Method for identifying validity of an executable file description

Publications (2)

Publication Number Publication Date
DE69818978D1 DE69818978D1 (de) 2003-11-20
DE69818978T2 true DE69818978T2 (de) 2004-07-29

Family

ID=25542124

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69818978T Expired - Fee Related DE69818978T2 (de) 1997-12-22 1998-12-22 Verfahren um die gültigkeit der beschreibung einer ausführbaredatei zu identifizieren

Country Status (5)

Country Link
US (1) US5991774A (de)
EP (1) EP0966708B1 (de)
CA (1) CA2291044A1 (de)
DE (1) DE69818978T2 (de)
WO (1) WO1999032973A1 (de)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6735766B1 (en) * 1999-03-03 2004-05-11 Microsoft Corporation Method and computer-readable medium for installing an upgrade to an application program
US6385766B1 (en) * 1999-05-20 2002-05-07 Dell Usa L.P. Method and apparatus for windows-based installation for installing software on build-to-order computer systems
US20100185614A1 (en) * 1999-11-04 2010-07-22 O'brien Brett Shared Internet storage resource, user interface system, and method
AU3866001A (en) * 2000-02-23 2001-09-03 Financial Engines Inc Load aware optimization
CN100430891C (zh) * 2000-10-04 2008-11-05 西门子能量及自动化公司 用于制造系统软件版本管理的系统和方法
US7058667B2 (en) 2000-12-27 2006-06-06 Microsoft Corporation Method and system for creating and maintaining version-specific properties in a file
US20020138748A1 (en) * 2001-03-21 2002-09-26 Hung Andy C. Code checksums for relocatable code
KR100798998B1 (ko) * 2001-04-17 2008-01-28 엘지노텔 주식회사 교환 시스템에서의 버전 관리 방법
US7526811B1 (en) * 2001-05-22 2009-04-28 Novell, Inc. Methods for detecting executable code which has been altered
US6819960B1 (en) 2001-08-13 2004-11-16 Rockwell Software Inc. Industrial controller automation interface
US20030079142A1 (en) * 2001-10-22 2003-04-24 Aladdin Knowledge Systems Ltd. Classifying digital object security category
CN100461156C (zh) * 2001-11-09 2009-02-11 无锡永中科技有限公司 集成数据处理系统
US20030101167A1 (en) * 2001-11-29 2003-05-29 International Business Machines Corporation File maintenance on a computer grid
US7496757B2 (en) * 2002-01-14 2009-02-24 International Business Machines Corporation Software verification system, method and computer program element
US7143395B2 (en) * 2002-02-14 2006-11-28 Hewlett-Packard Development Company, L.P. Verifying a program version
US20030191870A1 (en) * 2002-04-02 2003-10-09 Dominic Duggan Method and apparatus for updating software libraries
US6768943B2 (en) 2002-04-18 2004-07-27 Aviation Communication & Surveillance Systems, Llc System and method using environment memory having signatures
US7421490B2 (en) * 2002-05-06 2008-09-02 Microsoft Corporation Uniquely identifying a crashed application and its environment
US20030220987A1 (en) * 2002-05-21 2003-11-27 Aviation Communication & Surveillance Systems, Llc System and method with environment memory for input/output configuration
DE60332735D1 (de) * 2002-07-11 2010-07-08 Thomson Licensing Überprüfung des herunterladens von einem regelsatz für eine übergangseinrichtung sowie feuerschutzwand auf anwendungsebene
GB2391341A (en) * 2002-07-31 2004-02-04 Hewlett Packard Co A method of validating the rights of a user to participate in an interactive computer environment
US7243348B2 (en) * 2002-09-19 2007-07-10 Tripwire, Inc. Computing apparatus with automatic integrity reference generation and maintenance
US7281244B2 (en) * 2003-01-16 2007-10-09 Sun Microsystems, Inc. Using a digital fingerprint to commit loaded data in a device
US20040143739A1 (en) * 2003-01-16 2004-07-22 Sun Mircosystems, Inc., A Delaware Corporation Run time code integrity checks
US7484095B2 (en) * 2003-01-16 2009-01-27 Sun Microsystems, Inc. System for communicating program data between a first device and a second device
US8121955B2 (en) * 2003-01-16 2012-02-21 Oracle America, Inc. Signing program data payload sequence in program loading
US7222331B2 (en) * 2003-01-16 2007-05-22 Sun Microsystems, Inc. Linking of virtual methods
US7165246B2 (en) * 2003-01-16 2007-01-16 Sun Microsystems, Inc. Optimized representation of data type information in program verification
US7272830B2 (en) * 2003-01-16 2007-09-18 Sun Microsystems, Inc. Ordering program data for loading on a device
US20040158741A1 (en) * 2003-02-07 2004-08-12 Peter Schneider System and method for remote virus scanning in wireless networks
US7181739B1 (en) * 2003-03-14 2007-02-20 Novell, Inc. Installation relationship database
JP4891521B2 (ja) * 2003-03-28 2012-03-07 三洋電機株式会社 データ入出力方法、およびその方法を利用可能な記憶装置およびホスト装置
FR2856490B1 (fr) * 2003-06-17 2005-10-07 Thales Sa Procede d'ecriture, de mise a jour et d'allocation memoire applique a l'ecriture de fichiers sur un support memoire tel qu'une carte a puce
US20050108704A1 (en) * 2003-11-14 2005-05-19 International Business Machines Corporation Software distribution application supporting verification of external installation programs
FR2864387B1 (fr) * 2003-12-23 2006-04-28 Eads Telecom Procede et dispositif de transmission d'informations avec verification des erreurs de transmission involontaires ou volontaires
US7293044B2 (en) * 2004-04-09 2007-11-06 Microsoft Corporation Method and system for verifying integrity of storage
US20060150153A1 (en) * 2004-12-04 2006-07-06 Micah Altman Digital object verification method
US8065689B2 (en) * 2005-02-03 2011-11-22 Kyocera Mita Corporation Release-dependant filenames for device drivers
WO2007003231A1 (en) * 2005-06-30 2007-01-11 Freescale Semiconductor, Inc Vector crc computation on dsp
US7340574B2 (en) * 2005-08-30 2008-03-04 Rockwell Automation Technologies, Inc. Method and apparatus for synchronizing an industrial controller with a redundant controller
US7516246B2 (en) * 2005-10-27 2009-04-07 International Business Machines Corporation Communications channel method for verifying integrity of untrusted subsystem responses to a request
US7725666B2 (en) * 2005-11-03 2010-05-25 Hitachi Global Storage Technologies Netherlands B.V. Micro-journaling of data on a storage device
US7986480B2 (en) * 2005-11-03 2011-07-26 Hitachi Global Storage Technologies Netherlands B.V. Micro-journaling of data on a storage device
KR100755697B1 (ko) * 2005-11-09 2007-09-05 삼성전자주식회사 소프트웨어 설치 방법, 장치, 및 시스템
US20070112773A1 (en) * 2005-11-14 2007-05-17 John Joyce Method for assuring flash programming integrity
US7865889B1 (en) * 2006-09-14 2011-01-04 Crimson Corporation Systems and methods for verifying the compatibility of software with a group of managed nodes
US7865575B2 (en) * 2007-03-30 2011-01-04 Sterling Commerce, Inc. Methods and apparatus to perform file transfers in distributed file systems
US7809910B2 (en) * 2007-07-05 2010-10-05 Novell, Inc. Backup archive management
US8392762B2 (en) 2008-02-04 2013-03-05 Honeywell International Inc. System and method for detection and prevention of flash corruption
US8689184B2 (en) * 2011-03-30 2014-04-01 The Procter & Gamble Company Apparatus, system, and method for managing industrial software configurations
US8775877B2 (en) * 2011-12-28 2014-07-08 Roche Diagnostics Operations, Inc. Dynamic link library integrity checking for handheld medical devices
CN103309768B (zh) * 2012-03-16 2015-03-11 腾讯科技(深圳)有限公司 系统文件修复方法和装置
CN102662789A (zh) * 2012-03-27 2012-09-12 株洲南车时代电气股份有限公司 一种elf文件添加crc校验的方法
US10078474B1 (en) * 2012-06-29 2018-09-18 Emc Corporation Method of maintaining list of scratch volumes in shared filesystems across multiple nodes
CN102902732B (zh) * 2012-09-11 2015-09-02 南车株洲电力机车研究所有限公司 一种在xml配置文件中添加校验的方法
EP2784716A1 (de) * 2013-03-25 2014-10-01 British Telecommunications public limited company Erkennung verdächtiger Programme
US20150052616A1 (en) * 2013-08-14 2015-02-19 L-3 Communications Corporation Protected mode for securing computing devices

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4792898A (en) * 1986-09-26 1988-12-20 Mccarthy Donald F Method and apparatus for temporarily storing multiple data records
US5155847A (en) * 1988-08-03 1992-10-13 Minicom Data Corporation Method and apparatus for updating software at remote locations
EP0449242A3 (en) * 1990-03-28 1992-10-28 National Semiconductor Corporation Method and structure for providing computer security and virus prevention
US5050212A (en) * 1990-06-20 1991-09-17 Apple Computer, Inc. Method and apparatus for verifying the integrity of a file stored separately from a computer
US5421006A (en) * 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
WO1993025024A1 (en) * 1992-05-26 1993-12-09 Cyberlock Data Intelligence, Inc. Computer virus monitoring system
US5815722A (en) * 1992-11-18 1998-09-29 Canon Information Systems, Inc. In an interactive network board, a method and apparatus for remotely downloading and executing files in a memory
WO1995015522A1 (en) * 1993-12-02 1995-06-08 Scheele, Drew Digital data verification system
US5537540A (en) * 1994-09-30 1996-07-16 Compaq Computer Corporation Transparent, secure computer virus detection method and apparatus
US5649089A (en) * 1994-11-30 1997-07-15 Motorola, Inc. Method and apparatus for maintaining a redundant database system
US5539879A (en) * 1995-05-24 1996-07-23 Dell U.S.A., L.P. Checksum technique for verifying integrity of disk space reserved for suspend-to-disk operations
US5752251A (en) * 1995-08-07 1998-05-12 Ncr Corporation Method and apparatus for recovering aborted file (or data) transmission
US5754861A (en) * 1995-08-16 1998-05-19 Motorola, Inc. Dynamic program input/output determination
US5680611A (en) * 1995-09-29 1997-10-21 Electronic Data Systems Corporation Duplicate record detection
DE19539793A1 (de) * 1995-10-26 1997-04-30 Roland Man Druckmasch Rechner für den Leitstand einer Druckmaschine
DE19549305A1 (de) * 1995-12-22 1997-07-03 Francotyp Postalia Gmbh Verfahren und Anordnung zur Dateneingabe in eine Frankiermaschine
US5845128A (en) * 1996-02-20 1998-12-01 Oracle Corporation Automatically preserving application customizations during installation of a new software release
US5745679A (en) * 1996-03-06 1998-04-28 Micron Technology, Inc. Method and device for file transfer by cascade release

Also Published As

Publication number Publication date
WO1999032973A1 (en) 1999-07-01
US5991774A (en) 1999-11-23
CA2291044A1 (en) 1999-07-01
EP0966708A1 (de) 1999-12-29
DE69818978D1 (de) 2003-11-20
EP0966708B1 (de) 2003-10-15

Similar Documents

Publication Publication Date Title
DE69818978T2 (de) Verfahren um die gültigkeit der beschreibung einer ausführbaredatei zu identifizieren
DE102010037457B4 (de) Verfahren zur Datenverarbeitung zum Bereitstellen eines Wertes zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, Verfahren zur Datenverarbeitung zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, Verfahren zum Erzeugen von Programm-Code, Datenverarbeitungsanordnungen zum Bereitstellen eines Wertes zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, Datenverarbeitungsanordnungen zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist, und Datenverarbeitungsanordnungen zum Erzeugen von Programm-Code
DE69724338T2 (de) Verfahren und System zur Datensicherung bei einem Drittanbieter von Internet-Netzseiten, die bei einem Netzserviceanbieter gespeichert sind
DE69431944T3 (de) Verfahren zum effizienten Aktualisieren des Hashwertes einer Datei
DE19964475B4 (de) Verfahren und Vorrichtung zum Löschen von Daten nach Ablauf
DE19947827B4 (de) Verfahren zum Speichern und Aufrechterhalten von Daten und Computer-Programm sowie Speichermedium damit
DE69815599T2 (de) Verfahren und Vorrichtung zum Schutz von Anwendungsdaten in sicheren Speicherbereichen
DE19839680B4 (de) Verfahren und Vorrichtung zur Veränderung des Speicherinhalts von Steuergeräten
EP3891642B1 (de) Verfahren zur sicherung der vertrauenswürdigkeit von quellcodes
WO2003003200A1 (de) Verfahren zum übertragen von software-modulen
WO2021233696A1 (de) Verfahren zur sicheren nutzung von kryptografischem material
WO2019242969A1 (de) Kryptografiemodul und betriebsverfahren hierfür
EP1636700A1 (de) Verfahren zum nachladen einer software in den bootsektor eines programmierbaren lesespeicher
DE4315732C1 (de) Verfahren zum authentischen Booten und Testen der Integrität von Software auf PC-Architekturen
DE102007040721B4 (de) Datenverarbeitungsanordnung, Verfahren zur Datenverarbeitung, Computerprogrammelement und Überprüfungsanordnung für einen Speicher
DE102015211036A1 (de) Überprüfen einer Verträglichkeit von Gerätekomponenten eines medizinischen Geräts
DE10218835B4 (de) Verfahren zum Herstellen einer Chipkarte und Chipkarte
DE102014114157B4 (de) Verfahren zur Datenverarbeitung zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist und Datenverarbeitungsanordnungen zum Erzeugen von Programm-Code
WO2023186502A1 (de) Verfahren zum erzeugen von softwarecontainern in einem build-prozess
DE10357032A1 (de) Verfahren zum Nachladen einer Software in den Bootsektor eines programmierbaren Lesespeicher
EP4181000A1 (de) Verfahren und rechenumgebung zum erstellen und anwenden eines prüfalgorithmus für rechenvorgänge
DE10247794A1 (de) Verwalten eines Fehlversuchszählers in einem tragbaren Datenträger
DE102004021088A1 (de) Verfahren zum Schützen von Daten eines Datenträgers gegen DFA-Angriffe
WO2022161683A1 (de) Fehleranfälligkeit einer build-pipeline
DE102004008180A1 (de) Verfahren zum sicheren Betrieb eines tragbaren Datenträgers

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee