Hintergrund der Erfindung
Gebiet der Erfindung
-
Die Erfindung betrifft Sicherheit bei Computern, spezieller
eine Vorrichtung und ein Verfahren zum Sorgen für sicheren
Zugriff auf ein Weitbereichsnetz.
Hintergrundinformation
-
Fortschritte in der Computer- und Kommunikationstechnik:
haben den freien Fluss von Information innerhalb von
Computersystemen in einem Netzwerk erhöht. Während ein derartiger
freier Informationsfluss für viele ein Segen ist, kann er
für solche Systeme katastrophal sein, die kritische oder
qualifizierte Information verarbeiten. Bei einem typischen
Computersystem-Netzwerk sind eine oder mehrere Workstations
über ein Netzwerk mit einem Hostcomputer oder Server
verbunden. Diese Workstations können von billigen PCs bis zu
leistungsfähigen UNIX-Prozessoren reichen. In einem derartigen
System können die Workstations, Server und sogar die
verbindenden Netzwerke hinsichtlich einer Durchbrechung der
Sicherheit in großer Gefahr sein.
-
Beim Entwickeln einer Strategie zum Verringern der
Möglichkeiten und der Konsequenzen der Durchbrechung der Sicherheit
(d. h. der Computersicherheitspolitik) ist davon auszugehen,
dass kompetente und engagierte Einzelpersonen intensive
Angriffe auf die Sicherheitsmechanismen eines Computersystems
starten. Diese Einzelpersonen werden als Bedrohung
bezeichnet. Die Bedrohung versucht, verletzliche Stellen auf zufinden,
die dazu ausgenutzt werden können, dass ein Teil des
Computersystems unter Verletzung der Sicherheitspolitik des
Eigentümers arbeitet. Bedrohungen fallen in zwei weite
Klassen: Insider und Outsider.
-
Insider sind solche Einzelpersonen, denen ein gewisser Grad
an legitimierten Privilegien verliehen wurden und die dann
dieses Privileg missbrauchen. Ein Beispiel für einen Insider
in der Nichtcomputerwelt ist ein Buchhalter, der seinen
berechtigten Zugriff auf Kontoaufzeichnungen für
Unterschlagungen nutzt. Ein Beispiel in der Computerwelt ist ein
Systemverwalter, der seinen legitimierten Zugriff auf ein
Computersystem dazu nutzt, betrügerische Rechnungen zu
erzeugen, die an eine Firma im Besitz des Verwalters zu zahlen
sind. Bedenken hinsichtlich Insideraktionen erstrecken sich
auch auf Einzelpersonen, die durch Unwissen, Inkompetenz
oder falsche Anweisungen dazu beitragen, die
Sicherheitspolitik absichtlich zu verletzen.
-
Outsider sind diejenigen Einzelpersonen, die über kein
legitimiertes Privileg für das System verfügen, die jedoch
verletzbare Stellen ausnutzen können, um Zugriff auf es zu
erlangen. Ein Beispiel für einen Outsider in der
Nichtcomputerwelt ist ein Einbrecher, der Schwachstellen von
Schlössern und Alarmen dazu ausnutzt, einen Raum aus einem Safe
oder einer verschließbaren Kassette zu begehen. Ein Beispiel
für einen Outsider in der Netzwerkwelt ist der "Hacker", der
die Steuerung eines Netzwerkcomputers neben den berechtigten
Besitzern übernimmt.
-
Hinsichtlich der Gefahr des Durchbrechens der Sicherheit
ergeben sich weitere Komplikationen, wenn vom internen,
privaten Netz zu einem externen Weitbereichsnetz wie dem Internet
ein Pfad eröffnet wird. Das Internet ist eine lose
Konglomeration von über ein Standard-Netzwerkprotokoll verbundenen
Netzwerken. Der Anreiz für den Zugriff auf das Internet ist
die riesige Informationsmenge, auf die der Benutzer
zugreifen kann; die Gefahr besteht darin, dass nur wenig oder
keine Kontrolle dahingehend besteht, welche Einzelpersonen
Zugriff haben und was sie mit diesem Zugriffsrecht tun. Daher
kann der Zugriff auf das Internet eine offene Tür für die
Ausnutzung des eigenen Netzwerks durch eine Anzahl von
Bedrohungen sein.
-
Tatsächlich wirkt ein Weitbereichsnetz wie das Internet als
Bedrohungsmultiplikator. Netzwerke wie das Internet haben
sich als Foren für den freien Austausch von Ideen entwickelt.
Diese Tatsache kann durch Bedrohungen ausgenutzt werden, die
Zugriff auf ein privates Netzwerk suchen oder dieses
unterminieren wollen. Zum Beispiel bedeutet die globale
Verbindung in einem derartigen Netzwerk, dass einem privaten
Netzwerk entnommene Daten sehr schnell um die Welt bewegt werden
können. Das Problem wird dadurch verkompliziert, dass das
Internet eine Anzahl sehr großer Datenarchive enthält, die
dazu verwendet werden können, Daten zu speichern, die von
privaten Netzwerken übertragen oder geschickt wurden. Hacker
haben auch die globale Verbindung in Weitbereichsnetzen wie
dem Internet dazu verwendet, Computeranlagen im internen
Netzwerk direkt zu manipulieren (durch Mechanismen wie den
Versuch, unwahrscheinliche Kombinationen von Anfragen oder
Befehlen zu versuchen) oder bösartige Software in die
Maschine einzuschleudern. Bösartige Software, die dazu in der
Lage ist, den Willen der Bedrohung aus der Ferne und ohne
direkte Kontrolle auszuüben, kann von Hand oder durch
technische Mechanismen wie "Viren" oder "Würmer" eingeschleust
werden. (Ein derartiges sich selbst vervielfältigendes
Exemplar böswilliger Software war für den stark veröffentlichten
Angriff auf mit dem Internet verbundene Computer vor einigen
Jahren verantwortlich.)
-
Bisher entwickelte Internetprotokolle wurden nicht für
Sicherheitszwecke konzipiert. Zum Beispiel können
Usenet-Nachrichten von unwissenden oder verärgerten Angestellten dazu
verwendet werden, firmeneigene Information im öffentlich
zugänglichen Raum bekannt zu machen. In einigen Fällen kann
diese Bekanntmachung anonym erfolgen (z. B. unter Verwendung
eines Modus zur anonymen Dateiübertragung oder durch
Versenden der Daten an einen anonymen Server). Außerdem kann die
private Art der Daten dadurch verdeckt werden, dass sie über
eines von einer Anzahl freier, leicht zugänglicher
Standardverschlüsselungsprogramme verschlüsselt werden.
-
Außerdem unterliegt das Standardpasswort Unix, da es
wiederverwendbar ist, einem Abfangen und einem Missbrauch durch
Outsider-Bedrohungen. Zum Beispiel bedeutet die Verwendung
wiederverwendbarer Passwörter, dass jedes Passwort
dahingehend verletzlich ist, dass es "ausgeschnüffelt" und
abgefangen wird. Wenn das Passwort einmal abgefangen ist, kann es
von einer internen oder externen Bedrohung dazu genutzt
werden, Zugriff auf eine Site zu erlangen. Außerdem kann die
Bedrohung, wenn das Passwort zu jemandem mit
Verwaltuncrsprivileg gehört, das abgefangene Passwort dazu zu verwenden,
Verwaltungsprivilegien im internen Netzwerk zu erlangen. Die
Bedrohung kann dann dieses Privileg dazu ausnutzen, eine
dauerhafte "Falltür" zu installieren, um zukünftigen Zugriff
zu gewährleisten.
-
Die Kombination von Merkmalen macht das Internet für
Angriffe besonders verletztlich. Ein möglicher Käufer gestohlener
Information kann anonym eine Anfrage gemeinsam mit seinem
öffentlichen Schlüssel versenden; mögliche Verkäufer können
dann die gewünschte Information mit diesem öffentlichen
Schlüssel verschlüsseln und sie versenden, wobei sie
angesichts des Wissens sicher sind, dass nur der Nachfragende
dazu in der Lage ist, sie zu entschlüsseln.
-
Die Existenz einer aktiven Bedrohung führt zu Erfordernissen
für ein privates Netzwerk, die sich deutlich vom
oberflächlich gesehenen ähnlichen Problem des Bereitstellens
zuverlässiger Dienste unterscheiden. Ein
Zuverlässigkeitsingenieur kann aus der geringen Wahrscheinlichkeit eines
bestimmten Effekts Nutzen ziehen und es wählen, nicht auf es zu
reagieren, da es so unwahrscheinlich ist. Ein
Sicherheitsingenieur kann dies nicht tun; eine Verletzlichkeit, wie
verborgen und unsicher sie auch immer sein mag, wird von der
Bedrohung aktiv herausgesucht, an Personen ähnlicher
Geisteshaltung veröffentlicht und immer wieder ausgenutzt, wenn
sie einmal entdeckt wurde. Es müssen daher Gegenmaßnahmen
entwickelt werden, die jede Verletzlichkeit eines Systems
wirkungsvoll ausschließen oder deren Ausnutzung verhindern.
Es wurde eine Anzahl von Gegenmaßnahmen dazu vorgeschlagen,
die Verletzlichkeit von Systemen in Netzwerken zu senken.
-
Diesen Gegenmaßnahmen sind drei Eigenschaften gemeinsam:
-
1) Es ist ein Geheimnis erforderlich, um ein Geheimnis zu
bewahren. Alle Mechanismen zum Absichern von Information
beruhen auf der Ausnutzung von Geheimnissen, die von
berechtigten Einzelpersonen gemeinsam genutzt werden und nicht
berechtigten verschwiegen werden. Die Geheimnisse können
innerhalb geschützter Hardware umgewandelt, komprimiert oder
verborgen werden, jedoch existiert in jeder
Sicherheitsarchitektur ein Satz von Werten, der, wenn er bekannt würde,
dazu führen würde, das gesamte System zu gefährden.
-
2) Es existieren immer verletztliche Stellen. Es ist eher
möglich, vollkommene Sicherheit zu erzielen als vollkommene
Zuverlässigkeit zu erzielen; tatsächlich ist dies viel
weniger möglich, da davon auszugehen ist, dass die Bedrohung
aktiv daran arbeitet, die Verletzlichkeiten des Systems zu
entdecken.
-
3) Bedrohung wachsen dauernd. Die Installation eines vorgegebenen
Satzes von Gegenmaßnahmen beseitigt die Bedrohung
nicht; sie spornt sie nur zu größeren Anstrengungen an, Wege
zum Umgehen derselben herauszufinden.
-
Diese drei gemeinsamen Faktoren führen dann zu den folgenden
Problemen für den Ingenieur betreffend Gegenmaßnahmen:
-
1) Schützen der Geheimnisse, die die Geheimnisse bewahren.
Dies ist das Erfordernis höchster Priorität, da der Verlust
dieser Werte zu katastrophalen Sicherheitsdurchbrechnungen
führen würde.
-
2) Es ist dafür zu sorgen, dass Verletzlichkeiten schwer
aufzufinden sind. Die Ausführungsform der
Sicherheitsmechanismen muss dergestalt sein, dass es für die Bedrohung
schwierig ist, Einzelheiten über ihre Funktion oder
Instanzen derselben, für die Versuche ausgeführt werden könne, zu
erlangen.
-
Die bisher vorgeschlagenen Gegenmaßnahmen haben sich darauf
konzentriert, entweder die Übertragung von Daten zu
verhindern oder die Daten unter Verwendung bekannter
Verschlüsselungsverfahren zu verschlüsseln, so dass es schwieriger ist,
sie zu gefährden.
-
Ein Verfahren, das zum Verhindern unberechtigter Ausnutzung
eines privaten Netzwerks durch interne oder externe
Bedrohung vorgeschlagen wurde, ist eine Internet-"Firewall".
"Firewalls" realisieren eine Sicherheitspolitik auf
Grundlage der Wegeleitungsinformation, wie sie in einzelnen Paketen
enthalten ist, die an ein Weitbereichsnetz und von diesem
übertragen werden. Sie schauen nur auf die Köpfe der Paket
und treffen dann Entscheidungen beruhend darauf, wohin ein
Paket geht und von wo es kommt. Typischerweise lenken
"Firewalls" Pakete an eine spezielle Anwendungsmaschine, die über
begrenzte Softwarekonfiguration verfügt. Diese
Anwendungsmaschine wird dann mit einer zweiten Wegeleiteinrichtung verbunden,
die den Zugriff auf einen speziellen Satz interner
Systeme beschränkt.
-
In Fig. 1 ist ein typisches "Firewall"-System 10 für das
Internet dargestellt. In Fig. 1 verfügt das System 10 über
eine Wegeleiteinrichtung 12, die über ein internes Netzwerk 14
mit Workstations 16 und 18 verbunden ist. Die
Wegeleiteinrichtung 12 ist auch mit einem Weitbereichsnetz 20 mit dem
Internet verbunden. Auf der Wegeleiteinrichtung 12 läuft
"Firewall"-Software für das Internet, die dazu vorgesehen
ist, Paket-gestützten Verkehr zu untersuchen und Pakete zu
entfernern oder umzuleiten, die vordefinierten Kriterien
genügen.
-
"Firewalls" reagieren auf Köpfe, nicht auf den Inhalt. Daher
sind sie Gegenstand verschiedener Angriffsformen. Zum
Beispiel kann ein Hacker 22 ein Paket mit einem Kopf aufbauen,
der wie ein Kopf aussieht, der von der Firewall
durchgelassen wird. Ein derartiges Paket rutscht unbemerkt durch die
Wegeleiteinrichtung 12 und an eine oder mehrere Workstations
16, 18. Außerdem kann eine Bedrohung 24 dazu in der Lage
sein, mittels des file transfer protocol ("FTP" =
Dateiübertragungsprotokoll) auf sensible Daten im Netzwerk 14
zuzugreifen. Wie oben angegeben, kann ein Käufer 26 gestohlener
Daten Usenet-Nachrichten dazu verwenden, korrupten oder
verärgerten Angestellten die Übertragung privater Daten
anzubieten. Schließlich kann eine Bedrohung 28 in Verbindung mit
einem aufgestachelten Angestellten 30 so arbeiten, dass
persönliche Information über eine verschlüsselte Email oder ein
anonymes FTP übertragen wird.
-
Daher bestehen bei der Vorgehensweise mit einer Internet-
Firewall die folgenden Nachteile:
-
1) Diese Vorgehensweise ist hinsichtlich Angriffen
verletzlich, die gefälschte Kopfinformation erstellen (wie durch
den obigen Hacker 22). Die Theorie derartiger Angriffe ist
gut bekannt; es ist nur eine Frage der Zeit, bevor
schlüsselfertige Scripts für ihre Installation im Internet global
verfügbar werden.
-
2) Eine "Firewall" ist eine
"Alles-oder-nichts"-Vorgehensweise hinsichtlich der Sicherheit. Wenn ein Angreifer die
"Firewall" durchbricht, liegt das interne Netzwerk auf der
anderen Seite nackt und ungeschützt gegen effektiv nicht
erkennbare Angriffe mit einem trojanischen Pferd da.
-
3) "Firewalls" sind schwierig korrekt zu konfigurieren, und
es ist noch schwieriger, sie sicher zu halten, da sie
umzukonfigurieren sind, wenn das interne Netzwerk modifiziert
wird.
-
4) "Firewalls" können keine Sicherheitsentscheidungen auf
Grundlage des Dateninhalts treffen, da sie die Daten erst
sehen, nachdem sie in Pakete unterteilt wurden und im
Verlauf der Übertragung umgeordnet wurden.
-
5) "Firewalls" begrenzen, auf willkürliche und irrationale
Weise, die Fähigkeit des Benutzers, mit dem Internea in
Wechselwirkung zu treten.
-
6) "Firewalls" erfordern für viele Internetdienste spezielle
"Proxy"-Software. Dies bedeutet, dass immer ein langsamer
und teurer Entwicklungsschritt dazu erforderlich ist, einen
neuen Dienst unter Verwendung der "Firewall"-Technik
"abzusichern".
-
7) "Firewalls" benötigen zusätzliche Hardware- und
Netzwerkverbindungen, wodurch die Kosten und der Verwaltungsoverhead
zunehmen.
-
Die bisher vorgeschlagenen Verschlüsselungs-Gegenmaßnahmen
konzentrierten sich auf die Verschlüsselung von Daten unter
Verwendung bekannter Verschlüsselungsverfahren, so dass es
schwieriger ist, sie zu gefährden. Verschlüsselung arbeitet
durch Ausführen mathematischer Transformationen an Daten in
solcher Weise, dass sie für einen externen Betrachter unverständlich
sind. Um die Daten wiederherzustellen, beruht die
Transformation auf einem zweiten Satz von Werten, die als
Schlüsselmaterial bezeichnet werden. In diesem Fall ist das
Schlüsselmaterial das Geheimnis, das die Geheimnisse
bewahrt. Da sowohl der Verfasser als auch der berechtige Leser
der Daten über das entsprechende Schlüsselmaterial verfügen
müssen, ist das zentrale Problem bei der Verschlüsselung die
Schlüsselverwaltung: die sichere und zuverlässige
Auslieferung entsprechenden Verschlüsselungsmaterials an beide Enden
der Verfasser-Leser-Achse.
-
Verschlüsselungstransformationen nutzen mathematische
Algorithmen, die sehr kompliziert und ausgeklügelt sind. Um für
Sicherheit in der echten Welt zu sorgen, ist es jedoch auch
erforderlich, dass die Ausführungsform oder Realisierung des
Algorithmus nicht nur korrekt sondern auch frei von
verletzlichen Stellen oder Nebeneffekten ist, die von der Bedrohung
ausgenutzt werden können.
-
Eine allgemein genutze Klasse von
Verschlüsselungsalgorithmen wird als solche mit geheimem Schlüssel oder als
symmetrisch bezeichnet. Derartige Algorithmen werden als
symmetrisch bezeichnet, da sowohl zum Verschlüsseln (Scrambeln)
als auch zum Entschlüsseln (Descrambeln) dasselbe Element
oder derselbe Wert des Schlüsselmaterials verwendet wird.
Sie werden als Geheimschlüssel bezeichnet, da das
Schlüsselmaterial sowohl vom Verfasser als auch vom Leser einer
Kommunikation geheimgehalten werden muss.
Geheimschlüsselsysteme erfordern einen großen Grad an Vorübereinkunft zwischen
dem Verfasser und dem Leser, damit identische Werte des
Schlüsselmaterials vor einem Kommunikationsvorgang vorhanden
sind. Infolgedessen ist Verschlüsselung mit geheimem
Schlüssel am besten für Kommunikation innerhalb einer
geschlossenen Gemeinschaft geeignet, wobei die Mitgliedschaft in der
Gemeinschaft vorab bekannt ist. Einfache Änderungen der
Schlüssel-Verteilungsmuster können dazu verwendet werden,
Einzelpersonen in die Gemeinschaft aufzunehmen oder aus ihr
auszuschließen.
-
Eine andere Klasse von Verschlüsselungsalgorithmen wird als
solche mit öffentlichem Schlüssel oder als asymmetrisch
bezeichnet. Derartige Algorithmen werden als asymmetrisch
bezeichnet, da zwei mathematisch in Zusammenhang stehende
Elemente des Schlüsselmaterials benötigt werden: ein
öffentlicher Schlüssel, der zum Verschlüsseln verwendet wird,
jedoch nicht zum Entschlüsseln (Descrambeln) verwendet werden
kann, und ein privater Schlüssel, der der einzige Wert ist,
der entschlüsseln kann. Der entsprechende private Schlüssel,
der das Geheimnis ist, das das Geheimnis bewahrt, wird
verschlossen gehalten. Der öffentliche Schlüssel kann, d er
nicht zum Entschlüsseln verwendet werden kann, in weitem
Umfang verteilt werden. Durch diese Maßnahme kann eine
geheime Meldung ohne spezielle Vorübereinkunft gesendet
werden: der Verfasser erhält der öffentlichen Schlüssel des
Lesers von irgendeinem Dienst, der einem Telefonverzeichnis
ähnlich arbeitet, er verschlüsselt die Meldung und er sendet
sie mit dem Wissen, dass nur der Leser über den privaten
Schlüssel verfügt, der sie entschlüsseln kann.
-
Es kann auch eine Form eines Algorithmus mit öffentlichem
Schlüssel dazu verwendet werden, Daten zu autorisieren oder
zu unterzeichnen. Diese Funktion eines privaten Schlüssels
wird dazu verwendet, einen Wert zu berechnen, der in
nxathematischem Zusammenhang mit den Daten steht und als digitale
Signatur unterzeichnet wird. Der private Schlüssel wird
verwendet, damit nur der Besitzer des privaten Schlüssels den
charakteristischen Wert der Signatur erstellen kann. Die
mathematischen Operationen sind dergestalt, dass der
entsprechende öffentliche Schlüssel dazu verwendet werden kann, die
Gültigkeit der Signatur zu bestimmen. So kann nur eine Person
unterzeichnen, jedoch kann jede Einzelperson, die auf
den Dienst für öffentliche Schlüssel zugreift, die Sigatur
überprüfen.
-
Verschlüsselung mit öffentlichen Schlüsseln ist für
Kommunikation innerhalb einer offenen Gemeinschaft am besten
geeignet, wo es erwünscht ist, ohne vorherige Übereinkunft über
geheime und/oder autorisierte Kommunikation zu verfügen. Das
Hinzufügen von Einzelpersonen zur Gemeinschaft ist relativ
einfach, jedoch ist das Ausschließen von Einzelpersonen
schwierig.
-
Verschlüsselung findet innerhalb der Informationssicherheit
die folgenden Anwendungen:
-
1) Schutz von Kommunikations-Übertragungsstrecken, in denen
Übertragungsvorgänge leicht abgefangen werden können.
-
2) Schutz von Emails, wenn Mitteilungen über Sites
weitergeleitet werden, die nicht unter der Kontrolle der Verfassers
oder des berechtigten Lesers der Mitteilung stehen.
-
3) Schutz von Daten, die auf austauschbaren Medien oder
Medien gespeichert sind, die der Möglichkeit eines
körperlichen Diebstahls ausgesetzt sind.
-
4) Autorisierung, wo das Wissen um ein gemeinsam genutztes
Geheimnis dazu verwendet wird, die Identität einer
Einzelperson oder einer Maschine zu klären.
-
Die ausgeklügeltsten Vorgehensweisen zum Schützen von über
das ungesicherte Netzwerk des Internets übertragenen Daten
bestehen in der Anwendung von globale Verschlüsselung in der
Workstation des Clients, so dass Daten an der Quelle
verschlüsselt und am Ziel entschlüsselt werden. Die
Hauptanwendung dieser Vorgehensweise besteht bei Emails. Globale
Verschlüsselung kann in Software, wie im Privacy-Enhanced-Mail-
System, oder in persönlichen Berechtigungssystemen
realisiert sein, die Verschlüsselungsmechanismen mit einem Zertifikat
einer Einzelperson kombinieren, wie beim Programm MO-
SAIC.
-
Eine weniger ausgeklügelte Vorgehensweise besteht im
Anwenden einer Verschlüsselung nur im Weitbereichsnetz.
Historisch gesehen, existierten zwei Vorgehensweisen hierfür, die
als Übertragungsstrecke-Verschlüsselung und als End-to-End-
Verschlüsselung bezeichnet werden.
-
Bei der Vorgehensweise der
Übertragungsstrecke-Verschlüsselung werden alle aus einem Netzknoten herkommenden und auf
das Netz laufenden Bits verschlüsselt. Dies erfordert es,
dass der Zielknoten über dieselbe
Verschlüsselungsvorrichtung und kompatibles Schlüsselmaterial wie die Quelle
verfügt. Der Nachteil der Übertragungsstrecke-Verschlüsselung
besteht darin, dass alle Bits verschlüsselt werden,
einschließlich derjenigen, die dazu verwendet werden, Pakete
über ein Netzwerk mit Paketvermittlung zu leiten. Dies
verhindert tatsächlich das Funktionieren eines Netzwerks mit
Paketvermittlung.
-
Um die Verwendung einer Verschlüsselungstechnik in
Netzwerken mit Paketvermittlung zu ermöglichen, wurde die Technik
der End-to-End-Verschlüsselung entworfen. Bei dieser Technik
wird nur der Paketinhalt verschlüsselt, und die kritische
Wegeleitungsinformation verbleibt in Klartext. Die "Enden"
bei der End-to-End-Verschlüsselung sind typische
Mehrbenutherserver und keine individuellen Workstations, so dass das
Problem, an jedem Ende kompatibles Schlüsselmaterial zu
erhalten, auf handhabbare Proportionen verringert ist.
-
Weder Datenverschlüsselung noch Verwendung von Internet-
"Firewalls" berücksichtigen die Ansammlung verletzlicher
Stellen wie für die Verbindung eines internen, privaten
Netzwerks mit einem externen Weitbereichsnetz wie dem Internet
spezifisch. Erforderlich sind eine umfassende und
integrierte Sicherheitspolitik und eine Vorrichtung zum
Verhindern der Ausnutzung privater Netzwerkressourcen durch sowohl
interne als auch externe Bedrohungen.
-
Erscheinungsformen der Erfindung sind in den beigefügten
Ansprüchen dargelegt. Gemäß einer Ausführungsform der
Erfindung ist ein sicheres Zugriffsystem für ein großes Gebiet
oder einen weiten Bereich mit einem sicheren Computer, einem
internen Netzwerk und einer über dieses mit dem sicheren
Computer verbundenen Workstation geschaffen. Der sichere
Computer verfügt über ein Interface für das interne Netz,
ein Interface für das öffentliche Netz, einen Programmcode
für das öffentliche Netz, der dazu verwendet wird, über das
Interface für das öffentliche Netz mit einem öffentlichen
Netz zu kommunizieren, Programmcode für das private Netz,
der dazu verwendet wird, über das Interface über das interne
Netz mit der Workstation zu kommunizieren, und einen
Sicherheitspolitik-Programmcode zum Durchsetzen eines
Sicherheitsmechanismus mit Typdurchsetzung, um den Zugriff eines
Prozesses auf Daten zu beschränken.
-
Auch ist ein Verfahren zum Schützen eines mit einem
ungesicherten externen Netz verbundenen Computersystems offenbart.
Das Verfahren umfasst die Schritte des Bereitstellens eines
sicheren Computers, der über Sicherheitspolitik-Progranuncode
zum Durchsetzen eines Sicherheitsmechanismus mit
Typdurchsetzung verfügt, um den Zugriff eines Prozesses auf Daten zu
beschränken, des Verbindens des sicheren Computers auf Basis
des Durchsetzungstyps mit dem privaten Netz sowie des
Begründens einer sicheren Pipeline für die Übertragung von
Daten und Programmen zwischen dem privaten Netz und dem
externen Netz über den sicheren Computer. Der Schritt des
Begründens einer sicheren Pipeline beinhaltet die Schritte des
Platzierens von Prozessen innerhalb von Domains, wobei der
Schritt des Platzierens von Prozessen innerhalb von Domains
den Schritts des Zuweisens von vom externen Netz empfangenen
Prozessen zu einer externen Domain beinhaltet, des Zuweisens
von Typen zu Dateien und des Beschränkens des Zugriffs durch
Prozesse innerhalb der externen Domain auf bestimmte
Dateitypen.
-
Auch wird ein sicherer Server zur Verwendung beim
Kontrollieren des Zugriffs auf innerhalb eines Netzes gespeicherte
Daten beschrieben. Der sichere Server verfügt über einen
Verwaltungskernel und einen Betriebskernel, wobei der
Betriebskernel einen Sicherheitspolitik-Programmcode zum
Durchsetzen des Sicherheitsmechanismusses mit
Typdurchsetzung enthält, um den Zugriff eines vom externen Netz
empfangenen Prozesses auf im internen Netz gespeicherte Daten zu
beschränken, wobei der Verwaltungskernel Ausführungsvorgänge
nur vornehmen darf, während er vom internen Netz getrennt
ist.
-
Vorzugsweise verfügt der sichere Server über einen
Prozessor, ein Interface für das interne Netz, das mit dem
Prozessor verbunden ist, um Kommunikation in einem internen Netz
auszuführen, und eine Schnittstelle für ein externes Netz,
die mit dem Prozessor verbunden ist, um Kommunikation in
einem externen Netz auszuführen. Der Prozessor enthält
Serverprogrammcode zum Übertragen von Daten zwischen den
Interfaces für das interne und das externe Netz sowie
Sicherheitspolitik-Programmcode zum Durchsetzen eines
Sicherheitsmechanismus mit Typdurchsetzung zum Beschränken des Zugriffs
eines vom externen Netz empfangenen Prozesses auf im internen
Netz gespeicherte Daten.
-
Außerdem werden ein System und ein Verfahren für die sichere
Übertragung von Daten zwischen einer mit einem privaten Netz
verbundenen Workstation und einem mit einem ungesicherten
Netz verbundenen Ferncomputer beschrieben. In das private
Netz ist ein sicherer Computer eingeführt, der als
Netzübergang zum ungesicherten Netz dient, und zur Workstation ist
ein Client-Subsystem hinzugefügt, um die Übertragung von
Daten von der Workstation zum sicheren Computer zu
kontrollieren. Der sichere Computer enthält ein Interface für das
private Netz, das mit diesem verbunden ist, ein Interface für
ein ungesichertes Netz, das mit diesem verbunden ist, wobei
das Interface für das ungesicherte Netz eine Einrichtung zum
Verschlüsseln von Daten enthält, die von der ersten
Workstation an den Ferncomputer zu übertragen sind, und eine
Serverfunktion zum Übertragen von Daten zwischen dem Interface
für das private Netz und dem Interface für das ungesicherte
Netz.
-
Gemäß einer anderen Ausführungsform wird ein Verfahren für
sichere Internetzwerk-Kommunikation über ein ungesichertes
Netz beschrieben. Mit einem ersten und einem zweiten
privaten Netz sind ein erster bzw. ein zweiter sicherer Computer
verbunden, und sie sind miteinander über das ungesicherte
Netz verbunden. Der erste und der zweite sichere Computer
enthalten ein Interface für ein privates Netz und ein
Interface für ein ungesichertes Netz für sichere Übertragungi von
Daten vom ersten sicheren Computer zum zweiten sicheren
Computer über das ungesicherte Netz. Das Interface für das
ungesicherte Netz enthält eine Einrichtung zum Verschlüsseln
von Daten, die vom ersten sicheren Computer an den zweiten
sicheren Computer zu übertragen sind. Zu mit jedem privaten
Netzwerk verbundenen Workstations ist ein Client-Subsystem
hinzugefügt, um die Übertragung von Daten von der
Workstation zum jeweiligen sicheren Computer zu kontrollieren.
Kurze Beschreibung der Zeichnungen
-
Fig. 1 ist eine Darstellung einer "Firewall" auf Wegeleitungsbasis;
-
Fig. 2 ist ein Blockdiagramm auf Systemebene für ein
Weitbereichs-Zugriffssystem gemäß der Erfindung;
-
Fig. 3 ist ein detaillierteres Diagramm eines
Ausführungsbeispiels des in ein Netzwerk eingeschlossenen
Computersystems der Fig. 2;
-
Fig. 4 zeigt ein Ausführungsbeispiel des Systems der Fig.
3;
-
Fig. 5a und 5b zeigen den Mechanismus mit Typdurchsetzung,
der dazu verwendet wird, den Zugriff, die Modifizierung
und/oder die Ausführung von Datenobjekten ohne Erlaubnis in
einem System wie dem in Fig. 3 dargestellten zu verhindern;
-
Fig. 6 ist eine Tabelle von Quellencodenamen von Untertypen;
-
Fig. 7 ist eine Tabelle von Zugriffsattributen;
-
Fig. 8 ist eine Tabelle neuer und effektive Domains, die
sich aus speziellen Systemaufrufen ergeben;
-
Fig. 9 ist eine Tabelle, die die Privilegien auflistet, die
einer Domain gewährt werden können;
-
Fig. 10 ist eine Darstellung von Schritten beim Bestimmen
von Zugriffsprivilegien von der DDT;
-
Fig. 11 ist eine Darstellung von Schritten beim Bestimmen
der Domains, auf die ein Prozess wechseln kann, von der DIT;
-
Fig. 12 ist ein Blockdiagramm auf Systemebene für ein
Weitbereichsnetz, das gemäß der Erfindung zwei organisatorische
Enklaven verbindet; und
-
Fig. 13 ist ein Blockdiagramm auf Systemebene für ein
anderes Ausführungsbeispiel eines Weitbereichsnetzes, das gemäß
der Erfindung zwei organisatorische Enklaven verbindet.
Detaillierte Beschreibung der bevorzugten
Ausführungsbeispiele
-
In der nachfolgenden detaillierten Beschreibung bevorzugter
Ausführungsbeispiele wird auf die beigefügten Zeichnungen
Bezug genommen, die einen Teil derselben bilden und in denen
zur Veranschaulichung spezielle Ausführungsbeispiele
dargestellt sind, gemäß denen die Erfindung realisiert werden
kann. Es ist zu beachten, dass andere Ausführungformen
verwendet werden können und dass strukturelle Änderungen
vorgenommen werden können, ohne vom Schutzumfang der durch die
beigefügten Ansprüche definierten Erfindung abzuweichen.
-
Ein Beispiel eines vorhandenen Systems zum Übertragen
codierter Mitteilungen zwischen Computernetzen ist im für
Vidrascu et al. mit der Nummer 554,182 erteilten europäischen
Patent mit dem Titel "Process, Apparatus and Device for the
Coding of Messages Transmitted Between Interconnected
Networks" beschrieben. Vidrascu beschreibt das Übertragen von
Mitteilungen zwischen Computernetzen, wobei die Netze unter
Verwendung eines speziellen Netzwerkprotokolls durch Brücken
verbunden sind. Gemäß Vidrascu bleibt beim Codieren jeder
Mitteilung der Kopfabschnitt der Mitteilung uncodiert, um
die Übertragung über die Brücken zu erleichtern. Das System
gemäß Vidrascu kontrolliert nicht den Zugriff auf sichere
Systeme, sondern es ermöglicht vielmehr die Zustellung
codierter Mitteilungen zwischen Netzen, die sichere oder
ungesicherte Systeme enthalten können. Das System gemäß Vidrascu
ist auf ein Vereinfachen der Zustellung codierter Mitteilungen
in einer verteilten Umgebung gerichtet. Vidrascu
offenbart nicht das Kontrollieren des Zugriffs aus sichere
Computersysteme oder des Kontrollierens des Zugriffs durch
Programme und Nutzer auf Daten innerhalb sicherer
Computersysteme.
-
In Fig. 2 ist ein sicheres Weibereich-Zugriffssystem 40
dargestellt. In Fig. 2 verbindet ein internes Netz 42
Workstation 44 und 46 mit einem sicheren Computer 48. Das interne
Netz 42 ist durch den sicheren Computer 48 von einem
Weitbereichsnetz 43 (wie dem Internet) getrennt. Der sichere
Computer 48 ist auch über eine spezielle Leitung 51 mit einer
Systemverwalter-Workstation 50 und über ein serielles
Interface 54 mit einer Workstation 52 verbunden. Der sichere
Computer 48 und die Workstation 44, 46, 50 und 52 bilden eine ·
organisatorische Enklave 56 betreffend Daten. Diese Enklave
ist dahingehend eine "logische" Enklave, dass es nicht
erforderlich ist, dass sich die geschützten Benutzer und Daten
körperlich am selben Ort befinden, obwohl die Verwendung
derartiger körperlicher Sicherheitsmaßnahmen sicher möglich
ist.
-
Es ist wichtig, das Netzwerk 42 vom Netzwerk 43 zu trennen.
Um dies auszuführen, setzt der sichere Computer 48 an der
Schnittstelle zwischen dem internen Netz 42 und dem
Weitbereichsnetz 43 eine organisatorische Sicherheitspolitik. Er
muss dies angesichts der aktiven Bedrohung durch sowohl
Insider als auch Outsider, sei es durch direkte Manipulation,
das Einschleusen bösartiger Software oder eine Kombination
hiervon, vornehmen. Das System muss seine Clients gegen
Angriffe aus dem Weitbereichsnetz 43 schützen, den durch
subversive oder inkompetente Clients zugefügten Schaden
begrenzen und dazu in der Lage sein, mit Clients anderer Systeme
40 in Wechselwirkung zu treten, die über das
Weitbereichsnetz 43 angeschlossen sind. Es tut dies durch Umgeben des
Benutzers mit einem Satz von Schutzmaßnahmen, die die
organisatorische Enklave 56 bilden.
-
Die organisatorische Enklave 56 besteht aus zwei
Hauptelementen: Client-Subsystem, das auf den Workstations 44, 46
und 52 läuft, und einem Satz von Servern und Filtern, die
betreffend den sicheren Computer 48 arbeiten. Bei einem
Ausführungsbeispiel ist das jede Workstation 44 oder 46 mit dem
sicheren Computer 48 verbindende interne Netz 42 durch
lokale Verschlüsselung geschützt und berechtigt; Globale
Verschlüsselung wird zum Schutz und der Autorisierung im
Weitbereichsnetz 43 verwendet.
-
Fig. 3 veranschaulicht ein Ausführungsbeispiel des in Fig. 2
dargestellten sicheren Weitbereich-Zugriffssystems 40. In
Fig. 3 enthält eine über das private Netz 64 (z. B. ein
internes Netz 42 oder ein serielles Interface 54) mit dem
sicheren Computer 48 verbundene Workstation 63 (z. B. die
Workstation 44, 46 oder 52) Programmcode für Kommunikation
mit dem sicheren Computer 48 und über diesen mit Computern,
die mit dem Weitbereichsnetz 43 verbunden sind. Das private
Netz 64 kann irgendeine Kommunikationseinrichtung, sei sie
leitungsgebunden oder drahtlos, sein, die es der Workstation
63 erlaubt, Daten zwischen ihr und dem sicheren Computer 48
zu übertragen. Beim in Fig. 2 dargestellten Beispiel sind
zwei Ausführungsformen des privaten Netzes 64 dargestellt
(das interne Netz 42 und das serielle Interface 54). Es ist
ersichtlich, dass andere Ausführungsformen des privaten
Netzes 64 realisiert werden können und dass das sich ergebende
System 40 immer noch in den Schutzumfang der durch die
beigefügten Ansprüche definierten Erfindung fällt.
-
Bei einem Ausführungsbeispiel enthält der Programmcode in
der Workstation 63 ein Client Interface-Modul 60 und ein
Clientprotokoll-Modul 62. Das Client Interface-Modul 60
nimmt Befehle vom Benutzer oder Client an und zeigt sie
diesem an. Es kann in einem grafischen Benutzerinterface (GUI =
Graphical User Interface), einem Befehlsleitungs-Interface
oder irgendeiner Kombination dieser beiden realisiert sein.
Typische Befehle würden dazu dienen, eine elektronische:
Mitteilung zu erstellen, eintreffende Mitteilungen zu
untersuchen, Dateien von anderen Orten anzufordern, oder für
irgendwelche andere Operationen, die für die Nutzung eines
Computernetzes typisch sind.
-
Das Clientprotokoll-Modul 62 realisiert das zur
Kommunikation zwischen der Workstation 63 und dem sicheren Computer
48 verwendete Protokoll. Das Clientprotokoll-Modul 62 kann
entweder in Software oder Hardware oder einer Kombination
hiervon realisiert sein. Bei einem Ausführungsbeispiel hat
eine in das Protokollmodul 62 integrierte lokale
Verschlüsselungsfunktion spezielle Aufgaben des Schützens und
Autorisierens des Verkehrs nur im internen Netz 64. Für
verschiedene Clients können abhängig von Client-Vorlieben und
solchen Faktoren wie der Art der physikalischen Verbindung
(Einwählen, lokales Netzwerk usw.) zwischen der
Client-Workstation und dem sicheren Computer verschiedene Protokolle
und verschiedene Verschlüsselungsverfahren verwendet werden.
Es ist am wahrscheinlichsten, jedoch nicht erforderlich,
dass die geschlossene Art einer organisatorischen Client-
Gemeinschaft (d. h. der organisatorischen Enklave 56) die
Verwendung eines Verschlüsselungsverfahrens mit geheimem
Schlüssel in diesem Modul begünstigt. Bei einem
Ausführungsbeispiel ist die Funktion mit lokaler Verschlüsselung in
Software realisiert, um Nutzen aus der Flexibilität der
Software zu ziehen und Interbetreibbarkeit-Vorteile
gegenüber Hardware zu erlangen.
-
Bei einem anderen Ausführungsbeispiel ist die Funktion der
örtlichen Verschlüsselung als Modul gesondert vom Clientprotokoll-Modul
62, jedoch mit diesem arbeitend, realisiert.
-
Im sicheren Weitbereich-Zugriffssystem 40 der Fig. 3 wird
auf dem sicheren Computer 48 laufender Programmcode dazu
verwendet, eine Kommunikation mit dem Clientprotokoll-Modul
62 über das private Netz 64 zu bewerkstelligen. Beim in Fig.
3 dargestellten Ausführungsbeispiel ist der für
Kommunikation mit dem Clientprotokoll-Modul 62 verwendete
Programmcode Teil des Privatnetzprotokoll-Moduls 66. Bei einem
derartigen Ausführungsbeispiel läuft das Modul 66 auf dem
sicheren Computer 48 und wirkt mit dem Clientprotokoll-Modul 62
zusammen, um für geschützte und autorisierte Kommunikation
mit der Workstation 63 zu sorgen.
-
In ähnlicher Weise wird der auf dem sicheren Computer 48
laufende Programmcode dazu verwendet, Kommunikation über ein
Interface 72 für das öffentliche Netz mit dem öffentlichen
Netz 74 (z. B. dem Internet) auszuführen. Beim in Fig. 3
dargestellten Ausführungsbeispiel ist der für Kommunikation
mit dem öffentlichen Netz 74 verwendete Programmcode Teil
der Protokolle des öffentlichen Netzes und des
Verschlüsselungsmoduls 70. Bei einem derartigen Ausführungsbeispiel
läuft das Modul 70 auf dem sicheren Computer 48, und es wird
dazu verwendet, für geschützte und autorisierte
Kommunikation mit Einzelpersonen, Sites und anderen sicheren
Weitbereich-Zugriffssystemen 40 im öffentlichen Netz 74 zu sorgen.
Es können verschiedene Protokolle und
Verschlüsselungsverfahren verwendet werden, wenn mit verschiedenen Teilnehmern
im öffentlichen Netz 74 kommuniziert wird. Es ist am
wahrscheinlichsten, jedoch nicht erforderlich, dass die offene
Art des öffentlichen Netzes 74 die Verwendung eines
Verschlüsselungsverfahrens mit öffentlichem Schlüssel in diesem
Modul begünstigt.
-
Schließlich wird der auf dem sicheren Computer 48 laufende
Programmcode dazu verwendet, Server und Filterfunktionen im
sicheren Computer 48 zu realisieren. Beim in Fig. 3
dargestellten Ausführungsbeispiel ist der zum Realisieren des
Servers und der Filterfunktionen verwendete Programmcode
Teil von Gegenmaßnahmen 48 betreffend Server und Filter.
Infolgedessen wirken die Gegenmaßnahmen betreffend Server und
Filter im sicheren Computer 48. Sie sorgen für
Benutzerdienste, wie die Zustellung von Emails oder die Übertragung
von Dateien, und sie erzwingen auch die organisatorische
Sicherheitspolitik durch Filtern der Informationsübertragung
und durch Abfangen unzulässiger Inhalte, Markierungen und/
oder Adressen.
Verschlüsselung in sicheren Systemen
-
Die Hauptforderung für sichere Verwendung eines
Verschlüsselungsverfahrens besteht in einem sicheren und zuverlässigen
Verfahren zum Verteilen des Schlüsselmaterials. Die
Zuverlässigkeit ist so wichtig wie die Sicherheit, da dann, wenn
das Material nicht verfügbar ist, die Benutzer des Systems
vor der unangenehmen Wahl stehen, entweder Verschlüsselung
nicht zu verwenden (und dadurch ihre Daten einer Gefährdung
oder Modifizierung auszusetzen) oder nicht zu senden. Die
Erfordernisse betreffend die Schlüsselverwaltung in einem
System mit geheimem Schlüssel kreisen um die vorab
festgelegte Verteilung gemeinsam genutzter Geheimnisse. Die
Erfordernisse betreffend die Schlüsselverwaltung in Systemen mit
öffentlichem Schlüssel drehen sich darum, dass gewährleistet
wird, dass der Verfasser eines zu verschlüsselnden Dokuments
den öffentlichen Schlüssel erhält, der dem privaten
Schlüssel des Lesers entspricht. Da die Konsequenzen des Erhaltens
des falschen öffentlichen Schlüssels in einer Durchbrechung
der Sicherheit bestehen können, werden öffentliche Schlüssel
durch eine Notar oder eine örtliche Autorität unterzeichnet,
die ihre Gültigkeit bestätigt. Derartige unterzeichnete
öffentliche
Schlüssel, ohne andere wahlweise Information zum
Eigentümer des entsprechenden privaten Schlüssels werden als
Zertifikate bezeichnet.
-
Ein wirkungsvolles Schlüsselverwaltungssystem, und in
erweitertem Sinn jede effektive Nutzung von Verschlüsselung in
einem Computernetz, muss über Maßnahmen zum Überwinden der
folgenden Probleme verfügen:
-
1) Widerruf. Es muss möglich sein, Schlüsselmaterial
"zurückzunehmen", damit einer Einzelperson, die einmal
berechtigt war, diese Berechtigung entzogen werden kann.
-
2) Not-Rückschlüssel. Es muss möglich sein, die Berechtigung
einer Einzelperson "wiederzubeleben", wenn das
Schlüsselmaterial, das die Berechtigung gewährt, verloren geht oder
beschädigt wird.
-
3) Reisender Benutzer. Schlüsselmaterial, das einer
Einzelperson Berechtigung verleiht, muss sich über das Netz
bewegen, wenn die Einzelperson ihren Ort ändert.
-
Theoretisch sollte die Sicherheit eines
Verschlüsselungsmechanismus alleine auf der Geheimhaltung des kritischen
Schlüsselmaterials beruhen (das gesamte in einem System mit
geheimem Schlüssel, nur der private Teil in einem System mit
öffentlichem Schlüssel). In der Praxis ist es erforderlich,
den Schutz des Verschlüsselungsmechanismus zu erhalten. Dies
gilt insbesondere dann, wenn die Verschlüsselungsvorrichtung
teilweise oder vollständig durch ein Computersystem
kontrolliert wird, das unter Verwendung bösartiger Software
unterminiert werden kann. Derartige bösartige Software könnte
dafür sorgen, dass die Verschlüsselungsvorrichtung entweder
körperlich, durch Umleiten sensible Daten um sie herum, oder
logisch, dadurch, dass dafür gesorgt wird, dass der
zeitlichen Lage oder einer anderen Eigenschaft des Ausgangssignals
ein kohärentes Muster überlagert wird, umgangen wird. Dies
ist kein kryptografisches Problem an sich, jedoch eher ein
solches, das im Systemzusammenhang betreffend
Verschlüsselung Kombination mit möglicherweise verletzlichen Computern
auftritt.
-
Im sicheren Weitbereich-Zugriffssystem 40 der Fig. 2 und 3
liegt die Last des Aufrechterhaltens des Schutzes des
Verschlüsselungsmechanismus auf dem sicheren Computer 48. Der
sichere Computer 48 kann ein beliebiger Typ einer Maschine
sein, deren Merkmale und/oder Realisierung es erlauben, dem
Betrieb der sicherheitsrelevanten Funktionen zu vertrauen.
Vertrauenswerte Computersysteme wurden vorgeschlagen, um den
Zugriff ausgesiebter Information auf solche zu beschränken,
die über ausreichenden Erlaubnisraum verfügen. Derartige
Systeme hängen von der Erkennung des Benutzers, der
Bestätigung (durch ein Passwort, biologische Messungen usw.) der
Identität des Benutzers ab, und sie beschränken den
Dateizugriff des Benutzers auf solche Dateien, für die er
Zugriffsrechte hat. Derartige Systeme sind in den für Boebert et al.
erteilten US-Patenten Nr. 4,621,321; 4,713,753 und 4,701,840
beschrieben, die auf die Rechtsnachfolgerin im vorliegenden
Fall übertragen sind.
-
Typischerweise sorgen sichere Computer wie der sichere
Computer 48 durch spezielle Hardware und Software für
Sicherheitsmaßnahmen gegen direkte Angriffe auf dem sicheren
Computer laufenden Programmcode. Sie wurden dazu entwickelt,
die folgenden zwei Aufgaben zu erfüllen:
-
1) Beschränken des Privilegs von Benutzern in einer
gemeinsam genutzten oder Mehrnutzer-Computerinstallation, so dass
bösartige Benutzer keinen Schaden oder eine Gefährdung
hervorrufen können und die Auswirkung von Benutzerfehlern
minimiert ist; und
-
2) Verhindern eines Schadens oder einer Beeinträchtigung,
die sich aus der Ausführung bösartiger oder fehlerhafter
Software ergeben könnte.
-
Es existierten zwei Vorgehensweisen zum Lösen der letzteren
Aufgabe: Ausschluss, womit versucht wird, den Eintritt
bösartiger Software in die Maschine zu verhindern, und
Eingrenzung, bei der die Software in die Maschine gelassen wird und
versucht wird, ihre Auswirkungen zu begrenzen. Vorhandene
sichere Computer fallen in drei weite Klassen:
-
1) Sichere Computer mit mehreren Ebenen, die eine
Eingrenzungspolitik anwenden, die gemäß dem System des
US-Verteidigungsministeriums für Datenklassifizierung und persönliche
Unbedenklichkeitseinstufungen aufgebaut ist. Ein sicherer
Computer mit mehreren Ebenen (MLS = Multi-Level Secure) ist
dazu in der Lage, Daten variabler Sensibilität und Benutzer
variabler Berechtigungsgrade zu erkennen und dafür zu
sorgen, dass Benutzer Zugriff nur auf diejenigen Daten
erlangen, für die sich berechtigt sind. Zum Beispiel kann ein
MLS-Computer den Unterschied zwischen Firmeneigentum und
öffentlichen Daten erkennen. Er kann auch zwischen
Benutzern, die Firmenangestellte sind und solchen Benutzern
unterscheiden, die Kunden sind. Daher kann ein MLS-Computer
dazu verwendet werden, dafür zu sorgen, dass Daten, die
Firmeneigentum sind, nur für Benutzer zugänglich sind, die
Firmenangestellte sind.
-
2) Sichere Computer mit Typdurchsetzung, die eine
Eingrenzungspolitik auf Grundlage von Datenflüssen durch Software-
Subsysteme in der Maschine anwenden.
-
3) Spezielle sichere Computer, die eine Ausschlusspolitik
anwenden, um zu gewährleisten, dass keine bösartige Software
in sie eingeschleust wird, und die dann spezielle
sicherheitsbezogene Funktionen ausführen.
-
Das sichere Weitbereich-Zugriffssystem 40 der Fig. 2 und 3
kann eine beliebige dieser Maschinenklassen nutzen, obwohl
es am geeignetesten ist, wenn die Realisierung auf einem
sicheren Computer mit Typdurchsetzung erfolgt.
-
Für einen sichere Einzelcomputer gelten die folgenden
Voraussetzungen für sicheren Gebrauch:
-
1) Schutz des Mechanismus: Die Sicherheitsmechanismen,
insbesondere die durch Software realisierten, müssen gegen
unerlaubte Eingriffe oder unberechtigte Modifizierung
geschützt werden. Da Softwaremechanismen im Allgemeinen
häufiger Aktualisierung und Verbesserung unterliegen, besteht das
Erfordernis vertrauensvoller Verteilung, d. h. einer
Maßnahme, durch die Verwalter darauf vertrauen können, dass die
Software, die sie installieren, korrekt und sauber ist.
-
2) Benutzeridentifizierung: Die Sicherheitsmechanismen
entscheiden häufig auf Grundlage einer Einzelperson, in deren
Auftrag eine Aktion ergriffen wird, ob die Aktion zulässig
ist oder nicht. Es muss ein Verfahren existieren, durch das
die Identität eines Benutzers bescheinigt werden kann.
-
Im Fall eines sichere Einzelcomputer reichen physikalische
Kontrollen typischerweise aus, Mechanismen zu schützen, und
einfache Methoden wie Passwörter reichen aus,
Benutzerkennungen zu bestätigen. Designer sicherer Computer gehen davon
aus, dass unberechtigte Einzelpersonen eine Anzahl von
Maßnahmen, wie bösartigen Code und aktive und passive
Leitungsanzapfungen, verwenden, um ihre Kontrollen zu umgehen.
Vertrauenswürdige Subsysteme eines sicheren Computers müssen
daher so konzipiert sein, dass sie bösartiger Software
standhalten, die auf dem nicht vertrauenswürdigen Subsystem
ausgeführt wird, um die Wirkungen der bösartigen Software
einzuschränken und sie harmlos zu machen. Zum Beispiel
machen vertrauenswürdige Computersysteme auf Grundlage von
Hostcomputern wie einem sicheren Computer mit mehreren
Ebenen (MLS) Sicherheitsdurchbrüche im Hostcomputer dadurch
schwieriger, dass sie das System unterteilen, um
sicherheitskritische (vertrauenswürdige) Subsysteme von nicht
sicherheitskritischen (nicht vertrauenswürdigen) Subsystemen
zu trennen. Auf ähnliche Weise können bei sicheren Computern
mit Typdurchsetzung (TE = Type Enforcing) innerhalb dieses
sicheren Computers vorhandene ausführbare Objekte nur dann
ausgeführt werden, wenn die die Ausführung anfordernde
Person Ausführungsprivilegien für dieses ausführbare Objekt
hat. Eine weitere Sicherheitsebene kann dadurch erzielt
werden, dass die Ausführung jedweder ausführbarer Objekte
verhindert wird, die nicht ausdrücklich von einem
vertrauenswürdigen ausführbaren Objekt oder einem Systemverwalter als
vertrauenswürdiges ausführbares Objekt erkannt wurden.
-
Bei einem Ausführungsbeispiel eines Systems 40 auf TE-Basis
sind nur vertrauenswürdige ausführbare Objekte zur
Ausführung innerhalb des sicheren Computers 48 zugelassen. Bei
einem derartigen Ausführungsbeispiel müssen die ausführbaren
Objekte zuerst von einem Systemverwalter durchgesehen und
für gültig erklärt werden, bevor ihnen
Ausführungsprivilegien auf dem sicheren Computer 48 gewährt werden.
-
Sichere Computer unternehmen jedoch wenig zum Verhindern von
Sicherheitsdurchbrüchen im privaten Netz oder in einer
Workstation. Ein Mechanismus zum Verhindern eines derartigen
Durchbruchs ist es, dem Client über das Netz für den
sicheren Computer zu berechtigen. Die oben beschriebene lokale
Verschlüsselungsfunktion führt eine derartige
Berechtigungserteilungsfunktion für einen Client aus. Ein anderer
Mechanismus zum Vermeiden einer netzbezogenen Durchbrechung
besteht im Aufrufen eines vertrauenswürdigen Pfads, d. h. eines
sicheren Kommunikationspfads zwischen dem Benutzer und dem
vertrauenswürdigen Subsystem. Ein geeignet konzipierter
vertrauenswürdiger Pfad gewährleistet, dass vom
vertrauenswürdigen Subsystem gesehene oder an dieses gesendete
Information entlang ihrem Weg nicht kopiert oder modifiziert wird.
Ein vertrauenswürdiger Pfad bestätigt nicht nur dem sicheren
Computer 48 die Echtheit des Clients (wie bei der oibigen
örtlichen Verschlüsselung), sondern er bestätigt auch dem
Client die Identität des sicheren Computers 48. Infolge
dessen garantiert der Mechanismus mit vertrauenswürdigem Pfad,
dass ein zwischen dem vertrauenswürdigen Subsystem auf dem
sicheren Computer 48 und dem Benutzer errichteter
Kommunikationspfad nicht durch bösartige Hardware oder Software
emuliert oder abgehört werden kann.
-
Eine Erweiterung eines vertrauenswürdigen Pfads über das
Netzwerk zum Benutzer ist jedoch schwierig. Wie es in der
zuvor angemeldeten US-Patentanmeldung mit dem Titel "Secure
Computer Interface" (am 21. Dezember 1993 für William E.
Boebert erteiltes US-Patent Nr. 5,272,754) mit derselben
Eigentümerin beschrieben ist, können "aktive" und "passive"
Netzangriffe dazu verwendet werden, Netzsicherheit zu
durchbrechen. Aktive Angriffe sind solche, bei denen vorgaukelnde
"Hochstapler-"Hardware oder Software in die
Netz-Kommunikationsübertragungsstrecke eingeschleust wird. Zum Beispiel
kann solche Hardware eingeschleust werden, die einen
Benutzer mit extensiven Zugriffsprivilegien emuliert, um auf
sensible Information zuzugreifen. Zu "passiven" Netzangriffen
gehören solche, bei denen eine Vorrichtung Daten auf einer
Übertragungsstrecke abhört, die Daten kopiert und sie an
einen anderen Benutzer liefert. Das Patent '754 beschreibt ein
System und ein Verfahren zum Gewährleisten sicherer
Datenkommunikationsvorgänge über ein ungesichertes Netz. Der
Betriebs eines vertrauenswürdigen Pfads in Zusammenhang mit
einer organisatorischen Enklave ist im am 4. Januar 1994 für
Boebert et al. erteilten US-Patent Nr. 5,276,735
beschrieben.
-
Bei einem Ausführungsbeispiel ist daher die Kommunikation
zwischen dem Clientprotokoll-Modul 62 und dem
Privatnetzprotokoll-Modul 66 durch Aufbauen eines vertrauenswürdigen
Pfads zwischen der Workstation 63 und dem sicheren Computer
68 für alle kritischen Übertragungsvorgänge sicher gemacht.
Sicherheitspolitik innerhalb des sicheren
Weitbereich-Zugriffssystems
-
Der Begriff Sicherheitspolitik hat in der Technik zwei
Bedeutungen erlangt:
-
1) Die von Organisationen und Einzelpersonen verwendete.
Aussage zum Beschreiben der Ziele ihrer Sicherheitsaktivität
und zum Zuweisen von Rollen und Verantwortlichkeiten.
-
2) Die von einem sicheren Computer verwendeten Regeln zum
Bestimmen, ob bestimmte Aktionen ausgeführt, werden können
oder nicht.
-
Im letzteren Fall existieren zwei Arten der Politik:
-
2a) Markierungs-basiert, wobei die Entscheidungen auf
Grundlage eines Etiketts, oder einer internen Markierung,
erfolgen, das einem Datenobjekt wie einer Datei zugeordnet wird.
Der Inhalt der Datei wird durch den Mechanismus zum Treffen
der Entscheidung nicht untersucht.
-
2b) Inhalt-basiert, wobei die Entscheidung auf Grundlage des
Inhalts der Datei, der Mitteilung oder eines anderen
Datenobjekts erfolgen.
-
Sichere Computer müssen die folgenden Aufgaben ausführen:
-
1) Schützen von Daten, während sie in unverschlüsselter Form
verarbeitet werden. Bestimmte Operationen, wie
Rechenvorgänge, Editieren und Umwandlung von einem elektronischen
Mitteilungsformat in ein anderes können nur an Daten in
unverschlüsselter oder Klartextform ausgeführt werden.
Operationen in verschlüsselter oder Chiffriertextform sind im
Allgemeinen auf Speicherungs- und Übertragungsvorgänge
beschränkt.
-
2) Durchsetzen Inhalts-basierter Sicherheitspolitiken. Da
eine derartige Durchsetzung die Untersuchung von Inhalten
erfordert, müssen derartige Inhalte in verständlicher
Klartextform vorliegen.
-
3) Durchsetzen individueller Rollen und Kontrolle der
Ausübung von Privilegien. Verschlüsselung sorgt von Natur aus
für einen binären oder "Alles oder
nichts"-Privilegmechanismus: entweder man besitzt einen Schlüssel zum Entschlüsseln,
in welchem Fall man die Daten lesen kann, so dass man tun
kann, was einem beliebt oder man besitzt den Schlüssel zum
Entschlüsseln nicht, und Operationen an Daten sind
verhindert.
-
In einem Computernetz erfordert Verschlüsselung die
folgenden Dienste von einem sicheren Computer:
-
1) Zuverlässige und sichere Verwaltung und Verteilung von
Schlüsseln, einschließlich der Durchsetzung beschränkter
Rollen für privilegierte Einzelpersonen.
-
2) Schutz des Missbrauchs des Verschlüsselungsmechanismus
durch bösartige Software.
-
Entsprechend benötigen sichere Computer die folgenden
Dienste von der Verschlüsselungstechnik:
-
1) Bestätigung von Benutzeridentitäten.
-
2) Schutz von Softwaremechanismen mittels vertrauenswürdiger
Verteilung.
-
3) Schutz von Daten während der Speicherung oder Übertragung
in ausgesetzten Umgebungen wie einem öffentlichen Netz.
Grundprinzipien des sicheren Weitbereich-Zugriffsystems
-
Das erste Prinzip des Systems 40 besteht darin, dass die
Sicherheitsdienste und Alarme in einer geschützten Einrichtung
(sicherer Computer 48) die unter der verwaltenden Kontrolle
einer begrenzten Anzahl berechtigter Einzelpersonen steht,
zentralisiert sind. Der sichere Computer 48 kann körperlich
geschützt sein, und wird dies im Allgemeinen sein, um unberechtigtes
Manipulieren oder Modifizieren zu verhindern. Auf
diese Weise kann in seinen Betrieb ein größeres
Vertrauensausmaß gesetzt werden als in den Betrieb der
Client-Workstations 63, die ausgesetzt sind und einigen Fällen tragbar
sind. Zentralisierung bedeutet, dass Sicherheitsalarme nur
berechtigten Verwaltern signalisiert werden, die über
Privilegien betreffend den sicheren Computer 48 verfügen; dies
erleichtert die Reaktion auf Angriffe von Insidern.
Zentralisierung bedeutet auch, dass neue Dienste und
Gegenmaßnahmen einfach dadurch realisiert werden können, dass der
Programmcode oder Hardware im sicheren Computer 48 geändert
werden; derartige Änderungen sind direkt allen Clients im
privaten Netz 64 verfügbar und werden diesen auferlegt.
-
Das sichere Weitbereich-Zugriffsystem 40 unterscheidet
zwischen örtlicher Berechtigungsbestätigung und Schutz, was
innerhalb der eher geschützten Grenzen eines privaten Netzes
64 erfolgt, und globaler Berechtigungsbestätigung und
Schutz, was über ein öffentliches Netz 74 erfolgt, das
gemeinsam mit möglicherweise feindlichen Parteien genutzt
wird. Alle Information wird durch Filter-Gegenmaßnahmen 68
im sicheren Computer 48 entschlüsselt und in Klartexaform
untersucht. Dies erlaubt das Auferlegen inhaltsbezogener
organisatorischer S. icherheitspolitiken und eine detaillierte
Nachprüfung von Client-Wechselwirkungen mit dem öffentlichen
Netz 74. Es erlaubt auch intelligente Übertragung von Daten
von einem Format in ein anderes, wenn die Grenze zwischen
dem privaten Netz 64 und dem öffentlichen Netz 74
überschritten wird. Diese Fähigkeit ist im Fall von Emails
besonders wichtig, wo eine große Anzahl inkompatibler Formate
vorhanden ist.
-
Sicheres Weitbereich-Zugriffsystem mit Typdurchsetzung
Im Blockdiagramm der Fig. 4 ist ein Ausführungsbeispiel eines
sicheren Weitbereich-Zugriffsystems 40 gemäß Fig. 3
veranschaulicht. In Fig. 4 enthält das System 40 einen sicheren
Computer 80, der über ein privates Netz 82 mit einer oder
mehreren Workstations 84 verbunden ist. Die Workstations 84
sind IBM-kompatible PCs auf Intel-Basis, auf denen Windows
3.1 auf dem DOS-Betriebssystem von Microsoft läuft. Der
Protokollbaustein 86 realisiert das für die Kommunikation
zwischen der Workstation 84 und dem sicheren Computer 80
verwendete Protokoll. Bei einem Ausführungsbeispiel nutzt das
Netz 82 ein TCP/IC-Protokoll. Bei einem derartigen
Ausführungsbeispiel ist der Protokollbaustein 86 ein
Software-Baustein, der dazu verwendet wird, in der Workstation 84 eine
WINSOCKET-Schnittstelle zum Netzwerk 82 zu begründen. Bei
einem derartigen Ausführungsbeispiel ist eine örtliche
Verschlüsselungsfunktion in den Protokollbaustein 86
integriert, um Verkehr auf dem Netz 82 Schutz und Berechtigung
zu erteilen.
-
Der Clientbaustein 88 akzeptiert Befehle vom Benutzer oder
Client und zeigt ihm diese an. Er kann in einem grafischen
Benutzerinterface (GUI), einem Befehlszeilen-Interface oder
einer Kombination hiervon realisiert sein. Typische Befehle
würde eine elektronische Mitteilung erstellen, eintreffende
Mitteilungen untersuchen, Dateien von anderen Sites
anfordern oder jedwede andere Operationen ausführen, die für den
Gebrauch eines Computernetzes typisch sind.
-
Im sicheren Weitbereich-Zugriffsystem 40 der Fig. 4 wird auf
dem sicheren Computer 80 laufender Programmcode dazu
verwendet, eine Kommunikation über das private Netz 82 mit dem
Protokollbaustein 86 auszuführen. Bei einem
Ausführungsbeispiel ist der sichere Computer 80 eine Maschine auf Intel-
Pentium-Basis, auf der eine erschwerte Form von BSD386 Unix
läuft. Ein System auf Grundlage eines
90-MHz-Pentium-Prozessors mit 32 Megabyte Speicher, 2 Gigabyte Festplattenraum,
einem DAT-Band zum Backup und einer CD-ROM für
Software-Ladevorgänge hat sich als passend herausgestellt.
-
Beim in Fig. 4 dargestellten Ausführungsbeispiel ist der für
die Kommunikation mit dem Protokollbaustein 86 verwendete
Programmcode Teil des Protokollbausteins 90. Bei einem
derartigen Ausführungsbeispiel läuft der Baustein 90 auf dem
sicheren Computer 80 und steht in Wechselwirkung mit dem
Protokollbaustein 86, um für geschützte und berechtigte
Kommunikation mit der Workstation 84 zu sorgen. Zum Beispiel
kann eine lokale Verschlüsselungsfunktion aus auf der
Workstation 84 ausgeführter Software bestehen, um beim Einloggen
eine Berechtigungsbestätigung für den Client zu begrünen.
Wenn der Benutzer bei einem derartigen System in das Netz 82
einloggt, wird von der Workstation 84 eine Mitteilung an den
sicheren Computer 80 geliefert. Der sichere Computer 80
antwortet mit einer Zahl (bei einem Ausführungsbeispiel ist
dies eine siebenstellige Zahl), die unverschlüsselt an den
Protokollbaustein 86 in der Workstation 84 geliefert wird.
Dann erzeugt der Protokollbaustein 86 über den
Client-Baustein 88 eine Anforderung an den Benutzer, seine persönliche
Kennnummer (PIN = personal identification number)
einzugeben. Der Protokollbaustein 86 nimmt die PIN auf und
kombiniert sie mit einer vorbestimmten, in der Workstation 84
gespeicherten Nummer, um einen DES-Verschlüsselungsschiüssel
zu erzeugen. Dieser DES-Verschlüsselungsschlüssel wird dann
dazu verwendet, die vom sicheren Computer empfangene Zahl zu
verschlüsseln. Die verschlüsselte Zahl wird an den sicheren
Computer 80 geliefert, wo sie entschlüsselt wird. Wenn für
diesen speziellen Benutzer die korrekte Maschinennummer und
PTN-Nummer verwendet wurden, ist der sichere Computer 80
dazu in der Lage, die Nummer genau zu rekonstruieren, die an
die Workstation 84 lieferte. Falls nicht, wird ein
Fehlerhinweis erzeugt und im Betriebsprotokoll wird ein Eintrag
vorgenommen. Bei einem Ausführungsbeispiel werden dann im
Versuch, die Bedrohung in der Nähe der Workstation 34 zu
halten, aktive Irreführungs-Gegenmaßnahmen ergriffen.
-
Wenn der Client berechtigt ist, erfolgt die Kommunikation
auf dem Netz 82 im Klartext.
-
In ähnlicher Weise wird auf dem sicheren Computer 80
laufender Programmcode dazu verwendet, eine Kommunikation über ein
Interface für das öffentliche Netz an ein solches
auszuführen. Beim in Fig. 4 dargestellten Beispiel ist das
öffentliche Netz das Internet. Bei einem derartigen
Ausführuncrsbeispiel ist der für Kommunikation mit dem Internet verwendete
Programmcode Teil eines Internetprotokolls 94, das über eine
Internetverbindung 96 in Kommunikation mit Computern im
Internet steht. Die Internetprotokolle 84 laufen auf dem
sicheren Computer 80 und werden dazu verwendet, für geschützte
und berechtigte Kommunikation mit Einzelpersonen, Sites und
anderen sicheren Weitbereich-Zugriffssystemen 40 über das
Internet zu sorgen. Es können verschiedene Protokolle und
Verschlüsselungsverfahren verwendet werden, wenn mit
verschiedenen Parteien im Internet kommuniziert wird. Bei einem
Ausführungsbeispiel wird ein in den Internetprotokollen 94
arbeitender tcp-Wrapper-Baustein dazu verwendet, auf dem
externen, öffentlichen Netz zu sitzen, damit Information zu
externen Abtastwerten aufgezeichnet werden kann. Es ist am
wahrscheinlichsten, dass die offene Art des öffentliches
Netzes 74 die Verwendung einer Verschlüsselung mit
öffentlichem Schlüssel in diesem Modul begünstigt.
-
Schließlich wird auf dem sicheren Computer 80 laufender
Programmcode dazu verwendet, Server und Filterfunktionen auf
dem sicheren Computer 80 zu realisieren. Beim in Fig. 4
dargestellten Beispiel ist der zum Realisieren des Servers und
der Finderfunktionen verwendete Programmcode Teil der
Internetserver und des Filters 92. Infolgedessen arbeiten die
Server und die Filter-Gegenmaßnahmen im sicheren Computer
80. Sie stellen Benutzerdienste zur Verfügung, wie die
Zustellung von Emails oder die Übertragung von Dateien, und
sie erzwingen auch die organisatorische Sicherheitspolitik
durch Filtern der Übertragung von Information und das
Abfangen unzulässiger Inhalte, Markierungen und/oder Adressen.
-
Wie oben angegeben, ist der sichere Computer 80 bei einem
Ausführungsbeispiel eine Maschine auf Intel-Pentium-Basis,
auf der eine erschwerte Form des Berkeley-Unix B5D386 läuft.
Bei diesem Ausführungsbeispiel wird B5D386 dadurch
erschwert, dass ein Mechanismus mit Typdurchsetzung
hinzugefügt wird, der den Zugriff von Prozessen auf Daten
einschränkt. Der Durchsetzungstyp arbeitet in Zusammenhang mit
Seitenzugriff-Kontrollbits im Übersetzer für virtuelle
Seiten des Pentium-Prozessors, um den Zugriff auf Objekte zu
steuern, die im Speicher des sicheren Computers 80
gespeichert sind. Um dies zu bewerkstelligen, wurden Systemaufrufe
im Grundkernel von BSD386 so modifiziert, wie es später in
diesem Dokument angegeben ist, das Typdurchsetzungsprüfungen
nicht vermieden werden können. Bestimmte andere
Systemaufrufe wurden entweder gesperrt, oder es wurden für sie best
immte Wahlmöglichkeiten gesperrt.
-
Beim erschwerten BSD386 gemäß der Erfindung werden
Typdurchsetzungskontrollen durch den Kernel erzwungen, und sie
können durch Anwendungen nicht umgangen werden. Typdurchsetzung
wird dazu verwendet, Datenflussstrukturen zu realisieren,
die als Assured Pipelines (verbürgte Pipelines) bezeichnet
werden. Verbürgte Pipelines sind durch das von Unix
verwendete sogenannte "small process
(Kleinprozess)"-Berechnungsmodell ermöglicht. Bei diesem Modell wird eine Rechenaufgabe
in kleine virtuelle Einheiten aufgeteilt, die parallel
zueinander laufen. Unix sorgt für eine grobe und locker
kontrollierte Art der gemeinsamen Nutzung von Daten zwischen
Prozessen. Typdurchsetzung ersetzt dies durch die rigoros
kontrollierte, konfigurierbare Struktur verbürgter
Pipelines.
-
Außerdem wurde der sichere Computer 80 unter BSD386 so
konfiguriert, dass er in einem von zwei Zuständen läuft:
Verwaltungs- und Betriebszustand. Im Verwaltungszustand sind
alle Netzverbindungen gesperrt und der Server akzeptiert nur
Befehle von einem korrekt berechtigten Systemverwalter, der
von einem fest verdrahteten Verwaltungsterminal (wie dem
Terminal oder der Workstation 50 in Fig. 2) auf das System
zugreift. Dieses Merkmal verhindert, dass irgendjemand
anderes als der Systemverwalter die Sicherheits-Datenbanken im
sicheren Computer 80 ändert.
-
Im Betriebszustand sind die Netzverbindungen freigegeben und
der Server führt nur Software aus, die von einer verbürgten
Partei als ausführbar kompiliert und installiert wurde.
-
Die zwei Zustände spiegeln sich in zwei gesonderten Kernels
wider. Der Verwaltungskernel unterliegt nicht der
Typdurchsetzung. Statt dessen ist er vom Netz isoliert, und nur
berechtigtes Personal kann auf ihn zugreifen. Dies bedeutet,
dass im Modus mit Verwaltungskernel der sichere Computer 80
nicht mit böswilliger Software infiziert werden kann,
sondern nur von der Systemverwaltung beauftragten Personen.
-
Andererseits unterliegt der Betriebskernel der
Typdurchsetzung. Dies bedeutet, dass z. B. im Speicher des sicheren
Computers 80 gespeicherte ausführbare Dateien ohne explizite
Ausführungsprivilegien nicht ausgeführt werden können. In
einem derartigen Ausführungsbeispiel können ausführbaren
Dateien von innerhalb des Betriebskernels keine
Ausführungsprivilegien verliehen werden. Statt dessen muss der sichere
Computer 80 in den Verwaltungskernel eingreifen, um Ausführungsprivilegien
zu gewähren. Es verhindert die Ausführung
bösartiger Software, die an den Speicher des sicheren
Computers 80 geschickt wurden. Statt dessen werden im
Betriebskernelmodus des sicheren Computers 80 jemals nur solche
ausführbare Objekte ausführbar, die von Betriebsverwaltern im
Verwaltungskernelmodus bestätigt wurden. Bei einem
derartigen Ausführungsbeispiel kann nur entweder über einen
Handinterrupt im Bootprozess zum Booten des Verwaltungskernels
oder durch Booten des sicheren Computers 80 von einer
Diskette, die einen Zeiger auf den Verwaltungskernel aufweist,
in den Verwaltungskernel eingetreten werden.
-
Diese Einschränkungen sorgen für die folgenden Vorteile:
-
- Verteidigung in die Tiefe: wenn ein Eingreifer eine
Verletzlichkeit im Subsystem des Systems 40 herausfindet, ist
der. Schaden, den der Angreifer verursachen kann, auf dieses
Subsystem begrenzt. Dies verhindert gut bekannte Angriffe,
bei denen eine Verletzlichkeit innerhalb z. B. des
Mail-Subsystems dazu ausgenutzt werden kann, die gesamte
Installation zu übernehmen.
-
- Stille Alarme: Die Typdurchsetzung ersetzt und beschränkt
die herkömmlichen "Root"- und "Superuser"-Privilegien des
unsicheren Unix. Versuche, diese Privilegien im System 40
auszuüben oder andere Einschränkungen der Typdurchsetzung
zu verletzen, führen zu Alarmen, die in Verwaltungsprozessen
ausgelöst werden. Dies muss jedoch kein Signal oder ein.
Hinweis darüber gegeben werden, dass ein Angriff erkannt wurde.
Statt dessen kann das System 40, falls erwünscht, Daten zum
Verfolgen der Quelle des Angriffs sammeln, falsche oder
irreführende Daten an die Angreifer leiten oder andere
geeignete Gegenmaßnahmen ergreifen.
-
- Offene Sicherheitsarchitektur: Das modulare Design
bedeutet, dass neue Internetdienste schnell und sicher
bereitgestellt werden können.
-
Ein Beispiel einer verbürgten Pipeline erscheint im in Fig.
5a dargestellten Diagramm. Der Datenfluss zwischen Prozessen
in Fig. 5a wird durch den Zugrifferzwingungsmechanismus
Intel-Pentium-Prozessor gesteuert. Die Übersetzungsschaltung
für den virtuellen Speicher innerhalb des Pentium-Prozea sors
enthält einen Mechanismus zum Zuweisen von
Zugriffsprivilegien zu Seiten des virtuellen Speichers. Dies gewährleistet,
dass für jeden Abruf aus dem Maschinenspeicher oder für
jedes Einspeichern in ihn eine Kontroller erzwungen wird. Auf
diese Weise ist der Schutz kontinuierlich gemacht. Der
Pentium-Zugriffskontrollmechanismus erzwingt die folgenden
Zugriffsmodi:
-
- Nur Lesen (R): Datenwerte können aus dem Speicher
abgerufen und als Eingangsdaten von Operationen verwendet werden,
jedoch können sie nicht modifiziert oder als Programmtext
verwendet werden.
-
- Lesen und Ausführen (RE = Read Execute): Datenwerte können
aus dem Speicher abgerufen und als Eingangsdaten von
Operationen verwendet werden und sie können auch als Programmtext
verwendet werden, jedoch nicht modifiziert werden.
-
- Lesen und Schreiben (RW = Read Write): Datenwerte können
aus dem Speicher abgerufen und als Eingangsdaten von
Operationen verwendet werden, und sie können auch in
modifizierter Form wiedereingespeichert werden.
-
- Kein Zugriff: Daten können zu keinerlei Zweck aus dem
Speicher abgerufen werden, und sie können nicht modifiziert
werden.
-
Dann zeigt das Diagramm in Fig. 5a, wie diese von der
Hardware erzwungenen Zugriffe dazu verwendet werden, zwingend
dafür zu sorgen, dass vom internen Netz 82 zum Internet
fließende Daten einen Filterprozess durchlaufen, ohne jede
Möglichkeit, dass das Filter umgangen wird oder gefilterte
Daten durch möglicherweise verletzende Software auf der
Internetseite des Filters manipuliert werden.
-
Die Zugriffsart, die ein Prozess über Typdurchsetzung auf
ein Datenobjekt hat, ist durch einen Eintrag in einer
zentralen, geschützten Datenstruktur definiert, die als
Domaindefinitionstabelle (DDT = Domain Definition Table)
bezeichnet wird. Eine repräsentative DDT ist in Fig. 5b
dargestellt. Ein Domainname bezeichnet eine Äquivalenzklasse von
Prozessen. Jedem in Ausführung befindlichen Prozess sind
zwei Domainnamen zugeordnet, die dazu verwendet werden,
seine Wechselwirkung mit einem Objekt und anderen Domains zu
steuern. Die tatsächliche Domain eines Prozesses wird dazu
verwendet, Domain-Domain-Wechselwirkungen zu steuern und
spezielle, objektunabhängige Privilegien zu gewähren oder zu
versagen. Die effektive Domain eines Prozesses wird dazu
verwendet, ihren Zugriff auf Objekte zu steuern. Die
tatsächliche und die effektive Domain eines Prozesses sind im
Allgemeinen identisch; nachfolgend werden die Umstände
beschrieben, bei denen sich verschieden sind.
-
Ein Typname bezeichnet eine Äquivalenzklasse von Objekten.
Objekte sind im Allgemeinen die "Basistypen" von BSD/386
Unix: Dateien, Verzeichnisse usw. Es existieren acht
Vorgabe-Subtypen: file, directory, socket, fifo, device, port,
executable und gate. Der implizierte Vorgabe-Subtyp pipe ist
tatsächlich untypisiert, da für den Zugriff auf pipes keine ·
Überprüfung erfolgt. Die Quellencodenamen dieser Subtypen
sind in der Tabelle in Fig. 6 angegeben.
-
Die Namen bestehen aus zwei Teilen, und sie sind, beim
bevorzugten Ausführungsbeispiel, als creator:subtype in eine
Dokumentation und Kommentare eingeschrieben. Das Feld
creator ist der 4-Zeichen-Name der Domain, die das Objekt
erzeugte. Das Feld subtype bezeichnet die "Klasse" des Objekts
innerhalb dieser Domain. Subtype-Namen sind ebenfalls vier
Zeichen lang und sie können jedes beliebige druckbare Zeichen
mit Ausnahme von "*" oder der Leerstelle enthalten.
-
Die TESLA-Konvention geht dahin, dass Subtypen nicht
gemeinsam genutzt werden; so bedeutet Mail: file tatsächlich "die
Dateien, die hinsichtlich der Domain Mail privat sind". Wenn
Objekte erzeugt werden, wird ihnen automatisch der geeignete
Vorgabe-Subtyp zugewiesen. Für Objekte, die von Domains
gemeinsam zu nutzen sind, muss der Subtyp vom Vorgabewert. auf
einen expliziten Subtyp geändert werden.
-
Subtypen können auf eine von drei Arten zugewiesen werden:
-
- Ein Vorgabe-Subtyp wird dann zugewiesen, wenn das Objekt
vom Betriebskernel erzeugt wird.
-
- Ein expliziter Subtyp wird durch die privilegierten
Systemaufrufe chtype oder fchtype zugewiesen. So würde eine
Datei, die von der Domain Mail und irgendeiner anderen Domain
gemeinsam zu verwenden wäre, zuerst als Mail:file erzeugt
werden und dann in z. B. Type Mail:Publ. geändert werden.
Wenn ein Subtyp auf einen Vorgabe-Subtyp geändert wird, wird
das Objekt privat.
-
- Durch verwaltendes Zuweisen eines Vorgabe- oder expliziten
Subtyps durch den Verwaltungskernel.
-
Die Vorgabe-Subtypen exec und gate sind "statisch". Der
Betriebskernel erzeugt keinerlei Objekte dieser Subtypen,
führt keine Änderungen dieser Subtypen in irgendeinen
anderen Subtyp aus und ändert auch keinerlei anderen Subtypen in
gate oder exec.
-
Die Beziehung Domain/Typ wird dazu verwendet, die Modi und
Konsequenzen von Zugriffen durch Prozesse auf Objekte zu
definieren. Die Modi und Konsequenzen von Zugriffen werden
durch Zugriffsattribute definiert, die in der DDT-Datenbank
gespeichert sind. Die DDT-Datenbank ist durch drei Werte
"indiziert":
-
- die effektive Domain oder der Prozess, der den Zugriff
oder den Vorgang anfordert.
-
- Das Erzeugerfeld des Objekttyps.
-
- Das Subtyp-Feld des Objekttyps.
-
Das Ergebnis der "Indizierung" ist der Abruf eines Satzes
von Zugriffsattributen. Der Begriff "Attribut" wird an
Stelle von "Modus" verwendet, da einige der Attribute
unmittelbare Nebeneffekte erzeugen. Die Auswahl von Attributen wurde
durch die folgenden Überlegungen bestimmt:
-
- Die Zugriffsmodi einzuschränken, die Prozesse auf Objekte
ausüben können.
-
- Verhindern der Ausübung jedweder Anwendungssoftware, die
nicht diejenige ist, die über die kontrollierte
Verwaltungsumgebung installiert wurde.
-
- Ermöglichen einer Irreführung von Angreifern, damit die
Antwort Maßnahmen gegen einen Angriff dazu verwendet werden
können, ihnen auf dem Niveau physikalischer Pakete
nachzuspüren. Dies erfordert eine ausgeklügeltere Reaktion auf
illegale Zugriffe als nur das Abblocken des verletzenden
Prozesses.
-
Die möglichen Prozessattribute und ihre Bedeutungen sind in
der Tabelle in Fig. 7 angegeben.
Wechselwirkungen zwischen Domains und Domains
-
Die Regeln, die das Einstellen der tatsächlichen und
effektiven Domains eines Prozesses bestimmen, sind die Folgenden:
-
- Die tatsächlichen und effektiven Domains von Prozessen,
die durch einen Systemaufruf fork erzeugt werden, werden als
die tatsächlichen und effektiven Domains des Elternprozesses
eingestellt.
-
- Wenn das vom Systemaufruf execve verwendete ausführbare
Objekt vom Subtyp exec ist, bleiben die tatsächliche und die
effektive Domain des Prozesses unverändert.
-
- Der Systemaufruf makedomain kann dazu verwendet werden,
die tatsächliche Domain eines Prozesses dann zu ändern, wenn
das ausführbare Objekt geändert wird (analog zu execve). Die
neue tatsächliche Domain muss von der DIT zugelassen werden
(der Prozess ist in Fig. 11 dargestellt), und die effektive
Domain wird auf die tatsächliche Domain geändert.
-
- Der Systemaufruf changedomain kann dazu verwendet werden,
die tatsächliche Domain eines Prozesses zu ändern, ohne das
ausführbare Objekt zu ändern.
-
- Wenn das von exeove verwendete ausführbare Objekt vor
Subtyp gate ist, wird die effektive Domain des Prozesses auf
das Erzeugerfeld des vollständigen Typnamens des
ausführbaren Objekts eingestellt. Dieser Vorgang wird als implizites
Gating bezeichnet. Die neue effektive Domain muss von der
DIT zugelassen sein.
-
- Der Systemaufruf gate kann dazu verwendet werden, die
effektive Domain eines Prozesses zu ändern, ohne das
ausführbare Objekt zu ändern. Die neue effektive Domain muss von
der DIT zugelassen sein. Dieser Vorgang wird als explizites
gating bezeichnet.
-
- Der Systemaufruf ungate kann dazu verwendet werden, die
effektive Domain eines Prozesses zurück auf ihre
tatsächliche Domain zu ändern. Dieser Vorgang wird ungating
bezeichnet.
-
Nun sei der Fall betrachtet, bei dem ein in der Domain Mail
laufender Prozess einen Zugriff auf Dateien vom Typ Mail:
exec und SMTP:gate auszuführen hat. Ferner sei angenommen,
dass eine Domain MIME existiert. Dafür sind in der Tabelle
in Fig. 8 die neue und die effektive Domain angegeben, die
sich aus den einschlägigen Systemaufrufen ergeben.
Typdurchsetzung benötigt nicht unbedingt Gatingmaßnahmen für ihre
Funktion. Sie existieren aus den folgenden Gründen:
-
- Zum Vereinfachen der DDT durch Verringern der Anzahl von
Typen, die einfach existieren sollten, um den Interdomain-
Datenfluss zu realisieren.
-
- Zum Verbessern des Funktionsvermögens durch Verringern des
Ausmaßes an Kopier- und Signalisiervorgängen, wie sie dazu
erforderlich sind, Aktivitäten in verschiedenen Domains zu
koordinieren.
-
- Zum Vereinfachen des Portierens existierenden Codes,
dessen Prozessstruktur nicht bestimmt war oder durch
Überlegungen betreffend das geringste Privileg und eine
Effekteinschränkung beeinflusst war.
-
Gating erlaubt, dass ein Prozess zeitweilig ein Mitglied
einer anderen Domain wird. Die "Heimat"- oder dauerhafte
Domain des Prozesses wird als dessen tatsächliche Domain
bezeichnet und die zeitweilige oder angenommene Domain wird
als effektive Domain bezeichnet.
-
Implizites Gating wird dann verwendet, wenn es erforderlich
ist, die Art genau zu beschränken, gemäß der die Zugriffe
einer effektiven Domain genutzt werden. Implizites Gating
"verknüpft" die zeitweilige Domainänderung mit einem
speziellen ausführbaren Objekt, das einer zusätzlichen
Überprüfung unterzogen wurde, um zu gewährleisten, dass die
Zugriffe der effektiven Domain sicher genutzt werden. Das
"Verknüpfen" der Domainänderung erfolgt, da die Domainänderung
ein Nebeneffekt der Anwendung von execve auf ein spezielles
ausführbares Objekt ist: ein solches, dessen Subtyp gate
ist. Implizites Gating erlaubt es auch, Domainänderungen
durch Ändern des Typs eines ausführbaren Objekts an Stelle
des Einführens expliziter Aufrufe in den Quellcode zu
definieren.
-
Explizites Gating wird dann verwendet, wenn eine lockerere
Kontrolle des zeitweiligen Domainübergangs zweckdienlich
ist oder wenn das "Verknüpfen" des Gatingvorgangs mit einem
speziellen ausführbaren Objekt ein übermäßiges
Umstrukturieren vorhandener Software erfordern würde.
-
Domainänderungen werden von der DIT kontrolliert. Die
logische Struktur der DIT ist eine Tabelle mit einem Eintrag für
jede Domain. Die logische Struktur jedes Eintrags ist eine
solche mit zwei Zeigern, einen auf eine Liste zulässiger
tatsächlicher Domains und einem anderen auf eine Liste
zulässiger effektiver Domains. So wählt, wenn ein Prozess den
Vorgang makedomain oder changedomain ausführte, die
tatsächliche Domain des Prozesses den Eintrag aus, und die durch
das Argument domainname gegebene Domain muss sich auf der
Liste zulässiger tatsächlicher Domains befinden, damit die
Domainänderung erfolgen kann. In ähnlicher Weise muss sich,
wenn ein Prozess den Vorgang gate ausführt, die im Argument
domainname angegebene Domain auf der Liste zulässiger
effektiver Domains stehen. Schließlich muss, wenn ein Prozess
den Vorgang execve eines ausführbaren Objekts ausführt,
dessen Subtyp gate ist, die Domain creator dieses ausführbaren
Objekts auf der Liste zulässiger effektiver Domains
erscheinen.
-
Bestimmte Kernel-Systemaufrufe sind auf Prozesse beschränkt,
die außerhalb privilegierter Domains ausgeführt werden. Beim
bevorzugten Ausführungsbeispiel der Typdurchsetzung erfolgen
Überprüfungen in zwei Ebenen. Erstens werden die normalen
Zulässigkeitsvoraussetzungen gemäß BSD UNIX überprüft; wenn
diese Zulässigkeitsvoraussetzungen dafür sorgen, dass eine
Operation fehlschlägt, liefert der Systemaufruf den normalen
Fehlercode zurück. Wenn die
UNIX-Zulässigkeitsvorausseazungen angemessen sind, werden als Nächstes die TE-Privilegien
überprüft (und damit zusätzlich zu den
UNIX-Zulässigkeitsvoraussetzungen).
-
Die folgenden BSD-Systemaufrufe wurden modifiziert, um die
Typdurchsetzung geeignet zu realisieren. Die modifizierten
Aufrufe sind zum Vereinfachen der Erläuterung in vier
Gruppen eingeteilt.
-
Die erste Gruppe von Systemaufrufen, die eine Modifizierung
erfordern, sind solche, die die Identität und/oder den
Zustand des Computers einstellen oder beeinflussen. Zwei
dieser Systemaufrufe beeinflussen die interne Zeit des
Computers: settimeofday und adjtime. Diese beiden Systemaufrufe
wurden dahingehend modifiziert, dass das Privileg < can_set_
clock> erfüllt ist, bevor der Anfrage gefolgt wird. Im Fall
einer Privilegverletzung liefert das System einen Alarm und
es folgt der Anfrage nicht, sondern liefert eine
Erfolgsmeldung zurück.
-
Andere Systemaufrufe, die die Angabe der eigenen Identität
des Computers beeinflussen, sind sethostname und sethcstid.
Diese beiden Systemaufrufe wurden modifiziert, um es
erforderlich zu machen, dass das Privileg < is-startup> erfüllt
ist, bevor der Anforderung genügt wird. Im Fall einer
Privilegverletzung führt der Systemaufruf zu einem Alarm, der
Anfrage wird nicht genügt und es wird ein Fehlerflag EPERM
rückgeliefert. Der letzte Systemaufruf beeinflusst den
Laufzeitstatus des Computers, reboot. Der Systemaufruf reboot
wurde modifiziert, um das Privileg < admin reboot>
erforderlich zu machen, bevor der Anfrage genügt wird. Wenn der
Anfrage genügt wird, bootet der Computer auf den
Verwaltungskernel (Einzelnutzermodus nur bei gesperrtem
Netzwerkbetrieb). Im Fall einer Privilegverletzung liefert das System
einen Alarm, es weist die Anforderung zurück und es liefert
das Fehlerflag EPERM zurück.
-
Die zweite Gruppe von Systemaufrufen, die Modifizierung
erfordert, sind solche, die eine Wechselwirkung mit dem
Dateisystem des Computers erlauben. Der Systemaufruf open wurde
modifiziert, um zur TE-Hauptprüfung zu werden. Nach dem
Ausführen der normalen BSD-UNIX-Zulässigkeitsprüfungen wird die
TE-Prüfung ausgeführt. Ein Alarm wird dann ausgegeben, wenn
die TE-Prüfung null (nichts zulässig) zurückliefert oder
wenn der Aufrufende einen Lesevorgang anfordert, jedoch das
Privileg < ddt_read> nicht eingestellt ist, oder wenn der
Aufrufende einen Schreibvorgang anfordert, jedoch das
Privileg < ddt_write> nicht eingestellt ist. Der Systemaufruf
creat wurde modifiziert, um den Typ der neuen Datei auf
< creator:file> einzustellen. Außerdem zieht die Erzeugung
einer neuen Datei einen Schreibvorgang im Verzeichnis nach
sich, was es wiederum nach sich zieht, dass der
TE-modifizierte Systemaufruf open dazu verwendet wird, die
Verzeichnisdatei zu öffnen, was wiederum zur Folge hat, dass Te dazu
verwendet werden kann, den Erfolg oder das Fehlschlagen des
Systemaufrufs creat zu kontrollieren. Die Systemaufrufe
unlink und rename werden in ähnlicher Weise modifiziert. Der
Systemaufruf unlink erfordert das Privileg < ddt_destroy> .
Der Systemaufruf rename erfordert das Privileg > ddt_rename>
für die "Von"-Datei, und wenn die "An"-Datei existiert,
erfordert er zusätzlich das Privileg < ddt_destroy> für die
"An"-Datei. Im Fall einer Privilegverletzung führen beide
Systemaufrufe unlink und rename zu einem Alarm und der
Anfrage wird nicht genügt, sondern es wird eine Erfolgsmeldung
rückgeliefert. Der Systemaufruf access ist so modifiziert,
dass das Privileg < mode> für die Datei erforderlich ist, auf
die der Pfad zeigt. Im Fall einer Privilegverletzung führt
der Systemaufruf access zu einem Alarm und der Anfrage wird
nicht genügt, sondern es wird die Erfolgsmeldung
rückgeliefert. Die Systemaufrufe chflags, fchflags und quotacl sind
auf ähnliche Weise modifiziert. Alle sind so modifiziert,
dass keine Funktionen ausgeführt werden. Versuche, sie
aufzurufen, führen zu einem Alarm, der Anfrage wird nicht
genügt, und es wird EPERM rückgeliefert. Der Systemaufruf
mknod ist so modifiziert, dass keine Funktion ausgeführt
wird. Versuche, ihn aufzurufen, führen zu einem Alarm, der
Anfrage wird nicht genügt und es wird EPERM rückgeliefert.
-
Die dritte Gruppe von Systemaufrufen, die eine Modifizierung
erfordern, sind diejenigen, die die Erzeugung,
Aufrechterhaltung und Wegverfolgung eines Prozesses betreffen. Der
Systemaufruf fork wurde so modifiziert, dass der Kindprozess
sowohl die tatsächliche als auch die effektive Domain des
Elternprozesses erbt. Der Systemaufruf execve ist so
modifiziert, dass das Privileg < ddt_exec> für die Datei, auf die
der Pfad zeigt, bevor der Anfrage genügt wird, erforderlich
ist. Die tatsächliche und die effektive Domain des Prozesses
bleiben unverändert. Im Fall einer Privilegverletzung
liefert das System einen Alarm und es genügt der Anfrage nicht,
sondern liefert eine Erfolgsmeldung zurück. Die
Systemaufrufe ktrace, ptrace und profil sind auf ähnliche Weise
modifiziert. Alle sind so modifiziert, dass keine Funktion
ausgeführt wird. Versuche, sie aufzurufen, führen zu einem Alarm
und der Anfrage wird nicht genügt. Die Systemaufrufe karace
und ptrace liefern EPERM zurück, wohingegen der Systemaufruf
profil EFAULT zurückliefert.
-
Der Systemaufruf mprotect ist so modifiziert, dass keine
Funktion ausgeführt wird. Versuche, ihn aufzurufen, führen
zu Alarm; der Anfrage wird nicht genügt und es wird EPERM
rückgeliefert.
-
Die vierte Gruppe von einem Modifizierung erfordernden
Systemaufrufen sind solche, die Prozesse mit Benutzer-IDs in
Beziehung setzen. Die Systemaufrufe setuid und seteuid,
sowie od. setreuid sind auf ähnliche Weise modifiziert. Alle
sind so modifiziert, dass das Privileg < suprress_su_alarm>
erforderlich ist, bevor der Anfrage genügt wird. Im Fall
einer Privilegverletzung führt der Systemaufruf zu einem
Alarm, der Anfrage wird nicht genügt und es wird eine
Erfolgsmeldung
rückgeliefert. Der Systemaufruf acct ist so
modifiziert, dass er keine Funktion ausführt. Versuche, ihn
aufzurufen, führen zu einem Alarm, der Anfrage wird nicht
genügt und es wird EPEPIMI rückgeliefert. Der Systemaufruf
setlogin ist so modifiziert, dass er das Privileg < can_
setlogin> erfordert. Im Fall einer Privilegverletzung führt ein
Zugriffssystemaufruf zu einem Alarm und der Anfrage wird
nicht genügt, sondern es wird eine Erfolgsmeldung rückgelie-
fert.
-
Eine abschließende Gruppe von Systemaufrufen besteht aus
solchen, die ganz aus dem Kernel von BSD UNIX entfernt sind.
Zu dieser Gruppe von Systemaufrufen gehören: obs_vtrace,
nfssvc, asynch_daemon, getfh, shmsys, sfork, getdescriptor
und setdescriptor. (Die Gruppe von Systemaufrufen die zum
Kernel von BSD UNIX hinzugefügt wurden, ist an anderer
Stelle erörtert.)
-
Die Art des Durchsuchens der DDT ist im Diagramm in Fig. 10
angegeben. Der Algorithmus ist der Folgende:
-
- Erhalten des Typnamens 100 aus mode, wo er in der Form
long gespeichert ist, und Analysieren desselben in zwei
Teile: die domain creator DC und den Subtypnamen TS.
-
- Erhalten der effektiven Domain 102, DE, aus der
Prozessdatenbank. Wenn das ausführbare Objekt, das einen Zugriff
versucht, vom Typ DG:gate ist, wird von DE auf DG gewechselt.
(Es ist zu beachten, dass ein voriges Durchsuchen der DDT
ddt_exec auf das Objekt exec oder gate rückgeliefert haben
muss, damit dieser Prozess beginnen konnte.)
-
- Wenn DE = DC gilt und TS einer der Vorgabe-Subtypen wie
file (jedoch nicht einer der "statischen" Subtypen gate oder
exec) wird für den Zugriff ddt_read + ddt_write + ddt_rename
rückgeliefert.
-
- Wenn DE ≠ DG gilt oder DE = DC gilt und TS nicht einer der
Vorgabe-Subtypen ist, ist die DDT-Struktur 104 nach einem
Eintrag zu durchsuchen, der DC entspricht. Wenn kein
clerartiger Eintrag existiert, ist die Struktur nach einem
"wildcard"-Eintrag zu durchsuchen. Wenn weder ein DC
entsprechender Eintrag noch ein "wildcard"-Eintrag in der Struktur
existiert, wird der Zugriffswert null zugewiesen.
-
- Wenn für DC ein Eintrag existiert, ist die Liste 106
subtype dahingehend zu durchsuchen, ob sie auf einen TS
entsprechenden Eintrag zeigt. Wenn kein derartiger Eintrag
existiert, ist die Liste subtype dahingehend zu untersuchen,
ob sie auf einen "Wildcard-Subtyp" zeigt. Wenn kein
derartiger Eintrag existiert, wird der Zugriffswert null
zugewiesen. Wenn für DC kein Eintrag existiert, jedoch ein
"wildcard"-Eintrag existiert, sind in der Liste subtype die
"wildcard"-Eintragspunkte auf einen Eintrag zu durchsuchen,
der TS entspricht. Wenn kein derartiger Eintag existiert,
sind in der Liste subtype die "wildcard"-Eintragspunkte nach
"Wildcard-Subtyp" zu durchsuchen. Wenn weder ein TSs
entsprechender Eintrag noch ein "Wildcard-Subtyp" in der Liste
subtype existiert, wird der Zugriffswert null zugewiesen.
-
- Wenn in der Liste subtype ein Eintrag für TS existiert,
ist der Domainvektor 108 zu suchen, der auf einen Eintrag
110 zeigt, der DE entspricht. Wenn kein derartiger Eintrag
existiert, ist der Domainvektor nach einer "wildcard-Domain"
zu durchsuchen. Wenn weder ein DE entsprechender Eintrag
noch eine "wildcard-Domain" im Domainvektor existiert, wird
der Zugriffswert null zugewiesen.
-
- Wenn ein Domainvektor-Eintrag für DE existiert, werden die
Zugriffswerte rückgeliefert, die er enthält. Wenn im
Domainvektor ein Eintrag "wildcard-Domain" existiert, werden die
Zugriffswerte rückgeliefert, die er enthält. Wenn weder ein
Domainvektor-Eintrag für DE noch eine "wildcard-Domain" im
Domainvektor existiert, wird der Zugriffswert null
rückgeliefert.
-
Der obige Algorithmus beschreibt den "logischen" Prozess des
Durchsuchens der DDT; als Nächstes wird die tatsächliche
Realisierung beschrieben.
-
Wie oben angegeben, werden, bei einem Ausführungsbeispiel,
Domains und subtypes als vier druckbare Zeichenkonstanten
gespeichert (Leerstellen zählen nicht als druckbar - auch
ist '*' ausgeschlossen). Auf Grund der Einschränkungen, die
auf Grund der Tatsache bestehen, dass BSDI Release 1.1
keinen vollständigen Sourcecode enthält, sind nur das erste
Zeichen einer Domain und die ersten drei Zeichen eines
subtype signifikant, und sie müssen daher eindeutig sein.
Ferner existiert eine Übereinkunft dahingehend, dass Namen zu
subtype, die global erscheinen (d. h. sowohl Vorgabe-subtypes
als auch subtypes, die von mehr als einer Domain
verwendetwerden) aus Kleinbuchstaben bestehen, während private
subtypes aus Großbuchstaben bestehen.
-
Diese vier Zeichennamen sind durch Konstanten C
repräsentiert. For Domains beginnen diese Konstanten mit einem D,
während sie für subtypes mit einem T beginnen. Auch der
folgende Buchstabe sollte ein Großbuchstabe sein (z. B. DRoot,
TFile). Es existieren auch zwei spezielle Konstanten:
k.Wildcard = ****, die zu irgendeiner subtype oder irgendeiner
Domain passt, und kEOL = 0, die dazu verwendet wird, das
Ende einer Liste zu markieren. Diese Konstanten sind alle
innerhalb einer Liste enum definiert, da die Verwendung von
#define zu zu vielen Compilerwarnungen führen würde (der C-
Compiler warnt hinsichtlich Mehrzeichen-Konstanten, jedoch
warnt er unter Verwendung von enum nur einmal für eine
gegebene Konstante).
-
Auf Grundlage vorhandener UNIX-Typen existieren sechs
Vorgabe-subtypes:
-
TExec ist ein Spezial-subtype, der nur durch den isolierten
Verwaltungskernel zugewiesen werden kann. Er repräsentiert
ausführbare Objekte, die jedwede Domain ausführen kann, wenn
durch die DDT ein ausführender Zugriff zulässig ist. TGate
ist eine spezielle Art von TExec - er ändert die effektive
Domain, in der ein Prozess ausgeführt wird, auf die creator-
Domain von gate. Er führt nur dies aus, wenn die Startdomain
Ausführungszugriff auf die Datei von subtype gate hat. Nach
dem "gating" wirkt ein Prozess nun wie in der
creator-Domain, und zwar alleine zu Zwecken der DDT-Überprüfung -
jegliche Überprüfungen mittels der DIT erfolgen innerhalb der
tatsächlichen Domain statt in der effektiven Domain.
Selbstverständlich ist gate eine kraftvolle und möglicherweise
gefährliche Maßnahme - genau wie die Bits setuid, die durch
das gating ersetzt werden sollen. Es ist zu beachten, dass
bei normalen DIT-Prüfungen eine spezielle Prüfung existiert
- wenn versucht wird, die tatsächliche Domain zu ändern,
befasst sich man nicht mit einer Prüfung der DIT der
effektiven Domain (wie 'dies andernfalls normalerweise der Fall
wäre). Dieses Manöver ist "ungating" - bei dem die dem
Gatevorgang unterzogene Domain explizit belastet wird und zur
ursprünglichen Domain zurückgekehrt wird.
-
Es existiert nur eine vordefinierte Domain, nämlich:
-
die dazu verwendet wird, Vorgabewerte auf Systemebene zu
repräsentieren - immer dann, wenn eine Domain nicht explizit
eingestellt wurde (sei es für eine Datei oder einen
Prozess), wird bei Erlaubnisprüfungen DRoot für den Domainwert
verwendet.
-
Die DDT ist als Tabelle mit drei Ebenen aufgebaut, die durch
die creator-Domain der Datei, den Wert subtype der Datei und
schließlich durch die ausführende Domain indiziert wird.
Dies ergibt einen Satz von Zugriffserlaubniswerten:
-
Diese Erlaubniswerte arbeiten meistens wie erwartet -
ddt_read, ddt_write dienen zum Lesen und Schreiben; ddt_
rename erlaubt eine Änderung des Dateinamens; ddt_exec wird
dazu verwendet, eine Ausführungserlaubnis zu gewähren;
ddt_destroy ist dazu erforderlich, eine Datei zu löschen.
ddt_chcreator entspricht stark einer Erzeugungserlaubnis,
jedoch erlaubt diese Erlaubnis, da Dateien mit dem
Vorgabewert subtype erzeugt werden, der vorliegenden Domain den
Subtyp und den Wert creator der Datei auf das entsprechende
Paar. subtype/creator zu ändern. ddt_trigger ist nicht
tatsächlich eine Erlaubnis - vielmehr führen alle Überprüfungen
hinsichtlich dieser speziellen Datei automatisch zum
Auslösen eines Alarms, unabhängig davon, welche Erlaubnis
nachgefragt oder gewährt wird. Dies erlaubt z. B. eine
"troyanische Umkehrdatei", die außer von einem Angreifer nie
ausgeführt wird, in welchem Fall ein Alarm ausgelöst wird und
eine Nachprüfung auf Paketebene ausgeführt wird.
-
Die Indizierung beginnt mit einem von der Domain
"indizierten" Array:
-
Dieses Array sollte einen Eintrag für jede Domain enthalten.
Hinsaichtlich der DDT wird diese Tabelle durchsucht, bis es
src_domain mit der creator-Domain der Datei übereinstimmt.
Wenn angenommen wird, dass dieser Wert aufgefunden wurde,
wird auf den Wert_ddt geschaut, betreffend ein Array, das
durch subtype "indiziert" ist:
-
/* Hier handelt es sich um die Erlaubnis für eine
spezielle Domain, wobei alle Typen aufgelistet werden */
-
Diese Liste wird durchgesehen, bis man entweder subtype,
eine Wildcard oder das Ende der Liste findet (in welchem Fall
keine Erlaubnis rückgeliefert wird). Dann ist es
erforderlich, auf den geeigneten Wert the_vector zu schauen - ein
durch die Domain "indiziertes" Array:
-
Dies ist die Suche nach der ausführenden Domain, und wenn
sie aufgefunden ist, wird the_permission rückgeliefert,
wobei dieser Wert die Flags für diesen Zugriff enthält.
-
Das Durchsuchen der DIT startet ähnlich wie das Durchsuchen
der DDT. Es wird die globale Tabelle nach der Startdomain
durchsucht, und es ist die geeignete Domainliste the_ddt
aufzufinden. Dies ist einfach eine Liste von Domains, die
mit kEOL enden. Diese Liste wird durchsucht, und wenn die
gewünschte Zieldomain aufgefunden ist, kann auf diese
übergegangen werden.
-
Jede Domain verfügt auch über eine Liste von Privilegien,
die sie ausführen kann:
-
Es wird die Erlaubnistabelle durchgesehen, um die geeignete
Domain aufzufinden, und dann werden diese Erlaubniswerte aus
dem geeigneten Feld von domain_flags erhalten. Es ist zu
beachten, dass keine explizite Erlaubnis "can_ch_domain"
existiert; Einschränkungen hinsichtlich Domainübergängen werden
durch die DIT erzwungen.
-
Da berhaupt jedes Array von gesonderter C-Struktur sein
muss, muss jedes Array einen einzigartigen und
bedeutungstragenden Namen aufweisen, um ein Array mit seinem
Elternteil zu verbinden. Dies wird am besten durch ein "einfaches"
Beispiel erläutert.
-
Dies ist nur eine Liste beispielhafter Domains:
-
Dies sind einige zusätzliche private subtypes für das
vorliegende Beispiel:
-
/* Hier sind einige weitere Typen */
-
Dies ist die Liste der Domains, in die die Root-Domain
wechseln kann. Die Namensübereinkunft ist hier DomainName_dit,
wobei DomainName der Name für die Konstante für diese Domain
ohne das führende "D" ist. Die Domainliste endet mit einem
kEOL.
-
Dies ist der erste Domainvektor. Die Namensübereinkunft ist
CreatorDomainName_TypeName, wobei CreatorDomainName der Name
der Konstante für die erzeugende Domain (ohne das führende
"D") ist und TypeName der Name der Konstante von subtype
ist. Der Vektor wird so initialisiert, dass er eine Liste
von Domains und Erlaubnisparametern enthält, mit dem Ende
{ kEOL }.
-
/* Dies sind die Vorgabe-Erlaubniswerte für alle
Prozesse an allen nicht zugewiesenen Dateien */
-
Root_default ist der Domainvektor für die Erzeugerroot, und
subtype KWildcard - im Wesentlichen der Vorgabewert für
jedwede von DRoot erzeugten Subtypen, die andernfalls keinen
speziellen Domainvektor hätten.
-
/* Vorgabewert für ausführbare Objekte */
-
Ein anderer Domainvektor, diesmal für alle ausführbaren
Objekte im System, ist:
-
Wenn einmal alle Domainvektoren für eine vorgegebene
erzeugende Domain vorliegen, kann die entsprechende Liste subtype
erstellt werden. Die Namensübereinkunft ist CreatingDomain_-
types. Sie besteht aus Paaren von subtypes und den
entsprechenden (zuvor deklarierten) Domainvektoren. Es ist zu
beachten, dass mehr als. ein subtype denselben Domainvektor
verwenden kann (in diesem Fall sowohl TStartup als auch
TConfig).
-
Hier ist die Haupterlaubnistabelle "Rover". Sie besteht aus
einer Liste von Domains (zwei in diesem Fall). Jeder Eintrag
enthält den Domainnamen, die Erlaubniswerte für die Domain,
ihre DIT und ihre Liste subtype. Wenn die DIT NULL ist, sind
keine Domainübergänge aus dieser Domain heraus zulässig.
Wenn die Liste subtype NIL ist, existiert kein Zugriff auf
alle subtypes dieser erzeugenden Domain. Der letzte Eintrag
ist selbstverständlich der Abschluss kEOL.
-
Jeder Prozess läuft in einer Domain, die in der
Dateinstruktur proc des Kernels gespeichert ist. Diese Eigenschaft wird
in verzweigte Prozesse kopiert, und sie bleibt unverändert,
wenn die meisten Binär- und Shell-Scripts ausgeführt werden.
Die Domain kann explizit über den Systemaufruf makedomain
geändert werden, wodurch, falls zulässig, die Domain für
diesen Prozess ab diesem Punkt nach vorne geändert wird.
-
Privilegien einer vorgegebenen Domain können auch für etwas
gewährt werden, das in einer anderen Domain läuft, und zwar
über einen "Gating"-Prozess - ein Prozess, der eine Datei
von subtype gate ausführt, wird, wenn hierbei angenommen
wird, dass der aktuellen Domain für diese Datei eine
Ausführungserlaubnis erteilt ist, zeitweilig die Privilegien des
Werts creator dieser Datei gate annehmen. Dies wird durch
ein Feld "effektive Domain:" in der Datenstruktur proc: des
Kernels bewerkstelligt. Dieses Feld wird auch während einer
Gabelung kopiert, und es wird rückgesetzt, wenn makeclomain
erfolgreich aufgerufen wird (auf die neu spezifizierte
Domain rückgesetzt). Am wichtigsten ist es, dass das Feld
"effektive Domain" dazu verwendet wird,
Dateizugriffserlaubnisse zu überprüfen, wobei jedoch die tatsächliche Domain
für Prüfungen betreffend makedomain verwendet wird. Jedoch
existiert ein spezieller Zusatz zu makedomain, um ein
"ungating" auszuführen - wenn der Prozess makedomain mit. der
tatsächlichen Domain aufruft, hat er automatisch Erfolg
(wodurch die effektive Domain auf die tatsächliche Domain
rückgesetzt wird), wodurch es zulässig ist, dass ein Prozess zur
Domain zurückkehren kann, in der er startete. Die Domain-
Übergangserlaubnisse werden alle in domain_to_domain
gehandhabt. Diese Routine sucht als Erstes die Quelldomain in der
Tabelle der Erlaubniswerte heraus. Sie verwendet den Eintrag
kWildcard, falls ein solcher vorhanden ist, um
Vorgabe-Erlaubniswerte für die Quelldomain zu liefern. Dann schaut sie
für die Zieldomain in den DIT-Vektor und sie erlaubt, falls
aufgefunden, den Übergang. Sie verwendet jedoch keine
Wildcard in diesem Vektor, das es dadurch einer vorgegebenen Do-
#main möglich wäre, in jede andere Domain überzugehen.
-
Die wichtigste Prüfung, die execve ausführt, besteht in
einer Prüfung hinsichtlich des Zugriffs ddt_exec. Es wird nach
subtype und creator dessen gesucht, was auszuführen ist, und
nach der effektiven Domain des aktuellen Prozesses (nicht
der tatsächlichen Domain), und es wird abgesichert, dass ein
Zugriff ddt_exec besteht. Falls vorhanden, wird auch der
Wert subtype der Datei verglichen, um zu erkennen, ob er
gate ist - wenn dies der Fall ist, wird die effektive Domain
auf den Wert creator dieser Datei geändert.
-
In execve existiert auch eine Logik, die gewährleistet, dass
nicht versehentlich ein Gatevorgang ausgeführt wird; die
alte effektive Domain wird zu Beginn von execve erfasst, und
jedesmal dann, wenn eine Fehlermeldung rückgeliefert wird,
wird die alte effektive Domain wiederhergestellt.
-
chtype/fchtype werden dazu verwendet, die Werte subtype und/
oder creator einer Datei zu ändern. Wegen dieser
Leistungsfähigkeit müssen sie sorgfältig kontrolliert werden. Eine
der Haupteinschränkungen bei chtype ist die, dass subtype
und creator gemeinsam geändert werden können. Es kann nie
etwas an einer Datei geändert werden, von der man nicht:
aktuell der Erzeuger ist. Ferner können exec oder gate nie
ausgeführt oder rückgängig gemacht werden, da exec und gate
spezielle statische subtypes sind. Dies erfolgt nur durch
den Verwaltungskernel. Die abschließende Spezialregel. ist
die» dass nur ein Paar subtype/creator geändert werden kann,
das bereits existiert (dies dient zum Verhindern eines
"verwaisten" Objekts, jedoch können mit dem Spezialtyp kwildcard
immer noch spezielle Zugriffserlaubnisse für diese Dinge
spezifiziert werden, so dass diese Regel entfernt werden
konnte). Es ist zu beachten, dass diese "Existenzprüfung"
Wildcards in der Erlaubnistabelle dahingehend akzeptiert,
dass alles passt, an das man gelangt.
-
Die anderen von chtype/fchtype ausgeführten Überprüfungen
sind solche betreffend die Erlaubnistabelle. Zu allererst
muss die ausführende Domain über die Erlaubnis can_ch_type
verfügen. Dann wird, wenn nur der Subtyp eines Objekts zu
ändern ist, das erzeugt wurde (und alle Überprüfungen im
vorigen Absatz durchlaufen sind), nur weiter zu schreiten und
dies auszuführen. Wenn jedoch auch der Wert creator geändert
wird, wird ddt überprüft, um zu erkennen, ob die effektive
Domain (im Gegensatz zur tatsächlichen Domain (siehe Gates-
Angaben für mehr Einzelheiten) über Fähigkeiten chcreator
für das Paar creator/subtype verfügt, in das die Datei zu
ändern ist (es ist bereits bekannt, dass dies erzeugt wurde,
so dass es keine Rolle spielt, was der Wert subtype ist).
Wenn der Weg weiter verfolgt wird, erfolgt eine Änderung,
falls nicht, erfolgt keine Änderung.
-
Tatsächlich erfordert es eine Änderung von subtype, da
subtype und creator in die Flagfelder von vnode unterteilt
wird, dem Betrieb als Root (da beide Wörter des Felds der
Flags geändert werden und dies bei VOP_SETATTR eine Rolle zu
spielen scheint). So wird vor dem Aufruf von VOP_SETATTR als
Erstes cr_uid abgespeichert, der Wert wird auf null gesetzt,
und dann wird er wiederhergestellt. Wenn VPO_SETATTR zum
Eintragen unserer Werte subtype und creator an den
tatsächlichen Stellen in mode modifiziert wird, wird dies
weggelassen.
-
check_ddt verwendet eine effektive Domain und ein paar
creator:subtype und schaut nach speziellen Zugriffsattributen,
wobei diejenigen rückgeliefert werden, die Erlaubniswerten
entsprechen, und Alarm ausgegeben wird, wenn Vorgänge nicht
wie erwartet ablaufen. Der erste Vorgang, den check_ddt
überprüft, nach dem Abbilden jedweder möglicherweise
undefinierter Felder auf DRoot und/oder TFile (wenn subtype oder
creator null ist, wie bei einem Dateisystem, das nicht
korrekt erstellt wurde), ist eine Überprüfung auf die Vorgabe-
Subtypen. Wenn die Quelldomain dieselbe wie creator ist und
der Subtyp einer der acht Vorgabe-subtypes ist, sind die
rückgelieferten Zugriffsattribute
ddt_read + ddt_write +
ddt_rename.
-
Andernfalls ist in den Tabellen nach creator:subtype
nachzuschlagen. Wenn diese Werte (oder geeignete
Wildcard-Übereinstimmungen) aufgefunden werden, wird der Domainvektor
durchsucht, um die Quelldomain aufzufinden. Wenn diese (oder
erneut die Wildcard) aufgefunden wird, wird von dort die
Rückkehrerlaubnis genommen. Wenn nie ein jeweiliger Eintrag
aufgefunden wird, ist die Rückkehrerlaubnis keine Erlaubnis.
-
Der letzte Schritt in check_ddt besteht darin, zu erkennen,
ob das Rückkehrattribut mit den durch den Aufrufer
nachgefragten Erlaubniswerten inkonsistent ist oder ob die sich
ergebende Erlaubnis das Attribut ddt_trigger enthält. Wenn
einer dieser Fälle gilt, muss diese Anfrage an den
Alarmmechanismus berichtet werden. Dazu gehört das Ausschreiben
der Prozess-ID, der Name der Datei, der Parameter und welche
Erlaubnis rückgeliefert wurde. Die Alarmverarbeitung
ergreift in diesem Punkt die erforderliche Aktion.
-
Außerdem ist das in Fig. 4 dargestellte System 40 so
aufgebaut, dass außer unter Steuerung des Systemverwalters keine
Software in es geladen werden kann, wobei diese selbst dann
nur möglich ist, wenn das System von allen Netzwerken
getrennt ist. (Dies ist eine Funktion der zwei Kernels: des
Betriebs- und des Verwaltungskernels, wie oben beschrieben.)
-
Der Typdurchsetzungsmechanismus erlaubt es, ein striktes
Geringstes-Privileg-Design zu definieren und durchzusetzen.
Das geringste Privileg ist eine Art zum Erzielen einer
Eingrenzung oder einer Beschränkung der Effekte eines
Softwaremoduls. Ein Geringstes-Privileg-Design ist ein solches, bei
dem Software nur mit denjenigen Daten in Berührung tritt,
die es zum Betrieb benötigt, und sie nur auf solche Weisen
in Berührung tritt, die der Designer vorgesehen hat. Unerwünschte
Nebeneffekte, sei es von Softwarefehlern oder
bösartigen troyanischen Pferden, sind dann auf die
"unmittelbare Nachbarschaft" des Moduls begrenzt. Diese fundamentale
Fähigkeit der Typdurchsetzung erstickt, wenn geeignet
angewandt, die meisten üblichen Angriffsarten, wobei eine
Verletzlichkeit bei einer Anwendung dazu verwendet wird, sich
in kritischere Abschnitte des Systems einzumischen oder
deren Steuerung zu übernehmen.
-
Um diese Fähigkeit zu nutzen, muss die Anwendung nur
herkömmlichen Unix-Vorgehensweisen folgen und in Form mehrerer
Prozesses realisiert sein. Diese Prozesse können einer
speziellen Klasse zugewiesen sein, wie dies für die Daten
gelten kann, auf die sie zugreifen. Die DDT kann so
konfiguriert werden, dass sie nur das geringste Ausmaß an Zugriff
zulässt, das für das gewünschte Funktionsvermögen
erforderlich ist.
-
Die oben beschriebene Typdurchsetzung erlaubt es einem
Sicherheitsarchitekten, eine Gruppe von miteinander
verbundenen Anwendungen zu konstruieren und sie mit Gegenmaßnahmen
wie Datenfilter zu schützen. Der Architekt kann dies im
Vertrauen darauf ausführen, dass die Anwendungen und
Gegenmaßnahmen voneinander getrennt sind und Daten nur auf
diejenigen Arten gemeinsam genutzt werden, die der Architekt
definiert. Dies ermöglicht es dem Architekten, das System 40
durch Verwenden neuer Gegenmaßnahmen schnell so zu
aktualisieren, dass es auf Änderungen der Bedrohung reagiert; wobei
neue Anwendungen dadurch gewährleistet werden können, dass
Gegenmaßnahmen erstellt werden, die spezielle
Verletzlichkeiten der Anwendungen berücksichtigen; und wobei
kundenspezifische Sicherheitspolitiken realisiert werden, die einen
Kompromiss zwischen der Gefahr und dem Betriebswirkungsgrad
schließen.
-
Da bei der Typdurchsetzung Pipelines und Subsysteme
definiert werden, die hinsichtlich des Privilegs unabhängig
sind, macht die Hinzufügung eines neuen Subsystems oder die
Erweiterung einer Pipeline die für die vorige Struktur
erreichte augenscheinliche Sicherheit nicht obsolet, und zwar
weder innerhalb noch außerhalb. Vielmehr kann das
Sicherheitsteam die neuen Wechselwirkungen untersuchen und genau
entscheiden, welche Ausschließungspunkte hinsichtlich einer
Isolation noch gültig sind und welche neu untersucht werden
müssen.
-
Typdurchsetzung hat auch ihre Fähigkeit dahingehend gezeigt,
Verschlüsselung zu unterstützen, sei sie in Hardware oder
Software realisiert. Verschlüsselungsverarbeitung, mit ihren
Erfordernissen zur Trennung von Klartext und Chiffriertext,
ist ihre Art nach ein Pipelineprozess. Dies gilt unabhängig
davon, ob die Verschlüsselung an ihrer herkömmlichen
"Inline"-Position platziert ist oder ob sie im "Koprozessor"-
Modus verwendet wird, der für fortschrittlichere Dienste wie
digitale Signaturen und Nicht-Zurückweisung erforderlich
ist.
-
Typdurchsetzung ist aus zwei Gründen besser als die
grundlegenden Unix-Schutzmechanismen: sie ist zentralisiert statt
dezentralisiert und sie erlaubt es nicht, dass irgendein
Prozess über globalen, unkontrollierten Zugriff verfügt. In
Unix nutzen individuelle Programme den Mechanismus setuid,
um ihre eigene Privilegebene einzustellen. Eine spezielle
Privilegebene, die als "root" oder "super-user" bezeichnet
wird, lässt einen Benutzer alles tun, was er im System zu
tun wünscht: beobachten und manipulieren von Daten, Sperren
der Überprüfung, Installieren troyanischer Pferde oder
Verkleiden als andere Benutzer. Dies Kombination von
Dezentralisierung und möglichem globalem Privileg ist tödlich.
Dezentralisierung bedeutet, dass kein Ort existiert, an dem
nachgeschaut werden kann, ob das System sicher konfiguriert
ist. Globales Privileg bedeutet, dass eine einzelne
Verletzlichkeit oder ein Konfigurationsfehler katastrophal sein
kann.
-
Typdurchsetzung beseitigt diese beiden Probleme. Wenn ein
System 40 angehalten wird, wie mittels Fig. 4 angegeben, und
die DDT ausgespeichert wird, kann sicher gesagt werden,
welcher Code jemals mit Daten in Berührung kam. In einem Unix-
System kann dies nie gesagt werden. Außerdem erhält niemand
jemals globales Privileg, wenn der sichere Computer 80 an
ein Netzwerk angeschlossen ist.
-
Beim bevorzugten Ausführungsbeispiel ergänzen die
Typdurchsetzungs-Einschränkungen die Unix-Standarderlaubnisse,
ersetzen sie jedoch nicht. Das heißt, dass Unix-Erlaubnisse
so eingestellt werden können, dass sie weniger, aber nicht
mehr, Zugriff gewähren als dies Typdurchsetzung erlaubt.
Außerdem ist das Superuser-Privileg immer noch vorhanden,
jedoch kann es nicht dazu verwendet werden, die Beschränkungen
der Typdurchsetzung zu überschreiten.
-
Bei einem Ausführungsbeispiel löst ein System 40, wenn es
einen gerade ablaufenden Angriff (im Ergebnis z. B. einer
Typdurchsetzungs-Verletzung) erkennt, einen "stillen Alarm"
aus, auf den durch eine Anwendung spezifische
Gegenmaßnahmen-Software reagiert wird. Diese Software kann, abhängig
von der Art des Angriffs, die folgenden Maßnahmen ergreifen:
-
- Erfassen der IP-Adresse der angreifenden Site, um Anrufe
an die Siteverwalter zu ermöglichen, um Angreifer bei der
Aktion zu fangen.
-
- Liefern falscher und irreführender Daten an den Angreifer.
-
- Liefern nutzloser aber "interessanter" Daten an den
Angreifer, so dass er online bleibt und aufgespürt werden
kann.
-
- Liefern von baten an den Angreifer, die versteckte
Kennungsdaten enthalten, die dazu verwendet werden können, zu
beweisen, dass Daten von dieser Site gestohlen wurden.
-
Bei einem Ausführungsbeispiel wird ein Binärfilm dazu
verwendet, dafür zu sorgen, dass weder ausführbare Objekt noch
verschlüsselte Dateien in das System 40 oder aus ihm heraus
übertragen werden. (Das Verbot hinsichtlich ausführbarer
Objekte ist ein Versuch, in das System übertragene bösartige
Software zu erfassen und das Versenden von möglicherweise
individuellem Objektcode vom System 40 an das Internea zu
erkennen. Das Verbot hinsichtlich einer Übertragung
verschlüsselter Dateien ist ein Versuch zum Verhindern des
Versendens verschlüsselter Versionen individueller Information
entweder an das System 40 oder von diesem.) Bei einem
Ausführungsbeispiel mit Binärfilter wird Text analysiert, um zu
ermitteln, ob er in Englisch geschrieben ist. Das Filter
sieht jedes Zeichen und seinen nächsten Nachbarn an und
ermittelt die Häufigkeit von Buchstabenpaaren ("diagrafischer
Korrelationsindex"). Wenn der Korrelationsindex
näherungsweise dasjenige anzeigt, was für englischen Text erwartet
wird, ist die Datei möglicherweise englischer Text und kann
übertragen werden. Falls nicht, stoppt das Filter 92 die
Übertragung.
Betrieb des sicheren Weitbereich-Zugriffssystems
-
Wenn es ein Client wünscht, Information auf das öffentliche
Netz 74 auszugeben, muss er als Erstes die lokale
Verschlüsselung verwenden, um berechtigte und geschützte
Wechselwirkung mit dem sicheren Computer 48 aufzubauen. Dann gibt die
Client die erforderlichen Befehle über das Client-Interface
aus, und diese Befehle und ihre Zuordnungen werden dann vom
integrierten Satz von Diensten und Filter-Gegenmaßnahmen im
sicheren Computer ausgeführt und kontrolliert. Dann wählt
das Modul für das öffentliche Netzprotokoll und die
Verschlüsselung den geeigneten Berechtigungserteilungs- und
Schutzmechanismus für die Wechselwirkung betreffend das
öffentliche Netz 74 aus. Abhängig von den verwendeten
Protokollen und Verschlüsselungsverfahren können dann das
öffentliche Netz 74 und das Verschlüsselungsmodul 70 eine
Verschlüsselung und Formatumwandlungen an den Daten ausführen.
Am üblichsten wäre es, wenn dazu Verschlüsselungsdaten
gehören würden, die unter Verwendung lokaler Verschlüsselung
verschlüsselt wurden, wobei das zugehörige Format von einem
lokalen Mitteilungs- oder Datenübertragungsformat auf einen
globalen Standard geändert würde und eine Verschlüsselung
unter Verwendung globaler Verschlüsselung erfolgen würde.
Gleichzeitig kann der sichere Computer 48 eine
Nachprüfungsaufzeichnung erzeugen und diese mit Schlüsselmaterial für
die Verschlüsselung schützen, das nur berechtigten
Verwaltern zugänglich ist.
-
Wenn eine Berechtigungserteilung erforderlich ist, kann der
sichere Computer 48 die Daten entweder unter Verwendung von
eigenem Schlüsselmaterial für die Verschlüsselung
"bestätigen" oder "beglaubigen", oder er kann als sicherer Speicher
und Auswähleinrichtung wirken, wodurch die örtliche
Berechtigung des Clients dazu verwendet wird, das persönliche
Schlüsselmaterial auszuwählen, das dazu verwendet wird, die
Identität des Clients im öffentlichen Netz 74 zu bestätigen.
Die Einrichtungen des sicheren Computers 48 können andere
Informationen, wie die Tageszeit, den Dateninhalt usw. sowie
die Maßnahmen der lokalen Verschlüsselung dazu verwenden, zu
entscheiden, ob eine Berechtigungserteilung für die
abgehende Information auszuführen ist oder nicht.
-
Ein wichtiger Spezialfall liegt dann vor, wenn zwei Systeme
40 an zwei verschiedenen Orten zur selben Organisation
gehören. Eine derartige Situation ist in den Fig. 12 und 13 dargestellt.
In Fig. 12 sind zwei Systeme 40 durch ein externes
öffentliches Netz 74 verbunden. In Fig. 13 können zwei durch
ein externes öffentliches Netz 74 verbundene Systeme auch
mit einer unklassifizierten Arbeitsgruppe 100 oder mit
einzelnen Computern 102 und 104 kommunizieren, die direkt mit
dem Netz 74 verbunden sind. In derartigen Fällen können
spezielle Protokolle und Schlüsselmaterial dazu verwendet
werden, die Systeme einander zu identifizieren und spezielle
Vorgänge anzuzeigen, wie Verwaltungsänderungen und Alarme.
Außerdem können die Systeme 40 leicht Schlüssel auf sichere
Weise zwischen ihnen verteilen. Bei einem
Ausführungsbeispiel enthalten die Systeme 40 die Software Trusted Path,
die dazu verwendet werden kann, zwischen den unabhängigen
Systemen 40 einen vertrauenswürdigen Pfad für das
öffentliche Netz 74 zu errichten.
-
Der Fluss eingehender Information ist im Wesentlichen
symmetrisch zu dem für herausgehende: die Daten werden vom
öffentlichen Netz 74 empfangen, falls erforderlich
entschlüsselt und hinsichtlich der Berechtigung überprüft, und sie
werden dann durch die Filter-Gegenmaßnähmen 68 geleitet, um
zu ermitteln, ob es die organisatorische Sicherheitspo litik
erlaubt, dass Daten mit dieser Markierung, diesem Format
oder diesem Inhalt in das private Netz 64 eingelassen
werden. Wenn dies der Fall ist, verwendet der sichere Computer
48 örtliche Verschlüsselung zum Schützen und zur
Berechtigungserteilung betreffend die Übertragung an die Client-
Workstation 63. Wenn der Client auf die Daten zugreift, kann
er diese Verschlüsselung dazu verwenden, darzustellen, dass
die Daten demjenigen entsprechen, dem über das öffentliche
Netz 74 die Berechtigung bestätigt wurde.
Vorteile gegenüber anderen Verfahren für sichere
Datenübertragung
-
Die allgemeinen Vorteile des Ausführungsbeispiels rühren von
seiner Zentralisierung von Sicherheitsdiensten im sicheren
Computer 48 her. Diese Zentralisierung nutzt die Tatsache,
dass Client-Workstations 63 durch zentralisierte Dienste wie
Verzeichnisse für Email, Datenbanken mit
Sicherheitsattributen und eine Archivspeicherung von
Verschlüsselungsschlüsseln unterstützt werden müssen. So ist jede
Sicherheitsarchitektur, die Verschlüsselung nutzt, im einen oder anderen
Grad zentralisiert.
-
In ähnlicher Weise sind die Maßnahmen zum Erkennen und
Reagieren auf Sicherheitsalarme in der nützlichsten Weise
zentralisiert. Wenn ein Client an einem möglicherweise
ausgesetzten Ort darüber informiert wird, dass ein Netz
möglicherweise gerade angegriffen wird, kann dies das Gegenteil
des Gewünschten bewirken: Der Client kann für derartige
Information nicht berechtigt sein, und selbst wenn er
berechtigt wäre, könnte es sein, dass die Einzelperson über keine
sichere Maßnahme zum Mitteilen dieser Information an
Verwalter verfügt. Auch möchte man nicht eine mögliche
Insiderbedrohung darüber informieren, dass ein Angriff erkannt wurde.
So ist wiederum ein gewisser Zentralisierungsgrad in der
Architektur unvermeidbar. Ferner fügt Zentralisierung von
Sicherheitsmaßnahmen günstige Wirkungen sowohl hinsichtlich
der Sicherheit als auch der Wirtschaft lichkeit hinzu:
-
1) Mechanismen in den Workstations können als Software: und
mit minimaler, falls überhaupt, Hardware realisiert werden.
Diese Realisierungsstrategie beschränkt die Stärke der
Workstation-Mechanismen, und sie ist nur dann akzeptierbar, wenn
sie durch die Stärken und Einrichtungen eines zentralen
sicheren Computers und den beschränkten Zugriff, wie er für
ein privates Netz charakteristisch ist, "unterstütz" werden.
-
2) Die Konzentration der Sicherheitserfordernisse und
-maßnahmen im sicheren Computer ermöglicht es, dass diese
Einheit eine Überprüfung in einem Ausmaß erfährt, wie sie für
individuelle Workstations nicht ausführbar wäre. Wenn der
sichere Computer geeignet konzipiert ist, sollte er dazu in
der Lage sein, mehrere Generationen der
Workstationtechnologie zu unterstützen, um dadurch die Kosten spezialisierter
Sicherheitskonstruktionen über die Zeit zu verteilen.
-
3) Die Konzentration von Gegenmaßnahmen in einem speziell
konstruierten sicheren Computer erhöht die Anstrengungen und
die Gefahr technischer Angriffe, da es die Angreifer
entweder zu Konstruktionsvorgängen in Rückwärtsrichtung sowie
dazu zwingt, eine aktuelle Kopie des Computers und seiner
gesamten zugehörigen Software betreffend Gegenmaßnahmen zu
realisieren oder auf andere Weise zu erhalten. Dies ist
schwieriger, als ein Exemplar einer Workstation und der
zugehörigen Software zu erhalten. Konzentration vereinfacht
auch den Prozess des Reagierens auf neue oder nicht
vorhergesehen Angriffe, da weniger Einheiten zu ändern sind und
diese Einheiten bereits unter Kontrolle der
Sicherheitsverwalter stehen.
-
4) Konzentration vereinfacht auch den Prozess des Verwaltens
der Sicherheitsdatenbanken, und es erhöht die
Geschwindigkeit und die Zuverlässigkeit, mit der Privilegien gewährt
und, was wichtiger ist, widerrufen werden können.
-
5) Der sichere Computer verfügt, seiner tatsächlichen Art
nach, über Merkmale, die ihn zu einer nahezu optimalen
Plattform für die Verwaltung und die Verteilung von
Schlüsseln machen: starke Berechtigungsbestätigung betreffend.
Einzelpersonen, sichere Datenspeicherung, Kontrollen betreffend
Zugriff auf diesen Daten und starke Widerstandsfähigkeit
gegen Angriffe durch bösartige Software.
-
6) Ein sicherer Computer sorgt, dank seiner zentralen Rolle
und der engen Wechselwirkung mit Sicherheitsverwaltern, für
einen logischen und wirkungsvollen Ort für den Empfang und
die Reaktion auf Sicherheitsalarme. Diese Eigenschaft ist
mit der Fähigkeit kombiniert, auf neue Angriffe dadurch zu
reagieren, dass eine kleinere Anzahl zentraler Sites und die
Geschwindigkeit und die Effektivität von Änderungen an
Sicherheitsdatenbanken aufgerüstet werden, um die
zentralisierte Vorgehensweise der Art nach bessere reaktionsfähig
als Architekturen ohne einen zentralen Punkt der
Sicherheitsdurchsetzung zu machen, wo Alarme, Softwareänderunge
und Änderungen an Datenbanken über eine größere Anzahl von
von Benutzer verwalteten Workstations laufen müssen.
-
Insbesondere sorgt das Ausführungsbeispiel für hervorragende
Berechtigungsbestätigung betreffend Clients gegenüber
Verfahren wie Verschlüsselung mittels Workstations. Bei
Verschlüsselung mittels Workstations erteilen sich Clients in
verletztlichen Workstations mittels persönlicher Kennungen
wie Passwörtern, Passsätzen, persönlichen
Identifizierungsnummern oder Merkmals-basierenden
Berechtigungserteilungsmaßnahmen, selbst Berechtigungsbestätigungen. Es existiert
keine geschützte Backupinformation oder eine kontextbezogene
Überprüfung, die hinsichtlich derartiger Vorgänge zur
Berechtigungsbestätigung möglich wäre; wenn die
Berechtigungsbestätigung einmal erteilt ist, ist dem Client tatsächlich
vollständiger Zugriff auf das öffentliche Netz gewährt.
Demgegenüber kann ein sicherer Computer eine geschützte
Aufzeichnung von Client-Aktionen aufrechterhalten, und er
beurteilt die Eigentümlichkeit einer berechtigten Aktion auf
Grundlage der Daten sowie anderer Kriterien wie der
Tageszeit, ob es sich um einen Geschäfts- oder einen Feiertag
handelt, oder durch andere Prüfvorgänge mit beliebiger
Ausgeklügeltheit. Umgekehrt, erlaubt es das
Ausführungsbeispiel, "offizielle" Daten oder Transaktionen zu senden, bei
denen die Identität der auslösenden Einzelperson gegen das
öffentliche Netz abgeschirmt ist und nur die Identität der
Organisation mit Berechtigungsbestätigung versehen ist. Diese
Maßnahme ist dann von Nutzen, wenn die Art der
Transaktion oder der Daten den Client für unerwünschte
Aufmerksamkeit, Belästigungen oder Vergeltungsmaßnahmen offen machen
könnte.
-
Das Ausführungsbeispiel sorgt dahingehend für einen Vorteil
gegenüber Workstation-Verschlüsselung, dass es möglich ist,
ausgeklügelte, inhaltsbezogene, organisatorische
Sicherheitspolitiken durchzusetzen. Eine derartige Durchsetzung
ist dann nicht möglich, wenn Daten in einer Workstation
verschlüsselt werden und dann direkt an das öffentliche Netz
geliefert werden. Zusätzlich zum Durchsetzen
inhaltsbezogener Politiken erlaubt das Ausführungsbeispiel die Nachprüfung
von Dateninhalten, um vor einem Missbrauch des Privilegs
abzuschrecken, Daten an das öffentliche Netz zu senden. Diese
beiden Maßnahmen sind von Nutzen, um Insider-Bedrohungen
entgegenzuwirken.
-
Das Ausführungsbeispiel ist Workstation-Verschlüsselung
dahingehend überlegen, dass es eine Vielzahl von
Kommunikationsprotokollen und Verschlüsselungsverfahren handhaben
kann, ohne dass die Vielfalt in der Client-Workstation
erkennbar ist. Dadurch wird nicht nur der Umfang von Hardware-
und Softwaremechanismen in mehreren Workstations gesenkt,
sondern es ist auch möglich, ein einzelnes Client-Interface
für den Zugriff auf ein heterogenes öffentliches Netz zu
verwenden. Der sichere Computer kann, nachdem er
entschlüsselt hat, was durch die örtliche Verschlüsselung geschützt
und mit Berechtigungsbestätigung versehen wurde, auf interne
Tabellen, Verzeichnisse im öffentlichen Netz oder den
Zielknoten Bezug nehmen, um ein gemeinsames Protokoll und ein
Verschlüsselungsverfahren zu bestimmen oder auszuhandeln.
All diese kann ohne Wissen oder Eingreifen des Clients
erfolgen.
-
Das Ausführungsbeispiel ist Workstation-Verschlüsselung
dahingehend überlegen, dass es für einen sichereren und
zuverlässigeren Rahmen hinsichtlich der Verwaltung von
Schlüsselmaterial sorgt. Dieser Vorteil wird unabhängig davon
erzielt, ob Verschlüsselung mit einem geheimen oder einem
öffentlichen Schlüssel angewandt wird. Der sichere Computer
sorgt für einen zentralen Ort für die Verteilung und
Verwaltung von Schlüsselmaterial für alle Clients im privaten
Netz, und er enthebt die Client-Workstations von der
Verantwortung, für jede Wechselwirkung mit einem öffentlichen Netz
an diesem Schlüsselmaterial zu erhalten. Die Verteilung von
Schlüsselmaterial für das öffentliche Netz über den sicheren
Computer erlaubt größere Sicherheit dahingehend, dass die
Identität der anfordernden Clients gegenüber dem Dienst für
das Schlüsselmaterial im öffentlichen Netz verborgen werden
kann. Das Ausführungsbeispiel sorgt auch für hervorragende
Lösungen hinsichtlich Problemen betreffend Widerruf, Not-
Rückschlüssel und reisende Benutzer.
-
Die Verwendung eines sicheren Computers als zentraler Punkt
zur Verteilung und Verwaltung von Schlüsselmaterial erlaubt
den effektiven und effizienten Zugriffswiderruf für entweder
das private oder das öffentliche Netz. Bei den meisten
üblichen Konfigurationen werden von der örtlichen
Verschlüsselung Verfahren mit geheimem Schlüssel verwendet, während für
globale Verschlüsselung Verfahren mit öffentlichem Schlüssel
erforderlich sind. Wenn der private Schlüssel des
öffentlichen Schlüsselmaterials eines Clients an Client-Workstations
verteilt wird, oder, noch schlechter, in entfernbaren Tokens
gespeichert werden kann, die der Client entfernen kann,
benötigt der Widerruf der Fähigkeit zur Entschlüsselung (oder
noch wichtiger, zur Berechtigungserteilung) von Daten eine
zeitaufwendige und unverlässige "Rundübertragung" von
Widerrufanfragen an alle möglichen Ziele im öffentlichen Netz.
Wenn der private Schlüssel im sicheren Computer gehalten
wird, kann der Zugriff auf ihn einfach und schnell
wicierrufen werden.
-
Das Ausführungsbeispiel ist Workstation-Verschlüsseluncr
dahingehend überlegen, dass für einen Notrückschlüssel-hienst
gesorgt wird, insbesondere dann, wenn Verfahren mit
öffentlichem Schlüssel im öffentlichen Netz verwendet werden. Wenn
der private Schlüsselteil eines öffentlichen
Schlüsselmaterials eines Clients verlorengeht oder zerstört wird,
verliert der Client die Fähigkeit, Daten zu entschlüsseln, die
zuvor mit dem entsprechenden öffentlichen Schlüssel
verschlüsselt wurden. Es reicht nicht aus, ein neues Privat-
Öffentlich-Paar auszugeben, da im Verlauf oder in Archiven
Daten vorliegen können, die mit dem öffentlichen Schlüssel
verschlüsselt wurden, die dem verlorengegangen privaten
Schlüssel entsprechen. Dann besteht das Problem darin, eine
Kopie des privaten Schlüssels auf stark geschützte Weise
aufzubewahren und ihn erst dann verfügbar zu machen, nachdem
eine korrekte Berechtigungsbestätigung erzielt wurde. Dies
ist eine natürliche Aufgabe eines sicheren Computers mit
gestütztem Speicher und mit geschützten Mechanismen und
Zugriff, der auf berechtigte Verwalter beschränkt ist. Wenn
die Organisation an mehreren Orten über sichere
Internetwerkdienste-Systeme verfügt, können diese dadurch
zusammenwirken, dass Backup-Kopien von kritischem Schlüsselmaterial
für einander aufrechterhalten werden.
-
Das Ausführungsbeispiel ist Workstation-Verschlüsselung
dahingehend überlegen, dass ein sicherer Computer an einem
fort das erforderliche Schlüsselmaterial an einen anderen
Ort weiterleiten kann, unabhängig davon, ob es sich um ein
sicheres Internetdienste-System oder irgendeinen anderen
Knoten im öffentlichen Netz handelt. Dieses Weiterleiten
kann eng kontrolliert und nachgeprüft werden, und die
hervorragenden Rückruffähigkeiten werden dazu verwendet, der
Periode eine Grenze aufzuerlegen, während der das
weitergeleitete Material genutzt werden kann.
-
Das Ausführungsbeispiel ist Netzwerk-Verschlüsselung
dahingehend überlegen, dass es Kontrollen, Nachprüfung, Schutz
und Berechtigungsbestätigung für die Aufteilung betreffend
einen einzelnen Client statt gerade für den Knoten erlaubt.
-
Obwohl die Erfindung unter Bezugnahme auf die bevorzugten
Ausführungsbeispiele beschrieben wurde, erkennt der
Fachmann, dass hinsichtlich der Form und Einzelheiten Änderungen
vorgenommen werden können, ohne vom Schutzumfang der durch
die beigefügten Ansprüche definierten Erfindung abzuweichen.