-
Diese
Erfindung betrifft eine Vorrichtung und ein System zum Bereitstellen
einer Computerplattform, insbesondere einer, die den Betrieb der
Anwendungsprogramme und Objektdateien steuert, um auf angemessene
Weise vor Computerstörungen
zu schützen.
-
Eine
Sorge beim Erstellen einer Computerplattform gilt dem Ausmaß an Kontrolle,
das die Plattform über
die Art behält,
in der die Anwendungsprogramme arbeiten und mit der auf Datendateien
auf der Plattform zugegriffen wird. Eine Computerplattform kann
Steuerungsmerkmale aufweisen, die Regeln und Einschränkungen
darüber
ausführen,
wie Anwendungsprogramme ausgeführt
werden und wie auf Dateien auf dieser Plattform zugegriffen wird.
Jedes Anwendungsprogramm, das auf dieser Plattform arbeitet, würde dann
gewöhnlich
gemäß diesen
Regeln oder Einschränkungen
geschrieben.
-
Es
wird beabsichtigt, dass Steuerungsmerkmale einer Plattform eine
Art von Sicherheit für
den Benutzer der Plattform und/oder den Schreiber des Anwendungsprogramms
oder der Objektdatei bewirken. Zum Beispiel kann eine Computerplattform
bestimmte Steuerungsmerkmale enthalten, um unerwünschte Computerstörungen,
wie diejenigen, die durch einen Computervirus oder ein schlecht
geschriebenes Anwendungsprogramm verursacht werden, zu verhindern.
In anderen Fällen
kann eine Computerplattform auch Steuerungsmerkmale zur Verhinderung
der Verletzung der Rechte des geistigen Eigentums einer Person aufweisen,
die durch die unberechtigte Vervielfältigung von urheberrechtlich geschütztem Material
eintreten kann.
-
Je
mehr Steuerungsmerkmale auf einer bestimmten Plattform ausgeführt werden,
desto weniger flexibel ist die Plattform beim Aufnehmen von Anwendungsprogrammen.
Wenn ein Anwendungsprogramm geschrieben wird, um die Regeln einer
bestimmten Plattform zu erfüllen,
ist es möglich,
dass das Anwendungsprogramm nur auf dieser Plattform verwendet werden
kann. Umgekehrt kann es sein, dass Anwendungsprogramme, die geschrieben
wurden, um die Regeln einer unterschiedlichen Plattform zu erfüllen, nicht
auf dieser Plattform arbeiten können.
-
Ein
Anwendungsprogrammierer muss vor dem Schreiben des Anwendungsprogramms
für gewöhnlich bestimmen,
für welche
Plattform die Programmanwendung geschrieben wird. Folglich wird ein
Anwendungsprogrammierer gewöhnlich
die Plattformen bevorzugen, die am wenigsten restriktiv sind, da
dies die Möglichkeit
erhöht,
dass das Anwendungsprogramm in der Lage ist, auf den meisten Plattformen
ausgeführt
zu werden. Daher ist es für eine
Plattform vorteilhafter, beim Ausführen der gewünschten
Steuerungsmerkmale das geringste Ausmaß an Regeln zu verwenden.
-
Wenn
eine Computerplattform zur Behandlung von sensiblem, urheberrechtlich
geschütztem Material
bestimmt ist, wird das Verhindern unerlaubter Vervielfältigung
vorrangig und alle Steuerungsfragen sind von geringerer Bedeutung.
Mit dem Aufkommen und der Beliebtheit digitaler Veröffentlichungen und
dem elektronischen Vertrieb von Veröffentlichungen, die auf elektronischen
Lesern zu lesen sind, hat der Schutz von Urheberrechten auf einer
Computerplattform an Bedeutung gewonnen.
-
Folglich
wäre es
vorteilhaft, eine Computerplattform bereitzustellen, die Steuerungsmerkmale bereitstellt,
um unerwünschte
Verletzungen der Rechte des geistigen Eigentums zu verhindern und dennoch
genügend
Flexibilität
für Anwendungsprogramme
und Objektdateien erlaubt. Es wäre
auch vorteilhaft, eine Computerplattform bereitzustellen, die Steuerungsmerkmale
bereitstellt, die vor Störungen
von Computeranwendungen auf der Plattform schützt.
-
WO-A-00/1023 offenbart
ein Verfahren und System zum Schützen
von Inhalt durch Gewährleistung
einer sicheren Softwareverarbeitungsumgebung. Ein Prozessor ist
mit einer Zertifizierungseinheit verbunden, die gewährleistet,
dass nur zertifizierter Software der Zugriff auf Speicher erlaubt
wird, die Inhalt enthalten. Das Zertifizieren einer Einheit zertifiziert
in Reaktion auf eine Startanfrage auch ein BIOS- und Betriebssystem,
das im Speicher gespeichert ist. Das BIOS- und Betriebssystem werden
nur geladen, wenn sie korrekt zertifiziert sind.
-
Die
vorliegende Erfindung beinhaltet ein System, das genügend Steuerungsmerkmale
bereitstellt, um eine sichere Plattform zu erstellen, und trotzdem
die Flexibilität
beibehält,
um in der Lage zu sein, zu arbeiten und eine breite Palette an Anwendungen
auszuführen.
-
Die
vorliegende Erfindung ist in den begleitenden unabhängigen Ansprüchen 1,
13 und 17 definiert. Einige bevorzugte Merkmale werden in den abhängigen Ansprüchen aufgezählt.
-
In
einer bevorzugten Ausführungsform
bringt das erfundene System die Verwendung von Steuerungsmerkmalen
mit sich, die kombiniert gegen Störungen in einer Computerplattform
schützen
und die Fähigkeit
bereitstellen, unerlaubten Zugriff auf urheberrechtlich geschütztes Material
zu verhindern. Diese Sicherheitsmaßnahmen umfassen:
- 1) Ein sicheres Betriebssystem, einschließlich eines sicheren Speicherverwaltungssystems;
- 2) Verschlüsselung
mit öffentlichem
Schlüssel;
- 3) Datenauthentifizierung durch digitale Signaturen; und
- 4) Anwendungsprogramm-/Objektdateienzulassung.
-
Das
Bereitstellen eines sicheren Betriebssystems kann zwei Gesichtspunkte
mit sich bringen: 1) Gewährleisten,
dass das Betriebssystem für
die Plattform zugelassen ist und 2) Erstellen von Firewalls um die
Anwendungsprogramme und Objektdateien, die auf der Plattform arbeiten.
Der Begriff „Firewall" wird hierin verwendet,
um die Anordnung in der Computerplattform zu bezeichnen, die bestimmte Speicherverwaltungskomponenten
des Betriebssystems verwendet, um den Zugriff auf ein Anwendungsprogramm
oder eine Objektdatei im Speicher zu verweigern. Der Zugriff auf
die Objektdatei oder das Anwendungsprogramm kann nur gewährt werden, wenn
die erforderliche Erlaubnis erhalten wird.
-
Verschlüsselung
bringt allgemein das Reformatieren von Daten unter Verwendung eines „Verschlüsselungsschlüssels" mit sich, derart,
dass niemand anderes in der Lage sein wird, die se Daten zu verwenden
oder zu lesen, wenn er nicht über
einen zweckmäßigen „Entschlüsselungsschlüssel" verfügt.
-
Datenauthentifizierung
bringt die Fähigkeit mit
sich, den Autor und den Titel der Daten zu verifizieren und zu gewährleisten,
dass die Daten richtig verfasst sind und seit dem Zeitpunkt der
Erstellung durch diesen Verfasser bis zum Empfang durch die Plattform
nicht abgeändert
wurden.
-
Die
Anwendungs-/Datenzulassung ermöglicht
es den Anwendungsprogrammen, den Typ von Objektdateien zurückzuweisen,
auf dem sie arbeiten wird und ermöglicht es den Objektdateien
auch, die Anwendung durch eine flexible Zugriffspolitik durch die
Verwendung von Objekt-Handlern und eines Anwendungsprogramm-Zulassungsverfahrens
zurückzuweisen.
-
In
der Ausführungsform
des erfundenen Systems sind diese vier Typen von Steuerungsmerkmalen
für den
Zugriff durch ein Anwendungsprogramm oder eine Datendatei verfügbar, wenn
sie sich auf der Plattform befinden. Anwendungsprogramme und Dateien
können
auf der Plattform arbeiten, ohne die Steuerungsmerkmale zu verwenden.
Durch diese vier Typen von Steuerungsmerkmalen wird eine Computerplattform
bereitgestellt, die sowohl für
die Annahme verschiedener Anwendungsprogramme als auch für den Schutz
geistigen Eigentums offen ist.
-
Die
vorliegende Erfindung kann auf verschiedene Arten in die Praxis
umgesetzt werden, von denen einige nun mit Bezug auf die begleitenden
Zeichnungen beschrieben werden; es zeigen:
-
1 die
Anordnung einer Vorrichtung, die eine Ausführungsform der vorliegenden
Erfindung ausführt;
-
2 ein
Ablaufdiagramm, das das Erstellen einer digitalen Signatur gemäß einer
Ausführungsform
der vorliegenden Erfindung anschaulich macht;
-
3 ein
Ablaufdiagramm, das das Signatur-Authentifizierungsverfahren
gemäß einer
Ausführungsform
der vorliegenden Erfindung anschaulich macht;
-
4 ein
Ablaufdiagramm, das das Erstellen einer digitalen Signatur zusammen
mit dem weiteren Schritt der Ver schlüsselung gemäß einer Ausführungsform
der vorliegenden Erfindung anschaulich macht;
-
5 ein
Ablaufdiagramm, das das Signatur-Authentifizierungsverfahren
zusammen mit dem weiteren Schritt der Entschlüsselung gemäß einer Ausführungsform
der vorliegenden Erfindung anschaulich macht;
-
6 ein
Ablaufdiagramm, das das Erstellen einer digitalen Signatur zusammen
mit dem weiteren Schritt der Verschlüsselung gemäß einer anderen Ausführungsform
der vorliegenden Erfindung anschaulich macht;
-
7 ein
Ablaufdiagramm, das das Signatur-Authentifizierungsverfahren
zusammen mit dem weiteren Schritt der Entschlüsselung gemäß einer anderen Ausführungsform
der vorliegenden Erfindung anschaulich macht; und
-
8 ein
Ablaufdiagramm, das die Schritte des Erhaltens der Erlaubnis zum
Zugreifen auf Daten im Speicher gemäß einer Ausführungsform
der vorliegenden Erfindung anschaulich macht.
-
1 stellt
die Anordnung einer Vorrichtung, die eine Ausführungsform der vorliegenden
Erfindung ausführt,
bildlich dar. Die Computerplattform 101 ist mit einer Eingangsschnittstelle 103 und
einer Ausgabeschnittstelle 105 versehen, um es der Plattform
zu ermöglichen,
Daten zu erhalten und zu übertragen.
Die Eingangsschnittstelle 103 und die Ausgabeschnittstelle 105 können die
gleiche physikalische Schnittstelle sein, so lange diese die Fähigkeit
aufweist, sowohl Daten zu empfangen als auch zu übertragen.
-
Die
Hardware 107 ist innerhalb der Computerplattform 101 enthalten
und führt
Firmware 109 aus. Die Hardware 107 umfasst auch
Speicherregister 111. Das Betriebssystem der Computerplattform wird
auf die Hardware 107 geladen.
-
Das
Betriebssystem („O/S") ist das Fundament
für die
Infrastruktur der Plattform zur Verwaltung von Sicherheit und digitalen
Rechten. Die Firmware 109 umfasst einen O/S-Verifizierer 113 zum
Authentifizieren des O/S bevor das O/S auf die Hardware 107 geladen
wird. Jedes Mal, wenn das O/S geladen oder abgeändert wird, muss der O/S-Verifizierer 113 das O/S
authentifizieren. Die O/S-Verifizierung verhindert die potentielle
Umgehung der Sicherheitsmerkmale, die durch das O/S ausgeführt werden,
durch unerlaubtes Verändern
oder Ersetzen des O/S. Die O/S-Verifizierung beinhaltet nicht die
Auferlegung von Einschränkungen,
die die Anwendungsprogramme, die auf der Computerplattform ausgeführt werden,
beeinträchtigen
würden.
-
Die
O/S-Verifizierung kann durch verschiedene Verfahren bewerkstelligt
werden. Ein Verfahren der O/S-Verifizierung, das ausgeführt werden
kann, verwendet digitale Signaturen. Algorithmen zum Erstellen und
Verifizieren von Signaturen und zum Erzeugen der öffentlichen/privaten
Signaturschlüsselpaare
sind in der Literatur gut bekannt (vgl. Bruce, Schneier, „Applied
Cryptography, second edition", John
Wiley & Sons,
Inc. New York (1996)). 2 und 3 stellen
die Verifizierung der digitalen Signatur für das O/S bildlich dar. Diese
Technik verwendet öffentliche/geheime
Signaturschlüssel.
Der erste Schritt 201 des digitalen Signaturverfahrens
ist das Erstellen des zu signierenden Datenpakets. Das Datenpaket
ist nicht unbedingt nur das O/S. Es können andere Informationen als
Teil des Datenpakets mit eingeschlossen werden. Zum Beispiel können die Referenzen
zusammen mit dem Datenpaket mit eingeschlossen werden. Diese Referenzen
können
verschiedene Elemente zum Identifizieren des O/S, wie den Autor,
die Version und das Erstellungsdatum, enthalten.
-
Nach
dem Bestimmen des zu signierenden Datenpakets besteht der nächste Schritt 203 im
Anwenden einer Hash-Funktion auf das Datenpaket. Eine Hash-Funktion
erstellt im Wesentlichen einen Wert mit fester Länge, der Hash-Wert genannt
wird. Der Hash-Wert wird von Kennzeichen des Datenpakets abgeleitet.
Unterschiedliche Datenpakete erstellen für gewöhnlich unterschiedliche Hash-Werte.
Ferner ist das Erzeugen zweier unterschiedlicher Pakete, die den
gleichen Hash-Wert aufweisen, rechnerisch unausführbar.
-
Jeder
Autor ist einem oder mehreren Paaren von öffentlichen/privaten Signaturschlüsseln zugeordnet.
Nachdem der Hash-Wert
erstellt wurde (203), werden der Hash-Wert und der priva te
Signaturschlüssel
in einen festen, öffentlich
bekannten Signaturalgorithmus eingegeben, der als seine Ausgabe eine
digitale Signatur erzeugt (205). Jeder private Signaturschlüssel ist
für einen
einzelnen Autor eindeutig und ihm bekannt. Die resultierende Signatur
ist für den
Autor, der den privaten Signaturschlüssel kennt, eindeutig.
-
3 stellt
die Schritte bildlich dar, die ausgeführt werden, um ein signiertes
Datenpaket zu authentifizieren. Der erste Schritt (301)
besteht im Neuberechnen des Hash-Werts des Datenpakets. Diese Berechnung
wendet die Hash-Funktion erneut auf das Datenpaket an. Der neuberechnete
Hash-Wert, die Signatur und der öffentliche
Signaturschlüssel werden
als Eingänge
in einen festen, öffentlich
bekannten Signatur-Verifizierungsalgorithmus
(303) eingegeben. Dieser Algorithmus gibt einen von zwei Werten
aus: „annehmen", was bedeutet, dass
die Signatur anzunehmen ist, und „zurückweisen", was bedeutet, dass die Signatur zurückzuweisen
ist.
-
Die
Kombination des Erstellens eines Hash-Codes und des Signierens des
Hash-Codes zum Erstellen der digitalen Signatur ermöglicht die Fähigkeit
des Sicherstellens, dass der Signatar die Signatur erstellt hat
und dass das Datenpaket nicht abgeändert wurde, seit die Signatur
erstellt wurde.
-
Für den OS-Verifizierer
wird die öffentliche Signatur
des autorisierten O/S-Programmierers in die Hardware der Computerplattform
gebrannt. Dies ist erforderlich, da das O/S gewöhnlich die erste Software ist,
die auf die Computerplattform geladen wird, und die Computerplattform
in der Lage sein muss, dieses O/S zu verifizieren, wenn es geladen
wird. Der autorisierte O/S-Programmierer ist gewöhnlich der Hersteller der Computerplattform.
-
Die
Verfahren des Erstellens einer digitalen Signatur und des Authentifizierens
der digitalen Signatur, die in 2 und 3 ausführlich aufgezeigt werden,
sind nicht auf die O/S-Verifizierung
beschränkt.
Diese Verfahren können
auch auf das Verfahren des Authentifizierens von Anwendungsprogrammen
und Objektdateien anwendbar sein. Zusätzlich zu den Verfahren in 2 und 3 kann das
Authentifizieren von Anwendungsprogram men und Objektdateien indes
zusätzliche
Schritte mit sich bringen.
-
4 und 5 stellen
die Verfahren bildlich dar, die beim Authentifizieren von Signaturen
von Anwendungsprogrammen und Objektdateien ausgeführt werden
können.
In ähnlicher
Weise wie die Verfahren, die in 2 umrissen
werden, bestehen die ersten drei Schritte des Erstellens einer Signatur
für Anwendungsprogramme
und Objektdateien in den Schritten des Erstellens des Datenpakets 401,
des Erstellens des Hash-Werts 403 und des Erstellens der
digitalen Signatur 405. Für Anwendungsprogramme und Objektdateien
sollten Referenzen mit dem Datenpaket mit einbezogen werden und
diese Referenzen sollten zumindest den Namen des Autors der Daten
beinhalten. Nachdem die Signatur des Datenpakets erstellt wurde,
werden sowohl das Datenpaket als auch die Signatur in Schritt 407 mit
einem öffentlichen
Verschlüsselungsschlüssel verschlüsselt.
-
In ähnlicher
Weise wie die öffentlichen/geheimen
Signaturschlüssel
ist der öffentliche
Verschlüsselungsschlüssel unverwechselbar
mit einem privaten Entschlüsselungsschlüssel verbunden.
Sowohl der Verschlüsselungs-
als auch der Entschlüsselungsschlüssel sind
indes für
eine bestimmte Computerplattform anstatt für einen bestimmten Programmierer
eindeutig. Ein anderer Unterschied ist, dass der öffentliche
Verschlüsselungsschlüssel verwendet wird,
um die Daten zu verschlüsseln,
während
der private Entschlüsselungsschlüssel verwendet
wird, um die Daten zu entschlüsseln.
Der private Entschlüsselungsschlüssel wird
geheim gehalten und ist lediglich dieser bestimmten Computerplattform
bekannt. Dies erlaubt es nur dieser Computerplattform, auf die verschlüsselten
Daten zuzugreifen, die mit dem öffentlichen
Schlüssel
verschlüsselt
wurden, der für
die Plattform eindeutig ist.
-
Zum
Authentifizieren des Anwendungsprogramms oder der Objektdatei besteht
der erste Schritt 501 im Entschlüsseln der verschlüsselten
Daten mit dem privaten Entschlüsselungsschlüssel der Computerplattform.
Nachdem die Daten entschlüsselt
wurden, sollten die entschlüsselten
Daten aus dem Datenpaket und der digitalen Signatur bestehen. Die
nächsten Schritte
bestehen im Wiedererstellen des Hash-Werts des Datenpakets 503 und
im Erhalten der Ausgabe vom öffentlich
bekannten Signatur-Verifizierungsalgorithmus 505. Wenn
die Hash-Werte nicht übereinstimmen,
dann werden die Daten vom Speicher gelöscht.
-
Die
Verschlüsselung
des Datenpakets unter Verwendung der Technik mit öffentlichen/privaten Schlüsseln stellt
durch die Verwendung von zwei separaten Schlüsseln einen rigorosen Schutz
gegen unerlaubten Zugriff auf die verschlüsselten Daten bereit. Dieses
Verfahren kann indes ein beträchtliches Ausmaß der Verarbeitungsressourcen
der Plattform in Anspruch nehmen. Zusätzlich kann das Verschlüsselungs-
und Entschlüsselungsverfahren
durch das Verschlüsseln
des gesamten Datenpakets einen beträchtlichen Betrag an Zeit in
Anspruch nehmen.
-
Eine
andere Alternative zur Verwendung der öffentlichen/privaten Schlüssel ist
das Verwenden einer weniger komplizierten Verschlüsselungstechnik zusätzlich zur
Verschlüsselung
mit öffentlichen/privaten
Schlüsseln. 6 und 7 stellen
das Verfahren des Authentifizierens von Programmanwendungen und
Objektdateien unter Verwendung der zweiten Verschlüsselungstechnik
bildlich dar.
-
Der
erste Schritt 601 besteht im Erstellen des Datenpakets.
Die zweiten und dritten Schritte 603, 605 bestehen
im Erstellen des Hash-Werts und der digitalen Signaturen des Datenpakets.
Der vierte Schritt 607 besteht im Verschlüsseln des
Datenpakets und in der Signatur mit einem einzigen Verschlüsselungs-/Entschlüsselungsschlüssel. Dieser einzige
Schlüssel
wird sowohl zum Verschlüsseln
als auch zum Entschlüsseln
verwendet. Der einzige Entschlüsselungsschlüssel wird
dann im nächsten Schritt 609 selbst
mit dem öffentlichen
Verschlüsselungsschlüssel verschlüsselt, der
zu dieser bestimmten Plattform gehört.
-
Zum
Entschlüsseln
der Daten an der Plattform muss die Plattform zuerst in Schritt 701 den
einzigen Verschlüsselungs-/Entschlüsselungsschlüssel unter
Verwendung ihres privaten Entschlüsselungsschlüssels entschlüsseln. Mit
dem entschlüsselten einzigen
Verschlüsselungs-/Entschlüsselungsschlüssel verfügt die Plattform
nun über
den einzigen Verschlüsselungs-/Entschlüsselungsschlüssel und dann
kann das Datenpaket entschlüsselt
werden. Durch separates Verschlüsseln
des einzigen Verschlüsselungs-/Entschlüsselungsschlüssels mit
den öffentlichen/privaten
Schlüsseln
wird der Vorteil der Verwendung des sichereren öffentlichen/privaten Verschlüsselungssystems
zum Schützen
des gesamten Datenpakets erzielt, während ein geringeres Niveau
an Komplexität
beibehalten wird.
-
Nachdem
ein Anwendungsprogramm oder eine Objektdatei durch die Verfahren,
die in 4 oder 6 ausführlich aufgezeigt werden, oder durch
gleichartige Verfahren authentifiziert wurde, werden sie als sichere
Daten betrachtet. Wenn ein Anwendungsprogramm oder eine Objektdatei
nicht authentifiziert wird, wird es/sie als unsicher betrachtet.
-
Dadurch,
dass die Verschlüsselungs-/Entschlüsselungsschlüssel für jede Computerplattform eindeutig
sind, kann das erfundene System die Verfügbarkeit von Daten auf eine
bestimmte Computerplattform begrenzen. Jede Computerplattform, die nicht
den richtigen privaten Entschlüsselungsschlüssel für ein verschlüsseltes
Datenpaket aufweist, kann es nicht richtig entschlüsseln. Diese
Fähigkeit,
kombiniert mit den Signatur-Authentifizierungsverfahren, stellt
die Fähigkeit
bereit, eine vollständige
Kontrolle über
die Datenübertragungen
an die Computerplattform auszuüben,
indem: 1) gewährleistet
wird, dass jede Datenübertragung
an die Computerplattform nur durch diese Plattform gelesen werden
kann und 2) gewährleistet
wird, dass die Datenübertragung
nicht abgeändert
wurde, seit der Autor der Daten sie signiert hat.
-
Der
private Entschlüsselungsschlüssel der Computerplattform
muss in die Hardware gebrannt werden, derart, dass die Plattform
immer in der Lage sein wird, verschlüsselte Datenpakete zu entschlüsseln. Zusätzlich sollte
die Authentifizierung von Anwendungsprogrammen und Objektdateien
jedes Mal vorgenommen werden, wenn ein Anwendungsprogramm oder Objektdateien
auf dem Speicher der Computerplattform abgelegt werden. Durch das
Ausführen
dieser Authentifizierung jedes Mal, wenn Daten auf die Plattform
geladen werden, gewährleistet das
System, dass sämtliche
Daten, die auf die Computerplattform geladen werden, richtig als
sicher oder unsicher gekennzeichnet werden.
-
Obgleich
nur die öffentliche
Signatur des Herstellers in die Hardware gebrannt wird, ist die
Fähigkeit,
Anwendungsprogramme und Objektdateien als sicher zu bezeichnen,
nicht auf den Hersteller der Computerplattform beschränkt. Jeder
Programmierer, der ein Anwendungsprogramm oder eine Objektdatei
schreibt, das/die auf der Computerplattform zu verwenden ist, kann
es/sie als sichere Daten bezeichnen. Um unterschiedliche Programmierer
beim Bezeichnen von Daten als sicher aufzunehmen, können die
Programmierer alle Daten, die als sicher zu bezeichnen sind, an
den Hersteller senden. Nach dem Authentifizieren der Daten vom Programmierer wird
der Hersteller die Daten digital mit seinem geheimen Signaturschlüssel signieren,
der dem öffentlichen
Signaturschlüssel
entspricht, der in die Hardware der Computerplattform gebrannt wurde.
-
Eine
andere Ausführungsform
bringt das Senden des öffentlichen
Signaturschlüssels
des Anwendungsprogrammierers an den Hersteller mit sich. Der Hersteller
kann dann diesen öffentlichen
Signaturschlüssel
digital signieren. Diese Signatur kann dann unter Verwendung des
Signaturschlüssels
des Anwendungsprogrammierers an Signaturen angehängt werden. Da er durch den
Hersteller signiert wurde, wird die Computerplattform den öffentlichen Signaturschlüssel des
Programmierers als einen zusätzlichen
Signaturschlüssel
annehmen, der verwendet werden kann, um Anwendungsprogramme und Objektdateien
als sicher zu authentifizieren. Diese zusätzlichen öffentlichen Signaturschlüssel und
die entsprechenden Identitäten
werden durch das O/S in einer Liste gespeichert. Auf diese Liste
wird durch das O/S zugegriffen und die Identität, die in den Referenzen enthalten
ist, wird verwendet, um den zweckmäßigen öffentlichen Signaturschlüssel zu
bestimmen.
-
Dieses
Verfahren des Zulassens des öffentlichen
Signaturschlüssels
eines anderen Programmierers ist nicht auf O/S-Verifizierung anwendbar. Es ist wichtig,
das O/S immer zu kontrollieren, da dies gewährleistet, dass die Sicherheits merkmale,
die durch das O/S vorgeschrieben werden, nicht umgangen werden können.
-
Ein
durch das O/S ausgeführtes
Sicherheitsmerkmal, das nicht umgangen werden sollte, ist das Erstellen
von Firewalls um die Daten in den Speicherregistern 111,
um die Integrität
und den Datenschutz der Anwendungsprogramme und der Objektdateien zu
wahren. Sowohl der Speicher eines Anwendungsprogramms als auch der
Speicher einer Objektdatei werden automatisch vor allen anderen
Anwendungen geschützt,
die auf der Computerplattform 101 ausgeführt werden
können.
Es ist keine besondere Programmierung durch die Programmierer erforderlich,
um diesen Schutz zu genießen.
Zum Durchbrechen einer Firewall wird das O/S die Erlaubnis von zwei
Orten ersuchen: 1) dem Anwendungsprogramm, das den Durchbruch anfragt
und 2) den Daten im Speicher, auf die zuzugreifen ist.
-
8 stellt
das Verfahren des Erhaltens der zweckmäßigen Erlaubnis vor dem Erlauben
des Zugriffs auf Anwendungsprogramme oder Objektdateien im Speicher
bildlich dar. Für
den ersten Schritt 801 bestimmt das O/S, ob die Daten im
Speicher, auf die zugegriffen werden soll, zu einer sicheren Objektdatei
oder einem sicheren Anwendungsprogramm gehören. Wenn die Daten im Speicher
nicht sicher sind, informiert das O/S das anfragende Anwendungsprogramm
darüber,
dass sie nicht sicher sind. Das O/S wird es dem anfragenden Anwendungsprogramm
erlauben, Zugriff auf die unsicheren Daten zu erlangen, wenn die
anfragende Anwendung geschrieben wurde, um den Zugriff auf unsichere
Daten zu erlauben, wie in Schritt 803 bestimmt.
-
Wenn
die Daten im Speicher zu sicheren Daten gehören, dann stellt das O/S in
Schritt 805 die Referenzen der sicheren Zieldaten für das anfragende
Anwendungsprogramm bereit, um in Schritt 807 für das anfragende
Anwendungsprogramm zu bestimmen, ob die Referenzen zugelassen sind.
-
Das
O/S wird nicht automatisch Zugriff auf die sicheren Daten bereitstellen,
wenn das anfragende Anwendungsprogramm die Referenzen zulässt. Mit
sicheren Daten bestimmt das O/S dann in Schritt 809, ob
die Daten zu einem Anwendungsprogramm oder einer Objektdatei gehören.
-
Wenn
der Speicher zu einer Objektdatei gehört, wird das O/S gewöhnlich einen
Objekt-Handler ausführen,
der der Objektdatei zugeordnet ist. Der Begriff „Objekt-Handler", der hierin verwendet
wird, bezeichnet ein Programm, das Objektdateien zugeordnet ist,
die bestimmen, ob der Zugriff auf diese Objektdatei erlaubt ist.
Zum Beispiel könnte
ein Objekt-Handler, der einer bestimmten Objektdatei zugeordnet
ist, Zugriff durch die Firewall für ein Anwendungsprogramm erlauben,
das vom Herausgeber der Objektdatei hergeleitet wird. Der Objekt-Handler kann
eine Anzahl von Parametern (Herausgeber, Verfalldatum, Plattformidentifikationen,
usw.) als Kriterien für
den Zugriff verwenden. Wenn der Objekt-Handler bestimmt, dass die
Erlaubnis zum Zugriff auf den gewünschten Speicher erlaubt ist,
wird das O/S den Zugriff ermöglichen.
-
Objekt-Handler
werden für
gewöhnlich
durch den Autor des Datenpakets erstellt und zusammen mit dem Datenpaket
einbezogen, das digital signiert wird. Es können in einer anderen Ausführungsform der
vorliegenden Erfindung indes durch das O/S Default-Objekt-Handler
für sichere
Objektdateien erstellt werden, die keinen Objekt-Handler aufweisen.
-
Wenn
die Zieldaten im Speicher zu einem Anwendungsprogramm gehören, dann
muss das O/S bestimmen, ob die Zielanwendung das anfragende Anwendungsprogramm
zulässt.
Der nächste Schritt 811 besteht
im Bestimmen, ob die anfragende Anwendung sicher ist. Abhängig vom
sicheren Status der anfragenden Anwendung werden entweder die Referenzen
der anfragenden Anwendung in Schritt 813 an das Zielanwendungsprogramm übermittelt oder
die Tatsache, dass sie unsicher ist, wird an das Zielanwendungsprogramm übermittelt.
In beiden Fällen
muss das Zielanwendungsprogramm bestimmen, ob der Zugriff auf seinen
Speicher gewährt
wird, wie in Schritt 815 beziehungsweise 817 bildlich
dargestellt.
-
Das
Erhalten der Erlaubnis zum Durchbrechen einer Firewall muss in jedem
neuen Fall erhalten werden, in dem ein Anwendungsprogramm Zugriff
auf Daten im Speicher anfragt. Nachdem ein Anwendungsprogramm die
Erlaubnis zum Zugreifen auf den Speicher erhält, muss das Anwendungsprogramm
die Erlaubnis bis zur Beendigung seines Zugriffs nicht erneut erhalten.
Nachdem der Zugriff beendet wurde, wird eine darauf folgende Anfrage
zum Zugreifen auf Daten im Speicher als ein neuer Fall behandelt
und die erforderliche Erlaubnis muss erhalten werden.
-
Durch
rigoroses Schützen
der Integrität
von Anwendungsprogrammen und Objektdateien im Speicher minimiert
das System den Schaden, der durch Computerstörungen verursacht wird. Jede
Störung
bei Anwendungsprogrammen oder Computerviren kann beim Beeinträchtigen
anderer Programmanwendungen und Objektdateien geblockt werden. Die
Firewall isoliert im Wesentlichen potentiell schädliche Einwirkungen auf Anwendungsprogramme
und Objektdateien.
-
Firewalls
ermöglichen
es dem System auch, die Kontrolle über Datenübertragungen, die durch Datenverschlüsselung
und Signatur-Authentifizierung ausgeübt wird, auszuweiten, um die
Daten abzudecken, während
sie sich im Speicher der Computerplattform befinden. Sobald sie
sich im Speicher der Computerplattform befinden, wird unerlaubter
Zugriff durch die Kombination von Firewalls und des Zulassungsverfahrens
durch Objekt-Handler und Anwendungsprogrammzulassungen abgeblockt.
So wird unerlaubter Zugriff auf die Daten vom Zeitpunkt der Erstellung
der digitalen Signatur bis hin zur Übertragung der Daten an die
Computerplattform und zur Verwendung auf der Plattform verhindert.
-
Unerlaubter
Zugriff auf die Daten kann auch verhindert werden, wenn die Daten
aus der Computerplattform exportiert werden, indem das Verschlüsselungs-/Entschlüsselungsverfahren
auf alle Daten angewandt wird, die aus der Computerplattform heraus übertragen
werden. Jedes Mal, wenn irgendwelche Daten, die als sicher gekennzeichnet
sind, aus der Computerplattform heraus übermittelt werden, verschlüsselt die
Computerplattform die Daten mit dem Verschlüsselungsschlüssel der
Computerplattform. Das Verschlüsseln
der Daten verhindert, das jemand, der nicht über den Entschlüsselungsschlüssel dieser
Computerplattform verfügt,
in unzulässiger Weise
auf die Daten zugreift, die aus der Plattform heraus übermittelt
wurden.
-
Eine
Vielzahl von Daten kann durch das OS als sensibel bezeichnet werden,
was bedeutet, dass nicht erwünscht
ist, dass andere Organisationen die Inhalte dieser Daten erfahren.
Zum Beispiel kann das OS Daten, die es in verschlüsselter
Form empfängt, als
sensibel bezeichnen. Das OS kann automatisch Teile des Speichers,
die durch eine sichere Anwendung verwendet werden, für sensibel
erachten. Oder es kann auf eine Anfrage hin handeln, die durch eine Anwendung
oder das OS selbst erzeugt wurde, dass die Daten als sensibel bezeichnet
werden sollen.
-
Normalerweise
werden sensible Daten innerhalb der Computerplattform gehalten.
Aufgrund von Speichereinschränkungen
oder zum Ermöglichen
von Datensicherung kann es erforderlich sein, sensible Daten von
der Computerplattform zu exportieren. In der bevorzugten Ausführungsform
der Erfindung werden Informationen, die durch das OS als sensibel
bezeichnet werden, verschlüsselt,
wenn sie, vollständig
oder in Teilen, aus der Computerplattform heraus übertragen
werden, und entschlüsselt,
wenn sie wieder in die Computerplattform zurück importiert werden. In der
bevorzugten Ausführungsform
der Erfindung führt
das OS diese Verschlüsselungs-
und Entschlüsselungsschritte
automatisch aus. Andere Betriebsarten sind möglich und können in spezifischen Zusammenhängen zweckmäßiger sein.
Zum Beispiel kann das OS den Benutzer der Computerplattform oder
Anwendungen, die auf der Computerplattform gespeichert sind, abfragen,
bevor die Verschlüsselungs-
und Entschlüsselungsabläufe ausgeführt werden.
Durch das Steuern des Zugriffs auf Daten, die aus der Plattform
heraus übermittelt
wurden, übt
das erfundene System die Kontrolle über den Zugriff auf die Daten
in allen Fällen
potentiellen Zugriffs aus, nachdem die digitale Signatur erstellt
wird. Neben dem betrügerischen
Beschaffen der Erlaubnis durch Zugreifen auf die geheimen und privaten Schlüssel muss
eine Person die ausgeführten
Sicherheitsmaßnahmen überwinden,
um Zugriff auf sichere Daten zu erlangen. Diese Sicherheitsmaßnahmen
erlegen dem Anwendungsprogrammierer keine restriktiven Regeln auf,
da unsichere Anwendungsprogramme und Objektdateien immer noch auf
dem erfundenen System arbeiten können.
-
Die
vorliegende Erfindung wird in ihrem Umfang nicht als durch die in
dieser Beschreibung beschriebenen bevorzugten Ausführungsformen
eingeschränkt
betrachtet. Die Software für
das System, durch die das Verfahren der Erfindung ausgeführt wird,
kann auf irgendeinem zweckmäßigen maschinenlesbaren
Medium, wie beispielsweise einer Floppy-Disk, einer Computer-Festplatte, CD-ROM, Flash-ROM,
nicht flüchtigem
ROM und RAM gespeichert sein. Das Medium kann magnetisch oder optisch
lesbar sein. Von zusätzlichen
Vorteilen und Abwandlungen, die dem Fachmann bei Überlegung
und aus der Beschreibung und in der Praxis leicht einfallen, wird
beabsichtigt, dass sie innerhalb des Umfangs der folgenden Ansprüche liegen.