FI113927B - Menetelmä verkkopakettien sieppaamiseksi tietokonelaitteessa - Google Patents

Menetelmä verkkopakettien sieppaamiseksi tietokonelaitteessa Download PDF

Info

Publication number
FI113927B
FI113927B FI20002477A FI20002477A FI113927B FI 113927 B FI113927 B FI 113927B FI 20002477 A FI20002477 A FI 20002477A FI 20002477 A FI20002477 A FI 20002477A FI 113927 B FI113927 B FI 113927B
Authority
FI
Finland
Prior art keywords
network
function
module
protocol
substitution
Prior art date
Application number
FI20002477A
Other languages
English (en)
Swedish (sv)
Other versions
FI20002477A (fi
FI20002477A0 (fi
Inventor
Niko Haatainen
Tero Kivinen
Jussi Kukkonen
Tatu Yloenen
Original Assignee
Ssh Comm Security Corp
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 Ssh Comm Security Corp filed Critical Ssh Comm Security Corp
Publication of FI20002477A0 publication Critical patent/FI20002477A0/fi
Publication of FI20002477A publication Critical patent/FI20002477A/fi
Application granted granted Critical
Publication of FI113927B publication Critical patent/FI113927B/fi

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

t 113927
Menetelmä verkkopakettien sieppaamiseksi tietokonelaitteessa - Metod för att snappa upp nätets paketer i en nätansluten apparat
KEKSINNÖN ALA
5 Keksintö liittyy verkossa siirrettävien datapakettien käsittelyyn. Erityisesti keksintö liittyy datapakettien sieppaamiseen, toisin sanoen siihen, että järjestetään pääsy olennaisesti kaikkiin tietyn järjestelmän lähettämiin ja vastaanottamiin datapakettei-hin.
KEKSINNÖN TAUSTA
10 Internetin kasvu ja sen käyttö yhä uusiin sovelluksiin on johtanut tilanteeseen, jossa on tuottoisaa tuoda markkinoille uusia palveluja, jotka vaikuttavat verkkopakettien siirtämistapaan verkossa. Esimerkkeinä tällaisista tuotteista ja palveluista mainittakoon: - Verkkotason salaussovellukset, esimerkiksi yksityiset virtuaaliverkot, VPN:t (Vir-15 tual Private Networks), sellaisina kuin ne on kuvattu esimerkiksi viitejulkaisussa SWE98, joka sisältyy oheiseen viitejulkaisujen listaan. Nämä sovellukset salaavat datapaketteja ja purkavat pakettien salauksia, kun paketteja siirretään järjestelmään ja sieltä pois, taatakseen siirrettävän datan turvallisuuden. VPN:t ovat olennaisen • tärkeitä, kun halutaan harjoittaa kaupallista toimintaa (ostamista ja myymistä) luo- * .:, 20 tettavasti julkisessa pakettikytkentäisessä tietoverkossa, esimerkiksi Internetissä, ja käyttää Internetiä erittäin luottamuksellisissa liiketoimintasovelluksissa.
• · · -Palomuurit, joita on kuvattu esimerkiksi oheisen viitejulkaisulistan julkaisussa : CB94. Palomuurit ovat verkon turvajärjestelyjä, jotka suodattavat verkkoliikennettä määrättyjen kriteerien mukaisesti ja päästävät läpi vain tietyt paketit. Palomuureja .:. 25 käytetään yleensä jonkin yleisen käyttöjärjestelmän laajennuksena, mutta ne voidaan »Ml . ’ · ·. toteuttaa myös erityisinä laiteratkaisuina.
···: -Tunkeutumisen ilmaiseminen ja pakettien nuuskiminen. Monet tunkeutumisen il- ;“· maisemiseen ja verkon tarkkailuun käytetyt työkalut tarvitsevat pääsyä paketteina , verkossa siirrettävään tietoon. Samanlaisten työkalujen avulla kerätään myös tilasto- ’* ; 30 tietoja verkkoliikenteestä (esim. oheiseen viitejulkaisuluetteloon sisältyvässä julkai- ‘ ‘ sussa Waldbusser97 kuvatulla tavalla).
2 113927 - Multimediasovellukset. On ennustettu, että 25 % maailmanlaajuisen tietoliikenteen markkina-arvosta on jo muutaman vuoden kuluttua IP-pohjaista (IP = Internet Protocol), ja suuri osa tarvittavasta dataliikenteestä siirtyy julkisessa Internetissä siten, että päätteinä toimivat yleistietokoneet. Tällaisissa verkoissa toimiville vuorovaikut- 5 teisille video- ja audiosovelluksille on olennaisen tärkeää saavuttaa taattu palvelutaso QoS (Quality of Service), kuten on esitetty esimerkiksi oheiseen viitejulkaisuluet-teloon sisältyvässä julkaisussa SCFJ96.
- Päätelaitteiden liikkuvuus. Liikkuvuudesta on tulossa yhä tärkeämpi tekijä myös pakettikytkentäisissä tietoverkoissa ja Internetissä, kuten on selostettu esimerkiksi 10 oheiseen viitejulkaisuluetteloon sisältyvässä julkaisussa Perkinson96. Useissa tapauksissa liikkuvuuden tukea tarjotaan lisäarvona jo olemassa olevalle järjestelmälle, ja se edellyttää mahdollisuutta tulevien ja lähtevien datapakettien modifiointiin ja uudelleen suuntaamiseen.
Kaikki edellä mainituista sovelluksista käyttävät erityisiä protokollia, joita ei kaikis-15 sa laajalle levinneissä käyttöjärjestelmissä ole käytettävissä. Monissa tapauksissa myyjä haluaa tarjota tukea mainituille palveluille laajassa käytössä olevissa perusohjelmistoissa, joissa kyseistä tukea ei ole muuten helposti saatavilla. Mainitun tuen käyttöönotto usein edellyttää, että käyttöönottaja saa pääsyn kaikkiin järjestelmän lähettämiin ja vastaanottamiin datapaketteihin. Moduulia, joka pääsyn mahdollistaa, 20 kutsutaan paketin sieppaajaksi. Tyypillisesti tällainen moduuli tarjoaa sovellukselle : ·* myös tietoa saatavissa olevista verkkorajapinnoista ja niiden järjestelyistä (esim.
• · : verkko-osoitteista). Sovellus puolestaan käsittää yleensä ydintilaisen komponentin, _; i ’ joka hoitaa paketin reaaliaikaisen käsittelyn, ja normaalin käyttäjätilaisen sovelluk- ;*·.· sen, joka hoitaa hallinnon ja muut sellaiset tehtävät, jotka eivät ole aikasidonnaisia • » . · · . 25 ja/tai edellytä käyttäjän osallistumista.
Yleisesti voidaan sanoa, että tarve järjestelmässä sisään ja ulos virtaavien pakettien sieppaamiseen on lisääntynyt, ja sen tyydyttäminen käy yhä tärkeämmäksi. Tilanteen .,; ·' ovat havainneet sekä alan ohjelmoijat että kaupalliset toimijat, samoin käyttöjärjes- : telmien myyjät, esimerkiksi Microsoft-yhtiö. Maailmassa tehdään valtavasti työtä ‘ . 30 paketinsieppaustoimintojen yhdistämiseksi verkkojärjestelmiin ja niihin liittyviin ohjelmiin.
t I
. ·. : Olemassa olevat ratkaisut pakettien sieppaamisen ongelmaan sijoittuvat pääsääntöi- sesti seuraaviin kolmeen ryhmään A), B) ja C).
> I
3 113927 A) Väliajurit. (Muun muassa) TCP/IP-protokollapino, jossa TCP/IP tulee sanoista Transmission Control Protocol / Internet Protocol, on yleensä koottu kerroksittain siten, että verkkolaitteiden ajurit tarjoavat vakiorajapinnan erityiseen laitteeseen, joka tunnetaan nimellä verkkoadapteri, ja protokollapinot sisältävät erilaisia verkko- 5 protokollia. Protokollapinot on tehty riippumattomiksi laiteratkaisuista käyttämällä vakiorajapintaa, joka laiteajureiden täytyy sisältää. Windows-käyttöjärjestelmässä, missä Windows on Microsoft-yhtiön rekisteröity tavaramerkki, tästä rajapinnasta käytetään nimitystä NDIS (Network Driver Interface Specification), kuten on esitetty esimerkiksi oheiseen viitejulkaisuluetteloon sisältyvässä julkaisussa Win4DDK. 10 Sun Solaris -käyttöjärjestelmässä, joka viittaa Sun Microsystems -yhtiön rekisteröityihin tavaramerkkeihin Sun, Solaris ja Sun Solaris, vastaavista toiminnoista huolehtii STREAMS-rajapinta, kuten on selostettu esimerkiksi oheiseen viitejulkaisuluetteloon sisältyvässä julkaisussa STREAMS93.
Väliajurit saavat helposti tukea ainakin käyttöjärjestelmissä Microsoft Windows NT 15 4.0 (Microsoftin rekisteröity tavaramerkki) ja Sun Solaris. Microsoftilla on jopa näytekoodi väliajurien kehittämiseksi edellä kuvatun kaltaisille sovelluksille. Saatavilla on ainakin kaksi tällaista näytettä, ja monet alan tuotteiden myyjät ovat tuoneet markkinoille tähän tekniikkaan perustuvia tuotteita.
B) WINSOCK-sieppaus. Alalla on tunnettua, että WINSOCK.DLL voidaan korvata 20 useilla eri tuotteilla, kuten on selostettu esimerkiksi oheiseen viitejulkaisuluetteloon I » ; ' > * sisältyvissä julkaisuissa Bonner96 ja QS96. WINSOCK.DLL on Windows-jarjestel- män tiedosto. Jotkut tuotteet käyttävät väliajureita LSP-tasolla (Layered Service • - · Providers), kuten on selostettu esimerkiksi oheiseen viitejulkaisuluetteloon sisälty- <4*1 vässä julkaisussa Win4DDK. Microsoft on myös julkaissut näytekoodin liikenteen . · · ·. 25 sieppaamiseksi tällä tasolla.
• » * I * :: C) Käyttöjärjestelmien ulkopuolella sijaitsevat laitteet. Saatavilla on laitteistotuottei- ta, käytännössä pieniä laatikoita, jotka joko kiinnitetään lähinnä tietokoneen taakse ,,; J' tai upotetaan verkkoadaptereihin, ja jotka havaitsevat kaiken niiden läpi kulkevan :"'; verkkoliikenteen. Tällaisia laitteita on käytetty ainakin turvasovelluksissa sellaisten ' . 30 tehtävien hoitamiseen, jotka voitaisiin hoitaa myös sieppaamalla käyttöjärjestelmäs- ,, sä tapahtuva liikenne.
* »
* I
, \ : Edellä esitettyihin ryhmiin A) - C) kuuluvat, tunnetun tekniikan mukaiset ratkaisut t < 1 ,., j eivät ole osoittautuneet niin hyviksi, suorituskyvyltään korkealuokkaisiksi ja kestä viksi ratkaisuiksi, että ne toimisivat kaikissa laajalle levinneissä käyttöjärjestelmissä. 35 Erityisesti monet myyjät ovat havainneet, että on erittäin vaikea kehittää paketin- 4 113927 sieppaajia käyttöjärjestelmille Windows 95 ja Windows 98, joita käytetään varsin laajalti sekä nykyään että vastakin, vielä usean vuoden ajan.
Melkein kaikki ohjelmistotuotteet, jotka suorittavat pakettien sieppausta, käyttävät sieppauksen toteuttamiseen väliajureita. Kuvio 1 on yksinkertaistettu lohkokaavio, 5 joka esittää väliajurin tunnettua käyttöä erityisesti yhdessä Windows NT-käyttöjär-jestelmän kanssa. Ylimpänä kuviossa 1 nähdään sovellusohjelma, jossa on käyttäjä-tilainen asiakasosa 101. Senja verkkoprotokollalohkon 106 välillä voi olla väliele-menttejä, joilla ei ole nyt esillä olevan keksinnön kannalta merkitystä. Verkkoproto-kollalohko 106 sisältää verkkoprotokollat, esimerkiksi TCP/IP-protokollapinon. Vä-10 liajuri 107 sijaitsee protokollapinojen ja NIC-ajurin 108 välissä; niistä sen erottaa NDIS-rajapinta, jonka osat 102 ja 103 on esitetty erikseen kuviossa 1. NIC-ajuriloh-ko 108 on järjestetty hallinnoimaan suoraan verkkorajapintakorttia NIC (Network Interface Card) 109. Jälkimmäinen on laitteistokomponentti, yleensä laajennuskortti, joka on liitetty tietokoneen sisäiseen rinnakkaisväylään. Yleisemmin NIC-ajuria 108 15 voi nimittää verkkoadapteriksi. NIC-ajuri 108 sallii ylempien kerrosten lähettää ja vastaanottaa paketteja verkon kautta ja suorittaa valvontatehtäviä, esimerkiksi käsitellä keskeytyksiä ja nollata tai pysäyttää rajapintakortin 109. Se myös sallii ylempien kerrosten tehdä kyselyjä ja asettaa omat toiminnalliset ominaispiirteensä. Verkkoadapteri (eli NIC-ajuri 108) näkee väliajurin 107 protokollana, ja protokollaloh-20 kon 106 kannalta väliajuri 107 taas käyttäytyy kuin verkkoadapteri. Samaa NDIS-ra-japintaa käytetään väliajurin molemmin puolin, eli toisaalta lohkojen 106 ja 107 vä-’ Iillä, ja toisaalta lohkojen 107 ja 108 välillä. Verkkorajapintakortti 109 on yhdistetty • *’ ainakin yhteen fyysiseen siirtovälineeseen 110, joka voi olla esim. optinen kaapeli, • ·: koaksiaalikaapeli tai kierretty johdinpari.
• » * f i • i i .*". 25 Väliajuriratkaisu toimii hyvin Windows NT:ssä ja Solariksessa, jotka ovat olleet pa- .···. lomuuri- ja VPN-sovellusten pääasiallisia perusohjelmistoja. Viime vuosina on il mennyt kasvavaa kiinnostusta samanlaisten toimintojen sisällyttämiseen muihin käyttöjärjestelmiin, erityisesti Windows 95:een ja Windows 98:aan. Väliajurien ke- ‘; hittäminen näille järjestelmille on kuitenkin osoittautunut äärimmäisen haastavaksi » · 30 tehtäväksi.
4 I I I t ,. Huomattava ongelma mainittujen ajurien ohjelmoinnissa kyseisille järjestelmille on ; ollut yhteydenmuodostusrajapintojen tuki, kuten on selostettu esimerkiksi oheiseen • ’ - * viitejulkaisuluetteloon sisältyvässä julkaisussa Simpson94. Yhteydenmuodostusraja- : : pinta käyttää sarjaporttia ja modeemia muodostaakseen yhteyden Internetiin tai 35 muuhun verkkoon puhelinverkon kautta. Tyypillisiä tällaisille rajapinnoille ovat dynaamiset verkko-osoitteet ja se, että verkkoyhteys on käytettävissä vain osan aikaa.
5 113927
Yhteys muodostuu (siirtyy aktiiviseen, yhdistettyyn tilaan) ja katkeaa (siirtyy passiiviseen, ei-yhdistettyyn tilaan) kun käyttäjä yhdistää ja katkaisee linkin.
Suurin ongelma sieppaajien laatimiseksi yhteydenmuodostusrajapinnoille on ollut se, että Windows 95, Windows 98 ja Windows NT käyttävät NDIS-rajapintaan laa-5 jennuksia, joihin Microsoft omistaa oikeudet, järjestääkseen yhteydenmuodostus-toimintojen ja dynaamisten osoitteiden tarvitsemat lisätoiminnot. Microsoftin henkilökunta on suositellut, ettei näihin perusohjelmistoihin sisältyisi pakettien sieppausta, koska rajapinta on luonteeltaan yksityisomaisuutta. Moni on tiettävästi yrittänyt laatia väliajureita näille perusohjelmistoille, mutta useimmat vailla menestystä tai 10 varsin vaatimattomin tuloksin jopa monivuotisen kilpailevan tuotteen analysoinnin ja kehittelytyön jälkeen.
Muutama yhtiö on onnistunut kehittämään väliajurit mainituille perusohjelmistoille. Viime aikoina on kuitenkin havaittu, että myös väliajureilla on luotettavuusongelmia. Ajurit eivät ole toimineet kaikkien verkkoadaptereiden kanssa tai kaikkien 15 käyttöjärjestelmäversioiden kanssa, ja samalla kun yhä useammat myyjät tuovat markkinoille väliajureita käyttäviä tuotteita, käyttäjillä on vakavia yhteensopivuus-ongelmia samaan tietokoneeseen asennettujen mutta eri valmistajien tuottamien vä-liajurien kanssa. Erilaisia väliajureita on vaikea ja joskus jopa mahdoton saada sitoutumaan toisiinsa oikeassa järjestyksessä. Nämä ongelmat saattavat lopulta 20 johtaa siihen, että väliajurit katsotaan liian epäluotettaviksi yleiseen käyttöön.
:\ Toinen väliajureihin liittyvä ongelma on suorituskyky. Väliajurit lisäävät huomatta- ’ vasti verkkopaketin datapolulla tarvittavaa prosessointia. Dataa joudutaan ehkä T ‘. myös kopioimaan huomattavia määriä. Näin ollen pakettien sieppaamisesta väliaju- *,, * rien avulla on muodostumassa melkoinen suorituskyvyn pullonkaula suurissa sovel- 25 luksissa. NDIS-kirjasto sisältää myös eräitä väliajurien lukitusstrategioita, mikä to- dennäköisesti lisää kuormitusta ja tekee protokollien välisistä NIC-koodipoluista käytännöllisesti katsoen vuorosuuntaisia.
: . YHTEENVETO KEKSINNÖSTÄ : I Nyt esillä olevan keksinnön tavoitteena on tuoda esiin sellainen menetelmä ja järjes- 30 tely pakettien sieppaamiseksi, joka olisi laajalti yhteensopiva erilaisten verkkoadap- . ’ . tereiden, käyttöjärjestelmien, käyttöjärjestelmäversioiden ja kolmansien osapuolten ’ ; ohjelmistojen kanssa. Lisäksi keksinnön tavoitteena on tuoda esiin tällainen mene telmä ja järjestely, jonka lisäetuna on se, että jopa verrattain taitamattomat käyttäjät oppivat helposti sitä käyttämään.
6 113927
Keksinnön tavoitteet saavutetaan käyttämällä kehittynyttä menetelmää, josta tässä käytetään nimeä kytkentä ja jonka avulla päästään käsiksi kaikkiin tarvittaviin paketteihin ja niihin liittyvään tietoon, sekä luomalla järjestely, joka on ohjelmoitu sisältämään tällaisen menetelmän.
5 Keksinnön mukaisessa menetelmässä on ne tunnusomaiset vaiheet, jotka on esitetty menetelmää koskevan itsenäisen patenttivaatimuksen tunnusmerkkiosassa.
Lisäksi keksinnön kohteena on tietokonejärjestelmä verkkopakettien käsittelemiseksi. Tietokonejärjestelmässä on ne tunnusomaiset piirteet, jotka on lueteltu tietokonejärjestelmää koskevan itsenäisen patenttivaatimuksen tunnusmerkkiosassa.
10 Edelleen, keksinnön eräässä edullisessa suoritusmuodossa keksintö koskee paketin-sieppaajamoduulia verkkopakettien sieppaamiseksi tietokonejärjestelmässä, jossa on ensimmäinen verkkoadapteri, ensimmäinen protokollayksikkö ja joukko ennalta määrättyjä toimintoja verkkopakettien siirtämiseksi mainitun verkkoadapterin ja mainitun protokollayksikön välillä. Paketinsieppaajamodulin tunnusomaiset piirteet 15 on esitetty paketinsieppaajamodulia koskevan itsenäisen patenttivaatimuksen tunnusmerkkiosassa.
PIIRROSLUETTELO
Ne keksinnölliset piirteet, joita pidetään nyt esillä olevalle keksinnölle tunnusomai- : '·· sinä, on erityisesti tuotu esiin oheisissa patenttivaatimuksissa. Sen sijaan itse keksin- • · • '.· 20 tö, sekä sen rakenne että toimintaperiaatteet, samoin kuin sen muut tavoitteet ja *· edut, käyvät parhaiten ilmi seuraavasta eri suoritusmuotojen yksityiskohtaisesta ku- : * ·, · vauksesta ja siihen liittyvistä piirroksista.
• · I
• · ’; ·;' Kuvio 1 esittää tunnettua väliajurien käsitettä, '···* kuvioissa 2a, 2b ja 2c on esitetty kaaviomainen vertailu keksinnön ensimmäisen 25 suoritusmuodon ja tekniikan tason välillä, ,, i ·' kuvio 3 on yleisesitys vaiheista, jotka tarvitaan keksinnön ensimmäisen suori- r : tusmuodon soveltamiseksi, it’_; kuvio 4 esittää protokollan rekisteröitymistä, kuvio 5 esittää eräitä toimintokutsun yksityiskohtia, 30 kuvio 6 esittää kuviossa 5 kuvattujen yksityiskohtien käsittelyä, :, ’ · kuvio 7 esittää verkkoadapterin sitomista, •: “: kuvio 8 esittää lähtevän paketin käsittelyä, kuvio 9a esittää tunnettua tapaa saapuvan paketin käsittelemiseksi, 7 113927 kuvio 9b esittää saapuvan paketin käsittelyperiaatetta erään keksinnön edullisen suoritusmuodon mukaisesti, kuvio 9c esittää yksityiskohtaisesti saapuvan paketin käsittelyperiaatetta erään keksinnön edullisen suoritusmuodon mukaisesti, 5 kuvio 10 havainnollistaa keksinnön toisen suoritusmuodon periaatetta, kuvio 11 havainnollistaa yleisesti vaiheita, jotka tarvitaan keksinnön toisen suoritusmuodon soveltamiseksi, kuviot 12a ja 12b havainnollistavat keksinnön toisen suoritusmuodon käyttöä, kuvio 13 esittää keksinnön toisen suoritusmuodon mukaisen moduulin purkamis-10 ta, ja kuvio 14 esittää keksinnön mukaista laiteratkaisua.
KEKSINNÖN YKSITYISKOHTAINEN KUVAUS
Kytkennän käsite on tietokoneohjelmoinnissa ennestään tunnettu. Se tarkoittaa, että kutsu oletusarvoiseen järjestelmän palveluun (esimerkiksi toiminto-, keskeytys- tai 15 muistipaikkaan) suunnataan uudelleen eli "kytketään" toiseen, korvaavaan palveluun. Esimerkiksi käyttöjärjestelmässä MSDOS (Microsoft Disk Operating System) on sisäänrakennettu järjestelmä keskeytysten uudelleen suuntaamiseksi, kuten on esitetty esimerkiksi oheiseen viitejulkaisuluetteloon sisältyvässä julkaisussa MSDOS5. Monissa olioiden käyttöön suuntautuvissa ohjelmointikielissä on välineet 20 toimintojen suuntaamiseksi uudelleen johdannaisluokissa (esim. C++ -virtuaalitoi- • · ! *·· minnot, viitejulkaisu ES90). Lisp-tyyppiset ohjelmointikielet ovat jo pitkään tuke- • · • neet tiettyjen toimintojen kytkemistä, kuten on esitetty esimerkiksi oheisessa viite- •: · julkaisussa Steele90.
I t
Monet käyttöjärjestelmät tarjoavat kytkentöjä tai muun tyyppistä uudelleen suunta- • · 25 usta tietyille rajoitetuille toiminnoille. Esimerkiksi Linuxin ja FreeBSD:n tunnettuja ’···’ palomuurikytkentöjä käytetään tyypillisesti siten, että ytimeen ladataan koodimoduuli. Moduuli rekisteröityy verkkokoodiin, ja verkkokoodi kutsuu moduulia aina kun paketti lähetetään tai vastaanotetaan. Tällöin moduuliin sisältyvä • » » koodi osoittaa, voidaanko paketti päästää läpi vai ei. Tyypillisesti kuvatun kaltaiset 30 kytkentäjärjestelyt eivät kuitenkaan salli pakettien modifiointia, upottamista tai _... _ viivyttämistä.
Palomuurin kytkentäratkaisu on vain harvojen käyttöjärjestelmien saatavilla, esi- . *. : merkkeinä Linux ja FreeBSD. Lisäksi monissa käyttöjärjestelmissä toimintoa ei eh- • * kä oletusarvoisesti sallita. Tällöin palomuurikytkentäjärjestelyn käyttäminen saattaa edellyttää, että käyttäjä kokoaa ja asentaa uuden käyttöjärjestelmäytimen, mikä taas 35 ylittää useimpien järjestelmävalvojien kyvyt. Siksi tunnetut palomuurikytkentäjär- 8 113927 jestelyt eivät ole laajassa mitassa käyttökelpoisia eivätkä tarjoa ratkaisua ongelmaan, jossa halutaan järjestää pakettien sieppaus kaikkein suosituimmissa käyttöjärjestelmissä siten, että sen toteuttaminen on mahdollista myös suurille joukoille alaan perehtymättömiä käyttäjiä.
5 Erityissovelluksiin, esim. viruksentorjuntaohjelmiin, on kanavoitu järjestelmäpalve-lut, joilla valvotaan mm. tiedostojärjestelmän toimintaa. Jotkut käyttöjärjestelmät tarjoavat erityistä tukea näille sovelluksille. Esimerkiksi Windows 95 -käyttöjärjestelmä tarjoaa palvelun nimeltä VMM.VxD Hook_Device_Service tällaisten sovellusten laitepalvelujen kytkemiseksi, kuten on selostettu esimerkiksi oheiseen viite-10 julkaisuluetteloon sisältyvässä julkaisussa Win95DDK.
Eräs toinen tunnettu menetelmä verkkoliikenteen tarkkailemiseksi on korvata Win-dowsin tunnettu WINSOCK.DLL -tiedosto. Kyseinen tiedosto ei näe yksittäisiä datapaketteja, mutta sillä on pääsy Windows-järjestelmän jokaiseen SOCKET-tiedos-toon. Alkuperäinen tiedosto voidaan siirtää syrjään ja korvata se uudella DLL-tie-15 dostolla, jolloin uusi DLL kutsuu alkuperäistä. Tunnetuissa järjestelmissä korvaaminen on suoritettu asennusvaiheessa, ja korvausmoduuli on ladattu aina kun sitä käyttävä sovellus käynnistyy (ei esim. silloin, kun järjestelmässä tapahtuu alkula-taus). Vaikka menetelmä on käsitteellisellä tasolla jossain määrin sukua kytkennälle, sitä ei kuitenkaan voi suoraan soveltaa pakettien sieppaukseen, koska sillä ei saavu-20 teta pääsyä paketteihin.
:\ Perusajatus, että kytkennän avulla hankitaan pääsy verkkopaketteihin, on alalla si- nänsä tunnettu, kuten käy ilmi esimerkiksi oheiseen viitejulkaisuluetteloon sisälty-2 “. vistä julkaisuista Lanciani98, Lanciani98PPPMAC ja Lanciani98Reply. Sitä on käy- tetty tietyissä protokollan konvertointisovelluksissa. Tekniikan taso käsittää ohjel-25 man, joka sisältää NDIS-ohjelmointirajapinnan päälle asennetun pakettiajurin oh- • · '···* jelmointirajapinnan, kuten on selostettu esimerkiksi oheiseen viitejulkaisuluetteloon sisältyvässä julkaisussa Lanciani97NDIS3PKT. Muita tunnettuja vaihtolehtoja on ODI-pakettiajurin käyttäminen NDIS:n päällä (viitejulkaisu Lancia-·* : ni960DIPKT3.1), eräs vanhempi pakettiajurirajapinta (viitejulkaisu Lancia- 30 ni92DIS_PKT), Banyan Vines -niminen pakettiajuri (viitejulkaisu Lancia-ni94IBANPKT) ja Windowsin NFS-asiakas (viitejulkaisu Lanciani97NFSTDI). Protokollan konvertointi tai vaihtoehtoinen pakettiajuri ei kuitenkaan voi tukea kehitty-neitä verkkoturvaohjelmia, päinvastoin: ne voivat jopa vaikeuttaa turvajärjestelyjen ’: *'! käyttöä, koska ne voivat aiheuttaa odottamattomia ja kiellettyjä muutoksia pakettien 35 muotoon.
9 113927
Nyt esillä oleva keksintö soveltaa kytkennän yleistä ideaa sekä saapuvien että lähtevien pakettien sieppaamiseen ja tarvittavan, järjestelmää koskevan tiedon hankkimiseen ja muokkaamiseen. Keksinnön pääsovellus on täydellinen paketinsieppausme-netelmä, jossa käytetään kytkentää kehittyneellä tavalla pääsyn hankkimiseksi kaik-5 kiin tarvittaviin paketteihin ja tietoihin.
Kytkennän käyttäminen keksinnön mukaisesti on uusi lähestymistapa ongelmaan, jota toisaalla yritetään parhaillaan ratkaista suunnittelemalla väliajureita. Uudessa menetelmässä vältetään kokonaan tarve suunnitella käyttöjärjestelmään väliajureita tai analysoida kilpailijoiden omaisuutta olevia protokollia. Uuden menetelmän käy-10 tössä tarvittava koodauksen määrä laskee ilmeisesti noin puoleen siitä, mitä väliaju-rissa tarvitaan. Lisäksi keksinnön mukaista ratkaisua voidaan usein käyttää silloinkin, kun isäntänä toimiva käyttöjärjestelmä ei tarjoa minkäänlaista tukea sieppaukselle. Uusi menetelmä on väliajureita yksinkertaisempi ja vakaampi ja suorituskyvyltään niitä parempi. Lisäksi se tarjoaa luotettavamman yhteensopivuuden erilais-15 ten kolmansien osapuolten pakettien ja ajurien kanssa.
Kuviossa 2a on esitetty kaaviomaisesti tunnetun tekniikan mukainen verkkorajapin-tajärjestely ilman paketinsieppaajaa. Protokollalohkoa 201 täydentää rajapintatoi-mintolohko 202, joka puolestaan tarjoaa vakiorajapinnan yhdelle tai useammalle verkkoadapterille 203. Kuviossa 2b kuvattuun järjestelyyn sisältyy tunnetun teknii-20 kan mukainen paketinsieppaaja, joka on toteutettu väliajurina 204, jolloin sen ja pro-: - · tokollalohkon 201 välille on sijoitettu ensimmäinen rajapintatoimintolohko 202a, ja • sen ja verkkoadapterin (tai adaptereiden) 203 väliin on sijoitettu toinen rajapinta- : · toimintolohko 202b. Rajapintatoiminnot viittaavat Microsoft Windows -ympäristön : ’ · 11 NDIS-rajapintaan ja Sun Solaris -ympäristön STREAMS-rajapintaan.
25 Kuvio 2c on yksinkertaistettu kaavio nyt esillä olevan keksinnön mukaisesta järjes-’··' telystä. Paketinsieppaajamoduuli 210 käsittää joukon korvaustoimintoja 211, jotka on järjestetty ainakin osittain korvaamaan alkuperäiset rajapintatoiminnot 202. Li-säksi paketinsieppaajamoduulissa 210 on ylemmät kytkentävälineet 212 ja alemmat :’ kytkentävälineet 213 sen viestinnän, joka oli tarkoitettu alkuperäiselle rajapintatoi- , t' t; 30 minnolle 202, suuntaamiseksi uudelleen lohkon 211 korvaustoiminnoille ja paketti en, kutsujen ja muiden viestintämuotojen palauttamiseksi alkuperäiselle signalointi-; · ’ polulle käsittelyn jälkeen. Edullisimmin paketinsieppaajassa on myös välineet tiedon : * -: välittämiseksi alkuperäisten rajapintatoimintojen ja korvaustoimintojen kesken nuo- ; ·: Ien 214 osoittamalla tavalla.
10 113927
Seuraavassa selvityksessä kuvataan aluksi keksinnön ensimmäinen edullinen suoritusmuoto Windows 95- ja Windows 98 -ympäristöille viittaamalla kuvioihin 3-9. Tämän suoritusmuodon mukaista sieppaajaa voidaan mainituissa käyttöjärjestelmissä käyttää sekä vastaanotettujen että lähetettyjen pakettien tutkimiseen ja modifioi-5 miseen. Sieppaajamoduuli (joka sisältää myös koodin pakettien varsinaiseksi tutkimiseksi ja modifioimiseksi) on rakennettu VxD-laiteajurimoduuliin, jonka muodolliset vaatimukset ovat yleisesti tunnetut. "Ajuri", joka on oikeastaan sieppaajamoduuli, asennetaan järjestelmään edullisimmin staattisena laiteajurina, joka sijaitsee latausjärjestyksessä NDIS-moduulin jälkeen, mutta ennen verkkoadaptereita. Seu-10 raavissa vaiheissa kuvataan sitä kuinka moduuli soveltaa keksinnön mukaista menetelmää. On syytä panna merkille, että tässä kuvatut vaiheet eivät millään tavoin rajoita keksintöä, vaan ne voidaan sekoittaa keskenään ja toteuttaa monessa eri järjestyksessä (paitsi milloin on erityisesti mainittu toisin) poikkeamatta keksinnön suoja-piiristä.
15 Olettakaamme, että tietokonejärjestelmä käyttää Windows 95- tai Windows 98 -käyttöjärjestelmää tai muuta sellaista käyttöjärjestelmää, joka perustuu vakioraja-pintaan ja sitä vastaavaan joukkoon protokollapinojen ja verkkoadaptereiden väliin sijoitettuja toimintoja ja ajureita. Olettakaamme edelleen, että jossain edeltävässä mainitun tietokonejärjestelmän käynnistys- tai käyttövaiheessa järjestelmään on la-20 dattu NDIS-moduuli tai vastaava yksikkö, joka määrittelee protokollapinojen ja verkkoadaptereiden välisen vakiorajapinnan. NDIS-moduulin latausta edustaa vaihe 301 kuviossa 3. Vaiheessa 302 käynnistetään ensin paketinsieppaajamoduuli, joka : on muodoltaan laiteajuri, mieluiten käyttämällä moduulin niin sanottua ··’· SYS_Critical_Init-toimintoa. Moduuli suuntaa uudelleen (kytkee) tiettyihin rajapin- 25 nan edellä mainittuihin vakiotoimintoihin liittyvät kutsut omiin toimintoihinsa. Ku-·.,.· viossa 4 kytkettävät kutsut on esitetty seuraavina toimintoina: lähetystoiminto 403, : "i protokollan rekisteröitymistoiminto 404, adapterin avaustoiminto 405, pyyntötoi- minto 406, tilanilmoitustoiminto 407 ja datansiirtotoiminto 408. Jos oletetaan, että rajapinta on NDIS, mainitut toiminnot ovat vastaavasti tunnetut NdisSend, NdisRe-30 gisterProtocol, NdisOpenAdapter, NdisRequest, NdisIndicateStatus ja NdisTrans- ' ferData. Edelleen, vaiheessa 302, paketinsieppaajamoduuli tallentaa kyseisten toi- * mintojen 403 - 408 alkuperäiset osoitteet. Windows 95 -käyttöjärjestelmässä on ge- neerinen, konekielinen kytkentäpalvelu Hook_Device_Service, jota voidaan käte-. ·. : västi käyttää kytkennän suorittamiseen. Sen käyttöä kuvaa seuraava näytekoodi: •: · · 35 ; Hook NDISRegisterProtocol
GetVxDServiceOrdinal eax, NDISRegisterProtocol mov esi, OFFSET32 _ssh_ndisregisterprotocol_handler@16 11 113927 VMMCall Hook_Device_Service jc not_hooked mov [_ssh__orig_ndisregisterprotocol_fn], esi
Koodin toiminta on jokaisen sellaisen ymmärrettävissä, jolla on kokemusta Win-5 dows 95 VxD -ajurien kirjoittamisesta symbolisella konekielellä. Kutsuttuja järjes-telmäpalveluja on selostettu oheiseen viitejulkaisuluetteloon kuuluvassa julkaisussa Win95DDK.
Jotta kytkentä toimisi oikein, paketinsieppaajamoduulin 412 tulee olla ladattu NDIS-moduulin jälkeen (vaihe 301), mutta ennen verkkoadaptereita ja protokollia (vaiheet 10 303 ja 304). Paketinsieppaajamoduuli 412 voi esiintyä esim. staattisena VxD-ajuri- na, jolla on asianmukainen latausjärjestys, konfiguroituna INI-tiedostoon tai rekisteriin.
Vaiheen 302 jälkeen järjestelmä alkaa ladata verkkoprotokollia ja adaptereita vaiheissa 303 ja 304. Jokaisen vaiheessa 303 ladattavan protokollan tulee rekisteröityä 15 kutsumalla asianmukaista protokollan rekisteröintitoimintoa, mikä NDIS-kehyk-sessä tarkoittaa NdisRegisterProtocol-toimintoa. Kuviossa 4 rekisteröitymisen suorittava protokolla on esitetty viitenumerolla 401. Koska tämän ja muiden tarvittavien toimintojen rekisteröinti on kuitenkin jo suoritettu vaiheessa 302, kutsu 420, joka oli alun perin tarkoitettu toiminnolle 404, suunnataan uudelleen vastaavalle korvaus-: ’. 20 toiminnolle 414, joka oli kytkennän kohteena.
; ' ’ Kuvio 5 esittää kaaviomaisesti kuinka alkuperäisen protokollan rekisteröintitoimin- •..: non korvaustoiminto 414 vastaanottaa kutsun 420 mukana tietyn datarakenteen 501, joka kuvaa kutsuvan protokollan keskeisiä protokollaominaisuuksia. NDIS-kehyk-·.,,·* sessä kyseessä on NDIS_PROTOCOL_CHARACTERISTICS-rakenne. Tästä ra- : 25 kenteesta toiminto 414 poimii mieluiten joukon osoittimia joihinkin jäljempänä tarvittaviin toimintoihin 502; jos edelleen oletetaan, että kyseessä on NDIS, mainitut toiminnot ovat ReceiveHandler, ReceiveCompleteHandler, RequestCompleteHan-,·*·, dler, TransferDataCompleteHandler ja SendCompleteHandler. Kuvio 6 esittää kaa viomaisesti kuinka korvaustoiminto 414 tallettaa rakenteessa 502 ilmoitettujen toi-’ * 30 mintojen alkuperäiset osoitteet omiin datarakenteisiinsa ja korvaa rakenteen 502 toiminto-osoittimet osoittimilla, jotka osoittavat vastaavia korvaustoimintoja. Kor-. *. : vattavien toimintojen täsmällinen joukko riippuu käyttöjärjestelmästä, ja jopa NDIS- .,,,: kehyksen sisällä se riippuu kulloisestakin NDIS-versiosta. Rakenteessa 502 on esi merkinomaisesti esitetty vain muutamia NDIS:n vaatimia toimintoja.
12 113927
Kuviossa 4 on lisäksi esitetty, kuinka alkuperäistä NdisRegisterProtocol-toimintoa tämän jälkeen kutsutaan rekisteröitymisen jatkamiseksi. Kutsu 420' eroaa alkuperäisestä, rekisteröintiprotokollan 401 lähettämästä kutsusta siinä, että kuviossa 5 rakenteen 502 edustamat toiminnot on korvattu osoittimilla, jotka osoittavat vastaavia, 5 niihin liittyviä korvaustoimintoja. Jos rekisteröinti onnistuu, myös palautettu protokollan käsittelijä talletetaan korvaustoiminnon 414 datarakenteisiin.
Näiden vaiheiden tuloksena protokolla 401 on rekisteröitynyt järjestelmään muutoin normaalisti, mutta toiminnot, joita kutsutaan esim. silloin, kun verkkoadaptereilta vastaanotetaan paketteja, osoittavat itse asiassa korvaustoimintoihin.
10 Kun protokolla on rekisteröity, siihen voidaan liittää yksi tai useampia verkkoadap-tereita. Järjestelmä valvoo tätä prosessia, ja se on esitetty kaaviomaisesti kuviossa 7. Kun mainittua liittymistä tapahtuu, protokolla 701, johon verkkoadapterin 702 tulisi sitoutua, kutsuu adapterin avaustoimintoa 405 (NDIS:ssä NdisOpenAdapter-toimin-toa). Kutsu 720 on kytketty, jolloin sen vastaanottaa korvaustoiminto 415. Korvaus-15 toiminto 415 kutsuu alkuperäistä toimintoa 405 ja tallettaa sidontatiedot omiin data-rakenteisiinsa (ei esitetty erikseen kuviossa 7). Korvaustoiminto 415 voi pyytää adapteria 702 koskevaa tietoa, esimerkiksi sen tyyppiä tai linkkikerroksen osoitetta. Se voi myös määritellä, onko adapteri ns. valintayhteysadapteri (dial-up adapter). Yksi määrittelytapa on verrata adapterin ethemet-osoitetta osoitteeseen 20 44:45:53:54:00:00, jota Windows käyttää valinta-adapterien osoitteena. Muutoin • '· Windowsin valinta-adapterit muistuttavat ethernet-adaptereita (IEEE 802.3). Ylei- • sesti ottaen adapterin avaustoiminnot (NDIS:ssä NdisOpenAdapter) edustavat tapaa, *: · jolla sieppaaja 412 saa tietoa käytettävistä verkkorajapinnoista.
• * ·
Korvaustoiminto 416 voi olla järjestetty niin, että se sieppaa kutsuja ja vastauksia 25 (NDIS:ssä NdisRequest-kutsuja ja -vastauksia) ja tunnistaa tiettyjä pyyntöjä. Se voi ’···* esimerkiksi säädellä adapterin palauttamia MTU-arvoja (MTU = Maximum Trans mission Unit, jota on kuvattu esimerkiksi oheiseen viitejulkaisuluetteloon sisälty-vässä julkaisussa Postel81) ennen kuin ne siirretään edelleen protokollaan, jolloin : t : AH- ja ESP-otsikot, joita on kuvattu esimerkiksi oheiseen viitejulkaisuluetteloon si- 30 sältyvässä julkaisussa KA98, voidaan lisätä pakettiin ilman, että pakettia tarvitsee .,. ^ fragmentoida ennen kuin se siirretään linkkikerrokseen.
t · . ’. : Datansiirto tietyn verkkoadapterin kautta voi alkaa sen jälkeen, kun vastaava adapte- ,,.,: rin avaustoiminto (NDIS:ssä NdisOpenAdapter) on suoritettu loppuun.
13 113927
Kuviosta 8 nähdään, kuinka lähtevä paketti etenee protokollasta 801 paketinsieppaa-jassa olevaan korvaavaan lähetystoimintoon 413, joka NDIS:ssä on NdisSend-toi-minto. Sieppaaja ottaa paketin haltuunsa ja kutsuu alkuperäistä päättyneen käsittelijän lähetystoimintoa (sending complete handler) 804 kertoakseen protokollalle 801, 5 että paketti 802 on käsitelty. Toisena vaihtoehtona sieppaaja voi siirtää kutsun 821 alkuperäiseen päättyneen käsittelijän lähetystoimintoon 804, kunnes paketti on käsitelty loppuun. Paketin varsinainen prosessointi voidaan suorittaa tässä vaiheessa.
Sieppaaja lähettää ulos lähtevät paketit verkkoadaptereihin kutsumalla alkuperäistä lähetystoimintoa (NDIS:ssä NdisSend) 403 nuolen 802' mukaisesti. Kuvioon 8 on 10 merkitty tähdellä, että paketti on kulkenut sieppaajan kautta. Jos kutsu päättyy välittömästi, paketti voidaan vapauttaa. Muussa tapauksessa adapteri kutsuu lopulta korvaavaa loppuunsuoritetun käsittelijän lähetystoimintoa (NDIS:ssä SendComplete-Handler) 813 (katso nuoli 822), joka vapauttaa paketin.
Kuvioita 9a ja 9b vertailemalla voidaan havaita eräitä yleisiä eroja tunnetun teknii-15 kan ja nyt esillä olevan keksinnön välillä, etenkin Windows NT-ympäristössä. Kuvassa 9a esitetyssä, tunnetun tekniikan mukaisessa järjestelyssä NIC-ajuri lähettää ProtocolReceive-viestin 951 protokollayksikölle, joka vastaa komennolla Miniport-TransferData 952. Operaatio päättyy NIC-ajurin lähettämään ProtocolTransferDa-taComplete -viestiin 953. Kuviossa 9b, joka esittää erästä keksinnön suoritusmuo-20 toa, alkuperäinen, NIC-ajurin lähettämä ProtocolReceive -viesti 95 Γ ei siirry proto-i · kollayksikköön vaan paketinsieppaajamoduuliin, joka vastaa MiniportTransferData- • · komennolla 962. NIC-ajurin lähettämä ProtocolTransferDataComplete-viesti 953’ ;· on valinnainen, ja siepatun paketin varsinainen prosessointi tapahtuu sieppaajamo- :*·.· duulissa vaiheessa 963.
25 Prosessoidun paketin siirtämiseksi edelleen protokollayksikköön paketinsieppaaja-' * - * moduuli lähettää uuden ProtocolReceive-viestin 951” protokollayksikköön, joka nyt vastaa paketinsieppaajamoduulille (eikä NIC-ajurille) MiniportTransferData-ko-mennolla 952’. NIC-ajurilta tuleva ProtocolReceiveComplete-viesti 964 välitetään ', 11 ·' edelleen paketinsieppaajamoduulilta protokollayksikköön vaiheessa 965.
1 t i - * 30 Hiukan yksityiskohtaisempi kuvaus saapuvan paketin käsittelystä on esitetty kuvios-... * sa 9c. Sieppaaja vastaanottaa saapuvia paketteja verkkoadaptereilta 803 kutsulla 901 .'. : sen korvaavalle käsittelijän vastaanottotoiminnolle (NDIS:ssä ReceiveHandler) 813, ,,,; kuten kuviosta 9c nähdään. Sieppaaja siirtää dataa muistiinsa kutsumalla alkuperäis tä datansiirtotoimintoa (NDIS:ssä: NdisTransferData) 408. Jos toiminto suoritetaan 35 heti loppuun, paketti lisätään vastaanotettujen pakettien joukkoon suoritusmuistiin 14 113927 902. Jos sitä ei suoriteta heti loppuun, adapteri 803 kutsuu käsittelijän loppuunsuori-tettua datansiirtotoimintoa (NDIS:ssä TransferDataCompleteHandler) 903, kun siirto on suoritettu loppuun kuvioon 9c merkityn katkonuolen 904 mukaisesti, ja paketti lisätään kyseisellä hetkellä muistissa 902 oleviin vastaanotettuihin paketteihin. Vas-5 taanotetut paketit voidaan joko prosessoida välittömästi tai panna jonoon ja prosessoida asynkronisesti. Korvaavaa datan loppuunsuoritetun käsittelijän vastaanottoa (NDIS:ssä ReceiveCompleteHandler) 905 kutsutaan, kun muutama paketti on vastaanotettu, ja tämä toiminto on mahdollinen paikka jonoon siirrettyjen pakettien varsinaiselle prosessoinnille.
10 Sieppaaja lähettää saapuvat paketit protokolliin kutsumalla alkuperäistä käsittelijän vastaanottotoimintoa (NDIS:ssä ReceiveHandler) 906. Tämän kutsun aikana protokolla voi kutsua datansiirron korvaustoimintoa (NDIS:ssä NdisTransferData function); korvaustoiminto kopioi datan protokollaan. Jos korvaustoiminto suoritetaan aina välittömästi loppuun, paketti voidaan vapauttaa, kun käsittelijän vastaanottotoi-15 minto 906 on palautettu. Kun yksi tai useampia paketteja on siirretty käsittelijän vas-taanottotoimintoon 906, korvaava ReceiveCompleteHandler-toiminto kutsuu alkuperäistä loppuunsuoritetun käsittelijän vastaanottotoimintoa.
Kussakin tapauksessa sieppaaja käyttää hyväkseen talletettua tietoa adapterin avaus-toiminnon korvaustoiminnolle (NDIS:ssä NdisOpenAdapter), esitetty viitenumerolla 20 415 kuviossa 4, suunnattujen kutsujen sidoksista havaitakseen paketit, joilla on tiet- • > · ty verkkoadapteri ja protokolla. Tämä voidaan toteuttaa esim. käyttämällä eri toi- ί' ., mintojen kontekstiargumentteja salaustaulukoiden avaimina.
' i 4
Ethemet-adaptereille ensimmäiset paketit edustavat jo normaalia dataliikennettä.
I » '; · Sen sijaan valintayhteysadaptereille ensimmäiset paketit edustavat linkinvalvontalii- * · · · ‘ 25 kennettä, esimerkkinä PPP LPC -paketit (Point-to-Point Protocol Link Control Pro- ‘: tocol), joita on kuvattu esimerkiksi oheiseen viitejulkaisuluetteloon sisältyvässä jul kaisussa Simpson94, and IPCP-paketit (IP Control Protocol), joita on kuvattu esi-merkiksi oheiseen viitejulkaisuluetteloon sisältyvässä julkaisussa McGregor92.
;" ': Windows 95:ssä ja Windows 98:ssa kaikki paketit näyttävät ethernet-paketeilta.
' ; 30 Sieppaaja voi eritellä protokollat käyttämällä ethertype-kenttää, joka sisältyy paket tien ethemet-otsikkoon.
t t .*, ; Jos linkki on valintayhteyslinkki, adapteri kutsuu tilanilmaisutoimintoa, (NDIS.ssä t' J NdisIndicateStatus), kun linkkitason kättely on suoritettu, ilmoittaakseen protokol lalle, että linkki on nyt käytettävissä. Sovelletaan korvausversiota, joka on esitetty 35 viitenumerolla 417 kuviossa 4.
15 113927
Prosessoinnin aikana (esim. korvaavan NdisOpenAdapterin tai NdisIndicateStatu-toiminnon kohdalla, tai jossain muussa sopivassa kohdassa operaation aikana) sieppaaja etsii rekisteristä protokollan osoitteen (esim. IP-osoitteen) adapteria varten. Osoite on käytettävissä vain siinä tapauksessa, että se on kiinteästi konfiguroitu. Jos 5 osoite ei ole kiinteästi konfiguroitu, dynaamisen osoitteen määrittelyyn voidaan käyttää useita eri menetelmiä. Voidaan esim. analysoida ne linkkikerroksen paketit, jotka siirtyvät protokollaan, ja poimia osoite linkkikerroksen paketista (esim. PPP IPCP -paketista, kuten on esitetty esimerkiksi oheiseen viitejulkaisuluetteloon sisältyvässä julkaisussa McGregor92). Toisena vaihtoehtona on osoitteen poimiminen 10 ensimmäisestä protokollan lähettämästä ARP-paketista, kuten on esitetty esimerkiksi viitejulkaisussa Plummer82. Edelleen vaihtoehtona on osoitteen poimiminen DHCP-paketista, kuten on esitetty esimerkiksi viitejulkaisussa Droms97. Joka tapauksessa osoite sisältyy sopivaan kenttään tai hyötykuormaan sen mukaisesti, mitä vastaaviin standardeihin on kirjattu. Ulkoiset (IP-pinosta erilliset) DHCP-asiakkaat 15 voivat myös dynaamisesti päivittää rekisteriä kirjoittamalla uuden, vasta saadun IP-osoitteen TCP/IP-konfiguraatioon. Näin sieppaaja voi myös pollata rekisteriä saadakseen selville tietoihin mahdollisesti tulleet muutokset.
Prosessoinnin aikana sieppaaja saa selville, että uusi adapteri (esim. valinta-adapteri) tarjoutuu käytettäväksi, kun korvaavaa osoitustoimintoa (NDIS:ssä Ndi-20 slndicateStatus) kutsutaan vastaavalla ilmoituksella, joka NDISissä on tunnettu .. NDIS_STATUS_WAN_LINE_UP -ilmoitus. Vastaavasti se saa tiedon siitä, ettei ; ‘ linkki enää ole käytettävissä, kun samaa toimintoa kutsutaan toisella ilmoituksella, : *; * joka NDIS:ssä on tunnettu NDIS_STATUS_WAN_LINE_DOWN -ilmoitus.
;\j Termiä "sitominen" käytetään edellä Windowsin NDIS-merkityksessä. Sitominen .*· ·. 25 tarkoittaa verkkoadapterin ja protokollan välistä yhteyttä; kukin adapteri voidaan si- ,··’·, toa nollaan tai useampaan protokollaan, ja nolla tai useampia adaptereita voidaan si toa kuhunkin protokollaan. On myös mahdollista käyttää moduuleja, jotka toimivat sekä adaptereina että protokollina (väliajurit), ja silloin sidontakaavioista voi käy- * I » tännössä tulla varsin monimutkaisia. Windowsissa sidonnat on yleensä konfiguroitu i · '··' 30 automaattisesti, mutta käyttäjä voi myös päästä näkemään ja muokkaamaan niitä.
*: · · i Windows käsittelee sidonnat sisäisesti, ja tavallisesti ne talletetaan rekisteriin. Vas- ;\ taava käsite esiintyy myös muissa käyttöjärjestelmissä, mutta se voi olla implisiitti- , , nen. Esimerkiksi FreeBSD:ssä kaikki adapterit on implisiittisesti sidottu kaikkiin protokolliin, ja kulloinkin sopiva protokolla määritellään paketin tyypin perusteella, : 35 ja paketti lähetetään vain sellaiseen protokollaan, joka osaa käsitellä sitä.
16 113927
Edellä mainittu rekisteri tarkoittaa Windows-rekisteriä tai sen edeltäjää, INI-tiedos-toja. Yleensä sen tarkoitus on vain varastoida tietoa. Windows-rekisteri sallii ainakin rajoitetun puurakenteen ja nimien ja arvojen yhdistämisen. Windows-konfigu-rointitiedostojen (INI-tiedostojen) rakenne on samanlainen, mutta rajoitetumpi. Ku-5 vatun rekisterin sijasta voidaan käyttää muita tunnettuja tiedontalletusmuotoja, ja jopa sellaiset muodot, jotka eivät tämän patenttihakemuksen jättöhetkellä ole alan ammattimiehen tiedossa, mutta ovat tulleet yleiseen käyttöön, sopivat luonnollisesti samantapaiseen tiedon varastointiin.
Edellä kuvattu keksinnön edullinen suoritusmuoto edustaa vain yhtä esimerkkiä. 10 Toinen mahdollisuus on sisällyttää dynaamisesti ladattava IPSECrn sieppaajamo-duuli, palomuuri ja muut sovellukset FreeBSD-käyttöjärjestelmään. Samantapainen ratkaisu sopii mm. Linuxiin ja NetBSD.hen. Tällainen ladattava ydinmoduulien sieppaaja noudattaa kuviossa 10 esitettyä toimintaperiaatetta. Paketinsieppaajamo-duulissa 1010 on joukko korvaustoimintoja 1011 sekä ylempiä kytkentätoimintoja 15 1012 ja alempia kytkentätoimintoja 1013, mutta järjestely on siirtosuuntien suhteen epäsymmetrinen. Lähetyssuunnassa kytkentä tapahtuu ylempien kytkentävälineiden 1012 kautta verkkoadapterilohkon 203 ja alkuperäisen rajapintatoimintolohkon 202 välillä. Vastaanottosuunnassa kytkentä tapahtuu alempien kytkentävälineiden 1013 kautta verkkoadapterilohkon 203 ja alkuperäisen rajapintatoimintolohkon 202 välil-20 lä. Kummassakin suunnassa ne paketit, jotka ovat kulkeneet sieppaajan läpi, "palau-,, tetaan" kytkentäkohtaan siinä mielessä, että alkuperäistä rajapintatoimintoa (toimin- * toja) käytetään pakettien toimittamiseksi edelleen vastaanottajalle.
I » • ' · ·:* Tämän keksinnön toisen edullisen suoritusmuodon mukainen paketinsieppaajamo- :*·.· duuli on edullisimmin dynaamisesti ladattava ydinmoduuli. Se on ladattu ydinmuis- • · 25 tiin kuin mikä tahansa ajuri jossakin edeltävässä vaiheessa, ennen kuin se otetaan • « » . · · ·. käyttöön. Latausvaihe on kuvattu vaiheena 1101 kuviossa 11.
Kun moduuli käynnistetään vaiheessa 1102, se estää hetkellisesti keskeytykset ja muokkaa käyttöjärjestelmäytimen binäärikoodin vaiheessa 1103, jolloin tietyt toi- : minnot suunnataan uudelleen moduulin sisältämiin korvaustoimintoihin. Esimerkik- i · « : 30 si FreeBSD:ssä korvattaviin toimintoihin voisivat kuulua ip_input-, ip_output- ja ifioctl-toiminnot. Näistä ip_input normaalisti vastaanottaa paketteja verkosta, ip_outputia kutsutaan lähettämään niitä verkkoon ja ifioctlia kutsutaan esim. kun
• I
!,’>* verkkorajapinnan tila muuttuu. Alkuperäiset toiminnot talletetaan, jolloin niitä voi- *: ': daan kutsua korvaustoiminnoista. Seuraavassa esitetään eri tapoja tämän suorittami- 35 seksi. Kun toiminnot on korvattu, keskeytykset voidaan taas sallia vaiheessa 1104.
17 113927
Lisäksi saattaa olla tarpeen virkistää ohjaava välimuisti, riippuen cpu-arkkitehtuu-rista, jos koodia on muokattu.
Näiden kuviossa 11 esitettyjen vaiheiden 1101 ja 1104 jälkeen datansiirto tapahtuu vaiheen 1105 mukaisesti käyttämällä vaiheessa 1101 ladattuja ja vaiheessa 1103 5 kytkettyjä korvaustoimintoja.
Kuvioista 12a ja 12b nähdään, kuinka paketteja lähetetään ja vastaanotetaan käyttämällä tätä keksinnön toista edullista suoritusmuotoa. Protokollista 1201 lähtevien pakettien vastaanottamiseksi kutsutaan paketinsieppaajassa olevaa korvaavaa output-toimintoa (FreeBSD:ssä ip_output-toimintoa) 1202. Lähtevien pakettien lähettä-10 miseksi adaptereihin 1204 sieppaaja kutsuu alkuperäistä output-toimintoa (ip_output-toimintoa) 1203.
Tulevien pakettien vastaanottamiseksi adaptereilta 1204 kutsutaan paketinsieppaajassa sijaitsevaa korvaavaa input-toimintoa (ip_input-toimintoa) 1205. Tulevien pakettien lähettämiseksi protokollille 1201 sieppaaja kutsuu alkuperäistä input-toimin-15 toa (ip_input-toimintoa) 1206.
Tässä keksinnön toisessa edullisessa suoritusmuodossa sieppaaja saa tietoa aktiivisista verkkorajapinnoista tarkkailemalla globaalia ifnet-muuttujaa tai, jossain muussa samalla tavoin toimivissa käyttöjärjestelmässä, vastaavaa toista ytimessä sijaitse-., vaa muuttujaa. Kyseisessä muuttujassa on luettelo verkkorajapinnoista, ja kunkin ra- 20 japinnan datarakenteeseen sisältyvät rajapinnan protokollaosoitteet.
- * · Edelleen, mainitussa keksinnön toisessa edullisessa suoritusmuodossa sieppaaja saa tiedon uusista verkkorajapinnoista (esim. yhdistetyistä tai katkaistuista valintalin-joista) kun korvaava ifioctl-toiminto saa kutsun. Kun sieppaaja on kutsunut alkupe-,···. räistä ifioctl-toimintoa, se voi lukea verkkorajapintojen luettelon uudelleen ja saada 25 näin selville mahdolliset muutokset.
,.; · ‘ Jos ydinmoduulin purkaminen keksinnön toisen edullisen suoritusmuodon mukaan aloitetaan kuten vaiheessa 1301, joka on esitetty kuviossa 13, on edullisinta estää ‘ : keskeytykset ja palauttaa toiminnot alkuperäisiksi kuten vaiheessa 1302, sallia kes keytykset uudelleen ja mahdollisesti virkistää ohjevälimuisti kuten vaiheessa 1303 • ’ 30 sekä jatkaa latauksen purkua kuten vaiheessa 1304 tyhjentämällä uudelleen paketin- j sieppaajamoduulille aiemmin osoitetut muistipaikat.
Joissakin sovelluksissa sieppaaja voi olla kiinnostunut löytämään vain tietynlaisia adaptereita tai protokollia kaikkien järjestelmään asennettujen adaptereiden ja pro- 18 113927 tokollien joukosta. Näin ollen sieppaaja ei ehkä halua määritellä tietoa kaikista adaptereista. Sen sijaan se voi lakata etsimästä mainittua tietoa esim. sen jälkeen, kun se on löytänyt kaikki etsimänsä verkkoadapterit.
Edellä on useaan kertaan puhuttu kytkemisestä tai toiminnon korvaamisesta. Ohei-5 sissa patenttivaatimuksissa näistä operaatioista käytetään yhteistä termiä "kytkeminen". Kytkemisen toteuttamiseksi on olemassa monia eri tapoja. Useat niistä on tunnettu jo suhteellisen pitkään, mutta niitä ei ole käytetty paketinsieppauksen yhteydessä. Käsitteen "kytkeminen" voisi yleisesti selittää siten, että se tarkoittaa ohjelman jonkin alkuperäisen (esim. käyttöjärjestelmän ytimessä sijaitsevan) toiminto non korvaamista, siten että alkuperäisen toiminnon asemesta kutsutaan toista toimintoa, josta käytetään usein nimeä "korvaustoiminto". Kytkennän tarkoituksena on usein tarjota laajennusmekanismi. Kytkentöjen semantiikassa on useita eri vaihtoehtoja: korvaustoimintoa voidaan kutsua alkuperäisen toiminnon sijasta, ennen alkuperäistä toimintoa tai alkuperäisen toiminnon jälkeen.
15 Myös varsinaisen kytkentämenettelyn toteutus vaihtelee. Joissakin tapauksissa kytkennän mahdollisuus on ehkä suunniteltu valmiiksi ohjelmaan. Näissä tapauksissa on tyypillisesti olemassa kutsuttavien toimintojen luettelo (kytkentäluettelo tai kyt-kentätoimintojen luettelo), johon voidaan lisätä uusia toimintoja. Muissa tapauksissa jotakin tiettyä toimintoa voidaan kutsua toiminto-osoittimen kautta, vaikka itse toi-20 minto-osoitinta ei olisikaan suunniteltu kytkettäväksi. Näissä tapauksissa kytkentä • '·· voidaan toteuttaa suuntaamalla toiminto-osoitin osoittamaan korvaustoimintoa. Sen jälkeen korvaustoiminto voi valintansa mukaan kutsua alkuperäistä toimintoa missä * j · vaiheessa tahansa. Vastaava tilanne voi olla olemassa myös implisiittisesti; esimer- : kiksi eräissä dynaamisesti linkitettyjen kirjastojen toteutuksissa on pääsykohtien tau- . · · ·. 25 lukko tai yhteysluettelo, jota voidaan muokata samanlaisen vaikutuksen saavuttami- • · . · · ·. seksi (tällaista taulukkoa nimitetään myös lähetystaulukoksi). Joihinkin järjestelmiin • ♦ sisältyy mekanismi laitteiston tai ohjelmiston keskeytysvektorien palauttamiseksi tai , muokkaamiseksi, mikä voidaan myös ymmärtää mahdolliseksi kytkentämekanis- *;;; miksi.
* « t ’ . 30 On myös mahdollista, ettei mekanismia jonkin toiminnon kutsujen suuntaamiseksi uudelleen ole olemassa. Näissä tapauksissa kytkeminen voidaan toteuttaa muokkaa-maila binäärimuotoista ohjelmakoodia "lennossa". Eräs mahdollinen tapa tällaisen : ‘ : kytkennän toteuttamiseksi on tallettaa muutamia tavuja alkuperäisen toiminnon alus- •; · ·: ta ja korvata ne hyppyohjeella korvaustoimintoon. Tällaisessa tapauksessa alkupe- 35 räistä toimintoa voidaan kutsua esimerkiksi siten, että analysoidaan alkuperäisen toiminnon ensin talletetut ohjeet, ja heti ensimmäisen sellaisen ohjeen jälkeen, jonka 19 113927 päälle alkuperäiselle toiminnolle kirjoitettu hyppyohje ei ole kirjoittanut, sijoitetaan hyppy alkuperäisen toiminnon vastaavaan kohtaan. Tekemällä pieniä muutoksia koodiin, johon alkuperäisen koodin hyppy viittaa, voidaan korvaustoimintoa kutsua alkuperäisen asemesta, sitä ennen tai sen jälkeen.
5 Korvaustoimintoa sanotaan joskus toiminnon kytkentäversioksi erotuksena alkuperäiselle toiminnolle. Tätä toimintoa käytetään erityisesti silloin, kun korvaustoimintoa kutsutaan alkuperäisen toiminnon asemesta (mikä ei tietenkään sulje pois mahdollisuutta, että se saattaa joskus suorituksensa aikana nimenomaisesti kutsua alkuperäistä koodia).
10 Selvyyden vuoksi mainittakoon, että normaalien sovellusohjelmointirajapintojen eli API:en (Application Programming Interfaces) ja muiden rajapintojen käyttämistä ei tyypillisesti katsottaisi kytkemiseksi, vaikka API:n kautta siirrettäisiinkin toiminto-osoittimia tai takaisinkutsuja. Esimerkiksi tyypillinen väliajuri tai STREAMS-mo-duuli ei suorita kytkentää, vaan käyttää sen sijaan dokumentoituja (tai kilpailevaa 15 tuotetta analysoimalla hankittuja) rajapintoja verkkoadaptereille ja protokollille ja toimii yhteen suuntaan protokollana ja toiseen suuntaan adapterina.
Joissakin ympäristöissä voidaan kytkemisen sijasta käyttää menetelmää, joka muistuttaa suuresti nyt esillä olevan keksinnön mukaista menetelmää. Monien käyttöjärjestelmien, esim. Windows NT:n, ydin koostuu useista dynaamisesti ladattavista kir-·**,, 20 jastoista DLL.istä (Dynamically Loadable Library) tai moduuleista. Kukin moduuli : ·. tarjoaa ytimen muulle osalle tarkkaan määritellyn ohjelmointirajapinnan ja soveltaa rajapintaa käyttämällä jotakin sisäistä menetelmää. Windows NT:n verkkoprotokol-lakehys sisältyy NDIS.SYS-tiedostoon. Kyseinen tiedosto sisältää kaikki verkko- • »· * adaptereiden ja verkkoprotokollien käyttämät toimintokutsut.
< · 25 Windows NT ei tarjoa samanlaista kätevää rajapintaa DLL-pääsykohtien kytkemiseksi kuin Windows 95:n ja 98:n käyttämä VxDs. NDIS-toimintojen kytkeminen • ·. voitaisiin järjestää korvaamalla koodi alkuperäisten toimintojen alusta; tämä on kui- . · · ·, tenkin varsin monimutkaista. Seuraavassa kuvataan eräs tälle vaihtoehtoinen, mutta • käsitteellisesti samanlainen ratkaisu.
• * * > · : ' 30 Kytkentään verrattava toiminto voidaan periaatteessa toteuttaa siirtämällä syrjään . (tallettamalla) alkuperäinen käyttöjärjestelmämoduuli (NDIS.SYS), korvaamalla se ’· ; uudella moduulilla, joka sisältää saman ohjelmointirajapinnan, suorittaa sieppaukset ja kutsuu alkuperäistä käyttöjärjestelmämoduulia aina, kun se tahtoo suorittaa alkuperäisen operaation.
20 113927 Tähän yksinkertaiseen ratkaisuun liittyy kuitenkin kolme ongelmaa. Ydinmoduulin (NDIS.SYS) sisältämä ohjelmointirajapinta (API) voi muuttua käyttöjärjestelmän versiosta toiseen (jopa eri OEM-versioiden tai huoltopakkausten kesken). Näin pelkkä moduulin korvaaminen johtaa vakaviin yhteensopivuusongelmiin (on varsin 5 todennäköistä, ettei tietokone suostu alkulataukseen, jos korvaavaa moduulia on käytetty yhteensopimattomassa huoltopakkauksessa). Toinen ongelma liittyy ensimmäiseen. Kun asennetaan ohjelman päivitystä tai huoltokorjausta, käyttäjä voi saada ilmoituksen, että tiedosto on muuttunut. Se hämmentää käyttäjää ja voi keskeyttää huoltokorjauksen asennuksen. Kolmaskin ongelma liittyy samaan ilmiöön.
10 Jos ohjelmaan on asennettu uusi huoltopäivitys, joka on korvannut entisen käyttöjär-jestelmämoduulin uudella, voi käydä niin, ettei sieppaaja enää lataudu.
Yksi mahdollinen ratkaisu tähän ongelmaan on ajaa ohjelma erikseen jokaisen uudelleenkäynnistyksen jälkeen, panna ohjelma tarkistamaan, onko moduuli muuttunut, ja jos näin on, korvata se sieppaajamoduulillla.
15 Toinen ratkaisu on luoda niin sanottu natiivisovellus: sovellus, joka pyörii ennen kuin käyttöjärjestelmä lataa verkkomoduulit. Natiivisovellus toimii NT-ytimessä, mutta ilman Win32:ta tai muuta käyttäjätilaista alijärjestelmää. Näin ollen natiivisovellus on käyttäjätilainen sovellus, joka toimii NT:ssä, mutta se ei ole aito Win-dows-sovellus. Tällaisia sovelluksia on perinteisesti käytetty esim. käynnistyksen 20 jälkeiseen organisointiin ja siivoukseen, esim. tiedostojärjestelmän yhdenmukaisuu-: * den ja yhtenäisyyden tarkistamiseen. Menetelmä, jolla kaikki kolme ongelmaa voi- ; daan ratkaista, toimii seuraavasti: - Alkulatauksen jälkeen ajetaan natiiviohjelma. Natiiviohjelma tutkii ensin, onko ydinmoduuli (esim. NDIS.SYS) jo sinänsä itsensä generoima, korvaava moduuli.
• · ’ 25 Jos näin on, ohjelma poistaa korvaavan moduulin ja palauttaa alkuperäisen. Sitten se • · ‘ · · * ’ ryhtyy varsinaiseen tehtäväänsä. Se siirtää alkuperäisen syrjään, lukee sen pääsykoh- tataulukon, lukee sieppaajamoduulin pääsykohtataulukon ja luo dynaamisesti uuden ..; ·' moduulin, joka sisältää samat pääsykohdat kuin alkuperäinen moduuli; sitten se vä- : : littää kunkin pääsykohdan edelleen sieppaajamoduulille, jos kyseinen pääsykohta on ,, ‘; 30 olemassa sieppaajamoduulissa, ja alkuperäiselle moduulille, jos pääsykohtaa ei ole , . sieppaajamoduulissa. Nyt generoitu moduuli kirjoitetaan alkuperäisen moduulin ’: · paikalle.
., ,; - Alkulataus jatkuu, ja generoitu moduuli ladataan. Myös alkuperäinen ja sieppaa- jamoduuli ladataan.
21 113927 - Kun käyttöjärjestelmä on ladattu, suoritetaan ohjelma (esim. järjestelmän huolto-sovellus), joka poistaa generoidun DLL:n ja siirtää alkuperäisen käyttöjärjestelmä-moduulin (NDIS.SYS) takaisin.
Menetelmä tarjoaa huomattavan vakauden eri huoltopäivitysten välisten erojen suo-5 jaksi, onhan varsin harvinaista, että rajapinnat muuttuisivat täysin yhteensopimatto-malla tavalla (toisin kuin siinä tapauksessa, että lisätään kokonaan uusia rajapintoja). Lisäksi sen avulla vältetään huoltopäivitysten asennusongelmat, koska alkuperäinen ydinmoduuli on aina läsnä kun huoltopäivitystä asennetaan, ja uutta moduulia aletaan käyttää vasta kun huoltopäivitys on asennettu.
10 On syytä panna merkille, että edellä kuvattu menettely voidaan toteuttaa monella eri tavalla. Toimenpiteet voidaan suorittaa eri järjestyksessä, menettelyyn voidaan lisätä uusia, limittäisiä toimenpiteitä, ja jotkut toimenpiteet voidaan jättää pois muuttamatta olennaisesti menettelytavan perusperiaatteita.
Toisin kuin eräät tunnetut ratkaisut, nyt esillä olevan keksinnön mukainen menetel-15 mä asettaa hyvin vähän rajoituksia sieppaajaa käyttävälle sovellukselle. Sovellus voi siirtää kaikki datapaketit sieppaajan läpi, se voi panna ne jonoon, pudottaa ne ja muokata niitä, ja lisäksi se voi syöttää adapterien ja protokollien näkemään paketti-virtaan kokonaan uusia paketteja.
.. Edellä keksintöä on kuvattu esimerkinomaisesti viittaamalla käyttöjärjestelmiin 20 Windows 95, Windows 98, Windows NT, Solaris ja FreeBSD, mutta niiden lisäksi • ’’ keksintö on suoraan sovellettavissa useisiin muihin käyttöjärjestelmiin, joita ovat • · · ·* mm Windows 2000, NetBSD ja Linux. Menetelmän yksityiskohdat riippuvat suures- :.‘‘i ti pohjana olevan järjestelmän erityispiirteistä, ja toimenpiteiden keskinäistä järjes- • · » tystä voidaan muuttaa varsin vapaasti. Lisäksi on huomattava, että vaikka keksintöä :_ 25 on edellä kuvattu sijoitettuna yhden ainoan ydinajurin ympäristöön, osa toiminnoista voidaan jakaa erillisiin ydinajureihin tai jopa käyttäjätilaiseen sovellukseen. Kaikis- sa käyttöjärjestelmissä ei ydinajurien ja käyttäjätilaisten sovellusten välillä ole vält- . · ·, tämättä mitään eroa.
* * ‘' i Kuviossa 14 on kuvattu laitteistoratkaisu, jota voidaan käyttää nyt esillä olevan kek- :1 ’30 sinnön toteuttamiseen. Kuvion 14 mukaisen tietokonelaitteen perustana on prosesso-. * . ri 1401, johon on liitetty käyttöliittymä (edullisesti näppäimistö ja näyttö) 1402 käyt- ; täjän komentojen vastaanottamiseksi ja tiedon näyttämiseksi käyttäjälle, ohjelma- • * » » muisti 1403 käyttöjärjestelmän ytimen ja muiden ohjelmien tallentamiseksi toiminnan aikana ja suoritusmuisti 1404 käytettäväksi tilapäisenä, käyttöaikaisena tiedon 22 113927 varastointipaikkana esim. paketeille, jotka ovat parhaillaan lähetettävinä tai vastaanotettavina. Prosessoriin on edelleen liitetty sisäinen väylä 1405 tiedon vaihtamiseksi tietokoneen muiden osien kanssa, esim. paikallisen tiedon sisäänmeno- ja ulostulo-laite (edullisesti Cd-rom-asema) 1406, massamuisti (edullisesti kovalevy) 1407 ja 5 verkkorajapintakortti 1408. Jälkimmäinen on liitetty pakettikytkentäisen datansiirto-verkon fyysiseen siirtovälineeseen 1409 verkkoyhteyden 1410 kautta.
Keksinnön tavoitteiden toteuttamiseksi kuviossa 14 esitetyn tietokonejärjestelyn täytyy ensinnäkin kyetä vastaanottamaan ja lataamaan ohjelmakoodi, joka koostuu prosessorin suoritettavaksi tarkoitetuista ohjeista ja sisältää paketinsieppaajamoduulille 10 olennaiset kytkennät ja korvaustoiminnot. Tämä vaatimus on helposti täytetty, koska keksinnön mukainen paketinsieppaajamoduuli on edullisesti toteutettu varastoitavassa muodossa, joko kannettavalla varastointivälineellä, jota paikallisen tiedon sisäänmeno- ja ulostulolaite 1406 kykenee lukemaan, tai tiedostona, johon päästään käsiksi sen verkon kautta, johon tietokonejärjestely on yhdistetty verkkorajapinta-15 kortilla 1408 ja verkkoyhteydellä 1410. Tarvittavan ohjelmakoodin lataaminen paikallisen sisääntulo- ja ulosmenolaitteen 1406 tai verkkoyhteyden 1410 kautta ohjel-mamuistiin 1403 edellyttää vain käyttäjän käyttöliittymän 1402 syöttämiä, tunnetun tyyppisiä latauskomentoja. Lisäksi on suositeltavaa, että ohjelmakoodi on talletettu massamuistiin 1407, jotta se voidaan helposti ladata uudelleen käynnistysvaiheessa, 20 tai kun se on muuten tarpeen.
: '·· Toiseksi kuvion 14 mukaisen tietokonejärjestelyn täytyy kyetä suorittamaan ohjel- ; ' mamuistiin 1403 ladattu ohjelmakoodi, joka sisältää paketinsieppaajamoduulille • i ♦ olennaiset kytkennät ja korvaustoiminnot. Tämän toteuttaminen on helppoa, kunhan :*·, ohjelmakoodi on yhteensopiva tietokonejärjestelyä ohjaavan käyttöjärjestelmän .···. 25 kanssa. Tämän patenttihakemuksen selityksessä on edellä tuotu nimenomaisesti , · ·. esiin, kuinka tiettyjä toimintoja ja kytkentämenettelyjä käytetään yhdessä tiettyjen, • « nimenomaisten ja tunnettujen käyttöjärjestelmien kanssa. Alan ammattimiehelle on kuitenkin selvää, että kun keksinnön tässä patenttihakemuksessa selvitetyt periaat-•;;; teet on luettu ja ymmärretty, keksintöä voidaan yleistäen soveltaa käyttöön kaikkien 30 käyttöjärjestelmien yhteyteen (sekä patenttihakemuksen jättöhetkellä tunnettujen et-·:··· tä vastaisuudessa kehitettävien) käyttämällä kyseisen käyttöjärjestelmän tarjoamia ; . kytkentämekanismeja ja korvaamalla toisiaan vastaavat toiminnot, jotka liittyvät . · , saapuvien ja lähtevien pakettien käsittelyyn.
23 113927
VIITEJULKAISUT
AT93 P. Adams, C. Tondo: Writing Unix Device Drivers in C, Prentice Hall, 1993. Baker97 5 A. Baker: The Windows NT Device Driver Book, Prentice Hall, 1997.
Bonner96 P. Bonner: Programming with Windows Sockets, Prentice Hall, 1996.
Brain96 M. Brain: Win32 System Services, Prentice Hall, 1996.
10 CB94 W. Cheswick, S. Bellovin: Firewalls and Internet Security, Addison-Wesley, 1994. CZ95 B. Chapman, E. Zwicky: Building Internet Firewalls, O'Reilly, 1995.
DEJANEWS
15 Public discussions in the comp.os.ms-windows.programmer.nt.kernel-mode and comp.os.ms-windows.programmer.win95.vxd newsgroups, 1997-1999 (nähtävissä ., esim. osoitteessawww.dejanews.com).
: Dhawan95 • i · S. Dhawan: Networking Device Drivers, Van Nostrand Reinhold, 1995.
• · * 20 Droms97 R. Droms: Dynamic Host Configuration Protocol, RFC 2131, Internet Engineering Task Force, 1997.
.:. ES90 ,···, M. Ellis, B. Stroustrup: The Annotated C++ Reference Manual, Addison-Wesley, ‘‘E* 25 1990.
Ezzell97 [: ’. B. Ezzell: NT 4/Windows 95 Developer's Handbook, SYBEX, 1997.
·:·*: KA98 S. Kent, R. Atkinson: Security Architecture for the Internet Protocol, RFC 2401, 30 Internet Engineering Task Force, 1998.
24 113927
Kauler97 B. Kauler: Windows Assembly Language and Systems Programming, R&D Books, 1997.
Lanciani92DIS_PKT
5 D. Lanciani: DIS_PKT.ASM file, 1992. Nähtävissä osoitteessa www.danlan.com. Lanciani94IBANPKT
D. Lanciani: IBANPKT program, 1994. Nähtävissä osoitteessa www.danlan.com. Lanciani960diPKT3.1
D. Lanciani: ODIPKT 3.1 program, 1996. Nähtävissä osoitteessa www.danlan.com. 10 Lanciani97NFSTDI
D. Lanciani: NFSTDI program, 1997. Nähtävissä osoitteessa www.danlan.com. Lanciani97NDIS3PKT
D. Lanciani: NDIS3PKT program, 1997. Nähtävissä osoitteessa www.danlan.com. Lanciani98 15 Dan Lanciani: Re: Intercepting Packets at NDIS Level, article posted to comp.os.ms-windows.programmer.nt.kernel-mode, February 18, 1998 (nähtävissä mm. osoitteessa www.dejanews.com).
Lanciani98PPPMAC
• » ·’ ” Dan Lanciani: Re: Help about PPPMAC, article posted to comp.os.ms- ...: 20 windows.programmer.nt.kernel-mode, December 17, 1998 (nähtävissä mm. osoit- teessawww.dejanews.com).
t · · • · • · ,···. Lanciani98Reply • ·
Dan Lanciani: Re: Interceptor packets at NDIS level, article posted to comp.os.ms-windows.programmer.nt.kernel-mode, March 1, 1998 (nähtävissä mm. osoitteessa
I ( I
;;; 25 www.dejanews.com).
• · I · ,,1.: McGregor92 .G. McGregor: The PPP Internet Protocol Control Protocol (IPCP), RFC 1332, Inter-» net Engineering Task Force, 1992.
MSD0S5 30 MSDOS 5.x programmer's manual, Microsoft, 1986(7).
25 113927
Nogar97 R. Nogar: Windows NT File System Internals, O'Reilly, 1997.
PCAUSA99
Implementing a intermediate driver that works with RAS under NT, Internet-sivu 5 http://www.pcausa.com/resources/im-ras.html, March 1999.
Pentium
Pentium Processor Family User's Manual, Vol. 3, Intel, 1994.
Perkins96 C. Perkins: IP Mobility Support, RFC 2290, Internet Engineering Task Force, 1996. 10 Petzold92 C. Petzold: Programming Windows 3.1, Microsoft Press, 1992.
Plummer82 D. Plummer: Ethernet Address Resolution Protocol, RFC 826, Internet Engineering Task Force, 1982.
15 Postel81 J. Postel: Internet Protocol, RFC 791, Internet Engineering Task Force, 1981.
QS96 B. Quinn, D. Shute: Windows Sockets Programming, Addison-Wesley, 1996.
·:· SCFJ96 • · « · 20 H. Schulzrinne, S. Casner, R. Frederick, V. Jacobson: RTP: ATransport Protocol for • · .·*·. Real-Time Applications, RFC 1889, Internet Engineering Task Force, 1996.
' · · * Simpson94 W. Simpson: The Point-to-Point Protocol (PPP), RFC 1661, Internet Engineering Task Force, 1994.
• * 25 Sinha96 ' * A. Sinha: Network Programming in Windows NT, Addison-Wesley, 1996.
.' . Steele90 * * * ’ * ; G. Steele: Common Lisp- The Language, 2nd ed., 1990.
* * * · * * · STREAMS93 30 SunOS 5.2 STREAMS Programmer's Guide, Sun Microsystems, 1993.
26 113927 SWE98 C. Scott, P. Wolfe, M. Erwin: Virtual Private Networks, O'Reilly, 1998.
VM99 P. Viscarola, W. Mason: Windows NT Device Driver Development, OSR Open 5 Systems Resources Inc, 1999.
Waldbusser97 S. Waldbusser: Remote Network Monitoring Management Information Base, RFC 2021, Internet Engineering Task Force, 1997.
Win4DDK
10 Microsoft Windows NT 4.0 Device Driver Kit, Microsoft, 1996.
Win95DDK
Microsoft Windows NT 95 Device Driver Kit, Microsoft, 1996.
Win98DDK
Microsoft Windows NT 98 Device Driver Kit, Microsoft, 1998.
15 WS95 G. Wright, W. Stevens: TCP/IP Illustrated, Vol. 2, Addison-Wesley, 1995.
• % * » » · » * » > » t t

Claims (47)

1. Menetelmä verkkopakettien sieppaamiseksi tietokonejärjestelmässä, missä verkkopaketteja siirretään ensimmäisen verkkoadapterin (203) ja ensimmäisen pro-tokollayksikön (201) välillä, joista verkkoadapteri (203) sisältää tietyn verkkoraja- 5 pinnan, ja jossa menetelmässä on vaihe, jossa järjestetään joukko korvaavia toimintoja (211, 412,1011) paketinsieppaajamoduuliin (210, 1010); tunnettu siitä, että menetelmässä on seuraavat vaiheet: - kytketään (212, 213, 302, 1012) ainakin yksi toiminto (403), jota on käytetty verkkopakettien siirtämiseen ensimmäisestä protokollayksiköstä (201) ensimmäiseen 10 verkkoadapteriin (203), ensimmäiseen korvaustoimintoon (413); - kytketään (212, 213, 302, 1013) ainakin yksi toiminto (403), jota on käytetty verkkopakettien siirtämiseen ensimmäisestä verkkoadapterista (203) ensimmäiseen pro-tokollayksikköön (201), toiseen korvaustoimintoon (413); ja - kytketään (212, 213, 302, 1013) ainakin yksi toiminto (407), jota on käytetty mai-15 nitun ensimmäisen verkkoadapterin (203) toteuttaman verkkorajapinnan tilaa koskevan tiedon vastaanottamiseen, kolmanteen korvaustoimintoon (417).
2. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että siinä on lisäksi seuraavat vaiheet: - määritellään, onko mainitun ensimmäisen verkkoadapterin (203) sisältämälle verk-20 korajapinnalle osoitettu dynaamista IP-osoitetta; ja • ·* -siinä tapauksessa, että mainitun ensimmäisen verkkoadapterin (203) sisältämälle ensimmäiselle verkkorajapinnalle on osoitettu dynaaminen IP-osoite, määritellään •; · mikä mainittu IP-osoite on. • · I
< « / 3. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että siinä on lisäk- » » 25 si vaihe, jossa tunnistetaan tietokonejärjestelmään asennetut ensimmäinen verkko-adapteri (203) ja ensimmäinen protokollayksikkö (201), siten että mainitussa vaiheessa on ensin alivaihe, jossa ,, ’ · * - kytketään (302) tietty verkkoadaptereiden (203) ja protokollayksikköjen (201) käy- tettäväksi tarkoitettu mekanismi (404, 405), jolla niiden on tarkoitus rekisteröityä , [.. 30 tietokonejärjestelmään, tiettyyn korvaustoimintoon (414, 415); » a minkä jälkeen seuraavat vapaassa järjestyksessä seuraavat alivaiheet: •; ‘ ’ - tunnistetaan mainittu ensimmäinen verkkoadapteri (203), kun se käyttää mainittua :,' * · korvaustoimintoa (415) rekisteröityäkseen tietokonejärjestelmään, ja ; ·: - tunnistetaan mainittu ensimmäinen protokollayksikkö (201), kun se käyttää mainit- 35 tua korvaustoimintoa (414) rekisteröityäkseen tietokonejärjestelmään. 28 113927
4. Patenttivaatimuksen 3 mukainen menetelmä, tunnettu siitä, että vaihe, jossa kytketään (302) tietty verkkoadaptereiden (203) ja protokollayksikköjen (201) käyttämä järjestelmään rekisteröitymismekanismi (404, 405), käsittää vapaassa järjestyksessä seuraavat alivaiheet: 5. ladataan (301) rajapintamoduuli, joka määrittelee mainitun mekanismin (404, 405); - ladataan (302) paketinsieppaajamoduuli, joka määrittelee mainitun korvausmeka-nismin (414, 415); ja - kytketään (302) mainitun mekanismin (404, 405) ennalta määritellyt osat (404, 10 405) mainitun korvausmekanismin (414, 415) ennalta määriteltyihin osiin (414, 415).
5. Patenttivaatimuksen 4 mukainen menetelmä, tunnettu siitä, että vaihe, jossa ladataan (301) mainitun mekanismin (404, 405) määrittelevä rajapinta, käsittää vaiheen, jossa ladataan NDIS-rajapintamoduuli, ja vaihe, jossa mainitun mekanismin 15 (404, 405) ennalta määritellyt osat (404, 405) kytketään mainitun korvausmekanis min (414, 415) ennalta määriteltyihin osiin (414,415), käsittää seuraavat alivaiheet: - kytketään mainitun NDIS-rajapintamoduulin määrittelemä NdisRegisterProtocol-toiminto (404) mainitun paketinsieppaajamoduulin määrittelemään korvaavaan protokollan rekisteröintitoimintoon (414); ja 20. kytketään mainitun NDIS-rajapintamoduulin määrittelemä NdisOpenAdapter -toi minto (405) mainitun paketinsieppaajamoduulin määrittelemään korvaavaan verk-koadapterin avaustoimintoon (415). » · • I
· · · 6. Patenttivaatimuksen 5 mukainen menetelmä, tunnettu siitä, että NdisRegister- t · » » ;*·.· Protocol-toiminnon (404) kytkentävaiheeseen kuuluu vaihe, jossa korvataan useita .···. 25 NDIS_PROTOCOL_CHARACTERISTICS-rakenteen toimintoja mainitun NDIS- , · · >, rajapintamoduulin määrittelemässä rakenteessa. • *
7. Patenttivaatimuksen 6 mukainen menetelmä, tunnettu siitä, että useiden ,,;;' NDIS_PROTOCOL_CHARACTERISTICS-rakenteen toimintojen korvausvaihees- : : sa suoritetaan NDIS-rajapintamoduulin määrittelemien ReceiveHandler, Receive- ’ . 30 CompleteHandler ja TransferDataCompleteHandler-toimintojen korvaaminen. I t , 4
8. Patenttivaatimuksen 7 mukainen menetelmä, tunnettu siitä, että useiden , ’ ; NDIS_PROTOCOL_CHARACTERISTICS-rakenteen toimintojen korvausvaihees- ; sa suoritetaan lisäksi NDIS-rajapintamoduulin määrittelemien SendCompleteHan- dler ja RequestCompleteHandler -toimintojen korvaaminen. 29 113927
9. Patenttivaatimuksen 5 mukainen menetelmä, tunnettu siitä, että siihen kuuluu lisäksi vaihe, jossa määritellään mitkä kytkennät yhdistävät ensimmäisen verkko-adapterin ja ensimmäisen protokollayksikön toisiinsa, kutsumalla korvaavaa adapterin avaustoimintoa (415).
10. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että siinä on lisäk si seuraavat vaiheet: - ladataan ensimmäinen verkkoadapteri (203) ja ensimmäinen protokollayksikkö (201), ja - määritellään mitkä kytkennät yhdistävät ensimmäisen verkkoadapterin (203) ja en-10 simmäisen protokollayksikön (201) toisiinsa analysoimalla datarakenteita sen jälkeen, kun mainitut ensimmäinen verkkoadapteri (203) ja ensimmäinen protokolla-yksikkö (201) on ladattu.
11. Patenttivaatimuksen 10 mukainen menetelmä, tunnettu siitä, että datarakenteiden analysointivaihe ensimmäisen verkkoadapterin (203) ja ensimmäisen proto- 15 kollayksikön (201) lataamisen jälkeen käsittää vaiheen, jossa luetaan järjestelmän konfigurointitietoa muistista.
12. Patenttivaatimuksen 11 mukainen menetelmä, tunnettu siitä, että järjestelmän konfigurointitiedon lukeminen muistista käsittää vaiheen, jossa luetaan ennalta talletettua rekisteriä.
13. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että siinä on lisäk- : si vaihe, jossa tunnistetaan ensimmäinen verkkoadapteri (203) ja ensimmäinen pro- « # · ···: tokollayksikkö (201) siten, että tähän vaiheeseen kuuluu alivaihe, jossa luetaan jär- * t •Y ·: jestelmän konfigurointitietoa muistista. I f I
.··*, 14. Patenttivaatimuksen 13 mukainen menetelmä, tunnettu siitä, että alivaiheessa, 25 jossa luetaan järjestelmän konfigurointitietoa muistista, luetaan ennalta talletettua rekisteriä.
* * · ' : 15. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että siinä on lisäk si seuraavat vaiheet: » * » * - ladataan ensimmäinen verkkoadapteri (203) ja ensimmäinen protokollayksikkö 30 (201), ja : ; - tunnistetaan ensimmäinen verkkoadapteri (203) ja ensimmäinen protokollayksikkö •: (201) käymällä datarakenteita läpi sen jälkeen, kun adapterit ja protokollat on ladat tu tietokonejärjestelmään. 30 113927
16. Patenttivaatimuksen 15 mukainen menetelmä, tunnettu siitä, että siinä on vapaassa järjestyksessä seuraavat vaiheet: - ladataan ensimmäinen protokollayksikkö (201) tietokonejärjestelmään; ja - ladataan ensimmäinen verkkoadapteri (203) tietokonejärjestelmään; 5 ja sen jälkeen suoritetaan seuraavassa järjestyksessä vaiheet, joissa - ladataan dynaamisesti ladattava paketinsieppaajamoduuli (210, 1010) tietokonejärjestelmään; ja - käydään datarakenteita läpi mainitun ensimmäisen verkkoadapterin (203) ja mainitun ensimmäisen protokollayksikön (201) tunnistamiseksi.
17. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että ainakin yksi mainituista kytkentävaiheista käsittää seuraavat alivaiheet: - paikallistetaan tietyn ensimmäisen, tiettyyn ensimmäiseen korvaustoimintoon kytkettävän toiminnon suoritettavan ohjelmakoodin alku, - talletetaan kopio tietyn suoritettavan ohjelmakoodin jaksosta alusta lukien; ja 15. korvataan tietty suoritettavan ohjelmakoodin jakso mainitusta alusta lukien toisella suoritettavan ohjelmakoodin jaksolla, joka siirtää suorittamisen mainitulle ensimmäiselle korvaustoiminnolle.
18. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että ainakin yksi kytkentävaiheista (212, 213, 302, 1012, 1013) käsittää seuraavat alivaiheet: 20. paikallistetaan datarakenteesta toiminnon osoitin, joka osoittaa tiettyä ensimmäistä i · i '·· toimintoa (402), joka on määrä kytkeä tiettyyn ensimmäiseen korvaustoimintoon j‘*.. (412); •: · - talletetaan kopio mainitusta toiminnon osoittimesta; ja - korvataan mainittu toiminnon osoitin toisella toiminnon osoittimella, joka osoittaa . · · ·. 25 mainittua ensimmäistä korvaustoimintoa (412).
'··· 19. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että ainakin yksi mainituista kytkentävaiheista (212, 213, 302, 1012, 1013) käsittää seuraavat alivai-.,; j * heet: : t : - paikallistetaan dynaamisesti ladatusta moduulista lähetystaulukko; ja t, |,; 30 - modifioidaan mainittu lähetystaulukko. f t I
•,,, · 20. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että ainakin yksi : mainituista kytkentävaiheista (212, 213, 302, 1012, 1013) käsittää alivaiheen, jossa ,..,: kutsutaan järjestelmätoimintoa, joka asentaa kytkennän järjestelmän palveluihin. 31 113927
21. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että ainakin yksi mainituista kytkentävaiheista (212, 213, 302, 1012, 1013) käsittää alivaiheen, jossa lisätään järjestelmän tuottamaan kytkentäluetteloon ensimmäinen korvaustoiminto (412), johon on kytketty tietty ensimmäinen toiminto (402).
22. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että ainakin yksi mainituista kytkentävaiheista (212, 213, 302, 1012, 1013) käsittää alivaiheen, jossa keskeytys vektori suunnataan uudelleen.
23. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että siihen kuuluu lisäksi vaihe, jossa tietyllä ensimmäisellä korvaustoiminnolla (412) varustettua 10 verkkopakettia käsitellään siirtämättä mainittua verkkopakettia toimintoon (402), joka on kytketty mainittuun ensimmäiseen korvaustoimintoon (412).
24. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että siihen kuuluu lisäksi vaihe, jossa kutsutaan tiettyä ensimmäistä toimintoa (402) tietystä ensimmäisestä korvaustoiminnosta (412), johon mainittu ensimmäinen toiminto (402) on kyt- 15 ketty.
25. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että siinä on lisäksi seuraavat, seuraavassa järjestyksessä toteutettavat vaiheet: - modifioidaan tietyn ensimmäisen korvaustoiminnon (412) omaava verkkopaketti, :·. ja • * % !, 20 - siirretään modifioitu verkkopaketti toimintoon (402), joka on kytketty mainittuun * ’’ ensimmäiseen korvaustoimintoon (412). • M*
26. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että siihen kuuluu lisäksi vaihe, jossa verkkopaketti kopioidaan soveltamalla tiettyä ensimmäistä kor- , · ·. vaus toimintoa (412).
27. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että siihen kuuluu lisäksi vaihe, jossa kutsutaan tiettyä ensimmäistä toimintoa (402), joka on kytketty :,,7 tiettyyn ensimmäiseen korvaustoimintoon (412), kutsumatta ensin mainittua ensim- ,,,,: mäistä korvaustoimintoa (412).
'... ‘ 28. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että siinä on lisäk- : ‘. t; 30 si seuraavat vaiheet: ....: - määritellään onko yhteyden muodostuslinkki aktiivinen vai passiivinen; ja - toimitetaan tieto mainitun yhteydenmuodostuslinkin aktiivisesta tai passiivisesta tilasta mainitulle paketinsieppaajamoduulille (210, 1010). 32 113927
27 113927
29. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että siinä on lisäksi seuraavat vaiheet: - määritellään ainakin yksi ensimmäisen verkkorajapinnan käyttämä verkko-osoite; ja 5. toimitetaan tieto määritellyistä verkko-osoitteista paketinsieppaajamoduulille (210, 1010).
30. Patenttivaatimuksen 29 mukainen menetelmä, tunnettu siitä, että vaihe, jossa määritellään ainakin yksi verkko-osoite, käsittää alivaiheen, jossa tarkastellaan linkkikerroksen protokollapaketteja.
31. Patenttivaatimuksen 30 mukainen menetelmä, tunnettu siitä, että vaihe, jossa tarkastellaan linkkikerroksen protokollapaketteja, käsittää alivaiheen, jossa tarkastellaan IPCP-paketteja, missä IPCP on PPP:n aliprotokolla.
32. Patenttivaatimuksen 30 mukainen menetelmä, tunnettu siitä, että vaihe, jossa tarkastellaan linkkikerroksen protokollapaketteja, käsittää alivaiheen, jossa tarkas- 15 teilaan ARP-protokollapaketteja.
33. Patenttivaatimuksen 29 mukainen menetelmä, tunnettu siitä, että vaihe, jossa määritellään ainakin yksi verkko-osoite, käsittää alivaiheen, jossa tarkastellaan DHCP-protokollaa.
: ‘ · 34. Patenttivaatimuksen 29 mukainen menetelmä, tunnettu siitä, että vaihe, jossa : 20 määritellään ainakin yksi verkko-osoite, käsittää seuraavat alivaiheet: ^ *: - kytketään tietty ensimmäinen toiminto (402), jota kutsutaan kun osoitetiedoissa on ;' ·, · muutos, tiettyyn korvaustoimintoon (412); • · - käydään läpi joukko ennalta määrättyjä datarakenteita samalla kun kutsutaan mai- . · . nittua korvaustoimintoa (412); ja 25. verrataan mainituista datarakenteista luettua tietoa ennalta määrättyyn, aiemmin talletettuun vastaavaan tietoon.
35. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että siinä on edel-, ' : leen vaihe, jossa .. - modifioidaan mainitun ensimmäisen verkkoadapterin (203) ja mainitun ensimmäi- 30 sen protokollayksikön (201) välillä siirtynyttä, linkkikerroksen ominaispiirteitä kos-, I kevaa tietoa; ; - mainitun tiedon modifioinnin tuloksena pienennetään mainitun ensimmäisen pro tokollayksikön (201) tuntemaa suurinta linkillä lähetettävän paketin kokoa. 33 113927
36. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että tietokonejärjestelmässä, jossa käytetään useita eri toimintoja verkkopakettien siirtämiseksi useiden verkkoadaptereiden (203) ja useiden protokollayksiköiden (201) välillä, joista verkkoadapterit (203) sisältävät tiettyjä verkkorajapintoja, menetelmässä on seuraa- 5 vat vaiheet: -järjestetään paketinsieppaajamoduuliin (210, 1010) joukko korvaustoimintoja (412); - kytketään (212, 213, 302, 1012) joukko toimintoja (403), joita käytetään verkko-pakettien siirtämiseen protokollayksiköiltä (201) verkkoadaptereille (203), ensim- 10 mäiseen korvaustoimintoryhmään (413); - kytketään (212, 213, 302, 1013) joukko toimintoja (403), joita käytetään verkko-pakettien siirtämiseen verkkoadaptereilta (203) protokollayksiköille (201), toiseen korvaustoimintoryhmään (413); ja - kytketään (212, 213, 302, 1013) joukko toimintoja (407), joita on käytetty verkko-15 adaptereiden (203) toteuttamien verkkorajapintojen tilaa koskevan tiedon vastaanottamiseen, kolmanteen korvaustoimintoryhmään (417).
37. Patenttivaatimuksen 36 mukainen menetelmä, tunnettu siitä, että siihen kuuluu vaihe, jossa tunnistetaan joukko verkkoadaptereita (203) ja protokollayksiköitä (201), jotka on asennettu tietokonejärjestelmään.
38. Patenttivaatimuksen 37 mukainen menetelmä, tunnettu siitä, että vaihe, jossa i · tunnistetaan joukko verkkoadaptereita (203) ja protokollayksikköjä (201), käsittää • '·. alivaiheen, jossa jätetään yksi tai useampia jäseniä mainitusta verkkoadaptereiden : · (203) ja protokollien (201) ryhmästä vaille huomiota. * » • · 1 > %
39. Patenttivaatimuksen 1 mukainen menetelmä, tunnettu siitä, että tietokonejär-25 jestelmässä, jossa tiettyä ensimmäistä käyttöjärjestelmämoduulia käytetään verkko-'···* toimintojen suorittamiseen, ja tämä ensimmäinen käyttöjärjestelmämoduuli sisältää tietyn useita sisääntulopaikkoja käsittävän ohjelmointirajapinnan, menetelmässä on .!; ’ seuraavat vaiheet: : - korvataan ensimmäinen käyttöjärjestelmämoduuli tietyllä ensimmäisellä korvaus- : 30 moduulilla, joka sisältää ensimmäisen käyttöjärjestelmämoduulin ohjelmointiraja pintaa vastaavan ohjelmointirajapinnan ja kutsuu mainittua ensimmäistä käyttöjärjestelmämoduulia ohjelmointirajapinnan useista pääsykohdista; ’.' · - käytetään mainittua korvausmoduulia tietokonejärjestelmään asennetun ainakin ; yhden verkkoadapterin (203) ja ainakin yhden protokollayksikön (201) tunnistami- 35 seen; 34 113927 - käytetään mainittua korvausmoduulia ainakin yhden verkkopaketteja ensimmäisestä protokollayksiköstä (201) ensimmäiseen verkkoadapteriin (203) siirtävän toiminnon (403) korvaamiseen; - käytetään mainittua korvausmoduulia ainakin yhden verkkopaketteja ensimmäises-5 tä verkkoadapterista (203) ensimmäiseen protokollayksikköön (201) siirtävän toiminnon (403) korvaamiseen; - käytetään mainittua korvausmoduulia ainakin yhden, mainitun ensimmäisen verkkoadapterin (203) toteuttaman verkkorajapinnan tilaa koskevaa tietoa vastaanottavan toiminnon (407) korvaamiseen; 10. käytetään mainittua korvausmoduulia määrittelemään, onko ensimmäisen verkko- adapterin sisältämälle verkkorajapinnalle osoitettu dynaaminen IP-osoite; ja - tapauksessa, jossa verkkorajapinnalle on osoitettu dynaaminen IP-osoite, käytetään mainittua korvausmoduulia määrittelemään, mikä mainittu IP-osoite on.
40. Patenttivaatimuksen 39 mukainen menetelmä, tunnettu siitä, että siihen kuu-15 luu lisäksi vaihe, jossa kutsutaan mainitun korvausmoduulin ensimmäistä käyttöjär- jestelmämoduulia.
41. Patenttivaatimuksen 39 mukainen menetelmä, tunnettu siitä, että vaihe, jossa ensimmäinen käyttöjärjestelmämoduuli korvataan mainitulla korvausmoduulilla, käsittää seuraavat vaiheet: 20. siirretään ensimmäinen käyttöjärjestelmämoduuli asennuksen ajaksi syrjään, ja ; ’ * · - korvataan ensimmäinen käyttöjärjestelmämoduuli ensimmäisellä korvausmoduulil- • ’>· la. *« ·
42. Patenttivaatimuksen 39 mukainen menetelmä, tunnettu siitä, että vaihe, jossa ensimmäinen käyttöjärjestelmämoduuli korvataan mainitulla korvausmoduulilla, • * 25 suoritetaan kun tietokonejärjestelmässä tapahtuu alkulataus, mutta ennen kuin en-simmäinen käyttöjärjestelmämoduuli on ladattu.
.·. 43. Patenttivaatimuksen 42 mukainen menetelmä, tunnettu siitä, että siihen kuu- . ·. luu lisäksi vaihe, jossa korvausmoduulin toteuttama korvaustoiminto puretaan, kun * kyseinen käyttöjärjestelmä on ladattu.
44. Patenttivaatimuksen 39 mukainen menetelmä, tunnettu siitä, että siihen kuu luu lisäksi vaihe, jossa korvausmoduuli luodaan automaattisesti ensimmäisen käyttö-• ; järjestelmämoduulin perusteella. 35 113927
45. Tietokonejärjestelmä verkkopakettien käsittelemiseksi, jossa järjestelmässä on - ensimmäinen verkkoadapteri (203, 1408), joka on järjestetty sisältämään verkkora-japinta; - ensimmäinen protokollayksikkö (201); 5 -joukko ennalta määrättyjä toimintoja (402) verkkopakettien siirtämiseksi verkko-adapterin (203, 1408) ja protokollayksikön (201) välillä; ja - paketinsieppaajamoduuli (210, 1010) korvaustoimintojen määrittelemiseksi; tunnettu siitä, että järjestelmässä on - paketinsieppaajamoduulissa (210, 1010) välineet ainakin yhden verkkopakettien 10 siirtämiseen ensimmäisestä protokollayksiköstä (201) ensimmäiseen verkkoadapteriin (203, 1408) käytetyn toiminnon (403) kytkemiseksi ensimmäiseen korvaustoimintoon (413); -paketinsieppaajamoduulissa (210, 1010) välineet ainakin yhden verkkopakettien siirtämiseen ensimmäisestä verkkoadapterista (203, 1408) ensimmäiseen protokol-15 layksikköön (201) käytetyn toiminnon (403) kytkemiseksi toiseen korvaustoimintoon (413); ja - paketinsieppaajamoduulissa (210, 1010) välineet ainakin yhden, mainitun ensimmäisen verkkoadapterin (203, 1408) toteuttaman verkkorajapinnan tilaa koskevaa tietoa vastaanottavan toiminnon (407) kytkemiseksi kolmanteen korvaustoimintoon 20 (417).
. · 46. Patenttivaatimuksen 45 mukainen tietokonejärjestelmä, tunnettu siitä, että sii- ;. nä on lisäksi välineet ensimmäisen verkkoadapterin (203, 1408) ja ensimmäisen pro- : ’’ tokollayksikön (201) tunnistamiseksi.
47. Paketinsieppaajamoduuli (210, 1010) verkkopakettien sieppaamiseksi tietoko-25 nejärjestelmässä, jossa on ensimmäinen verkkoadapteri (203), ensimmäinen proto-.·1·. kollayksikkö (201) ja joukko ennalta määrättyjä toimintoja (402) verkkopakettien siirtämiseksi mainitun verkkoadapterin (203) ja mainitun protokollayksikön (201) välillä, ja johon paketinsieppaajamoduuliin (210,1010) sisältyy korvaavan toiminto-;;; joukon (412) määrittely; ; ·" 30 tunnettu siitä, että paketinsieppaajamoduliin (210, 1010) sisältyy ; i -välineet ainakin yhden verkkopaketteja ensimmäisestä protokollayksiköstä (201) ensimmäiseen verkkoadapteriin (203) siirtävän toiminnon (403) kytkemiseksi en-, , simmäiseen korvaustoimintoon (413); ‘ ; - välineet ainakin yhden verkkopaketteja ensimmäisestä verkkoadapterista (203) en- 35 simmäiseen protokollayksikköön (201) siirtävän toiminnon (403) kytkemiseksi toiseen korvaustoimintoon (413); ja 36 113927 - välineet ainakin yhden, ensimmäisen verkkoadapterin (203) toteuttaman verkkora-japinnan tilaa koskevaa tietoa vastaanottavan toiminnon (407) kytkemiseksi kolmanteen korvaustoimintoon (417). 5
FI20002477A 1999-11-13 2000-11-13 Menetelmä verkkopakettien sieppaamiseksi tietokonelaitteessa FI113927B (fi)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/439,419 US6678734B1 (en) 1999-11-13 1999-11-13 Method for intercepting network packets in a computing device
US43941999 1999-11-13

Publications (3)

Publication Number Publication Date
FI20002477A0 FI20002477A0 (fi) 2000-11-13
FI20002477A FI20002477A (fi) 2001-05-14
FI113927B true FI113927B (fi) 2004-06-30

Family

ID=23744629

Family Applications (1)

Application Number Title Priority Date Filing Date
FI20002477A FI113927B (fi) 1999-11-13 2000-11-13 Menetelmä verkkopakettien sieppaamiseksi tietokonelaitteessa

Country Status (5)

Country Link
US (1) US6678734B1 (fi)
CA (1) CA2325652C (fi)
DE (1) DE10054923B4 (fi)
FI (1) FI113927B (fi)
IL (1) IL139415A (fi)

Families Citing this family (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7089591B1 (en) 1999-07-30 2006-08-08 Symantec Corporation Generic detection and elimination of marco viruses
US6775657B1 (en) * 1999-12-22 2004-08-10 Cisco Technology, Inc. Multilayered intrusion detection system and method
US6754709B1 (en) * 2000-03-29 2004-06-22 Microsoft Corporation Application programming interface and generalized network address translator for intelligent transparent application gateway processes
GB0017201D0 (en) * 2000-07-14 2000-08-30 Ibm Generalised program hooks
US7630398B2 (en) * 2000-09-27 2009-12-08 Intel Corporation Subnet independent transparent bridge
US20020065874A1 (en) * 2000-11-29 2002-05-30 Andrew Chien Method and process for virtualizing network interfaces
US20020065876A1 (en) * 2000-11-29 2002-05-30 Andrew Chien Method and process for the virtualization of system databases and stored information
US20020092003A1 (en) * 2000-11-29 2002-07-11 Brad Calder Method and process for the rewriting of binaries to intercept system calls in a secure execution environment
WO2002093334A2 (en) * 2001-04-06 2002-11-21 Symantec Corporation Temporal access control for computer virus outbreaks
US7290266B2 (en) * 2001-06-14 2007-10-30 Cisco Technology, Inc. Access control by a real-time stateful reference monitor with a state collection training mode and a lockdown mode for detecting predetermined patterns of events indicative of requests for operating system resources resulting in a decision to allow or block activity identified in a sequence of events based on a rule set defining a processing policy
US7231665B1 (en) * 2001-07-05 2007-06-12 Mcafee, Inc. Prevention of operating system identification through fingerprinting techniques
US20030084319A1 (en) * 2001-10-31 2003-05-01 Tarquini Richard Paul Node, method and computer readable medium for inserting an intrusion prevention system into a network stack
US20030084321A1 (en) * 2001-10-31 2003-05-01 Tarquini Richard Paul Node and mobile device for a mobile telecommunications network providing intrusion detection
US7209971B1 (en) 2001-12-11 2007-04-24 Microsoft Corporation Architecture and run-time environment for network filter drivers
US7737134B2 (en) * 2002-03-13 2010-06-15 The Texas A & M University System Anticancer agents and use
US6959297B2 (en) 2002-04-25 2005-10-25 Winnow Technology, Llc System and process for searching within a data stream using a pointer matrix and a trap matrix
US7155742B1 (en) * 2002-05-16 2006-12-26 Symantec Corporation Countering infections to communications modules
US7367056B1 (en) 2002-06-04 2008-04-29 Symantec Corporation Countering malicious code infections to computer files that have been infected more than once
US7418729B2 (en) * 2002-07-19 2008-08-26 Symantec Corporation Heuristic detection of malicious computer code by page tracking
US7380277B2 (en) 2002-07-22 2008-05-27 Symantec Corporation Preventing e-mail propagation of malicious computer code
US20040019895A1 (en) * 2002-07-29 2004-01-29 Intel Corporation Dynamic communication tuning apparatus, systems, and methods
US7478431B1 (en) 2002-08-02 2009-01-13 Symantec Corporation Heuristic detection of computer viruses
US7469419B2 (en) * 2002-10-07 2008-12-23 Symantec Corporation Detection of malicious computer code
US7159149B2 (en) * 2002-10-24 2007-01-02 Symantec Corporation Heuristic detection and termination of fast spreading network worm attacks
US7278019B2 (en) * 2002-11-04 2007-10-02 Hewlett-Packard Development Company, L.P. Method of hindering the propagation of a computer virus
US7249187B2 (en) * 2002-11-27 2007-07-24 Symantec Corporation Enforcement of compliance with network security policies
US7941854B2 (en) * 2002-12-05 2011-05-10 International Business Machines Corporation Method and system for responding to a computer intrusion
US7631353B2 (en) * 2002-12-17 2009-12-08 Symantec Corporation Blocking replication of e-mail worms
US7296293B2 (en) * 2002-12-31 2007-11-13 Symantec Corporation Using a benevolent worm to assess and correct computer security vulnerabilities
US7203959B2 (en) 2003-03-14 2007-04-10 Symantec Corporation Stream scanning through network proxy servers
JP2004289561A (ja) * 2003-03-24 2004-10-14 Sony Corp ネットワーク接続の管理方法および電子機器
US7398386B2 (en) * 2003-04-12 2008-07-08 Cavium Networks, Inc. Transparent IPSec processing inline between a framer and a network component
US7801980B1 (en) 2003-05-12 2010-09-21 Sourcefire, Inc. Systems and methods for determining characteristics of a network
US8271774B1 (en) 2003-08-11 2012-09-18 Symantec Corporation Circumstantial blocking of incoming network traffic containing code
US20050091558A1 (en) * 2003-10-28 2005-04-28 International Business Machines Corporation System, method and program product for detecting malicious software
US7978716B2 (en) * 2003-11-24 2011-07-12 Citrix Systems, Inc. Systems and methods for providing a VPN solution
US7426574B2 (en) * 2003-12-16 2008-09-16 Trend Micro Incorporated Technique for intercepting data in a peer-to-peer network
US7337327B1 (en) 2004-03-30 2008-02-26 Symantec Corporation Using mobility tokens to observe malicious mobile code
US7533415B2 (en) * 2004-04-21 2009-05-12 Trend Micro Incorporated Method and apparatus for controlling traffic in a computer network
US7484094B1 (en) 2004-05-14 2009-01-27 Symantec Corporation Opening computer files quickly and safely over a network
US7373667B1 (en) 2004-05-14 2008-05-13 Symantec Corporation Protecting a computer coupled to a network from malicious code infections
US7370233B1 (en) 2004-05-21 2008-05-06 Symantec Corporation Verification of desired end-state using a virtual machine environment
US7953814B1 (en) 2005-02-28 2011-05-31 Mcafee, Inc. Stopping and remediating outbound messaging abuse
US8495305B2 (en) 2004-06-30 2013-07-23 Citrix Systems, Inc. Method and device for performing caching of dynamically generated objects in a data communication network
US8739274B2 (en) * 2004-06-30 2014-05-27 Citrix Systems, Inc. Method and device for performing integrated caching in a data communication network
US7757074B2 (en) * 2004-06-30 2010-07-13 Citrix Application Networking, Llc System and method for establishing a virtual private network
KR20070037650A (ko) 2004-07-23 2007-04-05 사이트릭스 시스템스, 인크. 종단에서 게이트웨이로 패킷을 라우팅하기 위한 방법 및시스템
US7609721B2 (en) * 2004-07-23 2009-10-27 Citrix Systems, Inc. Systems and methods for adjusting the maximum transmission unit for encrypted communications
US7539681B2 (en) * 2004-07-26 2009-05-26 Sourcefire, Inc. Methods and systems for multi-pattern searching
US7441042B1 (en) 2004-08-25 2008-10-21 Symanetc Corporation System and method for correlating network traffic and corresponding file input/output traffic
US7567573B2 (en) * 2004-09-07 2009-07-28 F5 Networks, Inc. Method for automatic traffic interception
US7690034B1 (en) 2004-09-10 2010-03-30 Symantec Corporation Using behavior blocking mobility tokens to facilitate distributed worm detection
US7565686B1 (en) 2004-11-08 2009-07-21 Symantec Corporation Preventing unauthorized loading of late binding code into a process
US9160755B2 (en) 2004-12-21 2015-10-13 Mcafee, Inc. Trusted communication network
US9015472B1 (en) 2005-03-10 2015-04-21 Mcafee, Inc. Marking electronic messages to indicate human origination
US8954595B2 (en) * 2004-12-30 2015-02-10 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP buffering
US7810089B2 (en) * 2004-12-30 2010-10-05 Citrix Systems, Inc. Systems and methods for automatic installation and execution of a client-side acceleration program
US8549149B2 (en) * 2004-12-30 2013-10-01 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing
US8706877B2 (en) * 2004-12-30 2014-04-22 Citrix Systems, Inc. Systems and methods for providing client-side dynamic redirection to bypass an intermediary
US8700695B2 (en) * 2004-12-30 2014-04-15 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP pooling
US8255456B2 (en) 2005-12-30 2012-08-28 Citrix Systems, Inc. System and method for performing flash caching of dynamically generated objects in a data communication network
US8104086B1 (en) 2005-03-03 2012-01-24 Symantec Corporation Heuristically detecting spyware/adware registry activity
US20060288096A1 (en) * 2005-06-17 2006-12-21 Wai Yim Integrated monitoring for network and local internet protocol traffic
US7486673B2 (en) 2005-08-29 2009-02-03 Connect Technologies Corporation Method and system for reassembling packets prior to searching
US7639715B1 (en) * 2005-09-09 2009-12-29 Qlogic, Corporation Dedicated application interface for network systems
US7779422B1 (en) 2005-10-05 2010-08-17 Mcafee, Inc. System, method, and computer program product for compatibility among hooking applications
US8046833B2 (en) 2005-11-14 2011-10-25 Sourcefire, Inc. Intrusion event correlation with network discovery information
US7733803B2 (en) * 2005-11-14 2010-06-08 Sourcefire, Inc. Systems and methods for modifying network map attributes
US7735099B1 (en) 2005-12-23 2010-06-08 Qlogic, Corporation Method and system for processing network data
US7921184B2 (en) * 2005-12-30 2011-04-05 Citrix Systems, Inc. System and method for performing flash crowd caching of dynamically generated objects in a data communication network
US8301839B2 (en) * 2005-12-30 2012-10-30 Citrix Systems, Inc. System and method for performing granular invalidation of cached dynamically generated objects in a data communication network
US8131667B1 (en) * 2006-04-28 2012-03-06 Netapp, Inc. System and method for generating synthetic clients
US8239915B1 (en) 2006-06-30 2012-08-07 Symantec Corporation Endpoint management using trust rating data
US7948988B2 (en) * 2006-07-27 2011-05-24 Sourcefire, Inc. Device, system and method for analysis of fragments in a fragment train
US7701945B2 (en) * 2006-08-10 2010-04-20 Sourcefire, Inc. Device, system and method for analysis of segments in a transmission control protocol (TCP) session
US8997074B1 (en) * 2006-09-29 2015-03-31 Trend Micro Incorporated Dynamic linking library (DLL) replacement in an embedded operating system environment
CA2672908A1 (en) * 2006-10-06 2008-04-17 Sourcefire, Inc. Device, system and method for use of micro-policies in intrusion detection/prevention
US8069352B2 (en) * 2007-02-28 2011-11-29 Sourcefire, Inc. Device, system and method for timestamp analysis of segments in a transmission control protocol (TCP) session
US7987065B1 (en) * 2007-04-17 2011-07-26 Nvidia Corporation Automatic quality testing of multimedia rendering by software drivers
US8127353B2 (en) * 2007-04-30 2012-02-28 Sourcefire, Inc. Real-time user awareness for a computer network
US20080306815A1 (en) * 2007-06-06 2008-12-11 Nebuad, Inc. Method and system for inserting targeted data in available spaces of a webpage
CA2628625A1 (en) * 2008-01-09 2008-07-23 Verint Systems Inc. Method and system for direct data recording
US8474043B2 (en) * 2008-04-17 2013-06-25 Sourcefire, Inc. Speed and memory optimization of intrusion detection system (IDS) and intrusion prevention system (IPS) rule processing
US10354229B2 (en) 2008-08-04 2019-07-16 Mcafee, Llc Method and system for centralized contact management
WO2010045089A1 (en) 2008-10-08 2010-04-22 Sourcefire, Inc. Target-based smb and dce/rpc processing for an intrusion detection system or intrusion prevention system
US8893260B2 (en) * 2008-12-17 2014-11-18 Rockstar Consortium Us Lp Secure remote access public communication environment
CN101640923A (zh) * 2009-08-20 2010-02-03 深圳华为通信技术有限公司 获取网络配置信息的方法及装置
US10235216B1 (en) * 2009-10-15 2019-03-19 Ivanti, Inc. Modifying system-defined user interface control functionality on a computing device
JP5809238B2 (ja) 2010-04-16 2015-11-10 シスコ テクノロジー,インコーポレイテッド 準リアルタイムネットワーク攻撃検出のためのシステムおよび方法、ならびに検出ルーティングによる統合検出のためのシステムおよび方法
US8433790B2 (en) 2010-06-11 2013-04-30 Sourcefire, Inc. System and method for assigning network blocks to sensors
US8671182B2 (en) 2010-06-22 2014-03-11 Sourcefire, Inc. System and method for resolving operating system or service identity conflicts
US8479292B1 (en) * 2010-11-19 2013-07-02 Symantec Corporation Disabling malware that infects boot drivers
US8601034B2 (en) 2011-03-11 2013-12-03 Sourcefire, Inc. System and method for real time data awareness
US8527665B2 (en) * 2011-04-15 2013-09-03 Ixia Redirecting function calls
US9560504B2 (en) * 2011-08-01 2017-01-31 Samsung Electronics Co., Ltd. Secondary mobile device
EP2792104B1 (en) 2011-12-21 2021-06-30 SSH Communications Security Oyj Automated access, key, certificate, and credential management
US20140380300A1 (en) * 2013-06-25 2014-12-25 Bank Of America Corporation Dynamic configuration framework
CN103957214A (zh) * 2014-05-06 2014-07-30 重庆邮电大学 一种教学用计算机网络数据包抓取方法
WO2018058182A1 (en) * 2016-09-27 2018-04-05 Cog Systems Pty Ltd A network connectable computing system and a method for processing a plurality of messages

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6085234A (en) * 1994-11-28 2000-07-04 Inca Technology, Inc. Remote file services network-infrastructure cache
GB2301735B (en) * 1995-06-02 1999-07-28 Dsc Communications Message handling in a telecommunications network
US5862362A (en) 1995-10-05 1999-01-19 Microsoft Corporation Network failure simulator
US5822520A (en) * 1995-12-26 1998-10-13 Sun Microsystems, Inc. Method and apparatus for building network test packets
US5781550A (en) 1996-02-02 1998-07-14 Digital Equipment Corporation Transparent and secure network gateway
US5774660A (en) 1996-08-05 1998-06-30 Resonate, Inc. World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network
US6366958B1 (en) * 1996-10-21 2002-04-02 International Business Machines Corporation NETBIOS protocol support for a DCE RPC mechanism
US6026086A (en) * 1997-01-08 2000-02-15 Motorola, Inc. Apparatus, system and method for a unified circuit switched and packet-based communications system architecture with network interworking functionality
US5983274A (en) * 1997-05-08 1999-11-09 Microsoft Corporation Creation and use of control information associated with packetized network data by protocol drivers and device drivers
US6289388B1 (en) * 1997-06-02 2001-09-11 Unisys Corporation System for communicating heterogeneous computers that are coupled through an I/O interconnection subsystem and have distinct network addresses, via a single network interface card
US6473406B1 (en) * 1997-07-31 2002-10-29 Cisco Technology, Inc. Method and apparatus for transparently proxying a connection
US6111894A (en) * 1997-08-26 2000-08-29 International Business Machines Corporation Hardware interface between a switch adapter and a communications subsystem in a data processing system
US6226680B1 (en) * 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US6272551B1 (en) * 1998-04-08 2001-08-07 Intel Corporation Network adapter for transmitting network packets between a host device and a power line network
US6295554B1 (en) * 1998-05-27 2001-09-25 3Com Corporation System and method for communicating with a telco-return cable modem as a single communications device
US6363423B1 (en) * 1999-04-26 2002-03-26 3Com Corporation System and method for remotely generating, assigning and updating network adapter card in a computing system

Also Published As

Publication number Publication date
DE10054923A1 (de) 2001-05-31
FI20002477A (fi) 2001-05-14
DE10054923B4 (de) 2013-11-14
IL139415A (en) 2005-06-19
US6678734B1 (en) 2004-01-13
IL139415A0 (en) 2001-11-25
CA2325652C (en) 2010-08-17
FI20002477A0 (fi) 2000-11-13
CA2325652A1 (en) 2001-05-13

Similar Documents

Publication Publication Date Title
FI113927B (fi) Menetelmä verkkopakettien sieppaamiseksi tietokonelaitteessa
US6243753B1 (en) Method, system, and computer program product for creating a raw data channel form an integrating component to a series of kernel mode filters
US6675218B1 (en) System for user-space network packet modification
US6175868B1 (en) Method and apparatus for automatically configuring a network switch
JP5438613B2 (ja) 遠隔管理システム
KR100369715B1 (ko) 네트워킹된 장치의 관리를 용이하게 하기 위한 방법 및 장치
JP4734592B2 (ja) クライアントリダイレクトによるプライベートネットワークへの安全なアクセス提供方法およびシステム
JP5372083B2 (ja) クライアント側の加速技術を提供するシステムおよび方法
US8291486B2 (en) Gateway device having socket library for monitoring, communication method of gateway device having socket library for monitoring, and communication program of gateway device having socket library for monitoring
Fiuczynski et al. An Extensible Protocol Architecture for Application-Specific Networking.
US20090316581A1 (en) Methods, Systems and Computer Program Products for Dynamic Selection and Switching of TCP Congestion Control Algorithms Over a TCP Connection
US7516178B1 (en) Communicating messages between components in a client/server environment using a object broker
WO2005083984A1 (en) Protocol stack with modification facility
US6170015B1 (en) Network apparatus with Java co-processor
JP2001517899A (ja) エグゼキュータブル・オブジェクトを識別および抑制するための方法およびシステム
US8380873B2 (en) Tunneling SSL over SSH
US20080151779A1 (en) Network stack instance architecture with selection of transport layers
US20030120782A1 (en) Method and computer system for client server inter process communication
FI111586B (fi) Siirtosovittimen hallinta yhdyskäytäväpalvelimessa
US20020029302A1 (en) Method, computer program product, and system for managing connection-oriented media
KR100914308B1 (ko) 티씨피 처리 시스템 및 그 제어방법
Bonfoh VTL: A Stable Framework for Conception, Implementation, and Deployment of Internet Communication Protocols
CN110417771B (zh) 一种通过驱动自动化拦截Windows自动更新的方法
Ricciulli Anetd: Active networks daemon (v1. 0)
Ricciulli ANETD: Active NETwork Daemon

Legal Events

Date Code Title Description
PC Transfer of assignment of patent

Owner name: SAFENET, INC.

Free format text: SAFENET, INC.

PC Transfer of assignment of patent

Owner name: AUTHENTEC, INC.

MM Patent lapsed