-
GEBIET DER ERFINDUNG
-
Die
Erfindung betrifft ein Verfahren zur Spiegelung von Sicherheitsprozessoren
und ein Sicherheitsverarbeitungssystem.
-
HINTERGRUND
-
Die Übertragung
von Daten über
ein Datennetz beinhaltet typischerweise das Senden von Nachrichten
zwischen Anwendungsprogrammen ("Anwendungen"), die auf Host-Prozessoren
ablaufen, die mit dem Datennetz verbunden sind. In einem Paketnetz
wie zum Beispiel dem Internet kapselt ein Host-Prozessor Daten von
einer Anwendung in Datenpakete ein, um die Daten über das
Paketnetz zu senden. Wenn ein Hostprozessor das Datenpaket von dem
Paketnetz empfängt,
entkapselt der Host-Prozessor die Pakete, um die Daten zu erhalten.
Der Host-Prozessor stellt dann die Daten der geeigneten Anwendung
bereit.
-
Daten,
die über öffentliche
Netze wie zum Beispiel das Internet übertragen werden, können verschlüsselt werden,
um unbefugte Parteien daran zu hindern, die Daten abzufangen. Typischerweise
verschlüsselt eine
Vorrichtung, die mit dem Netz verbunden ist, die Daten unter Verwendung
eines Chiffrenalgorithmus und eines Verschlüsselungsschlüssels. Die
Vorrichtung sendet die verschlüsselten
Daten über
das Netz zu einer anderen Vorrichtung, die die Daten unter Verwendung
des Chiffrenalgorithmus und eines Entschlüsselungsschlüssels entschlüsselt.
-
Mehrere
Standards sind entwickelt worden, um eine sichere Datenübertragung über Datennetze
zu ermöglichen.
Zum Beispiel kann das Internet Security Protocol ("IPsec") verwendet werden,
um sichere Host-zu-Host-Pipes
und virtuelle private Netze über
das Internet einzurichten. IPsec definiert einen Satz von Spezifikationen
für die
kryptographische Verschlüsselung
und die Authentifizierung. IPsec unterstützt auch mehrere Algorithmen
für den
Schlüsselaustausch,
einschließlich
eines Internet Key Exchange-("IKE")-Algorithmus zum
Einrichten von Schlüsseln
für sichere
Sitzungen, die zwischen Anwendungen eingerichtet werden.
-
Protokolle
wie zum Beispiel IPsec können
Sicherheitsassoziationsinformationen in dem Verschlüsselungs-/Entschlüsselungsprozess
verwenden. Sicherheitsassoziationsinformationen umfassen typischerweise Verschlüsselungs-
und/oder Entschlüsselungsschlüssel und
anderen Informationen hinsichtlich des Verschlüsselungs- und/oder Entschlüsselungsprozesses.
Außerdem
können
Sicherheitsassoziationsinformationen Sequenznummern und Bytezählungen
enthalten, die mit jeder Paketübertragung
inkrementiert werden. Die Komponenten in dem System können die
Sequenznummern und Bytezählungen
verwenden, um festzustellen, ob Pakete in dem Netz verloren gehen.
-
Einige
Systeme umfassen dedizierte Vorrichtungen, die dem Host-Prozessor einige
der Verarbeitungsoperationen abnehmen. So kann zum Beispiel ein
Netzprozessor verwendet werden, um einige der Paketverarbeitungsoperationen
durchzuführen.
Ein kryptographischer Beschleuniger kann verwendet werden, um die
Chiffrenalgorithmen durchzuführen,
um so dem Host-Prozessor die Verschlüsselungs-/Entschlüsselungsverarbeitung
abzunehmen.
-
In
einem typischen System findet der primäre Datenfluss von dem Host-Prozessor zu dem
Netzprozessor und dann zu dem Netz sowie auch umgekehrt statt. Außerdem routet
der Host-Prozessor oder der Netzprozessor Pakete, die verschlüsselt oder
entschlüsselt
werden, zu dem kryptographischen Beschleuniger. Der kryptographische
Beschleuniger routet dann die verschlüsselten oder entschlüsselten
Pakete zurück
zu dem Host-Prozessor oder dem Netzprozessor. In Systemen auf der
Basis von Personalcomputern sind der Host-Prozessor, der Netzprozessor
und der kryptographische Beschleuniger typischerweise über einen
Peripheral Component Interface ("PCI")-Bus verbunden.
-
Es
besteht ein ständiger
Bedarf an gesteigerter Zuverlässigkeit,
Betriebsgeschwindigkeit und Implementierungsflexibilität in Datenkommunikationssystemen.
Auf der einen Seite erschaffen Entwickler kontinuierlich Anwendungen,
die es erfordern, dass immer größere Beträge an Daten
zwischen Systemkomponenten gesendet werden müssen. Auf der anderen Seite
wollen die Endbenutzer, dass ihre Anwendungen schneller laufen,
was wiederum oftmals erfordert, dass assoziierte Datentransfers
schneller durchgeführt
werden müssen.
-
In
einem Versuch, dieses Bedürfnis
nach schnelleren Datenkommunikationen anzugehen, haben verschiedene
Gruppen Standards entwickelt, die Hochgeschwindigkeits-Datenübertragungen
zwischen Komponenten von Datenkommunikationssystemen spezifizieren.
Zum Beispiel definieren die IEEE Standards 802.3ab und 802.3z Ethernet-Systeme
zum Übertragen
von Daten bei Raten von bis zu einem Gigabit pro Sekunde (1 Gbit/s).
Der IEEE Standard 802.3ae definiert ein Ethernet-System für die Übertragung
von Daten bei Raten von bis zu 10 Gbit/s.
-
Viele
Anwendungen, wie etwa diejenigen, die finanzielle Transaktionen
umfassen, benötigen
zuverlässige
Netzverbindungen. Eine Netz-Ausfallzeit kann bei solchen Anwendungen
zu beträchtlichen
Geldverlusten führen.
-
Der
Bedarf an schnellen und zuverlässigen
Datenübertragungen
hat eine Nachfrage nach Netzgeräten
und Betriebsverfahren gefördert,
die hohe Datenübertragungsraten
mit einer minimalen Netz-Ausfallzeit bereitstellen. Darüber hinaus
gibt es eine stets vorhandene ökonomische
Motivation dahingehend, solche Ergebnisse auf eine kosteneffektive
und anpassbare Art und Weise zu erreichen. Demgemäß besteht
ein Bedarf an verbesserten Datensicherheitsverarbeitungstechniken
für die
Unterstützung
von Datenübertragungen über Datennetze.
-
Die
US 5,022,076 beschreibt
eine fehlertolerante Prozessoranordnung, bei der redundante Prozessoren
parallel in einer Master-/Slave-Konfiguration gekoppelt sind. Der
Master-Prozessor erzeugt einen periodischen Impuls, der von dem
Slave-Prozessor erfasst wird. Solange der periodische Impuls von
dem Slave-Prozessor erfasst wird, bleibt der Ausgang des Master-Prozessors
aktiviert und der Ausgang des Slave-Prozessors ist deaktiviert.
Wenn der periodische Impuls von dem Slave-Prozessor nicht erfasst
wird, deaktiviert der Slave-Prozessor
den Ausgang des Master-Prozessors, wobei der Ausgang des Slave-Prozessors aktiviert wird.
-
Gemäß der vorliegenden
Erfindung sind ein Verfahren zur Spiegelung von Sicherheitsprozessoren, wie
es von dem unabhängigen
Anspruch 1 definiert ist, und ein gespiegeltes Sicherheitsverarbeitungssystem bereitgestellt,
wie es von dem unabhängigen
Anspruch 2 definiert ist. Weitere vorteilhafte Merkmale der vorliegenden
Erfindung sind in den abhängigen
Unteransprüchen
definiert.
-
Die
Erfindung betrifft Verfahren und assoziierte Systeme zum Bereitstellen
einer abgesicherten Datenübertragung über ein
Datennetz. Zum Beispiel kann eine Vorrichtung, die in Übereinstimmung
mit der Erfindung aufgebaut ist, ein gespiegeltes Sicherheitsverarbeitungssystem
bereitstellen. Zwei oder mehr Sicherheitsprozessoren können so
konfiguriert sein, dass einer der Sicherheitsprozessoren den Paketverkehr
des anderen Sicherheitsprozessors in dem Falle einer Störung handhaben
kann, die mit dem anderen Sicherheitsprozessor assoziiert ist.
-
In
einer Ausführung
werden die Sicherheitsassoziationsinformationen von einem ersten
Sicherheitsprozessor zu einem zweiten Sicherheitsprozessor kopiert.
Auf diese Weise kann der Paketverkehr dann, wenn der erste Sicherheitsprozessor
ausfällt,
zu dem zweiten Sicherheitsprozessor umgeleitet werden. Da der zweite
Sicherheitsprozessor bereits die Sicherheitsassoziationsinformationen
besitzt, die mit dem Paketverkehr assoziiert sind, kann der Paketverkehr
ohne eine signifikante Unterbrechung umgeleitet werden.
-
Die
Sicherheitsassoziationsinformationen können zu dem zweiten Sicherheitsprozessor
in regelmäßigen Intervallen
gesendet werden. Zum Beispiel können
die Sicherheitsassoziationsinformationen gesendet werden, nachdem
die Sequenznummer eine spezifische Anzahl von Malen inkrementiert
worden ist.
-
Außerdem können die
Sicherheitsassoziationsinformationen zu dem zweiten Sicherheitsprozessor
auf einer Pro-Paket-Basis oder auf einer Basis pro vielen Paketen
gesendet werden. Zum Beispiel können
die Sicherheitsassoziationsinformationen von einem ersten Sicherheitsprozessor
zu einem zweiten Sicherheitsprozessor gesendet werden, nachdem jedes
Paket von dem ersten Sicherheitsprozessor übertragen oder durch diesen
empfangen worden ist. Alternativ dazu können die Sicherheitsassoziationsinformationen
von einem ersten Sicherheitsprozessor zu einem zweiten Sicherheitsprozessor
jedes Mal dann gesendet werden, wenn eine vorgegebene Anzahl von
Paketen von dem ersten Sicherheitsprozessor übertragen oder durch diesen empfangen
wird.
-
Wenn
ein Paketverkehr von einem Sicherheitsprozessor zu einem anderen
umgeleitet werden muss, dann können
Vorkehrungen getroffen werden, um zu gewährleisten, dass ein gegebenes
Paket nicht zweimal empfangen wird. In einem Ausführungsbeispiel
wird dies dadurch erreicht, dass die Sequenznummer erhöht wird,
bevor diese zu dem zweiten Sicherheitsprozessor gesendet wird.
-
In
einer Ausführung
werden die Sicherheitsassoziationsinformationen zwischen den Sicherheitsprozessoren
unter Verwendung eines dedizierten Links gesendet. Dieser Link kann
ein paketbasierter Link sein.
-
In
einer Ausführung
werden die Sicherheitsassoziationsinformationen zwischen den Sicherheitsprozessoren
in Paketen über
ein Ethernet-Netz gesendet.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Diese
und andere Merkmale, Ausführungsformen
und Vorteile der vorliegenden Erfindung werden besser verständlich,
wenn diese im Hinblick auf die nachfolgende ausführliche Beschreibung, die angehängten Ansprüche und
die beigefügten
Zeichnungen betrachtet wird, in denen:
-
1 ein
Blockdiagramm eines Ausführungsbeispiels
eines Sicherheitsverarbeitungssystems ist, das in Übereinstimmung
mit der Erfindung aufgebaut ist;
-
2 ein
Ablaufdiagramm ist, das Operationen veranschaulicht, die in Übereinstimmung
mit dem Ausführungsbeispiel
von 1 durchgeführt
werden können;
-
3 ein
Blockdiagramm eines Ausführungsbeispiels
eines Sicherheitsverarbeitungssystems ist, das in Übereinstimmung
mit der Erfindung konstruiert ist;
-
4 ein
Ablaufdiagramm ist, das Operationen veranschaulicht, die in Übereinstimmung
mit dem Ausführungsbeispiel
von 3 durchgeführt
werden können;
und
-
5 eine
grafische Darstellung eines Ausführungsbeispiels
eines Speicherzugriffpakets gemäß der vorliegenden
Erfindung ist.
-
AUSFÜHRLICHE BESCHREIBUNG VON VERANSCHAULICHENDEN
AUSFÜHRUNGSBEISPIELEN
DER ERFINDUNG
-
Die
Erfindung wird unten unter Bezugnahme auf ausführliche, veranschaulichende
Ausführungsbeispiele
beschrieben. Es wird offensichtlich sein, dass die Erfindung in
einer breiten Vielfalt von Formen verkörpert werden kann, von denen
einige ziemlich verschieden von denjenigen sein können, die
in den offenbarten Ausführungsbeispielen
dargestellt sind. Folglich sind die spezifischen strukturellen und
funktionellen Einzelheiten, die hier offenbart sind, lediglich repräsentativer
Natur und schränken
den Schutzumfang der Erfindung nicht ein.
-
1 ist
ein Blockdiagramm eines Ausführungsbeispiels
eines Sicherheitsverarbeitungssystems S, das gemäß der vorliegenden Erfindung
aufgebaut ist. Ein Paar von Sicherheitsprozessoren 100 und 102 ist mit
Paketnetzen verbunden, wie dies jeweils durch die Leitungen (lines) 106 und 104 sowie 110 und 108 repräsentiert
ist. Jeder Sicherheitsprozessor 100 und 102 umfasst
einen oder mehrere Verschlüsselungs-/Entschlüsselungs-/Authentifizierungs-Prozessor(en)
zum Verschlüsseln,
Entschlüsseln
und/oder Authentifizieren von Paketdaten, die von den Paketnetzen
empfangen werden und zu diesen übertragen
werden. In Übereinstimmung
mit einem Ausführungsbeispiel
der Erfindung nutzen die Sicherheitsprozessoren 100 und 102 Informationen
gemeinsam, so dass einer der Sicherheitsprozessoren die Paketdaten
für den
anderen Sicherheitsprozessor verarbeiten kann, wenn der andere Sicherheitsprozessor
nicht in der Lage ist, seine Paketdaten zu verarbeiten.
-
Jeder
Sicherheitsprozessor 100 und 102 umfasst einen
Datenspeicher zum Speichern jeweils von Verschlüsselungs-, Entschlüsselungs-
und/oder Authentifizierungsinformationen 112 und 122.
Typischerweise werden die Sicherheitsprozessoren 100 und 102 die
Informationen 112 und 122 modifizieren, wenn Pakete verarbeitet
werden. Zum Beispiel können
die Informationen 112 und 122 Sequenznummern umfassen,
die jedes Mal dann inkrementiert werden, wenn ein neues Paket von
dem Netz empfangen wird oder zu diesem übertragen wird.
-
In Übereinstimmung
mit einem Ausführungsbeispiel
der Erfindung umfassen die Sicherheitsprozessoren 100 und 102 jeweils
Spiegelschnittstellen 116 und 120 zum Übertragen
von Informationen zwischen ihnen. Zum Beispiel kann der Sicherheitsprozessor 100 periodisch
einen Teil oder alle der Informationen 112 zu dem Sicherheitsprozessor 102 übertragen.
Der Sicherheitsprozessor 102 kann dann die empfangenen
Informationen 112 mit seinen Informationen 122 speichern.
-
In
einem Ausführungsbeispiel
der Erfindung kommunizieren die Spiegelschnittstellen über einen
dedizierten Link, wie er von der Leitung 118 repräsentiert
wird. Zum Beispiel kann jede Spiegelschnittstelle einen Media Access
Controller ("MAC") umfassen, und der
Link 118 kann die Form eines Paketnetzes annehmen. Es sollte
aber klar sein, dass der Link 118 auch auf andere Weise
implementiert werden kann.
-
In
einem anderen Ausführungsbeispiel
können
die Spiegelschnittstellen mit den Netzen (z. B. 106 und 110)
verbinden, um Informationen zwischen den Sicherheitsprozessoren 100 und 102 zu
transferieren. In diesem Fall können
die Spiegelschnittstellen Pakete erzeugen, die Headers mit der Zieladresse
umfassen, die auf den Ziel-Sicherheitsprozessor eingestellt ist.
-
Mehrere
Operationen des Systems S werden in Verbindung mit dem Ablaufdiagramm
von 2 beginnend beim Block 200 ausführlicher
behandelt. In dem Beispiel, das folgt, ist der Sicherheitsprozessor 100 mit
einem Host-Prozessor (nicht gezeigt) durch das Netz 102 verbunden.
Der Host-Prozessor
sendet Pakete zu anderen Host-Prozessoren (nicht gezeigt) bzw. empfängt Pakete
von diesen, wobei die anderen Host-Prozessoren mit dem Netz 104 verbunden
sind. Der Sicherheitsprozessor 100 verschlüsselt Pakete,
die von dem Host-Prozessor gesendet werden, bevor die Pakete zu
dem Netz 104 gesendet werden. In einer komplementären Operation
entschlüsselt
der Sicherheitsprozessor 100 Pakete, die zu dem Host-Prozessor
gesendet werden, wenn die Pakete von dem Netz 104 empfangen
werden.
-
Wie
von dem Block 202 repräsentiert
wird, empfängt
der Sicherheitsprozessor 100 Pakete von dem Host-Prozessor über das
Netz 106. Der Verschlüsselungsprozessor 114 verschlüsselt dann
die Pakete in Vorbereitung für
das Routing der Pakete über
das Netz 104.
-
Wie
von dem Block 204 repräsentiert
wird, kann der Sicherheitsprozessor 100 die Informationen 112 in
Verbindung mit der Verschlüsselungsoperation
modifizieren. Zum Beispiel kann eine Sequenznummer, die mit dem
Paketfluss assoziiert ist, inkrementiert werden. Außerdem kann
auch eine Bytezählung,
die mit dem Fluss assoziiert ist, modifiziert werden.
-
Wie
von dem Block 206 repräsentiert
wird, speichert der Sicherheitsprozessor 100 die Informationen 112 in
einem Datenspeicher, so dass die Informationen für nachfolgende Paketoperationen
verwendet werden können.
In dem Beispiel, auf das im Block 204 Bezug genommen wird,
können
bei diesem Schritt eine Sequenznummer und eine Bytezählung gespeichert
werden.
-
Als
nächstes
können
die Informationen, die modifiziert wurden, zu dem Sicherheitsprozessor 102 gesendet
werden (Block 208). In einem Ausführungsbeispiel kann der Sicherheitsprozessor 100 diese
Informationen jedes Mal dann senden, wenn ein Paket verarbeitet
wird. Typischerweise sendet der Sicherheitsprozessor 100 diese
Informationen aber nach einer spezifischen Anzahl von Paketen, die
verarbeitet worden sind. Zum Beispiel kann der Sicherheitsprozessor 100 die
Informationen 112 senden, nachdem 128 Pakete verarbeitet
worden sind, nachdem 256 Pakete verarbeitet worden sind, und so
weiter.
-
Wie
von dem Block 210 repräsentiert
wird, speichert der Sicherheitsprozessor 102 die Informationen 112 in
einem Datenspeicher (z. B. Block 122). Typischerweise überschreibt
der Sicherheitsprozessor 102 die vorher empfangenen Informationen
dann, wenn neue Informationen ankommen.
-
Von
Zeit zu Zeit kann es sein, dass der Sicherheitsprozessor 100 nicht
in der Lage ist, Pakete zu verarbeiten. Dies kann zum Beispiel durch
einen Ausfall des Sicherheitsprozessors 100 oder der Links
verursacht werden, die mit dem Sicherheitsprozessor 100 verbunden
sind. Alternativ dazu kann dies durch einen Administrator verursacht
werden, der den Sicherheitsprozessor 100 außer Dienst
nimmt.
-
In
dem Falle, in dem der Sicherheitsprozessor 100 nicht in
der Lage ist, Pakete zu verarbeiten, kann der Host-Prozessor den
Paketfluss, der durch den Sicherheitsprozessor 100 geflossen
ist, so routen, dass er jetzt durch den Sicherheitsprozessor 102 fließt (Block 212).
Auf diese Weise wird der Sicherheitsprozessor 102 Pakete
verschlüsseln,
die von dem Host-Prozessor gesendet werden, bevor die Pakete zu
dem Netz 108 gesendet werden, und der Sicherheitsprozessor 100 wird
Pakete entschlüsseln,
die zu dem Host-Prozessor
gesendet werden, wenn die Pakete von dem Netz 108 empfangen
werden.
-
Darüber hinaus
besitzt der Sicherheitsprozessor 102 auf Grund des Austausches
von Informationen 112, wie dies oben erörtert worden ist, Zugriff auf
die neuesten Informationen (oder Informationen, die den neuesten
Informationen relativ nahe kommen) zur Verarbeitung des Paketflusses,
der vorher von dem Sicherheitsprozessor 100 verarbeitet
wurde. Zum Beispiel wird der Sicherheitsprozessor 102 relativ
neue Werte der Sequenznummer und der Bytezählung gespeichert haben. Auf
diese Weise wird die Verbindung zwischen dem Host-Prozessor und
seinen Peer-Prozessoren wahrscheinlich nicht verloren gehen. Unter
gewissen Umständen
können
aber einige Pakete verloren gehen, vorausgesetzt, dass wahrscheinlich
eine Störung
die Ursache für
den Verlust des Sicherheitsprozessors 100 war. Dieser relativ
unsignifikante Verlust von Paketen kann im Allgemeinen akzeptabel
sein.
-
Auf
diese Weise verwendet der Sicherheitsprozessor 102, wie
dies von dem Block 214 repräsentiert wird, die Informationen,
die zu ihm von dem Sicherheitsprozessor 100 gesendet wurden,
um den neuen Paketfluss zu verarbeiten. Dem gemäß stellt dieses Ausführungsbeispiel
der Erfindung eine zuverlässige
Sicherheitsverarbeitung bereit.
-
3 veranschaulicht
ein Ausführungsbeispiel
eines Gigabit-Sicherheitsverarbeitungssystems,
das gemäß der Erfindung
aufgebaut ist. In diesem Ausführungsbeispiel
besitzt jeder Sicherheitsprozessor die Fähigkeit, Sicherheitsassoziationsaktualisierungen
zu einem anderen Sicherheitsprozessor zu spiegeln. Dieses Merkmal
kann verwendet werden, um eine redundante Verarbeitung innerhalb
eines Systems bereitzustellen, wie es in 3 gezeigt
ist. Mehrere Operationen des Systems von 3 werden
in Verbindung mit dem Ablaufdiagramm von 4 beschrieben,
das beim Block 400 beginnt.
-
In
dem Ausführungsbeispiel
von 3 werden die Sicherheitsprozessoren 304 und 306 durch GMAC-Schnittstellen
auf der "Host-Seite" (nicht gezeigt)
verwaltet, die eine Verbindung mit dem Host-Prozessor 300 jeweils über die
Leitungen 318 und 320 bereitstellen. Es können auch
andere GMAC-Schnittstellen für das
Management verwendet werden. Der Host-Prozessor 300 verwaltet
beide Sicherheitsprozessoren 304 und 314 in dem
System in einer ähnlichen
Art und Weise.
-
Wie
von dem Block 402 repräsentiert
wird, initialisiert der Host-Prozessor 300 die
Sicherheitsprozessoren 304 und 306 über Konfigurationspakete.
Alle Konfigurationspakete werden zu beiden Sicherheitsprozessoren 304 und 306 gesendet.
-
Wie
von dem Block 404 repräsentiert
wird, baut eine Anwendung, die auf dem Host-Prozessor 300 abläuft, Sitzungsflüsse mit
anderen Anwendungen auf, die auf Prozessoren ausgeführt werden,
die mit dem Netz verbunden sind. Dies kann das Definieren von Sicherheitsassoziationsinformationen
für sichere
Sitzungen umfassen.
-
Ein
Switch 302 teilt den Paketverkehr, der mit den Sitzungsflüssen assoziiert
ist, während
einer normalen Operation zwischen den Sicherheitsprozessoren 304 und 306 auf
(Block 406). In einem Ausführungsbeispiel stellt dies
eine Uplink-Fähigkeit
von 2 Gigabit pro Sekunde ("Gbps") zu dem Netz bereit,
was durch die Leitungen 312 und 314 auf der "Leitungsseite" der Sicherheitsprozessoren
repräsentiert
wird.
-
In
diesem Ausführungsbeispiel
ist das Flussaufteilen statisch. Deshalb gehen Pakete in einer bestimmten
Sicherheitsassoziation für
eine maximale Einzelflussrate von 1 Gbps zu dem gleichen Sicherheitsprozessor.
-
Wie
von dem Block 408 repräsentiert
wird, sendet der Host-Prozessor 300 dann, wenn der Host-Prozessor 300 Sitzungen
mit Peer-Prozessoren einrichtet, die entsprechenden Sicherheitsassoziationsinformationen
zu den Sicherheitsprozessoren 304 und 306.
-
Nun
werden unter Bezugnahme auf die mittlere Spalte in 4,
die bei Block 410 beginnt, mehrere Operationen der Sicherheitsprozessoren 304 und 306 erörtert werden.
Wie von dem Block 412 repräsentiert wird, verarbeitet
jeder der Sicherheitsprozessoren Paketverkehr, der mit den Sitzungsflüssen assoziiert
ist, die diesem Sicherheitsprozessor zugeordnet sind. Die Sicherheitsprozessoren
aktualisieren ihre Sicherheitsassoziationsinformationen, während die
Pakete verarbeitet werden (Block 414).
-
Wie
von dem Block 416 repräsentiert
wird, wird jeder Sicherheitsprozessor Sicherheitsassoziations-Aktualisierungsdaten
zu einem lokalen Speicher (z. B. zu seriellen, dynamischen Doppeldatenraten-RAM-Datenspeichern 308 und 310)
senden.
-
Außerdem wird
jeder Sicherheitsprozessor Sicherheitsassoziations-Aktualisierungsdaten
zu dem anderen Sicherheitsprozessor über die querverbundenen GMAC-Schnittstellen
automatisch (z. B. über
die Leitung 316) senden. Dieser Prozess umfasst das Erzeugen
eines Pakets, das die Aktualisierungsdaten enthält (Block 418), und
das Senden des Pakets zu dem anderen Sicherheitsprozessor (Block 420).
Außerdem
kann, wie dies von dem Block 422 repräsentiert wird, der Sicherheitsprozessor,
der die Aktualisierungsdaten empfängt, die Daten in einem Datenspeicher
(z. B. in den DDR-SRAMs 308 oder 310) speichern.
-
Unter
Bezugnahme auf die letzte Spalte, die beim Block 424 beginnt,
vermittelt das System dann, wenn einer der Uplink-Ports (z. B. Sicherheitsprozessoren)
nachlässt,
den gesamten Verkehr einfach durch den anderen Sicherheitsprozessor
(Block 426). Da die veränderbaren
Felder der Sicherheitsassoziationen bereits synchronisiert sind,
kann der Verkehr ohne Unterbrechung fortschreiten (Block 428).
-
Wenn
der Host in der Lage ist, den ausgefallenen Link wieder neu zu starten,
können
die Sicherheitsassoziationsdaten von dem arbeitenden Sicherheitsprozessor
in den reinitialisierten Sicherheitsprozessor kopiert werden. Wenn
die Sicherheitsprozessoren wieder synchronisiert sind, kann der
Verkehr erneut zwischen den beiden Vorrichtungen aufgeteilt werden,
ohne dass Pakete verloren gehen.
-
Der
Sicherheitsprozessor kann die Sicherheitsassoziationssynchronisierung
durchführen,
indem er automatisch Speicherzugriffpakete ("MAPs";
Memory Access Packets) erzeugt, die die Sicherheitsassoziations-Aktualisierungsinformationen
enthalten (die gleichen Informationen und die gleiche Adresse, die
in den lokalen Speicher geschrieben ist). Das MAP-"Schreib"-Paket kann mit einem
programmierbaren Header weitergeleitet werden, wie dies in 5 gezeigt
ist.
-
Derselbe
programmierbare Header kann sowohl für eingehende Aktualisierungspakete 502 als
auch für
ausgehende Aktualisierungspakete 504 verwendet werden.
In einem Ausführungsbeispiel
beträgt
die maximale Header-Größe 32 Byte,
und der Header weist mindestens 4 Byte auf. Ein Master-Steuerwort
("MCW"; Master Control
Word) wird verwendet, um das Paket durch die Sicherheitsprozessoren
zu routen. Ein äußeres MCW 506 bzw. 508 wird
automatisch von dem Sicherheitsprozessor für das korrekte Routing durch
den Sicherheitsprozessor erzeugt, der das Paket erzeugt. Ein Ethernet-Header 510 bzw. 512 kann
verwendet werden, um das Paket über
eine Netzverbindung von dem Ausgangs-Sicherheitsprozessor zu dem
Ziel-Sicherheitsprozessor
zu routen. Ein anderes MCW 514 bzw. 516 kann von dem
Ziel-Sicherheitsprozessor verwendet werden, um das Paket durch diese
Vorrichtung zu routen.
-
Das
Ausgangs-Ziel in dem MCW wird separat programmiert und von dem Erzeuger
des Spiegelpakets ersetzt. Der Sicherheitsprozessor unterstützt zwei
separate Ausgangs-Ziele für
jeden Erzeuger von Spiegelpaketen. Der Erzeuger fügt die Ausgangs-Ziel-Bits
in einer Round-Robin-Weise bei der Erzeugung von Paketen ein. Dieses
Verfahren erlaubt es, dass die Spiegelpakete zwischen bis zu zwei
Ausgangsschnittstellen (z. B. GMAC) ungeachtet der eingehenden/ausgehenden
Verkehrsmischung aufgeteilt werden können.
-
Weitere
Einzelheiten eines Ausführungsbeispiels
von Spiegelaktualisierungen für
ein ausgehendes Paket werden nun erörtert. Der Sicherheitsprozessor
konstruiert das Spiegelaktualisierungspaket aus den Daten, die er
in den lokalen Speicher gestellt hat. Diese Daten können zum
Beispiel eine Sequenznummer
518 und eine Bytezählung
520 umfassen.
Um während
des Umschaltens von einer Vorrichtung auf eine andere eine Kohärenz zu
gewährleisten,
wird die Sequenznummer von dem Sicherheitsprozessor in dem Spiegelpaket
eingestellt. Die Häufigkeit
von Aktualisierungen kann auf der Basis der Sequenznummer bestimmt
werden. Die Häufigkeit
der ausgehenden Aktualisierung kann in dem Sicherheitsprozessor
global eingestellt werden. Das Aktivieren der Spiegelung von Paketen
kann auf einer Basis pro Sicherheitsassoziation eingestellt werden.
Die Häufigkeit
und der Wert der Spiegelpaketerzeugung können durch die folgende Logik
bestimmt werden:
-
Die
Aktualisierung kann für
jedes Paket durch das Setzen von MIRROR_OUT_PKTS auf Null eingestellt
werden.
-
Weitere
Einzelheiten eines Ausführungsbeispiels
von Spiegelaktualisierungen für
ein eingehendes Paket werden nun erörtert werden. Das eingehende
Sicherheitsassoziations-Aktualisierungsspiegelpaket wird ähnlich wie
bei dem ausgehenden Fall erzeugt. Wie in 5 dargestellt
ist, kann das Paket zum Beispiel eine Sequenznummer 522,
eine Bytezählung 524 und
eine Sequenzmaske 526 (z. B. ein Sequenznummern-Replay-Fenster)
umfassen. Aber die Kalkulation des Häufigkeits- und Aktualisierungswertes
kann geringfügig
anders sein. Die Häufigkeit
der eingehenden Aktualisierung kann in dem Sicherheitsprozessor
global eingestellt werden. Das Aktivieren der Spiegelung von Paketen
kann auf einer Basis pro SA eingestellt werden.
-
Der
Sicherheitsprozessor verfolgt den oberen Wert der Sequenznummer
522 für das Replay-Fenster
526 in
eingehenden Paketen. Das Replay-Fenster
526 repräsentiert
die nachlaufenden "n" (64-1024) Pakete. Die
Häufigkeit
und der Wert der Spiegelpaketerzeugung können durch die folgende Logik
bestimmt werden;
-
Die
Aktualisierung kann für
jedes Paket eingestellt werden, indem MIRROR_IN_PKTS auf Null gesetzt wird.
Das Replay-Fenster kann bei der Erzeugung der Spiegelpakete deaktiviert
werden, um Bandbreite zu sparen. In diesem Fall sollte der Host-Prozessor
gewährleisten,
dass SEQ_IN_INC > Eingehende
Replay-Größe + MIRROR_IN_PKTS)
ist, um zu verhindern, dass ein Paket einem Replay unterzogen wird,
wenn es von einem Sicherheitsprozessor zu einem anderen transferiert
wird.
-
In
einem Ausführungsbeispiel
ist der Sicherheitsprozessor von 3 in einer
einzigen integrierten Schaltung implementiert. Jeder MAC ist mit
einem SERDES (nicht gezeigt) für
die Paketnetzschnittstellen verbunden. In diesem Fall repräsentieren
die Leitungen 312, 314, 316, 318 und 320 SERDES-kompatible Signale.
-
Es
sollte klar sein, dass die hier beschriebenen Erfindungen auf viele
verschiedene Protokolle und Standards sowie Modifikationen und Erweiterungen
dieser Protokolle und Standards anwendbar sind und diese verwenden
können,
die zum Beispiel IP, TCP, UDP, ICMP, IPsec, SSL und FCsec einschließen, ohne
darauf beschränkt
zu sein. Darüber
hinaus können
eine Vielfalt von kryptographischen Algorithmen und Signaturalgorithmen
sowie Modifikationen und Erweiterungen davon verwendet werden. Die
Erfindung kann unter Verwendung einer Tunnelmodus- und/oder einer
Transportmodus-Paketverarbeitung
praktiziert werden.
-
Die
Erfindung kann in einer Vielfalt von Netzen implementiert werden,
die das Ethernet, ATM, FDDI und Glasfaserkanal einschließen, ohne
darauf beschränkt
zu sein. Ein geeigneter Media Access Controller (MAC) würde für diese
unterschiedlichen Netze verwendet werden. Es sollte auch klar sein,
dass die hier beschriebenen Erfindungen unter Verwendung einer Vielfalt
von physischen und physikalischen Komponenten und Konfigurationen
aufgebaut werden können.
Zum Beispiel kann eine Vielfalt von Hardware- und Software-Verarbeitungskomponenten
verwendet werden, um die Funktionen der Host-Prozessoren, der Sicherheitsprozessoren
und der anderen hier beschriebenen Komponenten und Prozesse zu implementieren.
Diese Hardware- und Software-Komponenten umfassen, ohne darauf beschränkt zu sein,
Prozessoren und assoziierte Datenspeicher, Zustandsmaschinen und
-logik, und können
die Ausführung
von Software, Firmware oder eines anderen Codes einschließen. Solche
Komponenten können
in einer oder mehreren integrierten Schaltung(en) kombiniert sein.
Zum Beispiel können
mehrere dieser Komponenten in einer einzigen integrierten Schaltung
kombiniert sein. Einige Komponenten können als eine einzige integrierte
Schaltung implementiert werden. Einige Komponenten können unter
Verwendung von mehreren integrierten Schaltungen implementiert werden.
-
Außerdem können die
hier beschriebenen Komponenten und Funktionen auf viele verschiedene
Arten und Weisen verbunden werden. Einige der Verbindungen, die
von den Anschlussleitungen (lead lines) in den Zeichnungen repräsentiert
werden, können
sich in einer integrierten Schaltung, auf einer Leiterplatte, über eine Rückwandplatine
zu anderen Leiterplatten, über
ein lokales Netz und/oder über
ein Weitbereichsnetz (z. B. das Internet) erstrecken. Auf diese
Weise können
einige der Komponenten an einem fernen Standort im Hinblick zu den
anderen Komponenten lokalisiert sein. Typischerweise können eine
oder mehrere der Verbindungen, die in den Zeichnungen durch die
Anschlussleitungen repräsentiert
sind, zum Beispiel ein Datennetz umfassen. Außerdem können diese Verbindungen zum
Beispiel durch physische Drahtverbindungen, Faserverbindungen und/oder
drahtlose Verbindungen hergestellt sein.
-
Eine
breite Vielfalt von Vorrichtungen kann verwendet werden, um die
Datenspeicher zu implementieren (z. B. ein lokaler Speicher, Datenbanken
und nichtflüchtige
Speicher), die hier erörtert
worden sind. Zum Beispiel kann ein Datenspeicher ein oder mehrere
RAM, Festplattenlaufwerke, SDRAM, FLASH oder andere Typen von Datenspeicherungsvorrichtungen
umfassen.
-
Die
Erfindung kann unter Verwendung unterschiedlicher Typen von Chiffriermaschinen
praktiziert werden. In einem Ausführungsbeispiel der Erfindung
können
Daten zum Beispiel unter Verwendung einer Blockchiffrierung oder
einer Bitstrom-Chiffrierung verschlüsselt oder entschlüsselt werden.
-
Zusammengefasst
lehrt die hier beschriebene Erfindung verbesserte Sicherheitsverarbeitungstechniken.
Obwohl bestimmte beispielhafte Ausführungsbeispiele ausführlich beschrieben
und in den beigefügten Zeichnungen
gezeigt worden sind, sollte es verständlich sein, dass solche Ausführungsbeispiele
lediglich illustrativer Natur sind und nicht zur Beschränkung des
breiten Schutzumfanges der Erfindung gedacht sind. Insbesondere
sollte erkannt werden, dass die Lehren der Erfindung auf eine breite
Vielfalt von Systemen und Prozessen, die konfigurierbar sind, Anwendung
finden. Es wird deshalb erkannt werden, dass verschiedene Modifikationen
bei den veranschaulichten und anderen Ausführungsbeispielen der Erfindung,
die oben beschrieben worden sind, durchgeführt werden können, ohne
dass von dem breiten erfinderischen Schutzumfang davon abgewichen
wird. Angesichts des Obigen wird es verstanden werden, dass die
Erfindung nicht auf die bestimmten Ausführungsbeispiele oder offenbarten
Anordnungen beschränkt
ist, sondern dass es statt dessen so gedacht ist, dass sie alle Änderungen,
Anpassungen oder Modifikationen abdeckt, die innerhalb des Schutzumfangs
der Erfindung liegen, wie er von den angehängten Ansprüchen definiert ist.