ES2302809T3 - Filtro de paquetes dinamicos que utiliza un seguimiento de sesion. - Google Patents
Filtro de paquetes dinamicos que utiliza un seguimiento de sesion. Download PDFInfo
- Publication number
- ES2302809T3 ES2302809T3 ES02730558T ES02730558T ES2302809T3 ES 2302809 T3 ES2302809 T3 ES 2302809T3 ES 02730558 T ES02730558 T ES 02730558T ES 02730558 T ES02730558 T ES 02730558T ES 2302809 T3 ES2302809 T3 ES 2302809T3
- Authority
- ES
- Spain
- Prior art keywords
- session
- sessions
- package
- database
- received
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0254—Stateful filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Abstract
Procedimiento de filtrado de una corriente de paquetes de entrada, estando caracterizado dicho procedimiento por el hecho de que comprende las etapas de: establecer una base de datos de sesiones adaptada para almacenar datos relacionados con sesiones para una pluralidad de sesiones y que comprende por lo menos una lista enlazada de sesiones, correspondiendo cada sesión a un interfaz de conexión; abrir una nueva sesión al recibir un interfaz de conexión no previamente almacenado en dicha base de datos de sesiones; reconocer una sesión asociada con un paquete recibido según su interfaz de conexión asociado; procesar los datos de la sesión correspondientes ha dicho paquete recibido según una pluralidad de reglas predefinidas para generar resultados de procesamiento; y decidir si se permite o se deniega dicho paquete recibido según dichos resultados de procesamiento.
Description
Filtro de paquetes dinámicos que utiliza un
seguimiento de sesión.
La presente invención se refiere en general a
sistemas de comunicación de datos, y más particularmente se refiere
a un filtro de paquetes dinámicos que utiliza el seguimiento de la
sesión para tomar decisiones si se permite o se deniega un
paquete.
\vskip1.000000\baselineskip
En los últimos años, el mundo ha sido testigo
del crecimiento explosivo de Internet. Cada año se han añadido
muchos más servidores mientras que el número de usuarios parece que
crece sin límite. Internet permite comunicaciones utilizando
diferentes técnicas incluyendo el acceso a ordenadores remotos, la
transferencia de archivos, la navegación de páginas web (WWW), el
correo electrónico, etc. si en diseñado varios protocolos y se
utilizan en Internet para tratar varios tipos de comunicaciones por
ejemplo, el protocolo de transferencia de archivos (FTP) para la
transferencia de archivos, el lenguaje de marcado de hipertexto
(HTML) para el tráfico web, etc. generalmente, el protocolo
relacionado con las comunicaciones y Carnet está agrupado bajo el
paraguas del protocolo de control de transmisión/
protocolo de Internet (TCP/IP) adecuado de protocolos incluyen protocolo en varias capas de la pila de comunicaciones
OSI.
protocolo de Internet (TCP/IP) adecuado de protocolos incluyen protocolo en varias capas de la pila de comunicaciones
OSI.
Una característica clave de Internet es que es
una República que es accesible casi por todo el mundo con un
ordenador, una línea telefónica y una cuenta y un proveedor de
servicio de Internet (ISP). Un inconveniente de esta accesibilidad
pública a gran escala es que permite un fácil acceso a hackers y
otros que intentan realizar axilares maliciosas contra uno o más
servidores en Internet. La conducta ilegal tal como el robo de
información secreta o el borrado de archivos importantes por parte
de un usuario malicioso es posible por parte de un hacker que se
traduce en un ordenador de una red remota y que se aprovecha de una
manera exitosa de los datos de comunicación. La necesidad de
seguridad ha hecho que el Comité de Arquitectura de Internet (IAB)
incluya características de seguridad tal como la encriptación y la
autentificación en IPv6 que permiten transacciones seguras en
Internet.
Para combatir la amenaza de los hackers y
asegurar las redes privadas, es común hoy colocar un cortafuegos en
la entrada de la red privada en una compañía u organización. El
cortafuegos utiliza alguna forma de filtro de paquetes que funciona
para respetar una política de seguridad definida por el usuario. El
cortafuegos es un sistema que determina el límite entre la red
local de la organización y el Internet global. Implementa el
filtrado de todas las comunicaciones de datos para evitar la fuga de
información a la red exterior y evitar el acceso no autorizado a la
red interna desde el exterior. Una decisión de denegación/permiso se
realiza para cada paquete que se recibe por parte del corta-
fuegos.
fuegos.
Al mismo tiempo, el mundo es testigo de la
demanda aumentada de servicios sin cables (es decir, teléfonos
celulares, localizadores de dos vías, dispositivo sin cables, etc.)
y dispositivos de informática personal tales como portátiles,
agendas electrónicas, etc. muchos de estos dispositivos informáticos
personales incorporan circuitos de comunicaciones sin cables para
permitir que se comuniquen a través de redes sin cables (por
ejemplo, celulares u otros esquemas de banda ancha) en redes WAN
tales como Internet. Así, más y más agendas electrónicas y
teléfonos celulares están conectados a Internet, exponiendo así
estos dispositivos a riesgos de seguridad. Preferiblemente, estos
dispositivos utilizan algún tipo de cortafuegos para protegerlos
contra el acceso no autorizado al dispositivo. La mayoría de
cortafuegos actuales, sin embargo, están implementados en software
y requieren recursos informáticos de un ordenador de sobremesa
completo, haciendo su uso en un dispositivo informático portátil
tal como un teléfono celular a una agenda electrónica poco
práctico.
De esta manera, existe la necesidad de un
cortafuegos o un filtro de paquetes que se pueda implementar
fácilmente en pequeño tamaño adecuado para su incorporación en
dispositivos informáticos portátiles pequeños, tales como teléfonos
celulares y agendas electrónicas conectadas sin cables.
La solicitud de patente europea EP 0 910 197 A2
describe un cortafuegos configurado para realizar un filtrado de
paquetes de estado completo mediante la recogida de resultados de
procesamiento de reglas para paquetes recibidos, y a continuación
utilizarlo resultado recogidos para derivar el procesamiento de la
regla para paquetes similares posteriores. Por ejemplo, los
resultados de aplicar una regla asignada a un paquete de una sesión
de arrendada se pueden recoger, de manera que cuando un paquete
posterior de la misma red llega al cortafuegos, los resultados
recogidos del paquete previo se utilizan para el paquete posterior.
Si no se encuentra una coincidencia en la memoria, la regla
determinada se aplica al paquete; a continuación, sino se encuentra
una coincidencia en la regla determinada, el paquete se
"abandona". Esta técnica evita la necesidad de aplicar la
regla determinada a cada paquete de
entrada.
entrada.
\newpage
La presente invención proporciona un filtro de
paquetes dinámico nuevo y útil que se puede implementar el
hardware, software o una combinación de los mismos. La presente
invención se puede incorporar en un cortafuegos basado en hardware
adecuado para su utilización en dispositivos informáticos portátiles
tales como teléfonos celulares y agendas electrónicas conectadas
sin cables que están adaptadas para conectarse a Internet.
La invención realiza un filtrado de paquetes
dinámico en los paquetes recibidos sobre una corriente de paquetes
de entrada. Preferiblemente, la invención se coloca entre una WAN
(es decir, Internet) y una LAN local. En este caso, el filtro de
paquetes dinámico es operativo para filtrar tanto los paquetes de
entrada desde la WAN a la LAN y los paquetes de salida desde la LAN
a la WAN. Nótese que el filtrado dinámico es efectivo para
comprobar el comportamiento del protocolo dinámico más que las
reglas estáticas de un protocolo. La invención consigue esto
mediante la creación de sesiones para rastrear el estado de las
comunicaciones entre la fuente y el destino.
Nuevas sesiones se detectan, crean y los datos
relacionados con las mismas se almacenan en una base de datos de la
sesión. Se realiza un intento para reconocer cada paquete recibido y
asociarlo con una sesión previamente abierta. El reconocimiento de
una sesión se acelera mediante la utilización de una tabla de
codificación para determinar rápidamente el registro de la sesión
correspondiente en la base de datos de la sesión. La codificación
se puede calcular utilizando información de interfaz de conexión
completa o parcial. La información de interfaz de conexión
completan comprende la fuente de 104 bits y la dirección IP del
destino, el número del puerto fuente y de destino y el protocolo.
La información de interfaz de conexión parcial, calificada de vacío,
no dispone de uno o más sujetos de información. Una base de datos
de vacíos se utiliza para almacenar los vacíos que están
actualmente abiertos. Una vez se reconoce una sesión de vacíos, el
vacío se llena con los parámetros faltantes.
Si no se encuentra ninguna, se crea una nueva
sesión. Si se encuentra una existente, los datos relacionados con
la sesión se leen desde la base de datos de la sesión y el paquete
recibido se comprueba respecto a una serie de reglas. La regla se
describen como diagramas de transición del estado que especifican
los estados y las transiciones permitidas por el protocolo
particular.
Si un paquete está de acuerdo con el
comportamiento legal para el protocolo, es permitido, de otra
manera, se deniega. Los datos de la sesión se actualizan a
continuación con una nueva información del estado y los parámetros
relacionados y se escribe otra vez en la base de datos de la
sesión.
Aunque la invención está diseñada para su
implementación en hardware, también se puede implementar en
software. En una realización, un ordenador comprende un procesador,
una memoria, etc. es operativo para ejecutar el software adaptado
para realizar el procedimiento de filtrado de paquetes dinámico de
la presente invención.
Así, se proporciona según la presente invención
un procedimiento de filtrado de una corriente de paquetes de
entrada, comprendiendo el procedimiento las etapas de establecer una
base de datos de sesiones adaptada para almacenar los datos
relacionados con la sesión para una pluralidad de sesiones y que
comprende por lo menos una lista en la sala de sesiones,
correspondiendo cada sesión a un interfaz de conexión, abriendo una
nueva sesión bajo la recepción de un interfaz de conexión no
almacenado previamente en la base de datos de las sesiones,
reconociendo una sesión asociada con un paquete recibido según su
interfaz de conexión asociado, procesando los datos de la sesión
correspondientes al paquete recibido según una pluralidad de reglas
predefinidas para generar resultados de procesamiento y decidir si
se permite o deniega el paquete recibido según los resultados de
procesamiento.
También se proporciona según la presente
invención un procedimiento de monitorización del estado de una
sesión de comunicaciones, comprendiendo el procedimiento las etapas
de establecer una base de datos de las sesiones adaptada para
almacenar los datos relacionados de las sesiones para una pluralidad
de sesiones, correspondiendo cada sesión a un interfaz de conexión,
reconociendo una sesión según un primer cálculo de codificación en
el interfaz de conexión asociado con un paquete recibido, reconocer
una sesión de vacío según un segundo cálculo de codificación en una
interfaz de conexión parcial asociado con el paquete recibido, leer
los datos de la sesión desde la base de datos de la sesión, los
datos de la sesión asociados con una sesión reconocida o con una
sesión vacía reconocida, rastrear un estado de conexión de la sesión
y comprobar el estado contra una pluralidad de reglas para
determinar si se permite o se deniega el paquete recibido y escribir
los datos de la sesión actualizados otra vez en la base de datos de
la
sesión.
sesión.
También se prevé según la presente invención un
filtro dinámico para filtrar una corriente de paquetes de entrada
que comprende una base de datos de sesiones adaptada para almacenar
datos relacionados con las sesiones para una pluralidad de sesiones
y que comprende por lo menos una lista enlazada de sesiones,
correspondiendo cada sesión a un interfaz de conexión, un módulo de
reconocimiento de sesiones adaptado para buscar la base de datos de
las sesiones para una sesión cuyo interfaz de conexión asociado
coincide con el de un paquete recibido, un módulo de gestión de las
sesiones adaptado para mantener la base de datos de las sesiones
incluyendo la edición, el borrado y la modificación de las sesiones
en la base de datos de las sesiones y un módulo de filtro principal
operativo para rastrear un estado de conexión de la sesión
correspondiente a un paquete recibido y comprobar el estado de
conexión contra una pluralidad de reglas para determinar si se
permite o se deniega el paquete recibido.
\newpage
También se prevé según la presente invención un
aparato de computación digital, que comprende medios de comunicación
adaptados para conectar el aparato a una red de área amplia (WAN),
medios de memoria que comprenden una memoria volátil y no volátil,
prestando la memoria no volátil adaptada para almacenar uno o más
programas de aplicación, un procesador acoplado a los medios de
memoria y los medios de comunicación para ejecutar uno o más
programas de aplicación y un filtro dinámico para filtrar una
corriente de paquetes de entrada que comprende una base de datos de
sesiones adaptado para almacenar datos relacionados con las sesiones
para una pluralidad de sesiones y que comprende por lo menos una
lista enlazada de sesiones, correspondiendo cada sesión a un
interfaz de conexión, un módulo de reconocimiento de sesiones
adaptado para buscar en la base de datos de la sesión si una sesión
cuyo interfaz de conexión asociado coincide con el de un paquete
recibido, un módulo de administración de sesiones adaptado para
mantener la base de datos de las sesiones incluyendo la edición, el
borrado y la modificación de las sesiones de la base de datos de
las sesiones y un módulo de filtro principal operativo para atrás
crear un estado de conexión de la sesión correspondiente a un
paquete recibido y comprobar el estado de conexión contra una
pluralidad de reglas para determinar si se permite o se deniega el
paquete recibido.
También se prevé según la presente invención un
medio de almacenamiento que se puede leer en un ordenador que tiene
un programa informático en el mismo para provocar un sistema
programado de una manera adecuada para buscar una pluralidad de
cadenas mediante la realización de las siguientes etapas cuando este
programa se ejecuta en el sistema: establecer una base de datos de
sesiones adaptada para almacenar datos relacionados con las
sesiones para una pluralidad de sesiones y que comprende por lo
menos una lista enlazada de sesiones, correspondiendo cada sesión a
un interfaz de conexión, abrir una nueva sesión al recibir un
interfaz de conexión no previamente almacenado en la base de datos
de las sesiones, reconocer una sesión asociada con un paquete
recibido según su interfaz de conexión asociado, procesar los datos
de las sesiones correspondientes al paquete recibido según una
pluralidad de reglas predefinidas para generar resultados de
procesamiento y decidir si se permite o se deniega el paquete
recibido según los resultados de procesamiento.
\vskip1.000000\baselineskip
La invención se describe aquí, solamente a modo
de ejemplo, con referencia a los dibujos adjuntos, en los
cuales:
La figura 1 es un diagrama de bloques que
muestra varias aplicaciones de ejemplo del filtro de paquetes
dinámico de la presente invención en el contexto de una WAN o
Internet;
La figura 2 es un diagrama de bloques que
muestra el filtro de paquetes dinámico de la presente invención en
mayor detalle;
La figura 3 es un diagrama de flujo que muestra
el procedimiento de procesador del filtro principal de la presente
invención;
La figura 4 es un diagrama de transición del
estado que muestra el procedimiento de procesador del filtro
principal de la presente invención cuando se encuentra una
coincidencia;
La figura 5 es un diagrama de transición de
estado que muestra el procedimiento de procesador de filtro
principal de la presente invención cuando no se encuentra ninguna
coincidencia;
La figura 6 es un diagrama que muestra la
técnica de codificación de determinación de la sesión asociada con
un paquete de entrada;
La figura 7 es un diagrama de flujo que muestra
el procedimiento de codificación del proceso de reconocimiento de
la sesión de la presente invención;
La figura 8 es un diagrama de flujo que muestra
el procedimiento de búsqueda vacío del procedimiento de
reconocimiento de la sesión de la presente invención;
La figura 9 es un diagrama que muestra el flujo
de paquetes de una sesión TCP;
La figura 10 es un diagrama de transición de
estado que muestra el protocolo de intercambio de 3 vías que se
produce al abrir una sesión TCP;
Las figuras 11A y 11B son un diagrama de
transición del estado que muestra el protocolo de intercambio de 4
vías que se produce al cerrar una sesión TCP;
La figura 12 es un diagrama que muestra el flujo
de paquetes de una sesión ARP;
La figura 13 es un diagrama que vuestra sus
flujo de paquetes de una sesión de eco ICMP;
La figura 14 es un diagrama que muestra el flujo
de paquetes de una sesión de mensaje/error ICMP;
La figura 15 es un diagrama que muestra el
rastreo de ventana de número de secuencia realizado durante las
reglas de comprobación mediante el procesador de filtro
principal;
La figura 16 es un diagrama que muestra el
rastreo de ventana de número de secuencia de reconocimiento
realizado durante las reglas de comprobación mediante el procesador
de filtro principal;
La figura 17 es un diagrama que muestra la
estructura de la lista de enlace utilizada menos recientemente
utilizada para rastrear la antigüedad de la sesión;
La figura 18 que sin diagrama de flujo que
muestra el procedimiento de actualización de la lista enlazada LRU
bajo el reconocimiento de una sesión asociada con un paquete de
entrada;
La figura 19 es un diagrama de flujo que muestra
el procesamiento del módulo de administración de las sesiones de la
presente invención;
La figura 20 es un diagrama de flujo que muestra
el procesamiento realizado por el módulo de administración de las
sesiones de la presente invención para abrir una sesión;
La figura 21 es un diagrama de flujo que muestra
el procesamiento realizado mediante el módulo de administración de
las sesiones de la presente invención para cerrar una sesión;
La figura 22 es un diagrama que muestra los
indicadores de familia para una sesión;
La figura 23 es un diagrama que muestra una
relación de familia de ejemplo entre una pluralidad de sesiones;
y
La figura 24 su diagrama de bloques que muestra
un ejemplo de sistema de procesamiento informático en plataforma
adaptado para realizar el filtrado de paquetes dinámico con el
procedimiento de rastreo de sesiones de la presente invención.
\vskip1.000000\baselineskip
La siguiente notación se utiliza a lo largo de
este documento.
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
(Tabla pasa a página
siguiente)
La presente invención proporciona un filtro de
paquetes dinámico nuevo y útil que se puede implementar en
hardware, software o una combinación de ambos. La presente invención
se puede incorporar en un cortafuegos basado en hardware adecuado
para su utilización en dispositivos informáticos portátiles, tales
como teléfonos celulares y PDAs conectada sin cables que estén
adaptadas para conectarse a Internet.
La invención realiza un filtrado de paquetes
dinámico en los paquetes recibidos sobre una corriente de paquetes
de entrada. Preferiblemente, la invención está colocada entre una
WAN (es decir, Internet) y una LAN local. En este caso, el filtro
de paquetes dinámico es operativo para filtrar tanto paquetes de
entrada desde la WAN a la LAN y paquetes de salida desde la LAN a
la WAN. Véase que el filtrado dinámico es efectivo para comprobar
el comportamiento del protocolo dinámico más que las reglas
estáticas de un protocolo. La invención consigue esto mediante la
creación de sesiones para rastrear el estado de las comunicaciones
entre la fuente y el destino.
Nótese que la corriente de entrada puede
comprender cualquier tipo de datos de entrada según la aplicación
particular, tal como marcos, paquetes, bytes, PDUs, etc. Solamente
por motivos de ilustración, la corriente de datos de entrada se
considera como una secuencia de paquetes.
Debe indicarse que el filtro de paquetes
dinámico representado se presenta como un ejemplo solamente, y no
se pretende limitar el alcance de la invención. Un experto en la
técnica eléctrica puede construir otros filtros de paquetes
dinámicos, en hardware, software o una combinación de ambos para
realizar un filtrado dinámico de paquetes utilizando los principios
de la presente invención aquí descritos sin apartarse del alcance de
la invención.
El filtro dinámico de la presente invención es
operativo para mantener una tabla de conexión indicada como una
base de datos de sesiones para monitorizar el estado de una sesión
de comunicaciones. Se añade una nueva sesión a la base de datos de
la sesiones si pasa una regla de política de seguridad estática. Una
vez se ha creado una sesión, paquetes posteriores correspondientes
a esta sesión se inspeccionan según el estado de la sesión para el
protocolo particular asociado con el paquete. El paquete se permite
solamente si el paquete está conforme a las especificaciones del
protocolo particular.
El filtro dinámico de la presente invención
tiene una amplia aplicación en muchos tipos diferentes de sistemas.
Un diagrama de bloques que muestra varias aplicaciones de ejemplo
del filtro dinámico de paquetes de la presente invención en el
contexto de una WAN o Internet se muestra en la figura 1.
Típicamente, el filtro dinámico se construye como una parte de un
cortafuegos utilizado para evitar un acceso no autorizado a una red
protegida, tal como se muestra en cada uno de los tres ejemplos
aquí mostrados.
En el primer ejemplo, el filtro dinámico 16 es
un componente en un cortafuegos 14 que está implementado en alguna
forma el dispositivo informático personal 12 en comunicación con o
sin cables con una red 10, tal como una WAN o Internet. El
dispositivo informático personal puede comprender cualquier
dispositivo, tal como una asistente digital personal (PDA), por
ejemplo, una agenda Palm, 1 teléfono celular, un auricular sin
cables, etc. En este ejemplo, el filtro dinámico/cortafuegos
funciona para filtrar de manera bidireccional paquetes entre
Internet y el dispositivo.
En un segundo ejemplo, el filtro dinámico 22 es
un componente en un cortafuegos 20 que está implementado en un
adaptador de clavija de cable 18 en comunicaciones con o sin cables
con la WAN o Internet 10. El dispositivo 18 se asienta entre
Internet y un módem de banda ancha 24 que funciona para conectar una
LAN 26 a Internet. El filtro dinámico en el adaptador de la clavija
de cable funciona para filtrar paquetes enviados desde Internet a
la LAN, y viceversa. El módem de banda ancha está adaptado para
modular y demodular una señal de banda ancha tal como xDSL, por
ejemplo ADSL, HDSL, VDSL, etc., satélite, RF basado en tierra,
microondas, etc.
En un tercer ejemplo, el filtro dinámico 30 es
un componente en el cortafuegos 28 que está implementado en un
ordenador aislado 31, por ejemplo, un ordenador personal (PC), en
comunicación con o sin cables con la WAN o Internet. El ordenador
que contiene el cortafuegos está situado entre Internet y la LAN 32
que se ha de proteger. El filtro dinámico en el cortafuegos
funciona para filtrar paquetes enviados desde Internet a la LAN y
viceversa.
El filtro dinámico se describirá ahora en mayor
detalle. Un diagrama de bloques que muestra el filtro dinámico de
paquetes de la presente invención se muestra en mayor detalle en la
figura 2. El filtro dinámico, referenciado en general 40, comprende
una interfaz bus 48, memoria intermedia/registros 50, un módulo de
reconocimiento de sesión 52, un módulo de procesamiento del filtro
principal 54, un módulo de administración de la sesión 56, una
tabla de codificación 60, una tabla de vacío 62 y una base de datos
de las sesiones 64. El filtro dinámico se comunica con un
dispositivo servidor/CPU 42, un decodificador de encabezados 46, un
filtro estático 51 y una unidad de búsqueda de contenido 53 sobre
un bus 47 a través de la interfaz del bus.
Nótese que a lo largo de este documento, se
asume que el filtro dinámico está situado entre una WAN y una LAN y
que es operativa para filtrar paquetes en ambas direcciones. Los
paquetes de entrada se refiere a unos paquetes recibidos desde la
WAN hacia la LAN y los paquetes de salida se refiere una paquetes
recibidos desde la LAN hacia la WAN. Así, la corriente de paquetes
de entrada o de comprender paquetes de entrada y de salida.
\newpage
La corriente de paquetes de entrada 44 se recibe
desde la CPU y sus contenidos se envía al decodificador de
encabezados que funciona para de codificar (o analizar
sintácticamente) la porción del encabezado del paquete. El
decodificador de encabezados es operativo para extraer los campos de
interés que se utilizan mediante el filtro dinámico. Los datos
extraídos mediante el decodificador de encabezados se envían al
filtro dinámico a través del bus. Los datos incluyen un valor de
codificación (si se calcula mediante la CPU), datos de interfaz de
conexión de 104 bits que incluyen una fuente de 32 bits y una
dirección IP de destino, una fuente de 16 bits y un puerto de
destino y un protocolo de 8 bits, un valor de función dinámica que
indica el tipo de capa de 4 paquetes, por ejemplo, ICMP, ARP, TCP,
UDP, etc. para el protocolo TCP, también incluye un número de
secuencia de 32 bits, una respuesta de 32 bits, una longitud de
carrera de 11 bits y un tamaño de ventana de 16 bits. Nótese que
dependiendo de la implementación, el decodificador de encabezados se
puede construir como un módulo externo o puede ser integral con el
filtro dinámico.
Cada tipo de capa de 4 paquetes se representa
mediante un valor de función dinámica diferente. Este valor se
utiliza mediante el filtro dinámico para seleccionar la máquina de
hardware apropiada que se utiliza cuando se procesa el paquete de
recibido para rastrear el estado de la sesión y verificar su
legalidad. La longitud de la carga se calcula mediante el
decodificador de encabezados y se envía al filtro dinámico. Se
calcula restando del campo de la longitud total en el paquete IP,
la suma del encabezado IP y longitud en el encabezado TCP.
El procesador de filtro principal comprende la
interfaz de CPU 58 y funciona como el bloque de procesamiento
principal del filtro dinámico. Abre nuevas sesiones, procesa
sesiones existentes y rastrea el estado de una sesión mientras
verifica si es legal, es decir, si está permitida, e indica los
cambios según el protocolo particular. El módulo de reconocimiento
de la sesión funciona para recibir un interfaz de conexión y busca
en las bases de datos de las sesiones una sesión abierta que
coincida con el interfaz de conexión. El módulo de administración
de la sesión funciona para mantener una lista en la hada de
codificación y por lo menos una lista enlazada última recientemente
utilizada (LRU), con lo cual se añade en y se borran sesiones de las
listas. La base de datos de las sesiones funciona para almacenar el
interfaz de conexión y otros datos relacionados con las sesiones,
incluyendo el estado de la sesión y el estado actual, para su
utilización mediante los diferentes módulos de procesamiento del
filtro dinámico. Las tablas de codificación y vacías se utilizan
para acelerar el reconocimiento de las sesiones. Estos componentes
se describen en mayor detalle a continuación.
\vskip1.000000\baselineskip
El procesamiento del filtro principal se
describirá ahora en mayor detalle. Un diagrama de flujo que muestra
el procedimiento de procesamiento del filtro principal de la
presente invención se muestra en la figura 3. El filtro dinámico
está construido para procesar datos en paquetes de una manera en
tres etapas, en el que los datos de la sesión asociada con el
paquete se leen desde la base de datos de las sesiones en una etapa,
los datos se procesan a continuación en una segunda etapa y los
resultados de procesamiento se vuelven a escribir en la base de
datos de las sesiones en una tercera etapa. Durante la etapa de
procesamiento, el estado de la sesión se rastrea contra reglas
predefinidas y se toma una decisión si se permite o deniega el
paquete.
En primer lugar, se realiza el reconocimiento de
la sesión (etapa 70), con lo cual la base de datos de las sesiones
se busca para un interfaz de conexión que coincide con el del
paquete recibido. Los resultados del reconocimiento se devuelven al
procesador del filtro principal (etapa 72). Si no se encuentra
ninguna coincidencia (etapa 74), se realiza una comprobación de
reglas estáticas utilizando un filtro estático (etapa 76). El filtro
estático, que puede o no ser parte del filtro dinámico, funciona
para realizar una comprobación estática del paquete recibido contra
una serie de reglas estáticas que corresponden a diferentes
protocolos. La comprobación de paquetes con reglas estáticas es
bien conocida en las técnicas de comunicación, y por lo tanto, no se
elaboran aquí.
Si el resultado de la comprobación de la reglas
estáticas es la denegación del paquete, es decir, el paquete
infringe uno o más reglas de protocolo (etapa 78), el paquete es
rechazado (etapa 96). Si el resultado de la comprobación de las
reglas estáticas es permitir el paquete, se comprueba si el paquete
es un abridor de sesión (etapa 80). Un paquete es un abridor de
sesión si es un paquete que puede abrir de manera lógica una
sesión. Por ejemplo, un paquete de respuesta no puede abrir una
sesión, un paquete TCP ha de ser un paquete SYN para abrir una
sesión, etc. Si el paquete no es un abridor que sesión, se rechaza
(etapa 96).
Si el paquete es un abridor de sesión válido, se
crea una nueva sesión (etapa 82). Los datos y los parámetros
relacionados con la sesión se almacenan en la base de datos de las
sesiones (etapa 84). A continuación se calcula y almacena un
puntero de codificación de la nueva sesión en la tabla de
codificación (etapa 86). El puntero de codificación se utiliza para
encontrar rápidamente la sesión durante la etapa de
reconocimiento.
Si se encuentra una sesión que tiene un interfaz
de conexión que coincide el del paquete recibido (etapa 74), los
datos de la sesión se leen desde la base de datos de las sesiones
(etapa 88) y a continuación se procesan los datos de la sesión
(etapa 90). Las reglas dinámicas asociadas con el protocolo de
paquetes particular se comprueban y se toma una determinación de si
permitir o denegar el paquete. El estado de la sesión se rastrea y
comprueba contra el comportamiento permitido para el protocolo
particular. Según la invención, la comprobación de las reglas
dinámicas se realiza en hardware más que en software.
Alternativamente, las reglas dinámicas también se pueden comprobar
a través de medios de software.
Si el paquete se deniega (etapa 92), el paquete
se rechaza (etapa 96). Si se permite, los datos de la sesión
actualizados con el estado de rastreo de la sesión actualizada se
vuelven a escribir en la base de datos de las sesiones (etapa
94).
Después de un abridor de sesión, un rechazo de
un paquete o un permiso de un paquete, se escribe en uno o más
registros de estado y se realiza una interrupción señalando que se
ha finalizado el procesamiento del filtro principal en la CPU u
otro dispositivo servidor (etapa 98).
Un diagrama de transición de estado que muestra
el procedimiento de procesador del filtro principal de la presente
invención cuando se encuentra una coincidencia se muestra en la
figura 4. El diagrama de transición de estado, indicada general
mediante la referencia 290, comprende una pluralidad de transiciones
y estados que implementan la lógica de procesamiento del filtrado
principal cuando se encuentra una coincidencia. El proceso empieza
en el estado de coincidencia 292 y se mueve para buscar punteros y
estado 294. En este estado, el puntero y los datos de estado
asociados con la sesión se buscan.
Si la sesión es una sesión TCP, los datos
relacionados TCP se buscan en la base de datos de las sesiones
(estados 297). El proceso se mueve a continuación al estado de
procesamiento TCP 298. El procesamiento realizado comprende el
rastreo del estado de la sesión TCP y la comprobación de si el
comportamiento de la sesión es legal, tal como se describe en mayor
detalle posteriormente. El paquete se puede rechazar (estado 302) o
permitir, en donde el procesamiento continúa con la espera a que se
complete la comprobación del filtrado estático (estado 304). El
filtrado estático se realiza fuera del filtro dinámico utilizando
cualquier técnica del filtrado estático bien conocida. La
comprobación del filtro estático puede rechazar el paquete (estado
302) o puede permitir el paquete, con lo cual el proceso espera que
la máquina de contenido complete la búsqueda de la carga de las
cadenas válidas y espera que se complete la verificación de la suma
de comprobación (estado 306). Si se pasa la verificación de los
suma de comprobación y se encuentra una cadena válida, los
parámetros TCP se actualizan y se almacenan en la base de datos de
las sesiones (estado 310). Los punteros de la sesión se actualizan
a continuación (estado 312) y se permite el paquete (estado 314). Si
la verificación de la suma de comprobación vuelve a un error de la
suma de comprobación o la máquina de contenido encuentra una cadena
inválida, el paquete se rechaza (estado 302). Las cadenas inválidas
comprenden cadenas encontradas mediante la máquina de contenido que
no están permitidas por una o más razones, por ejemplo, indica la
presencia de un virus, comandos no permitidos tales como el comando
FTP DELETE, etc. Las cadenas válidas comprenden cadenas permitidas
o cadenas no coincidentes. Una máquina de contenido adecuado para su
utilización con la presente invención se describe en mayor detalle
en el documento US 6738779, presentada el 21 de febrero de 2001,
titulada "aparato y procedimiento de búsqueda de cadenas
paralelas múltiples", asignada de manera similar e incorporada
aquí por referencia en su totalidad.
Un procesamiento similar se realiza para
protocolos diferentes de TCP. Si la sesión es una sesión no TCP (por
ejemplo, UDP, ARP, ICMP, etc.), se introduce el otro estado de
procesamiento de protocolo 296. El procesamiento realizado
comprende el seguimiento del estado de conexión y la comprobación de
si el comportamiento de la sesión es legal para el protocolo
particular, tal como se describe en mayor detalle a continuación. El
paquete se puede rechazar (estado 302) o permitir, en donde el
procesamiento que continúa con la espera a que se complete la
comprobación de filtrado estático (estado 300). La comprobación de
filtro estático puede rechazar el paquete (estado 302) o puede
permitir el paquete, con lo cual el proceso espera a que la máquina
de contenido complete la búsqueda de la carga y espera que se
complete la verificación de la suma de comprobación (estado 306).
Si la verificación de la suma de comprobación pasa y se encuentra
una cadena válida, los parámetros del protocolo particular se
actualizan y se almacenan en la base de datos de las sesiones
(estado 308). Los punteros de sesión se actualizan a continuación
(estado 312) y se permite el paquete (estado 314). Si la
verificación de la suma de comprobación devuelve un error de suma
de comprobación o la máquina de contenido encuentra una cadena
inválida, el paquete se rechaza (estado 302).
Un diagrama de transición de estado que muestra
el procedimiento de procesador de filtro principal de la presente
invención cuando no se encuentra ninguna coincidencia se muestra en
la figura 5. El diagrama de transición de estado, referenciado en
general con 320, comprende una pluralidad de transiciones y estados
que implementan la lógica del procesamiento del filtrado principal
cuando no se encuentra ninguna coincidencia. El proceso empieza en
el estado de que no se ha encontrado ninguna coincidencia 322 y se
mueve a la espera del estado de determinación del filtro
está-
tico 326 si la sesión es un inicio de sesión. Si la sesión no es un inicio de sesión, el paquete se rechaza (estado 324).
tico 326 si la sesión es un inicio de sesión. Si la sesión no es un inicio de sesión, el paquete se rechaza (estado 324).
Si el filtro estático permite el paquete, el
proceso espera que la máquina de contenido y que el verificador de
la suma de comprobación complete la comprobación (estado 328), de
otra manera el paquete se rechaza (estado 324). Si la máquina de
contenido encuentra una cadena inválida por la verificación de la
suma de comprobación revela un error de la suma de comprobación, el
paquete se rechaza (estado 324). Si la verificación de la suma de
comprobación y la búsqueda de la máquina de contenido se completa
sin errores, se abre una sesión y los datos del interfaz de
conexión se almacenan en la base de datos de las sesiones (estado
330). El estado, el sello de la hora y el estado de la conexión
también se almacenan en la base de datos de las sesiones (estado
332). Si la sesión es una sesión no TCP, el paquete se permite
(estado 336). En el caso de una sesión TCP, se abre una sesión TCP
(estado 334) y el paquete se permite a continuación (estado
336).
Según la invención, el filtro dinámico es
adecuado para su implementación en hardware adaptado para realizar
el procesamiento de seguimiento de la sesión en paralelo para todos
los protocolos soportados. Durante la búsqueda de los datos de la
sesión en el caso de una coincidencia el interfaz de conexión, los
datos previamente buscados se procesan en paralelo. Una vez se puso
en los datos, toda la comprobación de la sesión para los diferentes
protocolos se realiza en un único ciclo de reloj. Así, la
implementación del hardware de la invención acelera mucho el
proceso de filtrado de los paquetes.
El proceso de reconocimiento de la sesión se
describirá ahora en mayor detalle. Un diagrama que muestra la
técnica de codificación de determinación de la sesión asociada con
un paquete de entradas se muestra en la figura 6. Cada sesión
corresponde a un único interfaz de conexión. Una sesión se
identifica comparando el interfaz de conexión de paquete recibido
con los paquetes asociados con sesiones previamente abiertas
almacenadas en la base de datos desde las sesiones. Para acelerar
el reconocimiento de una sesión, se utiliza una tabla de
codificación que almacena punteros de codificación en registros de
sesiones en la base de datos de las sesiones, y permite una
búsqueda rápida de la sesión correspondiente a un interfaz de
conexión recibido.
Nuevas sesiones se almacenan en la base de datos
de las sesiones y se calcula una codificación en el interfaz de
conexión, mediante el filtro dinámico o la CPU. Un puntero de
codificación se almacena en una posición en la tabla de
codificación 60 (figura 2) apuntado mediante el resultado de la
codificación. Si se almacena más de una sesión en esa posición, la
sesión se añade a una lista enlazada. Nótese que inicialmente, cada
entrada en la tabla de codificación se inicia en NULL.
Al recibir un paquete, el interfaz de conexión
100 se introduce en el calculador de codificación 102 que funciona
para generar un resultado de codificación 104. El resultado de la
codificación se utiliza como el índice de la tabla de codificación
106, que comprende una pluralidad de entradas 108, cada una
conteniendo un puntero de codificación. El puntero de codificación
apunta a una lista enlazada de sesiones 110 en la base de datos de
las sesiones. Cada registro de la sesión en la base de datos de las
sesiones comprende punteros previos 114 y siguientes 112,
implementando así una lista doblemente enlazada. Si se produce una
cierto en el interfaz de conexión, cada sesión en la lista enlazada
se ha de comprobar para una coincidencia con el interfaz de
conexión del paquete recibido.
Preferiblemente, la función de codificación se
elige para producir una propagación lo más uniforme posible de
resultados de codificación a través de la tabla de codificación. La
función de codificación puede ser cualquier función adecuada, tal
como una función XOR o CRC. En una realización, el rendimiento se
puede mejorar con una función de codificación XOR simple utilizando
un vector aleatorio en el cálculo del resultado de la codificación
según la siguiente ecuación.
En el que el operador (x) se define como
sigue
\vskip1.000000\baselineskip
y
OUT_{i} representa el i-ésimo byte de
la matriz de salida;
SOCK_{i} representa el k-ésimo byte de
la matriz de entrada;
RV_{ik} representa el byte i, j
de la matriz de vector aleatorio;
(+) indica la función XOR.
\vskip1.000000\baselineskip
Los datos del interfaz de conexión de entrada se
generan así utilizando el vector aleatorio y los datos del interfaz
de conexión de entrada.
El diagrama de flujo que ilustra el
procedimiento de codificación del proceso de reconocimiento de
sesión de la presente invención se muestra en la figura 7. La
primera etapa es calcular un valor de codificación desde el
interfaz de conexión en el paquete recibido, tal como de la manera
descrita anteriormente (etapa 120). El resultado de la codificación
del byte R se utiliza como el índice en la tabla de
codificación para recuperar el puntero correspondiente al interfaz
de conexión (etapa 122). Si el puntero de codificación apunta a
NULL (etapa 124), entonces no hay ninguna sesión y se devuelve
"sesión encontrada" al proceso de filtro principal (etapa
126).
Si el puntero de codificación no es NULL, el
interfaz de conexión de la sesión se lee desde la base de datos de
las sesiones (etapa 128) y se compara con el interfaz de conexión en
el paquete recibido (etapa 130). Si los interfaces de conexión
coinciden (etapa 132), se encuentra una coincidencia de sesión
(etapa 134) y se informa al proceso de filtro principal. Si los
interfaces de conexión no coinciden (etapa 132), se lee el
siguiente puntero de codificación desde la lista enlazada (etapa
136) y el procedimiento se repite desde la etapa 124 hasta que el
último puntero de codificación apunta a NULL o se encuentra una
coincidencia.
Nótese que se realiza siempre una comparación
completa en el interfaz de conexión, incluso en el caso de que
solamente esté almacenada una sesión en la lista enlazada. Nótese
también que el alcance de la invención no está limitado por qué
entidad actualiza y mantiene la lista enlazada, es decir, el filtro
dinámico o la CPU. La profundidad de la tabla de codificación puede
ser de cualquier valor deseado. Típicamente, sin embargo, la
profundidad se ajusta según el número de sesiones que sean de seguir
de manera simultánea. Preferiblemente, el número de entradas de
codificación es dos o cuatro veces el número de sesiones, ya que no
es deseable tener muchos duplicados debido a la naturaleza de
consumo de tiempo de la comparación del interfaz de conexión
completo.
Según la presente invención, el módulo de
reconocimiento de la sesión comprende la capacidad de buscar
sesiones utilizando datos del interfaz de conexión parciales. Los
datos de interfaz de conexión parciales, llamados vacíos,
comprenden cualquier interfaz de conexión en el que falta en uno o
más objetos de información, es decir, cualquier combinación de uno
o más de los cinco elementos que forman un interfaz de conexión
(interfaz de conexión y destino de la dirección IP, fuente y
destino del puerto y protocolo). Un vacío se refiere a una abertura
hecha en el cortafuegos/filtro dinámico para permitir que los
paquetes posteriores pasen a través aún que no pasen la base de la
regla del filtro estático. Un paquete asociado con un vacío puede
tener cero o más parámetros faltantes en su interfaz de conexión
asociado. Los interfaces de conexión con uno o más parámetros
faltantes se colocan en una tabla de vacíos y se realiza una
búsqueda de vacíos.
El procedimiento de búsqueda de los vacíos es un
procedimiento de búsqueda secundario organizado mediante el módulo
de reconocimiento de la sesión en respuesta al no encontrar una
coincidencia de sesión utilizando el procedimiento de coincidencia
de interfaz de conexión completa descrita en conexión con la figura
7. Los vacíos no son deseables y una vez establecidos, la CPU y el
filtro dinámico intentarán "llenarlos" al recibir el primer
paquete que produce una coincidencia de interfaz de conexión
parcial.
Una tabla de vacíos 62 (figura 2) se utiliza
para almacenar la información de los vacíos típicamente
proporcionada por el software en capas de procesamiento 5 y
mayores. En el caso donde un interfaz de conexión comprende 5
objetos, la tabla de vacíos comprende 32 registros (de 0 a 31). Por
ejemplo, al procesar paquetes FTP, paquetes relacionados con
telefonía IP, etc., uno o más parámetros del interfaz de conexión no
se conocen inicialmente. En estos casos, la CPU abre un vacío en la
tabla de vacíos en una posición correspondiente a los parámetros
faltantes.
Nótese que la entrada 31 (es decir, todas) en la
tabla de vacíos no se utiliza, ya que representa que no hay ningún
parámetro faltante. Cada entrada en la tabla de vacíos tiene los
siguientes campos listados en la tabla 1.
En el ejemplo aquí previsto, el tipo de vacío se
define como cinco bits correspondientes a los cinco posibles
parámetros faltantes: bit 4 - protocolo; bit 3 - puerto remoto; bit
2 - puerto local; bit 1 - IP remota; bit 0 - IP local. Así, el tipo
de vacío "11011" corresponde al parámetro de puerto local
faltante.
El procedimiento de codificación descrita
anteriormente requiere una información del interfaz de conexión
completo para generar el valor de codificación. Si el paquete
recibido es uno que ha de "llenar" un vacío, el reconocimiento
de la sesión utilizando el procedimiento de CODIFICACIÓN (figura 7)
producirá una coincidencia no encontrada y el vacío no se puede
llenar. La sesión "de vacío" no se podría encontrar porque la
CODIFICACIÓN se calcula sobre el interfaz de conexión completo del
paquete recibido, mientras que la entrada en la tabla de
CODIFICACIÓN que apunta a la sesión de vacíos se calculo sobre los
interfaces de conexión parciales conocidos previamente.
La tabla de vacíos soluciona este problema
almacenando la información completa que se ha escrito mediante la
CPU y leído mediante el filtro dinámico. Un vacío es una sesión
abierta mediante un proceso externo que realiza el filtrado
dinámico en la capa de aplicación. Nótese que la CPU está adaptada
para calcular inicialmente el valor de codificación parcial y
almacenarlo en la tabla de codificación, ya que la CPU es la entidad
que detecta primero la existencia de un vacío. El primer paquete
cuyo interfaz de conexión parcial coincide con el de la base de
datos, cerrará el vacío, ya que los parámetros faltantes se pueden
determinar a partir del paquete recibido. La tabla de vacíos
comprende 32 entradas, cada una correspondiendo a una única
combinación de uno o más parámetros faltantes, en la que cada
"bit" representa uno de los cinco parámetros forman el interfaz
de conexión.
Cada entrada almacena un campo que indica el
número de vacíos de ese tipo particular y los punteros siguiente y
previo respecto a las otras entradas. Así, el siguiente y el puntero
previo forman una lista enlazada de vacíos. Un registro de
first_valid_entry almacena un puntero en la primera entrada en la
lista. Un NULL en este registro indica que no se ha almacenado
ningún vacío en la base de datos de las sesiones. La última entrada
almacena un puntero NULL para indicar el final de la lista.
Un diagrama de flujo que muestra el
procedimiento de búsqueda de vacíos del proceso de reconocimiento de
la sesión de la presente invención se muestra en la figura 8. La
primera etapa es leer la primera entrada de vacío que utiliza los
contenidos de la first_valid_enter (etapa 140). Si el puntero de
vacío en el registro apunta a NULL (etapa 142), no se encuentra
ningún vacío y esto se informa (etapa 144) y vuelve el
procedimiento.
Si el puntero de vacío en el registro no apunta
a NULL (etapa 142), se calcula un valor de codificación según el
código de vacío (etapa 146). El código de vacío es la representación
de cinco bits de los parámetros faltantes indicados mediante la
entrada en la tabla de vacíos apuntada mediante el puntero de vacío.
Los parámetros faltantes no se utilizan en el cálculo de la
codificación o se remplazan mediante un cierto valor, es decir,
ceros o unos.
El resultado de la codificación generada se
utiliza a continuación tal como se ha descrito anteriormente para
recuperar un puntero de codificación desde la tabla de codificación
60 (figura 2) utilizando los resultados de la codificación como
índice (etapa 146). Si el puntero de codificación apunta a NULL
(etapa 150), se lee el siguiente puntero de vacío desde la lista
enlazada de vacíos (etapa 164) y el procedimiento continúa con la
etapa 142. Si el puntero de vacío no apunta a NULL (etapa 150), la
información parcial del interfaz de conexión se lee desde la
entrada en la base de datos de las sesiones correspondiente al
puntero de codificación (etapa 152).
La lectura del interfaz de conexión parcial
desde la entrada en la base de datos de las sesiones se compara con
el interfaz de conexión parcial recibido en el paquete (etapa 154).
Si los interfaces de conexión parciales coinciden (etapa 156), se
declara que se ha encontrado una coincidencia de sesión (etapa 158).
Si los interfaces de conexión parciales no coinciden, se lee el
siguiente puntero de codificación de la lista enlazada (etapa 160),
y si el puntero de codificación no apunta a NULL (etapa 162), el
procedimiento continúa con la etapa 152 y el interfaz de conexión
parcial en la siguiente sesión se comprueba. Por el contrario, si el
siguiente puntero de codificación apunta a NULL (etapa 162), se lee
el siguiente puntero de vacío de la lista enlazada de vacíos (etapa
164) y el procedimiento continúa con la etapa 142.
Una vez se ha reconocido una sesión utilizando
el procedimiento de búsqueda de vacíos, se procede con el
procesamiento del paquete y los datos de la sesión como en el caso
de una búsqueda de interfaz de conexión completa. Así, según la
presente invención, se puede producir el reconocimiento de la sesión
utilizando información del interfaz de conexión completa o parcial.
Como la información se extrae de paquetes recibidos posteriormente,
se llenan cualesquiera vacíos abiertos.
La base de datos de las sesiones 64 (figura 2)
se describirá ahora en mayor detalle. Tal como se ha descrito
anteriormente, la base de datos de las sesiones funcionan para
almacenar datos relacionados con las sesiones para una pluralidad
de sesiones. El tamaño de la base de datos de las sesiones puede
variar dependiendo de la implementación y de los requerimientos del
sistema. Los campos que forman cada registro de la base de datos se
indican a continuación en la tabla 2.
El primer grupo de campos 1 a 5 representa el
interfaz de conexión utilizado para identificar la sesión. Los
campos 4 y 5 están adaptados para almacenar diferentes datos
dependiendo del protocolo. Por ejemplo, datos del puerto local y
remoto se almacenan para paquetes TCP y UDP, el número de secuencia
ICMP, el tipo y código de los datos se almacenan para paquetes
relacionados con la sesión de eco ICMP.
Los campos 6 y 7 almacenan el siguiente y el
puntero de codificación previo en la lista enlazada de codificación
descrita anteriormente. La lista enlazada de codificación se utiliza
durante el reconocimiento de la sesión de un paquete. Los campos 8
y 9 almacenan el siguiente y el puntero previo LRU en una lista
enlazada LRU utilizada para ordenar las sesiones en términos de
antigüedad. La operación de la lista enlazada LRU se describe el
mayor detalle a continuación. El campo 10 almacena el número de
hijos. Este campo se utiliza en el caso donde la aplicación
asociada con esta sesión requiere la apertura de sesiones
adicionales. Cada sesión (es decir, la sesión hijo) abierta
incrementa el número de hijos.
El filtro dinámico también comprende un registro
del estado de la sesión para dirigir la información relacionada con
el estado a y desde la CPU. El estado de la sesión comprende una
pluralidad de bits, tal como se muestra a continuación en la tabla
3.
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
(Tabla pasa a página
siguiente)
Los campos 12 a 22 se utilizan para propósitos
de traducción de la dirección de la red. Los campos 23 a 28 y 31 a
32 son todos campos relacionados TCP y se utilizan en paquetes TCP
de procesamiento y seguimiento. El campo 29 almacena el estado de
conexión para todos los tipos de protocolos. El parámetro del estado
de conexión es un valor que representa el estado actual de la
conexión. Se utilizan diferentes valores para diferentes
protocolos. Como ejemplo ilustrativo, los estados de conexión para
varios protocolos se indican a continuación en la tabla 4.
\vskip1.000000\baselineskip
\vskip1.000000\baselineskip
El campo 30 almacena el sello de la hora
utilizado para datar una sesión. El tiempo se representa en 16 bits
y se almacena como una diferencia o delta de tiempo según el
protocolo particular. Periódicamente, la CPU instruye al módulo de
administración de la sesión para realizar el fechado de las
sesiones, con lo cual las sesiones que están fuera de fecha se
cierran.
Los campos 33 a 36 se utilizan para almacenar
punteros de sesiones relacionadas con esta sesión. Información de
la familia diversa se almacenan en la base de datos de las sesiones
incluyendo información de hermanos, hijos y parientes.
\vskip1.000000\baselineskip
Tal como se ha descrito anteriormente, el
procesamiento del filtro principal es la entidad que realiza la
comprobación de las reglas una vez se ha reconocido la sesión y los
datos de la sesión asociados con el paquete recibido se leen desde
la base de datos de las sesiones. Según una implementación de
hardware de la invención, se proporciona un circuito separado para
cada protocolo que se ha de comprobar en una base dinámica, siendo
el TCP el más complejo. Una implementación del software utiliza
códigos de aplicación para realizar la comprobación dinámica de las
reglas.
Como ejemplo, el procesamiento requerido que se
ha de realizar mediante circuitos de hardware para el protocolo TCP
se describe en forma de diagramas de transición de estado para el
proceso de apertura y cierre de una sesión TCP. Nótese que el
experto en la materia eléctrica puede utilizar los diagramas de
transición de estado aquí descritos para construir circuitos que
implementen la misma funcionalidad mostrada en los diagramas de
transición de estado.
Un diagrama que muestra el flujo de paquetes de
una sesión TCP se muestra en la figura 9. El flujo aquí descrito es
bien conocido en la técnica de la comunicación y se muestra como una
ayuda en la comprensión de los siguientes diagramas de transición
de estado para el protocolo de intercambio de 3 vías y de 4 vías.
Las sesiones TCP se abren entre dos servidores A y B mediante la
solicitud de números de secuencia sincronizados a través de
paquetes que comprenden la señal SYN. Una vez abiertos, los datos
fluyen entre los dos servidores tal como se representa mediante los
paquetes ACK. Una sesión TCP se cierra a ambos lados enviando
paquetes que comprenden la señal FIN que indica que el emisor no
tiene más datos para enviar. El acuse de recibo de los paquetes FIN
cierra la sesión.
Nótese que durante los protocolos de
intercambio, los números de acuse de recibo extraídos del paquete
recibido se verifican contra los números de acuse de recibo
esperados almacenados en la base de datos de las sesiones. Durante
el seguimiento de la sesión abierta, la secuencia y el número de
acuse de recibo se verifican para que estén en el interior de la
ventana, tal como se describe posteriormente. Si un paquete RST
llega (es decir, un paquete con la marca RESET afirmada en el
encabezado TCP), la sesión se cierra.
Un diagrama de transición de estado que muestra
el protocolo de intercambio de 3 vías que se produce al abrir una
sesión TCP se muestra en la figura 10. Los posibles paquetes de
entrada incluyen paquetes RX/TX SYN, RX/TX SYN ACK o RX/TX ACK. El
diagrama de transición de estado, indicado en general mediante la
referencia 170, comprende una pluralidad de estados válidos (es
decir, legales) y transiciones asociadas. Nótese que TX indica la
dirección desde la LAN a la WAN y RX indica la dirección desde la
WAN a la LAN.
Al detectar la apertura de una sesión TCP, se
introduce el estado NULL 172. En este estado, se abre una nueva
sesión en la base de datos de las sesiones y se generan los
siguientes campos y se almacenan en el registro de la sesión: los
números de secuencia recibidos, el sello de la hora, el estado de
conexión que indica el estado NULL, el tamaño máximo de la ventana,
el número de secuencia máximo y el número de acuse de recibo
esperado. El siguiente estado depende de en qué lado se ha recibido
el paquete, es decir, LAN o WAN. Si se recibe un paquete RX SYN, el
siguiente estado comprende el estado de conexión TCP solicitado WAN
176. En caso contrario, se introduce el estado de conexión TCP
solicitado LAN 184. En este estado, tal como se realiza en todos
los otros estados también, los datos correspondientes a la sesión
reconocida tal como se derivan del paquete recibido se leen desde
la base de datos de las sesiones. Uno o más campos se comprueban
para su legalidad, uno o más campos se actualizan y los datos de la
sesión se escriben otra vez en la base de datos de las
sesiones.
En el estado 176, la comprobación principal
realizada incluye comprobar si el número de acuse de recibo está
correlacionado con el número de acuse de recibo esperado. El estado
de conexión, el número de secuencia inicial LAN, el número de
secuencia máxima LAN, el tamaño de la ventana LAN y el acuse de
recibo LAN esperado para la última porción del protocolo de
intercambio se actualizan. La recepción del RX SYN y TX SYN son
legales y no provocan un cambio de estado.
La recepción de un TX SYN ACK mueve la sesión al
estado de conexión TCP aceptado LAN 178, mientras que la recepción
de un RX SYN ACK mueve la sesión al estado de conexión TCP aceptado
WAN 186. Los RX SYN, TX SYN, RX SYN ACK y TX SYN son legales y no
provocan un cambio en el estado. En estos dos estados, se realiza
una comprobación similar de los parámetros de la sesión. Una vez se
ha completado la comprobación y la actualización, los parámetros
actualizados se vuelven a escribir en la base de datos de las
sesiones.
La recepción de un RX ACK mientras está en el
estado 178 o un TX ACK mientras está en el estado 186 mueve la
sesión al estado de conexión TCP abierta 180. La recepción de un RX
SYN ACK, TX SYN, RX ACK o TX ACK son legales y no provocan un
cambio en el estado. Esto representa el estado de sesión TCP
abierta, con lo cual cada paquete TCP recibir posteriormente para
esta sesión se comprueba para su legalidad. Por ejemplo, se realiza
el seguimiento del número de secuencia y el acuse de recibo. También
se actualizan los campos del número de la secuencia máxima para la
LAN o WAN, dependiendo de la dirección del paquete.
Así, cada etapa del protocolo de intercambio de
3 vías para la apertura de una sesión TCP se sigue de manera
dinámica y se rechazan los paquetes que intentan transiciones
ilegales. Así, solamente se permiten paquetes que están de acuerdo
de una manera adecuada con el protocolo TCP.
Un diagrama de transición de estado que muestra
el protocolo de intercambio de 4 vías que se produce a cerrar una
sesión TCP se muestra en las figuras 11A y 11B. Las posibles
entradas en estos diagrama, indicadas en general con la referencia
190, incluyen RX/TX ACK, RX/TX FIN ACK, RX/TX FIN ACK (FIN) o RX/TX
ACK (FIN). Nótese que TX/RX ACK representa los paquetes regulares
de acuse de recibo mientras que ACK (FIN) representa un acuse de
recibo del paquete FIN.
El estado inicial en este diagrama es el estado
de conexión abierta 192. La recepción de paquetes RX ACK o TX ACK
no provocan cambios en el estado. La recepción de un TX FIN ACK
provoca que la sesión se mueva al estado FIN enviado LAN 194,
mientras que la recepción de un RX FIN ACK provoca que la sesión se
mueva al estado FIN enviado WAN 204. La recepción de un RX FIN ACK
mientras está en el estado 194 o un TX FIN ACK mientras está en el
estado 204 provoca que la sesión se mueva al estado FIN enviado
WAN/FIN enviado LAN 202. La recepción de paquetes RX/TX FIN o RX/TX
ACK no provoca un cambio de estado.
\newpage
La recepción de un paquete RX ACK (FIN) mientras
está en el estado 194 provoca que la sesión se mueva al estado WAN
ACKed LAN FIN 196. La recepción de paquetes RX/TX ACK, RX ACK (FIN)
o TX FIN ACK no provoca un cambio de estado. La recepción de un
paquete TX ACK (FIN) mientras está en el estado 204 provoca que la
sesión se mueva al estado LAN ACKed LAN FIN 206. La recepción de
paquetes RX/TX ACK, TX ACK (FIN) o RX FIN ACK no provoca un cambio
de estado.
La recepción de paquetes RX FIN ACK o RX FIN ACK
(FIN) mientras está en el estado 196 provoca que la sesión se mueva
al estado WAN ACKed LAN FIN/WAN enviado FIN 198. Los paquetes RX/TX
ACK, RX ACK (FIN), RX FIN ACK (FIN) y RX/TX FIN no causan un cambio
de estado. La recepción de paquetes TX FIN ACK o TX FIN ACK (FIN)
mientras está en el estado 206 provoca que la sesión se mueva al
estado WAN ACKed LAN FIN/WAN enviado FIN 210. Los paquetes RX/TX
ACK, TX ACK (FIN) y RX/TX FIN no provocan un cambio de estado.
La recepción de un paquete RX FIN ACK (FIN)
mientras está en el estado 194 provoca que la sesión se mueva
directamente al estado WAN ACKed LAN FIN/WAN enviado FIN 198. La
recepción de un paquete TX FIN ACK (FIN) mientras está en el estado
204 provoca que la sesión se mueva directamente al estado LAN ACKed
WAN FIN/LAN enviado FIN 210.
La recepción de paquetes TX ACK (FIN) o TX FIN
ACK (FIN) mientras se está en el estado 198 con la recepción de
paquetes RX ACK (FIN) o RX FIN ACK (FIN) mientras se está en el
estado 210 provocan que la sesión se mueva al estado Cerrar TCP
mediante FIN 200. Los paquetes RX/TX FIN, RX/TX ACK, TX FIN y RX/TX
ACK (FIN) no provocan un cambio de estado.
Así, cada etapa del protocolo de intercambio de
4 vías para cerrar una sesión TCP se sigue dinámicamente y los
paquetes que intentan transiciones ilegales se rechazan. Así,
solamente los paquetes que están conformes de manera adecuada con
el protocolo TCP son permitidos.
La invención también comprende también el
seguimiento de sesiones para otros protocolos. Un diagrama que
muestra el flujo de paquetes de una sesión ARP se muestra en la
figura 12. Asumiendo dos servidores A y B, el seguimiento de la
sesión ARP comprende abrir una sesión al recibir un paquete
solicitado ARP. Se permiten paquetes posteriores ARP de
solicitud/respuesta con el mismo interfaz de conexión (incluyendo
retransmisiones). Preferiblemente, se especifica una corta
variación de tiempo después de una respuesta ARP, ya que una sesión
ARP abierta no sé de mantener abierta durante un período de tiempo
extendido. Una respuesta ARP cierra la sesión.
Un diagrama que muestra el flujo de paquetes de
una sesión de eco ICMP se muestra en la figura 13. Asumiendo dos
servidores A y B, la solicitud de eco ICMP abre una sesión de eco
ICMP. Una vez está abierta la sesión, solamente se permite una
respuesta de eco ICMP con el mismo interfaz de conexión. No se
permite ninguna retransmisión porque la retransmisión de eco
utiliza diferentes números de secuencia ID, es decir, diferentes
interfaces de conexión. Una respuesta de eco ICMP cierra la
sesión.
Un diagrama que muestra el flujo de paquetes de
una sesión ICMP de mensaje/error se muestra en la figura 14. El
paquete ICMP de mensaje/error comprende un campo de encabezado IP,
un encabezado ICMP, un encabezado IP y 64 bits de encabezado TCP.
Un mensaje/error ICMP encapsula el encabezado IP del paquete
original además de los 64 bits del encabezado TCP. Se ha de
permitir un paquete de mensaje/error ICMP por la base de datos de
reglas de política de seguridad (es decir, el filtro estático
externo), de otra manera, se rechazará automáticamente mediante el
procesamiento de filtro principal. El filtro dinámico procesa
solamente el paquete parcial encapsulado (es decir, la sesión se
reconoce según los interfaces de conexión encapsulados). Si es
permitido por el filtro estático y la sesión se encontró durante el
reconocimiento de la sesión entonces (1) se permite un paquete de
mensaje ICMP y solamente se modifica el campo de sello del tiempo de
la sesión, (2) se permite un paquete de error ICMP y el estado de
la conexión se cambia a "cerrado mediante LAN/WAN ICMP ERROR".
Los paquetes posteriores que pertenecen a esta sesión se rechazarán
debido a este error. La configuración externa (tal como través de
la CPU) determina qué tipo de ICMP (TIPO/CÓDIGO ICMP) se considera
que es un mensaje y qué se considera que es un error. Un paquete
ICMP con problemas de seguridad se ha de rechazar por adelantado
según la base de datos de las reglas de política de seguridad.
Según la invención, el procesamiento del filtro
principal está adaptado para seguir los números de secuencia de la
sesión TCP/IP. Un diagrama que muestra el seguimiento de la ventana
del número de secuencia durante la comprobación de las reglas
mediante el procesador de filtro principal se muestra en la figura
15. El seguimiento del número de secuencia se realiza mediante el
procesamiento del filtro principal, mientras está en el estado de
conexión TCP abierta 180 utilizando el campo del tamaño de la
memoria intermedia en el encabezado TCP. Asumiendo que el eje X
representa el número de secuencia LAN, el tamaño de la ventana WAN
máxima 240 en bytes se resta si se añade al número de secuencia LAN
máxima, tal como se indica mediante las líneas de trazos verticales.
El número de secuencia LAN inicial se indica en el extremo
izquierdo del eje X. Se indica el rango de secuencia LAN permitido
242.
Para cada paquete, límite inferior se calcula
como el mayor del número de la secuencia LAN inicial o el máximo de
la secuencia LAN menos el tamaño de la ventana WAN máximo. El límite
superior es la suma del número de la secuencia LAN máximo y el
tamaño de la ventana WAN máximo. Si el número de secuencia del
paquete transmitido está incluido entre los límites inferior y
superior, el paquete se permite. En caso contrario, el paquete se
rechaza. Los paquetes con números de secuencia fuera del rango de
secuencia permitido se rechazan. Nótese que el número de secuencia
de un paquete recibido se sitio de la misma manera con la diferencia
siendo el cambio de las entidades LAN y WAN en la descripción
anterior.
Un diagrama que muestra el seguimiento de la
ventana de número de secuencia de acuse de recibo realizado durante
la comprobación de las reglas mediante el procesador del filtro
principal se muestra en la figura 16. El seguimiento del número de
acuse de recibo se realiza mediante el procesamiento del filtro
principal mientras está en el estado de conexión TCP abierta 180
utilizando el campo de tamaño de la memoria intermedia en el
encabezado TCP. Asumiendo que el eje X representa el número de
secuencia WAN, el tamaño de la ventana LAN máximo 250 en bytes se
resta y añade al número de secuencia WAN máximo tal como se indica
mediante las líneas de trazos verticales. El número de secuencia
WAN inicial se indica en el extremo izquierdo del eje X. Se indica
el rango de acuse de recibo permitido 252. La comprobación de las
reglas para el número de acuse de recibo es análoga al del número
de secuencia tal como se ha descrito dependiendo de si el paquete se
envió o recibió mediante la WAN o la LAN.
Debe indicarse que según la invención, el módulo
de procesamiento del filtro principal es operativo para comprobar
de manera dinámica las reglas asociadas también con otros
protocolos, incluyendo pero no estando limitados a UDP, ICMP
incluyendo solicitud/respuesta de eco, mensajes de control y error,
ARP, fragmentación ICMP y IP.
Según la invención, el módulo de administración
de la sesión es operativo para mantener una lista en la sala para
almacenar las sesiones en el orden de menos recientemente
utilizadas. El módulo de administración de la sesión realiza varias
funciones relativas al mantenimiento y control de la base de datos
de las sesiones. El módulo de administración de la sesión funciona
para comprobar la validez de los sellos de la hora (es decir, la
antigüedad) de las sesiones almacenadas en la base de datos de las
sesiones bajo el comando desde la CPU. Cuando se recibe el comando
para realizar el envejecimiento, los campos del sello del tiempo de
cada registro en la base de datos de las sesiones se examinan y
aquellos registros cuyo límite de tiempo ha expirado se cierran. El
envejecimiento se realiza en las sesiones para purgar sesiones que
se han vuelto viejas y que no se cerraron normalmente por algún
motivo. Por ejemplo, una sesión puede expirar si corresponde a un
paquete que ha violado una regla.
El módulo de administración de la sesión también
funciona para proporcionar una sesión no utilizada (es decir, vacía
y disponible) a la CPU cual procesamiento del filtro principal 54
(figura 2) bajo solicitud. En operación, la CPU/procesamiento del
filtro principal solicita una nueva sesión y el módulo de
administración de la sesión busca una y devuelve el índice a la
CPU/procesamiento de filtro principal respectivamente. De una
manera similar, el módulo de administración de la sesión también
desconecta prestamente una sesión que está en uso cuando se
requiere, es decir, envejecimiento, solicitud de la CPU, solicitud
de procesamiento del filtro principal, etc. el módulo de
administración de la sesión también abre nuevas sesiones, en las que
se actualizan los punteros LRU y los punteros de codificación en la
tabla de codificación y en la base de datos de las sesiones.
La estructura de la lista enlazada menos
recientemente usada (LRU) utilizada para seguir el uso de la sesión
se muestra en la figura 17. Cada vez que se reconoce una sesión (es
decir, se accede), del correspondiente paquete es permitido
mediante el procesamiento del filtro principal, la sesión se coloca
en la cola de la lista enlazada LRU. La lista enlazada por
duplicado, indicada en general mediante la referencia 220, comprende
una pluralidad de sesiones 226, teniendo cada una un punteros
siguiente 222 y un puntero previo 224. La sesión en la cola de la
lista enlazada LRU se apunta mediante el contenido de un registro
tail_LRU_index_reg 228. La sesión apuntada mediante este registro
representa la sesión más recientemente usada. La sesión al inicio
de la lista enlazada LRU se apunta mediante el contenido de un
registro head_LRU_index_reg 227.
El módulo de administración de la sesión también
actualiza y mantiene las relaciones de familia al cerrar una
sesión, tal como se describe en mayor detalle posteriormente.
La lista enlazada LRU se utiliza para
determinar, en el caso de que la base de datos de las sesiones esté
llena, que sesión se borra cuando se añade una nueva sesión. En este
caso, la sesión utilizada menos recientemente se cierra y el
registro se utiliza para almacenar la nueva sesión.
Un diagrama de flujo que muestra el
procedimiento de actualización de la lista enlazada LRU al reconocer
una sesión asociada con un paquete de entrada se muestra en la
figura 18. El procedimiento de actualización se realiza cada vez
que se accede a una sesión coincidente y se permite el
correspondiente paquete. Con referencia a la figura 17, en
particular, las sesiones marcadas con sesión previa, sesión
coincidente y siguiente sesión, la sesión coincidente se mueve
desde su posición en la lista a la cola para ser la sesión más
recientemente utilizada. La sesión coincidente se borra mediante
(1) ajustar el siguiente puntero LRU de la sesión previa al
siguiente puntero LRU de la sesión coincidente y (2) ajustar el
puntero LRU previo de la siguiente sesión al puntero LRU previo de
la sesión coincidente (etapa 230).
La sesión coincidente se hace entonces la más
recientemente utilizada mediante (1) ajustar el siguiente puntero
LRU de la sesión coincidente a NULL, (2) ajustar el puntero LRU
previo de la sesión coincidente a los contenidos del registro
tail_LRU_index_reg y (3) ajustar el registro tail_LRU_index_reg al
índice de la sesión coincidente (etapa 232).
Un diagrama de flujo que muestra el
procesamiento del módulo de administración de la sesión de la
presente invención se muestra en la figura 19. El procesamiento de
la administración de la sesión empieza con la etapa inactiva 342 y
se mueve a la siguiente etapa dependiendo del evento. En el caso de
una instrucción "obtener no utilizada" del CPU o procesador
del filtro principal, se busca el estado de la sesión menos
recientemente utilizada (etapa 344). Si la sesión está en uso
(etapa 350), entonces se cierra la sesión (etapa 348). Si la sesión
no está en uso, el head_LRU_index_reg se ajusta al siguiente puntero
LRU de la sesión menos recientemente utilizada y el
siguiente/previo puntero LRU se ajusta a NULL (etapa 352). Los
punteros LRU siguiente y previo de la sesión borrados se ajustan
entonces a NULL, borrando de esta manera la sesión menos
recientemente utilizada de la lista enlazada LRU (etapa 354). La
variable unused_ses se ajusta a la sesión acabada de desconectar y
la marca para informar a la CPU cual procesamiento del filtro
principal se ajusta en consecuencia a "1" (etapa 356). El
proceso vuelve a continuación a inactivo (etapa 358).
Un comando "comprobar tiempo muerto" desde
la CPU provoca que el administrador de la sesión empiece a
comprobar los tiempos muertos de las sesiones. El index_counter se
incrementa (etapa 362) y se busca el estado de una sesión (es
decir, el index_counter) (etapa 364). Si la sesión está actualmente
en uso (etapa 366), se busca el sello de la hora de la sesión
(etapa 372). Si el sello de la hora es mayor que el tiempo real (es
decir, la sesión ha expirado) (etapa 374), la sesión se cierra
(etapa 376).
Si la sesión no se utiliza o si la sesión ha
expirado, se comprueba si el index_counter es menor que el último
índice (etapa 368). Si lo es, el index_counter se incrementa (etapa
370) y el procedimiento continúa con la etapa 364. Si no lo es, se
completa la comprobación del tiempo muerto, el procesamiento del
filtro principal se informa (etapa 360) y el procedimiento vuelve a
inactivo (etapa 358).
Un diagrama de flujo el procesamiento realizado
mediante el módulo de administración de la sesión de la presente
invención para abrir una sesión se muestra en la figura 20. Cuando
se abre una sesión, se coloca en la cola de la lista enlazada LRU
(etapa 380). La sesión también se coloca en el lugar apropiado en la
lista enlazada decodificación (etapa 382). El procedimiento a
continuación retorna al estado inactivo (etapa 384).
Un diagrama de flujo que muestra el
procesamiento realizado por el módulo de administración de la sesión
de la presente invención para cerrar una sesión se muestra en la
figura 21. Si la sesión se puede cerrar como se especifica mediante
la señal HLD (etapa 390), la sesión se borra sin modificación de los
punteros LRU (etapa 392). El procedimiento a continuación vuelve al
estado inactivo (etapa 404).
Si la sesión no se puede cerrar (etapa 390), y
la solicitud de cierre fue de vida a una comprobación de tiempo
muerto (etapa 394), la sesión no se cierra (etapa 396) y el
procedimiento vuelve al estado inactivo (etapa 404). Si la
solicitud de cierre no fue debida a una comprobación de tiempo
muerto, se busca la siguiente sesión apuntada mediante la sesión
utilizada menos recientemente (etapa 398). Si esta sesión no se
puede cerrar (etapa 400), el procedimiento continúa con la etapa
398 y el proceso se repite hasta que se encuentra una sesión que se
puede cerrar. Si se encuentra una sesión que se puede cerrar (etapa
400), la sesión se configura como la LRU (etapa 401). La sesión se
borra a continuación
excepto para los punteros LRU (etapa 402) y el procedimiento vuelve a continuación al estado inactivo (etapa 404).
excepto para los punteros LRU (etapa 402) y el procedimiento vuelve a continuación al estado inactivo (etapa 404).
Tal como se ha indicado anteriormente, el módulo
de administración también funciona para mantener cuatro punteros de
relación de familia en la base de datos de las sesiones, que definen
las relaciones de familia de la sesión. Los punteros de las
relaciones de familia se actualizan al cerrar una sesión. Un
diagrama que muestra los punteros de familia para una sesión se
muestra en la figura 22. Cada sesión puede tener un puntero padre
que apunta a una sesión padre, un primer puntero de hijo que apunta
desde el pariente a su primer hijo y punteros de hermano
siguiente/previo que se utilizan para implementar una lista enlazada
por duplicado entre sesiones que tienen el mismo padre.
Los campos 33 a 36 en la base de datos de las
sesiones se utilizan para almacenar la información de los punteros
de relación de familia. Las propias relaciones de familia se
determinan mediante la CPU. Si una sesión se cierra mediante el
administrador de la sesión (es decir, debido a la comprobación de
tiempo muerto o para hacer espacio para una nueva sesión), el
administrador de la sesión es operativo para actualizar los
punteros de familia en consecuencia.
Según la presente invención, los punteros de
familia se utilizan para conectar de manera lógica sesiones que
pertenecen a la misma aplicación. Por ejemplo, un servicio FTP abre
dos sesiones TCP/IP diferentes: una sesión de control en el puerto
21 y una sesión de datos en el puerto 20. El control FTP es la
sesión padre mientras que los datos FTP son la sesión hijo. En
general, es posible cualquier relación de familia utilizando los
cuatro punteros de familia junto con el número del campo hijo (10),
es decir, se soporta cualquier aplicación padre/hijo. Cuando una
sesión padre se cierra a través de mecanismos LRU/tiempo muerto, el
administrador de la sesión utiliza los punteros de familia para
cerrar todas las sesiones creadas posteriormente que pertenecen a
la familia.
A veces, no todas las conexiones utilizan de
manera simultánea. Por ejemplo, es posible que la aplicación se
conecte utilizando solamente la sesión hijo durante un período de
tiempo. Para evitar el cierre de la sesión de control padre
mediante los mecanismos LRU/tiempo muerto, la CPU ajusta el bit HLD
en la sesión padre. El administrador de la sesión no cerrará una
sesión que tiene una sesión hijo abierta (es decir, número de hijos
> 0) y cuyo bit HLD se hace valer. Cuando una de las sesiones de
la familia se cierra, el administrador de la sesión es operativo
para mantener todo los punteros de familia, es decir, cierra todas
sus sesiones hijo (si existen), actualiza las sesiones de hermano
de la familia en la lista enlazada por duplicado (si existen),
resta el número de hijos de su sesión padre (si existen) y actualiza
la lista enlazada por duplicado padre/primer hijo.
Un diagrama que muestra un ejemplo de la
relación de familia entre una pluralidad de sesiones se muestra en
la figura 23. En este ejemplo, una sesión padre está relacionada con
una sesión hijo que, a su vez, está relacionada con dos sesiones
hermano. La primera sesión hijo es también una sesión padre que
tiene una sesión hijo que es el nieto de la sesión padre
superior.
En otra realización, un ordenador es operativo
para ejecutar software adaptado para realizar el procedimiento del
filtro de paquetes dinámico de la presente invención. Un diagrama de
bloques que muestra un sistema de procesamiento de ordenador de
ejemplo en una plataforma adaptada para realizar el filtrado de
paquetes dinámico con el procedimiento de seguimiento de la sesión
de la presente invención se muestra en la figura 24. El sistema se
puede incorporar en un dispositivo de comunicaciones, tal como una
PDA, teléfono celular, módem de cable, módem de banda ancha,
ordenador portátil, PC, equipo de transmisión o conmutación de red,
dispositivos de red o cualquier otro dispositivo de comunicaciones
con o sin cables. El dispositivo se puede construir utilizando
cualquier combinación de hardware y/o software.
El sistema informático, indicado en general
mediante la referencia 260, comprende un procesador 264 que se
puede implementar como un microcontrolador, microprocesador,
microordenador, núcleo ASIC, núcleo FPGA, unidad de procesamiento
central (CPU) o procesador de señal digital (DSP). El sistema
también comprende una memoria estática solamente de lectura (ROM)
266 y una memoria principal dinámica (por ejemplo, RAM) 270 todas
en comunicación con el procesador. El procesador está también en
comunicación, a través de un bus 262, con una serie de dispositivos
periféricos que están también incluidos en el sistema
informático.
El dispositivo está conectado a una WAN 280, tal
como Internet a través de una interfaz WAN 272. La interfaz
comprende interfaces con y/o sin cables en uno o más canales de
comunicación WAN. El procesamiento de comunicaciones I/O 274
transfiere los datos entre la interfaz WAN y el procesador. El
sistema informático está también conectado a una LAN 273 a través
de una tarjeta de interfaz de red (NIC) 271 dependiendo de la
implementación. En operación, el sistema informático es operativo
para filtrar de manera dinámica los paquetes de entrada de este la
WAN a la LAN y los paquetes de salida desde la LAN a la WAN tal como
se ha descrito anteriormente.
Una interfaz de usuario opcional 276 responde a
las entradas del usuario y proporciona retroalimentación y otra
información de estado. Una interfaz servidor 278 conecta un
dispositivo informático servidor 282 al sistema. El servidor está
adaptado para configurar, controlar y mantener el funcionamiento del
sistema. El sistema también comprende un dispositivo de
almacenamiento magnético 268 para almacenar programas de
aplicaciones y datos. El sistema comprende un medio de
almacenamiento que se puede leer con ordenador que puede incluir
cualesquiera medios de memoria adecuados, incluyendo, pero no
estando limitado, almacenamiento magnético, almacenamiento óptico,
unidad de CD-ROM, unidad ZIP, unidad DVD, cassette
DAT, memoria volátil o no volátil semiconductora, dispositivos de
memoria biológica, o cualquier otro dispositivo de almacenamiento de
memoria.
El software actualizado para implementar la
funcionalidad del filtro dinámico de la presente invención está
adaptado para residir en un medio que se puede leer con un
ordenador, tal como un disco magnético en una unidad de disco.
Alternativamente, el medio que se puede leer en un ordenador puede
comprender un diskette, una tarjeta de memoria flash, memoria
basada en EPROM, EEROM, EEPROM, almacenamiento de memoria burbuja,
almacenamiento ROM, etc. el software adaptado para realizar el
procedimiento de filtrado de paquetes dinámico de la presente
invención también puede residir, total o parcialmente, en las
memorias principales estáticas o dinámicas o en firmware en el
procesador del sistema informático (es decir, en el
microcontrolador, microprocesador, microordenador, DSP, memoria
interna, etc.).
En realizaciones alternativas, el procedimiento
de la presente invención se puede aplicar a implementaciones de la
invención en circuitos integrados, disposiciones de puerta de campo
programables (FPGAs), chip sets o circuitos integrados de
aplicación específica (ASICs), implementaciones sin cables y otros
productos de sistemas de comunicación.
\vskip1.000000\baselineskip
Esta lista de referencias citadas por el
solicitante es solamente para conveniencia del lector. No forma
parte del documento de patente europea. Aunque se ha tomado el
máximo cuidado en la recopilación de las referencias, no se pueden
excluir errores u omisiones y la OEP se descarga de cualquier
responsabilidad en este aspecto.
\bullet EP 0910197 A2 [0007]
\bullet US 6738779 B [0043]
Claims (31)
1. Procedimiento de filtrado de una corriente de
paquetes de entrada, estando caracterizado dicho
procedimiento por el hecho de que comprende las etapas de:
establecer una base de datos de sesiones
adaptada para almacenar datos relacionados con sesiones para una
pluralidad de sesiones y que comprende por lo menos una lista
enlazada de sesiones, correspondiendo cada sesión a un interfaz de
conexión;
abrir una nueva sesión al recibir un interfaz de
conexión no previamente almacenado en dicha base de datos de
sesiones;
reconocer una sesión asociada con un paquete
recibido según su interfaz de conexión asociado;
procesar los datos de la sesión correspondientes
ha dicho paquete recibido según una pluralidad de reglas
predefinidas para generar resultados de procesamiento; y
decidir si se permite o se deniega dicho paquete
recibido según dichos resultados de procesamiento.
\vskip1.000000\baselineskip
2. Procedimiento según la reivindicación 1, que
también comprende la etapa de actualizar los contenidos de dicha
base de datos de sesiones según dichos resultados de
procesamiento.
3. Procedimiento según la reivindicación 1, en
el que dicha etapa de decisión comprende permitir dicho paquete
recibido si dicho paquete recibido no viola ninguna de dicha
pluralidad de reglas predefinidas.
4. Procedimiento según la reivindicación 1, en
el que dicha etapa de decisión comprende de negar dicho paquete
recibido si dicho paquete recibido viola una o más de dicha
pluralidad de reglas predefinidas.
5. Procedimiento según la reivindicación 1, que
también comprende la etapa de borrar sesiones no utilizadas de
dicha base de datos de sesiones.
6. Procedimiento según la reivindicación 1, que
también comprende la etapa de establecer y mantener una lista
enlazada por duplicado de menos recientemente utilizadas LRU que
tiene un encabezado y una cola, en el que las sesiones más
recientemente utilizadas se almacenan en la cola y las sesiones
menos recientemente utilizadas se almacenan en el encabezado.
7. Procedimiento según la reivindicación 6, en
el que en el caso de que dicha lista LRU esté llena, la sesión en
el encabezado se borra y se añade una nueva sesión en la cola.
8. Procedimiento según la reivindicación 1, que
también comprende la etapa de borrar sesiones cuyos sellos de la
hora asociados han excedido un límite predeterminado.
9. Procedimiento según la reivindicación 1, que
también comprende la etapa de establecer una tabla de vacíos que
comprende una pluralidad de registros, representando cada uno un
único subconjunto de información de interfaz de conexión
incompleto.
10. Procedimiento según la reivindicación 1, en
el que dicha etapa de abrir una nueva sesión comprende las etapas
de:
almacenar los datos de la sesión relacionados
con dicha nueva sesión en dicha base de datos de sesiones;
calcular un valor de codificación en el interfaz
de conexión asociado con dicha nueva sesión; y
almacenar dicho valor de codificación en una
tabla de codificación.
\vskip1.000000\baselineskip
11. Procedimiento según la reivindicación 1, en
el que dicha etapa de reconocimiento de una sesión comprende las
etapas de:
calcular un valor de codificación sobre el
interfaz de conexión asociado con la sesión que se ha de
reconocer;
buscar un puntero de codificación en una tabla
de codificación utilizando el resultado de la codificación como
índice;
recuperar los datos del interfaz de conexión de
dicha base de datos de sesiones según dicho puntero de codificación;
y
reconocer dicha sesión si el interfaz de
conexión recuperado coincide con el interfaz de conexión asociado
con la sesión recibida.
\vskip1.000000\baselineskip
12. Procedimiento según la reivindicación 1, en
el que dicha etapa de procesamiento de los datos de la sesión
comprende el seguimiento del estado de un protocolo de control de
transmisión TCP que abre un protocolo de transmisión si la sesión
comprende una sesión de apertura TCP.
13. Procedimiento según la reivindicación 1, en
el que dicha etapa de procesamiento de los datos de la sesión
comprende el seguimiento del estado de un protocolo de control de
transmisión TCP que cierra un protocolo de transmisión si la sesión
comprende una sesión de cierre TCP.
14. Procedimiento según la reivindicación 1, en
el que dicha etapa de procesamiento de los datos de la sesión
comprende el seguimiento de la secuencia y el acuse de recibo de
dicha sesión contra una ventana si dicha sesión comprende una
sesión de protocolo de control de transmisión TCP.
15. Filtro dinámico (40) para filtrar una
corriente de paquetes de entrada, estando caracterizado por
el hecho de que comprende:
una base de datos de sesiones (64) adaptada para
almacenar datos relacionados con sesiones para una pluralidad de
sesiones y que comprende por lo menos una lista enlazada de
sesiones, correspondiendo cada sesión a un interfaz de
conexión;
un módulo de reconocimiento de sesión (52)
adaptado para buscar en dicha base de datos de sesiones una sesión
cuyo interfaz de conexión asociado coincide con el de un paquete
recibido;
un módulo de administración de sesión (56)
adaptado para mantener dicha base de datos de sesiones, incluyendo
la adición, el borrado y la modificación de las sesiones en dicha
base de datos de sesiones; y
un módulo de filtro principal (54) operativo
para seguir un estado de conexión de la sesión correspondiente a un
paquete recibido y comprobar dicho estado de conexión contra una
pluralidad de reglas para determinar si se permite o se deniega
dicho paquete recibido.
\vskip1.000000\baselineskip
16. Filtro dinámico según la reivindicación 15,
en el que dicho filtro principal (54) está adaptado para escribir
datos de sesiones modificados otra vez en dicha base de datos de
sesiones (64) después de que se realice la determinación de si se
permite o deniega dicho paquete recibido.
17. Filtro dinámico según la reivindicación 15,
en el que dicho filtro principal (54) está adaptado para permitir
dicho paquete recibido si dicho paquete recibido no viola ninguna de
dicha pluralidad de reglas.
18. Filtro dinámico según la reivindicación 15,
en el que dicho filtro de principal está adaptado para denegar
dicho paquete recibido si dicho paquete recibido viola una o más de
dicha pluralidad de reglas.
19. Filtro dinámico según la reivindicación 15,
en el que dicho módulo de administración de sesión (56) está
adaptado para borrar sesiones no utilizadas de dicha base de datos
de sesiones (64).
20. Filtro dinámico según la reivindicación 15,
en el que dicho módulo de administración de sesión (56) está
adaptado para establecer y mantener una lista en la azada por
duplicado de menos recientemente utilizada LRU que tiene un
encabezamiento y una cola, en el que las sesiones más recientemente
utilizadas se almacenan en la cola y las sesiones menos
recientemente utilizadas se almacenan en el encabezamiento.
21. Filtro dinámico según la reivindicación 15,
en el que dicho módulo de administración de sesión (56) está
adaptado para borrar sesiones cuyos sellos de la hora han superado
un límite predeterminado.
22. Filtro dinámico según la reivindicación 15,
que también comprende una tabla de vacíos (62) que consiste en una
pluralidad de registros, representando cada uno un único su conjunto
de información de interfaz de conexión incompleta.
23. Filtro dinámico según la reivindicación 15,
en el que dicho módulo de administración de sesión (56) comprende
medios de apertura de la sesión adaptados para:
almacenar datos de la sesión relacionados con
dicha nueva sesión en dicha base de datos de sesiones;
calcular un valor de codificación en el interfaz
de conexión asociado con dicha nueva sesión; y
almacenar dicho valor de codificación en una
tabla de codificación.
\vskip1.000000\baselineskip
24. Filtro dinámico según la reivindicación 15,
en el que dicho módulo de reconocimiento de sesión (56) comprende
medios adaptados para:
calcular un valor de codificación en el interfaz
de conexión asociado con la sesión que se ha de reconocer;
buscar un puntero de codificación en una tabla
de codificación utilizando el resultado de la codificación como
índice;
recuperar los datos del interfaz de conexión de
dicha base de datos de sesiones según dicho puntero de codificación;
y
reconocer dicha sesión si el interfaz de
conexión recuperado coincide con el interfaz de conexión asociado
con la sesión recibida.
25. Filtro dinámico según la reivindicación 15,
en el que dicho filtro principal (54) comprende medios para seguir
el estado de un protocolo de control de transmisión TCP que abre un
protocolo de transmisión si la sesión comprende una sesión de
apertura TCP.
26. Filtro dinámico según la reivindicación 15,
en el que dicho filtro principal (54) comprende medios para el
seguimiento del estado de un protocolo de control de transmisión TCP
que cierra un protocolo de transmisión si la sesión comprende una
sesión de cierre TCP.
27. Filtro dinámico según la reivindicación 15,
en el que dicho filtro principal (54) comprende medios para el
seguimiento de la secuencia y el acuse de recibo de dicha sesión
contra una ventana si dicha sesión comprende una sesión de
protocolo de control de transmisión TCP.
28. Filtro dinámico según la reivindicación 15,
en el que dicho filtro dinámico está implementado como una
disposición de puerta de campo programable FPGA.
29. Filtro dinámico según la reivindicación 15,
en el que dicho filtro dinámico está implementado como un circuito
integrado de aplicación específica ASIC.
30. Aparato de computación digital, que
comprende:
medios de comunicación (272, 274) adaptados para
conectar dicho aparato a una red de área amplia (WAN);
medios de memoria (266, 268, 270) comprenden
memoria volátil y no volátil, estando adaptada dicha memoria no
volátil para almacenar uno o más programas de aplicación;
un procesador (264) acoplado a dichos medios de
memoria y dichos medios de comunicación para ejecutar dicho uno o
más programas de aplicación;
estando caracterizado dicho aparato de
computación digital por el hecho de que comprende:
un filtro dinámico (40) para filtrar una
corriente de paquetes de entrada, que comprende:
una base de datos de sesiones (64) adaptada para
almacenar datos relacionados con sesiones para una pluralidad de
sesiones y que comprende por lo menos una lista enlazada de
sesiones, correspondiendo cada sesión a un interfaz de
conexión;
un módulo de reconocimiento de sesión (52)
adaptado para buscar en dicha base de datos de sesiones una sesión
cuyo interfaz de conexión asociado coincide con el de un paquete
recibido;
un módulo de administración de sesión (56)
adaptado para mantener dicha base de datos de sesiones, incluyendo
la adición, el borrado y la modificación de las sesiones en dicha
base de datos de sesiones; y
un módulo de filtro principal (54) operativo
para el seguimiento de un estado de conexión de la sesión
correspondiente a un paquete recibido y la comprobación de dicho
estado de conexión contra una pluralidad de reglas para determinar
si se permite o se deniega dicho paquete recibido.
31. Medio de almacenamiento que se puede leer en
un ordenador, estando caracterizado por el hecho de que tiene
un programa de ordenador realizado en el mismo para provocar que un
sistema programado que una manera adecuada busquen una pluralidad
de cadenas mediante la realización de las siguientes etapas cuando
este programa se ejecuta en dicho sistema:
establecer una base de datos de sesiones
adaptada para almacenar datos relacionados con sesiones para una
pluralidad de sesiones y que comprende por lo menos una lista
enlazada de sesiones, correspondiendo cada sesión a un interfaz de
conexión;
abrir una nueva sesión al recibir un interfaz de
conexión no previamente almacenado en dicha base de datos de
sesiones;
reconocer una sesión asociada con un paquete
recibido según su interfaz de conexión asociado;
procesar los datos de la sesión correspondientes
al dicho paquete recibido según una pluralidad de reglas
predefinidas para generar resultados de procesamiento; y
decidir si se permite o se deniega dicho paquete
recibido según dichos resultados de procesamiento.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/851,768 US6816455B2 (en) | 2001-05-09 | 2001-05-09 | Dynamic packet filter utilizing session tracking |
US851768 | 2001-05-09 |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2302809T3 true ES2302809T3 (es) | 2008-08-01 |
Family
ID=25311632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES02730558T Expired - Lifetime ES2302809T3 (es) | 2001-05-09 | 2002-05-10 | Filtro de paquetes dinamicos que utiliza un seguimiento de sesion. |
Country Status (12)
Country | Link |
---|---|
US (1) | US6816455B2 (es) |
EP (1) | EP1386464B1 (es) |
JP (1) | JP4162210B2 (es) |
KR (1) | KR100876935B1 (es) |
CN (1) | CN100550889C (es) |
AT (1) | ATE381839T1 (es) |
AU (1) | AU2002302873A1 (es) |
BR (1) | BRPI0209463B1 (es) |
CA (1) | CA2445751C (es) |
DE (1) | DE60224177T2 (es) |
ES (1) | ES2302809T3 (es) |
WO (1) | WO2002091700A2 (es) |
Families Citing this family (158)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6430188B1 (en) * | 1998-07-08 | 2002-08-06 | Broadcom Corporation | Unified table for L2, L3, L4, switching and filtering |
US7272571B2 (en) * | 2000-07-07 | 2007-09-18 | Mars Incorporated | Method and apparatus for effective distribution and delivery of goods ordered on the World-Wide-Web |
US7224801B2 (en) * | 2000-12-27 | 2007-05-29 | Logitech Europe S.A. | Wireless secure device |
GB2371186A (en) * | 2001-01-11 | 2002-07-17 | Marconi Comm Ltd | Checking packets |
GB2376854A (en) * | 2001-06-19 | 2002-12-24 | Hewlett Packard Co | Centralised security service for ISP environment |
JP4145032B2 (ja) * | 2001-08-07 | 2008-09-03 | 富士通株式会社 | 無線lanシステム |
JP2003087693A (ja) * | 2001-09-11 | 2003-03-20 | Sony Corp | 情報処理装置および方法、並びにプログラム |
US7400579B2 (en) * | 2001-09-28 | 2008-07-15 | Intel Corporation | Method and apparatus for per-call filtering of H.323 packets |
US7216161B1 (en) * | 2001-11-08 | 2007-05-08 | Cisco Technology, Inc. | Maintaining internet access while moving from port to port |
US7813346B1 (en) * | 2001-11-21 | 2010-10-12 | Juniper Networks, Inc. | Filter-based forwarding in a network |
EP1326393B1 (en) * | 2001-12-18 | 2004-08-11 | Stonesoft Corporation | Validation of the configuration of a Firewall |
US6957281B2 (en) * | 2002-01-15 | 2005-10-18 | Intel Corporation | Ingress processing optimization via traffic classification and grouping |
US7145911B2 (en) * | 2002-03-05 | 2006-12-05 | Hewlett-Packard Company | Method and system for parallel hash transformation for an address input |
US7085271B2 (en) * | 2002-03-14 | 2006-08-01 | Hewlett-Packard Development Company, L.P. | Method and system for performing flow based hash transformation to generate hash pointers for a network device |
US7126948B2 (en) * | 2002-03-21 | 2006-10-24 | Hewlett-Packard Development Company, L.P. | Method and system for performing a hash transformation to generate a hash pointer for an address input by using rotation |
US7216260B2 (en) * | 2002-03-27 | 2007-05-08 | International Business Machines Corporation | Method, system and program product for dynamically detecting errant data sequences and performing corresponding actions |
TW588532B (en) * | 2002-03-29 | 2004-05-21 | Realtek Semiconductor Corp | Management device and method of NAT/NAPT session |
US7299264B2 (en) * | 2002-05-07 | 2007-11-20 | Hewlett-Packard Development Company, L.P. | System and method for monitoring a connection between a server and a passive client device |
US7167980B2 (en) * | 2002-05-30 | 2007-01-23 | Intel Corporation | Data comparison process |
US7363488B2 (en) * | 2002-08-07 | 2008-04-22 | Honeywell International Inc. | Method and apparatus for prefiltering received messages in a security system |
US7600008B1 (en) * | 2002-10-16 | 2009-10-06 | Juniper Networks, Inc. | Systems and methods for harvesting expired sessions |
US7454499B2 (en) * | 2002-11-07 | 2008-11-18 | Tippingpoint Technologies, Inc. | Active network defense system and method |
US7353538B2 (en) * | 2002-11-08 | 2008-04-01 | Federal Network Systems Llc | Server resource management, analysis, and intrusion negation |
JP2004179877A (ja) * | 2002-11-26 | 2004-06-24 | Sony Corp | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム |
KR100542090B1 (ko) | 2002-12-16 | 2006-01-11 | 한국전자통신연구원 | 무선 통신 시스템에서의 오류 제어 방법, 매체 접속 제어프레임 설계 방법 및 단말기 등록 방법과 기록 매체 |
US7483972B2 (en) * | 2003-01-08 | 2009-01-27 | Cisco Technology, Inc. | Network security monitoring system |
US20040143751A1 (en) * | 2003-01-17 | 2004-07-22 | Cyrus Peikari | Protection of embedded processing systems with a configurable, integrated, embedded firewall |
US7590715B1 (en) * | 2003-03-03 | 2009-09-15 | Emc Corporation | Method and system for automatic classification of applications and services by packet inspection |
US8296452B2 (en) * | 2003-03-06 | 2012-10-23 | Cisco Technology, Inc. | Apparatus and method for detecting tiny fragment attacks |
US7325002B2 (en) * | 2003-04-04 | 2008-01-29 | Juniper Networks, Inc. | Detection of network security breaches based on analysis of network record logs |
JP4196732B2 (ja) | 2003-05-26 | 2008-12-17 | 日本電気株式会社 | データ転送装置及びプログラム |
US7660794B2 (en) * | 2003-06-03 | 2010-02-09 | Hewlett-Packard Development Company, L.P. | Method and program product for reducing database walk frequency while repetitively accessing a firewall connection and rule database |
US7620808B2 (en) * | 2003-06-19 | 2009-11-17 | Nokia Corporation | Security of a communication system |
US6985920B2 (en) * | 2003-06-23 | 2006-01-10 | Protego Networks Inc. | Method and system for determining intra-session event correlation across network address translation devices |
US7620070B1 (en) | 2003-06-24 | 2009-11-17 | Nvidia Corporation | Packet processing with re-insertion into network interface circuitry |
US7913294B1 (en) * | 2003-06-24 | 2011-03-22 | Nvidia Corporation | Network protocol processing for filtering packets |
US7286476B2 (en) * | 2003-08-01 | 2007-10-23 | F5 Networks, Inc. | Accelerating network performance by striping and parallelization of TCP connections |
US7644365B2 (en) * | 2003-09-12 | 2010-01-05 | Cisco Technology, Inc. | Method and system for displaying network security incidents |
US20050079858A1 (en) * | 2003-10-09 | 2005-04-14 | Rosen Eric C. | Method and apparatus for restricting media communication in a communication network |
US20050108434A1 (en) * | 2003-11-13 | 2005-05-19 | Witchey Nicholas J. | In-band firewall for an embedded system |
US7844731B1 (en) * | 2003-11-14 | 2010-11-30 | Symantec Corporation | Systems and methods for address spacing in a firewall cluster |
US7389532B2 (en) * | 2003-11-26 | 2008-06-17 | Microsoft Corporation | Method for indexing a plurality of policy filters |
US7634655B2 (en) * | 2004-02-13 | 2009-12-15 | Microsoft Corporation | Efficient hash table protection for data transport protocols |
US7840763B2 (en) * | 2004-03-12 | 2010-11-23 | Sca Technica, Inc. | Methods and systems for achieving high assurance computing using low assurance operating systems and processes |
US7490350B1 (en) * | 2004-03-12 | 2009-02-10 | Sca Technica, Inc. | Achieving high assurance connectivity on computing devices and defeating blended hacking attacks |
US7650635B2 (en) * | 2004-04-07 | 2010-01-19 | Cisco Technology, Inc. | Method and apparatus for preventing network attacks by authenticating internet control message protocol packets |
WO2005101760A1 (ja) * | 2004-04-15 | 2005-10-27 | Nec Corporation | クラスタシステム及びクラスタメンバ並びにプログラム |
US7422152B2 (en) | 2004-05-13 | 2008-09-09 | Cisco Technology, Inc. | Methods and devices for providing scalable RFID networks |
WO2005114951A1 (en) * | 2004-05-20 | 2005-12-01 | Computer Associates Think, Inc. | Systems and methods for detecting denial of service attacks |
KR100619031B1 (ko) * | 2004-06-11 | 2006-08-31 | 삼성전자주식회사 | 부가 데이터의 인터랙티브한 이용방법 및 장치, 그에 따른수신장치 |
US8155117B2 (en) * | 2004-06-29 | 2012-04-10 | Qualcomm Incorporated | Filtering and routing of fragmented datagrams in a data network |
US20090094671A1 (en) * | 2004-08-13 | 2009-04-09 | Sipera Systems, Inc. | System, Method and Apparatus for Providing Security in an IP-Based End User Device |
US8862718B2 (en) | 2006-07-12 | 2014-10-14 | Avaya Inc. | System, method and apparatus for troubleshooting an IP network |
US7933985B2 (en) * | 2004-08-13 | 2011-04-26 | Sipera Systems, Inc. | System and method for detecting and preventing denial of service attacks in a communications system |
US8707419B2 (en) * | 2006-06-29 | 2014-04-22 | Avaya Inc. | System, method and apparatus for protecting a network or device against high volume attacks |
US7865944B1 (en) * | 2004-09-10 | 2011-01-04 | Juniper Networks, Inc. | Intercepting GPRS data |
JP2006121667A (ja) * | 2004-09-27 | 2006-05-11 | Matsushita Electric Ind Co Ltd | パケット受信制御装置及びパケット受信制御方法 |
US7620071B2 (en) * | 2004-11-16 | 2009-11-17 | Intel Corporation | Packet coalescing |
US7509431B2 (en) * | 2004-11-17 | 2009-03-24 | Cisco Technology, Inc. | Performing message and transformation adapter functions in a network element on behalf of an application |
US7664879B2 (en) | 2004-11-23 | 2010-02-16 | Cisco Technology, Inc. | Caching content and state data at a network element |
US7694334B2 (en) * | 2004-12-03 | 2010-04-06 | Nokia Corporation | Apparatus and method for traversing gateway device using a plurality of batons |
US7987272B2 (en) | 2004-12-06 | 2011-07-26 | Cisco Technology, Inc. | Performing message payload processing functions in a network element on behalf of an application |
US7725934B2 (en) | 2004-12-07 | 2010-05-25 | Cisco Technology, Inc. | Network and application attack protection based on application layer message inspection |
US7496750B2 (en) * | 2004-12-07 | 2009-02-24 | Cisco Technology, Inc. | Performing security functions on a message payload in a network element |
US8082304B2 (en) | 2004-12-10 | 2011-12-20 | Cisco Technology, Inc. | Guaranteed delivery of application layer messages by a network element |
US7606267B2 (en) | 2004-12-10 | 2009-10-20 | Cisco Technology, Inc. | Reducing the sizes of application layer messages in a network element |
US7876777B2 (en) * | 2004-12-30 | 2011-01-25 | Honeywell International Inc. | Multiple protocol decoder |
US7551567B2 (en) * | 2005-01-05 | 2009-06-23 | Cisco Technology, Inc. | Interpreting an application message at a network element using sampling and heuristics |
US7796603B1 (en) | 2005-01-14 | 2010-09-14 | Acme Packet, Inc. | Method and system for controlling media sessions in networks that use communication protocols with distinct signaling and media channels |
US8249076B1 (en) * | 2005-01-14 | 2012-08-21 | Acme Packet, Inc. | Method, system and architecture for validating media sessions in networks that use communication protocols with distinct signaling and media channels |
US7698416B2 (en) | 2005-01-25 | 2010-04-13 | Cisco Technology, Inc. | Application layer message-based server failover management by a network element |
JP4170299B2 (ja) * | 2005-01-31 | 2008-10-22 | 独立行政法人 宇宙航空研究開発機構 | 通信状態遷移モニタ方法及びこれを利用した通信状態遷移モニタ装置 |
US7860006B1 (en) * | 2005-04-27 | 2010-12-28 | Extreme Networks, Inc. | Integrated methods of performing network switch functions |
US7668969B1 (en) | 2005-04-27 | 2010-02-23 | Extreme Networks, Inc. | Rule structure for performing network switch functions |
US20060259570A1 (en) * | 2005-05-13 | 2006-11-16 | Microsoft Corporation | Method and system for closing an RDMA connection |
US7761619B2 (en) * | 2005-05-13 | 2010-07-20 | Microsoft Corporation | Method and system for parallelizing completion event processing |
US7706314B2 (en) * | 2005-05-20 | 2010-04-27 | Cisco Technology, Inc. | Approach for implementing IPsec in performance enhancing proxy (PEP) environments |
US7725595B1 (en) * | 2005-05-24 | 2010-05-25 | The United States Of America As Represented By The Secretary Of The Navy | Embedded communications system and method |
US7881291B2 (en) * | 2005-05-26 | 2011-02-01 | Alcatel Lucent | Packet classification acceleration using spectral analysis |
US7345585B2 (en) | 2005-08-01 | 2008-03-18 | Cisco Technology, Inc. | Network based device for providing RFID middleware functionality |
WO2007019583A2 (en) * | 2005-08-09 | 2007-02-15 | Sipera Systems, Inc. | System and method for providing network level and nodal level vulnerability protection in voip networks |
US7882262B2 (en) | 2005-08-18 | 2011-02-01 | Cisco Technology, Inc. | Method and system for inline top N query computation |
US7818786B2 (en) * | 2005-08-19 | 2010-10-19 | Electronics And Telecommunications Research Institute | Apparatus and method for managing session state |
WO2007033344A2 (en) * | 2005-09-14 | 2007-03-22 | Sipera Systems, Inc. | System, method and apparatus for classifying communications in a communications system |
US20070130367A1 (en) * | 2005-11-18 | 2007-06-07 | Vivek Kashyap | Inbound connection prioritization |
US7649886B2 (en) * | 2005-11-21 | 2010-01-19 | Motorola, Inc. | Method and system for processing incoming packets in a communication network |
CN1980178A (zh) * | 2005-12-03 | 2007-06-13 | 鸿富锦精密工业(深圳)有限公司 | 网络装置及其转发多播封包的方法 |
US8274979B2 (en) * | 2005-12-30 | 2012-09-25 | Telecom Italia S.P.A. | Method and system for secure communication between a public network and a local network |
US7650367B2 (en) * | 2006-01-13 | 2010-01-19 | Tekelec | Methods, systems, and computer program products for detecting and restoring missing or corrupted data in a distributed, scalable, redundant measurement platform database |
JP4137948B2 (ja) * | 2006-02-14 | 2008-08-20 | 日本電信電話株式会社 | パケット通過制御装置及びパケット通過制御方法 |
US20070195776A1 (en) * | 2006-02-23 | 2007-08-23 | Zheng Danyang R | System and method for channeling network traffic |
US8233388B2 (en) * | 2006-05-30 | 2012-07-31 | Cisco Technology, Inc. | System and method for controlling and tracking network content flow |
KR100834570B1 (ko) | 2006-06-23 | 2008-06-02 | 한국전자통신연구원 | 실시간 상태 기반 패킷 검사 방법 및 이를 위한 장치 |
US8812638B2 (en) * | 2006-07-12 | 2014-08-19 | Telefonaktiebolaget Lm Ericsson (Publ) | Method, apparatus and computer program product for controlling devices |
CN101115055B (zh) * | 2006-07-24 | 2010-05-12 | 上海贝尔阿尔卡特股份有限公司 | 通信网络中报告隧道数据包中各级错误的装置及方法 |
US8751866B2 (en) * | 2006-09-28 | 2014-06-10 | International Business Machines Corporation | Autonomic fault isolation in a highly interconnected system |
US7646728B2 (en) * | 2006-10-13 | 2010-01-12 | SafeMedia Corp. | Network monitoring and intellectual property protection device, system and method |
US8302179B2 (en) * | 2006-12-13 | 2012-10-30 | Avaya Inc. | Embedded firewall at a telecommunications endpoint |
US8145746B1 (en) * | 2007-02-09 | 2012-03-27 | Juniper Networks, Inc. | Using the TCP window size for identifying packets and debugging |
US8477804B2 (en) * | 2007-03-02 | 2013-07-02 | Hitachi, Ltd. | ICMP translator |
US7894358B2 (en) * | 2007-03-15 | 2011-02-22 | Cisco Technology, Inc. | Detection of heavy users of network resources |
US8935669B2 (en) * | 2007-04-11 | 2015-01-13 | Microsoft Corporation | Strategies for performing testing in a multi-user environment |
CN101296221B (zh) * | 2007-04-29 | 2012-01-11 | 中兴通讯股份有限公司 | 媒体接入控制层的数据处理方法 |
KR100894908B1 (ko) | 2007-05-15 | 2009-04-30 | 고려대학교 산학협력단 | 인터넷 기반 음성 서비스에서 비정상 패킷을 탐지하는 방법및 컴퓨터로 읽을 수 있는 매체 |
US20080307093A1 (en) * | 2007-06-07 | 2008-12-11 | Samsung Electronics Co., Ltd. | Method and system for managing resource consumption by transport control protocol connections |
JP4900119B2 (ja) * | 2007-08-01 | 2012-03-21 | ヤマハ株式会社 | ネットワーク機器 |
TW200930056A (en) * | 2007-12-26 | 2009-07-01 | Altek Corp | Handshake dual-processor architecture of digital cameras |
US8503886B1 (en) * | 2008-01-03 | 2013-08-06 | Nextel Communications Inc. | Systems and methods for visual light communication |
JP5035068B2 (ja) * | 2008-03-28 | 2012-09-26 | 富士通株式会社 | サービス処理状況分析プログラム、サービス処理状況分析装置、およびサービス処理状況分析方法 |
US8315256B2 (en) * | 2008-04-17 | 2012-11-20 | Gigamon Llc | State-based filtering on a packet switch appliance |
WO2010011467A1 (en) | 2008-06-29 | 2010-01-28 | Oceans' Edge, Inc. | Mobile telephone firewall and compliance enforcement system and method |
US20100005263A1 (en) * | 2008-07-04 | 2010-01-07 | Huawei Technologies Co., Ltd. | Information backup method, firewall and network system |
US7817631B1 (en) | 2008-07-09 | 2010-10-19 | Google Inc. | Network transfer protocol |
US8401990B2 (en) * | 2008-07-25 | 2013-03-19 | Ca, Inc. | System and method for aggregating raw data into a star schema |
US9692856B2 (en) * | 2008-07-25 | 2017-06-27 | Ca, Inc. | System and method for filtering and alteration of digital data packets |
US8352391B1 (en) | 2008-08-20 | 2013-01-08 | Juniper Networks, Inc. | Fast update filter |
US8275116B2 (en) | 2008-08-29 | 2012-09-25 | 8X8, Inc. | Networked contact center |
US8243913B2 (en) * | 2008-08-29 | 2012-08-14 | 8×8, Inc. | Limiting contact in a networked contact center environment |
US8051167B2 (en) * | 2009-02-13 | 2011-11-01 | Alcatel Lucent | Optimized mirror for content identification |
US20100211544A1 (en) * | 2009-02-19 | 2010-08-19 | Jyshyang Chen | System with session synchronization |
US8750112B2 (en) * | 2009-03-16 | 2014-06-10 | Echostar Technologies L.L.C. | Method and node for employing network connections over a connectionless transport layer protocol |
US7990976B2 (en) * | 2009-05-13 | 2011-08-02 | Telefonaktiebolaget L M Ericsson (Publ) | Negotiated secure fast table lookups for protocols with bidirectional identifiers |
US8407241B2 (en) * | 2009-06-12 | 2013-03-26 | Microsoft Corporation | Content mesh searching |
FR2949934B1 (fr) * | 2009-09-09 | 2011-10-28 | Qosmos | Surveillance d'une session de communication comportant plusieurs flux sur un reseau de donnees |
JP5445147B2 (ja) * | 2010-01-07 | 2014-03-19 | 富士通株式会社 | リスト構造制御回路 |
TW201246867A (en) * | 2011-05-06 | 2012-11-16 | Ralink Technology Corp | Packet processing accelerator and method thereof |
CN103095665A (zh) * | 2011-11-07 | 2013-05-08 | 中兴通讯股份有限公司 | 一种提升防火墙处理性能的方法和装置 |
US9712887B2 (en) * | 2012-04-12 | 2017-07-18 | Arris Canada, Inc. | Methods and systems for real-time transmuxing of streaming media content |
US9262320B2 (en) | 2012-06-15 | 2016-02-16 | International Business Machines Corporation | Tracking transactional execution footprint |
US9223687B2 (en) | 2012-06-15 | 2015-12-29 | International Business Machines Corporation | Determining the logical address of a transaction abort |
US9311101B2 (en) | 2012-06-15 | 2016-04-12 | International Business Machines Corporation | Intra-instructional transaction abort handling |
US9298469B2 (en) | 2012-06-15 | 2016-03-29 | International Business Machines Corporation | Management of multiple nested transactions |
US9015419B2 (en) * | 2012-06-15 | 2015-04-21 | International Business Machines Corporation | Avoiding aborts due to associativity conflicts in a transactional environment |
US9298631B2 (en) | 2012-06-15 | 2016-03-29 | International Business Machines Corporation | Managing transactional and non-transactional store observability |
US9537828B2 (en) | 2012-09-11 | 2017-01-03 | Young Ok Jun | Secure mobile communication relay having firewall function |
US9674052B2 (en) * | 2012-09-20 | 2017-06-06 | Hewlett Packard Enterprise Development Lp | Data packet stream fingerprint |
US9350762B2 (en) | 2012-09-25 | 2016-05-24 | Ss8 Networks, Inc. | Intelligent feedback loop to iteratively reduce incoming network data for analysis |
KR20140047221A (ko) * | 2012-10-09 | 2014-04-22 | (주)소만사 | 네트워크 정보유출방지 기기의 대용량 패킷 처리를 위한 하드웨어 엔진 |
US9047417B2 (en) | 2012-10-29 | 2015-06-02 | Intel Corporation | NUMA aware network interface |
GB201302402D0 (en) * | 2013-02-11 | 2013-03-27 | Telecom Ltd Q | Communication apparatus |
US9043593B2 (en) * | 2013-03-11 | 2015-05-26 | International Business Machines Corporation | Session attribute propagation through secure database server tiers |
JP6040102B2 (ja) * | 2013-06-04 | 2016-12-07 | 株式会社日立製作所 | 不正情報検知方法および不正情報検知装置 |
US10684973B2 (en) | 2013-08-30 | 2020-06-16 | Intel Corporation | NUMA node peripheral switch |
US10367787B2 (en) * | 2013-12-20 | 2019-07-30 | Mcafee, Llc | Intelligent firewall access rules |
US10721160B2 (en) | 2014-05-15 | 2020-07-21 | Samsung Electronics Co., Ltd. | Method of distributing data and device supporting the same |
US10911353B2 (en) * | 2015-06-17 | 2021-02-02 | Extreme Networks, Inc. | Architecture for a network visibility system |
US10771475B2 (en) | 2015-03-23 | 2020-09-08 | Extreme Networks, Inc. | Techniques for exchanging control and configuration information in a network visibility system |
US10129088B2 (en) | 2015-06-17 | 2018-11-13 | Extreme Networks, Inc. | Configuration of rules in a network visibility system |
CN106161224B (zh) | 2015-04-02 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 数据交换方法、装置及设备 |
CN108353001B (zh) * | 2015-10-30 | 2021-10-29 | 意大利电信股份公司 | 分组交换通信网络中的性能测量 |
CN105939322B (zh) * | 2015-12-08 | 2019-12-06 | 杭州迪普科技股份有限公司 | 报文攻击防护的方法及装置 |
US10419808B2 (en) * | 2016-09-08 | 2019-09-17 | Gvbb Holdings S.A.R.L. | System and method for scalable physical layer flow of packetized media streams |
EP3310015A1 (en) * | 2016-10-11 | 2018-04-18 | Secucloud GmbH | Network filtering using router connection data |
CN109587074B (zh) * | 2017-09-29 | 2022-04-29 | 中兴通讯股份有限公司 | 报文处理方法、装置、存储介质及处理器 |
CN110365759B (zh) * | 2019-07-08 | 2021-12-28 | 深圳市多尼卡航空电子有限公司 | 一种数据转发方法、装置、系统、网关设备及存储介质 |
CN112612670B (zh) * | 2020-12-02 | 2023-04-11 | 北京东土军悦科技有限公司 | 一种会话信息统计方法、装置、交换设备及存储介质 |
CN114285771B (zh) * | 2021-12-30 | 2024-02-06 | 阿里巴巴(中国)有限公司 | 一种tcp连接的连接状态追踪方法及装置 |
CN116112290A (zh) * | 2023-04-10 | 2023-05-12 | 北京长亭未来科技有限公司 | 一种应用于Web集中管理系统的流量中转方法及装置 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5446736A (en) | 1993-10-07 | 1995-08-29 | Ast Research, Inc. | Method and apparatus for connecting a node to a wireless network using a standard protocol |
US5623601A (en) * | 1994-11-18 | 1997-04-22 | Milkway Networks Corporation | Apparatus and method for providing a secure gateway for communication and data exchanges between networks |
JP3262689B2 (ja) | 1995-05-19 | 2002-03-04 | 富士通株式会社 | 遠隔操作システム |
US5889962A (en) * | 1995-10-13 | 1999-03-30 | Apple Computer, Inc. | Method and system for providing an additional identifier for sessions in a file server |
US5828846A (en) * | 1995-11-22 | 1998-10-27 | Raptor Systems, Inc. | Controlling passage of packets or messages via a virtual connection or flow |
JP3688830B2 (ja) | 1995-11-30 | 2005-08-31 | 株式会社東芝 | パケット転送方法及びパケット処理装置 |
US5999525A (en) | 1996-11-18 | 1999-12-07 | Mci Communications Corporation | Method for video telephony over a hybrid network |
US5867494A (en) | 1996-11-18 | 1999-02-02 | Mci Communication Corporation | System, method and article of manufacture with integrated video conferencing billing in a communication system architecture |
US6173364B1 (en) * | 1997-01-15 | 2001-01-09 | At&T Corp. | Session cache and rule caching method for a dynamic filter |
US6233686B1 (en) * | 1997-01-17 | 2001-05-15 | At & T Corp. | System and method for providing peer level access control on a network |
US5983270A (en) * | 1997-03-11 | 1999-11-09 | Sequel Technology Corporation | Method and apparatus for managing internetwork and intranetwork activity |
US6006268A (en) * | 1997-07-31 | 1999-12-21 | Cisco Technology, Inc. | Method and apparatus for reducing overhead on a proxied connection |
US6154775A (en) | 1997-09-12 | 2000-11-28 | Lucent Technologies Inc. | Methods and apparatus for a computer network firewall with dynamic rule processing with the ability to dynamically alter the operations of rules |
US6341130B1 (en) * | 1998-02-09 | 2002-01-22 | Lucent Technologies, Inc. | Packet classification method and apparatus employing two fields |
US6122665A (en) | 1998-08-26 | 2000-09-19 | Sts Software System Ltd. | Communication management system for computer network-based telephones |
US6219786B1 (en) * | 1998-09-09 | 2001-04-17 | Surfcontrol, Inc. | Method and system for monitoring and controlling network access |
US6219706B1 (en) * | 1998-10-16 | 2001-04-17 | Cisco Technology, Inc. | Access control for networks |
US6347312B1 (en) * | 1998-11-05 | 2002-02-12 | International Business Machines Corporation | Lightweight directory access protocol (LDAP) directory server cache mechanism and method |
US6182149B1 (en) | 1999-01-11 | 2001-01-30 | 3Com Corporation | System for managing dynamic processing resources in a network |
WO2001031874A2 (en) * | 1999-10-28 | 2001-05-03 | Jpmorgan Chase Bank | Secured session sequencing proxy system supporting multiple applications and method therefor |
US6496935B1 (en) * | 2000-03-02 | 2002-12-17 | Check Point Software Technologies Ltd | System, device and method for rapid packet filtering and processing |
-
2001
- 2001-05-09 US US09/851,768 patent/US6816455B2/en not_active Expired - Lifetime
-
2002
- 2002-05-10 JP JP2002588042A patent/JP4162210B2/ja not_active Expired - Fee Related
- 2002-05-10 AU AU2002302873A patent/AU2002302873A1/en not_active Abandoned
- 2002-05-10 KR KR1020037014524A patent/KR100876935B1/ko active IP Right Grant
- 2002-05-10 EP EP02730558A patent/EP1386464B1/en not_active Expired - Lifetime
- 2002-05-10 WO PCT/IB2002/001603 patent/WO2002091700A2/en active IP Right Grant
- 2002-05-10 CA CA2445751A patent/CA2445751C/en not_active Expired - Fee Related
- 2002-05-10 AT AT02730558T patent/ATE381839T1/de not_active IP Right Cessation
- 2002-05-10 ES ES02730558T patent/ES2302809T3/es not_active Expired - Lifetime
- 2002-05-10 CN CNB028095057A patent/CN100550889C/zh not_active Expired - Fee Related
- 2002-05-10 DE DE60224177T patent/DE60224177T2/de not_active Expired - Lifetime
- 2002-05-10 BR BRPI0209463A patent/BRPI0209463B1/pt not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
US6816455B2 (en) | 2004-11-09 |
AU2002302873A1 (en) | 2002-11-18 |
CN1518823A (zh) | 2004-08-04 |
EP1386464B1 (en) | 2007-12-19 |
WO2002091700A3 (en) | 2003-02-06 |
BRPI0209463B1 (pt) | 2017-01-17 |
JP4162210B2 (ja) | 2008-10-08 |
CN100550889C (zh) | 2009-10-14 |
KR100876935B1 (ko) | 2009-01-07 |
CA2445751C (en) | 2011-04-26 |
DE60224177T2 (de) | 2008-12-04 |
KR20040008171A (ko) | 2004-01-28 |
BR0209463A (pt) | 2004-12-07 |
WO2002091700A2 (en) | 2002-11-14 |
JP2004538678A (ja) | 2004-12-24 |
DE60224177D1 (de) | 2008-01-31 |
CA2445751A1 (en) | 2002-11-14 |
US20040013112A1 (en) | 2004-01-22 |
EP1386464A2 (en) | 2004-02-04 |
ATE381839T1 (de) | 2008-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2302809T3 (es) | Filtro de paquetes dinamicos que utiliza un seguimiento de sesion. | |
JP4344609B2 (ja) | セキュリティ・アソシエーション・プロセッサを組み込んだ仮想プライベートネットワーク機構 | |
US8274979B2 (en) | Method and system for secure communication between a public network and a local network | |
US9954873B2 (en) | Mobile device-based intrusion prevention system | |
CN1574792B (zh) | 用于执行网络防火墙的基于多层的方法 | |
RU2365986C2 (ru) | Архитектура многоуровневого брандмауэра | |
US20070022474A1 (en) | Portable firewall | |
US20160050227A1 (en) | Out of band end user notification systems and methods for security events related to non-browser mobile applications | |
MXPA04000800A (es) | Metodo que autentifica cargas utiles de paquete. | |
US20080101222A1 (en) | Lightweight, Time/Space Efficient Packet Filtering | |
US9608973B2 (en) | Security management system including multiple relay servers and security management method | |
US20070150947A1 (en) | Method and apparatus for enhancing security on an enterprise network | |
CN113904826B (zh) | 数据传输方法、装置、设备和存储介质 | |
CN113783868A (zh) | 一种基于商用密码保护闸机物联网安全的方法及系统 | |
US8185642B1 (en) | Communication policy enforcement in a data network | |
Allix | Covert channels analysis in TCP/IP networks | |
Ferreira et al. | A secure wireless architecture to access a virtual electronic patient record | |
Ko et al. | H/W BASED FIREWALL FOR HIGH-PERFORMANCE NETWORK SECURITY |