DE69636513T2 - System zur sicherung des flusses und zur selektiven veränderung von paketen in einem rechnernetz - Google Patents

System zur sicherung des flusses und zur selektiven veränderung von paketen in einem rechnernetz Download PDF

Info

Publication number
DE69636513T2
DE69636513T2 DE1996636513 DE69636513T DE69636513T2 DE 69636513 T2 DE69636513 T2 DE 69636513T2 DE 1996636513 DE1996636513 DE 1996636513 DE 69636513 T DE69636513 T DE 69636513T DE 69636513 T2 DE69636513 T2 DE 69636513T2
Authority
DE
Germany
Prior art keywords
packet filter
packet
network
key
data packets
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
DE1996636513
Other languages
English (en)
Other versions
DE69636513D1 (de
Inventor
Gil Shwed
Shlomo Kramer
Nir Zuk
Gil Dogon
Ehud Ben-Reuven
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.)
Check Point Software Technologies Ltd
Original Assignee
Check Point Software Technologies Ltd
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 Check Point Software Technologies Ltd filed Critical Check Point Software Technologies Ltd
Priority claimed from PCT/IL1996/000017 external-priority patent/WO1997000471A2/en
Publication of DE69636513D1 publication Critical patent/DE69636513D1/de
Application granted granted Critical
Publication of DE69636513T2 publication Critical patent/DE69636513T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Description

  • Hintergrund der Erfindung
  • Diese Anmeldung betrifft allgemein ein Verfahren zur Steuerung der Sicherheit in einem Computernetzwerk. Insbesondere betrifft sie ein einfach änderbares oder erweiterbares Verfahren für die Computernetzwerksicherheit, das den Informationsfluß in dem Netzwerk von/zu externen und internen Zielen steuert.
  • Anschlußmöglichkeiten und Sicherheit sind zwei widersprüchliche Ziele in der Rechnerumgebung der meisten Or ganisationen. Das typische Modemrechnersystem ist um Netzwerkkommunikationen aufgebaut, die einen transparenten Zugang zu einer Vielzahl an Diensten liefern. Die globale Verfügbarkeit dieser Dienste ist vielleicht das einzig entscheidende Merkmal moderner Rechnerlösungen. Die Nachfrage nach Anschlußmöglichkeiten kommt sowohl von innerhalb von Organisationen als auch außerhalb von ihnen.
  • Der Schutz von Netzwerkdiensten vor unberechtigter Benutzung ist für jede Organisation von überragender Bedeutung. Zum Beispiel werden UNIX-Workstations, die einmal mit dem Internet verbunden sind, alle Dienste, die sie einer anderen Station auf dem nächsten Tisch bieten, der ganzen Welt bieten. Unter Verwendung der gegenwärtigen Technologie muß eine Organisation eine Menge ihrer Anschlußmöglichkeiten, sogar in dem Maß, daß alle Verbindungen zur Außenwelt oder anderen Standorten beseitigt werden, aufgeben, um Schwachstellen zu verhindern.
  • Da der Bedarf an zunehmender Sicherheit wächst, wurden die Mittel zur Zugangssteuerung zu Netzwerkressourcen eine administrative Priorität. Um Kosten zu sparen und die Leistungsfähigkeit aufrechtzuerhalten, muß die Zugangssteue rung einfach zu konfigurieren und für Benutzer und Anwendungen transparent sein. Die Minimierung von Einrichtungskosten und Stillstandzeit sind ebenfalls wichtige Faktoren.
  • Paketfiltern ist ein Verfahren, das Anschlußmöglichkeiten zuläßt, aber durch Steuerung des durchgelassenen Verkehrs Sicherheit bereitstellt, wobei auf diese Weise verbotene Kommunikationsversuche sowohl innerhalb einzelner Netzwerke als auch zwischen verbundenen Netzwerken verhindert werden.
  • Die gegenwärtige Realisierung der Paketfilterung ermöglicht die Angabe von Zugangslistentabellen entsprechend einem festen Format. Dieses Verfahren ist in seiner Flexibilität darauf beschränkt, die Sicherheitsstrategie einer gegebenen Organisation auszudrücken. Es ist auch auf den Satz von Protokollen und Diensten beschränkt, die in dieser bestimmten Tabelle definiert sind. Dieses Verfahren erlaubt nicht die Einführung verschiedener Protokolle oder Dienste, die in der Originaltabelle nicht angegeben sind.
  • Ein anderes Verfahren zur Realisierung der Paketfilterung ist das manuelle Konfektionieren des Computerbetriebssystemcodes an jedem strategischen Punkt in der Organisation. Dieses Verfahren ist in seiner Flexibilität für zukünftige Änderungen in der Netzwerktopologie, neue Protokolle, verbesserte Dienste und zukünftige Sicherheitsbedrohungen beschränkt. Es erfordert eine große Menge an Expertenarbeit, proprietäre Computerprogramme zu ändern, was es mangelhaft und teuer in der Einrichtung und im Unterhalt macht.
  • Ein Beispiel für ein Verfahren zur Untersuchung von Datenpaketen der obigen Art ist in dem Dokument „Intrusion Protection for Networks", Dawson J.B., Byte, McGraw-Hill Inc., St. Petersborough, USA, Bd. 20, Nr. 4, Seiten 171-172, XP000562745, ISSN: 0360-5280, offenbart.
  • In dem Dokument „Network Firewalls", Bellovin S.M. et al., IEEE Communications Magazine, IEEE Service Center, Piscataway, N.J., USA, Bd. 32, Nr. 9, Seiten 50-57, XP000476555, ISSN: 0163-6804, wird ein Verfahren zur Unter suchung eingehender und ausgehender Datenpakete in einem Computernetzwerk gemäß der Präambel von Patentanspruch 1 beschrieben. Ein Sicherheitssystem gemäß der Präambel von Anspruch 19 ist ebenfalls aus diesem Dokument bekannt.
  • Außerdem wird der Bedarf an sicheren Fernkommunikationen zwischen Unternehmen, Zweigstellen und Geschäftspartnern zu einer wesentlichen Anforderung in der zeitgemäßen Geschäftstätigkeit. Historisch wurden für vollständig privaten Verkehr innerhalb von Unternehmen und Ferntransaktionen dedizierte Punkt-zu-Punkt-Verbindungen zwischen Netzwerken verwendet. Ihre Unflexibilität und unerschwinglichen Kosten haben ihre weitverbreitete Verwendung verhindert. Öffentliche Netzwerke, wie etwa das Internet, stellen eine flexible und kostengünstige Lösung für eine Zusammenarbeit über weite Entfernungen bereit. Anstatt dedizierte Leitungen aufzubauen, können Unternehmen unter Verwendung des Internet als Vermittler kommunizieren. Wenn sie einmal mit einem lokalen Internetanbieter verbunden sind, können private Netzwerke sich schnell mit jedem Ziel rund um die Welt verbinden.
  • Ein privates Netzwerk, das einige öffentliche Abschnitte verwendet, wird als ein virtuelles privates Netzwerk (VPN) bezeichnet. Ein VPN ist erheblich weniger teuer und flexibler als ein dediziertes privates- Netzwerk. Jedes der privaten Netzwerke braucht nur mit einem lokalen Internetanbieter verbunden zu werden. Das Hinzufügen neuer Verbindungen ist einfach und kostengünstig. Ein Hauptnachteil eines VPN ist jedoch, daß es aufgrund seiner unsicheren Abschnitte unsicher ist. Die Internetverbindung setzt das Unternehmen den folgenden Gefahren aus: (1) unberechtigter Internetzugang in interne Unternehmensnetzwerke (Einbrüche) und (2) Abhören und Manipulieren von Unternehmenskommunikationen, während diese durch das Internet laufen.
  • Die Sicherheitsrisiken, die das Kommunizieren über das Internet mit sich bringt, haben Unternehmen davon abgehalten, VPNs voll auszunutzen. Geschäftemachen über das Internet (z.B. Transferieren von Geldmitteln, Erhalten und Verifizieren von Kreditinformation, Verkaufen und Liefern von Produkten) erfordert eine zuverlässige und wirksame Sicherheitslösung.
  • Folglich strebt die vorliegende Erfindung danach, ein verbessertes flexibles, leicht änderbares Sicherheitsverfahren zur Verfügung zu stellen, welches den Informationsfluß in einem Computernetzwerk in der Art des ebenfalls schwebenden dem gleichen Erfinder zuerkannten EP-A-0 658 837, veröffentlicht am 21. Juni 1995, steuert.
  • Eine andere Aufgabe der Erfindung ist, den Informationsfluß in dem Netzwerk aus dem Inneren/in das Innere ebenso wie von/zu externen Zielen zu steuern, wobei die Steuerung das Verschlüsseln der Information und/oder das Verändern der Quell- und/oder Zieladresse umfaßt.
  • Noch eine andere Aufgabe der Erfindung ist es, den Informationsfluß mit Hilfe eines Paketfilters zu steuern, welches fähig ist, jedes Informationspaket, das an einem Knoten in dem System vorbeifließt, zu untersuchen, wobei das Paket verschlüsselt ist.
  • Eine weitere Aufgabe der Erfindung ist, den Informationsfluß durch das Paketfilter zu steuern, wobei das Paketfilter fähig ist, das Paket nur durchzulassen, wenn es, vorzugsweise nach einer zerstörungsfreien Verbindungsgültigkeitsprüfung, vorab autorisiert ist.
  • Eine andere Aufgabe der Erfindung ist es, ein generisches Paketfiltermodul zur Verfügung zu stellen, das von einem Satz von Anweisungen gesteuert wird, um eine gegebene Sicherheitsstrategie an einem Knoten zu realisieren, um das Paket anzunehmen (durchzulassen) oder abzulehnen (fallenzulassen), wobei das Paket nur durchgelassen wird, wenn sein Durchlaß vorab autorisiert wurde.
  • Noch eine andere Aufgabe der Erfindung ist es, ein Sicherheitsverfahren für ein Computernetzwerk zur Verfügung zu stellen, das von dem Systemadministrator ohne die Notwendigkeit, die Art des Paketfilters selbst zu ändern oder ausführlichen Code zu schreiben, leicht änderbar ist.
  • Eine andere Aufgabe der Erfindung ist es, eine verbesserte Verbindungsgültigkeitsprüfung zur Verfügung zu stellen.
  • Noch eine andere Aufgabe der Erfindung ist es, die Fähigkeit zur Veränderung des Pakets dadurch zur Verfügung zu stellen, daß es verschlüsselt wird, eine Zieladresse verändert wird und/oder externe Eingaben als Kriterien für die Annahme, Ablehnung oder Veränderung der Netzwerkkommunikation angenommen werden.
  • Eine andere Aufgabe der vorliegenden Erfindung ist es, ein Verschlüsselungsschema zur Sicherung des Datenflusses über unsichere öffentliche Netzwerke, wie etwa das Internet, zur Verfügung zu stellen, wobei auf diese Weise ein VPN gebildet wird.
  • Um dies zu erreichen, ist ein Verfahren zum Untersuchen und selektiven Verändern von eingehenden und ausgehenden Datenpaketen in einem Computernetzwerk der Erfindung durch die in dem kennzeichnenden Teil von Anspruch 1 beanspruchten Merkmale gekennzeichnet, und die Erfindung stellt ein Sicherheitssystem gemäß dem kennzeichnenden Teil von Anspruch 19 zur Verfügung.
  • Gemäß eines Aspekts der vorliegenden Erfindung wird ein Computersystem für die Absicherung von Transaktionen über Netzwerke bereitgestellt, indem sie verschlüsselt werden, es verschiedene Netzwerke mit verschiedenen Adressierungsschemata verbindet, und es stellt Wege zur Verfügung, um Informationspakete nur durchzulassen, wenn die Quelle der Kommunikation berechtigt ist und die Gültigkeit des Verkehrs durch das Netzwerk erkannt wurde, während die Informationen, die benötigt werden, um dies zu erreichen, bevorzugt in einer störungssicheren Architektur minimiert werden.
  • Gemäß der vorliegenden Erfindung wird ein Verfahren zum Untersuchen und selektiven Verändern von eingehenden und ausgehenden Datenpaketen in einem Computernetzwerk zur Verfügung gestellt, wobei die Untersuchung und die selektive Veränderung der Datenpakete nach einer Sicherheitsregel erfolgt und das Verfahren die folgenden Schritte umfaßt: Er zeugen einer Definition jedes Aspekts des Computernetzwerks, der durch die Sicherheitsregel untersucht wird, Erzeugen der Sicherheitsregel in den Begriffen der Aspektdefinitionen, wobei die Sicherheitsregel mindestens einen der Aspekte steuert, Umwandeln der Sicherheitsregel in einen Satz von Paketfilter-Sprachanweisungen zum Steuern einer Operation eines Paketfiltermoduls, das die Datenpakete nach der Sicherheitsregel untersucht und selektiv verändert, Koppeln des Paketfiltermoduls an das Computernetzwerk zum Untersuchen und selektiven Verändern der Datenpakete nach der Sicherheitsregel, wobei das Paketfiltermodul eine virtuelle Paketfiltermaschine realisiert, und wobei das Paketfiltermodul die Paketfilter-Sprachanweisungen zum Betreiben der virtuellen Paketfiltermaschine entweder zum Annehmen oder zum Ablehnen des Durchlasses dieser Datenpakete in den und aus dem Netzwerkcomputer und zum selektiven Verändern der so angenommenen Pakete ausführt.
  • Ferner können die Aspekte Netzwerkobjekte, Netzwerkdienste oder Netzwerkdienste enthalten. Außerdem enthalten die Objektdefinitionen die Adresse des Objekts und die Filtersprachanweisungen des Umwandlungsschritts in der Form eines Skripts und umfassen ferner einen Kompilierer zum Kompilieren des Skripts in die in dem Ausführungsschritt ausgeführten Anweisungen.
  • Ferner wird sowohl der Schritt des Erzeugens der Aspekte des Netzwerks als auch der Sicherheitsregel noch grafisch definiert, und die selektive Veränderung wird aus der Gruppe ausgewählt, die aus Verschlüsselung, Entschlüsselung, Signaturerzeugung und Signaturverifizierung besteht.
  • Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung wird auch ein Sicherheitssystem zum Untersuchen und selektiven Verändern von eingehenden und ausgehenden Datenpaketen in einem Computernetzwerk zur Verfügung gestellt, wobei das Sicherheitssystem die Datenpakete in dem Computernetzwerk nach einer Sicherheitsregel untersucht und selektiv verändert, wobei jeder Aspekt des Computernetzwerks, das durch die Sicherheitsregel gesteuert wird, vorher definiert wurde und die Sicherheitsregel vorher in den Begriffen der Aspekte definiert wurde und in Paketfilter-Sprachanweisungen umgewandelt wurde, wobei ein Verfahren zum Betreiben des Sicherheitssystems die folgenden Schritte umfaßt: Bereitstellen eines Paketfiltermoduls, das mit dem Computernetzwerk gekoppelt ist, in mindestens einer Einheit des Computernetzwerks, das mit der Sicherheitsregel untersucht werden soll, wobei das Paketfiltermodul eine virtuelle Paketfiltermaschine realisiert, die die in das und aus dem Computernetzwerk durchgelassenen Datenpakete untersucht und selektiv verändert, und das Paketfiltermodul die Paketfilter-Sprachanweisungen zum Betreiben der virtuellen Paketfiltermaschine so ausführt, daß sie den Durchlaß der Datenpakete in das und aus dem Computernetzwerk entweder annimmt oder ablehnt und so angenommene Pakete selektiv verändert.
  • Gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung wird auch ein Sicherheitssystem zum Untersuchen und selektiven Verändern von eingehenden und ausgehenden Datenpaketen in einem Computernetzwerk zur Verfügung gestellt, wobei das Sicherheitssystem die Datenpakete in dem Computernetzwerk nach einer Sicherheitsregel untersucht und selektiv verändert, wobei jeder Aspekt des Computernetzwerks, das durch die Sicherheitsregel gesteuert wird, vorher definiert wurde und die Sicherheitsregel vorher in den Begriffen der Aspekte definiert wurde und in Paketfilter-Sprachanweisungen umgewandelt wurde, wobei ein Verfahren zum Betreiben des Sicherheitssystems die folgenden Schritte umfaßt: Bereitstellen eines Paketfiltermoduls, das mit dem Computernetzwerk gekoppelt ist, in mindestens einer Einheit des Computernetzwerks, das mit der Sicherheitsregel gesteuert werden soll, wobei das Paketfiltermodul eine virtuelle Paketfiltermaschine emuliert, die die in das und aus dem Computernetzwerk durchgelassenen Datenpakete untersucht und selektiv verändert, wobei das Paketfiltermodul die Paketfilter-Sprachanweisungen zum Durchführen von Paketfilteroperationen liest und ausführt, die in dem Schritt des Lesens und Ausführens der Paketfilter-Sprachanweisungen erhaltenen Ergebnisse in eine Speichervorrichtung speichert, und das Paketfiltermodul die aus vorherigen Untersuchungen gespeicherten Ergebnisse verwendet, um das Paketfiltermodul derart zu betreiben, daß es den Durchlaß der Datenpakete in das und aus dem Computernetzwerk entweder annimmt oder ablehnt und die so angenommenen Datenpakete selektiv verändert.
  • Gemäß der vorliegenden Erfindung wird auch ein Sicherheitssystem zum Untersuchen und selektiven Verändern von eingehenden und ausgehenden Datenpaketen in einem Computernetzwerk zur Verfügung gestellt, wobei das Sicherheitssystem die durch das Computernetzwerk gehenden Datenpakete nach einer Sicherheitsregel untersucht und selektiv verändert, wobei jeder Aspekt des Computernetzwerks, das durch die Sicherheitsregel gesteuert wird, vorher definiert wurde und die Sicherheitsregel vorher in den Begriffen der Aspekte definiert wurde und in Paketfilter-Sprachanweisungen umgewandelt wurde, wobei das Sicherheitssystem umfaßt: ein Paketfiltermodul, das mit dem Computernetzwerk gekoppelt ist, wobei das Paketfiltermodul nach der Sicherheitsregel arbeitet und das Paketfiltermodul eine virtuelle Paketfiltermaschine realisiert, die die in das und aus dem Computernetzwerk durchgelassenen Datenpakete untersucht und selektiv verändert, und Verarbeitungsmittel zum Lesen und Ausführen der Paketfilter-Sprachanweisungen, integral mit dem Paketfiltermodul, wobei die Verarbeitungsmittel das Paketfiltermodul so betreiben, daß sie den Durchlaß der Datenpakete in das und aus dem Computernetzwerk entweder annehmen oder ablehnen und so angenommene Pakete selektiv verändern.
  • Kurze Beschreibung der Zeichnungen
  • 1 ist ein Beispiel für eine Netzwerktopologie;
  • 2 zeigt ein Sicherheitssystem der vorliegenden Erfindung, das auf die Netzwerktopologie von 1 angewendet ist;
  • 3 zeigt den Computerbildschirm des Netzwerkadministrators von 2 detaillierter;
  • 4 ist ein Flußdiagramm des Teilsystems zum Umwandeln von grafischer Information in ein Filterskript;
  • 5 ist ein Flußdiagramm eines Informationsflusses in einem Computernetzwerk, das die vorliegende Erfindung verwendet;
  • 6 ist ein Flußdiagramm des Betriebs des in 5 gezeigten Paketfilters;
  • 7 ist ein Flußdiagramm, das die in 6 gezeigten virtuellen Maschinenoperationen zeigt;
  • 8 ist ein Flußdiagramm des Datenauszugsverfahrens von 7;
  • 9 ist ein Flußdiagramm des logischen Operationsverfahrens von 7;
  • 10 ist ein Flußdiagramm des Vergleichsoperationsverfahrens von 7;
  • 11 ist ein Flußdiagramm des Verfahrens zum Eingeben eines Literalwerts in den Speicher;
  • 12 ist ein Flußdiagramm einer bedingten Verzweigungsoperation;
  • 13 ist ein Flußdiagramm einer arithmetischen und bitweisen Operation;
  • 14 ist ein Flußdiagramm einer Nachschlagoperation;
  • 15 ist ein Flußdiagramm einer Aufzeichnungsoperation;
  • 16 ist ein Blockdiagramm auf hoher Ebene, das eine Beispielkonfiguration darstellt, welche gemäß der vorliegenden Erfindung aufgebaute Firewalls verwendet;
  • 17 ist ein Blockdiagramm auf hoher Ebene, das die zwischen zwei Firewalls übermittelten Daten während eines Austauschs von Sitzungsschlüsseln darstellt;
  • 18 ist ein logisches Flußdiagramm auf hoher Ebene, das den Prozeß darstellt, der von einer Firewall beim Senden eines Pakets an eine andere Firewall während eines Sitzungsdatenaustausches unter Verwendung von Verschlüsselung durchgeführt wird;
  • 19 ist ein logisches Flußdiagramm auf hoher Ebene, das den Prozeß darstellt, der von einer Firewall beim Empfangen eines verschlüsselten Pakets von einer anderen Firewall während eines Sitzungsdatenaustausches durchgeführt wird;
  • 20 ist ein Blockdiagramm auf hoher Ebene, das die zwischen zwei Firewalls übermittelten Daten während eines Austauschs von Basisschlüsseln darstellt;
  • 21 ist ein Blockdiagramm auf hoher Ebene, das eine Beispielkonfiguration darstellt, die einen Client-PC und eine gemäß der vorliegenden Erfindung aufgebaute Firewall verwendet;
  • 22 ist ein Blockdiagramm auf hoher Ebene, das die zwischen einem Client-PC und einer Firewall übermittelten Daten während eines Austauschs von Sitzungsschlüsseln darstellt; und
  • 23 ist ein Blockdiagramm auf hoher Ebene, das die zwischen einem Client-PC und einer Firewall übermittelten Daten während eines Austauschs von Basisschlüsseln darstellt.
  • Detaillierte Beschreibung
  • Eingehenden und ausgehenden Datenpaketfluß sichern
  • Nun Bezug nehmend auf 1 wird eine Beispielnetzwerktopologie gezeigt. In diesem Beispiel enthält der Hauptstandort 100 eine Systemadministratorfunktion, die in der Workstation 102 ausgeführt ist. Diese Workstation ist mit dem Netzwerk, das Workstations 104, einen Router 110 und ein Gateway 106 enthält, gekoppelt. Der Router 110 ist über Satellit 112 über das Gateway 122 mit einem fernen Standort gekoppelt. Das Gateway 106 ist über den Router 108 mit dem Internet gekoppelt. Der entfernte Standort 120 weist Workstations 124 auf, die mit dem Netzwerk und über das Gateway 122 mit dem Internet gekoppelt sind. Die hier gezeigte bestimmte Konfiguration ist nur als ein Beispiel ausgewählt und soll die Art des Netzwerks, in dem die vorliegende Erfindung arbeiten kann, nicht einschränken. Die Anzahl von Konfigurationen, die Netzwerke annehmen können, ist praktisch unbegrenzt, und Verfahren zum Aufbau dieser Konfigurationen sind Fachleuten auf dem Gebiet wohlbekannt. Die vorliegende Erfindung kann mit jeder dieser möglichen Konfigurationen arbeiten.
  • 2 zeigt das Netzwerk von 1, in dem die vorliegende Erfindung installiert wurde. In 2 haben Elemente, die auch in 1 gezeigt sind, die gleichen Bezugszeichen. Wie gezeigt, umfaßt die Systemadministration 102 ein Steuermodul 210, einen Paketfiltergenerator 208, eine Anzeige 206 und ein Speichermedium 212. Paketfilter 204 wurden auf der Systemadministration, den Workstations 104 und dem Gateway 106 installiert. Das Gateway 106 hat zwei derartige Filter, eines auf seiner Verbindung zu dem Netzwerk und eines auf seiner Verbindung zu dem Router 108. Die Router 108 und 110 haben jeweils eine Programmierskripttabelle, die von dem Sicherheitssystem erzeugt wird, aber keinen Teil der vorliegenden Erfindung bildet und nicht im Detail beschrieben wird. Diese Tabellen entsprechen, wie Fachleuten auf dem Gebiet bekannt, den Tabellen, die gegenwärtig verwendet werden, um Router zu programmieren.
  • Paketfilter 204 werden auch auf dem Gateway 122 des fernen Standorts 120 installiert. Ein Paketfilter wird auf der Verbindung zwischen dem Satelliten 112 und dem Gateway 122 installiert, ein zweites Paketfilter wird auf der Verbindung zwischen dem Internet und dem Gateway 122 installiert, und ein drittes Paketfilter wird auf der Verbindung zwischen dem Gateway und dem Netzwerk installiert.
  • Wie Fachleuten auf dem Gebiet wohlbekannt ist, fließt Information in dem Netzwerk in der Form von Paketen. Der Ort des Paketfilters in 2 ist derart gewählt, daß Daten, die zu oder von einem bestimmten Objekt des Netzwerks, wie etwa einer Workstation, einem Router oder einem Gateway, fließen, gesteuert werden können. Auf diese Weise haben die Workstations 104 jeweils ein Paketfilter, so daß der Informationsfluß zu und von diesen Workstations getrennt gesteuert wird. An dem entfernten Standort 120 wird das Pa ketfilter jedoch in der Verbindung zwischen dem Gateway 122 und dem Netzwerk eingerichtet, auf diese Weise gibt es keine einzelne Steuerung über den Datenfluß zu/von den Workstations 124. Wenn eine derartige einzelne Steuerung erforderlich wäre, könnten Paketfilter auch auf jeder der Workstations 124 eingerichtet werden. Jedes der Paketfilter wird zu dem Zeitpunkt installiert, zu dem das Netzwerk eingerichtet wird oder das Sicherheitssystem installiert wird, wenngleich zusätzliche Paketfilter zu einem späteren Zeitpunkt installiert werden können. Die Paketfilter werden auf der Hostvorrichtung, wie etwa der Workstation oder dem Gateway, bei dem der Schutz erwünscht ist, installiert.
  • Jedes der Paketfilter arbeitet mit einem Satz von Anweisungen, der von dem Paketfiltergenerator 208 in der Systemadministration 102 erzeugt wurde. Diese Anweisungen ermöglichen, daß an dem Paket eher komplexe Operationen durchgeführt werden als lediglich den Inhalt des Pakets gegen eine Tabelle zu prüfen, welche die Parameter für die Annahme oder Ablehnung des Pakets enthält. Auf diese Weise kann jedes Paketfilter Änderungen der Sicherheitsregeln mit großer Flexibilität abwickeln ebenso wie viele Sicherheitsregeln abwickeln, ohne die Struktur des Paketfilters selbst zu ändern.
  • Der Systemadministrator gibt die Sicherheitsregeln über eine graphische Benutzerschnittstelle (GUI), die auf dem Monitor 206 angezeigt und unter Bezug auf 3 detaillierter erklärt wird, ein. Die Information wird von dem Paketfiltergenerator 208 verarbeitet, und der sich ergebende Code wird an das richtige Paketfilter oder die Filter in dem Netzwerk übermittelt, um die gewünschte Funktion auszuführen. Das Steuermodul 210 ermöglicht dem Systemadministrator, die Operationen des Netzwerks zu verfolgen, und der Speicher 212 kann verwendet werden, um Protokolle über Operationen auf dem Netzwerk und Versuche eines verbotenen Eindringens in das Netzwerk zu führen. Der Systemadministrator kann dadurch mit den vollständigen Berichten hinsichtlich des Netzwerkbetriebs und des Erfolgs oder Versagens der Sicherheits regeln versorgt werden. Dies ermöglicht dem Sicherheitsadministrator, die Änderungen vorzunehmen, die geeignet sind, um die Sicherheit des Netzwerks zu erhalten, ohne seine Anschlußmöglichkeiten einzuschränken.
  • 3 zeigt den Computerbildschirm 206 in 2 detaillierter. Der Bildschirm ist in vier Fenster, zwei kleinere Fenster auf der linken Seite und zwei größere Fenster auf der rechten Seite, unterteilt. Netzwerkobjekte und Dienste sind zwei Aspekte des Netzwerks, die in dem Sicherheitsverfahren der vorliegenden Erfindung definiert werden müssen. Das Fenster 304 wird verwendet, um Netzwerkobjekte, wie etwa die Workstations, Gateways und andere mit dem System verbundene Computerhardware zu definieren. Es ist auch möglich, verschiedene Vorrichtungen, wie etwa zum Beispiel die Finanzabteilung, die Forschungs- und Entwicklungsabteilung, die Direktoren der Firma, zu gruppieren. Es ist somit möglich, durch die geeignete Anordnung von Paketfiltern nicht nur den Datenfluß zu einzelnen Computern in dem Netzwerk, sondern auch zu Gruppen von Computern in dem Netzwerk zu steuern. Dies ermöglicht dem Systembetreiber, eine hohe Flexibilität bei der Verwaltung von Kommunikationen in dem Netzwerk zu haben. Es ist zum Beispiel möglich, daß der Oberfinanzdirektor ebenso wie höherrangige Vertreter der Firma, wie etwa der Vorstand und die Direktoren in der Lage sind, direkt mit der Finanzabteilung zu kommunizieren, aber Kommunikationen von anderen Gruppen ausfiltern zu lassen. Es ist auch möglich, elektronische Mail von allen Gruppen zuzulassen, aber andere Informationsanforderungen auf einen angegebenen Satz von Computern zu begrenzen. Dies ermöglicht dem Systembetreiber, für das Netzwerk sowohl innere als auch externe Sicherheit bereitzustellen. Die Objektdefinition würde die Adresse des Objekts in dem Netzwerk ebenso wie einen Namen oder eine Gruppe, ob das Objekt für das Netzwerk intern oder extern ist, ob auf diesem Objekt ein Paketfilter installiert ist oder nicht, und ein grafisches Symbol enthalten. Das grafische Symbol wird in Verbindung mit dem Regelbasisverwalter 302 verwendet.
  • Ebenso werden in dem Block 306 auf dem Bildschirm Netzwerkdienste definiert. Diese Netzwerkdienste können zum Beispiel login, route, syslog und telnet umfassen. Jeder Dienst ist durch generische und spezifische Eigenschaften definiert. Die generischen Eigenschaften umfassen die Codezeichenfolge, die den Dienst identifiziert, zum Beispiel 'dport' (Zielport), der für telnet gleich 23 ist. Die Codezeichenkette, die die eingehenden und ausgehenden Pakete identifiziert, wird identifiziert. Spezifische Eigenschaften umfassen den Namen des Dienstes, den für die Bereitstellung des Dienstes verwendeten Port, die Zeitabschaltung in Sekunden, wie lange eine verbindungslose Sitzung aktiv bleiben kann, das heißt, in beide Richtungen kein Paket übertragen wird, bevor angenommen wird, daß die Sitzung abgeschlossen ist. Andere Elemente einer Dienstdefinition könnten die Programmnummer für RPC-Dienste und die ausgehenden Verbindungen für angenommene Dienste enthalten, welche verbindungslose Protokolle, wie etwa UDP, verwenden. Das grafische Symbol und seine Farbe werden angegeben.
  • Der Block 302 ist der Regelbasisverwalter, der ermöglicht, daß die neue Sicherheitsregel in einer grafischen Weise in das System eingegeben wird, wodurch der Systemadministrator davon befreit wird, Code zu schreiben, um eine bestimmte Sicherheitsregel zu realisieren oder eine Sicherheitsregel zu ändern. Nur vier Elemente werden benötigt, um die neue Sicherheitsregel in das System einzugeben. Das erste Element ist die Quelle des Datenpakets, und das dritte Element ist das Ziel des Datenpakets. Das zweite Element ist die Art des beteiligten Dienstes, und das vierte Element ist die Maßnahme, die getroffen werden sollte. Die Maßnahme, die getroffen werden kann, umfaßt das Annehmen des Pakets, wobei in diesem Fall das Paket von der Quelle an das Ziel durchgelassen wird, oder das Ablehnen des Pakets, wobei das Paket in diesem Fall nicht von der Quelle zu dem Ziel durchgelassen wird. Wenn das Paket abgelehnt wird, kann keine Maßnahme getroffen werden, oder es kann eine negative Quittung gesendet werden, die anzeigt, daß das Paket nicht an das Ziel durchgelassen wurde. Außerdem ist ein weiteres Element, das angegeben werden kann, der Installationsort für die Regel, der angibt, für welche Objekte die Regel durchgeführt wird (siehe 2). Wenn kein Installationsort angegeben ist, ordnet das System das Paketfiltermodul per Voreinstellung auf dem Kommunikationsziel an. Diese Objekte sind nicht notwendigerweise das Ziel. Zum Beispiel muß eine Kommunikation von dem Internet, die für einen lokalen Host bestimmt ist, notwendigerweise ein Gateway durchlaufen. Daher ist es möglich, die Regel bei dem Gateway anzuwenden, wenngleich das Gateway weder die Quelle noch das Ziel ist. Durch Eingeben der Daten mit Akronymen oder grafischen Symbolen kann jede Regel ohne die Notwendigkeit von Schreiben, Kompilieren und Prüfen neuen Codes für diesen Zweck schnell eingegeben und verifiziert werden. Auf diese Weise braucht der Systemadministrator kein Experte im Programmieren eines Computers für Sicherheitszwecke sein. Solange der Dienst einer der bereits in das System eingegebenen Dienste ist, wird der Computer, der als Host für die Systemadministratorfunktion dient, die Information, wie weiter unten detaillierter beschrieben, in einen Satz von Anweisungen für das richtige Paketfilter verarbeiten.
  • Der Block 308 ist eine Momentaufnahme des Systems, die den Aufbau und die Operationen des Sicherheitssystems zusammenfaßt. Es ist nicht notwendig, die vorliegende Erfindung zu proben. Die Momentaufnahme des Systems zeigt eine Zusammenfassung des Systems unter Verwendung grafischer Symbole an. Die Zusammenfassung kann zum Beispiel das Hostpiktogramm, den Hostnamen, den Regelbasisnamen, der der Name der Datei ist, die die Regelbasis enthält, und das Datum, zu dem die Regelbasis auf dem Host installiert wurde, enthalten. Sie kann auch den Zustand des Host zeigen, der anzeigt, ob Kommunikationen mit dem Host waren, ebenso wie die Anzahl von Paketen, die von dem Host untersucht, fallengelassen und protokolliert wurden.
  • 4 zeigt ein Flußdiagramm des Teilsystems zum Umwandeln der Information auf dem GUI in ein Filterskript, das die Regeln enthält, die für das Paketfilter verwendet werden. In der bevorzugten Ausführungsform wird die Ausgabe des Filterskriptgenerators in Objektcode kompiliert, der dann, wie weiter unten beschrieben, von dem Paketfiltermodul realisiert wird.
  • Das Teilsystem 400 beginnt bei 402, geht weiter zu dem Block 404, der die erste Regel von dem GUI erhält. Die erste Regel ist die erste Zeile auf dem Bildschirm, in der, wie in 3 gezeigt, eine neue Regel identifiziert wurde. Die Steuerung geht dann weiter zu dem Block 406, in dem Code erzeugt wird, um die Regel den Quellennetzwerkobjekten anzupassen. Das heißt, die Quelle des Pakets wird in den Quellcodeblock eingegeben als eines der Objekte des Systems, von dem das Datenpaket hervorgehen wird, darstellend. Die Steuerung geht dann weiter zu dem Block 408, in dem Code in dem Zielcodeblock erzeugt wird, um anzuzeigen, für welches Objekt des Netzwerks das Datenpaket bestimmt ist. Die Steuerung geht dann weiter zu dem Block 410, in dem Code erzeugt wird, um den ausgewählten Regeldiensten zu entsprechen. Die Regeldienste wurden vorher definiert und in dem System gespeichert oder werden, falls nicht definiert, zu dem Zeitpunkt definiert, zu dem die Sicherheitsregel, die den Dienst regelt, in das System eingegeben. wird. Die Steuerung geht dann weiter zu dem Block 412, in dem Code erzeugt wird, um das Paket anzunehmen oder abzulehnen, wenn den Datenblöcken 406, 408 und 410 entsprochen wurde, das heißt, die Ergebnisse der Prüfungen wahr waren. Die Aktion des Annehmens oder Ablehnens basiert auf der in der Sicherheitsregel gewählten Aktion. Die Steuerung geht dann weiter zu dem Entscheidungsblock 414, der bestimmt, ob mehre Regeln in das System eingegeben werden sollen oder nicht. Wenn keine weiteren Regeln in das System eingegeben werden sollen, endet das Teilsystem bei dem Block 418. Wenn mehr Regeln in das System eingegeben werden sollen, geht die Steuerung weiter zu dem Block 416, der die nächste Regel erhält und die Steuerung zurück zu 406 gibt, wobei das Verfahren sich zu diesem Zeitpunkt wiederholt, und die nächste Sicherheitsregel, die in der nächsten Zeile der GUI gefunden wird, verarbeitet wird.
  • Kommunikationsprotokolle sind geschichtet, worauf auch als ein Protokollstapel Bezug genommen wird. Die ISO (International Standardization Organization) hat ein allgemeines Modell definiert, das ein Rahmenwerk für die Konzeption von Kommunikationsprotokollschichten bereitstellt. Dieses Modell dient als eine grundlegende Referenz für das Verständnis der Funktionalität vorhandener Kommunikationsprotokolle.
  • ISO-Modell
    Figure 00170001
  • Verschiedene Kommunikationsprotokolle verwenden verschiedene Ebenen des ISO-Modells.
  • Ein Protokoll in einer gewissen Schicht kann sich über Protokolle, die auf anderen Schichten verwendet werden, nicht bewußt sein. Dies ist ein wichtiger Faktor, wenn Sicherheitsmaßnahmen getroffen werden. Zum Beispiel kann eine Anwendung (Schicht 7) nicht fähig sein, den Quellcomputer für einen Kommunikationsversuch (Schichten 2-3) zu identifizieren, und kann daher nicht fähig sein, ausreichend Sicherheit bereitzustellen.
  • 5 zeigt, wie ein Filterpaketmodul der vorliegenden Erfindung innerhalb des ISO-Modells verwendet wird. Die Kommunikationsschichten des ISO-Modells sind bei 502 im linken Teil von 5 gezeigt. Die Ebene 1, der Block 504, ist die Hardwareverbindung des Netzwerks, die der Draht sein kann, der verwendet wird, um die verschiedenen Objekte des Netzwerks zu verbinden. Die zweite Ebene, der Block 506, in 5 ist die Netzwerkschnittstellenhardware, die sich auf jedem Computer in dem Netzwerk befindet. Das Paketfiltermodul der vorliegenden Erfindung vermittelt zwischen dieser Ebene und der Ebene 3, die die Netzwerksoftware ist. Kurz der Vollständigkeit halber sind die anderen Ebenen des ISO-Modells die Ebene 4, der Block 510, die die Zustellung von Daten von einem Abschnitt zum nächsten betrifft, die Ebene 5, der Block 512, der das Eröffnen und Schließen einer "Sitzung" in dem Netzwerk synchronisiert. Die Ebene 6, der Block 514, betrifft den Wechsel von Daten zwischen verschiedenen Computern in dem Netzwerk, und die Ebene 7, der Block 516, ist das Anwendungsprogramm.
  • Ein Paket, das in den Computer eintritt, auf dem sich das Paketfiltermodul befindet, geht durch die Schichten 1 und 2 und wird dann in das im rechten Teil von 5 gezeigte Paketfilter 520 umgeleitet. Das Paket wird in dem Block 522 empfangen. In dem Block 524 wird das Paket mit der Sicherheitsregel verglichen und es wird bestimmt, ob das Paket der Regel entspricht oder nicht. Wenn das Paket der Regel entspricht, kann es im Protokoll des Systemadministrators protokolliert werden und wenn ein verbotener Versuch gemacht wurde, in das System einzudringen, kann eine Warnung ausgegeben werden. Die Steuerung geht dann weiter zu dem Block 534, in dem basierend auf den Anforderungen der Sicherheitsregel eine Entscheidung getroffen wird, ob das Paket durchgelassen werden soll oder nicht. Wenn die Entscheidung ist, das Paket durchzulassen, dann wird das Paket dann zu der Ebene 3, Block 508, durchgelassen. Wenn eine Entscheidung ist, das Paket nicht durchzulassen, wird bei dem Block 528 eine negative Quittung (NACK) gesendet, falls diese Option gewählt wurde, und die Steuerung geht zu dem Block 530, wo das Paket fallengelassen wird, das heißt, nicht zu seinem Ziel weitergeleitet wird. Wenn eine Anwendung ein Paket erzeugt, das an ein anderes Ziel gesendet werden soll, verläßt das Paket ebenso das ISO-Modell auf der Ebene 3, dem Block 508, und tritt in den Block 522 ein und macht mit einem identischen Verfahren weiter, abgesehen davon daß, wenn das Paket durchgelassen werden soll, es zu der Ebene 2, Block 506, und nicht der Ebene 3, Block 508, geleitet wird. Auf der Ebene 2 wird das Paket dann bei dem Block 504, Ebene 1, auf das Netzwerk gesendet. Wenn das Paket der Regel nicht entspricht, wird die nächste Regel abgerufen und das Paket untersucht, um zu sehen, ob es dieser Regel entspricht. Eine voreingestellte Regel, die ungeachtet der angegebenen Quelle, des Ziels oder des Dienstes jedem Paket entspricht, wird bereitgestellt. Diese "leere Regel" hat nur eine Aktion, die das Paket fallenlassen ist. Wenn keiner anderen Regel entsprochen wird, wird diese Regel abgerufen, und sie wird wirksam, um das Paket fallenzulassen. Das Fallenlassen des Pakets ist unter diesen Bedingungen der sicherste Schritt. Die "leere Regel" könnte natürlich so geschrieben werden, daß das Paket durchgelassen wird.
  • Bezug nehmend auf 6 ist 600 eine detaillierte Beschreibung des Blocks 520 von 5. Die verallgemeinerte Beschreibung in 6 und die in 7-10 gezeigten detaillierteren Beschreibungen weisen eine Definition des Begriffs "Paketfiltermodul", wie der Begriff hier verwendet wird, auf. Die in diesen Figuren gezeigten Fähigkeiten sind die minimalen Fähigkeiten, damit das Paketfiltermodul arbeitet. 11-15 zeigen zusätzliche Merkmale, die ebenfalls in dem Paketfiltermodul enthalten sind, aber in der Minimaldefinition des Begriffs nicht erforderlich sind.
  • Das Paketfiltermodul wird in einer "virtuellen Maschine" ausgeführt, die für die Zwecke dieser Anmeldung als eine Emulation der in 6-10 gezeigten Maschine definiert werden kann, die sich in dem Hostcomputer befindet, der ein Computer in dem Netzwerk ist.
  • Die virtuelle Maschine beginnt bei Block 602, in dem das Paket empfangen wird, das dem Block 522 von 5 entspricht. Die Steuerung geht zum Block 604, in dem die Fil teroperationen aus den Anweisungen eines (nicht gezeigten) Speichers erhalten werden. Diese Filteroperationen sind die Filteroperationen, die von dem in 2 gezeigten Paketfiltergenerator 208 erzeugt wurden. Die Steuerung geht dann weiter zu dem Block 604, in dem die Filteroperationen erhalten werden, und dann zu dem Block 606, in dem der Speicher 618 initialisiert wird. In dem Block 608 wird die erste virtuelle Maschinenoperation erhalten und in dem Block 610 durchgeführt. Die virtuelle Maschine enthält einen Speichermechanismus, so daß ein Stapel oder Register 618 verwendet werden kann, um Zwischenwerte zu speichern. Die Verwendung dieses Stapels oder Registers wird in Verbindung mit der weiter unten gezeigten Tabelle detaillierter gezeigt. Die Steuerung geht dann weiter zu dem Entscheidungsblock 614, in dem bestimmt wird, ob der Stopzustand erreicht wurde. Wenn der Stopzustand erreicht wurde, wird die Entscheidung, das Paket anzunehmen oder abzulehnen, getroffen worden sein, wobei diese Entscheidung bei Block 616 realisiert ist. Wenn das Paket durchgelassen wurde, geht das Paket weiter wie in 5 gezeigt. Wenn das Paket abgelehnt wird, wird es, wie in den Blöcken 528 und 530 gezeigt, fallengelassen, und eine negative Quittung kann gesendet werden. Wenn in dem Block 614 der Stopzustand nicht erreicht wurde, wird die nächste Operation in dem Block 616 erhalten, und das Verfahren wiederholt sich, indem es mit dem Block 610 beginnt.
  • Die Art der Operationen, die in Schritt 5, Block 610, durchgeführt werden kann, ist in 7 deutlicher gezeigt. In 7 sind der Block 610 und der Block 614 identisch mit den in 6 gezeigten Blöcken. Die Verbindung 613 wird durch drei Operationen unterbrochen, die parallel gezeigt sind. Für die Operation, die in dem Block 610 durchgeführt werden soll, geht die Steuerung weiter zu dem richtigen Block 702, 704 oder 706, in dem diese Aufgabe durchgeführt wird. In dem Block 702 wird der Datenauszug durchgeführt, in dem Block 704 werden logische Operationen durchgeführt, und in dem Block 706 wird eine Vergleichsoperation durchgeführt. Wie in dem rechten Teil von 7 gezeigt, können parallel zu den Operationen andere Blöcke hinzugefügt werden, zu deren Ausführung die virtuelle Maschine fähig ist. Der als die Blöcke 702, 704 und 706 gezeigte Teilsatz bildet die wesentlichen Elemente der virtuellen Maschine der vorliegenden Erfindung. Diese Elemente sind in 8, 9 und 10 jeweils detaillierter gezeigt. Zusätzliche Elemente, die wahlweise in die Operationen aufgenommen werden können, zu deren Durchführung die virtuelle Maschine fähig ist, sind jeweils in 11-15 gezeigt.
  • Der Datenauszugsblock 702 ist in 8 detaillierter gezeigt. Das Verfahren beginnt bei dem Block 802, und die Steuerung geht weiter zu dem Block 804, in dem Daten aus einer bestimmten Adresse innerhalb des Pakets 806 herausgezogen werden. Diese Adresse wird aus dem Stapelspeicher 618 oder aus dem Anweisungscode genommen. Die herausgezogene Datenmenge wird auch durch den Stapelspeicher oder den Anweisungscode bestimmt. Die herausgezogenen Daten werden bei dem Block 808 in den Speicherstapel 810 gelegt. Das Verfahren endet bei dem Block 812. In diesen Figuren ist der Steuerungsfluß durch Pfeile mit einer Linie gezeigt, während der Datenfluß durch Pfeile mit Doppellinien gezeigt ist.
  • 9 zeigt die logische Operation 704 detaillierter. Die logische Operation beginnt bei dem Block 902, und die Steuerung geht weiter zu dem Block 904, in dem der erste Wert aus dem Speicher 906 erhalten wird. In dem Block 908 wird ein zweiter Wert aus dem Speicher erhalten, und in dem Block 910 wird die logische Operation durchgeführt. Wenn die logische Operation wahr ist, wird bei dem Block 912 eine Eins in dem Speicher 906 abgelegt, und wenn die logische Operation falsch ist, wird bei dem Block 914 eine Null in dem Speicher 906 abgelegt. Das Verfahren endet bei dem Block 916.
  • Die für die virtuelle Maschine erforderliche dritte und letzte Operation ist in 10 detaillierter gezeigt. Die Vergleichsoperation, Block 706, beginnt bei dem Block 1002, und die Steuerung geht weiter zu dem Block 1004, in dem der erste Wert aus dem Speicher 1006 erhalten wird. Die Steuerung geht weiter zu dem Block 1008, in dem ein zweiter Wert aus dem Speicher 1006 erhalten wird. Bei dem Block 1010 findet eine Vergleichsoperation zwischen den ersten und zweiten Werten statt. Wenn das Vergleichsergebnis wahr ist, wird bei Block 1012 eine Eins in dem Speicher 1006 abgelegt, und wenn das Vergleichsergebnis falsch ist, wird bei Block 1014 eine Null in dem Speicher 1006 abgelegt. Das Verfahren endet in dem Block 1016.
  • Die folgenden Operationen sind in 7 nicht gezeigt, aber können auf der rechten Seite der Figur bei den gestrichelten Linien hinzugefügt werden und werden auf die gleiche Weise wie die Blöcke 702, 704 und 706, das heißt, parallel, verbunden. 11 zeigt das Eingeben eines Literalwerts in den Speicher. Das Verfahren beginnt bei dem Block 1102, und die Steuerung geht weiter zu dem Block 1106, in dem der Literalwert aus dem Anweisungscode erhalten wird. Der Wert wird bei dem Block 1108 in dem Speicher abgelegt, und das Verfahren endet bei dem Block 1110.
  • Eine bedingte Verzweigungsoperation ist in 12 gezeigt. Das Verfahren beginnt bei dem Block 1202, und die Steuerung geht weiter zu dem Block 1204, in dem die aus dem Anweisungscode genommene Verzweigungsbedingung geprüft wird. Wenn die Verzweigungsbedingung wahr ist, wird der Wert bei dem Block 1208 aus dem Speicherstapel 1206 erhalten und bei dem Block 1210 geprüft. Wenn das Ergebnis des Vergleichs in dem Block 1210 wahr ist, wird der nächste Schritt auf N gesetzt, und das Verfahren endet bei dem Block 1216. Wenn der Vergleich in dem Block 1210 falsch ist, endet das Verfahren bei dem Block 1216. Wenn die Verzweigungsbedingung bei dem Block 1204 falsch ist, geht die Steuerung direkt weiter zu dem Block 1214.
  • Eine arithmetische oder bitweise Operation ist in 13 gezeigt. Das Verfahren beginnt bei dem Block 1302, und die Steuerung geht weiter zu dem Block 1304, in dem der erste Wert aus dem Speicher 1306 erhalten wird. Bei dem Block 1308 wird der zweite Wert aus dem Speicher 1306 erhalten, und in dem Block 1310 wird für die zwei aus dem Spei cher 1306 erhaltenen Werte eine arithmetische bitweise Operation durchgeführt. Das Ergebnis der arithmetischen oder bitweisen Operation wird in dem Block 1312 in dem Speicher abgelegt, und das Verfahren endet in dem Block 1314.
  • 14 stellt eine Nachschlagoperation dar, die nützlich ist, wenn Daten von einem ersten Satz von Anweisungen, die eine Sicherheitsregel realisieren, in einen zweiten Satz von Anweisungen für eine zweite Sicherheitsregel übergeben werden soll. Wie in dem Block 606 von 6 gezeigt, wird der Speicher immer, wenn eine neue Sicherheitsregel verarbeitet wird, initialisiert. Daher sind von einer ersten Sicherheitsregel in dem Speicher abgelegte Informationen nicht für die Verwendung durch eine zweite Sicherheitsregel verfügbar. Um dieses Problem zu lösen, wird ein getrennter Speicher 1410, der Tabellen 1-3 enthält, welche zu diesem Zweck verwendet werden können, bereitgestellt. Das Eingeben von Daten in die Tabellen ist in 15 gezeigt und wird weiter unten beschrieben. Die Nachschlagoperation beginnt bei 1402, und die Steuerung geht weiter zu 1044, wobei Werte aus dem Speicher 1406 erhalten werden. Die Steuerung geht weiter zu dem Block 1408, in dem bei dem Block 1410 Daten aus den Tabellen 1-3 erhalten werden, indem die Werte in der Verweistabelle gesucht werden. Die Steuerung geht weiter zu dem Block 1412, in dem eine Entscheidung getroffen wird, ob der Block in der Tabelle ist. Wenn die Entscheidung ja ist, wird bei dem Block 1416 eine Eins in dem Speicher 1406 abgelegt. Wenn die Entscheidung nein ist, wird bei dem Block 1414 eine Null in dem Speicher 1406 abgelegt. Das Verfahren endet bei dem Block 1418.
  • Bezug nehmend auf 15 beginnt das Verfahren bei dem Block 1502, und die Steuerung geht weiter zu dem Block 1504, in dem von dem Speicher 1506 Werte erhalten werden. Die Steuerung geht dann weiter zu dem Block 1508, in dem aus dem Speicher 1506 erhaltene Werte bei dem Block 1510 an den richtigen Stellen in den Tabellen 1-3 abgelegt werden. Die Steuerung geht weiter zu dem Block 1512, in dem eine Entscheidung getroffen wird, ob die Speicherung der Werte in die Tabelle erfolgreich war. Wenn die Speicherung erfolgreich war, wird bei dem Block 1516 eine Eins in dem Speicher 1506 abgelegt. Wenn das Verfahren nicht erfolgreich war, wird bei dem Block 1514 eine Null in dem Speicher 1506 abgelegt. Das Verfahren endet bei dem Block 1518.
  • Ein Beispiel für eine Sicherheitsregel, die unter Verwendung des Paketfilterverfahrens der vorliegenden Erfindung realisiert wird, wird nun beschrieben, wobei als ein Beispiel die Sicherheitsregel verwendet wird, alle Telnet-Dienste in dem System nicht zu erlauben. Telnet ist als ein TCP-Dienst definiert und hat einen spezifischen TCP-Zielport. Er wird durch einen TCP-Protokollwert von 6 an der Bytestelle 9 des Pakets und durch eine Ziel-Telnetprotokollnummer von 23 an der Bytestelle 22 des Pakets identifiziert, wobei der Wert ein Zweibytewert ist. Dies ist in jedem Telnet-Anforderungspaket zu finden.
  • Die erste Operation in der weiter unten gezeigten Tabelle ist, das IP-Protokoll aus der Paketstelle 9 herauszuziehen und dieses in dem Speicher abzulegen. Wie in der Spalte der "Speicherwerte" auf der rechten Seite der Tabelle gezeigt, wird dieser Wert, 6, oben auf dem Stapel plaziert.
  • Die zweite Operation, die TCP-Protokoll-(Port-) Nummer, die weiter oben als 6 angegeben ist, wird in der zweiten Stelle in dem Speicher plaziert. In Schritt 3 werden die Werte der ersten zwei Schichten des Stapels verglichen, wobei ein positives Ergebnis erhalten wird.
  • Verfahren zum Fallenlassen von Telnet
    Figure 00250001
  • Die Werte von 6 an den obersten zwei Schichten des Stapels werden gelöscht, und eine 1, die das positive Ergebnis anzeigt, wird ganz oben in dem Stapel plaziert. In Schritt 4 wird die TCP-Protokollnummer für die Paketstelle 23 herausgezogen und an der Speicherstelle in der zweiten Schicht des Stapels plaziert. In Schritt 5 wird der Literalwert, der die Telnet-Protokollnummer ist, auf der dritten Schicht des Stapels in dem Speicher plaziert. In Schritt 6 werden die Speicherschichten 2 und 3, welche das TCP-Protokoll für Telnet enthalten, mit dem erwarteten Wert verglichen, wobei ein positives Ergebnis erhalten wird. Die Werte der zweiten und dritten Schichten des Stapels werden gelöscht und durch eine 1 ersetzt, die das positive Ergebnis anzeigt. In Schritt 7 wird eine logische Operation durchgeführt, um zu sehen, ob sowohl dem TCP als auch dem Telnet entsprochen wurde. Dies wird durch eine UND-Operation bestimmt. In diesem Fall ist das Ergebnis positiv, und die Einsen in den ersten zwei Schichten des Stapels werden gelöscht und durch eine 1 ersetzt, die das positive Ergebnis anzeigt. In Schritt 8 wird eine bedingte Verzweigung durchgeführt, in der das Programm zu dem Zustand des Fallenlassens verzweigt, wenn der Speicherwert wahr ist. In diesem Fall ist das Ergebnis wahr, und das Programm verzweigt zu dem Zustand des Fallenlassens, in dem die Telnet-Anforderung nicht durchgelassen wird. Auf diese Weise wird die Regel, Telnet fallenzulassen, realisiert.
  • Datenfluß verschlüsseln – eine Einführung
  • Wie bereits festgestellt, sind Fernkommunikationen zwischen Unternehmen, Zweigstellen und Geschäftspartnern ein wesentlicher Teil heutiger Geschäftstätigkeit geworden. Unter Verwendung der vorliegenden Erfindung können virtuelle private Netzwerke (VPNs) über unsicheren öffentlichen Netzwerken, wie etwa dem Internet, aufgebaut werden, um sichere und flexible Kommunikationen bereitzustellen.
  • Die Veränderung von Paketen, zum Beispiel durch die Verschlüsselung ausgehender Pakete, die Entschlüsselung eingehender Pakete, das Signieren von Paketen oder die Adreßumsetzung, wird durch das Paketfiltermodul durchgeführt. Die Entscheidung, ob ein Paket verändert werden soll, wird durch die Regelbasis bestimmt. Alle Veränderungen, d.h. Verschlüs selung, Entschlüsselung, Signatur und Adreßumsetzung, werden auf einer selektiven Basis nach den Inhalten der Regelbasis durchgeführt. Damit zum Beispiel eine Verschlüsselung erfolgt, muß eine Regel in der Regelbasis explizit anfordern, daß für Pakete, die eine bestimmte Quelle, Ziel und Dienstart haben, die Verschlüsselung erfolgen soll. Die Verschlüsselungsanweisungen werden in die Paketfiltersprache übersetzt, die auf den virtuellen Paketfiltermaschinen in dem Netzwerk installiert und ausgeführt wird.
  • Wie vorher beschrieben, bestimmt das Paketfiltermodul, ob ein Paket abgelehnt oder angenommen wird. Wenn es abgelehnt wird, wird das Paket fallengelassen. Wenn es angenommen wird, kann das Paket in einer Vielzahl an Arten verändert werden. Beispiele für diese Arten möglicher Veränderungen umfassen die Verschlüsselung, die Entschlüsselung und die Adreßumsetzung, sind aber nicht darauf beschränkt. Das Folgende beschreibt im Detail die Verschlüsselung und Entschlüsselung von Paketen, die von dem Paketfiltermodul selektiv durchgeführt werden.
  • Durchweg verwendete Schreibweise Die folgende Schreibweise wird überall in diesem Dokument verwendet:
    Figure 00280001
  • Definition durchweg verwendeter Begriffe Die folgenden Definitionen sind hilfreich für das Verständnis des Betriebs der vorliegenden Erfindung.
    Figure 00290001
  • Figure 00300001
  • Ein Blockdiagramm auf hoher Ebene, das eine Beispielkonfiguration darstellt, die gemäß der vorliegenden Erfindung aufgebaute Firewalls verwendet, ist in 16 gezeigt. Das in dieser Figur gezeigte Beispielnetzwerk wird verwendet, um die Verschlüsselungsfähigkeiten der vorliegenden Erfindung zu erklären. Die gezeigte Netzwerkkonfiguration dient lediglich veranschaulichenden Zwecken. Jemand mit Kenntnissen der Technik kann die vorliegende Erfindung auch auf andere Netzwerkkonfigurationen anpassen. Sowohl der Host1 als auch der Host2 ist mit seinem jeweiligen privaten LAN verbunden. Außerdem ist die Firewall1 1604 über ihr LAN mit dem Host1 verbunden, und die Firewall2 ist über ihr LAN mit dem Host2 verbunden. Beide Firewalls sind mit einem öffentlichen Netzwerk 1606, wie etwa dem Internet, verbunden. Es wird auch angenommen, daß das öffentliche Netzwerk unsicher ist und ihm nicht vertraut werden kann. Die Zertifizierungsinstanz1 (CA1) 1602 arbeitet als die Zertifizierungsinstanz für den Host1 und die Firewall1. Die Zertifizierungsinstanz2 (CA2) 1612 arbeitet als die Zertifizierungsinstanz für den Host2 und die Firewall2. In anderen Ausführungsformen kann es nur eine CA geben, die beide Firewalls bedient. In jeder der beiden Ausführungsformen bleiben die Funktion der CA die gleichen. Der einzige Unterschied ist, welche CA die Firewall verwendet, um öffentliche Schlüssel zu erhalten.
  • Es wird gewünscht, daß die Kommunikation zwischen dem Host1 und dem Host2 gesichert ist. Die Kommunikation von dem Host1 wird über die Firewall1, die als ein Netzwerkobjekt mit Firewall wirkt, in das Internet (d.h. das öffentliche Netzwerk) leitweggelenkt. Ähnlich wird die Kommunikation von dem Host2 über die Firewall2, die ebenfalls als ein Netzwerkobjekt mit Firewall wirkt, in das Internet leitweggelenkt. In Kommunikationen mit dem Host2 fängt die Firewall1 die Pakete, die sie von dem Host1 empfängt, ab und verschlüsselt sie auf dem Weg zu dem Host2. Die Firewall2 empfängt die für den Host2 bestimmten verschlüsselten Pakete und entschlüsselt diese Pakete. In die entgegengesetzte Richtung verschlüsselt die Firewall2 die für den Host1 bestimmten Pakete von dem Host2. Die Firewall1 empfängt die verschlüsselten Pakete, entschlüsselt sie und leitet sie an den Host1. Die von der Firewall1 und der Firewall2 durchgeführten Verschlüsselungs- und Entschlüsselungsoperationen sind für den Host1 und den Host2 transparent.
  • Angenommen, daß der Host1 die Sitzung mit dem Host2 einleitet, sendet er ein Internetprotokollpaket (IP-Paket) an den Host2. Die Firewall1 fängt das Paket ab und bestimmt, daß Kommunikationen zwischen dem Host1 und dem Host2 in einer gewissen Weise, z.B.. Verschlüsselung, Entschlüsselung, Adreßumsetzung, etc., verändert werden sollen. Die Entscheidung wird basierend auf Informationen von allen ISO-Schichten und basierend auf Informationen, die von früheren Paketen behalten wurde, für jede Verbindung getrennt getroffen. Dieser Entscheidungsprozeß wird als zustandsbetonte Mehrschichtuntersuchung (SMLI) bezeichnet. Jede Firewall unterhält, wie bereits im Detail beschrieben, eine Regelbasis, die die Firewall anweist, wie sie sowohl eingehende als auch ausgehende Kommunikationen zwischen Netzwerkobjekten abwickeln soll. Nach der Bestimmung, daß Kommunikationen zwischen dem Host1 und dem Host2 verschlüsselt oder digital signiert werden müssen, parkt die Firewall1 das Paket vorübergehend und leitet einen Sitzungsschlüsselaustausch ein, der weiter unten detaillierter beschrieben wird. Bevor ver schlüsselte Kommunikationen oder das Signieren stattfinden können, müssen sich beide Seiten auf einen gemeinsam verwendeten Schlüssel einigen. Dieser Schlüssel wird als der Sitzungsschlüssel R bezeichnet und wird am Beginn jeder Sitzung von Neuem erzeugt. Es ist wichtig, zu bemerken, daß nur die Kommunikation zwischen der Firewall1 und der Firewall2 aufgrund der Verwendung des unsicheren Internet oder öffentlichen Netzwerks verschlüsselt wird. Die Kommunikationen zwischen dem Host1 und der Firewall1 und zwischen dem Host2 und der Firewall2 werden nicht verschlüsselt, weil sie über private LANs stattfinden, die als privat und sicher angenommen werden.
  • Sitzungsschlüsselaustausch-Firewall/Firewall
  • Ein Blockdiagramm auf hoher Ebene, das die zwischen zwei Firewalls übermittelten Daten während eines Austauschs von Sitzungsschlüsseln darstellt, ist in 17 gezeigt. Das folgende Schema ist nur ein Beispiel für die Realisierung der Verschlüsselung mit SMLI und soll den Schutzbereich der vorliegenden Erfindung nicht auf andere Verschlüsselungsverfahren einschränken. Es wäre für jemanden mit Kenntnissen der Technik offensichtlich, andere Verschlüsselungsverfahren auf das SMLI-Verfahren anzupassen, um die Lehren der vorliegenden Erfindung auszuführen. Zum Beispiel wird in einer alternativen Ausführungsform der SKIP-Standard verwendet. Um die Verschlüsselung von Daten einzuleiten, sendet die Firewall1 zuerst ein Anforderungspaket an den Host2. Das Anforderungspaket wird an den Host2 und nicht die Firewall2 gesendet, weil die Firewall1 die IP-Adresse der für den Host2 verantwortlichen Firewall nicht kennen kann. Die Firewall2 fängt dieses Anforderungspaket ab und gibt ein Antwortpaket zurück. Die Anforderungs- und Antwortpakete ermöglichen beiden Seiten, sich auf einen gemeinsam genutzten Sitzungsschlüssel R zu einigen, der für alle Kommunikationen verwendet wird, die zwischen dem Host1 und dem Host2 verschlüsselt werden sollen. Wie früher festgestellt, werden nur die Kommunikationen zwischen der Firewall1 und der Firewall2 tatsächlich verschlüsselt.
  • Im allgemeinen wird der Sitzungsschlüssel R von dem Nicht-Initiator (d.h. der Firewall2 1608), auch als das Ziel bezeichnet, erzeugt und wird verschlüsselt an den Initiator (d.h. die Firewall1 1604), die auch als die Quelle bezeichnet wird, gesendet. Dieser Zweipaketaustausch muß erfolgen, bevor verschlüsselte Kommunikationen stattfinden können. Nachdem die verschlüsselte Sitzung aufgebaut ist, wird in beiden Firewalls Zustandinformation gehalten, und das geparkte Originalpaket wird nun verschlüsselt durch die Firewalls geleitet. Der gleiche Sitzungsschlüssel R wird von der Firewall2 verwendet, um Pakete zu verschlüsseln, die von dem Host2 an den Host1 gesendet werden.
  • Der Sitzungsschlüsselaustausch wird nun detaillierter beschrieben. Um sich auf einen gemeinsamen geheimen Sitzungsschlüssel R zu einigen, verwendet die vorliegende Erfindung ein 'statisches' Diffie-Hellman-Schema. Jeder Diffie-Hellman-Schlüssel weist einen privaten Teil und einen öffentlichen Teil auf. Jede Seite hat ihre eigenen privaten und öffentlichen Teile. Der private Schlüssel für die Quelle (d.h. die Firewall1) und das Ziel (d.h. die Firewall2) ist jeweils Qpriv und Zpriv. Die öffentlichen Teile für die Quelle und das Ziel sind dann wie folgt definiert: Qöff = gQpriv(mod)p Zöff = gZpriv(mod)p
  • Sowohl die Quelle als auch das Ziel müssen gegenseitig ihre öffentlichen Schlüssel kennen, damit der Sitzungsschlüsselaustausch funktioniert. Wenn eine Seite den öffentlichen Schlüssel der anderen Seite nicht kennt oder der Schlüssel, den sie hat, als veraltet bestimmt wird, dann wird ein Basisschlüsselaustausch ausgelöst, der weiter unten detaillierter beschrieben wird. Beide Seiten verwenden den öffentlichen Schlüssel des jeweils anderen, um den Basisschlüssel B abzuleiten. Die Quelle führt das Folgende aus: g = {gZpriv(mod)p}Qpriv(mod)p = gQPrivZpriv(mod)p
  • Ebenso führt das Ziel das Folgende aus: B = {gQpriv(mod)p}Zpriv(mod)p = gQprivZpriv(mod)p
  • Auf diese Weise nutzen beide Seiten den Basisschlüssel B gemeinsam. Für die Verwendung bei der Verschlüsselung des Sitzungsschlüssels R wird eine verkürzte Version des Basisschlüssels B erzeugt, die als TB bezeichnet wird.
  • Im allgemeinen unterhält jede Firewall eine Tabelle der Verbindungen zwischen Diffie-Hellman-Schlüsseln und Netzwerkobjekten mit Firewall. Außerdem muß eine Firewall eine Verbindung zwischen IP-Adressen und einem derartigen Objekt haben. In der in 17 gezeigten Konfiguration muß eine Datenbank innerhalb der Firewall1 derart konfiguriert werden, daß sie weiß, daß die Firewall2 vorhanden ist. Die Firewall1 muß auch wissen, daß die verschlüsselnde Firewall des Host2 die Firewall2 ist. Die Firewall1 kann eine Liste möglicher Firewalls haben, die als verschlüsselnde Firewalls für die Firewall2 dienen können. Die Verbindungen und die Netzwerkobjektdatenbank für jede Firewall werden von einer getrennten Verwaltungseinheit in statischer Weise verwaltet.
  • Um Kommunikationen zwischen Firewalls zu verschlüsseln, muß eine Firewall ihren eigenen privaten Basisschlüssel und die öffentlichen Basisschlüssel jedes Netzwerkobjekts mit Firewall, mit dem sie kommunizieren muß, kennen. Die öffentlichen Basisschlüssel, die zu externen Netzwerkobjekten mit Firewall, wie etwa einer Firewall, die zu einem Geschäftspartner gehört, gehören, müssen auch bekannt sein, damit verschlüsselte Sitzungen erfolgen. Die statische Verbindung von Basisschlüsseln zu Netzwerkobjekten mit Firewall kann bereits in einer für die Firewall internen Datenbank eingerichtet werden, oder sie kann spontan während des weiter unten beschriebenen Basisschlüsselaustauschs erhalten werden.
  • Wenn sich die zwei Firewalls einmal auf einen gemeinsam genutzten geheimen Basisschlüssel B geeinigt haben, wird er verwendet, um den tatsächlich für die Sitzung verwendeten Schlüssel, d.h. den Sitzungsschlüssel R, zu verschlüsseln. Der gleiche Sitzungsschlüssel R wird sowohl von der Quelle als auch dem Ziel verwendet, um die Daten von dem Host1 an den Host2 und von dem Host2 an den Host1 zu verschlüsseln.
  • Die Elemente der Anforderung von der Quelle an das Ziel sind über dem Rechtspfeil in 17 gezeigt. Ein Verschlüsselungsverfahren weist ein oder mehrere Verschlüsselungsverfahren zum Verschlüsseln der Sitzungsdaten auf, zu deren Ausführung die Quelle fähig ist (z.B. DES, FWZ1, RC4, RC5, IDEA, Dreifach-DES, etc.). Das Schlüsselverfahren weist ein oder mehr Verschlüsselungsverfahren zum Verschlüsseln des Sitzungsschlüssels R auf, zu deren Ausführung die Quelle fähig ist (z.B. DES, FWZ1, RC4, RC5, IDEA, Dreifach-DES, etc.). Das md-Verfahren (d.h. Nachrichtenzusammenstellungsverfahren) oder das Nachrichtenintegritätsverfahren weist eines oder mehrere verfahren oder Algorithmen zur Durchführung von Datenintegrität auf, zu deren Ausführung die Quelle fähig ist (d.h. MD5, SHA, etc.). Die Datenintegrität bedingt typischerweise das Berechnen eines Verschlüsselungs-Hash aus einem Teil oder der ganzen Nachricht.
  • Die vorgeschlagene öffentliche Quellenschlüssel-ID identifiziert über eine ID-Nummer den öffentlichen Basisschlüssel, von dem die Quelle annimmt, daß ihn das Ziel verwenden wird. Ebenso identifiziert die vorgeschlagene öffentliche Zielbasisschlüssel-ID den öffentlichen Basisschlüssel, von dem die Quelle annimmt, daß ihn das Ziel verwenden wird. Wenn es mehr als ein mögliches Netzwerkobjekt mit Firewall gibt, das den Host2 bedient, wird die Quelle mehrere vorgeschlagene öffentliche Basisschlüssel in das Anforderungspaket aufnehmen, da sie nicht weiß, welches der Netzwerkobjekte mit Firewall tatsächlich den Host2 bedient. Jeder vorgeschlagene öffentliche Basisschlüssel entspricht einem anderen Netzwerkobjekt mit Firewall.
  • Die Anforderung weist auch einen Herausforderungsschlüssel C auf, der ein von der Quelle (d.h. der Firewall1) gewähltes Zufallsbitfeld ist, das verwendet wird, um Angriffe auf den Sitzungsschlüsselaustausch oder die Sitzungs daten selbst durch einen Dritten in der Kommunikation entgegenzuwirken.
  • Das Ziel (d.h. die Firewall2) empfängt das Anforderungspaket und erzeugt basierend auf dessen Inhalten ein Antwortpaket, das an die Quelle zurück gesendet werden soll. Die Elemente des Antwortpakets sind über dem Linkspfeil in 17 gezeigt. Das Antwortpaket hat, abgesehen davon, daß das Feld des Herausforderungsschlüssels C durch ein Feld ersetzt ist, das den verschlüsselten Sitzungsschlüssel R hält, ein ähnliches Format wie das Anforderungspaket. Das Chiffrierverfahren, das Schlüsselverfahren und das md-Verfahren haben jeweils nur ein Element anstatt eine Liste mit Optionen wie in der Anforderung. Die aufgezählten Elemente sind die Elemente, die von dem Ziel aus den in der Anforderung aufgezählten Optionen ausgewählt wurden. Ebenso weisen die gewählte öffentliche Quellenbasisschlüssel-ID und die gewählte öffentliche Zielbasisschlüssel-ID beide eine einzige Schlüssel-ID auf, welche die Schlüssel-ID darstellt, die von dem Ziel aus der in der Anforderung gesendeten Optionsliste gewählt wurde.
  • Der in der Antwort gesendete Sitzungsschlüssel R weist tatsächlich zwei Schlüssel auf: einen Sitzungsdaten-Verschlüsselungsschlüssel E und einen Sitzungsdaten-Integritätsschlüssel I. Auf diese Weise ist der Sitzungsschlüssel R definiert als R = E + I
  • Der Sitzungsschlüssel ist ein Zufallsbytestrom, der sowohl für das Chiffrierverfahren (d.h. das Verschlüsselungsverfahren) als auch das md-Verfahren oder das Nachrichtenzusammenfassungsverfahren erzeugt wird. Seine Länge ist die Summe der Schlüssellängen, die von dem Chiffrierverfahren und dem md-Verfahren benötigt werden. Wenn sie einmal erzeugt ist, wird eine Signatur des Sitzungsschlüssels unter Verwendung des gewählten md-Verfahrens, z.B. MD5, erhalten und durch SIG(R) dargestellt. Die Kombination aus Sitzung R und SIG(R) wird dann unter Verwendung eines Schlüssels verschlüsselt, der durch die Kombination aus dem gekürzten Basisschlüssel TB und der Herausforderung C gebildet wird, wobei auf diese Weise gebildet wird: ENC(TC + C)(R + SIG(R))was dann in der Antwort an die Quelle gesendet wird.
  • Die Signatur- oder Hash-Prüfsummenberechnung stellt die Authentifizierung für die Quelle bereit, daß das von ihr empfangene Paket tatsächlich von einer Einheit gebildet wurde, die den Basisschlüssel B kennt, wobei auf diese Weise eine starke Authentifizierung für das Antwortpaket bereitgestellt wird. Da die Quelle den Herausforderungsschlüssel C gewählt hat, gibt es außerdem keine Möglichkeit für eine Wiedergabe.
  • Sitzungsdatenaustausch
  • Ein logisches Flußdiagramm auf hoher Ebene, das den Prozeß darstellt, der von einer Firewall beim Senden eines Pakets an eine andere Firewall während eines Sitzungsdatenaustausches unter Verwendung von Verschlüsselung durchgeführt wird, ist in 18 gezeigt. Obwohl in den Figuren nicht gezeigt, verwendet eine alternative Ausführungsform den IPSEC-Standard für das Ausführen des Sitzungsdatenaustauschs. Wie bereits erwähnt, kann die verschlüsselte Kommunikation zwischen beiden Firewalls stattfinden, wenn sich die Quelle und das Ziel einmal auf einen Sitzungsschlüssel R einigen. Das Abfangen und Veränderungen an den Paketen erfolgen zwischen der Ebene 2 und der Ebene 3 des ISO-Modells. Kommunikationen, die in beide Richtungen erfolgen, müssen unter Verwendung des gleichen Sitzungsschlüssels R verschlüsselt und entschlüsselt werden. Die ausgesendeten Pakete ähneln stark normalen TCP/IP-Paketen. Die Pakete enthalten keine Informationen, die anzeigen, ob die Pakete verschlüsselt sind oder nicht, und falls ja, welcher Schlüssel zu verwenden ist. Die Information ist nur in dem Zustand vorhanden, der von den zwei Firewalls unterhalten wird. Die Verschlüsselung wird an Ort und Stelle durchgeführt, ohne die Länge des Pakets zu ändern, was dazu dient, die Effizienz und Bandbreite des verschlüsselten Verkehrs zu erhö hen. Im allgemeinen wird jedes gesendete Paket in zwei Teile unterteilt, einen Normaltextteil, der nicht verschlüsselt ist, und einen chiffrierten Textteil, der verschlüsselt ist. Der Normaltextteil enthält den IP-Anfangsblock und den TCP/UDP-Anfangsblock. Der Rest des Pakets, das heißt seine Daten M, wird verschlüsselt, wobei eine Kombination des Sitzungsschlüssels R und eines aus seinem Normaltextteil berechneten Hilfsschlüssels A verwendet wird. Das Verfahren wird nun detaillierter beschrieben.
  • Der erste von einer Firewall beim Senden eines Pakets ausgeführte Schritt ist, aus den Normaltextinhalten des Pakets selbst einen Hilfsschlüssel A zu erzeugen (Schritt 1800). Die verwendeten Teile hängen von der Art des Pakets und dem Protokoll ab (z.B. RPC, UDP, TCP, ICMP, etc.) und können zum Beispiel die folgenden Felder enthalten: IP-ID (nur ein Teil), RPC-XID, RPC-PROGNUM, TCP-SEQ, TCP-ACK, UDP-LEN, ICMP-TYPE, ICMP-CODE und IP-PROTO. Dann werden der Hilfsschlüssel A, der Sitzungsdaten-Integritätsschlüssel I und der Datenteil des Pakets M in einem Puffer plaziert (Schritt 1802). Dann wird für die Inhalte des Puffers unter Verwendung des md-Verfahrens eine Signatur berechnet (Schritt 1804) und ausgedrückt als SIG(A + I + M)
  • Die Bits der erzeugten Signatur werden dann in dem Paketanfangsblock angeordnet (Schritt 1806). Das Hinzufügen der Signaturbits zu dem Paket ist wichtig, um die Datenintegrität sicherzustellen. Da die Länge des Pakets nicht verändert wird, müssen einige Teile des Pakets mit den Signaturbits überschrieben werden. Beachten Sie, daß die Signaturbits in dem Paket gespeichert werden, bevor das Paket verschlüsselt wird. Für TCP-Pakete wird eine 28-Bit-Signatur wie folgt gespeichert:
    • – Die 8 niederwertigsten Bits der Signatur ersetzen die 8 höchstwertigen Bits der IP-ID.
    • – Die nächsten 16 Bits werden unter Verwendung der 1-Komplement-Arithmetik zu dem TCP-CSUM-Feld addiert.
    • – Die nächsten 4 Bits werden in das ungenutzte TCP-X2 halbe Byte gespeichert (dies ist optional).
  • Für UDP-Pakete wird eine 32-Bit-Signatur wie folgt gespeichert:
    • – Die ersten 16 Bits der Signatur werden unter Verwendung der 1-Komplement-Arithmetik zu dem UDP-CSUM-Feld hinzugefügt; wenn das Original-UDP-CSUM-Feld null ist, werden die UDP-SPORT- und UDP-DPORT-Felder zu dem UDP-CSUM hinzugefügt, wobei ebenfalls die 1-Komplement-Arithmetik verwendet wird.
    • – Die nächsten 16 Bits werden in dem UDP-LEN-Feld gespeichert.
  • Wenn die Signaturbits einmal in dem Paket gespeichert sind, wird der Datenteil des Pakets M verschlüsselt (Schritt 1808) und kann ausgedrückt werden durch: ENC(E + A)(M)
  • Die Verschlüsselung wird unter Verwendung des Chiffrierverfahrens mit einer Kombination des Sitzungsdaten-Verschlüsselungsschlüssels E und des Hilfsschlüssels A durchgeführt. Schließlich wird das Paket über das öffentliche Netzwerk übertragen (Schritt 1810).
  • Ein logisches Flußdiagramm auf hoher Ebene, das den Prozeß darstellt, der von einer Firewall beim Empfangen eines verschlüsselten Pakets von einer anderen Firewall während eines Sitzungsdatenaustausches durchgeführt wird, ist in 19 gezeigt. Um die Signatur zu verifizieren, muß zuerst aus den Inhalten des Pakets der Hilfsschlüssel A erzeugt werden (Schritt 1900). Dann wird der Datenteil M des Pakets unter Verwendung des Chiffrierverfahrens und einer Kombination des Sitzungsdaten-Verschlüsselungsschlüssels E und des Hilfsschlüssels A entschlüsselt (Schritt 1902), was ausgedrückt werden kann als: DCR(E + A)(ENC(E + A)(M))
  • Dann werden die Signaturbits aus dem Paketanfangsblock herausgezogen (Schritt 1904). Eine Signatur für den Hilfsschlüssel A, den Sitzungsdaten-Integritätsschlüssel I und die Paketdaten M wird dann unter Verwendung des md-Verfahrens erzeugt (Schritt 1906) und ausgedrückt als: SIG(A + I + M)
  • Dann werden die zwei Signaturen miteinander verglichen (Schritt 1908). Wenn sie übereinstimmen, wird das Paket durchgelassen, nachdem alle Daten in dem Paket, die mit Signaturdaten überschrieben waren, ersetzt wurden (Schritt 1910). Wenn die Signaturen nicht übereinstimmen, wird das Paket fallengelassen (Schritt 1912).
  • Basisschlüsselaustausch
  • Wie bereits erklärt, muß eine Firewall ihren eigenen privaten Basisschlüssel und die öffentlichen Basisschlüssel jeder Firewall, mit der sie kommunizieren muß, kennen, um Kommunikationen zwischen Netzwerkobjekten mit Firewall zu verschlüsseln. Die öffentlichen Basisschlüssel, die zu externen Firewalls, wie etwa einer Firewall, die zu einem Geschäftspartner gehört, gehören, müssen ebenfalls bekannt sein, damit verschlüsselte Sitzungen erfolgen. Die statische Verbindung von Basisschlüsseln mit Firewalls kann bereits in einer Datenbank innerhalb der Firewall eingerichtet werden, oder sie kann spontan unter Verwendung des Basisschlüsselaustauschs erhalten werden. Außerdem können die Basisschlüssel auf einer nicht häufigen Basis aktualisiert werden, um die Sicherheit zu verbessern. Die vorliegende Erfindung sorgt dafür, daß Basisschlüssel spontan erhalten werden, wenn sie nicht bereits in einer Datenbank innerhalb der Firewall sind. Im allgemeinen muß ein öffentlicher Basisschlüssel erhalten werden, wenn die Quelle keine Kenntnis von dem öffentlichen Basisschlüssel des Ziels hat oder das Ziel bestimmt, daß der von der Quelle verwendete öffentliche Zielbasisschlüssel veraltet ist.
  • In beiden Fällen wird der Austausch des öffentlichen Basisschlüssels zertifiziert, um bezüglich der Echtheit des übertragenen Diffie-Hellman-Schlüssels sicher zu sein. Die Zertifizierung von Nachrichten dient im allgemeinen dazu, Angriffen von Dritten in der Kommunikation gegen das System entgegenzuwirken.
  • Der Prozeß des Austauschs der Basisschlüssel wird nun detaillierter beschrieben. Ein Blockdiagramm auf hoher Ebene, das die zwischen zwei Firewalls während eines Basisschlüsselaustauschs übermittelten Daten darstellt, ist in 20 gezeigt. Immer wenn eine der zwei Seiten erkennt, daß sie keinen gültigen Schlüssel für ihren Partner hat oder daß sie einen veralteten Schlüssel hat, fordert sie die andere Seite auf, einen zertifizierten Basisschlüssel zu senden.
  • Der Basisschlüsselaustausch kann abhängig davon, welche Seite erkennt, daß der öffentliche Basisschlüssel aktualisiert oder ausgetauscht werden muß, auf zwei Arten ausgelöst werden. Typischerweise wird es die Seite sein, die erkennt, daß sie nicht den Basisschlüssel der anderen Seite hat. Zum Beispiel wird Bezug nehmend auf 16 ein Basisschlüsselaustausch ausgelöst, wenn die einleitende Seite, d.h. die Firewall1, erkennt, daß sie den öffentlichen Basisschlüssel für die Firewall2 nicht hat. In einem anderen Szenario erkennt die Firewall2 nach dem Empfang einer Anforderung von der Firewall1, daß sie eine veraltete Version des öffentlichen Basisschlüssels für die Firewall1 hat (indem sie das, was in ihrer Datenbank ist, mit dem in der Anforderung gesendeten vorgeschlagenen öffentlichen Basisschlüssel vergleicht). Das letztere Szenario ist das in 20 abgebildete.
  • Die Elemente der Basisschlüsselanforderung sind über dem Linkspfeil in 20 gezeigt. Die Basisanforderung weist die öffentliche Quellenbasisschlüssel-ID, die öffentliche Zielbasisschlüssel-ID, das Chiffrierverfahren, das Schlüsselverfahren und das md-Verfahren auf. Diese Elemente sind identisch zu den weiter oben in dem Abschnitt mit dem Titel Sitzungsschlüsselaustausch-Firewall/Firewall diskutierten. Wenn ein Basisschlüsselaustausch erfolgen muß, wird die Seite, die möchte, daß die andere ihr eine zertifizierte Schlüsselaktualisierung oder eine Schlüsselsynchronisation sendet, ein öffentliches CA-Schlüssel-ID-Feld zu der Anforderung hinzufügen. Dieses neue Feld zeigt an, welcher Schlüssel die Aktualisierung benötigt, und ist die ID des Zertifizierungsinstanzschlüssels (z.B. RSA-Schlüssel), mit dem die Firewall2 die Antwort von der Firewall1 empfangen möchte. Nach Empfang dieser Nachricht wird die Firewall1 ihren öffentlichen Basisschlüssel Qöff an die Firewall2 senden, nachdem sie ihn mit dem öffentlichen CA-Schlüssel gegen eine von der CA vorgenommene Zertifizierung zertifiziert hat. Die Zertifizierung ist der Prozeß der Erzeugung einer digitalen Signatur des öffentlichen Basisschlüssels. Für die Firewall1 erzeugt die CA1 1602 die öffentlichen CA-Schlüssel, um die öffentlichen Basisschlüssel der Firewall1 zu verifizieren (16). Damit die Firewall2 die Signatur verifiziert, muß sie den öffentlichen CA-Schlüssel von der CA1, der Zertifizierungsinstanz für die Firewall1, erhalten.
  • Die Elemente der Antwort von der Firewall1 sind über dem Rechtspfeil in 20 gezeigt. Die Elemente weisen die öffentliche CA-Schlüssel-ID, den öffentlichen Quellenbasisschlüssel Qöff und die IP-Adresse oder die IP-Adressen der Quelle auf. Außerdem wird die Signatur des öffentlichen Quellenbasisschlüssels gesendet, die ausgedrückt werden kann durch: SIG(Qöff)
  • In einer bevorzugten Ausführungsform wird die Signatur erzeugt, indem zuerst unter Verwendung des md-Verfahrens zum Erzeugen digitaler Signaturen eine Zwischensignatur aus dem öffentlichen Basisschlüssel erzeugt wird, der gesendet werden soll. Dann wird diese Zwischensignatur in die RSA-Entschlüsselungsfunktion eingegeben, um die Signatur zu er zeugen, die schließlich übertragen wird. Die IP-Adresse der Quelle (d.h. der Firewall1) wird aufgenommen, um die Verbindung zwischen der Firewall, d.h. der Firewall1, und einem öffentlichen Basisschlüssel (Qöff) zu verifizieren.
  • Nach Empfang des Zertifikats von der Firewall1 kann die Firewall2 ihn unter Verwendung des öffentlichen CA-Schlüssels verifizieren. Wenn sie richtig verifiziert, aktualisiert die Firewall2 ihre Datenbank mit dem neuen öffentlichen Basisschlüssel der Firewall1. Nun kann der Sitzungsschlüsselaustausch abgeschlossen werden, und dann können Sitzungsdaten kommuniziert werden.
  • Beachten Sie, daß öffentliche Basisschlüssel zwischen jeder Firewall und ihrer CA über sichere Kommunikationskanäle ausgetauscht werden. Wenn es mehr als eine einzige CA gibt, wird der öffentliche Schlüssel einer CA unverschlüsselt an die andere CA gesendet. Diese Nachricht wird entweder unter Verwendung eines früheren Werts des öffentlichen CA-Schlüssels signiert oder der neu erhaltene öffentliche CA-Schlüssel kann durch ein anderes manuelles Mittel, wie etwa Fax oder Telefon, verifiziert werden.
  • Sitzungsschlüsselaustausch-Client/Firewall
  • Wie bereits beschrieben, gibt es einen wachsenden geschäftlichen Bedarf an externem Zugang zu Unternehmensnetzwerken. Immer mehr Angestellte arbeiten physikalisch außerhalb der Unternehmens-LAN- oder WAN-Umgebung, müssen sich aber damit verbinden. Die vorliegende Erfindung stellt die Fähigkeit zur Verfügung, externe Benutzer eines Systems zu verifizieren und verschlüsselte Kommunikationen zwischen dem externen Benutzer oder Client und dem Hostsystem bereitzustellen.
  • Ein Blockdiagramm auf hoher Ebene, das eine Beispielkonfiguration darstellt, die einen Client-PC und eine gemäß der vorliegenden Erfindung aufgebaute Firewall verwendet, ist in 21 gezeigt. Ein Personalcomputer (PC) 2100, der für die Zwecke der Erklärung als die Quelle bezeichnet wird, wird von dem Client oder dem externen Be nutzer verwendet, um sich an dem Host 2104 anzumelden, der als mit einem LAN verbunden gezeigt ist. Der PC ist mit einem öffentlichen Netzwerk 1606 verbunden und kommuniziert über die Firewall 2102, die für Zwecke der Erklärung als das Ziel oder der Server bezeichnet wird, mit dem Host. Alle Kommunikationen zwischen dem PC und dem Host werden durch die Firewall leitweggelenkt. Der PC ist geeignet programmiert, um die Funktionen auszuführen, die benötigt werden, um sich an dem Host anzumelden und die verschlüsselte Kommunikation zwischen sich selbst und der Firewall auszuführen. Ähnlich der in 16 gezeigten Konfiguration ist die verschlüsselte Kommunikation in der in 21 gezeigten Konfiguration nur zwischen dem PC und der Firewall. Für den Host ist die Firewall transparent und denkt, daß Daten direkt von dem PC kommen.
  • Die Sitzungsdatenaustauschverfahren für die Client-Firewall-Verschlüsselung sind ähnlich denen der Firewall-Firewall-Verschlüsselung. Die Unterschiede liegen jedoch in den Sitzungsschlüsselaustausch- und Basisschlüsselaustauschverfahren. Bei dem Firewall-Firewall-Sitzungsschlüsselaustausch wird für jede Sitzung ein anderer Sitzungsschlüssel empfangen. Eine Sitzung ist nicht nur eine Verbindung zwischen zwei bestimmten Netzwerkobjekten, sondern kann verschiedene Dienste zwischen dem gleichen Netzwerkobjekt enthalten. Im Gegensatz dazu leitet der Client eine Sitzung mit dem Host ein, und alle Kommunikationen zwischen dem Client und dem Host während dieser Sitzung werden, gleichgültig, selche Aktivitäten oder Dienste der Client anfordert, unter Verwendung des gleichen Schlüssels verschlüsselt. Außerdem haben bei Firewall-Firewall-Kommunikationen beide Seiten den zertifizierten öffentlichen Schlüssel der jeweils anderen Seite. In der Client-Firewall-Kommunikation gilt dies nur für den Client, während der Server den Client unter Verwendung des von dem Client gesendeten Namen/Kennwort-Paars identifiziert.
  • Ein Blockdiagramm auf hoher Ebene, das die zwischen einem Client-PC und einer Firewall übermittelten Daten wäh rend eines Austauschs von Sitzungsschlüsseln darstellt, ist in 22 gezeigt. Die Elemente, die von dem Client in der Anforderung gesendet werden, sind über dem Rechtspfeil gezeigt. Die Elemente umfassen einen Namen, ein Chiffrierverfahren, ein Schlüsselverfahren, ein md-Verfahren, ein Kennwortverfahren, einen öffentlichen Quellenbasisschlüssel Qöff, eine vorgeschlagene öffentliche Zielbasisschlüssel-Id, einen Herausforderungsschlüssel C, ein verschlüsseltes Kennwort und eine Signatur. Der Name wird verwendet, um den Benutzer zu identifizieren, der den Client gerade benutzt. Das Chiffrierverfahren, das Schlüsselverfahren und das md-Verfahren sind wie bereits beschrieben. Das Kennwortverfahren zeigt an, welches Verschlüsselungsverfahren beim Verschlüsseln des Kennworts verwendet werden soll. Das verschlüsselte Kennwort kann ausgedrückt werden als: ENC(TB + C)(P)
  • Der öffentliche Quellenbasisschlüssel Qöff wird immer gesendet, da die Firewall keine Liste mit Benutzern und ihren zugehörigen öffentlichen Basisschlüsseln unterhält. Die gesendeten Daten sind ähnlich den von der Firewall1 an die Firewall2 gesendeten (20), wie in dem Abschnitt mit dem Titel Basisschlüsselaustausch-Firewall/Firewall beschrieben. Die öffentliche Zielbasisschlüssel-ID ist wie weiter oben in dem Abschnitt mit dem Titel Sitzungsschlüsselaustausch-Firewall/Firewall beschrieben.
  • Die Signatur wirkt, um dem Ziel, der Empfängerseite, zu versichern, daß die Nachricht nicht verändert wurde. Die Signatur wird erzeugt, indem die gesamten Inhalte der Anforderung oder Nachricht, die in 22 als T dargestellt sind, abgesehen von dem Signaturfeld, genommen werden und T mit dem unverschlüsselten Kennwort und dem verkürzten öffentlichen Basisschlüssel TB kombiniert wird, was wie folgt ausgedrückt wird: SIG(T + P + TB)
  • Die Signatur wird zu der Anforderung hinzugefügt, und die Anforderung wird dann an die Firewall gesendet.
  • Nach dem Empfang der Anforderung kennt die Firewall den öffentlichen Basisschlüssel Qöff des Client. Sie kann nun den Basisschlüssel B und den verkürzten Basisschlüssel TB erzeugen. Sie kann dann das Kennwort P entschlüsseln. Wenn P einmal bekannt ist, kann die Firewall die Signatur in der Anforderung verifizieren. Die Firewall erzeugt dann einen zufälligen Sitzungsschlüssel R und verschlüsselt R und die Signatur unter Verwendung des verkürzten Basisschlüssels TB und der Herausforderung C, die in der Anforderung von dem Client gesendet wurde, was gegeben ist durch: ENC(Tg + C)(R + SIG(R))
  • Dann wird aus dem Inhalt der Anforderung, der in 22 mit U bezeichnet ist, in Kombination mit dem verkürzten öffentlichen Basisschlüssel eine Signatur erzeugt, die gegeben ist durch: SIG(U + TB)
  • Die Firewall erzeugt dann eine Antwort, deren Elemente über dem Linkspfeil in 22 gezeigt sind. Die Antwort weist die öffentliche Zielbasisschlüssel-ID, das Chiffrierverfahren, das Schlüsselverfahren und das md-Verfahren, den verschlüsselten Sitzungsschlüssel und die Signatur auf.
  • Wenn der Sitzungsschlüssel einmal sowohl dem Client als auch der Firewall bekannt ist, kann die Kommunikationssitzung zwischen dem PC und dem Host über die Firewall ablaufen, und die verschlüsselte Kommunikation zwischen dem PC und der Firewall ist für den Host transparent. Um die Anzahl von Schlüsselaustauschen zu verringern, wird der Sitzungsschlüssel R für alle verschlüsselten Verbindungen, die durch die gleiche Firewall gehen, verwendet. Nach einer vorbestimmten Zeitspanne, z.B. einigen Minuten, wird der Sitzungsschlüssel R fallengelassen.
  • Basisschlüsselaustausch-Client/Firewall
  • Im Gegensatz zu Firewall-Firewall-Kommunikationen ist ein zertifizierter Schlüsselaustausch nur notwendig, um den Client mit dem öffentlichen Basisschlüssel der Firewall zu aktualisieren. Ein Basisschlüsselaustausch kann auf eine von zwei Arten ausgelöst werden. Erstens, wenn der Client den öffentlichen Basisschlüssel der Firewall nicht hat, oder zweitens, wenn die Firewall bestimmt, daß der öffentliche Basisschlüssel, der von dem Client in der Anforderung verwendet wird, veraltet ist.
  • Das Verfahren ist ähnlich dem Basisschlüsselaustausch, wie vorher in dem Abschnitt mit dem Titel Basisschlüsselaustausch-Firewall/Firewall beschrieben. Es gibt jedoch, wie weiter unten beschrieben, Unterschiede. Wenn der Client erkennt, daß er den öffentlichen Basisschlüssel der Firewall nicht hat, ersetzt er in der Anforderung das öffentliche Zielbasisschlüssel-ID-Feld durch ein öffentliches CA-Schlüssel-ID-Feld. Dies ist über dem oberen Rechtspfeil in 23 gezeigt, die ein Blockdiagramm auf hoher Ebene ist, das die zwischen einem Client-Personalcomputer und einer Firewall während eines Basisschlüsselaustauschs übermittelten Daten darstellt. Diese Schlüssel-ID ist die ID des Zertifizierungsinstanzschlüssels (z.B. RSA-Schlüssel), mit dem der Client die Antwort von der Firewall empfangen möchte.
  • Wenn die Firewall die Anforderung von dem Client empfängt, bestimmt sie aus der Anforderung, ob der Client den öffentlichen Basisschlüssel der Firewall anfordert, oder ob die Schlüssel-ID in der Anforderung nicht dem öffentlichen Basisschlüssel der Firewall entspricht. Die Elemente der Antwort der Firewall sind über dem Linkspfeil gezeigt. Die Antwort weist die vorgeschlagene öffentliche Original-Zielbasisschlüssel-ID, die öffentliche CA-Schlüssel-ID, den öffentlichen Zielbasisschlüssel Zöff, die IP-Adresse des Ziels und eine Signatur auf. Der öffentliche Original-Zielbasisschlüssel wird wie er ist aus der Anforderung genommen. Die Signatur des öffentlichen Zielbasisschlüssels wird gesendet, was dargestellt wird durch: SIG(Zöff) In einer bevorzugten Ausführungsform wird die Signatur erzeugt, indem zuerst unter Verwendung des md-Verfahrens zum Erzeugen von digitalen Signaturen eine Zwischensignatur aus dem öffentlichen Basisschlüssel erzeugt wird, der gesendet werden soll. Dann wird diese Zwischensignatur in die RSA-Verschlüsselungsfunktion eingegeben, um die Signatur zu erzeugen, die schließlich gesendet wird. Die IP-Adresse des Ziels (d.h. der Firewall) wird aufgenommen, um die Verbindung zwischen der Firewall und einem öffentlichen Basisschlüssel (Zöff) zu verifizieren.
  • Nach Empfang des Zertifikats von der Firewall kann der Client es unter Verwendung des öffentlichen CA-Schlüssels verifizieren. Wenn er es richtig verifiziert, aktualisiert der Client seine Datenbank mit dem neuen öffentlichen Basisschlüssel der Firewall.
  • Nach dem Empfang der Antwort der Firewall sendet der Client eine Nachricht zurück, um seine Authentifizierung abzuschließen. Die Elemente der Nachricht sind über dem unteren Rechtspfeil in 23 gezeigt. Die Nachricht weist das verschlüsselte Kennwort und eine Signatur auf. Wenn die Antwort einmal empfangen wird, kann der Client den Basisschlüssel B und den verkürzten Basisschlüssel TB erzeugen. Der Client verschlüsselt dann das Kennwort P, was ausgedrückt wird als: ENC(TB + C)(P)
  • Die Signatur wird erzeugt unter Verwendung des md-Verfahrens für die Kombination der Inhalte der an die Firewall gesendeten Original-Anforderung, wie über dem Rechtspfeil in 22 gezeigt, als T dargestellt, dem Normaltext-Kennwort P und dem verkürzten öffentlichen Basisschlüssel TB, was ausgedrückt wird als: SIG(T + P + TB)
  • Das verschlüsselte Kennwort und die Signatur werden dann an die Firewall gesendet. Der Sitzungsschlüsselaustausch wird dann abgeschlossen, und die Sitzungsdatenkommunikation kann beginnen.

Claims (19)

  1. Verfahren zum Untersuchen und selektiven Verändern von eingehenden und ausgehenden Datenpaketen in einem Computernetzwerk (100, 120), wobei die Untersuchung der Datenpakete nach einer Sicherheitsregel (302-308) erfolgt und das Verfahren die folgenden Schritte umfasst: Erzeugen einer Definition jedes Aspekts des Computernetzwerks (100, 120), der durch die Sicherheitsregel (302-308) untersucht wird, Erzeugen der Sichierheitsregel (302-308) in den Begriffen der Aspektdefinitionen, wobei die Sicherheitsregel (302-308) mindestens einen der Aspekte steuert, Umwandeln der Sicherheitsregel (302-308) in einen Satz von Paketfilter-Sprachanweisungen (400) zum Steuern einer Operation eines Paketfiltermoduls (204, 520), das die Datenpakete nach der Sicherheitsregel (302-308) untersucht, Koppeln des Paketfiltermoduls (204-520) an das Computernetzwerk (100, 120) zum Untersuchen der Datenpakete nach der Sicherheitsregel (302-308), wobei das Paketfiltermodul (204, 520) eine virtuelle Paketfiltermaschine (600) realisiert, und wobei das Paketfiltermodul (204, 520) die Paketfilter-Sprachanweisungen zum Betreiben der virtuellen Paketfiltermaschine (600) entweder zum Annehmen oder zum Ablehnen des Durchlasses dieser Datenpakete in den und aus dem Netzwerkcomputer (100, 120) ausführt, dadurch gekennzeichnet, dass eine selektive Änderung der Datenpakete nach der Sicherheitsregel (302-308) erfolgt, wobei das Paketfiltermodul (204, 520), welches durch die Filtersprachanweisungen (400) gesteuert wird, die Datenpakete nach der Sicherheitsregel (302-308) selektiv ändert, und dass die virtuelle Paketfiltermaschine (600), die den Durchlass der Datenpakete annimmt oder ablehnt, betrieben wird, um die so angenommenen Datenpakete selektiv zu verändern.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Aspekte Netzwerkobjekte enthalten. 3, Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Aspekte Netzwerkdienste enthalten.
  3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass die Aspekte Netzwerkdienste enthalten.
  4. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass die Objektdefinitionen die Adresse des Objekts enthalten.
  5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Filtersprachanweisungen (400) des Umwandlungsschritts in der Form eines Skripts vorliegen und dass sie ferner einen Kompilierer umfassen, der das Skript in die in dem Ausführungsschritt ausgeführten Anweisungen kompiliert.
  6. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass sowohl der Schritt des Erzeugens der Aspekte des Netzwerks, als auch der Schritt des Erzeugens der Sicherheitsregel (302-308) grafisch definiert sind.
  7. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die selektive Änderung ausgewählt ist aus der Gruppe bestehend aus Verschlüsselung, Entschlüsselung, Signaturerzeugung und Signaturverifizierung.
  8. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die virtuelle Maschine (600) eine Datenauszugsoperation ausführt (702).
  9. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass die virtuelle Maschine (600) eine logische Operation (704) ausführt.
  10. Verfahren nach Anspruch 10, dadurch gekennzeichnet, dass die virtuelle Maschine (600) eine Vergleichsoperation (706) ausführt.
  11. Verfahren nach Anspruch 11, dadurch gekennzeichnet, dass die selektive Änderung ausgewählt ist aus der Gruppe bestehend aus Verschlüsselung, Entschlüsselung, Signaturerzeugung und Signaturverifizierung.
  12. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass es ferner die folgenden Schritte umfasst: Speichern der in dem Schritt des Lesens und Ausführens der Paketfilter-Sprachanweisungen erhaltenen Ergebnisse in einer Speichervorrichtung, wobei das Paketfiltermodul (204, 520) die gespeicherten Ergebnisse aus vorhergehenden Untersuchungen verwendet, um das Paketfiltermodul (204, 520) auszuführen, um den Durchlass der Datenpakete in das und aus dem Computernetzwerk (100, 120) anzunehmen oder abzulehnen und die so angenommenen Datenpakete selektiv zu ändern, und wobei dem Schritt des Lesens der Paketfilter-Sprachanweisungen (400) das Lesen der Paketfiltersprache vorangeht.
  13. Verfahren nach Anspruch 13, dadurch gekennzeichnet, dass die Aspekte Netzwerkobjekte enthalten.
  14. Verfahren nach Anspruch 13, dadurch gekennzeichnet, dass die Aspekte Netzwerkdienste enthalten.
  15. verfahren nach Anspruch 14, dadurch gekennzeichnet, dass die Aspekte Netzwerkdienste enthalten.
  16. Verfahren nach Anspruch 16, dadurch gekennzeichnet, dass die Objektdefinitionen die Adresse des Objekts enthalten.
  17. Verfahren nach Anspruch 13, dadurch gekennzeichnet, dass die gezielte Änderung ausgewählt ist aus der Gruppe bestehend aus Verschlüsselung, Entschlüsselung, Signaturerzeugung und Signaturverifizierung,
  18. Sicherheitssystem zum Untersuchen und selektiven verändern von eingehenden und ausgehenden Datenpaketen in einem Computernetzwerk (100, 120), wobei das Sicherheitssystem die durch das Computernetzwerk (100, 120) gelassenen Datenpakete nach einer Sicherheitsregel (302-308) untersucht, wobei jeder Aspekt des Computernetzwerks (100, 120), das durch die Sicherheitsregel (302-308) gesteuert wird, vorher definiert wurde und die Sicherheitsregel (302-308) vorher in den Begriffen der Aspekte definiert und in Paketfilter-Sprachanweisungen (400) umgewandelt wurde, wobei das Sicherheitssystem Folgendes umfasst: ein Paketfiltermodul (204, 520), das mit dem Computernetzwerk (100, 120) gekoppelt ist, wobei das Paketfiltermodul (204, 520) nach der Sicherheitsregel (302-308) betrieben wird und das Paketfiltermodul eine virtuelle Paketfiltermaschine (600) realisiert, die die in das und aus dem Computernetzwerk (100, 120) durchgelassenen Datenpakete untersucht, und Verarbeitungsmittel zum Lesen und Ausführen der Paketfilter-Sprachanweisungen (400), integral mit dem Paketfiltermodul (204, 520), wobei die Verarbeitungsmittel das Paketfiltermodul (204, 520) so betreiben, dass sie den Durchlass der Pakete in das und aus dem Computernetzwerk (100, 120) entweder annehmen oder ablehnen, dadurch gekennzeichnet, dass das Sicherheitssystem die durch das Computersystem (100, 120) gelassenen Datenpakete nach der Sicherheitsregel (302-308) selektiv ändert, wobei die virtuelle Paketfiltermaschine (600) die in das und aus dem Computersystem (100, 120) gelassenen Datenpakete selektiv ändert, und das Paketfiltermodul (204, 520), das den Durchlass der Datenpakete entweder annimmt oder ablehnt, so betrieben wird, dass es die so geänderten Datenpakete selektiv ändert.
  19. System nach Anspruch 19, dadurch gekennzeichnet, dass die selektive Änderung ausgewählt ist aus der Gruppe bestehend aus Verschlüsselung, Entschlüsselung, Signaturerzeugung und Signaturverfizierung.
DE1996636513 1995-06-15 1996-06-16 System zur sicherung des flusses und zur selektiven veränderung von paketen in einem rechnernetz Expired - Lifetime DE69636513T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IL11418295A IL114182A (en) 1995-06-15 1995-06-15 Method for controlling computer network security
IL11418295 1995-06-15
PCT/IL1996/000017 WO1997000471A2 (en) 1993-12-15 1996-06-16 A system for securing the flow of and selectively modifying packets in a computer network

Publications (2)

Publication Number Publication Date
DE69636513D1 DE69636513D1 (de) 2006-10-19
DE69636513T2 true DE69636513T2 (de) 2007-06-06

Family

ID=11067627

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1996636513 Expired - Lifetime DE69636513T2 (de) 1995-06-15 1996-06-16 System zur sicherung des flusses und zur selektiven veränderung von paketen in einem rechnernetz

Country Status (7)

Country Link
EP (1) EP0807347B1 (de)
JP (1) JP3847343B2 (de)
AU (1) AU6135696A (de)
CA (1) CA2197548C (de)
DE (1) DE69636513T2 (de)
IL (1) IL114182A (de)
NO (1) NO324332B1 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3587633B2 (ja) * 1996-10-18 2004-11-10 株式会社日立製作所 ネットワーク通信方法および装置
AU8759098A (en) 1997-07-24 1999-02-16 Tumbleweed Communications 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
DK1068704T3 (da) 1998-04-03 2012-09-17 Tellabs Operations Inc Filter til impulssvarforkortning, med yderligere spektrale begrænsninger, til multibærebølgeoverførsel
US6629163B1 (en) 1999-12-29 2003-09-30 Implicit Networks, Inc. Method and system for demultiplexing a first sequence of packet components to identify specific components wherein subsequent components are processed without re-identifying components
EP1737187B1 (de) * 2000-01-05 2018-03-14 Thomson Licensing DTV Ein bi-direktionales Kabelmodem zum direkten Verbinden eines LAN-Netzes zum Internet
JP2001313640A (ja) * 2000-05-02 2001-11-09 Ntt Data Corp 通信ネットワークにおけるアクセス種別を判定する方法及びシステム、記録媒体
FR2822318B1 (fr) * 2001-03-14 2003-05-30 Gemplus Card Int Dispositif portable pour securiser le trafic de paquets dans une plate-forme hote
US7594267B2 (en) * 2001-06-14 2009-09-22 Cisco Technology, Inc. Stateful distributed event processing and adaptive security
KR100412041B1 (ko) 2002-01-04 2003-12-24 삼성전자주식회사 시큐러티 프로토콜의 기능을 수행하는 홈 게이트웨이 및그 방법
JP4271478B2 (ja) 2003-04-08 2009-06-03 パナソニック株式会社 中継装置及びサーバ
US9338026B2 (en) 2003-09-22 2016-05-10 Axway Inc. Delay technique in e-mail filtering system
CN113034096B (zh) * 2021-02-03 2022-09-06 浙江富安莱科技有限公司 一种智能研发与生产信息系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Also Published As

Publication number Publication date
AU6135696A (en) 1997-01-15
EP0807347A2 (de) 1997-11-19
DE69636513D1 (de) 2006-10-19
CA2197548A1 (en) 1997-01-03
JPH10504168A (ja) 1998-04-14
EP0807347A4 (de) 2002-09-11
IL114182A (en) 2003-03-12
JP3847343B2 (ja) 2006-11-22
NO970611D0 (no) 1997-02-10
EP0807347B1 (de) 2006-09-06
NO970611L (no) 1997-04-15
CA2197548C (en) 2009-01-20
NO324332B1 (no) 2007-09-24

Similar Documents

Publication Publication Date Title
DE60315521T2 (de) Kreuzungen von virtuellen privaten Netzwerken basierend auf Zertifikaten
DE60224917T2 (de) Verfahren und Vorrichtung zur Fragmentierung und Wiederzusammensetzung von Internet Key Exchange Paketen
DE69837201T2 (de) Gerät zur realisierrung von virtuellen privatnetzen
DE69836271T2 (de) Mehrstufiges firewall-system
US5835726A (en) System for securing the flow of and selectively modifying packets in a computer network
US7392379B2 (en) Firewall system for interconnecting two IP networks managed by two different administrative entities
DE69831974T2 (de) Verfahren zur paketauthentifizierung in gegenwart von netzwerkadressübersetzungen und protokollumwandlungen
DE69937464T2 (de) Verfahren und vorrichtung zum abhören
DE69827252T2 (de) Architektur für virtuelle privatnetze
DE60116610T2 (de) Netzwerkadressenübersetzungsgateway für lokale netzwerke unter verwendung lokaler ip-adressen und nicht übersetzbarer portadressen
DE60025080T2 (de) Gateway und Netzwerk für Identifizierungsmarke vermittelt Medien
DE60124765T2 (de) Verfahren und vorrichtung zur verwaltung von sicherheitssensiblen kollaborativen transaktionen
DE602004009356T2 (de) Verfahren und Vorrichtung zum Schutz einer Netzwerkinfrastruktur und zur gesicherten Kommunikation von Kontrollinformationen
DE69636513T2 (de) System zur sicherung des flusses und zur selektiven veränderung von paketen in einem rechnernetz
DE69233708T2 (de) Vorrichtung und Verfahren zur Schaffung von Netzwerksicherheit
DE60121755T2 (de) Ipsec-verarbeitung
DE19740547A1 (de) Sicherer Netzwerk-Proxy zum Verbinden von Entitäten
WO1997000471A2 (en) A system for securing the flow of and selectively modifying packets in a computer network
DE19741246A1 (de) Vorrichtung und Verfahren zur Erhöhung der Sicherheit in Netzwerken
DE60311898T2 (de) Verfahren, um ein Paket von einem ersten IPSeC Klienten zu einem zweiten IPSec Klienten über einen L2TP Tunnel zu übertragen
DE10008519C1 (de) Verfahren und Kommunikationseinrichtungen zum Aufbau von gesicherten E-Mail-Verkehr zwischen Mail-Domains des Internet
EP1721235B1 (de) Kommunikationssystem und verfahren zur bereitstellung eines mobilen kommunikationsdienstes
EP1298529A2 (de) Proxy-Einheit und Verfahren zum rechnergestützten Schützen eines Applikations-Server-Programms
EP3318033B1 (de) Anti-cracking verfahren mit hilfe eines vermittlungscomputer
DE60127187T2 (de) System und verfahren zur bereitstellung von diensten in virtuellen privatnetzen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition