NO337990B1 - Tilkoblingsbarhet over en "stateful" brannvegg - Google Patents

Tilkoblingsbarhet over en "stateful" brannvegg Download PDF

Info

Publication number
NO337990B1
NO337990B1 NO20071396A NO20071396A NO337990B1 NO 337990 B1 NO337990 B1 NO 337990B1 NO 20071396 A NO20071396 A NO 20071396A NO 20071396 A NO20071396 A NO 20071396A NO 337990 B1 NO337990 B1 NO 337990B1
Authority
NO
Norway
Prior art keywords
message
client terminal
acknowledgment
client
tcp connection
Prior art date
Application number
NO20071396A
Other languages
English (en)
Other versions
NO20071396L (no
Inventor
Antti Mäkelä
Original Assignee
Telia Sonera Ab
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telia Sonera Ab filed Critical Telia Sonera Ab
Publication of NO20071396L publication Critical patent/NO20071396L/no
Publication of NO337990B1 publication Critical patent/NO337990B1/no

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0254Stateful filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Stereo-Broadcasting Methods (AREA)
  • Circuits Of Receivers In General (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)

Description

Tilkoblingsbarhet over en "stateful" brannvegg
Den foreliggende oppfinnelsen gjelder kommunikasjonsnettverk, og mer spesielt til tilkoblingsbarhet over "stateful" brannvegger (dvs. brannvegger med tilstandsbasert pakkeinspeksjon).
Bakgrunn
Sikkerhet blir et stadig viktigere tema i kommunikasjonsnettverk. Følgelig er stadig flere datamaskiner sikret med en brannvegg. En brannvegg styrer for eksempel driften av datamaskinporter og filtrerer informasjonen som kommer via internettforbindelser til datamaskinen. Når en såkalt tilstandsbasert inspeksjon blir brukt i en brannvegg, så blir ikke innholdet i hver datapakke undersøkt, men brannveggen sammenligner isteden bestemte nøkkeldeler av datapakken med en database med betrodd informasjon. Utgående informasjon blir overvåket etter spesifikke definerte karakteristikker, og så er innkommende informasjon sammenlignet med disse karakteristikkene. Hvis sammenligningen resulterer i et akseptabelt samsvar, tillates informasjonen å passere brannveggen; ellers blir den forkastet.
Selv om brannvegger forbedrer sikkerheten i kommunikasjonsnettverk, så introduserer de samtidig flere vanskeligheter når det gjelder å etablere en direkte forbindelse mellom to endebruker-verter, fordi det i dag er mer vanlig at datamaskinene til begge endebrukerne er beskyttet med en brannvegg. Følgelig kan ikke partene etablere for eksempel en direkte TCP-forbindelse mellom hverandre, siden dette vil nå for tiden kreve at minst en av vertene til brukerne ikke kan ha brannvegg, hvorved den verten som har brannvegg kan sette opp forbindelser til den verten som ikke har brannvegg.
En annen løsning ville være å bruke brannvegger som kjenner igjen applikasjoner, som har den ulempen at oppsettet av brannveggen blir mer komplisert siden brannveggen må være klar over alle mulige applikasjoner. En ytterligere løsning kunne være å bruke en styreprotokoll som UPnP (Universal Plug and Play) for å styre driften av både brannveggene og vertsdatamaskinene. Imidlertid øker en styreprotokoll kompleksiteten på implementeringen og også sårbarheten mot feil. Videre er det typisk et krav at begge endebrukernes verter og deres brannvegger støtter styreprotokollen.
WO02/071717 fremviser en framgangsmåte for å krysse brannmurer, hvor hver endebruker kommuniserer med en server-proxy og åpner en TCP-kanal. Proxy-en i sin tur kommuniserer til hver part den andre partens kildeadresse ogTCP-port. Så kan partene begynne å sende pakker direkte til hverandre ved å bruke kildeadressen og porten til proxy-en, mens proxy-en bare blir brukt for å opprettholde TCP-tilstanden for å jukse brannveggene. Imidlertid er ikke løsningen i WO02/071717 svært levedyktig, siden de fleste nettverksoperatører har en anti-jukse-innstilling
("anti-spoofing") i sine nettverk, for å forhindre bruk av framgangsmåten beskrevet over. Følgelig er det behov for en alternativ framgangsmåte for å krysse brannvegger.
Oppfinnelsen
Det er nå oppfunnet en forbedret framgangsmåte og teknisk utstyr for å implementere framgangsmåten, som ikke blir påvirket av anti-jukse-innstilling i nettverkene. Ulike trekk ved oppfinnelsen omfatter en framgangsmåte, et kommunikasjonssystem, en klientterminal og et datamaskinprogram, som erkarakterisert veddet som er framsatt i de selvstendige patentkravene. Ulike utførelsesformer av oppfinnelsen er fremvist i de uselvstendige patentkravene.
Ifølge et første aspekt, er en framgangsmåte ifølge oppfinnelsen basert på ideen med å etablere en TCP-forbindelse i et nettverksarrangement som omfatter en første klientterminal og en andre klientterminal, hvor den nevnte første klientterminalen blir beskyttet av en første "stateful" brannvegg og den nevnte andre klientterminalen blir beskyttet av en andre "stateful" brannvegg. Begge klientterminalene omfatter også midler for å sende meldinger til hverandre via en meldingsserver. Først blir klientterminalene enige om å etablere en TCP-forbindelse mellom hverandre ved å sende en melding fra den første klientterminalen til den andre klientterminalen via meldingsserveren, hvor den nevnte meldingen omfatter i det minste portnumrene til klientterminalene som skal brukes for den nevnte forbindelse, etter hvilken en etableringsprosedyre for en TCP-forbindelse blir startet i begge klientterminaler. Som svar på sendingen av en første handshakemelding for prosedyren for å etablere en TCP-forbindelse, sender begge klientterminalene en melding som indikerer et sekvensnummer for den første handshakemeldingen til den motsatte klientterminalen via meldingsserveren. Deretter, som svar på at brannveggene til de motsatte klientterminalene nekter å godta den første handshakemeldingen på grunn av manglende overensstemmelse med en hvilken som helst regel for "stateful" brannvegger, så lages det en kvitteringsmelding til nevnte første handshakemelding i begge klientterminaler ved å bruke en "raw socket", hvor kvitteringsmeldingen omfatter det mottatte sekvensnummeret som et kvitteringsnummer. Til slutt blir denne "raw sockef-baserte kvitteringsmeldingen sendt til motpartsklientterminalen for en videre kvittering ifølge prosedyren for etablering av en TCP-forbindelse, hvor den nevnte kvitteringen ferdigstiller etableringen av TCP-forbindelsen.
Ifølge en utførelsesform er den første handshakemeldingen for prosedyren for etablering av en TCP-forbindelse en TCP SYN pakke, hvorved de "stateful" brannmurene som beskytter klientterminalene danner en regel som kun tillater en TCP SYN_ACK pakker med et samsvarende kvitteringsnummer som skal passere gjennom brannveggene i inngående retning.
Ifølge en utførelsesform vil de "stateful" brannveggene som beskytter klientterminalene motta en "raw sockef-basert kvitteringsmelding sendt av den motsatte klientterminalen, identifisere kvitteringsmeldingen som en TCP SYN_ACK pakke; og tillate kvitteringsmeldingen å bli sendt igjennom brannveggene i inngående retning som svar på kvitteringsnummeret på kvitteringsmeldingen som samsvarer med sekvensnummeret til TCP SYN-pakken.
Arrangementet ifølge oppfinnelsen skaper betydelige fordeler. Ved å danne SYN_ACK pakkene med raw sockets basert på informasjonen til de mellomliggende IM-meldingene, vil klientterminalene, så vel som brannveggene, bli villedet til å feiltolke situasjonen ettersom de bare har en enveis utgående forbindelse, selv om en toveis forbindelse faktisk er etablert. Videre så opererer klientene med sine virkelige IP-adresser, og ingen juksing er nødvendig, hvorved nettverkets anti-jukse-innstilling ikke har noen effekt på dette arrangementet. Videre, siden utførelsesformene er basert på tilstandene til brannveggene, så trenger ikke brannveggene ha noen funksjonalitet for applikasjonsbevissthet, eller de trenger ikke støtte fra noen brannvegg-styrende protokoller, slik som UPnP, for å støtte utførelsesformene. På denne måten forenkler arrangementet implementeringen av brannveggene.
Ifølge et andre aspekt er det skapt et kommunikasjonssystem for å implementere arrangementet beskrevet over.
Ifølge et tredje aspekt er det skapt en klientterminal for et telekommunikasjonssystem, hvor klientterminalen er beskyttet av en "stateful" brannvegg, og klientterminalen omfatter midler for å sende meldinger til i det minste en andre klientterminal via en meldingsserver; midler for å bli enig om å etablere en TCP-forbindelse til den andre klientterminalen ved å utveksle meldinger via meldingsserveren, hvor i det minste en av de nevnte meldingene omfatter i det minste portnumre for klientterminalene som skal brukes på den nevnte forbindelse; midler for å starte en prosedyre for å etablere en TCP-forbindelse ved å sende en første handshakemelding for prosedyren for å etablere en TCP-forbindelse; midler for å sende en melding som indikerer et sekvensnummer for den første handshakemeldingen til den andre klientterminalen via meldingsserveren; midler for å motta, via meldingsserveren, en melding som indikerer et sekvensnummer for den første handshakemeldingen sendt av den andre klientterminalen; midler for å danne en kvitteringsmelding til den nevnte første handshakemelding sendt av den andre klientterminalen ved å bruke en raw socket, hvor kvitteringsmeldingen omfatter det mottatte sekvensnummer som et kvitteringsnummer; midler for å sende en den "raw sockef-baserte kvitteringsmeldingen til den andre klientterminalen; midler for å motta en "raw sockef-basert kvitteringemelding fra den andre klientterminalen, hvor den nevnte kvitteringsmeldingen omfatter sekvensnummeret til den første handshakemeldingen sendt til den andre klientterminalen; og midler for å sende en kvittering på den mottatte "raw sockef-baserte kvitteringsmeldingen, hvor den nevnte kvitteringen ferdigstiller etableringen av en TCP-forbindelse.
Ifølge et fjerde aspekt, er det skapt et datamaskinprogramprodukt, lagret på et datamaskinlesbart medium og kjørbart på en databehandlingsanordning, for å implementere midlene til den nevnte klientterminal.
Eksempel
I det følgende vil ulike utførelsesformer av oppfinnelsen bli beskrevet mer detaljert med henvisning til de vedlagte figurene, hvor
Fig. 1 viser et nettverksarrangement ifølge en utførelsesform av oppfinnelsen; Fig. 2 viser et signaldiagram for en framgangsmåte for å etablere en TCP-forbindelse ifølge en utførelsesform av oppfinnelsen; og Fig. 3 viser en klientterminal ifølge en utførelsesform av oppfinnelsen som et forenklet blokkskjema. I det følgende blir oppfinnelsen illustrert med referanse til direktemeldingstjenester (IM) ("Instant Messaging") som er et foretrukket rammeverk for implementeringen. Imidlertid er ikke oppfinnelsen begrenset til bare IM-tjen este r, men den kan anvendes på andre tilsvarende kommunikasjonsapplikasjoner, hvor minst to endebrukere er forbundet med hverandre via en sentralisert adressetjeneste. Et annet eksempel på en slik meldingstjeneste er "Short Messaging Service" (SMS) og "Multimedia Messaging Service" (MMS) som støttes av ulike mobilkommunikasjonsnettverk. IM-tjenester har blitt en av de mest populære Internettjenester i senere tid. IM er basert på tekstmeldinger som leveres via en IP-forbindelse direkte mellom parter. En IM-server deltar bare i etableringen av forbindelsen mellom partene, men den er ikke involvert i leveringsprosessen av IM-meldingene på noen annen måte enn å videresende dem, hvorved meldingene kan leveres via IM-serveren med minst mulig forsinkelse, dvs. nesten i sanntid. En populær applikasjon for IM-tjenester er det som er kjent som nettprat ("chat"), hvor en forhåndsdefinert gruppe av terminal-brukere kommuniserer med hverandre slik at en IM-melding som er sendt av en bruker blir levert til alle andre terminaler som tilhører gruppen. Under etablering av forbindelsen, sender en IM-klient i hver terminal forbindelsesinformasjon til IM-serveren, forbindelsesinformasjonen omfatter en IP-adresse for terminalen og et tall for terminalporten som er tilordnet IM-klienten. IM-serveren vedlikeholder og leverer nødvendig forbindelsesinformasjon til hver terminal som deltar i en IM-sesjon.
Fig. 1 viser et nettverksarrangement ifølge en foretrukket utførelse, hvor to klienter, klient A 100 og klient B 102, forbundet til et kommunikasjonsnettverk 104 ønsker å etablere en direkte forbindelse 106 mellom hverandre, for eksempel for filoverføring eller andre operasjoner som krever en større båndbredde. Begge klientene er beskyttet av "stateful" brannvegger, FW A 108 og FW B 110, og begge brannveggene er fortrinnsvis klar over både TCP og UDP. Brannveggene FW A 108 og FW B 110 er konfigurert på en vanlig måte slik at de bare tillater utgående forbindelser, og ingen inngående porter er åpne. Begge klientene A og B har en forbindelse 112,114 til en direktemeldingsserver 116 ("IM-server"), hvorved de kan sende hverandre korte meldinger via serveren. Imidlertid kan ikke filoverføringer og andre operasjoner som krever høy båndbredde utføres via IM-sesjonen, siden de skaper for stor last.
Nå, IM-rammeverket skaper anvendelige verktøy for å villede begge brannveggene FW A og FW B, så vel som klientene A og B til å tro at, under etableringen av en direkte forbindelse mellom klientene A og B, så etablerer begge klientene A og B så vel som brannveggene FW A og FW B bare en utgående forbindelse, selv om det faktisk etableres en toveisforbindelse. For dette formål benyttes det en mulighet til å sende IM-meldinger direkte mellom klientene med en meget kort forsinkelse under etableringen av en direkte forbindelse, og denne prosedyren er beskrevet detaljert i det følgende.
En annen teknikk som benyttes her er såkalte "raw socket"-er. Som alminnelig kjent kan en "socket" bli brukt i datamaskinnettverkoppbygging til å danne en ende av en toveis kommunikasjonslink mellom to programmer. I en kommunikasjon basert på en TCP- eller UDP-protokoll, er en socket hos en bestemt vert typisk definert som en kombinasjon av en IP-adresse, en protokoll og et portnummer. Hver socket er knyttet til en gitt port som tillater transportlags-protokollen til å identifisere til hvilken applikasjon dataene skal sendes. Imidlertid støtter nesten alle moderne operativsystemer såkalte "raw socket"-er, som tillater senderen å definere tittel-feltene i datapakkene, inkludert IP-adresser og portnumre, hvorved bestemte operasjoner i et transportlag, slik som TCP-laget, kan bli omgått. Følgelig muliggjør "raw socket"-er dannelse av proprietære nettverksprotokoller for en bestemt oppgave.
En framgangsmåte, ifølge en utførelsesform, for å etablere en direkte TCP-forbindelse mellom klientene A og B er videre illustrert i et signaldiagram i Fig. 2. Operasjonen starter når den første parten (klient A) sender en IM-melding 200 til den andre parten (klient B) via IM-serveren, hvor IM-meldingen indikerer ønsket om å etablere en direkte TCP-forbindelse mellom bestemte porter på klientvertene. Følgelig er IM-meldingen en tekstbasert melding med en fri form, men den må indikere følgende ide: "La oss danne en TCP-forbindelse, min port X, din port Y". Den andre parten (klient B) kvitterer på dette ved å sende en IM-melding på fri form "Kvittert", 202 til den første parten (klient A) via IM-serveren.
Så starter klient A en normal prosedyre for etablering av en TCP-forbindelse, hvor klienten A på socket-en API starter en bindefunksjon (), som assosierer IP-adressen til klienten A med en socket, og en forbindelsesfunksjon (), som etablerer en forbindelse til den spesifiserte socket-en. Deretter initieres TCP-forbindelsen fra porten X hos verten til klienten A til porten Y hos verten til klient B 204. Klienten B utfører de samme handlingene i motsatt retning: initierer binde-() og forbindelsesfunksjonen () på socket-en API, og så intitierer TCP-forbindelsen fra porten Y hos verten til klienten B til porten X hos verten til klienten A 206.
Følgelig har den første handshakemeldingen 208 sendt av klienten A formen av: TCP-datapakke, avsenderport X, mottakerport Y, flagg SYN, SEQ-nummer I, ACK-nummer 0. Likedan har den første handshakemeldingen 210 sendt av klienten B formen: TCP-datapakke, avsenderport Y, mottakerport X, flagg SYN, SEQ-nummer J, ACK-nummer 0. Etter det er status på socket-ene for begge klientene A og B SYN_SENT (Synkroniseringssegment sendt, "Synchronize segment sent").
Så mottas den første handshakemeldingen 208 som er sendt av klienten A ved brannveggen FW A. Brannveggen FW A gransker 212 datapakken og noterer at det er en TCP SYN datapakke som går fra klienten A til klienten B. Den "stateful" brannveggen FW A danner en regel om at returnerende datapakker med et samsvarende ACK-nummer vil bli sluppet igjennom brannveggen. Likeledes mottas den første handshakemeldingen sendt av klient B ved brannvegg FW B som gransker 214 datapakken ("en TCP SYN-datapakke som går fra klienten B til klienten A"), og danner en regel om at returnerende datapakker med samsvarende ACK-nummer vil bli sluppet igjennom brannveggen.
Etter å ha sendt den første handshakemeldingen, sender klienten A en IM-melding 216 til klient B via IM-serveren, hvor IM-meldingen indikerer at synkroniseringssegmentet er sendt og den omfatter et sekvensnummer "I". Igjen, IM-meldingen 216 kan være av en fri form, men den bør gi uttrykk for følgende ide: "TCP SYN-datapakke sendt, SEQ-nummer I". Respektivt så sender klienten B en IM-melding 218 til klienten A via IM-serveren: "TCP SYN-datapakke sendt, SEQ-nummer J".
I mellomtiden mottar brannveggen FW A, som beskytter vertsdatamaskinen til klienten A, en første handshakemelding 210 sendt av klienten B. Imidlertid, egenskapene til den mottatte TCP SYN-datapakken samsvarer ikke med noen tillatt regel for den "stateful" brannveggen FW A, hvorved brannveggen FW A bestemmer seg for å avvise 220 datapakken. Tilsvarende avviser brannveggen FW B 222 TCP SYN-datapakken sendt av klient A.
Takket være IM-meldingene 216, 218 sendt av klientene A og B til hverandre, vil begge klientene på dette trinnet nå være klar over sekvensnumrene som den andre endens brannvegg forventer. Dette setter begge klienter i stand til å danne 224, 226 SYN_ACK-datapakker ifølge en standard TCP-handshake, disse SYN_ACK-datapakker blir dannet basert på informasjon mottatt i IM-meldingene 216, 218, og disse SYN_ACK-datapakker samsvarer med reglene til begge brannveggene FW A og FW B. SYN_ACK-datapakkene er dannet med "raw socket"-er, som tillater klientene å spesifisere dataene som skal inkluderes i datapakkene.
Følgelig danner klienten A en SYN_ACK-datapakke som omfatter informasjonen: TCP-datapakke, avsenderport X, mottakerport Y, flagg SYN + ACK, SEQ-nummer I, ACK-nummer J; denne SYN_ACK-datapakken blir sendt 228 til klienten B. Tilsvarende danner klienten B en SYN_ACK-datapakke som omfatter informasjonen: TCP-datapakke, avsenderport Y, mottakerport X, flagg SYN + ACK, SEQ-nummer J, ACK-nummer I; denne SYN_ACK-datapakken blir sendt 230 til klienten A.
Så mottas SYN_ACK-datapakken 228 som ble sendt av klienten A hos brannveggen FW A. Brannveggen FW A gransker 232 datapakken og noterer at den er en isolert TCP SYN_ACK-datapakke som går utenfor nettverket. Den "stateful" brannveggen FW A kan sannsynligvis ikke danne noen regel for returnerende datapakker, siden i en standard TCP-handshakeprosedyre skal ikke en SYN_ACK-datapakke stamme fra den beskyttede klienten, dvs. fra innsiden av brannveggen. Imidlertid er brannveggen satt opp til å slippe alle utgående forbindelser igjennom, og derfor blir SYN_ACK-datapakken sendt videre til klient B. SYN_ACK-datapakken som er sendt 230 av klienten B blir også mottatt av brannveggen FW B, hvor den blir håndtert 234 på samme måte som beskrevet over.
SYN_ACK-datapakken som er sendt 228 fra klienten A og videresendt av brannveggen FW A blir mottatt hos brannveggen FW B som noterer 236 at en TCP-datapakke fra klienten A er mottatt, hvilken datapakke omfatter flagg SYN + ACK og har et ACK-nummer J. Denne typen av SYN_ACK-datapakker samsvarer med den forventede inngående regelen, som tidligere ble dannet i brannveggen FW B 214, "returnerende datapakker til en SYN-datapakke med et samsvarende ACK-nummer vil bli tillatt å slippe igjennom brannveggen".
Følgelig blir SYN_ACK-datapakken videresendt 238 til klient B, som svarer 240 med en ACK-datapakke ifølge standard TCP-handshakeprosedyre, hvori forbindelsesfunksjonen () opererer som en treveis handshake: en klient sender en SYN-datapakke, mottar en SYN_ACK-datapakke og til slutt kvitterer på denne med en ACK-datapakke. Siden klienten B nå mottar en SYN_ACK-datapakke som svar på sendingen av en SYN-datapakke, vil den automatisk svare med en ACK-datapakke, selv om SYN_ACK-datapakken ikke er dannet i samsvar med en normal forbindelses-handshakeprosedyre (). Tilsvarende vil SYN_ACK-datapakken som er sendt 230 av klienten B og videresendt av brannveggen FW B bli mottatt av brannveggen FW A, som aksepterer 242 datapakken og videresender 244 den til klienten A som svarer 246 med en ACK-datapakke.
På dette trinnet har begge klientene A og B utført de handlingene som er krevd i en standard TCP-handshakeprosedyre, hvorved status for socket-ene for begge klientene A og B er ESTABLISHED (etablert), dvs. en toveis TCP-forbindelse er etablert mellom klientene A og B og den faktiske filoverføringen kan begynne. Ved å danne SYN_ACK-datapakkene med "raw socket"-ene basert på informasjonen fra de mellomliggende IM-meldingene, så har klientene A og B, så vel som brannveggene FW A og FW B, blitt villedet til å feiltolke situasjonen som at de bare har en enveis utgående forbindelse. Det er viktig å notere at klientene opererer med sine virkelige IP-adresser, og ingen juksing er nødvendig. Følgelig så er ikke det ovenfor beskrevne arrangementet påvirket av noen anti-jukse-innstillinger i nettverket.
Følgelig er utførelsesformene basert tilstandene ("statefulness") for brannveggene, noe som betyr at for å støtte utførelsesformene, så trenger ikke brannveggene noen funksjonalitet for å være klar over applikasjonene eller de trenger ikke støtte noen brannveggsstyrende protokoller, slik som UPnP. På denne måten forenkler utførelsesformene implementeringen av brannveggen. Brannveggene kan være implementert som et program eller en maskinvareanordning, og de kan være betjent av en privatperson eller en nettverksoperatør.
Klientterminalene A og B kan være PC-baserte datamaskiner, kjent som slike, forbundet med et hvilket som helst datakommunikasjonsnettverk, eller klientterminalene A og B kan være trådløse terminaler, som mobilstasjoner eller PDA-enheter, forbundet med et hvilket som helst datakommunikasjonsnettverk via et mobilkommunikasjonsnettverk. Følgelig omfatter klientterminalen, som illustrert i Fig. 3, minne MEM ("memory"), et brukergrensesnitt IU ("user interface"), l/O betyr l/O for anordning av dataoverføring med andre enheter, og en eller flere sentrale dataprosesseringsenheter CPU som omfatter i det minste en prosessor. Minnet MEM omfatter en energiuavhengig del som for å lagre applikasjonene som styrer den sentrale dataprosesseringsenheten CPU og annen data som må lagres og en energiavhengig del som skal brukes til behandling av midlertidige data.
Handlingene til utførelsene blir fortrinnsvis automatisert i klientterminalene i den grad at ingen brukerinnblanding er nødvendig under etableringen av en TCP-forbindelse i samsvar med utførelsesformene. Trinnene ifølge utførelsesformene kan i stor grad bli implementert med programvarekommandoer som utføres i de sentrale dataprosesseringsenhetene CPU for klientterminalen illustrert i Fig. 3. På denne måten er de nevnte midlene for å utføre framgangsmåten beskrevet over fortrinnsvis implementert som datamaskinprogramvarekode. Datamaskin-programvaren kan bli lagret i en hvilken som helst minnemidler, slik som harddisken på en PC eller en CD-ROM-plate, hvorfra den kan lastes inn i minnet på klientterminalen. Datamaskin-programvaren kan også bli lastet via et nettverk, for eksempel ved å bruke en TCP/IP-protokoll-stakk. Det er også mulig å bruke hardwareløsninger eller en kombinasjon av hardware og programvareløsninger for å implementere de oppfinneriske midlene.
Det er opplagt at den foreliggende oppfinnelsen ikke er begrenset kun til utførelsesformene fremvist ovenfor, men den kan modifiseres innenfor omfanget av de vedlagte patentkrav.

Claims (10)

1. Framgangsmåte for å etablere en TCP-forbindelse mellom en første klientterminal og en andre klientterminal, hvor den nevnte første klientterminalen er beskyttet av en første "stateful" brannvegg og den nevnte andre klientterminal er beskyttet av en andre "stateful" brannvegg, og begge klientterminalene omfatter midler for å sende meldinger til hverandre via en meldingsserver,karakterisert vedat framgangsmåten omfatter: å bli enige om etableringen av en TCP-forbindelse mellom klientterminalene ved å sende en melding fra den første klientterminalen til den andre klientterminalen via meldingsserveren, hvor den nevnte meldingen omfatter i det minste portnumre for klientterminalene som skal bli brukt på den nevnte forbindelsen, å starte en etableringsprosedyre for en TCP-forbindelse i begge klientterminalene; som svar på sending av en første handshakemelding av etableringsprosedyren for TCP-forbindelsen, sende en melding som indikerer et sekvensnummer for den første handshakemeldingen fra begge klientterminalene til den motsatte klientterminalen via meldingsserveren; som svar på at brannveggene til de motsatte klientterminalene avviser den første handshakemeldingen, danne en kvitteringsmelding til den nevnte første handshakemeldingen i begge klientterminaler ved bruk av en "raw socket", hvor kvitteringsmeldingen omfatter det mottatte sekvensnummer som et kvitteringsnummer, og sende den "raw sockef-baserte kvitteringsmeldingen til den motsatte klientterminalen for en ytterligere kvittering ifølge etableringsprosedyren for TCP-forbindelsen, hvor den nevnte kvitteringen fullfører etableringen av TCP-forbindelsen.
2. Framgangsmåte ifølge patentkrav 1,karakterisert vedat den første handshakemeldingen for etableringsprosedyren for TCP-forbindelsen er en TCP SYN-datapakke, hvor metoden videre omfatter: danne, i de "stateful" brannveggene som beskytter klientterminalene, en regel som tillater bare en TCP SYN_ACK-datapakke med et samsvarende kvitteringsnummer til å passere igjennom brannveggene i inngående retning.
3. Framgangsmåte ifølge patentkrav 2,karakterisert vedat framgangsmåten videre omfatter: motta i de "stateful" brannveggene som beskytter klientterminalene, den "raw sockef-baserte kvitteringsmeldingen sendt av den motsatte klientterminalen, identifisere kvitteringsmeldingen som en TCP SYN_ACK-datapakke, og tillate kvitteringsmeldingen å passere igjennom brannveggene i inngående retning som svar på kvitteringsnummeret til kvitteringsmeldingen som samsvarer med sekvensnummeret til TCP SYN datapakken.
4. Kommunikasjonssystem hvor systemet omfatter: - en første klientterminal; - en andre klientterminal; - en første "stateful" brannvegg som beskytter den nevnte første klientterminal; - en andre "stateful" brannvegg som beskytter den nevnte andre klientterminal; - en meldingsserver som er satt opp til å levere meldinger mellom terminaler; karakterisert vedat, i kommunikasjonssystemet er: klientterminalene satt opp til å bli enige om å etablere en TCP-forbindelse seg imellom ved å sende en melding fra den første klientterminalen til den andre klientterminalen via en meldingsserver, hvor den nevnte meldingen omfatter i det minste portnumre til klientterminalene som skal brukes på nevnte forbindelse, begge klientterminalene satt opp til å starte en etableringsprosedyre for TCP-forbindelse ved å sende en første handshakemelding av etableringsprosedyren for TCP-forbindelsen, begge klientterminalene satt opp til å sende en melding som indikerer et sekvensnummer på den første handshakemeldingen til den motsatte klientterminalen via meldingsserveren, begge klientterminalene satt opp til, som svar på at brannveggene til de motsatte klientterminalene avviser den første handshakemeldingen, å danne en kvitteringsmelding til den nevnte første handshakemeldingen ved å bruke en "raw socket", hvor kvitteringsmeldingen omfatter det mottatte sekvensnummeret som et kvitteringsnummer, og begge klientterminalene satt opp til å sende den "raw sockef-baserte til den motsatte klientterminalen for ytterligere kvittering ifølge etableringsprosedyren for TCP-forbindelsen, hvor den nevnte kvitteringen fullfører etableringen av TCP-forbindelsen.
5. Kommunikasjonssystem ifølge patentkrav 4,karakterisert vedat den første handshakemeldingen til etableringsprosedyren for TCP-forbindelsen er en TCP SYN-datapakke, og de "stateful" brannveggene som beskytter klientterminalene er anordnet til å danne en regel som tillater bare en TCP SYN_ACK-datapakke med et samsvarende kvitteringsnummer til å passere igjennom brannveggene i inngående retning.
6. Kommunikasjonssystem ifølge patentkrav 5,karakterisert vedat de "stateful" brannveggene som beskytter klientterminalene er anordnet til å: motta den "raw sockef-baserte kvitteringsmeldingen sendt av den motsatte klientterminalen; identifisere kvitteringsmeldingen som en TCP SYN_ACK-datapakke, og tillate kvitteringsmeldingen å bli sendt igjennom brannveggene i inngående retning som svar på kvitteringsnummeret til kvitteringsmeldingen som samsvarer med sekvensnummeret til TCP SYN-datapakken.
7. Kommunikasjonssystem ifølge et av patentkravene 4-6,karakterisert vedat meldingsserveren er en direktemeldingsserver.
8. Klientterminal i ettelekommunikasjonssystem, hvor klientterminalen blir beskyttet aven "stateful" brannvegg, og klientterminalen omfatter midler for å sende meldinger til i det minste en andre klientterminal via en meldingsserver,karakterisert vedat klientterminalen omfatter: midler for å bli enige om å etablere en TCP-forbindelse til den andre klientterminalen ved å utveksle meldinger via meldingsserveren, hvor i det minste en av de nevnte meldingene omfatter i det minste portnumre til klientterminalene som skal brukes på den nevnte forbindelsen, midler for å starte en etableringsprosedyre for TCP-forbindelse ved å sende en første handshakemelding for etableringsprosedyren for TCP-forbindelsen, midler for å sende en melding som indikerer et sekvensnummer til den første handshakemeldingen til den andre klientterminalen via meldingsserveren; midler for å motta, via meldingsserveren, en melding som indikerer et sekvensnummer for den første handshakemelding sendt av den andre klientterminalen; midler for å danne en kvitteringsmelding til den nevnte første handshakemelding sendt av den andre klientterminalen ved bruk av en "raw socket", hvor kvitteringsmeldingen omfatter det mottatte sekvensnummeret som et kvitteringsnummer; midler for å sende den "raw sockef-baserte kvitteringsmeldingen til den andre klientterminalen; midler for å motta en "raw sockef-basert kvitteringsmelding fra den andre klientterminalen, hvor den nevnte kvitteringsmeldingen omfatter sekvensnummeret fra den første handshakemeldingen sendt til den andre klientterminalen, og midler for å sende en kvittering på den mottatte "raw sockef-baserte kvitteringsmeldingen, hvor den nevnte kvitteringen fullfører etableringen av TCP-forbindelsen.
9. Klientterminal ifølge patentkrav 8,karakterisert vedat de nevnte midler for å sende meldinger til i det minste en andre klientterminal via en meldingsserver omfatter en direktemeldings-klientapplikasjon.
10. Datamaskinprogramprodukt, lagret på et datamaskinlesbart medium og eksekverbart i en databehandlingsanordning, for å etablere en TCP-forbindelse,karakterisert vedat datamaskinprogramproduktet omfatter: en datamaskinprogramkodedel for å bli enig om å etablere en TCP-forbindelse til den andre klientterminalen ved å utveksle meldinger via en meldingsserver, hvor i det minste en av de nevnte meldingene omfatter i det minste portnumre til klientterminalene som skal brukes på nevnte forbindelse, en datamaskinprogramkodedel for å starte en etableringsprosedyre for TCP-forbindelse ved å sende en første handshakemelding for etableringsprosedyren for TCP-forbindelsen, en datamaskinprogramkodedel for å sende en melding som indikerer et sekvensnummer for den første handshakemeldingen til den andre klientterminalen via meldingsserveren, en datamaskinprogramkodedel for å motta, via meldingsserveren, en melding som indikerer et sekvensnummer for den første handshakemeldingen sendt av den andre klientterminalen, en datamaskinprogramkodedel for å danne en kvitteringsmelding til den nevnte første handshakemeldingen sendt av den andre klientterminalen ved å bruke en raw socket, hvor kvitteringsmeldingen omfatter det mottatte sekvensnummeret som et kvitteringsnummer, en datamaskinprogramkodedel for å sende den "raw sockef-baserte kvitteringsmeldingen til den andre klientterminalen, en datamaskinprogramkodedel for å motta en "raw sockef-basert kvitteringsmelding fra den andre klientterminalen, hvor den nevnte kvitteringsmeldingen omfatter sekvensnummeret på den første handshakemeldingen sendt til den andre klientterminalen, og en datamaskinprogramkodedel for å sende en kvittering på den mottatte "raw sockef-baserte kvitteringsmeldingen, hvor den nevnte kvitteringen fullfører etableringen av TCP-forbindelsen.
NO20071396A 2005-06-07 2007-03-15 Tilkoblingsbarhet over en "stateful" brannvegg NO337990B1 (no)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FI20055295A FI119303B (fi) 2005-06-07 2005-06-07 Liitettävyys tilatietoisten palomuurien välillä
PCT/FI2006/050238 WO2006131600A1 (en) 2005-06-07 2006-06-07 Connectivity over stateful firewalls

Publications (2)

Publication Number Publication Date
NO20071396L NO20071396L (no) 2008-02-26
NO337990B1 true NO337990B1 (no) 2016-07-18

Family

ID=34778432

Family Applications (1)

Application Number Title Priority Date Filing Date
NO20071396A NO337990B1 (no) 2005-06-07 2007-03-15 Tilkoblingsbarhet over en "stateful" brannvegg

Country Status (9)

Country Link
US (1) US8332532B2 (no)
EP (1) EP1792468B1 (no)
AT (1) ATE385121T1 (no)
DE (1) DE602006000489T2 (no)
DK (1) DK1792468T3 (no)
ES (1) ES2299169T3 (no)
FI (1) FI119303B (no)
NO (1) NO337990B1 (no)
WO (1) WO2006131600A1 (no)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7899031B2 (en) 2007-11-20 2011-03-01 Microsoft Corporation Locally terminating an established connection
JP2010200300A (ja) * 2009-01-28 2010-09-09 Meidensha Corp Tcp通信方式
US20110219113A1 (en) * 2010-03-02 2011-09-08 Grewal Avininder Pal Singh Method and system for client assisted stateful handling of packets in a communications network
US8776207B2 (en) 2011-02-16 2014-07-08 Fortinet, Inc. Load balancing in a network with session information
CN102130910B (zh) * 2011-02-28 2015-04-29 华为技术有限公司 Tcp代理插入和卸载方法及业务网关设备
US9998545B2 (en) * 2011-04-02 2018-06-12 Open Invention Network, Llc System and method for improved handshake protocol
GB201210598D0 (en) 2012-06-14 2012-08-01 Microsoft Corp Notification of communication events
GB201210600D0 (en) 2012-06-14 2012-08-01 Microsoft Corp Call invites
GB2504461B (en) * 2012-06-14 2014-12-03 Microsoft Corp Notification of communication events
CN103401890B (zh) * 2012-06-14 2017-03-01 微软技术许可有限责任公司 用于通信事件的通知的装置和方法
GB201210596D0 (en) 2012-06-14 2012-08-01 Microsoft Corp Notification of communication events
KR101563059B1 (ko) * 2012-11-19 2015-10-23 삼성에스디에스 주식회사 안티 멀웨어 시스템 및 안티 멀웨어 시스템에서의 데이터 처리 방법
US9426262B2 (en) 2014-04-07 2016-08-23 Cisco Technology, Inc. Transport control protocol sequence number recovery in stateful devices
US9825913B2 (en) * 2014-06-04 2017-11-21 Nicira, Inc. Use of stateless marking to speed up stateful firewall rule processing
GB2531586A (en) 2014-10-23 2016-04-27 Ibm Methods and systems for starting computerized system modules
US10958625B1 (en) * 2018-03-06 2021-03-23 F5 Networks, Inc. Methods for secure access to services behind a firewall and devices thereof
US11875172B2 (en) 2020-09-28 2024-01-16 VMware LLC Bare metal computer for booting copies of VM images on multiple computing devices using a smart NIC
US11995024B2 (en) 2021-12-22 2024-05-28 VMware LLC State sharing between smart NICs
US11928062B2 (en) 2022-06-21 2024-03-12 VMware LLC Accelerating data message classification with smart NICs
US11899594B2 (en) 2022-06-21 2024-02-13 VMware LLC Maintenance of data message classification cache on smart NIC

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6088796A (en) * 1998-08-06 2000-07-11 Cianfrocca; Francis Secure middleware and server control system for querying through a network firewall
US20050125532A1 (en) * 2000-05-26 2005-06-09 Gur Kimchi Traversing firewalls and nats
US7028051B1 (en) 2000-09-29 2006-04-11 Ugs Corp. Method of real-time business collaboration
AU2001297602A1 (en) * 2000-12-14 2002-09-19 Vocaltec Communications Ltd. Traversing firewalls and nats
US7043644B2 (en) * 2001-01-31 2006-05-09 Qurio Holdings, Inc. Facilitating file access from firewall-protected nodes in a peer-to-peer network
US7117267B2 (en) * 2001-06-28 2006-10-03 Sun Microsystems, Inc. System and method for providing tunnel connections between entities in a messaging system
US7207061B2 (en) * 2001-08-31 2007-04-17 International Business Machines Corporation State machine for accessing a stealth firewall
US7620808B2 (en) * 2003-06-19 2009-11-17 Nokia Corporation Security of a communication system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GUHA SAIKAT et al.: "NUTSS: A SIP-based approach to UDP and TCP network connectivity" PROCEEDINGS OF THE ACM SIGCOMM 2004 WORKSHOPS; PORTLAND, OR, UNITED STATES, 30 August 2004 (2004-08-30), - 3 September 2004 (2004-09-03) pages 1-6, Dated: 01.01.0001 *

Also Published As

Publication number Publication date
US20080028097A1 (en) 2008-01-31
ATE385121T1 (de) 2008-02-15
FI20055295A (fi) 2006-12-08
ES2299169T3 (es) 2008-05-16
DE602006000489D1 (no) 2008-03-13
DE602006000489T2 (de) 2009-01-22
FI119303B (fi) 2008-09-30
NO20071396L (no) 2008-02-26
EP1792468A1 (en) 2007-06-06
FI20055295A0 (fi) 2005-06-07
DK1792468T3 (da) 2008-05-26
EP1792468B1 (en) 2008-01-23
US8332532B2 (en) 2012-12-11
WO2006131600A1 (en) 2006-12-14

Similar Documents

Publication Publication Date Title
NO337990B1 (no) Tilkoblingsbarhet over en "stateful" brannvegg
US9634931B2 (en) Providing network communications using virtualization based on protocol information in packet
AU2012262053B2 (en) System and method for secure instant messaging
US9078128B2 (en) System and method for secure identity service
US7890637B1 (en) Secure communications in a system having multi-homed devices
US20060221946A1 (en) Connection establishment on a tcp offload engine
CN105162883A (zh) 网络负载均衡处理系统及其方法和装置
AU2012262053A1 (en) System and method for secure instant messaging
WO2012129121A1 (en) Apparatus and method for managing peer-to-peer connections between different service providers
WO2007089717A2 (en) System and method for data transfer in a peer-to-peer hybrid communication network
US11388138B2 (en) Communication system, address notification apparatus, communication control apparatus, terminal, communication method, and program
US11677721B2 (en) Packet transmission method using proxy server and system thereof
US9231907B2 (en) Method for establishing connection between communication apparatuses, communication apparatus, and server apparatus
CN111064755B (zh) 一种数据保护方法、装置、计算机设备和存储介质
US20060095365A1 (en) System and method for conducting an auction in a peer-to peer network
EP4181436A1 (en) Data processing method and apparatus, related device and storage medium
US9413653B2 (en) Communication system and server
CN107948165B (zh) 一种基于私有协议的安全送播系统及方法
KR102033816B1 (ko) 보조 데이터 전송 방식
CN118540390A (zh) 报文处理方法、操作系统、存储介质及计算机设备
JP2015133552A (ja) 通信試験方法、装置及びプログラム
JP2006261958A (ja) 通信システム、通信方法、および通信プログラム

Legal Events

Date Code Title Description
MM1K Lapsed by not paying the annual fees