[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

DE69522460T2 - System und verfahren zur erzeugung gesicherter internetzwerkdienste - Google Patents

System und verfahren zur erzeugung gesicherter internetzwerkdienste

Info

Publication number
DE69522460T2
DE69522460T2 DE69522460T DE69522460T DE69522460T2 DE 69522460 T2 DE69522460 T2 DE 69522460T2 DE 69522460 T DE69522460 T DE 69522460T DE 69522460 T DE69522460 T DE 69522460T DE 69522460 T2 DE69522460 T2 DE 69522460T2
Authority
DE
Germany
Prior art keywords
network
domain
data
secure
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69522460T
Other languages
English (en)
Other versions
DE69522460D1 (de
Inventor
Glenn Andreas
E. Boebert
P. Gooderum
W. Hammond
O. Rogers
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Secure Computing LLC
Original Assignee
Secure Computing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Secure Computing LLC filed Critical Secure Computing LLC
Publication of DE69522460D1 publication Critical patent/DE69522460D1/de
Application granted granted Critical
Publication of DE69522460T2 publication Critical patent/DE69522460T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

    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 &ne; 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.

Claims (22)

  1. L. Sicheres Zugriffssystem für ein großes Gebiet, mit einem ersten sicheren Computer (48), der ein erstes Interface (64) für ein internes Netz und ein Interface (72) für ein öffentliches Netz aufweist, einem ersten internen Netz (64) und einem über das erste interne Netz mit dem ersten sicheren Computer verbundenen ersten Computersystem (63),
    wobei der erste sichere Computer außerdem ein Programmcodemodul (70) für ein öffentliches Netz zur Verwendung bei der Kommunikation über das Interface für das öffentliche Netz mit dem öffentlichen Netz (74j, ein Programmcodemodul (66) für ein privates Netz zur Verwendung bei der Kommunikation über das erste Interface für das interne Netz mit dem ersten Computersystem und ein Programmcodemodul (68) für ein Sicherneitsvorgehen zum Durchsetzen eines Typ-gebundenen Sicherheitsmechanismus aufweist, um den Zugriff eines Prozesses auf Daten zu beschränken, und
    wobei das Programmcodemodul für das Sicherheitsvorgehen einen Programmcode für eine gesicherte Pipeline zur Begrünlung einer gesicherten Pipeline für die Übertragung von Daten and Programmen zwischen dem ersten internen Netz und dem öffentlichen Netz über den sicheren Computer beinhaltet, wobei der Programmcode für die gesicherte Pipeline aufweist:
    i) Programmcode, der. Prozesse in Domainen anordnet, wobei von dem öffentlichen Netz empfangene Prozesse einer externen Domaine zugeordnet werden,
    ii) Programmcode, der Typen zu Dateien zuordnet, und
    iii) Programmcode, der den Zugriff auf bestimmte Dateitypen durch Prozesse innerhalb der externen Domaine beschränkt.
  2. 2. System nach Anspruch 1, wobei das Programmcodemodul für das Sicherheitsvorgehen Programmcode zur Verstärkung Eines UNIX-Betriebssystems darstellt.
  3. 3. System nach Anspruch 2, wobei der Programmcode zur Verstärkung des UNIX-Betriebssystems einen Kernelcode zur Durchsetzung einer Typbindung über einen Betriebskernel beinhaltet.
  4. 4. System nach Anspruch 1, wobei das erste Computersystem ein Client-Subsystem (62) für die sichere Übertragung von Daten von einer Workstation zum Interface für das interne Netz des sicheren Computers beinhaltet.
  5. 5. System nach Anspruch 4, wobei das Client-Subsystem ein.
    auf dem ersten Computersystem laufendes Softwareprogramm ist.
  6. 6. System nach Anspruch 1, außerdem aufweisend:
    ein zweites internes Netz (64),
    einen zweiten sicheren Computer (48), wobei der erste und der zweite sichere Computer mit dem öffentlichen Netz verbunden sind, wobei
    der erste sichere Computer außerdem ein erstes Interface (72) für ein externes Netz aufweist, und
    der zweite sichere Computer aufweist:
    ein zweites Interface (64) für ein internes Netz, und
    ein zweites Interface (72) für ein externes Netz,
    wobei die ersten und zweiten Netz-Interfaces der sicheren Übertragung von Daten von dem ersten sicheren Computer zu dem zweiten sicheren Computer über das öffentliche Netz dienen und das erste und das zweite Interface für das externe Netz eine Einrichtung (70) zur Verschlüsselung von von dem ersten sicheren Computer zu dem zweiten sicheren Computer zu übertragenden Daten beinhalten,
    wobei das erste Computersystem ein erstes Client-Subsystem (62) beinhaltet, das über das erste interne Netz mit dem Interface für das interne Netz des ersten sicheren Computers verbunden ist und das erste Client-Subsystem eine Einrichtung zur sicheren Übertragung von Daten zwischen dem ersten Computersystem und dem ersten sicheren Computer beinhaltet und wobei außerdem vorhanden ist:
    ein zweites Computersystem (63), das ein zweites Client-Subsystem (62) aufweist, das über das zweite interne Netz mit dem Interface für das interne Netz des zweiten sicheren Computers verbunden ist und eine Einrichtung zur sicheren Übertragung von Daten zwischen dem zweiten Computersystem und dem zweiten sicheren Computer aufweist.
  7. 7. System nach Anspruch 6, wobei der erste sichere Computer einen Mehrstufen-Sicherheitscomputer darstellt, der Datenverschiedener Sensitivität und Nutzer verschiedener Autorisierungen erkennen kann.
  8. 8. System nach Anspruch 6, wobei der erste sichere Computer ein Typbindungs-Sicherheitscomputer ist, der Daten verschiedener Sensitivität erkennen und den Zugriff auf Daten sowohl aufgrund von Nutzerzugriffsrechten als auch aufgrund von Prozeßzugriffsrechten beschränken kann.
  9. 9. System nach Anspruch 8, wobei der erste sichere Computer außerdem aufweist:
    eine Einrichtung zum selektiven Filtern von von dem zweiten internen Netz empfangenen Nachrichten nach einem ersten vorbestimmten Kriterium, und
    eine Einrichtung zum selektiven Filtern von von dem öffentlichen Netz empfangenen Daten nach einem zweiten vorbestimmten Kriterium.
  10. 10. System nach Anspruch 1, außerdem aufweisend:
    ein externes Netz (74),
    einen zweiten sicheren Computer (48), wobei der erste und der zweite sichere Computer über das externe Netz verbunden sind und entsprechende Verschlüsselungseinrichtungen (70) zum Verschlüsseln und Entschlüsseln von zwischen ihnen übertragenen Daten aufweisen,
    wobei das erste Computersystem eine Einrichtung zum Verschlüsseln und Entschlüsseln von zwischen ihm und dem ersten sicheren Computer übertragenen Daten aufweist.
  11. 11. System nach Anspruch 10, wobei der erste sichere Computer außerdem aufweist:
    eine Einrichtung (68) zum selektiven Filtern von von dem internen Netz empfangenen Nachrichten nach einem ersten vorbestimmten Kriterium, und
    eine Einrichtung (68) zum selektiven Filtern von von dem externen Netz empfangenen Daten nach einem zweiten vorbestimmten Kriterium.
  12. 12. System nach Anspruch 10, wobei der erste sichere Computer einen Mehrstufen-Sicherheitscomputer darstellt, der Daten verschiedener Sensitivität und Nutzer verschiedener Autorisierungen erkennen kann.
  13. 13. System nach Anspruch 10, wobei der erste sichere Computer einen Typbindungs-Sicherheitscomputer darstellt, der Daten unterschiedlicher Sensitivität erkennen und den Zugriff auf Daten sowohl aufgrund von Nutzerzugriffsrechten als auch aufgrund von Prozeßzugriffsrechten beschränken kann.
  14. 14. Verfahren zum Schutz eines Computersystems (40), das mit einem ungesicherten externen Netz (74) verbunden ist und mehrere mit einem privaten Netz verbundene Workstations (63) aufweist, wobei das Verfahren folgende Schritte beinhaltet:
    Zurverfügungstellen eines sicheren Computers (48), der einen Programmcode für ein Sicherheitsvorgehen zur Durchsetzung eines Typ-gebundenen Sicherheitsmechanismus aufweist, um den Zugriff eines Prozesses auf Daten zu beschränken,
    Verbinden des Typbindungs-basierten sicheren Computers mit dem privaten Netz, und
    Einrichten einer gesicherten Pipeline zur Übertragung von Daten und Programmen zwischen dem privaten und dem externen Netz über den sicheren Computer mit folgenden Schritten:
    i) Anordnen von Prozessen in Domainen, mit Einem Schritt zum Zuordnen von von dem externen Netz empfangenen Prozessen zu einer externen Domaine,
    ii) Zuordnen von Typen zu Dateien, und
    iii) Beschränken des Zugriffs durch Prozesse innerhalb der externen Domaine auf bestimmte Dateitypen.
  15. 15. Verfahren nach Anspruch 14, wobei der Schritt des Anordnens von Prozessen in Domainen die folgenden Schritte beinhaltet:
    Festlegen einer Domainen-Definitionstabelle innerhalb des sicheren Computers,
    Zuordnen eines Domainennamens zu jeder Domaine, und
    Erzeugen eines Eintrags für jeden Prozeß in der Domaizen-Definitionstabelle, mit einem Schritt zum Assozizeren nnes Domainennamens mit jedem Eintrag.
  16. 16. Sicherer Server zur Verwendung bei der Zugriffskontrolle auf innerhalb eines internen Netzes gespeicherte Daten, aufweisend:
    einen administrativen und einen Betriebskernel, wobei der Betriebskernel einen Programmcode für ein Sicherheitsvorgehen beinhaltet, um einen Typ-gebundenen Sicherheitsmechanismus durchzusetzen, um einen Zugriff durch einen von einem externen Netz empfangenen Prozeß auf in dem internen Netz gespeicherte Daten zu beschränken,
    wobei der Programmcode für das Sicherheitsvorgehen einen Programmcode für eine gesicherte Pipeline beinhaltet, um eine gesicherte Pipeline zur Übertragung von Daten und Programmen zwischen dem internen Netz und dem externen Netz über den sicheren Server einzurichten, wobei der Programmcode für die gesicherte Pipeline aufweist:
    i) Programmcode, der Prozesse in Domainen anordnet, wobei von dem externen Netz empfangene Prozesse einer externen Domaine zugeordnet werden,
    ii) Programmcode, der Typen zu Dateien zuordnet, und
    iii) Programmcode, der den Zugriff durch Prozesse in der externen Domaine auf bestimmte Dateitypen beschränkt, und
    wobei der administrative Kernel zur Ausführung lediglich während einer Isolation von dem internen Netz beschränkt ist.
  17. 17. Sicherer Server mit einem Prozessor (80), einem Interface (90) für ein internes Netz, das zur Kommunikation mit einem internen Netz mit dem Prozessor verbunden ist, und einem Interface (96) für ein externes Netz, das zur Kommunikation mit einem externen Netz (74) mit dem Prozessor verbunden ist,
    wobei der Prozessor einen Server-Programmcode (92) zur übertragung von Daten zwischen dem Interface für das interne and dem für das externe Netz sowie ein Programmcodemodul für pin Sicherheitsvorgehen zur Durchsetzung eines Typ-gebundenen Sicherheitsmechanismus beinhaltet, um den Zugriff eines von dem externen Netz empfangenen Prozesses auf in dem internen Netz gespeicherte Daten zu beschränken, und
    wobei das Programmcodemodul für das Sicherheitsvorgehen Programmcode für eine gesicherte Pipeline beinhaltet, um eine gesicherte Pipeline zur Übertragung von Daten und Programmen zwischen dem internen Netz und einem öffentlichen Netz über den sicheren Computer einzurichten, wobei der Programmcode für die gesicherte Pipeline aufweist:
    i) Programmcode, der Prozesse in Domainen anordnet, wobei von dem externen Netz empfangene Prozesse einer externen Domaine zugeordnet werden,
    ii) Programmcode, der Typen zu Dateien zuordnet, und
    iii) Programmcode, der den Zugriff durch Prozesse innerhalb der externen Domaine auf bestimmte Dateitypen beschränkt.
  18. 18. Server nach Anspruch 17, wobei der Prozessor außerdem eine Verschlüsselungseinrichtung zur Verschlüsselung von von lern internen Netz auf das externe Netz zu übertragenden Daten beinhaltet.
  19. 19. Server nach Anspruch 17, wobei der Prozessor außerdem einen Filter-Programmcode zum Filtern von zwischen dem Interface für das interne und dem für das externe Netz übertragenen Daten beinhaltet.
  20. 20. Server nach Anspruch 17, wobei der Prozessor außerdem aufweist:
    eine Einrichtung zum selektiven Filtern von von dem internen Netz empfangenen Nachrichten nach einem ersten vorbestimmten Kriterium, und
    eine Einrichtung zum selektiven Filtern von von dem externen Netz empfangenen Nachrichten nach einem zweiten vorbestimmten Kriterium.
  21. 21. Server nach Anspruch 17, wobei der Prozessor außerdem einen formatierenden Programmcode zum Ändern des Formats von zwischen dem Interface für interne Netz und dem Interface für das externe Netz übertragenen Daten beinhaltet.
  22. 22. Verfahren zur Übertragung von Daten zwischen einem ersten und einem zweiten Netz (42), die über ein externes Netz (43) verbunden sind, wobei das erste Netz eine mit einem ersten sicheren Computerserver (48) verbundene erste Workstation (63) und das zweite Netz eine mit einem zweiten sicheren Computerserver (48) verbundene zweite Workstation (63) beinhaltet, wobei jeder sichere Computerserver eine erste Verschlüsselungseinrichtung (66) eines verläßlichen Subsystems zur Verschlüsselung und Entschlüsselung von zwischen dem sicheren Computerserver und seiner entsprechenden Workstation übertragenen Daten sowie eine zweite Verschlüsselungseinrichtung (70) zur Verschlüsselung und Entschlüsselung von zwischen dem sicheren Computerserver und dem externen Netz übertragenen Daten aufweist und das Verfahren die folgenden Schritte beinhaltet:
    Einrichten einer authentisierten und geschützten Interaktion zwischen der ersten Workstation und dem ersten sicheren Computerserver,
    Senden von Daten von der ersten Workstation an den ersten sicheren Computerserver,
    Durchsetzen eines Typ-gebundenen Sicherheitsmechanismus auf dem ersten sicheren Computerserver, um den Zugriff eines Prozesses auf Daten zu beschränken, aufweisend:
    Einrichten einer gesicherten Pipeline für die Übertragung von Daten und Programmen zwischen dem privaten Netz und dem externen Netz über den sicheren Computer mit folgenden Schritten:
    1) Anordnen von Prozessen in Domainen, mit einem Schritt zur Zuordnung eines von dem externen Netz empfangenen Prozesses zu einer externen Domaine,
    ii) Zuordnen von Typen zu Dateien, und
    iii) Beschränken des Zugriffs von Prozessen in der externen Domaine auf bestimmte Dateitypen,
    Wählen eines Authentisierungs- und Schutzmechanismus für eine Interaktion auf dem externen Netz,
    Verschlüsseln der von der ersten Workstation empfangenen Daten über die zweite Verschlüsselungseinrichtung des ersten sicheren Computerservers, und
    Senden der verschlüsselten Daten über das externe Netz an den zweiten sicheren Computerserver.
    Übersetzung der Figurenbeschriftung
    Fig. 1
    E-MAIL // E-Mail
    FTP ARCHIVES // FTP-Archive
    TELNET HOSTS // Telnet-Hosts
    USENET NEWS // Usenet-Nachrichten
    Fig. 3
    CLIENT // Client
    PUBLIC NETWORK // Öffentliches Netz
    48: Sicherer Computer
    60: Clientinterface-Modul
    62: Clientprotokoll-Modul
    63: Client-Workstation
    66: Privatnetzprotokoll-Modul
    68: Server und Filter-Gegenmaßnahmen
    70: Modul für Protokolle im öffentlichen Netz und Verschlüsselung
    Fig. 4
    USER // Benutzer
    INTERNET CONNECTION // Internetverbindung
    80: Verstärktes BS386-Unix auf großem Pentiumserver
    82: Serielle oder Netz-Verbindung
    84: Windows 3.1
    86: Protokollbaustein
    88: Client-Baustein
    90: Protokollbaustein
    92: Internetserver und Filter
    94: Internetprotokolle
    Fig. 5A
    FILTERED DATA // Gefilterte Daten
    FILTER PROCESS // Filterprozess
    FILTER PROGRAMM TEXT // Filter-Programmtext
    INTERNAL NETWORK // Internes Netz
    INTERNET // Internet
    INTERNET PROCESS // Internetprozess
    INTERNET PROGRAMM TEXT // Internet-Programmtext
    LOCAL PROCESS // Lokaler Prozess
    LOCAL PROGRAM TEXT // Lokaler Programmtext
    UNFILTERED DATA // Ungefilterte Daten
    Fig. 5B
    CLIENT PGM // Client-Programm
    DOMAIN // Domain
    FIL DATA // Filterdaten
    FILTER // Filter
    FLTR PGM // Filterprogramm
    INTERNET // Internet
    INTERNET PGM // Netzprogramm
    NO ACCESS ALLOWED // Kein Zugriff zulässig
    READ AND EXECUTE // Lesen und Ausführen
    READ AND WRITE // Lesen und schreiben
    READ ONLY // Nur lesen
    UNFIL DATA // Ungefilterte Daten
    Fig. 6
    Directories; not checked // Verzeichnisse; nicht überprüft Executable; effective Domain ist not changed // Ausführbar;
    effektive Domain wird nicht geändert Executable: effective Domain is set to creator field of full Type name for duration of execution // Ausführbar; die effektive Domain wird für die Dauer der Ausführung auf: das Feld creator des vollen Typnamens gesetzt Fifos; not checked // Fifos; nicht überprüft Files that are private to the creating Domain // Dateien, die für die erzeugende Domain privat sind Reserved // Reserviert Source Code Name // Quellencodename Subtype // Subtyp Usage // Gebrauch
    Fig. 7
    Attribute Name // Attributname If effective Domain of the process = creator field of Type, then process can change creator field // Wenn effektive Domain des Prozesses = Feld creator des Typs, dann kann der Prozess das Feld creator ändern Meaning // Bedeutung Process may destroy the object // Prozess kann das Objekt zerstören Process may execute contents of object. Will only be assigned to subtypes gate and exec and will never be combined with ddt_write // Prozess kann Inhalt des Objekts ausführen. Wird nur den Subtypen gate und exec zugeordnet und wird nie mit ddt_write kombiniert Process may modify object // Prozess kann das Objekt modifizieren Process may read (fetch) data from object // Prozess kann Daten vom Objekt lesen (abrufen) Process may rename object // Prozess kann das Objekt umbenennen Trigger an alarm signal to Rover monitoring facilities as a side effect of granting access // Auslösen eines Alarmsignals für Rover-Überwachungsmaßnahmen als Nebeneffekt des Gewährens von Zugriff
    Fig. 8
    Any // Beliebig change domain with MIME as domain name // Domain mit MIME als Domainname ändern Child Process Spawned // Kindprozess hervorgebracht Continue With Same Executable // Mit demselben ausführbaren Objekt fortfahren Explicit Exit from Gate // Explizites Verlassen des Gate- Vorgangs Explicit Gating // Expliziter Gatevorgang gate with SMTP als domain name // Gatevorgang mit SMTP als Domainname Implicit Gating // Implizierter Gatevorgang make domain with MIME as domain name // Domain mit MINE als Domainname erzeugen New Effective Domain // Neue effektive Domain New Executable // Neues ausführbares Objekt New Executable, as with execve // Neues ausführbares Objekt, wie bei execve New Effectice Domain // Neue effektive Domain New Real Domain // Neue tatsächliche Domain No Argument // Kein Argument Old Effective Domain // Alte effektive Domain Old Real Domain // Alte tatsächliche Domain Remarks // Anmerkungen Syscall // Systemaufruf Type of Executable Argument // Typ des Arguments des ausführbaren Objekts
    Fig. 9
    Can execute the ch_type or fch_type syscalls // Kann die Systemaufrufe ch_type oder fch_type ausführen Can exercise super-user privilege without tripping alarm // Kann das Superuser-Privileg ohne Auslösung eines Alarms ausüben Can perform functions required for startup only // Kann nur zum Starten erforderliche Funktionen ausführen Can set or adjust the system clock // Kann den Systemtakt einstellen oder korrigieren Can set user login name // Kann den Login-Namen des Benutzers einstellen Can transition to admin ("Greendome") mode // Kann in den Verwaltungs("Greendome")-Modus übergehen Meaning // Bedeutung Note that there ist no "can_ch_domain" privilige: the ability to change either the real or effektive Domain of a process is controlled by the DIT // Es ist zu beachten, dass kein Privileg "can_ch_domain" existiert: die Fähigkeit, entweder die tatsächliche oder effektive Domain eines Prozesses zu ändern, wird durch die DIT gesteuert
    Fig. 11
    LIST OF ALLOWED DE THAT D&sub1; CAN GATE INTO // Liste zulässiger DE, in die hinein D&sub1; einen Gate-Vorgang ausführen kann
    Fig. 12
    48: sicherer Computer
    63: Client
    74: öffentliches Netz, gegen Bedrohung anfällig
    Fig. 13
    NETWORK MANAGEMENT NODES // Netzverwaltungsknoten
    Privilege Name // Privilegname
    SECRET // Geheim
    UNCLASSTFIED // Unklassifiziert
    WORKSTATIONS WITH PCMCI CRYPTO CARDS // Workstations mit PCMCI-Verschlüsselungskarten
    74: Unklassifiziertes Weitbereichsnetz
DE69522460T 1994-10-12 1995-10-12 System und verfahren zur erzeugung gesicherter internetzwerkdienste Expired - Lifetime DE69522460T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/322,078 US5864683A (en) 1994-10-12 1994-10-12 System for providing secure internetwork by connecting type enforcing secure computers to external network for limiting access to data based on user and process access rights
PCT/US1995/012681 WO1996013113A1 (en) 1994-10-12 1995-10-12 System and method for providing secure internetwork services

Publications (2)

Publication Number Publication Date
DE69522460D1 DE69522460D1 (de) 2001-10-04
DE69522460T2 true DE69522460T2 (de) 2001-12-13

Family

ID=23253318

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69522460T Expired - Lifetime DE69522460T2 (de) 1994-10-12 1995-10-12 System und verfahren zur erzeugung gesicherter internetzwerkdienste

Country Status (5)

Country Link
US (4) US5864683A (de)
EP (1) EP0787397B1 (de)
AU (1) AU3888595A (de)
DE (1) DE69522460T2 (de)
WO (1) WO1996013113A1 (de)

Families Citing this family (434)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5819110A (en) 1995-06-05 1998-10-06 Ricoh Company, Ltd. System for determining whether connection or connectionless modes of communication should be used to transmit information between devices in accordance with priorities of events
JPH07271865A (ja) * 1994-04-01 1995-10-20 Mitsubishi Corp データベース著作権管理方法
US7036019B1 (en) * 1994-04-01 2006-04-25 Intarsia Software Llc Method for controlling database copyrights
US6744894B1 (en) 1994-04-01 2004-06-01 Mitsubishi Corporation Data management system
US5694546A (en) 1994-05-31 1997-12-02 Reisman; Richard R. System for automatic unattended electronic information transport between a server and a client by a vendor provided transport software with a manifest list
US7302415B1 (en) * 1994-09-30 2007-11-27 Intarsia Llc Data copyright management system
US5864683A (en) * 1994-10-12 1999-01-26 Secure Computing Corporartion System for providing secure internetwork by connecting type enforcing secure computers to external network for limiting access to data based on user and process access rights
EP0715241B1 (de) * 1994-10-27 2004-01-14 Mitsubishi Corporation Gerät für Dateiurheberrechte-Verwaltungssystem
US6424715B1 (en) * 1994-10-27 2002-07-23 Mitsubishi Corporation Digital content management system and apparatus
EP0709760B1 (de) 1994-10-27 2006-05-31 Intarsia Software LLC Urheberrechtsdatenverwaltungssystem
WO1996032685A1 (en) 1995-04-11 1996-10-17 Kinetech, Inc. Identifying data in a data processing system
JP3262689B2 (ja) * 1995-05-19 2002-03-04 富士通株式会社 遠隔操作システム
US6901433B2 (en) * 1995-06-07 2005-05-31 Microsoft Corporation System for providing users with a filtered view of interactive network directory obtains from remote properties cache that provided by an on-line service
US8595502B2 (en) * 1995-09-29 2013-11-26 Intarsia Software Llc Data management system
US7801817B2 (en) * 1995-10-27 2010-09-21 Makoto Saito Digital content management system and apparatus
US5826014A (en) * 1996-02-06 1998-10-20 Network Engineering Software Firewall system for protecting network elements connected to a public network
US5898830A (en) * 1996-10-17 1999-04-27 Network Engineering Software Firewall providing enhanced network security and user transparency
US5913024A (en) * 1996-02-09 1999-06-15 Secure Computing Corporation Secure server utilizing separate protocol stacks
US5867647A (en) * 1996-02-09 1999-02-02 Secure Computing Corporation System and method for securing compiled program code
US5918018A (en) 1996-02-09 1999-06-29 Secure Computing Corporation System and method for achieving network separation
US5764235A (en) * 1996-03-25 1998-06-09 Insight Development Corporation Computer implemented method and system for transmitting graphical images from server to client at user selectable resolution
US6263442B1 (en) * 1996-05-30 2001-07-17 Sun Microsystems, Inc. System and method for securing a program's execution in a network environment
US6754212B1 (en) 1996-07-12 2004-06-22 Hitachi, Ltd. Repeater and network system utililzing the same
US6111883A (en) * 1996-07-12 2000-08-29 Hitachi, Ltd. Repeater and network system utilizing the same
DE69734179T2 (de) * 1996-07-15 2006-06-29 At & T Corp. Verfahren und Vorrichtung zum Begrenzen des Zugriffs auf private Information in Domain Name Systemen durch Informationsfilterung
US6272538B1 (en) 1996-07-30 2001-08-07 Micron Technology, Inc. Method and system for establishing a security perimeter in computer networks
US6993582B2 (en) * 1996-07-30 2006-01-31 Micron Technology Inc. Mixed enclave operation in a computer network
US6003084A (en) * 1996-09-13 1999-12-14 Secure Computing Corporation Secure network proxy for connecting entities
GB2317539B (en) * 1996-09-18 2001-03-28 Secure Computing Corp Generalized security policy management system and method
US6072942A (en) * 1996-09-18 2000-06-06 Secure Computing Corporation System and method of electronic mail filtering using interconnected nodes
US5950195A (en) * 1996-09-18 1999-09-07 Secure Computing Corporation Generalized security policy management system and method
US5983350A (en) * 1996-09-18 1999-11-09 Secure Computing Corporation Secure firewall supporting different levels of authentication based on address or encryption status
US6102965A (en) * 1996-09-23 2000-08-15 National Instruments Corporation System and method for providing client/server access to graphical programs
US9219755B2 (en) 1996-11-08 2015-12-22 Finjan, Inc. Malicious mobile code runtime monitoring system and methods
US6167520A (en) 1996-11-08 2000-12-26 Finjan Software, Inc. System and method for protecting a client during runtime from hostile downloadables
US8079086B1 (en) 1997-11-06 2011-12-13 Finjan, Inc. Malicious mobile code runtime monitoring system and methods
US7613926B2 (en) * 1997-11-06 2009-11-03 Finjan Software, Ltd Method and system for protecting a computer and a network from hostile downloadables
US6154844A (en) * 1996-11-08 2000-11-28 Finjan Software, Ltd. System and method for attaching a downloadable security profile to a downloadable
US7058822B2 (en) 2000-03-30 2006-06-06 Finjan Software, Ltd. Malicious mobile code runtime monitoring system and methods
US20060129627A1 (en) * 1996-11-22 2006-06-15 Mangosoft Corp. Internet-based shared file service with native PC client access and semantics and distributed version control
US7058696B1 (en) 1996-11-22 2006-06-06 Mangosoft Corporation Internet-based shared file service with native PC client access and semantics
US6145004A (en) * 1996-12-02 2000-11-07 Walsh; Stephen Kelly Intranet network system
US5915087A (en) * 1996-12-12 1999-06-22 Secure Computing Corporation Transparent security proxy for unreliable message exchange protocols
JP3497338B2 (ja) 1997-01-08 2004-02-16 株式会社日立製作所 分散ログ一括管理機能付きネットワークシステム
US5968133A (en) * 1997-01-10 1999-10-19 Secure Computing Corporation Enhanced security network time synchronization device and method
US6122657A (en) * 1997-02-04 2000-09-19 Networks Associates, Inc. Internet computer system with methods for dynamic filtering of hypertext tags and content
US8914410B2 (en) * 1999-02-16 2014-12-16 Sonicwall, Inc. Query interface to policy server
US7580919B1 (en) 1997-03-10 2009-08-25 Sonicwall, Inc. Query interface to policy server
US6408336B1 (en) 1997-03-10 2002-06-18 David S. Schneider Distributed administration of access to information
US6178505B1 (en) * 1997-03-10 2001-01-23 Internet Dynamics, Inc. Secure delivery of information in a network
US7912856B2 (en) * 1998-06-29 2011-03-22 Sonicwall, Inc. Adaptive encryption
US7272625B1 (en) 1997-03-10 2007-09-18 Sonicwall, Inc. Generalized policy server
US7821926B2 (en) 1997-03-10 2010-10-26 Sonicwall, Inc. Generalized policy server
US5983270A (en) * 1997-03-11 1999-11-09 Sequel Technology Corporation Method and apparatus for managing internetwork and intranetwork activity
KR100528156B1 (ko) 1997-03-12 2005-11-15 노마딕스, 인코포레이티드 노매딕 변환기 또는 라우터
US6154843A (en) * 1997-03-21 2000-11-28 Microsoft Corporation Secure remote access computing system
JPH10326287A (ja) * 1997-05-23 1998-12-08 Mitsubishi Corp デジタルコンテンツ管理システム及びデジタルコンテンツ管理装置
US6173399B1 (en) * 1997-06-12 2001-01-09 Vpnet Technologies, Inc. Apparatus for implementing virtual private networks
US5958005A (en) * 1997-07-17 1999-09-28 Bell Atlantic Network Services, Inc. Electronic mail security
CA2301147C (en) 1997-07-24 2010-07-13 Worldtalk Corporation E-mail firewall with stored key encryption/decryption
US7127741B2 (en) 1998-11-03 2006-10-24 Tumbleweed Communications Corp. Method and system for e-mail message transmission
US7162738B2 (en) * 1998-11-03 2007-01-09 Tumbleweed Communications Corp. E-mail firewall with stored key encryption/decryption
US20050081059A1 (en) * 1997-07-24 2005-04-14 Bandini Jean-Christophe Denis Method and system for e-mail filtering
US7117358B2 (en) * 1997-07-24 2006-10-03 Tumbleweed Communications Corp. Method and system for filtering communication
US6286106B1 (en) 1997-07-30 2001-09-04 Gateway, Inc. Computer power down upon emergency network notification
US6119228A (en) * 1997-08-22 2000-09-12 Compaq Computer Corporation Method for securely communicating remote control commands in a computer network
US6023684A (en) * 1997-10-01 2000-02-08 Security First Technologies, Inc. Three tier financial transaction system with cache memory
NL1007252C1 (nl) * 1997-10-10 1999-04-13 Ralph Rogier De La Bretoniere Werkwijze en inrichting voor het beveiligen van datacommunicatie.
US6092110A (en) 1997-10-23 2000-07-18 At&T Wireless Svcs. Inc. Apparatus for filtering packets using a dedicated processor
US5890161A (en) 1997-10-28 1999-03-30 Microsoft Corporation Automatic transaction processing of component-based server applications
US6134594A (en) 1997-10-28 2000-10-17 Microsoft Corporation Multi-user, multiple tier distributed application architecture with single-user access control of middle tier objects
US6014666A (en) * 1997-10-28 2000-01-11 Microsoft Corporation Declarative and programmatic access control of component-based server applications using roles
US6813769B1 (en) 1997-10-28 2004-11-02 Microsoft Corporation Server application components with control over state duration
US7076784B1 (en) 1997-10-28 2006-07-11 Microsoft Corporation Software component execution management using context objects for tracking externally-defined intrinsic properties of executing software components within an execution environment
US5958004A (en) 1997-10-28 1999-09-28 Microsoft Corporation Disabling and enabling transaction committal in transactional application components
US6631425B1 (en) 1997-10-28 2003-10-07 Microsoft Corporation Just-in-time activation and as-soon-as-possible deactivation or server application components
US7581077B2 (en) 1997-10-30 2009-08-25 Commvault Systems, Inc. Method and system for transferring data in a storage operation
US6418478B1 (en) * 1997-10-30 2002-07-09 Commvault Systems, Inc. Pipelined high speed data transfer mechanism
US7975305B2 (en) * 1997-11-06 2011-07-05 Finjan, Inc. Method and system for adaptive rule-based content scanners for desktop computers
US8225408B2 (en) * 1997-11-06 2012-07-17 Finjan, Inc. Method and system for adaptive rule-based content scanners
US7418731B2 (en) * 1997-11-06 2008-08-26 Finjan Software, Ltd. Method and system for caching at secure gateways
EA002886B1 (ru) 1997-11-13 2002-10-31 Хайперспейс Коммьюникейшнз, Инк. Система пересылки файлов
US6330610B1 (en) * 1997-12-04 2001-12-11 Eric E. Docter Multi-stage data filtering system employing multiple filtering criteria
FI105753B (fi) * 1997-12-31 2000-09-29 Ssh Comm Security Oy Pakettien autentisointimenetelmä verkko-osoitemuutosten ja protokollamuunnosten läsnäollessa
US6230271B1 (en) * 1998-01-20 2001-05-08 Pilot Network Services, Inc. Dynamic policy-based apparatus for wide-range configurable network service authentication and access control using a fixed-path hardware configuration
US6148342A (en) * 1998-01-27 2000-11-14 Ho; Andrew P. Secure database management system for confidential records using separately encrypted identifier and access request
US6182135B1 (en) 1998-02-05 2001-01-30 3Com Corporation Method for determining whether two pieces of network equipment are directly connected
US6367018B1 (en) * 1998-02-05 2002-04-02 3Com Corporation Method for detecting dedicated link between an end station and a network device
US6357010B1 (en) * 1998-02-17 2002-03-12 Secure Computing Corporation System and method for controlling access to documents stored on an internal network
US6088800A (en) 1998-02-27 2000-07-11 Mosaid Technologies, Incorporated Encryption processor with shared memory interconnect
US6553368B2 (en) * 1998-03-03 2003-04-22 Sun Microsystems, Inc. Network directory access mechanism
KR100524055B1 (ko) 1998-03-05 2006-01-27 삼성전자주식회사 원격지 웨이크 업 기능을 갖는 컴퓨터 시스템 및 컴퓨터 시스템의 원격 웨이크 업 방법
US7277941B2 (en) * 1998-03-11 2007-10-02 Commvault Systems, Inc. System and method for providing encryption in a storage network by storing a secured encryption key with encrypted archive data in an archive storage device
US7739381B2 (en) * 1998-03-11 2010-06-15 Commvault Systems, Inc. System and method for providing encryption in storage operations in a storage network, such as for use by application service providers that provide data storage services
US6321336B1 (en) * 1998-03-13 2001-11-20 Secure Computing Corporation System and method for redirecting network traffic to provide secure communication
US6182226B1 (en) * 1998-03-18 2001-01-30 Secure Computing Corporation System and method for controlling interactions between networks
US6453419B1 (en) 1998-03-18 2002-09-17 Secure Computing Corporation System and method for implementing a security policy
US7440498B2 (en) 2002-12-17 2008-10-21 Tellabs Operations, Inc. Time domain equalization for discrete multi-tone systems
ES2389626T3 (es) 1998-04-03 2012-10-29 Tellabs Operations, Inc. Filtro para acortamiento de respuesta al impulso, con restricciones espectrales adicionales, para transmisión de múltiples portadoras
US6631175B2 (en) 1998-04-03 2003-10-07 Tellabs Operations, Inc. Spectrally constrained impulse shortening filter for a discrete multi-tone receiver
US6389532B1 (en) 1998-04-20 2002-05-14 Sun Microsystems, Inc. Method and apparatus for using digital signatures to filter packets in a network
FI109254B (fi) * 1998-04-29 2002-06-14 Ericsson Telefon Ab L M Menetelmä, järjestelmä ja laite todentamiseen
US6779118B1 (en) 1998-05-04 2004-08-17 Auriq Systems, Inc. User specific automatic data redirection system
US6189035B1 (en) * 1998-05-08 2001-02-13 Motorola Method for protecting a network from data packet overload
US6870546B1 (en) * 1998-06-01 2005-03-22 Autodesk, Inc. Protectable expressions in objects having authorable behaviors and appearances
US6308273B1 (en) 1998-06-12 2001-10-23 Microsoft Corporation Method and system of security location discrimination
US6279111B1 (en) 1998-06-12 2001-08-21 Microsoft Corporation Security model using restricted tokens
US6308274B1 (en) 1998-06-12 2001-10-23 Microsoft Corporation Least privilege via restricted tokens
US6505300B2 (en) 1998-06-12 2003-01-07 Microsoft Corporation Method and system for secure running of untrusted content
AU4568299A (en) * 1998-06-15 2000-01-05 Dmw Worldwide, Inc. Method and apparatus for assessing the security of a computer system
US6526416B1 (en) 1998-06-30 2003-02-25 Microsoft Corporation Compensating resource managers
US7305451B2 (en) * 1998-08-24 2007-12-04 Microsoft Corporation System for providing users an integrated directory service containing content nodes located in different groups of application servers in computer network
CA2313081A1 (en) * 1998-10-14 2000-04-20 Ultra Information Systems Llc System and method of authenticating a key and transmitting secure data
JP4763866B2 (ja) 1998-10-15 2011-08-31 インターシア ソフトウェア エルエルシー 2重再暗号化によりデジタルデータを保護する方法及び装置
US7673323B1 (en) 1998-10-28 2010-03-02 Bea Systems, Inc. System and method for maintaining security in a distributed computer network
AU1590900A (en) * 1998-11-24 2000-06-13 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for securing data objects
US6385724B1 (en) 1998-11-30 2002-05-07 Microsoft Corporation Automatic object caller chain with declarative impersonation and transitive trust
US6487665B1 (en) 1998-11-30 2002-11-26 Microsoft Corporation Object security boundaries
US6574736B1 (en) 1998-11-30 2003-06-03 Microsoft Corporation Composable roles
US8713641B1 (en) 1998-12-08 2014-04-29 Nomadix, Inc. Systems and methods for authorizing, authenticating and accounting users having transparent computer access to a network using a gateway device
US8266266B2 (en) 1998-12-08 2012-09-11 Nomadix, Inc. Systems and methods for providing dynamic network authorization, authentication and accounting
US7194554B1 (en) 1998-12-08 2007-03-20 Nomadix, Inc. Systems and methods for providing dynamic network authorization authentication and accounting
JP3497088B2 (ja) * 1998-12-21 2004-02-16 松下電器産業株式会社 通信システム及び通信方法
US6850991B1 (en) * 1998-12-22 2005-02-01 Citibank, N.A. Systems and methods for distributing information to a diverse plurality of devices
US7171000B1 (en) * 1999-06-10 2007-01-30 Message Secure Corp. Simplified addressing for private communications
US6192477B1 (en) 1999-02-02 2001-02-20 Dagg Llc Methods, software, and apparatus for secure communication over a computer network
US7197639B1 (en) * 1999-02-05 2007-03-27 Rsa Security Inc. Cryptographic countermeasures against connection depletion attacks
EP1030492A1 (de) * 1999-02-19 2000-08-23 Critical Path Inc. Vorrichtung und Verfahren zur Herstellung der Kommunikationen
US6356941B1 (en) * 1999-02-22 2002-03-12 Cyber-Ark Software Ltd. Network vaults
US7162452B1 (en) * 1999-03-25 2007-01-09 Epstein Michael A Key distribution via a memory device
US6820204B1 (en) 1999-03-31 2004-11-16 Nimesh Desai System and method for selective information exchange
US20050192008A1 (en) * 1999-03-31 2005-09-01 Nimesh Desai System and method for selective information exchange
US6351811B1 (en) 1999-04-22 2002-02-26 Adapt Network Security, L.L.C. Systems and methods for preventing transmission of compromised data in a computer network
US6587883B1 (en) * 1999-05-10 2003-07-01 Covad Communications Group, Inc. Secure access from a user location to multiple target systems with a simplified user interface
US6788701B1 (en) 1999-05-14 2004-09-07 Dunti Llc Communication network having modular switches that enhance data throughput
AU4851400A (en) * 1999-05-14 2000-12-18 Dunti Corporation Relative hierarchical communication network having distributed routing across modular switches with packetized security codes, parity switching, and priority transmission schemes
US6643286B1 (en) 1999-05-14 2003-11-04 Dunti Corporation Modular switches interconnected across a communication network to achieve minimal address mapping or translation between termination devices
US6587462B2 (en) * 2001-02-16 2003-07-01 Dunti Corporation Address mapping mechanism enabling multi-domain addressing in communication networks
US6754214B1 (en) 1999-07-19 2004-06-22 Dunti, Llc Communication network having packetized security codes and a system for detecting security breach locations within the network
US7970929B1 (en) 2002-03-19 2011-06-28 Dunti Llc Apparatus, system, and method for routing data to and from a host that is moved from one location on a communication system to another location on the communication system
US7778259B1 (en) 1999-05-14 2010-08-17 Dunti Llc Network packet transmission mechanism
US6654346B1 (en) 1999-07-19 2003-11-25 Dunti Corporation Communication network across which packets of data are transmitted according to a priority scheme
US7039800B1 (en) * 1999-05-24 2006-05-02 Rockwell Collins, Inc. Translator terminal for two or more wireless networks
US20020101998A1 (en) * 1999-06-10 2002-08-01 Chee-Hong Wong Fast escrow delivery
US20020019932A1 (en) * 1999-06-10 2002-02-14 Eng-Whatt Toh Cryptographically secure network
JP2001005757A (ja) * 1999-06-23 2001-01-12 Hitachi Ltd 電子透かしを利用したデータのフィルタリングシステム
US20190149454A1 (en) * 1999-07-07 2019-05-16 Jeffrey W. Mankoff Bypass and non-bypass techniques for routing signals in complex computing networks
US6584508B1 (en) * 1999-07-13 2003-06-24 Networks Associates Technology, Inc. Advanced data guard having independently wrapped components
US6981155B1 (en) * 1999-07-14 2005-12-27 Symantec Corporation System and method for computer security
US7409704B1 (en) 1999-07-15 2008-08-05 Telefonaktiebolaget L M Ericsson (Publ) System and method for local policy enforcement for internet service providers
US7203962B1 (en) 1999-08-30 2007-04-10 Symantec Corporation System and method for using timestamps to detect attacks
US6785810B1 (en) 1999-08-31 2004-08-31 Espoc, Inc. System and method for providing secure transmission, search, and storage of data
US6782537B1 (en) 1999-09-23 2004-08-24 International Business Machines Corporation Establishing a communicator across multiple processes in a multithreaded computing environment
WO2001029777A1 (en) 1999-10-18 2001-04-26 Stamps.Com Role assignments in a cryptographic module for secure processing of value-bearing items
US7567940B1 (en) 1999-10-18 2009-07-28 Stamps.Com Method and apparatus for on-line value-bearing item system
US8190708B1 (en) 1999-10-22 2012-05-29 Nomadix, Inc. Gateway device having an XML interface and associated method
AU1451001A (en) * 1999-11-01 2001-05-14 Mangosoft Corporation Internet-based shared file service with native pc client access and semantics and distributed version control
US6976258B1 (en) 1999-11-30 2005-12-13 Ensim Corporation Providing quality of service guarantees to virtual hosts
US7765581B1 (en) 1999-12-10 2010-07-27 Oracle America, Inc. System and method for enabling scalable security in a virtual private network
US6738901B1 (en) 1999-12-15 2004-05-18 3M Innovative Properties Company Smart card controlled internet access
US6879593B1 (en) * 1999-12-20 2005-04-12 Intel Corporation Connections of nodes on different networks
US7315801B1 (en) 2000-01-14 2008-01-01 Secure Computing Corporation Network security modeling system and method
US6868388B1 (en) 2000-01-19 2005-03-15 Reynolds And Reynolds Holdings, Inc. Integrated voice and data system and auto retail channel network portal
US7310816B1 (en) 2000-01-27 2007-12-18 Dale Burns System and method for email screening
US6405034B1 (en) * 2000-01-28 2002-06-11 Leap Wireless International, Inc. Adaptive communication data retrieval system
US6662228B1 (en) * 2000-02-01 2003-12-09 Sun Microsystems, Inc. Internet server authentication client
DE10006062C2 (de) * 2000-02-10 2002-03-07 Excelsis Informationssysteme G Tastaturschlüssel
US6754716B1 (en) 2000-02-11 2004-06-22 Ensim Corporation Restricting communication between network devices on a common network
US7343421B1 (en) * 2000-02-14 2008-03-11 Digital Asset Enterprises Llc Restricting communication of selected processes to a set of specific network addresses
AU2001247986A1 (en) * 2000-02-16 2001-08-27 Stamps.Com Secure on-line ticketing
JP4614377B2 (ja) * 2000-03-01 2011-01-19 キヤノン株式会社 暗号化データ管理システム及び方法、記憶媒体
US6948003B1 (en) 2000-03-15 2005-09-20 Ensim Corporation Enabling a service provider to provide intranet services
US7412422B2 (en) * 2000-03-23 2008-08-12 Dekel Shiloh Method and system for securing user identities and creating virtual users to enhance privacy on a communication network
CA2405783A1 (en) * 2000-04-17 2001-10-25 Mitch A. Benjamin Secure dynamic link allocation system for mobile data communication
US6985937B1 (en) 2000-05-11 2006-01-10 Ensim Corporation Dynamically modifying the resources of a virtual server
US6907421B1 (en) * 2000-05-16 2005-06-14 Ensim Corporation Regulating file access rates according to file type
US7380272B2 (en) * 2000-05-17 2008-05-27 Deep Nines Incorporated System and method for detecting and eliminating IP spoofing in a data transmission network
US6718385B1 (en) 2000-05-19 2004-04-06 Galaxy Computer Services, Inc. System for controlling movement of information using an information diode between a source network and a destination network
US7089303B2 (en) * 2000-05-31 2006-08-08 Invicta Networks, Inc. Systems and methods for distributed network protection
US7197563B2 (en) * 2001-05-31 2007-03-27 Invicta Networks, Inc. Systems and methods for distributed network protection
US20040073617A1 (en) * 2000-06-19 2004-04-15 Milliken Walter Clark Hash-based systems and methods for detecting and preventing transmission of unwanted e-mail
US7143024B1 (en) * 2000-07-07 2006-11-28 Ensim Corporation Associating identifiers with virtual processes
US7251728B2 (en) * 2000-07-07 2007-07-31 Message Secure Corporation Secure and reliable document delivery using routing lists
WO2002013047A2 (en) * 2000-08-04 2002-02-14 Athenahealth, Inc. Practice management and billing automation system
US6909691B1 (en) 2000-08-07 2005-06-21 Ensim Corporation Fairly partitioning resources while limiting the maximum fair share
AU2001281401A1 (en) * 2000-08-18 2002-03-04 Invicta Networks, Inc. Systems and methods for distributed network protection
US6981005B1 (en) * 2000-08-24 2005-12-27 Microsoft Corporation Partial migration of an object to another storage location in a computer system
US20020035698A1 (en) * 2000-09-08 2002-03-21 The Regents Of The University Of Michigan Method and system for protecting publicly accessible network computer services from undesirable network traffic in real-time
US20020032871A1 (en) * 2000-09-08 2002-03-14 The Regents Of The University Of Michigan Method and system for detecting, tracking and blocking denial of service attacks over a computer network
US8180870B1 (en) 2000-11-28 2012-05-15 Verizon Business Global Llc Programmable access device for a distributed network access system
GB2376763B (en) * 2001-06-19 2004-12-15 Hewlett Packard Co Demonstrating integrity of a compartment of a compartmented operating system
US8185615B1 (en) 2000-11-28 2012-05-22 Verizon Business Global Llc Message, control and reporting interface for a distributed network access system
US7046680B1 (en) * 2000-11-28 2006-05-16 Mci, Inc. Network access system including a programmable access device having distributed service control
US7657628B1 (en) 2000-11-28 2010-02-02 Verizon Business Global Llc External processor for a distributed network access system
US6516317B1 (en) * 2000-12-21 2003-02-04 Oracle Corporation Method and apparatus for facilitating compartmentalized database user management
US7219354B1 (en) 2000-12-22 2007-05-15 Ensim Corporation Virtualizing super-user privileges for multiple virtual processes
US7941669B2 (en) 2001-01-03 2011-05-10 American Express Travel Related Services Company, Inc. Method and apparatus for enabling a user to select an authentication method
US7613930B2 (en) 2001-01-19 2009-11-03 Trustware International Limited Method for protecting computer programs and data from hostile code
EP1225513A1 (de) * 2001-01-19 2002-07-24 Eyal Dotan Verfahren zur Sicherung der Rechnerprogramme und Rechnerdaten eines feindlichen Programms
US20020154635A1 (en) * 2001-04-23 2002-10-24 Sun Microsystems, Inc. System and method for extending private networks onto public infrastructure using supernets
US20020161998A1 (en) * 2001-04-27 2002-10-31 International Business Machines Corporation Method and system for providing hardware cryptography functionality to a data processing system lacking cryptography hardware
US20020161904A1 (en) * 2001-04-30 2002-10-31 Xerox Corporation External access to protected device on private network
US20020198994A1 (en) * 2001-05-15 2002-12-26 Charles Patton Method and system for enabling and controlling communication topology, access to resources, and document flow in a distributed networking environment
AU2002304227A1 (en) * 2001-06-11 2002-12-23 Bluefire Security Technology Packet filtering system and methods
US7308715B2 (en) * 2001-06-13 2007-12-11 Mcafee, Inc. Protocol-parsing state machine and method of using same
US7103912B2 (en) * 2001-06-29 2006-09-05 International Business Machines Corporation User authorization management system using a meta-password and method for same
US7383433B2 (en) * 2001-07-31 2008-06-03 Sun Microsystems, Inc. Trust spectrum for certificate distribution in distributed peer-to-peer networks
US20030074606A1 (en) * 2001-09-10 2003-04-17 Udi Boker Network-based control center for conducting performance tests of server systems
US7127580B2 (en) * 2001-09-28 2006-10-24 Sony Corporation Apparatus and method for controlling data access using encrypted link position information
US7308710B2 (en) * 2001-09-28 2007-12-11 Jp Morgan Chase Bank Secured FTP architecture
US7370353B2 (en) * 2001-11-05 2008-05-06 Cisco Technology, Inc. System and method for managing dynamic network sessions
US6546493B1 (en) * 2001-11-30 2003-04-08 Networks Associates Technology, Inc. System, method and computer program product for risk assessment scanning based on detected anomalous events
US7194464B2 (en) 2001-12-07 2007-03-20 Websense, Inc. System and method for adapting an internet filter
WO2003050999A1 (en) * 2001-12-11 2003-06-19 Future Systems, Inc. Integrated security gateway apparatus and operating method thereof
US6961783B1 (en) * 2001-12-21 2005-11-01 Networks Associates Technology, Inc. DNS server access control system and method
KR100412041B1 (ko) * 2002-01-04 2003-12-24 삼성전자주식회사 시큐러티 프로토콜의 기능을 수행하는 홈 게이트웨이 및그 방법
JP4152108B2 (ja) * 2002-01-18 2008-09-17 株式会社コムスクエア 脆弱点監視方法及びシステム
US20030140142A1 (en) * 2002-01-18 2003-07-24 David Marples Initiating connections through firewalls and network address translators
US7174566B2 (en) * 2002-02-01 2007-02-06 Intel Corporation Integrated network intrusion detection
US7587759B1 (en) * 2002-02-04 2009-09-08 Mcafee, Inc. Intrusion prevention for active networked applications
US8176334B2 (en) * 2002-09-30 2012-05-08 Guardian Data Storage, Llc Document security system that permits external users to gain access to secured files
JP2003242118A (ja) * 2002-02-19 2003-08-29 Allied Tereshisu Kk 通信システム、中継機器、及びプログラム
US20030167295A1 (en) * 2002-03-01 2003-09-04 Verity, Inc. Automatic network load balancing using self-replicating resources
US7216260B2 (en) * 2002-03-27 2007-05-08 International Business Machines Corporation Method, system and program product for dynamically detecting errant data sequences and performing corresponding actions
DE10214185A1 (de) * 2002-03-28 2003-10-16 Siemens Ag PC-Anordnung für Visualisierungs-, Diagnose- und Expertensysteme zur Überwachung und Steuerung bzw. Regelung von Hochspannungsversorgungseinheiten von Elektrofiltern
US9269067B2 (en) * 2002-04-04 2016-02-23 Altisource Solutions S.À.R.L. Method and apparatus for providing selective access to information
US20030208596A1 (en) * 2002-05-01 2003-11-06 Carolan Jason T. System and method for delivering services over a network in a secure environment
US7340770B2 (en) * 2002-05-15 2008-03-04 Check Point Software Technologies, Inc. System and methodology for providing community-based security policies
US20030229703A1 (en) * 2002-06-06 2003-12-11 International Business Machines Corporation Method and apparatus for identifying intrusions into a network data processing system
US7174332B2 (en) * 2002-06-11 2007-02-06 Ip. Com, Inc. Method and apparatus for safeguarding files
US7788718B1 (en) 2002-06-13 2010-08-31 Mcafee, Inc. Method and apparatus for detecting a distributed denial of service attack
US7904955B1 (en) 2002-06-13 2011-03-08 Mcafee, Inc. Method and apparatus for detecting shellcode
US7203963B1 (en) 2002-06-13 2007-04-10 Mcafee, Inc. Method and apparatus for adaptively classifying network traffic
US7386546B1 (en) 2002-07-09 2008-06-10 Network Appliance, Inc. Metadirectory namespace and method for use of the same
US20040260921A1 (en) * 2002-07-18 2004-12-23 Treadwell William S. Cryptographic method, system and engine for enciphered message transmission
CA2499073C (en) 2002-09-16 2013-07-23 Commvault Systems, Inc. Combined stream auxiliary copy system and method
US7353538B2 (en) 2002-11-08 2008-04-01 Federal Network Systems Llc Server resource management, analysis, and intrusion negation
US7376732B2 (en) * 2002-11-08 2008-05-20 Federal Network Systems, Llc Systems and methods for preventing intrusion at a web host
CN1276363C (zh) * 2002-11-13 2006-09-20 深圳市朗科科技有限公司 借助半导体存储装置实现数据安全存储和算法存储的方法
US20040103317A1 (en) * 2002-11-22 2004-05-27 Burns William D. Method and apparatus for protecting secure credentials on an untrusted computer platform
US7743158B2 (en) * 2002-12-04 2010-06-22 Ntt Docomo, Inc. Access network dynamic firewall
US6938167B2 (en) * 2002-12-18 2005-08-30 America Online, Inc. Using trusted communication channel to combat user name/password theft
US20040162807A1 (en) * 2003-02-14 2004-08-19 Montagne Michael D. Cooperative, simultaneous operation on data by many processes, with concurrent retention of process status, resumed processing, and minimal consumption of inter-nodal throughput
US7591000B2 (en) 2003-02-14 2009-09-15 Oracle International Corporation System and method for hierarchical role-based entitlements
US7653930B2 (en) * 2003-02-14 2010-01-26 Bea Systems, Inc. Method for role and resource policy management optimization
US8831966B2 (en) * 2003-02-14 2014-09-09 Oracle International Corporation Method for delegated administration
US6965968B1 (en) 2003-02-27 2005-11-15 Finjan Software Ltd. Policy-based caching
US7490348B1 (en) 2003-03-17 2009-02-10 Harris Technology, Llc Wireless network having multiple communication allowances
US7607010B2 (en) * 2003-04-12 2009-10-20 Deep Nines, Inc. System and method for network edge data protection
US7788489B2 (en) * 2003-05-06 2010-08-31 Oracle International Corporation System and method for permission administration using meta-permissions
US8250235B2 (en) * 2003-05-19 2012-08-21 Verizon Patent And Licensing Inc. Method and system for providing secure one-way transfer of data
US9118711B2 (en) 2003-07-01 2015-08-25 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
US20070113272A2 (en) 2003-07-01 2007-05-17 Securityprofiling, Inc. Real-time vulnerability monitoring
US9118708B2 (en) 2003-07-01 2015-08-25 Securityprofiling, Llc Multi-path remediation
US9350752B2 (en) 2003-07-01 2016-05-24 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
US9100431B2 (en) 2003-07-01 2015-08-04 Securityprofiling, Llc Computer program product and apparatus for multi-path remediation
US9118709B2 (en) 2003-07-01 2015-08-25 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
US8984644B2 (en) 2003-07-01 2015-03-17 Securityprofiling, Llc Anti-vulnerability system, method, and computer program product
US9118710B2 (en) 2003-07-01 2015-08-25 Securityprofiling, Llc System, method, and computer program product for reporting an occurrence in different manners
US7149897B2 (en) * 2003-07-25 2006-12-12 The United States Of America As Represented By The Secretary Of The Navy Systems and methods for providing increased computer security
US20050033976A1 (en) * 2003-08-04 2005-02-10 Sbc Knowledge Ventures, L.P. Host intrusion detection and isolation
US7590643B2 (en) 2003-08-21 2009-09-15 Microsoft Corporation Systems and methods for extensions and inheritance for units of information manageable by a hardware/software interface system
US8166101B2 (en) * 2003-08-21 2012-04-24 Microsoft Corporation Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system
US8238696B2 (en) * 2003-08-21 2012-08-07 Microsoft Corporation Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system
US7555497B2 (en) * 2003-08-21 2009-06-30 Microsoft Corporation Systems and methods for separating units of information manageable by a hardware/software interface system from their physical organization
US8131739B2 (en) * 2003-08-21 2012-03-06 Microsoft Corporation Systems and methods for interfacing application programs with an item-based storage platform
US7401104B2 (en) * 2003-08-21 2008-07-15 Microsoft Corporation Systems and methods for synchronizing computer systems through an intermediary file system share or device
US9338026B2 (en) 2003-09-22 2016-05-10 Axway Inc. Delay technique in e-mail filtering system
US20050102510A1 (en) * 2003-10-10 2005-05-12 Bea Systems, Inc. Delegation in a distributed security system
US20050251851A1 (en) * 2003-10-10 2005-11-10 Bea Systems, Inc. Configuration of a distributed security system
US7523301B2 (en) * 2003-10-28 2009-04-21 Rsa Security Inferring content sensitivity from partial content matching
US7516492B1 (en) * 2003-10-28 2009-04-07 Rsa Security Inc. Inferring document and content sensitivity from public account accessibility
WO2005050383A2 (en) 2003-11-13 2005-06-02 Commvault Systems, Inc. Combining data streams in storage network
US8010789B2 (en) * 2003-11-13 2011-08-30 Lantronix, Inc. Secure data transfer using an embedded system
CA2491274A1 (en) * 2004-01-08 2005-07-08 Lpi Level Platforms, Inc. A method and system for secure remote access to computer systems and networks
US7437759B1 (en) * 2004-02-17 2008-10-14 Symantec Corporation Kernel mode overflow attack prevention system and method
US20050188295A1 (en) * 2004-02-25 2005-08-25 Loren Konkus Systems and methods for an extensible administration tool
US7805344B2 (en) * 2004-03-12 2010-09-28 Sybase, Inc. System providing methodology for consolidation of financial information
WO2006001590A1 (en) * 2004-03-24 2006-01-05 Exers Technologies. Inc. Netwok security system co-operated with an authentification server and method thereof
US7934101B2 (en) * 2004-04-16 2011-04-26 Cisco Technology, Inc. Dynamically mitigating a noncompliant password
US7673025B2 (en) * 2004-04-29 2010-03-02 Cisco Technology, Inc. Controlling access message flow
AU2005239005A1 (en) 2004-04-30 2005-11-10 Research In Motion Limited System and method for handling data transfers
US20050256899A1 (en) * 2004-05-14 2005-11-17 Bea Systems, Inc. System and method for representing hierarchical data structures
US20050256906A1 (en) * 2004-05-14 2005-11-17 Bea Systems, Inc. Interface for portal and webserver administration-efficient updates
US8458453B1 (en) 2004-06-11 2013-06-04 Dunti Llc Method and apparatus for securing communication over public network
US7669050B2 (en) * 2004-06-24 2010-02-23 International Business Machines Corporation Method to enable user mode process to operate in a privileged execution mode
US20060010086A1 (en) * 2004-07-10 2006-01-12 Klein Elliot S Data append method for sent postal mail
GB2416879B (en) 2004-08-07 2007-04-04 Surfcontrol Plc Device resource access filtering system and method
US7496753B2 (en) * 2004-09-02 2009-02-24 International Business Machines Corporation Data encryption interface for reducing encrypt latency impact on standard traffic
US7409558B2 (en) * 2004-09-02 2008-08-05 International Business Machines Corporation Low-latency data decryption interface
GB2418108B (en) * 2004-09-09 2007-06-27 Surfcontrol Plc System, method and apparatus for use in monitoring or controlling internet access
GB2418999A (en) * 2004-09-09 2006-04-12 Surfcontrol Plc Categorizing uniform resource locators
GB2418037B (en) 2004-09-09 2007-02-28 Surfcontrol Plc System, method and apparatus for use in monitoring or controlling internet access
US20060064469A1 (en) * 2004-09-23 2006-03-23 Cisco Technology, Inc. System and method for URL filtering in a firewall
US8261337B1 (en) * 2004-11-17 2012-09-04 Juniper Networks, Inc. Firewall security between network devices
US7783670B2 (en) * 2004-11-18 2010-08-24 Bea Systems, Inc. Client server conversion for representing hierarchical data structures
JP4759382B2 (ja) * 2004-12-21 2011-08-31 株式会社リコー 通信機器、通信方法、通信プログラム、及び記録媒体
US7610610B2 (en) 2005-01-10 2009-10-27 Mcafee, Inc. Integrated firewall, IPS, and virus scanner system and method
US20060184792A1 (en) * 2005-02-17 2006-08-17 Scalable Software Protecting computer systems from unwanted software
US7805422B2 (en) 2005-02-28 2010-09-28 Microsoft Corporation Change notification query multiplexing
US7392253B2 (en) * 2005-03-03 2008-06-24 Microsoft Corporation System and method for secure full-text indexing
US20090089871A1 (en) * 2005-03-07 2009-04-02 Network Engines, Inc. Methods and apparatus for digital data processor instantiation
US20080222604A1 (en) * 2005-03-07 2008-09-11 Network Engines, Inc. Methods and apparatus for life-cycle management
US8086615B2 (en) * 2005-03-28 2011-12-27 Oracle International Corporation Security data redaction
US7707620B2 (en) * 2005-05-06 2010-04-27 Cisco Technology, Inc. Method to control and secure setuid/gid executables and processes
US7748027B2 (en) * 2005-05-11 2010-06-29 Bea Systems, Inc. System and method for dynamic data redaction
US7930740B2 (en) * 2005-07-07 2011-04-19 International Business Machines Corporation System and method for detection and mitigation of distributed denial of service attacks
US7856618B2 (en) * 2005-08-04 2010-12-21 International Business Machines Corporation Adaptively generating code for a computer program
US20070033592A1 (en) * 2005-08-04 2007-02-08 International Business Machines Corporation Method, apparatus, and computer program product for adaptive process dispatch in a computer system having a plurality of processors
US7617534B1 (en) 2005-08-26 2009-11-10 Symantec Corporation Detection of SYSENTER/SYSCALL hijacking
US7953734B2 (en) 2005-09-26 2011-05-31 Oracle International Corporation System and method for providing SPI extensions for content management system
US7818344B2 (en) 2005-09-26 2010-10-19 Bea Systems, Inc. System and method for providing nested types for content management
US7752205B2 (en) 2005-09-26 2010-07-06 Bea Systems, Inc. Method and system for interacting with a virtual content repository
US7917537B2 (en) 2005-09-26 2011-03-29 Oracle International Corporation System and method for providing link property types for content management
US20070118646A1 (en) * 2005-10-04 2007-05-24 Computer Associates Think, Inc. Preventing the installation of rootkits on a standalone computer
TW200717256A (en) * 2005-10-27 2007-05-01 Via Tech Inc Real-time data exchange architecture and method thereof
CA2555719C (en) * 2005-10-31 2010-04-13 Lpi Level Platforms, Inc. A method for providing remote management of computer systems
US7966654B2 (en) 2005-11-22 2011-06-21 Fortinet, Inc. Computerized system and method for policy-based content filtering
US7685638B1 (en) 2005-12-13 2010-03-23 Symantec Corporation Dynamic replacement of system call tables
US8234361B2 (en) * 2006-01-13 2012-07-31 Fortinet, Inc. Computerized system and method for handling network traffic
US20070198420A1 (en) * 2006-02-03 2007-08-23 Leonid Goldstein Method and a system for outbound content security in computer networks
US8041946B2 (en) * 2006-02-28 2011-10-18 The Boeing Company Data transfer between networks operating at different security levels
US8185576B2 (en) * 2006-03-14 2012-05-22 Altnet, Inc. Filter for a distributed network
US7962755B2 (en) * 2006-04-28 2011-06-14 Ceelox, Inc. System and method for biometrically secured, transparent encryption and decryption
US7818395B2 (en) * 2006-10-13 2010-10-19 Ceelox, Inc. Method and apparatus for interfacing with a restricted access computer system
US7676673B2 (en) * 2006-04-28 2010-03-09 Bae Systems Information And Electronic Systems Integration Inc. Multi-level secure (MLS) information network
US8407763B2 (en) * 2006-04-28 2013-03-26 Bae Systems Information And Electronic Systems Integration Inc. Secure network interface device
US9178907B2 (en) 2006-06-09 2015-11-03 Mcafee, Inc. System, method and computer program product for detecting encoded shellcode in network traffic
US8615800B2 (en) 2006-07-10 2013-12-24 Websense, Inc. System and method for analyzing web content
US8020206B2 (en) 2006-07-10 2011-09-13 Websense, Inc. System and method of analyzing web content
US8020213B2 (en) * 2006-08-01 2011-09-13 International Business Machines Corporation Access control method and a system for privacy protection
US20080072033A1 (en) * 2006-09-19 2008-03-20 Mcalister Donald Re-encrypting policy enforcement point
US20080075096A1 (en) * 2006-09-22 2008-03-27 Enthenergy, Llc Remote access to secure network devices
US7886352B2 (en) * 2006-09-22 2011-02-08 Oracle International Corporation Interstitial pages
US20080077801A1 (en) * 2006-09-25 2008-03-27 Nokia Corporation Protecting interfaces on processor architectures
US8463852B2 (en) 2006-10-06 2013-06-11 Oracle International Corporation Groupware portlets for integrating a portal with groupware systems
US8655914B2 (en) 2006-10-17 2014-02-18 Commvault Systems, Inc. System and method for storage operation access security
GB0623101D0 (en) * 2006-11-20 2006-12-27 British Telecomm Secure network architecture
US9654495B2 (en) 2006-12-01 2017-05-16 Websense, Llc System and method of analyzing web addresses
US8312323B2 (en) 2006-12-22 2012-11-13 Commvault Systems, Inc. Systems and methods for remote monitoring in a computer network and reporting a failed migration operation without accessing the data being moved
GB2445764A (en) * 2007-01-22 2008-07-23 Surfcontrol Plc Resource access filtering system and database structure for use therewith
US8015174B2 (en) 2007-02-28 2011-09-06 Websense, Inc. System and method of controlling access to the internet
US7917747B2 (en) * 2007-03-22 2011-03-29 Igt Multi-party encryption systems and methods
GB0709527D0 (en) 2007-05-18 2007-06-27 Surfcontrol Plc Electronic messaging system, message processing apparatus and message processing method
US8150820B1 (en) * 2007-10-04 2012-04-03 Adobe Systems Incorporated Mechanism for visible users and groups
US20090092248A1 (en) * 2007-10-04 2009-04-09 Advanced Micro Devices, Inc. Encryption-based authentication for binding modules
FR2923967B1 (fr) * 2007-11-21 2009-12-18 Eads Information Technologies Procede de securisation d'une connexion distante d'un terminal a un reseau d'entreprise
US8683572B1 (en) 2008-01-24 2014-03-25 Dunti Llc Method and apparatus for providing continuous user verification in a packet-based network
JP4687722B2 (ja) * 2008-02-04 2011-05-25 ブラザー工業株式会社 スキャナ
US20110047627A1 (en) * 2008-03-10 2011-02-24 Invicta Networks, Inc. Method and system for secure data exfiltration from a closed network or system
AU2009267107A1 (en) * 2008-06-30 2010-01-07 Websense, Inc. System and method for dynamic and real-time categorization of webpages
US8321926B1 (en) * 2008-12-02 2012-11-27 Lockheed Martin Corporation System and method of protecting a system that includes unprotected computer devices
US8434131B2 (en) 2009-03-20 2013-04-30 Commvault Systems, Inc. Managing connections in a data storage system
US8438630B1 (en) * 2009-03-30 2013-05-07 Symantec Corporation Data loss prevention system employing encryption detection
AU2010254269A1 (en) 2009-05-26 2011-12-22 Websense, Inc. Systems and methods for efficient detection of fingerprinted data and information
US8321688B2 (en) * 2009-06-12 2012-11-27 Microsoft Corporation Secure and private backup storage and processing for trusted computing and data services
US20100318782A1 (en) * 2009-06-12 2010-12-16 Microsoft Corporation Secure and private backup storage and processing for trusted computing and data services
US8561183B2 (en) * 2009-07-31 2013-10-15 Google Inc. Native code module security for arm instruction set architectures
US8819399B1 (en) 2009-07-31 2014-08-26 Google Inc. Predicated control flow and store instructions for native code module security
CN102576392B (zh) * 2009-10-31 2014-12-17 惠普发展公司,有限责任合伙企业 用于恶意代码检测的设备和方法及恶意代码检测器
US8850428B2 (en) 2009-11-12 2014-09-30 Trustware International Limited User transparent virtualization method for protecting computer programs and data from hostile code
US20110225623A1 (en) * 2010-03-12 2011-09-15 Wright Michael W Web-Hosted Self-Managed Virtual Systems With Complex Rule-Based Content Access
EP2438511B1 (de) 2010-03-22 2019-07-03 LRDC Systems, LLC Verfahren zur identifikation und zum schutz der integrität eines satzes von quelldaten
US8977675B2 (en) * 2010-03-26 2015-03-10 Salesforce.Com, Inc. Methods and systems for providing time and date specific software user interfaces
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
RU2443017C1 (ru) * 2010-07-30 2012-02-20 Федеральное Государственное Унитарное Предприятие "Концерн "Системпром" Система защиты информации от несанкционированного доступа к информации, содержащей сведения, составляющие государственную тайну
DE102010046229A1 (de) * 2010-09-23 2012-03-29 Oliver Kömmerling Verfahren zum verschlüsselten Übertragen von Daten aus einem mobilen Datenträger auf eine stationäre Einrichtung sowie Datenverschlüsselungsadapter
RU2446457C1 (ru) 2010-12-30 2012-03-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ для удаленного администрирования персональных компьютеров в рамках сети
US8631123B2 (en) * 2011-01-14 2014-01-14 International Business Machines Corporation Domain based isolation of network ports
US8595821B2 (en) 2011-01-14 2013-11-26 International Business Machines Corporation Domains based security for clusters
US8832389B2 (en) 2011-01-14 2014-09-09 International Business Machines Corporation Domain based access control of physical memory space
US9161226B2 (en) 2011-10-17 2015-10-13 Blackberry Limited Associating services to perimeters
US9613219B2 (en) 2011-11-10 2017-04-04 Blackberry Limited Managing cross perimeter access
US8713646B2 (en) 2011-12-09 2014-04-29 Erich Stuntebeck Controlling access to resources on a network
US9705813B2 (en) 2012-02-14 2017-07-11 Airwatch, Llc Controlling distribution of resources on a network
US10257194B2 (en) 2012-02-14 2019-04-09 Airwatch Llc Distribution of variably secure resources in a networked environment
US10404615B2 (en) 2012-02-14 2019-09-03 Airwatch, Llc Controlling distribution of resources on a network
US9680763B2 (en) 2012-02-14 2017-06-13 Airwatch, Llc Controlling distribution of resources in a network
US9369466B2 (en) 2012-06-21 2016-06-14 Blackberry Limited Managing use of network resources
US9887872B2 (en) * 2012-07-13 2018-02-06 Microsoft Technology Licensing, Llc Hybrid application environments including hosted applications and application servers for interacting with data in enterprise environments
US9063721B2 (en) 2012-09-14 2015-06-23 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
US8862868B2 (en) 2012-12-06 2014-10-14 Airwatch, Llc Systems and methods for controlling email access
US8832785B2 (en) 2012-12-06 2014-09-09 Airwatch, Llc Systems and methods for controlling email access
US9021037B2 (en) 2012-12-06 2015-04-28 Airwatch Llc Systems and methods for controlling email access
US8978110B2 (en) 2012-12-06 2015-03-10 Airwatch Llc Systems and methods for controlling email access
US8826432B2 (en) 2012-12-06 2014-09-02 Airwatch, Llc Systems and methods for controlling email access
US9117054B2 (en) 2012-12-21 2015-08-25 Websense, Inc. Method and aparatus for presence based resource management
US9473417B2 (en) 2013-03-14 2016-10-18 Airwatch Llc Controlling resources used by computing devices
US20140280955A1 (en) 2013-03-14 2014-09-18 Sky Socket, Llc Controlling Electronically Communicated Resources
US8997187B2 (en) 2013-03-15 2015-03-31 Airwatch Llc Delegating authorization to applications on a client device in a networked environment
US9787686B2 (en) 2013-04-12 2017-10-10 Airwatch Llc On-demand security policy activation
US8914013B2 (en) 2013-04-25 2014-12-16 Airwatch Llc Device management macros
US9426162B2 (en) 2013-05-02 2016-08-23 Airwatch Llc Location-based configuration policy toggling
US9584437B2 (en) 2013-06-02 2017-02-28 Airwatch Llc Resource watermarking and management
US9900261B2 (en) 2013-06-02 2018-02-20 Airwatch Llc Shared resource watermarking and management
US9270777B2 (en) 2013-06-06 2016-02-23 Airwatch Llc Social media and data sharing controls for data security purposes
US8806217B2 (en) 2013-07-03 2014-08-12 Sky Socket, Llc Functionality watermarking and management
US8775815B2 (en) 2013-07-03 2014-07-08 Sky Socket, Llc Enterprise-specific functionality watermarking and management
US8756426B2 (en) 2013-07-03 2014-06-17 Sky Socket, Llc Functionality watermarking and management
US9112749B2 (en) 2013-07-25 2015-08-18 Airwatch Llc Functionality management via application modification
US9226155B2 (en) 2013-07-25 2015-12-29 Airwatch Llc Data communications management
US20150040222A1 (en) * 2013-07-31 2015-02-05 International Business Machines Corporation Detecting and reacting to inappropriate equipment and programming in a computer system without generating alerts to unauthorized users of the detection
US9665723B2 (en) 2013-08-15 2017-05-30 Airwatch, Llc Watermarking detection and management
US9516005B2 (en) 2013-08-20 2016-12-06 Airwatch Llc Individual-specific content management
US9185099B2 (en) 2013-09-23 2015-11-10 Airwatch Llc Securely authorizing access to remote resources
US9544306B2 (en) 2013-10-29 2017-01-10 Airwatch Llc Attempted security breach remediation
US9258301B2 (en) 2013-10-29 2016-02-09 Airwatch Llc Advanced authentication techniques
US10050933B2 (en) 2015-06-25 2018-08-14 Michael Froelich Structural data ferry system
US9967282B2 (en) 2014-09-14 2018-05-08 Sophos Limited Labeling computing objects for improved threat detection
US10122687B2 (en) 2014-09-14 2018-11-06 Sophos Limited Firewall techniques for colored objects on endpoints
US10965711B2 (en) 2014-09-14 2021-03-30 Sophos Limited Data behavioral tracking
US9904481B2 (en) 2015-01-23 2018-02-27 Commvault Systems, Inc. Scalable auxiliary copy processing in a storage management system using media agent resources
US9898213B2 (en) 2015-01-23 2018-02-20 Commvault Systems, Inc. Scalable auxiliary copy processing using media agent resources
US9934475B2 (en) * 2015-05-13 2018-04-03 Bank Of America Corporation Managing enterprise data movement using a heuristic data movement detection engine
US9641544B1 (en) 2015-09-18 2017-05-02 Palo Alto Networks, Inc. Automated insider threat prevention
US11277416B2 (en) 2016-04-22 2022-03-15 Sophos Limited Labeling network flows according to source applications
US11102238B2 (en) 2016-04-22 2021-08-24 Sophos Limited Detecting triggering events for distributed denial of service attacks
US11165797B2 (en) 2016-04-22 2021-11-02 Sophos Limited Detecting endpoint compromise based on network usage history
US10986109B2 (en) 2016-04-22 2021-04-20 Sophos Limited Local proxy detection
US10938781B2 (en) 2016-04-22 2021-03-02 Sophos Limited Secure labeling of network flows
US12021831B2 (en) 2016-06-10 2024-06-25 Sophos Limited Network security
US10503767B2 (en) 2016-09-13 2019-12-10 Microsoft Technology Licensing, Llc Computerized natural language query intent dispatching
US10540513B2 (en) * 2016-09-13 2020-01-21 Microsoft Technology Licensing, Llc Natural language processor extension transmission data protection
US11010261B2 (en) 2017-03-31 2021-05-18 Commvault Systems, Inc. Dynamically allocating streams during restoration of data
US10855656B2 (en) 2017-09-15 2020-12-01 Palo Alto Networks, Inc. Fine-grained firewall policy enforcement using session app ID and endpoint process ID correlation
US10931637B2 (en) 2017-09-15 2021-02-23 Palo Alto Networks, Inc. Outbound/inbound lateral traffic punting based on process risk
WO2019126305A1 (en) * 2017-12-18 2019-06-27 The IP Law Firm of Guy Levi, LLC Systems, and methods for transferring data between secure networks through less secure networks
US11741196B2 (en) 2018-11-15 2023-08-29 The Research Foundation For The State University Of New York Detecting and preventing exploits of software vulnerability using instruction tags
RU2727090C1 (ru) * 2020-02-18 2020-07-17 Открытое Акционерное Общество "Российские Железные Дороги" Программно-аппаратный комплекс для обмена данными автоматизированных систем
US11595410B2 (en) * 2020-03-04 2023-02-28 Raytheon Bbn Technologies Corp. Fragmented cross-domain solution
US11637702B2 (en) 2020-03-04 2023-04-25 Raytheon Bbn Technologies Corp. Verifiable computation for cross-domain information sharing
CN111818057B (zh) * 2020-07-09 2022-10-28 公安部第三研究所 一种网络配置数据中继分发传输系统及方法
US11366901B2 (en) 2020-10-07 2022-06-21 Bank Of America Corporation System and method for identifying insider threats in source code
US12124584B2 (en) 2021-08-05 2024-10-22 Bank Of America Corporation System and method for detecting insider threats in source code

Family Cites Families (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2258112A5 (de) * 1973-11-30 1975-08-08 Honeywell Bull Soc Ind
US3956615A (en) * 1974-06-25 1976-05-11 Ibm Corporation Transaction execution system with secure data storage and communications
US4104721A (en) * 1976-12-30 1978-08-01 International Business Machines Corporation Hierarchical security mechanism for dynamically assigning security levels to object programs
US4442484A (en) * 1980-10-14 1984-04-10 Intel Corporation Microprocessor memory management and protection mechanism
US4648031A (en) * 1982-06-21 1987-03-03 International Business Machines Corporation Method and apparatus for restarting a computing system
US4870571A (en) * 1983-05-04 1989-09-26 The Johns Hopkins University Intercomputer communications based on message broadcasting with receiver selection
US4584639A (en) * 1983-12-23 1986-04-22 Key Logic, Inc. Computer security system
FR2558321A1 (fr) * 1984-01-13 1985-07-19 Philips Ind Commerciale Dispositif programmable de filtrage deterministe de messages
US4621321A (en) * 1984-02-16 1986-11-04 Honeywell Inc. Secure data processing system architecture
US4713753A (en) * 1985-02-21 1987-12-15 Honeywell Inc. Secure data processing system architecture with format control
US4914568A (en) * 1986-10-24 1990-04-03 National Instruments, Inc. Graphical system for modelling a process and associated method
US5077658A (en) 1987-10-19 1991-12-31 International Business Machines Corporation Data access system for a file access processor
US4885789A (en) * 1988-02-01 1989-12-05 International Business Machines Corporation Remote trusted path mechanism for telnet
US4888801A (en) * 1988-05-02 1989-12-19 Motorola, Inc. Hierarchical key management system
US4914590A (en) * 1988-05-18 1990-04-03 Emhart Industries, Inc. Natural language understanding system
JP2737173B2 (ja) * 1988-10-25 1998-04-08 日本電気株式会社 記号列照合装置とその制御方法
US4933971A (en) * 1989-03-14 1990-06-12 Tandem Computers Incorporated Method for encrypting transmitted data using a unique key
GB8918553D0 (en) * 1989-08-15 1989-09-27 Digital Equipment Int Message control system
JPH03117940A (ja) 1989-09-25 1991-05-20 Internatl Business Mach Corp <Ibm> 電子メールの管理方法
JP2782683B2 (ja) 1989-10-19 1998-08-06 三菱電機株式会社 Lanにおける通信方法およびノード装置
US5093914A (en) * 1989-12-15 1992-03-03 At&T Bell Laboratories Method of controlling the execution of object-oriented programs
US5056140A (en) * 1990-02-22 1991-10-08 Blanton Kimbell Communication security accessing system and process
US5276789A (en) 1990-05-14 1994-01-04 Hewlett-Packard Co. Graphic display of network topology
US5204961A (en) * 1990-06-25 1993-04-20 Digital Equipment Corporation Computer network operating with multilevel hierarchical security with selectable common trust realms and corresponding security protocols
GB9015799D0 (en) * 1990-07-18 1991-06-12 Plessey Telecomm A data communication system
US5124984A (en) * 1990-08-07 1992-06-23 Concord Communications, Inc. Access controller for local area network
US5153918A (en) * 1990-11-19 1992-10-06 Vorec Corporation Security system for data communications
US5263147A (en) * 1991-03-01 1993-11-16 Hughes Training, Inc. System for providing high security for personal computers and workstations
US5272754A (en) * 1991-03-28 1993-12-21 Secure Computing Corporation Secure computer interface
US5228083A (en) * 1991-06-28 1993-07-13 Digital Equipment Corporation Cryptographic processing in a communication network, using a single cryptographic engine
US5251131A (en) 1991-07-31 1993-10-05 Thinking Machines Corporation Classification of data records by comparison of records to a training database using probability weights
US5355474A (en) * 1991-09-27 1994-10-11 Thuraisngham Bhavani M System for multilevel secure database management using a knowledge base with release-based and other security constraints for query, response and update modification
US5555346A (en) 1991-10-04 1996-09-10 Beyond Corporated Event-driven rule-based messaging system
US5177788A (en) * 1991-10-15 1993-01-05 Ungermann-Bass, Inc. Network message security method and apparatus
FR2686755A1 (fr) * 1992-01-28 1993-07-30 Electricite De France Procede de chiffrement de messages transmis entre reseaux interconnectes, appareil de chiffrement et dispositif de communication de donnees chiffrees mettant en óoeuvre un tel procede.
US5333266A (en) * 1992-03-27 1994-07-26 International Business Machines Corporation Method and apparatus for message handling in computer systems
US5276735A (en) * 1992-04-17 1994-01-04 Secure Computing Corporation Data enclave and trusted path system
US5311593A (en) * 1992-05-13 1994-05-10 Chipcom Corporation Security system for a network concentrator
GB9212655D0 (en) * 1992-06-15 1992-07-29 Digital Equipment Int Communications system
WO1993026109A1 (en) * 1992-06-17 1993-12-23 The Trustees Of The University Of Pennsylvania Apparatus for providing cryptographic support in a network
US5359659A (en) * 1992-06-19 1994-10-25 Doren Rosenthal Method for securing software against corruption by computer viruses
US5268962A (en) * 1992-07-21 1993-12-07 Digital Equipment Corporation Computer network with modified host-to-host encryption keys
IL102843A (en) * 1992-08-17 1996-06-18 Zisapel Yehuda Carrier sensing multiple access/collision detection local area networks
GB9220404D0 (en) * 1992-08-20 1992-11-11 Nat Security Agency Method of identifying,retrieving and sorting documents
US5267735A (en) * 1992-10-05 1993-12-07 Bushman Earl K Javelin
US5828893A (en) 1992-12-24 1998-10-27 Motorola, Inc. System and method of communicating between trusted and untrusted computer systems
US5586260A (en) * 1993-02-12 1996-12-17 Digital Equipment Corporation Method and apparatus for authenticating a client to a server in computer systems which support different security mechanisms
US5608720A (en) * 1993-03-09 1997-03-04 Hubbell Incorporated Control system and operations system interface for a network element in an access system
US5414833A (en) * 1993-10-27 1995-05-09 International Business Machines Corporation Network security system and method using a parallel finite state machine adaptive active monitor and responder
US5564018A (en) 1993-11-15 1996-10-08 International Business Machines Corporation System for automatically distributing selected mail item to selected user associated with office location within physical office floor plan in data processing system
US5606668A (en) * 1993-12-15 1997-02-25 Checkpoint Software Technologies Ltd. System for securing inbound and outbound data packet flow in a computer network
US5386471A (en) * 1994-01-25 1995-01-31 Hughes Aircraft Company Method and apparatus for securely conveying network control data across a cryptographic boundary
GB2287619A (en) * 1994-03-03 1995-09-20 Ibm Security device for data communications networks
US5548507A (en) 1994-03-14 1996-08-20 International Business Machines Corporation Language identification process using coded language words
US5548721A (en) * 1994-04-28 1996-08-20 Harris Corporation Method of conducting secure operations on an uncontrolled network
US5530758A (en) 1994-06-03 1996-06-25 Motorola, Inc. Operational methods for a secure node in a computer network
US5511122A (en) * 1994-06-03 1996-04-23 The United States Of America As Represented By The Secretary Of The Navy Intermediate network authentication
US5724425A (en) * 1994-06-10 1998-03-03 Sun Microsystems, Inc. Method and apparatus for enhancing software security and distributing software
US5416842A (en) * 1994-06-10 1995-05-16 Sun Microsystems, Inc. Method and apparatus for key-management scheme for use with internet protocols at site firewalls
US5615340A (en) * 1994-07-21 1997-03-25 Allied Telesyn Int'l Corp. Network interfacing apparatus and method using repeater and cascade interface with scrambling
US5485460A (en) * 1994-08-19 1996-01-16 Microsoft Corporation System and method for running multiple incompatible network protocol stacks
US5604490A (en) * 1994-09-09 1997-02-18 International Business Machines Corporation Method and system for providing a user access to multiple secured subsystems
US5548646A (en) * 1994-09-15 1996-08-20 Sun Microsystems, Inc. System for signatureless transmission and reception of data packets between computer networks
US5864683A (en) * 1994-10-12 1999-01-26 Secure Computing Corporartion System for providing secure internetwork by connecting type enforcing secure computers to external network for limiting access to data based on user and process access rights
US5623601A (en) * 1994-11-18 1997-04-22 Milkway Networks Corporation Apparatus and method for providing a secure gateway for communication and data exchanges between networks
FR2727269B1 (fr) 1994-11-21 1997-01-17 Allegre Francois Systeme de controle d'acces a des machines informatiques connectees en reseau prive
US5619648A (en) 1994-11-30 1997-04-08 Lucent Technologies Inc. Message filtering techniques
US5550984A (en) * 1994-12-07 1996-08-27 Matsushita Electric Corporation Of America Security system for preventing unauthorized communications between networks by translating communications received in ip protocol to non-ip protocol to remove address and routing services information
US5566170A (en) * 1994-12-29 1996-10-15 Storage Technology Corporation Method and apparatus for accelerated packet forwarding
US5717913A (en) * 1995-01-03 1998-02-10 University Of Central Florida Method for detecting and extracting text data using database schemas
US5634084A (en) * 1995-01-20 1997-05-27 Centigram Communications Corporation Abbreviation and acronym/initialism expansion procedures for a text to speech reader
US5715466A (en) * 1995-02-14 1998-02-03 Compuserve Incorporated System for parallel foreign language communication over a computer network
US5548649A (en) * 1995-03-28 1996-08-20 Iowa State University Research Foundation Network security bridge and associated method
US5699513A (en) * 1995-03-31 1997-12-16 Motorola, Inc. Method for secure network access via message intercept
CA2220491C (en) * 1995-05-08 2001-07-24 Compuserve Incorporated Rules based electronic message management system
US5802320A (en) 1995-05-18 1998-09-01 Sun Microsystems, Inc. System for packet filtering of data packets at a computer network interface
US5632011A (en) 1995-05-22 1997-05-20 Sterling Commerce, Inc. Electronic mail management system for operation on a host computer system
US5708780A (en) * 1995-06-07 1998-01-13 Open Market, Inc. Internet server access control and monitoring systems
US5636371A (en) * 1995-06-07 1997-06-03 Bull Hn Information Systems Inc. Virtual network mechanism to access well known port application programs running on a single host system
US5706507A (en) * 1995-07-05 1998-01-06 International Business Machines Corporation System and method for controlling access to data located on a content server
US5689566A (en) * 1995-10-24 1997-11-18 Nguyen; Minhtam C. Network with secure communications sessions
US5671279A (en) * 1995-11-13 1997-09-23 Netscape Communications Corporation Electronic commerce using a secure courier system
US5781550A (en) 1996-02-02 1998-07-14 Digital Equipment Corporation Transparent and secure network gateway
US5898830A (en) 1996-10-17 1999-04-27 Network Engineering Software Firewall providing enhanced network security and user transparency
US5867647A (en) * 1996-02-09 1999-02-02 Secure Computing Corporation System and method for securing compiled program code
US5918018A (en) * 1996-02-09 1999-06-29 Secure Computing Corporation System and method for achieving network separation
US5684951A (en) * 1996-03-20 1997-11-04 Synopsys, Inc. Method and system for user authorization over a multi-user computer system
US5673322A (en) * 1996-03-22 1997-09-30 Bell Communications Research, Inc. System and method for providing protocol translation and filtering to access the world wide web from wireless or low-bandwidth networks
US5828833A (en) 1996-08-15 1998-10-27 Electronic Data Systems Corporation Method and system for allowing remote procedure calls through a network firewall
US5950195A (en) 1996-09-18 1999-09-07 Secure Computing Corporation Generalized security policy management system and method
US5896499A (en) 1997-02-21 1999-04-20 International Business Machines Corporation Embedded security processor
US5968176A (en) 1997-05-29 1999-10-19 3Com Corporation Multilayer firewall system
US5958016A (en) 1997-07-13 1999-09-28 Bell Atlantic Network Services, Inc. Internet-web link for access to intelligent network service control
US6453419B1 (en) * 1998-03-18 2002-09-17 Secure Computing Corporation System and method for implementing a security policy

Also Published As

Publication number Publication date
EP0787397A1 (de) 1997-08-06
US20070226789A1 (en) 2007-09-27
US7730299B2 (en) 2010-06-01
DE69522460D1 (de) 2001-10-04
WO1996013113A1 (en) 1996-05-02
US20040230791A1 (en) 2004-11-18
US6772332B1 (en) 2004-08-03
US7181613B2 (en) 2007-02-20
EP0787397B1 (de) 2001-08-29
US5864683A (en) 1999-01-26
AU3888595A (en) 1996-05-15

Similar Documents

Publication Publication Date Title
DE69522460T2 (de) System und verfahren zur erzeugung gesicherter internetzwerkdienste
US20110296164A1 (en) System and method for providing secure network services
DE60200323T2 (de) Verfahren zum Schutz der Integrität von Programmen
Sandhu et al. Authentication, Access Controls, and Intrusion Detection.
DE69311331T2 (de) Kryptographische datensicherheit in einem gesicherten computersystem.
DE60218615T2 (de) Verfahren und Architektur zur durchdringenden Absicherung von digitalen Gütern
Viega Building security requirements with CLASP
US20030177376A1 (en) Framework for maintaining information security in computer networks
US8805741B2 (en) Classification-based digital rights management
Chou et al. Cyberspace security management
Kak Zero Trust Evolution & Transforming Enterprise Security
CISM et al. Wireless operational security
Blain et al. An Intrusion-Tolerant Security Server for an Open Distributed System.
Meredith A summary of the autonomic distributed firewalls (ADF) project
CN111079154A (zh) 一种保护操作系统内核不被外来程序破坏的内核加固系统
Zhang et al. Controlling Network Risk in E-commerce
Saeed et al. Access Control Security Review: Concepts and Models
Fataniya A Survey of Database Security Challenges, Issues and Solution
Mavrakis Vulnerabilities of ISPs
Frank Security in MongoDB: Understanding the different aspects of security in MongoDB, including authentication, access control, and auditing.
Ruighaver et al. How Safe is Your Firewall: On the Security of Intranets
CN118842610A (zh) 一种基于身份植入进行动态网络隔离的业务防护方法
Rome Enclaves and collaborative domains
den Braber et al. Using the CORAS threat modelling language to document threat scenarios for several Microsoft relevant technologies
Johnson Problems in computer security for commercial systems

Legal Events

Date Code Title Description
8364 No opposition during term of opposition