tcpipalapok-2-v10

Embed Size (px)

Citation preview

Windows Server 2008

TCP/IP Alapok2. ktetV1.0

Petrnyi Jzsef

2010, Petrnyi Jzsef 1.0 verzi, els kiads Minden jog fenntartva. A knyv rsa sorn a szerz s a kiad a legnagyobb gondossggal s krltekintssel igyekezett eljrni. Ennek ellenre elfordulhat, hogy nmely informci nem pontos vagy teljes, esetleg elavultt vlt. Az algoritmusokat s mdszereket mindenki csak sajt felelssgre alkalmazza. Felhasznls eltt prblja ki s dntse el sajt maga, hogy megfelel-e a cljainak. A knyvben foglalt informcik felhasznlsbl fakad esetleges krokrt sem a szerz, sem a kiad nem vonhat felelssgre. A cgekkel, termkekkel, honlapokkal kapcsolatos listk, hibk s pldk kizrlag oktatsi jelleggel kerlnek bemutatsra, kedvez vagy kedveztlen kvetkeztetsek nlkl. Az oldalakon elfordul mrka- valamint kereskedelmi vdjegyek bejegyzjk tulajdonban llnak.

Microsoft Magyarorszg 2010

Ksznetnyilvnts:Tovbbra is hatalmas ksznet illeti Joseph Davies-t, alias Cable Guy-t az alapos, szemlletforml rsairt. A wikipedia most sem hazudtolta meg nmagt, mindenhez hozz tudott szlni, igaz, nem mindig sikerlt rdemben. De becsletesen prblkozott.

"- Felejtsk el az egszet, kedves Tt - mondta nagylelken -, s lssunk hozz a dobozolshoz. Minden percrt kr. Leltek. Tt is. Ugyanaz a Tt, aki az imnt mg lefitymlta s asszonypepecselsnek nzte ezt a munkt, most rlt, hogy dobozolhatott... Pedig senki se hvta; pp csak, hogy helyet szortottak neki. Persze, akrhogy vigyzott, csupa flresikerlt, pofoncsapott doboz kerlt ki a keze all, de szerencsre ezen se akadt fl senki, legfljebb elnzen sszemosolyogtak. Helyrellt a bke. Hossz negyedrkig senki se beszlt, csak a margvg friss kattogsa hallatszott. Ksbb friss leveg jtt a hegyekbl. Szemkzt, a Bbony tisztsain a gyantaszretelk tzraksai hunyorogtak. Ttk ezt se lttk. Mindenrl elfeledkezve vgtk s hajtogattk a dobozokat. Egy ra mlva az rnagy udvariasan rdekldtt: - Nem lmosodtak el? Tt, akinek majd leragadt a szeme, megnyugtatta az rnagyot, hogy esze gban sincs lefekdni. Tovbb dobozoltak. Egy id mlva az rnagy megismtelte az elbbi krdst. Ttk egybehangzan azt lltottk, hogy nem lmosak. A harmadik krdsre Mariska, akinek bal szeme ersen viszketni kezdett, azt vlaszolta, hogy ha az rnagy r pihenni vgyik, akkor k is kszek abbahagyni a munkt. - Dehogyis vgyom pihenni! - mondta az rnagy. - Sajnos, nagyon rossz alv vagyok. - Ettl az les hegyi levegtl mg lmatlansgban szenved vendgeink is ellmosodtak - jegyezte meg Tt. - Nekem az se hasznl - legyintett Varr rnagy. - n a legszvesebben reggelig hajtogatnm a dobozokat. A kornfekvshez szokott Tt kezben sztroppant egy doboz. Arcvonsai a fradtsgtl amgy is sszezilldtak; ijeszt tekintettel meredt az rnagyra. Ekkor azonban Mariska bokn rgta, amire Tt - nagy erfesztssel - elmosolyodott. - n is csak most kezdek belejnni - mondta. s tovbb dobozoltak. " rkny Istvn: Ttk

TARTALOMJEGYZK1 2 Bevezet _______________________________________________________________________________ 8 Az alkalmazs rteg webes protokolljai _____________________________________________ 9 2.1 HTTP - Aki lenyomta a pockot ___________________________________________________ 9 HTTP Request ______________________________________________________________ 20 Request-Line __________________________________________________________ 21 Message Header (Request)___________________________________________ 22 Sttusz kdok _________________________________________________________ 24 Message Header (Response) _________________________________________ 26 2.1.1.1 2.1.1.2 2.1.2 2.1.2.1 2.1.2.2 2.2 2.2.1 2.2.2 2.2.3 2.1.1

HTTP Response ____________________________________________________________ 23

FTP - A teherhord szvr _____________________________________________________ 28 FTP parancsok _____________________________________________________________ 29 FTP kdok __________________________________________________________________ 32 Az FTP protokoll lelkivilga _______________________________________________ 33 Aktv md______________________________________________________________ 34 Passzv md ___________________________________________________________ 36 FTP s NAT ____________________________________________________________ 38

2.2.3.1 2.2.3.2 2.2.3.3 2.3 2.3.1

SMTP - A npszer reg ________________________________________________________ 40 Levelek tovbbtsa, azaz a konkrt SMTP ______________________________ 41 SMTP, ESMTP parancsok _____________________________________________ 45 SMTP kdok ___________________________________________________________ 46 2.3.1.1 2.3.1.2

2.3.2 2.3.3 2.4 2.5

Az elektronikus levelek szerkezete, azaz IMF ___________________________ 48 Levelezznk mr vgre! ___________________________________________________ 68

Porttblzat _____________________________________________________________________ 77 Sztorik ___________________________________________________________________________ 81 Geek r nyaral______________________________________________________________ 81 Geek r a fogorvosnl _____________________________________________________ 88

2.5.1 2.5.2 3 3.1 3.2

A biztonsg krdse a TCP/IP-ben_________________________________________________ 90 SSL, TLS __________________________________________________________________________ 90 SSH _______________________________________________________________________________ 95

3.3

Az ismertebb protokollok biztonsgosabb ttele ___________________________ 97 HTTP ________________________________________________________________________ 97 Autentikci ___________________________________________________________ 97 HTTPS_________________________________________________________________ 103 SHTTP_________________________________________________________________ 109 FTPS___________________________________________________________________ 111 FTP over SSH _________________________________________________________ 113 A bjos flrertsek forrsa - SFTP _________________________________ 113 3.3.1.1 3.3.1.2 3.3.1.3

3.3.1

3.3.2

FTP _________________________________________________________________________ 111

3.3.2.1 3.3.2.2 3.3.2.3 3.3.3 3.4 3.4.1

A tbbiek, azaz a STARTTLS _____________________________________________ 114 Authentication Header ___________________________________________________ 117 AH Transport md ___________________________________________________ 118 AH Tunnel mode _____________________________________________________ 119 ESP Transport md __________________________________________________ 121 ESP Tunnel md______________________________________________________ 123 Main mode (ISAKMP SA) ____________________________________________ 124 Quick mode (IPSec SA) ______________________________________________ 128 IKE ____________________________________________________________________ 128 IKE v2 _________________________________________________________________ 129 AuthIP ________________________________________________________________ 131

IPSec ____________________________________________________________________________ 116 3.4.1.1 3.4.1.2

3.4.2

Encapsulating Security Payload _________________________________________ 120

3.4.2.1 3.4.2.2 3.4.3 3.4.3.1 3.4.3.2 3.4.3.3 3.4.3.4 3.4.3.5 3.4.4 3.5 3.5.1 3.5.2 3.5.3 3.5.4 3.5.5 3.5.6 3.6

Security Associations _____________________________________________________ 124

sszefoglals ______________________________________________________________ 132 PPTP _______________________________________________________________________ 136 L2TP _______________________________________________________________________ 137 L2TP / IPSec_______________________________________________________________ 138 SSTP ________________________________________________________________________ 139 VPN Reconnect ____________________________________________________________ 142 sszefoglals ______________________________________________________________ 145

VPN s trsai ___________________________________________________________________ 133

Autentikci ____________________________________________________________________ 146

3.6.1 3.6.2 4 5 6 7

RADIUS ____________________________________________________________________ 147 Ktfaktoros autentikci _________________________________________________ 151

Kivezets ____________________________________________________________________________ 155 Forrsok, linkek ____________________________________________________________________ 156 Javtsok ____________________________________________________________________________ 159 A szerz _____________________________________________________________________________ 160

A TCP/IP PROTOKOLL MKDSE

1 B EVEZETRendhagy knyv lesz1. Ugyanarrl a tmrl fogok rni mg egy knyvet: TCP/IP protokollok, szolgltatsok. Csakhogy eddig vertiklisan jrtuk be a teret: elindultunk alulrl s onnan msztunk fel a legfels szintre. Most viszont eleve a legfels szintrl indulunk s maximum egy szintet lpnk lejjebb. Ez a knyv ugyanis szinte kizrlag a roppant gazdagon vegetl alkalmazs rtegrl szl. (Csak az IPSec kedvrt fogunk lenzni egyszer az IP rteg szintjre.) Hogyan vlasztottam ki a bemutatand protokollokat? Web. Internet. Ma mr minden ekrl forog. Logikusnak tnt azokat a protokollokat sszeszedni, melyek a legelterjedtebbek, illetve legfontosabbak a neten. Aztn ha mr internet: mi a legnagyobb baj ezekkel a protokollokkal? Ht a biztonsg, illetve annak hinya. Hogyan lehet srbl vrat pteni alapban gyenge biztonsg protokollokbl megbzhat kapcsolatokat pteni? J krds. Lehet. Nem egyszer, de nem lehetetlen. Ilyesmikkel fogok foglalkozni ebben a knyvben.

A kapcsold els ktet, illetve az els ktet sszefoglal fzete letlthet innen: http://mivanvelem.hu/letoltheto-konyvek/

1

Mondtam. (-:

~8~

AZ ALKALMAZS RTEG WEBES PROTOKOLLJAI

2 A Z ALKALMAZS RTEG W EBES PROTOKOLLJAI2.1 HTTP - A KIRFC 2616 Brmennyire is furcsa, de volt olyan idszak, amikor a web nem volt egyenl a HTTP-vel. Mg emlkszem arra, amikor BBS-ek voltak, ksbb FTP szerverek, aki pedig hipertextben utazott, az bszen nyomta a pockot - azaz a gopher protokollt.LEN YOMTA A POCKOT

2.1. BRA E GY GOPHER OLDAL http://en.wikipedia.org/wiki/Gopher_(protocol)

Aztn 1993-ban beindult a HTTP s szp lassan gyztt. A gopher ugyanis nem volt kpes a szveg mellett grafikt is megjelenteni. De mit is tud ez a HTTP? Hypertext Transfer Protocol. Azaz amennyiben a kliens oldali bngszprogrambl krs rkezik egy webszerverhez, az olyan szvegeket kpes visszakldeni, melyekbl a kliensgpeken weboldalak llnak ssze: linkekkel, kpekkel, formzott szvegekkel - s manapsg mr videkkal is. gy nagyjbl ezzel le is fedtem most az internet 95%-t. (Warez s porn nlkl a 10%-t.)

~9~

A TCP/IP PROTOKOLL MKDSE Az elbb elhangzott kt nagyon fontos kifejezs. Nem, nem a warez s a porn. Az, hogy kliens s szerver. A HTTP egy olyan protokoll, mely mindig egy kliens s egy szerver kztt mkdik. A HTTP szerver (ma mr egyszeren csak webszerver) egy olyan szmtgp, mely tele van weblapokkal. Ezek lehetnek statikusak, vagy egy alkalmazs ltal legtbbszr valamilyen adatbzisra tmaszkodva - dinamikusan generltak. A kommunikci mindig gy kezddik, hogy jn egy HTTP kliens (a legtbbszr valamelyik bngsz) s elkr ebbl a sok weblapbl egyet. A reklmlobby szerencsre mg nem olyan ers, hogy krs nlkl toljanak le a gpedre egy hvelygomba reklmot2. A szerver fogadja a krst, rtelmezi... majd visszakldi a krt weblapot. Eddig nem gyztk rtegezni a hlzatos kommunikcit. Hol illeszkedik bele ebbe a modellbe a HTTP?

2.2. BRA A HTTP CSOMAGOK HELYE

Mint minden tisztessges alkalmazs-rtegbeli protokoll, a csomagjai a szlltsi protokoll (TCP) payload-jn bell utaznak. A kliens ide tolja be a krst, a webszerver innen veszi ki s ide rakja vissza a vlaszt. Kicsit elrerohanok.

Az ms krds, hogy ha lekrsz egy weblapot, akkor mr toljk mell a hirdetst is. De ehhez elszr neked kellett krned.2

~ 10 ~

AZ ALKALMAZS RTEG WEBES PROTOKOLLJAI

2.3. BRA L EKRTEM AZ INDEX NYITLAPJT

Ez egy olyan kp lesz, melyet a kvetkezkben sokszor fogunk mg nzegetni. Most csak azt tessk szrevenni, hogyan is zajlott a kommunikci: Az 58, 60, 61 csomagokban megtrtnt az gynevezett hrmas kzfog, a kt fl kiptette a TCP csatornt. A 62-es csomagban a kliens (192.168.1.99) elkldte a krst. Ezt a krst ltjuk kirszletezve is. A kzps ablakban ltszik, hogy egy GET krssel indul, s a teljes krs elfr egy TCP szegmensben. Az als ablakban binris formban is megtekinthetjk, st, a Wireshark van olyan r, hogy a teljes krds/felelet prost szveges formban is megmutatja. Mi tbb, le is tudjuk menteni. (Ezzel azrt rdekes trkkket lehet jtszani.) A 68-as csomagtl szabadult el a pokol, a webszerver nekillt kldeni az index.hu nyitlapjt. Szp nagy nyitlap, elg sok TCP szegmenst kellett befognia a szlltsi munklatokba. Habr a kpen nem ltszik, de hidd el nekem, a 114, 119, 120 csomagokban mindkt fl mindkt oldalrl lebontotta a TCP csatornt. Most alapveten kt ton indulhatunk el. Egyrszt, ragaszkodva a hagyomnyokhoz, nekillhatunk request/response csomagokat boncolni, biteket elemezni, flageket rtelmezni. Ez akkor korrekt, ha tnyleg csak a HTTP protokollt szeretnm bemutatni. De hiba lenne a HTTP kapcsn csak a protokollrl beszlni - hiszen legalbb annyira rdekes a krnyezet is, amelyben hasznljk. Ok, hogy tudjuk, hogyan pl fel egy

~ 11 ~

A TCP/IP PROTOKOLL MKDSE request csomag - de azt sem rt tudni, mikor kldi azt a kliens s hogy mondjuk hnyszor. gy most elszr beszlek nagy ltalnossgban a HTTP-t hasznl felek kommunikcijrl, sunyi kis trkkjeirl. Aztn ha mr kpben lesznk, akkor jhetnek a csomagboncolsok. Fontos, hogy a kommunikcirl lesz sz. Eszem gban sincs webszerver zemeltet fejezetet rni. Az Internet Information Server bemutatsa nmagban is megtltene egy knyvet. Teht ott jrtunk, hogy tipikus kliens-szerver kommunikci.

2.4. BRA HTTP KLIENS - SZERVER KOMMUNIKCI

Lthat, semmi faxni: csatorna kipl, jn a krs, megy a vlasz, csatorna mindkt oldal fell lebomlik. Nagyjbl gy is mkdtt a HTTP az 1.0 verziig. Sok baj nem volt vele - azon kvl, hogy borzaszt lass volt. Az 1.1 verziban gyorstottak rajta egy kicsit.

~ 12 ~

AZ ALKALMAZS RTEG WEBES PROTOKOLLJAI

2.5. BRA F OLYAMATOS KAPCSOLAT

Egy weboldal ugyanis ritkn jn le egy krssel. (Az a gopher.:-) Kln kell krni a szveget, kln kell krni a kpeket, kln a kliens oldali szkripteket. Nyilvn ha nem nyitunk mindegyik krsnek egy kln sessiont, akkor valamivel gyorsabban jn le az oldal. Ezt a trkkt hvjk gy, hogy persistence, azaz folyamatos kapcsolat. rtelemszeren komoly sszjtk kell hozz - elssorban a szervernek kell mrskelnie magt, ne kezdje el addig lezrni a kapcsolatot, amg a kliens meg nem kapta a teljes oldalt. Gyorsnak gyors... de nzd meg jobban a rajzot. Optimlis is?

~ 13 ~

A TCP/IP PROTOKOLL MKDSE

2.6. BRA P IPELINE

Mr hogy lenne? Mikor jobb a soros feldolgozs a prhuzamosnl? A kliens gppuska-sebessggel elkezdi ldzni a krseket, nem vrva meg, amg megrkezgetnek az elz krsekre a vlaszok, a szerver pedig kpni-nyelni nem tudva folyamatosan nyomja lefel az ojjektumokat. Mris gyorsabb lett az index.hu. (De mg nem elg gyors. Aki megnzi az brt (2.3. bra Lekrtem az index nyitlapjt), az lthat rajta mg egy trkkt. De ezt csak ksbb meslem el.) Apr kis kitr. rtam, hogy a kliens kln objektumknt kri le a kliens oldali szkripteket. De ha ez gy van, akkor el is lehet ezeket az objektumokat kapni.

~ 14 ~

AZ ALKALMAZS RTEG WEBES PROTOKOLLJAI

2.7. BRA J AVASCRIPT AZ INDEXEN

El bizony. s ha elkaptuk, akkor az gyes kis Wireshark ssze is rakja neknk a szkriptet. Ltjuk? A piros a krs, a kk a vlasz. s ott van benne a tipus:content-Type: application/javascript

2.8. BRA A WEBLAP FORRSA KONTRA CAPTURE

Aki szeret bogarszgatni, az innentl el lesz egy darabig az j jtkkal.

~ 15 ~

A TCP/IP PROTOKOLL MKDSE Mi viszont beszljnk komolyabb dolgokrl. Pldul a stikrl. A HTTP kapcsolat ugyanis nmagban nem tud llapotot trolni. A kliens elkldi a krst, a szerver fogadja, majd visszaadja a vlaszt. Vegyk szre, hogy a szervernek fogalma sincs, hogy ez a kliens most volt itt elszr, vagy egy perccel ezeltt is kopogtatott. Amennyire a szerver emlkezik... ahhoz kpest az aranyhal egy memriazsonglr. Baj ez? Nem annyira. Feltve, hogy szeretnk llandan bejelentkezni a kedvenc frumunkba minden topikvltskor. Ha nem zavar, hogy a delicous mindig jelszt kr, ha el akarunk menteni egy cmet. Ok, baj. Akkor okostsuk fel a webszervernket. Jegyezzen meg minden krst visszamenleg mondjuk kt htig, s minden krsnl fussa t ezeket. Elre a hasznlhatatlan webszerverekrt! Erre a problmra jelentenek megoldst a stik. (Cookies.) Hogyan mkdnek?

2.9. BRA HTTP TSVLTS

gy nz ki egy hagyomnyos HTTP romnc. A kliens lekr egy weboldalt, a szerver a 200-as kddal jelzi, hogy a krt weblapot megtallta - majd a vlaszzenetbe be is csomagolja azt. Itt mg nincs cookie.

~ 16 ~

AZ ALKALMAZS RTEG WEBES PROTOKOLLJAI

2.10. BRA M EGJELENIK A COOKIE

Itt mr van. Amikor a szerver sszerakja a vlaszt, belerak egy stit. A kliens megkszni, lementi, majd amikor legkzelebb megint a szerverhez fordul, akkor mr viszi magval. Ebbe a stibe van belestve minden olyan informci, mely fontos lehet az ppen piszterglt webalkalmazs szmra: felhasznlnv, emailcm, kpernypozci... brmi.

2.11. BRA S TI A MIVANVELEM OLDALHOZ

Nzznk mg egy pldt. Belptem a mivanvelem.hu oldalra, ahol rendszeresen szoktam kommentelni. A kliensprogramom mr eleve tudta, hogy ehhez az oldalhoz van egy stim, teht helybl belerakta a krsbe. Ltod, nem: valami binris zsizsa, a fene tudja, mit jelent, aztn ott van a kommentel neve (JoeP), majd nmi zsizsa utn

~ 17 ~

A TCP/IP PROTOKOLL MKDSE jn a kommentelskor legutbb megadott emailcmem. (Ezt takartam le kt tglalappal.) A sti miatt van az, hogy amikor belpek erre az oldalra, akkor mr ki vannak tltve a kommentel form elemei. Ha rdekel mg egy plda, lapozz vissza a kvetkez brhoz: 2.3. bra Lekrtem az index nyitlapjt. Miket tudsz kihvelyezni ebbl a stibl? 'Tiszavirg'. Meg 'egy nap pompa'. Meg egy lengyel weblap. gy ltszik, az index szereti az abszurd zests stiket. De biztos van r okuk. Vajon meg lehet nzni ezeket a stiket a gpeden is? Hiszen tuti, hogy ott trolja valahol a bngszprogramod.

2.12. BRA S TITR

Ott vannak, bizony. A loklis profilodban. Mghozz szveges formban. Elg kellemetlen meglepets, hogy a stik nagy rsze reklmoldal. Vajon miket jegyezhetnek meg ezek rlad? Az amazon.com mondjuk mg rthet is, ha szoktl ott vsrolni, akkor tudod, hogy minden belpskor az zlsedhez passzol knlatot dobnak fel a friss rukbl. Nyugodt vagy? Mi van akkor, ha egy weblap felolvassa az sszes stidet s komplett profilt kszt rlad? Csoda. Minden sti webszerverhez van rendelve s a kliens krskor csak azt a stit viszi magval, amelyik a beclzott webszerverhez tartozik Megnyugodtl?

~ 18 ~

AZ ALKALMAZS RTEG WEBES PROTOKOLLJAI Kr volt. Ugyanis ha egy reklmszerveren lv banner van befzve szz oldalra, akkor ugyanaz a szerver mindegyik - nem hozztartoz, de sessionon belli - oldal ltogatsakor hozzfr a stijhez s belerakhat abba ppen az rintett oldalakra jellemz infkat. Azaz pont a reklmszerverek azok, amelyek bannereken keresztl tnyleg kpesek profilt alkotni rlad. Termszetesen a stiket le tudod tiltani a bngszdben. de ekkor visszatrtnk oda, hogy a webszerver abszolt semmit sem fog tudni rlad. Ennl mr az is jobb tlet, ha valamilyen adblock plugint hasznlsz. rzem, tkn lsz, hogy boncoljunk mr vgre krseket, vlaszokat. Nyugi. Lesz mg itt annyi tblzat, hogy jszaka is kocksat fogsz lmodni. De most ismteljnk egy kicsit. Mi is az, hogy proxy? Az inas, aki beviszi a nvjegyet. Hogyan is nz ez ki konkrtan a HTTP esetben? Ht gy, hogy a kliens a krsvel nem a webszerverhez fordul kzvetlenl, hanem a proxyhoz. Az j tanrbcsisan megvizsglja, mit is szeretne krni a kliens a webszervertl. rtelmezi a krst. Ehhez persze minimum azt a HTTP verzit kell ismernie, mint a megclzott webszerver. Aztn ha mr pontosan tud mindent, akkor kliensknt elmegy az illet webszerverhez, tolmcsolja neki a krst, majd a kapott vlaszt visszaadja az eredeti kliensnek. Ravasz krds jn: mit csinl akkor a proxy cache? Hopp. Errl eddig nem volt sz. Pedig nem nehz. St, logikus. A proxy nem csak egyszeren visszaadja a krt tartalmat a kliensnek, hanem be is rakja egy tmeneti trolba. Ez a cache. gy ha rvid idn bell valamelyik msik kliens is lekri ugyanezt az oldalt, akkor nem megy el az veghegyen tlra, hanem a sajt troljbl adja vissza. Magunk kztt vagyunk, beszlhetnk szintn. n borzasztan idegenkedek mindenfle cache techniktl. De ez rthet, mert n mr reg vagyok s amennyi varjt lttam mr karn, annyi a macskaparadicsomban sincs. Mindenhol, ahol valamilyen cache technika jtszik, ott az rdg a rszletekben bjik meg. Eleinte a cache hasznlat... mondjuk gy, hogy nem volt teljesen kifinomult. Egyszer megszakadt egy letltsed s utna rkig csak a hibs fjl jtt le a proxyrl, akrmelyik gprl is prblkoztl. Hozzszltl egy frumon, prgtt a tma, bizsergett az ujjad, kivncsi voltl a tbbiek reakcijra - de a proxy cache miatt hossz tz percekig nem lttl vltozst.

~ 19 ~

A TCP/IP PROTOKOLL MKDSE Aztn telt-mlt az id, szltek a mrnkk - s ma mr egsz jl hasznlhat technolgia lett belle. Meg j bonyolult is, mondjuk. 2.1.1 HTTP R EQ U E ST

2.13. BRA HTTP REQUEST

Kinagytottam a korbbi bra (2.3. bra Lekrtem az index nyitlapjt) egy rszlett. gy nz ki egy vadonban kborl HTTP request.

Ha nem akarunk sniffer programot telepteni, de kivncsiak vagyunk a request/response blokkokra, hasznljuk btran a kvetkez linket: http://web-sniffer.net/

Hivatalosan a HTTP Request ngy rszre oszthat.

2.14. BRA A HTTP R EQUEST ELEMEI

~ 20 ~

AZ ALKALMAZS RTEG WEBES PROTOKOLLJAI REQUEST-LINE: Errl a sorrl van sz: GET / HTTP1.1. ltalnostva:' '

alak. Itt mondjuk meg a szervernek, hogy mi a szszt is akarunk tle. MESSAGE HEADERS: Itt sorolunk fel minden olyan informcit, melyrl a szervernek tudnia kell ahhoz, hogy ki tudjon minket szolglni. MESSAGE BODY: Opcionlis mez. Ha valami inft akarunk feltlteni a szerverre a krs sorn (POST metdus), akkor az itt utazik. Az egyes mezket az klnbzteti meg egymstl, hogy j sorban kezddnek, azaz a Carriege Return-Line feed (CR-LF.) karakterekkel zrdnak. Mg az res sor is.2. 1 .1 . 1 R E Q U E S T -L I N E GET / HTTP1.1. '

Haladjunk htulrl, az az egyszerbb. A verziszm azt jelenti, melyik a legmagasabb szint HTTP verzi, melyet a kliens ismer. Az URI azt a weblapot adja meg, amelyikre a krs vonatkozik. Jelen pldban ez a /, azaz a root lap. Vgl a metdus maga az ige - mit is akarunk elrni a krssel?2.1. TBLZAT Parancs Lers GET Lekrjk a weboldalt. Ennyire egyszer. A szerver pedig visszakld valamit, ltalban egy OK-t s magt az oldalt. Nyilvn ez a leggyakoribb krs. HEAD Lekrjk a weboldalt. Ismers? De a szerver vlasza mr ms: csak a fejlcet kldi el, magt az oldalt nem. POST Feldolgozs cljbl adatokat kldnk a szerver szmra. Klasszikus plda egy kitlttt form. Az adatok a Message Body rszben utaznak, a tloldalon egy webes alkalmazs kapja el ket. PUT Feltltnk egy adatcsomagot, leginkbb egy fjlt. Szintn a Message Body rszben utazik. A szerver nem dolgozza fel, egyszeren csak egy elrhet adat lesz belle. DELETE Megkrjk a szervert, hogy a megadott valamit trlje, lccilcci. TRACE Megkrjk a szervert, hogy kldje vissza a krsnket. Ebbl fogjuk tudni, hogy mi lett a krsnkbl, mire a szerverhez rt. OPTIONS Visszaadja azokat a HTTP metdusokat, melyeket a szerver egyltaln megrt. CONNECT Kri a szervert - ami ebben az esetben ltalban proxy - hogy kezdjen el bszen csatornt pteni.

~ 21 ~

A TCP/IP PROTOKOLL MKDSE

2. 1 .1 . 2 M E S S A G E H E A D E R (R E Q U E S T )2.2. TBLZAT Tpus ACCEPT ACCEPTCHARSET ACCEPTENCODING ACCEPTLANGUAGE AUTHORIZATION CACHECONTROL CONNECTION COOKIE CONTENTLENGTH CONTENT-TYPE DATE EXPECT FROM HOST

Nv Az elfogadott tartalomtipusok Az elfogadott karakterkszletek Az elfogadott kdolsok Az elfogadott nyelvek A bejelentkezsi adatok elkldse Elrja, hogy az zenetvltsban rszt vev felek hasznlhatnak-e az zenetvltssal kapcsolatban tmeneti trolt - s ha igen, akkor hogyan. Megnevezi azt a headert, melyet trlni kell a krsbl, ha az proxyn megy keresztl. A kliensnk mr kapott egy stit (Set-Cookie), s most visszakldi a szervernek. A Request Body mrete bjtban. A Request Body adattipusa (MIME) Mikor kldtk a krst. Ha a szerver visszakldi ezt, akkor csinld azt. Jelenleg csak a '100 Continue' kdra harap. A krs kldjnek emailcme. Nem tl npszer mez. A megclzott virtulis szerver neve. A HTTP/1.1 ta ktelez.

Mi is ez a virtulis szerver? Nos, arrl van sz, hogy egy konkrt webszerver nem csak egy webalkalmazst tehet elrhetv, hanem tbbet is. Ilyenkor a request header-be rt Host mezben jelezzk, hogy melyik alkalmazshoz fordulunk. Konkrt plda: a mivanvelem.hu s az emaildetektiv.hu blogok ugyanazon a webszerveren laknak. Nzzk meg az brt (2.11. bra Sti a mivanvelem oldalhoz), tisztn lthat, hogy melyik oldalt tmadtam be. Tpus IF-MATCH IF-MODIFIEDSINCE IF-NONE-MATCH IF-RANGE IF-UNMODIFIEDSINCE MAX-FORWARDS Nv Ha letltttem valamit, majd mdosts utn vissza akarom tlteni, akkor leellenrzi, hogy kzben msvalaki nem mdostotta-e? Cache vezrls Cache vezrls Cache vezrls Cache vezrls Az zenetet max. hnyszor lehet forwardolni.

A webszerverek ugyanis kpesek ilyen huncutsgokra. A keresett weboldal mr elkltztt a szerverrl, de otthagyott egy ugroldalt, hogy az rdekldk az j helyen is megtalljk. Tous PRAGMA RANGE REFERER TE UPGRADE USERAGENT VIA WARN Nv smaradvny a korai HTTP verzikbl. Nem az egszet krjk le, csak egy rszt. Melyik weboldalrl rkeztnk a ltogatott oldalra. A statisztikkat gyrt alkalmazsok imdjk. (n is.) Transfer Encoding; megmondja a szervernek, hogy a kliens milyen kdolsokat kpes fogadni. Hogy a kliens s a szerver megtalljk a megfelel magassg kzs HTTP/TLS szintet. Kifle-mifle jszg a kliens? (Lthatod, n ppen Chrome vagyok a pldkban.) Kzli a szerverrel, hogy milyen proxykon keresztl rt el hozz a krs. Balh van.

~ 22 ~

AZ ALKALMAZS RTEG WEBES PROTOKOLLJAI 2.1.2 HTTP R E SP O N S E

2.15. BRA HTTP R ESPONSE

A HTTP Response felptse nagyon hasonl a krs felptshez.

2.16. BRA A HTTP VLASZ SZERKEZETE

Az utols 3 mez formailag teljesen azonos (mgha a header tipusok msok is). A markns klnbsg a sttusz sor. Itt ugyanis a szerver kzli a klienssel, hogy mi is pontosan a helyzet a krsvel.

~ 23 ~

A TCP/IP PROTOKOLL MKDSE

2. 1 .2 . 1 S T T U S Z K D O K

Alapveten t nagy kategria ltezik.2.3. TBLZAT Kd Nv 1xx Informational 2xx Success 3xx Redirection 4xx Client Error 5xx Server Error

Magyarzat A szerver fogta a krst, de valamirt nem tud vlaszolni. A szerver fogta a krst s vlaszolni is tud. A szerver fogta a krst, de a krt oldal mshol van. Hibs a krs, a szerver nem tudja teljesteni. A szerver fogta a krst, de a vlasz sorn hiba keletkezett.

Minden klnsebb magyarzat nlkl lljanak itt az egyes kdok:2.4. TBLZAT rtk Lers 100 Continue 101 Switching Protocols 102 Processing 200 OK 201 Created 202 Accepted 203 Non-Authoritative Information 204 No Content 205 Reset Content 206 Partial Content 207 Multi-Status 226 IM Used 300 Multiple Choices 301 Moved Permanently 302 Found 303 See Other 304 Not Modified 305 Use Proxy 306 Reserved 307 Temporary Redirect 400 Bad Request 401 Unauthorized 402 Payment Required 403 Forbidden 404 Not Found 405 Method Not Allowed 406 Not Acceptable 407 Proxy Authentication Required 408 Request Timeout 409 Conflict 410 Gone 411 Length Required 412 Precondition Failed 413 Request Entity Too Large 414 Request-URI Too Long 415 Unsupported Media Type 416 Requested Range Not Satisfiable 417 Expectation Failed 422 Unprocessable Entity 423 Locked 424 Failed Dependency 42 Upgrade Required

RFC szm [RFC2616] [RFC2616] [RFC2518] [RFC2616] [RFC2616] [RFC2616] [RFC2616] [RFC2616] [RFC2616] [RFC2616] [RFC4918] [RFC3229] [RFC2616] [RFC2616] [RFC2616] [RFC2616] [RFC2616] [RFC2616] [RFC2616] [RFC2616] [RFC2616] [RFC2616] [RFC2616] [RFC2616] [RFC2616] [RFC2616] [RFC2616] [RFC2616] [RFC2616] [RFC2616] [RFC2616] [RFC2616] [RFC2616] [RFC2616] [RFC2616] [RFC2616] [RFC2616] [RFC2616] [RFC4918] [RFC4918] [RFC4918] [RFC2817]

~ 24 ~

AZ ALKALMAZS RTEG WEBES PROTOKOLLJAI500 501 502 503 504 505 506 507 510 Internal Server Error Not Implemented Bad Gateway Service Unavailable Gateway Timeout HTTP Version Not Supported Variant Also Negotiates (Experimental) Insufficient Storage Not Extended [RFC2616] [RFC2616] [RFC2616] [RFC2616] [RFC2616] [RFC2616] [RFC2295] [RFC4918] [RFC2774]

Forrs: http://www.iana.org/assignments/http-status-codes

Rszletesebben ismertetni egy olyat fogok, mely nem szerepel az elz felsorolsban. Nem vletlenl. (Ettl fggetlenl teljesen hivatalosan ltezik, lsd az albbi RFC-t.) Maradjunk annyiban, hogy j ltni, hogy ebbe a szraz tudomnyba is belefr nha egy kis krkds. Mg ha geek mdra is.

RFC 2324 A fenti RFC az IETF egyik prilis elsejei trfja. Egsz konkrtan a HTCPCP 1.0 protokollt definilja. A protokoll teljes neve: Hypertext Coffee Pot Control Protocol, azaz hipertextes kvkint vezrl protokoll. Az a bizonyos hibakd ehhez a protokollhoz kapcsoldik.

418-AS KD: I AM A TEAPOT. 4xx-es kd, azaz a szerver nem tudja rtelmezni a kliens HTCPCP krst. Nyilvn nem is, hiszen a vlaszban a szerver jelzi, hogy egy teakint kszlk, gy nem tud mit kezdeni a kvkint kszlkek vezrlsi parancsaival.

~ 25 ~

A TCP/IP PROTOKOLL MKDSE

2. 1 .2 . 2 M E S S A G E H E A D E R (R E S P O N S E )

Egy rszkkel mr tallkozhattunk a krseknl. Ha nincs vltozs, akkor ezeket itt mr nem fogom rszletezni.2.5. TBLZAT Header ACCEPT-RANGES AGE ALLOW CACHE-CONTROL CONTENTENCODING CONTENTLANGUAGE CONTENTLENGTH CONTENTLOCATION CONTENTDISPOSITION CONTENT-MD5 CONTENT-RANGE CONTENT-TYPE DATE ETAG EXPIRES LAST-MODIFIED LOCATION PRAGMA PROXYAUTHENTICATE RETRY-AFTER SERVER SET-COOKIE TRAILER

Magyarzat Ha bedl egy letlts, akkor mi az az informatikai alapegysg, amelyikben a kliens lekrheti a hinyz rszleteket. Mennyi ideig lehet az objektum a cache-ben. (sec) Metdusok, melyek a krt objektumhoz hasznlhatk. A visszaadott adatok kdolsa A visszaadott adatok nyelve

Hol tallhat meg mg az oldal Ha ismert a MIME tipus, akkor megadja a lehetsget egy "File Download" ablak elugrsra. A vlaszbl (message body) kpzett MD5 hash, Base64 kdolsban. Ha a szerver rszletekben vlaszol, akkor itt mondja meg, melyik rszletrl van sz.

A lekrt objektum verzi jelleg azonostja. A legtbbszr MD5 hash. Mikortl nem lesz mr rvnyes a vlasz. Mikor mdostottk utoljra a krt objektumot. Hov van tirnytva a tartalom. (3xx kdok) A proxy autentikcit kr. Ha a krt tartalom nem rhet el, mennyi id prblkozzon jra a kliens. A szerver neve, pontosabban tipusa.. Megy a sti. Van olyan, amikor a message body utn mg jnnek headerek. (Chunked transfer-coding) Ezeknek az utlagos headereknek a tipusai vannak felsorolva a trailer mezben.

Na, ennek mi lehet az rtelme? Ht, az, hogy a szerver, amikor kszti a vlaszt, akkor mr tudja, milyen headerek lesznek benne, de ezek mg nem lltak ssze. Ekkor hasznlja ki a chunked kdolst. A kliens folyamatosan kapja a vlaszt, a szerver menetkzben folyamatosan gyrtja a csomagokat gy egyiknek sem kell resjratban vrakoznia.HEADER TRANSFERENCODING VARY VIA WARNING WWWAUTHENTICATE Magyarzat Milyen kdolsban megy a vlasz. Lehetsgek: chunked, compress, deflate, gzip, identity. Cache vezrls

Milyen autentikcis mdszert kell hasznlni a krt tartalom elrshez.

~ 26 ~

AZ ALKALMAZS RTEG WEBES PROTOKOLLJAI Igrtem, hogy megmutatom, mit trkkztt mg az index.hu, hogy gyorsabb legyen az oldal letltse. Nzzk csak meg az brt (2.3. bra Lekrtem az index nyitlapjt). REQUEST HEADER: Accept-encoding: gzip, deflate, sdch. A szerver pedig boldogan vette tudomsul, hogy a kliens elfogadja tmrtett formban is a weboldalt. RESPONSE HEADER: Content-encoding: gzip. Majd az ablak aljn (2.15. bra HTTP Response) lthatod is, hogy a message body mr egy ronda, rtelmezhetetlen binris fjl. Tmrtett.

~ 27 ~

A TCP/IP PROTOKOLL MKDSE

2.2 FTP - ARFC 959

TEHERHORD SZVR

FTP, azaz File Transfer Protocol. Hozza-viszi a biteket a drton. A HTTP-hez meglehetsen sokban hasonlt. Egyrszt ugyangy kliens-szerver formban ltezik, msrszt nagyjbl egykorak - azaz megalkotsuk pillanatban IT biztonsgi szempontokrl mg csak nem is hallottak. (De errl majd ksbb.) A felek kztti kommunikci is hasonlt annyibl, hogy itt is krsek s vlaszok vannak - de az irnyok mr nem lesznek annyira egyrtelmek. Emiatt nem is rdemes kln kezelni, egyszeren parancsoknak nevezzk mindkettt. A parancsoknak mr nincs annyira rgztett szintaktikja, mint a HTTP esetben. A session fogalom ugyangy ltezik - csak itt tbb is van bellk egy munkameneten bell. Mieltt brmibe is belevgnnk, idebortom a parancsok s a kdok listjt. Mghozz minden klnsebb magyarzat nlkl, gy, ahogy a neten is megtallhat. Ezekbl a parancsokbl ugyanis annyi van, hogy a rszletes ismertetsk bven meghaladja e knyv kereteit. Nem baj, ha elsre nem fogod rteni az sszeset. Ahogy haladunk majd elre, gy lesz rtelme a fontosabb parancsoknak. A tbbi meg gyis csak azrt van itt, hogy teljes legyen a kp.

~ 28 ~

AZ ALKALMAZS RTEG WEBES PROTOKOLLJAI 2.2.1 FTP

P A R AN CSO K

2.6. TBLZAT Parancs RFC ABOR ACCT ADAT RFC 2228 ALLO APPE AUTH RFC 2228 CCC RFC 2228 CDUP CONF RFC 2228 CWD DELE ENC RFC 2228 EPRT RFC 2428 EPSV RFC 2428 FEAT RFC 2389 HELP LANG LIST LPRT LPSV MDTM MIC MKD MLSD MLST MODE NLST NOOP OPTS PASS PASV PBSZ PORT PWD QUIT REIN REST RETR RMD RNFR RNTO SITE SIZE SMNT STAT STOR STOU STRU SYST TYPE USER RFC 2640 RFC 1639 RFC 1639 RFC 3659 RFC 2228 RFC 3659 RFC 3659

RFC 2389

RFC 2228

RFC 3659

Lers Abort an active file transfer. Account information. Authentication/Security Data Allocate sufficient disk space to receive a file. Append. Authentication/Security Mechanism Clear Command Channel Change to Parent Directory. Confidentiality Protection Command Change working directory. Delete file. Privacy Protected Channel Specifies an extended address and port to which the server should connect. Enter extended passive mode. Get the feature list implemented by the server. Returns usage documentation on a command if specified, else a general help document is returned. Language Negotiation Returns information of a file or directory if specified, else information of the current working directory is returned. Specifies a long address and port to which the server should connect. Enter long passive mode. Return the last-modified time of a specified file. Integrity Protected Command Make directory. Lists the contents of a directory if a directory is named. Provides data about exactly the object named on its command line, and no others. Sets the transfer mode (Stream, Block, or Compressed). Returns a list of file names in a specified directory. No operation (dummy packet; used mostly on keepalives). Select options for a feature. Authentication password. Enter passive mode. Protection Buffer Size Specifies an address and port to which the server should connect. Print working directory. Returns the current directory of the host. Disconnect. Re initializes the connection. Restart transfer from the specified point. Retrieve (download) a remote file. Remove a directory. Rename from. Rename to. Sends site specific commands to remote server. Return the size of a file. Mount file structure. Returns the current status. Store (upload) a file. Store file uniquely. Set file transfer structure. Return system type. Sets the transfer mode (ASCII/Binary). Authentication username.

Forrs: http://en.wikipedia.org/wiki/List_of_FTP_commands

~ 29 ~

A TCP/IP PROTOKOLL MKDSE A szp az egszben az, hogy a hskorban gy ment az eftpzs, hogy az ember fogta s begpelte ezeket a parancsokat a command prompt-ba. Grafikus kliens? Ugyanmr.

2.17. BRA FTP PARANCSSORBL

A fenti munkamenetben az trtnt, hogy belptem egy FTP szerverre, lekrtem a knyvtr tartalomjegyzkt, lejjebb lptem egy knyvtrral, majd letltttem az index.html fjt. Feltlteni a PUT paranccsal tudtam volna. (Az brn lv parancsokat ne is keresd az elz tblzatban, ezek a parancsok a Windows beptett fapados telnet kliensnek a parancsai. Valjban a GET parancs mgtt egy FTP parancsktegnek kell lennie, mely egszen biztosan tartalmazza tbbek kztt - a MODE s a RETR parancsokat.)

~ 30 ~

AZ ALKALMAZS RTEG WEBES PROTOKOLLJAI Csak az rdekessg kedvrt nzzk meg, hogyan csinlja ugyanezt egy profi.

2.18. BRA FTP GRAFIKUS KLIENSBL

Mg csak addig jutottunk, hogy belptnk a szerverre s lekrtk a tartalomjegyzket - de nzzk meg, mennyi parancsot adtunk ki mr eddig is. Hiba, vlasztkosan fogalmazni tudni kell.

~ 31 ~

A TCP/IP PROTOKOLL MKDSE 2.2.2 FTP

KDOK

De nem csak parancsokat lthatunk a fenti brkon. Vannak kdok is. Olyan kdok, melyeket a szerver ad vissza.2.7. TBLZAT Kd Magyarzat 100 Series: The requested action is being initiated, expect another reply before proceeding with a new command. 110 Restart marker replay . In this case, the text is exact and not left to the particular implementation; it must read: MARK yyyy = mmmm where yyyy is User-process data stream marker, and mmmm server's equivalent marker (note the spaces between markers and "="). 120 Service ready in nnn minutes. 125 Data connection already open; transfer starting. 150 File status okay; about to open data connection. 200 Command okay. 202 Command not implemented, superfluous at this site. 211 System status, or system help reply. 212 Directory status. 213 File status. 214 Help message.On how to use the server or the meaning of a particular non-standard command. This reply is useful only to the human user. 215 NAME system type. Where NAME is an official system name from the list in the Assigned Numbers document. 220 Service ready for new user. 221 Service closing control connection. 225 Data connection open; no transfer in progress. 226 Closing data connection. Requested file action successful (for example, file transfer or file abort). 227 Entering Passive Mode (h1,h2,h3,h4,p1,p2). 228 Entering Long Passive Mode (long address, port). 229 Entering Extended Passive Mode (|||port|). 230 User logged in, proceed. Logged out if appropriate. 231 User logged out; service terminated. 232 Logout command noted, will complete when transfer done. 250 Requested file action okay, completed. 257 "PATHNAME" created. 331 User name okay, need password. 332 Need account for login. 350 Requested file action pending further information 421 Service not available, closing control connection. This may be a reply to any command if the service knows it must shut down. 425 Can't open data connection. 426 Connection closed; transfer aborted. 434 Requested host unavailable. 450 Requested file action not taken. 451 Requested action aborted. Local error in processing. 452 Requested action not taken. Insufficient storage space in system.File unavailable (e.g., file busy). 500 Syntax error, command unrecognized. This may include errors such as command line too long. 501 Syntax error in parameters or arguments. 502 Command not implemented. 503 Bad sequence of commands. 504 Command not implemented for that parameter. 530 Not logged in. 532 Need account for storing files. 550 Requested action not taken. File unavailable (e.g., file not found, no access). 551 Requested action aborted. Page type unknown. 552 Requested file action aborted. Exceeded storage allocation (for current directory or dataset). 553 Requested action not taken. File name not allowed.

~ 32 ~

AZ ALKALMAZS RTEG WEBES PROTOKOLLJAIForrs: http://en.wikipedia.org/wiki/List_of_FTP_server_return_codes

Lthat, hogy a tagozds teljesen ugyanaz, mint a HTTP esetben (2.3. tblzat). 2.2.3 A Z FTPP R O T O K O L L L E LK I V I L G A

Kezdjk megint trtnelmi ttekintssel. Kinek mond mg valamit az, hogy anonymous FTP? Pedig volt. St, ebbl volt tbb. Pldul a gyrtk a drivereket legtbbszr FTP szervereken troltk, ahhoz meg nem kellett autentikci. Pontosabban, kellett. De j volt a kamu is. Anonymous FTP belpsnl a felhasznl az 'anonymous' user volt, a jelszava pedig egy emailcm. Melyet persze a kutya sem ellenrztt. Nos, ezek voltak a boldog bkeidk. Ma az ilyesmi ritka, mint a fehr holl: hasonl clokra mr HTTP alap letltsek szolglnak, vagy a Trivial FTP (TFTP). Sokkal izgalmasabb tma az FTP munkamenetek kavarodsa. Mint mr cloztam r, egy viszonylag egyszer feladat - pldul egy fjl letltse - az FTP-ben nem intzhet el egy munkameneten bell, mint pldul a HTTP-nl. Az FTP ugyanis kln csatornkat hasznl egyfell a vezrlinformcik (Control vagy Command) forgalmazsra, msfell az adatforgalomra (Data). Mindkt csatornt a jl ismert mdon (SYN, SYN/ACK, ACK) ptik ki a felek. Pusztn csak azrt, hogy ne legyen egyszer az leted, mindemellett a csatornk kiptse hrom klnbz forgatknyv szerint is trtnhet: Aktv md Passzv md Kiterjesztett passzv md RFC 2428 A legkevesebbet a harmadik vltozattal fogunk foglalkozni, ez gyakorlatilag a passzv md kiterjesztse IPv6, illetve NAT krnyezetekre. Az meg mr ksz provokci, hogy a Data csatornn trtn adatramls is ktfle lehet: ASCII md : plain text ramlik t a csatornn. Binris md : binris kd ramlik t a csatornn.

~ 33 ~

A TCP/IP PROTOKOLL MKDSE2. 2 .3 . 1 A K T V M D

Csak hogy tudjuk, mire kszlnk: ez a fejezet azzal fog foglalkozni, hogyan plnek ki a Command s a Data csatornk abban az esetben, ha a kliens az n. aktv FTP mdot hasznlja. gy.

2.19. BRA A KTV FTP KLIENS

Els lpsben a kliens - miutn kiptettek egy TCP sessiont - a Command csatornn keresztl kld az FTP szervernek egy PORT parancsot. Ebben benne van az IP cme s egy port szm. Ezen a porton vrja a szerver prblkozst a Data csatorna kiptsre.

~ 34 ~

AZ ALKALMAZS RTEG WEBES PROTOKOLLJAI

2.20. BRA PORT R EQUEST

2.21. BRA D ATA FORGALOM

Az els brn a kliens (192.168.1.99) rtesti a szervert (186-os csomag), hogy az 50975-s porton vrja a behatolst. A 187-es csomagban a szerver jelzi, hogy vette az adst. A kvetkez brn pedig lthatjuk, hogy a szerver nem viccel, a 20-as portjrl tolja a biteket a kliens 50975-s portjra. Vegyk szre, hogy a 189-191 csomagokban pl ki az j - Data - csatorna. (Az brkon munkamenetekre szrt forgalmak lthatk - ezrt nincsenek benne pldul a 189-191-es csomagok az els brban.)Le a kalappal az EventHelix fik eltt. Az albbi cmrl le lehet tlteni egy pdf doksit, mely minden tlzs nlkl gynyren s plasztikusan mutatja be, mi is trtnik egy ltszlag egyszer fjlletlts sorn. (Aktv FTP kliens) http://www.eventhelix.com/RealtimeMantra/Networking/FTP.pdf De rdemes tnzni a tbbi anyagukat is: http://www.eventhelix.com/RealtimeMantra/Networking/

Mi a mdszer htrnya? Nzzk csak meg: a Data csatorna kiptse gy trtnik, hogy a szerver kezdemnyez kapcsolatot a kliens egyik portjra. Mit mondanak erre a a betrsi kisrletre a mai tzfalak? Azt, hogy coki.

~ 35 ~

A TCP/IP PROTOKOLL MKDSE2. 2 .3 . 2 P A S S Z V M D

Valahogy ki kellene iktatni azt a hiperaktv FTP szervert. Vrja csak meg, hogy a kliens kezdemnyezze a Data csatorna felptst is.

2.22. BRA P ASSZV FTP KLIENS

A kliens - mg a Command csatornn - kld egy PASV parancsot. Ezzel passzv mdba kapcsolja az FTP szervert. Vlaszknt a szerver kld egy portszmot - ahol immr vrja majd a kliens kezdemnyezst a Data csatorna kiptsre. A kliens j sessiont nyit - immr egy msik portjrl - a szerver elzleg megadott portjra.

~ 36 ~

AZ ALKALMAZS RTEG WEBES PROTOKOLLJAI

2.23. BRA A SZERVER VLASZA A PASV PARANCSRA

2.24. BRA A DATFORGALOM

Mindez lthat a valsgban is. A 22-es csomagban kldi el a kliens a PASV parancsot, a 23-asban vlaszol a szerver, megadva a 22353-as portot. A 25-27 csomagokban pl fel az j TCP session s a 29-es csomagtl indul el az adatfolyam a Data csatornn.

~ 37 ~

A TCP/IP PROTOKOLL MKDSE

2. 2 .3 . 3 FTP S NA T

Nem motoszkl valami kellemetlen rzs ott htul, a kisagyban? Mindkt mdszer esetn nagyon fontos IP cmek s portszmok utaznak FTP csomagokban a TCP szegmenseken bell. Aktv esetben a PORT parancsban mondta meg a kliens, hol vrja a szervert. Passzv esetben a PASV response parancsban a szerver mondta meg ugyanezt a kliensnek. Mi van akkor, ha a kett kz bepl egy NAT router?

2.25. BRA FTP S NAT

~ 38 ~

AZ ALKALMAZS RTEG WEBES PROTOKOLLJAI

Ugye tudjuk, a NAT (ok, PAT) IP, illetve Transport rteg szinten mkdik. Az IP datagramban a forrs IP cmeket, a TCP szegmensben a forrs portszmot rja t.

2.26. BRA IP CMEK S PORTOK

A fenti bra azt mutatja, amikor a bels kliens kapcsoldik a bels FTP szerverhez. Ekkor nincs gond, mert nincs NAT. De mi van, ha a kls kliens akarja elrni az FTP szervert? A router ki fogja cserlni a 172.30.125.6 IP cmet a 192.168.1.1 cmre, a kliens portszmt meg egy msikra. Csakhogy az FTP csomagban ott marad a rgi IP s az a port, ahol majd a kliens rnyomulna a szerverre. Nem fog mkdni. Innentl a NAT routerek trsadalma kt rtegre tagozdik: Azokra, akik ismerik a TCP protokollt s cserlgetik az FTP csomagon bell is a cmeket, portokat. Ez mr gyakorlatilag FTP applikcis proxy. s azokra, akiken nem megy t az FTP.

~ 39 ~

A TCP/IP PROTOKOLL MKDSE

2.3 SMTP - A

NPSZER REG

Huh. Vgre egy kicsit itthon. Eddig minden protokoll ismertetst azzal kezdtem, hogy bertam az aktulis RFC szmt. m, legyen. Teljessg nlkl a fontosabb szabvnyok:2.8. TBLZAT RFC RFC 0821 RFC 0822 RFC 1123 RFC 1652 RFC 1869 RFC 1870 RFC 1985 RFC 2034 RFC 2045 RFC 2046 RFC 2047 RFC 2048 RFC 2049 RFC 2142 RFC 2183 RFC 2298 RFC 2476 RFC 2505 RFC 2554 RFC 2821 RFC 2822 RFC 2920 RFC 3030 RFC 3207 RFC 3461 RFC 3463 RFC 5321 RFC 5322

Megnevezs Simple Mail Transfer Protocol (STD0010) Internet Message Format (STD0011) Requirements for Internet Hosts (STD0003) SMTP Extension for 8bit-MIME SMTP Service Extensions (ESMTP) SMTP Extension for Msg. Size Declaration SMTP Extension for Remote Message Queue Starting SMTP Extension for Enhanced Error Codes Multipurpose Internet Mail Extensions (MIME) #1 Multipurpose Internet Mail Extensions (MIME) #2 Multipurpose Internet Mail Extensions (MIME) #3 Multipurpose Internet Mail Extensions (MIME) #4 Multipurpose Internet Mail Extensions (MIME) #5 Mailbox Names for Common Services and Roles Content-Disposition Header Field Message Disposition Notifications Message Submission Anti-Spam Recommendations for SMTP MTAs SMTP Service Extension for Authentication Simple Mail Transfer Protocol Internet Message Format SMTP Extension for Command Pipelining (STD0060) SMTP Extensions for Large and Binary MIME SMTP Extension for Secure SMTP over TLS SMTP Extension for Delivery Status Notifications Enhanced Mail System Status Codes Simple Mail Transfer Protocol Internet Message Format

Dtum 1982 1982 1989 1994 1995 1995 1996 1996 1996 1996 1996 1996 1996 1997 1997 1998 1998 1999 1999 2001 2001 2000 2000 2002 2003 2003 2008 2008

Nos, rgtn lthat, hogy a levelezs mr nem lesz olyan egyszer tma. Ha alaposan megnzzk a listt, lthat, hogy vannak benne ismtldsek. Az RFC 5321 pldul kinyrta a 2821-et, illetve a 0821-et. Az RFC 5322 pedig a 2822-est s a 0822-est. Erre azrt alaposan oda kell figyelni, tekintve, hogy ez a kt RFC alkotja az internetes levelezs gerinct. Amikor SMTP-rl beszlnk, hallgatlagosan kt szabvnyrl beszlnk. Mr eredetileg is gy szlettek: a 821-es mellett ott figyelt a 822-es is. Az els foglalkozott azzal, hogyan vndorolnak a levelek. Posts hasonlattal lve, ez az RFC rta le azt, hogyan kell cmezni egy bortkot s hogyan kell azt tovbbtani a cmzetthez.

~ 40 ~

AZ ALKALMAZS RTEG WEBES PROTOKOLLJAI A 822-es RFC viszont magnak a levlnek a tartalmval foglalkozott. Hogyan kell kinznie egy levlnek: megszlts, bevezets, trgyals, befejezs, alrs. A kt szabvny nagyjbl prhuzamosan mozgott: a nagy renovlsok alkalmval mindkett egyarnt vltozott. (A kztes idben pedig hol az egyikhez jttek ki mdost szabvnyok, hol a msikhoz.) Mi is gy fogjuk ttekinteni a protokollt. 2.3.1 L EV E L EKT O V B B T SA , A Z A Z A K O N K R T

SMTP

RFC 5321 Hogy kpben legynk, kezdjk egy brval.

2.27. BRA LTALNOS LEVELEZSI TRTNET

Ez egy teljesen ltalnosnak mondhat sma. Van egy cg, akik Exchange 2007 levelezsi infrastruktrt hasznlnak. Van egy Mailbox szerverk, egy HUB Transport szerverk s egy Client Access szerverk (ez a hrom lehet ugyanaz is), smarthostknt egy Edge Transport szervert hasznlnak. Zmben Outlook klienseik vannak, de nhny ers, nll egynisg inkbb Mozilla Thunderbird kliensrl nyomul. Az Outlook kliensek MAPI-n keresztl kapcsoldnak a Mailbox szerverhez, mely szintn MAPI-n keresztl a HUB Transport szerverhez.

~ 41 ~

A TCP/IP PROTOKOLL MKDSE A Thunderbird felhasznlk lete egy kicsit izgalmasabb, k kldskor a HUB Transport szerverhez kapcsoldnak SMTP-Submission protokollon keresztl, letltskor viszont a Client Access szerverhez vagy POP3, vagy IMAP4 protokollon keresztl. A lnyeg, hogy elbb-utbb minden kldend levl a HUB Transport szerveren kt ki. Ez a szerver SMTP-MTA (a tovbbiakban SMTP) protokollon keresztl tovbbtja a levelet a DMZ-ben lv smarthostnak. Az Edge Transport szervernek, mieltt tovbbklden a levelet, meg kell tallnia, hov is kldje. A levl cmzettjnek suffixbl kiolvassa a tartomnynevet s egy DNS szervertl lekrdezi a tartomnyhoz tartoz MX (Mail eXchanger) rekordot. Ez mutat a tartomny levelezszervernek cmre. Megvan a cm, az Edge Transport szerver SMTP protokollon keresztl ttolja a tls SMTP szervernek a levelet, ahonnan a tloldali felhasznlk valamilyen mdszerrel leszedik azt. Ugye, nem bonyolult? Mindjrt az lesz.

2.28. BRA A Z ELEKTRONIKUS LEVELEZS SZEREPLI

~ 42 ~

AZ ALKALMAZS RTEG WEBES PROTOKOLLJAI Br az els brn nem ltszik, de valjban ennyi komponens teszi szorgalmasan a dolgt, mikzben elkldesz egy levelet a melletted l kollgdnak, hogy jn-e ebdelni. Ahelyett, hogy sznn magyarznm a fogalmakat, prbljuk sszepontozni a kt brt. Ltjuk, hogy a MUA az gyakorlatilag a kliensprogram. Mely konkrtan a felhasznl (fj) asztaln lv szmtgpben ketyeg. Amikor a felhasznl levelet akar kldeni, akkor els krben ez a levl feliratkozik kldsre. Ezt vgzi az MSA, a Message Submission Agent. Ha Outlookbl kldk, akkor gyakorlatilag a Mailbox szervert rugdosom meg, hogy tegye bele a levelet a HUB Transport szerver Submission vrakozsi sorba. Ha Thunderbird-bl, akkor kzvetlenl a HUB Transport szerverhez fordulunk, mghozz a submission SMTP protokollon keresztl. (Ugye mindenki emlkszik arra a trks client receive konnektorra?) Innentl Message Transfer Agent-ek (MTA) hossz sora kvetkezik. Ezek hoprl hopra3 passzolgatjk SMTP protokollon keresztl a leveleket, amg azok el nem jutnak a cmzett MTA szerverhez. (MX rekord.) ltalban az MTA-nak van ppen elg dolga a levelekkel (routols, higinia), ezrt kln szoktk vlasztani azt a funkcit, mely mr konkrtan a levelek felhasznlkhoz szlltst intzi. Ezt gy hvjk, hogy Mail Delivery Agent (MDA) s a kifejezs az Exchange 2007 szerver esetben a Mailbox szervert takarja. A felhasznlknak innentl nincs is ms dolguk, mint elvinni a levelket. Ha Exchange 2007 szervernk van s Outlook kliensnk, akkor egyszerbb a helyzet, mert a Message Access Agent (MAA) az ugyanaz a szerepl, mint az MDA. (Megjegyzem, ez az llts Exchange 2010 szerverre mr nem igaz. Ott az MAA funkci minden kliens esetn - teht a MAPI/RPC-t hasznl Outlook esetben is tkerlt a Client Access szerverre.) Ha nem Exchange szervernk van, vagy nem MAPI kliensbl leveleznk, akkor az MAA egy POP3/IMAP4 szerver, mely Exchange 2007 esetben a Client Access szerver. Nos, gyakorlatilag megrkeztnk. A tloldali MUA vagy MAPI-n, vagy POP3/IMAP4 protokollokon keresztl egyszeren letlti a levelt.Akit mlyebben rdekel az Exchange 2007 lelkivilga, minden rszrehajls nlkl tudom neki ajnlani az albbi knyvet: Petrnyi Jzsef: Exchange 2007 spontn http://www.microsoft.com/hun/technet/article/?id=e1d46c3f-dbb8-4fdb-865a-73c3b9cce433

3

Eltekintve persze az Exchange 2007 Direct Relay elvtl.

~ 43 ~

A TCP/IP PROTOKOLL MKDSE Habr az elz szvegben elhangzott egy csom protokollnak a neve (POP3, IMAP4, MAPI, RPC), ezeket itt nem fogom kibontani. Tudjunk rla, hogy lteznek. Laztskppen elmeslem, mirt pont ezt a cmet adtam az alfejezetnek. Ahogy egy rkkvalsggal ezeltt is rtam, a hetvenes vek vge fel rdekes konkurenciaharc volt a hlzati architektrk tern. Egyszerre kezdtk szabvnyba nteni az n. 7 rteges ISO-OSI modellt s nagyjbl ugyanabban az idben formldott a 4 rteges TCP/IP is. Nagy kzdelem volt. Hogy manapsg a 7 rteges modellel mr csak a fanatikusok tallkoznak, a TCP/IP-vel pedig mg a keresztanym is (csak ppen nem ismeri fel) - az nem kis mrtkben a rendkvl npszer SMTP-nek ksznhet. - Hoh - mondhatja erre a figyelmes olvas - Az SMTP els RFC-je 1982-ben kszlt. Hogyan vitzkedhetett volna ez a hetvenes vekben? gy, hogy az SMTP-nek voltak elzmnyei. Mr a hatvanas vekben is lteztek kezdetleges zenetkld alkalmazsok, melyek 1973 s 1980 kztt, amikor az ARPANET kezdte kiforrni magt s kezdett belle kialakulni az internet, mr vadul tettk a dolgukat. Jon Postel 1980-ban foglalta ezeket ssze Mail Transfer Protocol nven - melybl vgl 1982-ben alakult ki a Simple Mail Transfer Protocol, azaz az SMTP. Ez a kezdeti npszersg ksbb csak fokozdott. Manapsg az SMTP s a HTTP fej fej mellett llnak a legnpszerbb netes protokollok kztt. s van egy olyan szempont, ahol az SMTP bven le is krzi a HTTP-t: ez a nlklzhetetlensg. Meglehetsen sok gyfelnk van, de az email mindenhol kiemelten kritikus rendszernek minsl. Ha nincs web, akkor legfeljebb nem bngsznek annyit az alkalmazottak. Ha nem mkdik a levelezs, akkor viszont megll az let. Ez a nagy npszersg persze nem csak elny. Gzsba is kti az SMTP-t. Harminc vvel ezeltt kicsit ms volt a vilg, mint ma. A protokoll vltozott ugyan, de ma mr annyi, de annyi SMTP szerver van a vilgon, hogy a rendszer tehetetlensge miatt gykeres talaktsokra kevs az esly. Pedig igny lenne r: a levelezs 75-80%-t manapsg a levlszemt teszi ki. Spam, malware, phishing. Ezek mind azrt ilyen virulensek, mert az SMTP eredeti hinyossgait hasznljk ki. (Egyet meg is fogunk nzni.) Kipihentk magunkat, folytathatjuk.

~ 44 ~

AZ ALKALMAZS RTEG WEBES PROTOKOLLJAI

2. 3 .1 . 1 S M TP , ES M TP P A R A N C S O K

Amikor indult az SMTP, a kvetkez parancsokat tartalmazta: HELO, MAIL FROM, RCPT TO, DATA, RSET, SEND FROM, SOML FROM, SAML FROM, VRFY, EXPN, HELP, NOOP, QUIT, TURN Aztn jtt nhny rncfelvarrs (egy szekrderk RFC) s most nagyjbl gy llunk:2.9. TBLZAT Parancs 8BITMIME ATRN AUTH BDAT BINARYMIME BURL CHECKPOINT CHUNKING DATA DELIVERBY DSN EHLO ENHANCEDSTATUSCODES ETRN EXPN FUTURERELEASE HELO HELP MAIL FROM MTRK NO-SOLICITING NOOP ONEX PIPELINING QUIT RCPT TO RSET SAML SEND SIZE SOML STARTTLS SUBMITTER TURN UTF8SMTP VERB VRFY

Lers A levl kiterjesztett karakterkszletet tartalmaz Ugyanaz, mint a TURN, csak autentikci nlkl nem megy Autentikci Binris adat Binris MIME adat A levl tartalma egy IMAP szerverrl jn Nagy levelek megbzhatatlan vonalon - a checkpoint jeltzi, hogy eddig minden rendben van DATA helyett BDAT A levl tartalma kvetkezik Megadott idn belli tovbbts Delivery Status Notification, azaz rtests a levltovbbts alakulsrl Extended HELO. A szerver a kibvtett stuszkd kszletet ismeri Kibvtett TURN: az a trkkje, hogy szerverek kztt is mkdik. Kibontja a cmlistkat Jvben elkldend levl sszelltsa dv Help Felad a bortkon Message Tracking. Nem krnk spamszrst Semmi Csak egy zenet megy Egy munkameneten bell tbb parancs Viszlt s ksz a halakat A bortk cmzettje Kezdjk jra Send And MaiL (Terminlrl) Send (Terminlrl) Levlmret megadsa Send Or MaiL (Terminlrl) Trjnk t TLS-re. A kleins megadhat egy olyan emailcmet, mely a levelek feladsrt felels (Responsible Submitter) A kliens s a szerver szerepet cserlnek - azaz a kliens magra hzza a leveleit. Nemzetkzi emailcmek Bbeszden. Hibakeressre. Ltezik-e a postafik?

Visszavonva

Igen Igen Igen

Igen

Egyltaln nem ktelez, hogy egy levelezszerver az sszes parancsot ismerje. Ltezik egy minimum kszlet, azt igen - de azon fell mr egyrszt magn az SMTP szerveren, msrszt a rendszergazdn mlik, mit enged. Pldul a VRFY parancsot a

~ 45 ~

A TCP/IP PROTOKOLL MKDSE '*' paramterrel hatrozottan tiltja mindenki (ne tudjanak a spammerek cmeket begyjteni), de van olyan termk (pl. az Exchange is), mely alaprtelmezsben magt a parancsot sem engedlyezi. Jogos lehet a krds, hogyan tudjk eldnteni a szerverek, hogy ki melyik parancsot ismeri? Nos, ha az egyik szerver a HELO paranccsal kszn be a msiknak, akkor sehogy. Ellenben ha az EHLO parancsot hasznlja, akkor vlaszknt megkapja az ismert parancsok listjt.2. 3 .1 . 2 SM TP K D O K

A szerverek ltal visszaadott kdokkal ugyanaz a csfsg trtnt, mint a parancsokkal: valamikor ltezett egy szkebb kr, melyet ksbb RFC-k hossz sorn keresztl bvtgettek. Lnyeges klnbsg, hogy itt a kommunikci sorn nem llnak neki tisztzni a szerverek, hogy az eredeti kld oldal rti-e a vlaszkdot. Megkapja, oszt azt csinl vele, amit akar.2.10. TBLZAT Kd Lers 211 System status, or system help reply. 214 Help message. 220 Domain service ready. Ready to start TLS. 221 Domain service closing transmission channel. 250 OK, queuing for node node started. Requested mail action okay, completed. 251 OK, no messages waiting for node node. User not local, will forward to forwardpath. 252 OK, pending messages for node node started. Cannot VRFY user (e.g., info is not local), but will take message for this user and attempt delivery. 253 OK, messages pending messages for node node started. 354 Start mail input; end with .. 355 Octet-offset is the transaction offset. 421 Domain service not available, closing transmission channel. 432 A password transition is needed. 450 Requested mail action not taken: mailbox unavailable. ATRN request refused. 451 Requested action aborted: local error in processing. Unable to process ATRN request now 452 Requested action not taken: insufficient system storage. 453 You have no mail. 454 TLS not available due to temporary reason. Encryption required for requested authentication mechanism. 458 Unable to queue messages for node node. 459 Node node not allowed: reason. 500 Command not recognized: command. Syntax error. 501 Syntax error, no parameters allowed. 502 Command not implemented. 503 Bad sequence of commands. 504 Command parameter not implemented. 521 Machine does not accept mail. 530 Must issue a STARTTLS command first.

~ 46 ~

AZ ALKALMAZS RTEG WEBES PROTOKOLLJAIEncryption required for requested authentication mechanism. Authentication mechanism is too weak. Encryption required for requested authentication mechanism. Requested action not taken: mailbox unavailable. User not local; please try forwardpath. Requested mail action aborted: exceeded storage allocation. Requested action not taken: mailbox name not allowed. Transaction failed.

534 538 550 551 552 553 554

Szndkosan hagytam meg az angol szveget: a szerver is gy fog vlaszolni. Vegyk szre, hogy a visszajelzsek csoportostsa ugyanazt a szmozsi logikt kveti, mint a HTTP, illetve FTP esetben. (Eltekintve a 3xx kategritl. A rekurzirl ugyanis az SMTP kapcsn tl sok rtelme nincs beszlni, azaz a kdmez felhasznlhat msra.)

~ 47 ~

A TCP/IP PROTOKOLL MKDSE 2.3.2 A ZE L EK T R O N I K U S L EV E L EK S Z ER K E Z ET E , A ZA Z

IMF

RFC 5322 IMF: Internet Message Format. Azaz hogyan kell kinznie egy virtigli levlnek. (Figyelem, immr a bortkon bell vagyunk.) Egy levlen bell alapveten kt nagy rszt klntnk el: Header: a levlre vonatkoz kisrinformcik. Body: Maga a levl tartalma: szveg, csatols. Az SMTP viszonya a szabvnyokhoz meglehetsen laza. Egyltaln nem ktelez kitlteni minden fejlc mezt, egyltaln nem ktelez brmit is rni a body rszbe, st egyltaln nem ktelez rtelmes dolgokat rni magba a levlbe, mint ahogy a cges levelezsekben ez nem is ritkn elfordul. (A bortkra rt informcik alapjn a levl mindenkppen eljut a cmzett levelezszerverre - maximum a szerver szri ki, mint spam.)220 mail02a.mail.t-online.hu ESMTP You must authenticate before sending mail ehlo hq 250-mail02a.mail.t-online.hu 250-PIPELINING 250-SIZE 26214400 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN auth login 334 VXNlcm5hbWU6 cGV0cmVueWlq 334 UGFzc3dvcmQ6 Ez_itt_a_jelszavam_helye 235 2.7.0 Authentication successful mail from:[email protected] 250 2.1.0 Ok rcpt to:[email protected] 250 2.1.5 Ok data 354 End data with . from:Petrenyi Jozsef to:Petrenyi Jozsef GMAIL subject: HELLO WORLD! Ez egy tesztlevel . 250 2.0.0 Ok: queued as BE6E625BC0A quit 221 2.0.0 Bye

~ 48 ~

AZ ALKALMAZS RTEG WEBES PROTOKOLLJAI Ez a szvegrszlet egy capture fjlbl val. Bekapcsoltam a sniffer programot, sszelltottam egy levelet parancssorbl majd elkldtem.

2.29. BRA T ESZTLEVL PARANCSSORBL

A capture fjlban rszrtem a konkrt kommunikcira, majd sszerakattam a programmal a teljes adatramot. gy kaptam az elz oldalon lthat listt. Itt pedig az elkapott csomagok lthatk.

2.30. BRA P ARANCSSORBL KLDT T LEVL DARABJA A CAPTURE FJLBAN

(Megjegyzem, az a sok szemtnek tn TCP csomag a lass gpelsem miatt van. Istenem, nem vagyok egy Outlook.)

~ 49 ~

A TCP/IP PROTOKOLL MKDSE Ez az els lveboncolt levl a knyvben, el lehet rajta csemegzni. (Ksbb ltunk majd mg eleget.) Megkereshetjk a parancsokat, kibogarszhatjuk a vlaszokat. J jtk. Pldul szreveheted, hogy a levlben lthat 334-es kd vlasz - igen, az az rtelmezhetetlen zsizsa - nem szerepel a vlaszkdok kztt. Nem is, ugyanis ez sokkal inkbb egy challenge, mint kd. De errl majd ksbb. A lnyeg a szvegben az, hogy mivel n a kt sajt kezemmel gpeltem be a parancsokat, igyekeztem minimalizlni azokat. Az volt a clom, hogy mr rtelmezhet levl legyen, mg elfogadhat mennyisg parancs eredmnyekppen. Hasonltsuk ssze a prblkozsomat az Outlook prblkozsval. A levl feladja, a cmzettje s a levl szvege azonos. St, az elkapsi mdszer is.220 mail01a.mail.t-online.hu ESMTP You must authenticate before sending mail EHLO hq 250-mail01a.mail.t-online.hu 250-PIPELINING 250-SIZE 26214400 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN AUTH LOGIN 334 VXNlcm5hbWU6 cGV0cmVueWlq 334 UGFzc3dvcmQ6 Mg mindig a jelszavam helye 235 2.7.0 Authentication successful MAIL FROM: 250 2.1.0 Ok RCPT TO: 250 2.1.5 Ok DATA 354 End data with . From: "Petrenyi Jozsef" To: Subject: Hello World! Date: Sun, 10 Jan 2010 11:31:24 +0100 Message-ID: MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0001_01CA91E8.711B1180" X-Mailer: Microsoft Office Outlook 12.0 Thread-Index: AcqR4A7u+m0GG6/8SpKyPhj1+sMNtQ== Content-Language: hu This is a multi-part message in MIME format. ------=_NextPart_000_0001_01CA91E8.711B1180 Content-Type: text/plain;

~ 50 ~

AZ ALKALMAZS RTEG WEBES PROTOKOLLJAIcharset="us-ascii" Content-Transfer-Encoding: 7bit Ez egy tesztlevel.

------=_NextPart_000_0001_01CA91E8.711B1180 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Ez egy = tesztlevel. ------=_NextPart_000_0001_01CA91E8.711B1180-. 250 2.0.0 Ok: queued as 5CFB3797A02 QUIT 221 2.0.0 Bye

Na, itt aztn van minden, mint a bcsban. A parancsok mg hagyjn, azok ugyanazok. De a levl fejlce... na meg az a vadt teste! Az bizony jcskn ms. Kezdjk ott, hogy az Outlook nlam gy van belltva, hogy a default formtum a HTML. A legtbb cifra dolgot rgtn ez magyarzza. Jval tbb kisr informci kellett hozz. Mivel a HTML esetben nagyon fontos a formzs is, gy a stlus kln XML bettknt utazik a levllel. St, lthat, hogy a tartalom benne van a levlben plain text formban - s benne van HTML lapknt is. Tiszta rm. De tnyleg. Remek plda arra, hogy milyen bonyolult is tud lenni egy csatolsokat, nem angol belltsokat hasznl levl, illetve hogy mennyi rdekes fejlc is ltezik a vilgban. RFC 1426, 1521, 1847, 3156, 2045, 2046, 2047, 2048, 2049, 2183, 2231, 2387, 4288, 4289 Illetve remek alkalom, hogy ejtsnk pr szt arrl a roppant kellemetlen rzseket okoz valamirl, ami a MIME. Mr a neve is olyan... iz. Multipurpose Internet Mail Extensions. Ilyen idetekergetem, odatekergetem, brmit is jelenthet. Ha meg meg akarom nzni a szabvnytrban, rgtn egy gigr szabvnykupacon kell keresztlrgnom magamat. Megri? tbogarszni nem biztos. De hasznlni, tudni, hogy nagyjbl mirl is van sz, azt mindenkppen.

~ 52 ~

AZ ALKALMAZS RTEG WEBES PROTOKOLLJAI Mieltt a MIME megjelent volna, az let egyszer volt. Levlrsra hasznlhattuk az ASCII tbla als felt (7 bites kdkszlet), mghozz a 127 karakterbl rgtn le is kellett vonni a 32 vezrlkaraktert, A maradkot nevezzk printable karaktereknek. De itt mg le kell vonnunk a '.' - azaz 'pont' - karaktert is. Ez ugyanis a levl lezr karaktere. (Nzd meg a pldkat: a DATA paranccsal lpnk be a levlsszeraksi rszbe s a '.' karakterrel zrjuk azt be.) Nagyon hamar felismerheted, kik azok az reg rutinok, akik ebben a korban szocializldtak: k azok, akik a mai napig nem hasznlnak kezeteket a levelezsben. Csatols... az nem volt. Ahogy az internet egyre inkbb megsznt csak a katonk s a tudsok jtsztere lenni, gy szaporodtak az ignyek is az egyes protokollokkal szemben. Mirt ne lehetne ms, nemzeti kdkszletet hasznlni a levlben? Elismerem, ez is nagy knyszer lehetett a protokoll megjti szmra. De a legnagyobb nyomst felteheten az tette rjuk, amikor megprbltak nekik egy pucrns kpet tkldeni, de az istennek sem brta el a 7 bit4. Nos, j ha tudod, hogy az elektronikus levl formtuma a mai napig 7 bites. Ugyanazt a nhny karaktert hasznljuk, mint a hsi idkben. Minden mst, azaz a 8 bites kdols teljes kdtblkkal rdott szvegeket, a binrisnak tekintett csatolt fjlokat, mindent, kln t kell kdolni 7 bitesre. A MIME gyakorlatilag ezzel foglalkozik. A kvetkez funkcii vannak: Olyan szveges levelek kezelse, ahol a levl trzsben kiterjesztett kd karakterek (pldul kezetesek) vannak. Nem szveges csatolsok kezelse. Olyan levelek kezelse, melyek fejlc imformciiban (cmek, subject, stb) tallhatak kiterjesztett kd karakterek. Amennyiben tbb csatols van a levlben, vagy tbb, klnbz ASCII kd rsz, vagy a kett egytt, akkor tudnia kell kezelni a tbb MIME blokkot is, azaz menedzselnie kell a sajt bonyolultsgt. Lthat, a MIME egy kln birodalom az SMTP-n bell. Sajt fejlcei vannak, kpes blokkokra osztani a levl trzst, annak tartalmtl fggen. Termszetesen ehhez a levelez klienseknek is MIME kompatibilisnek kell lennik, de ez ma mr nem problma.4

Br az reg rutinok erre azt mondjk, hogy ugyanmr, ott volt az ASCII grafika.

~ 53 ~

A TCP/IP PROTOKOLL MKDSE Vizsgljuk meg nhny pldn, hogyan is nz ez ki. Ha visszalapozol pr oldalt ahhoz a nagyon hossz levlhez, szpen lthatod, hogyan is pl fel ez az egsz. Elszr jn a levl fejlce.DATA 354 End data with . From: "Petrenyi Jozsef" To: Subject: Hello World! Date: Sun, 10 Jan 2010 11:31:24 +0100 Message-ID: MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0001_01CA91E8.711B1180" X-Mailer: Microsoft Office Outlook 12.0 Thread-Index: AcqR4A7u+m0GG6/8SpKyPhj1+sMNtQ== Content-Language: hu This is a multi-part message in MIME format.

Lthatod, hogy magba a fejlcbe is belekerltek mr MIME informcik. Ilyen a MIME verziszma, de ilyen a Content-Type vltoz is. (A vltoz tartalmazza a MIME blokkok hatrait jelz azonostt is.) Plusz a vgn ott van egy fenyegets is, miszerint a levlben tbb MIME blokk is lesz.------=_NextPart_000_0001_01CA91E8.711B1180 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Ez egy tesztlevel.

Ez az els MIME blokk. A tartalom tipusa text/plain, a hasznlt karaktertbla usascii, a kdols pedig 7bit. Ez azt jelenti, hogy a blokk minden karaktere printable azaz a MIME-nek ezzel a darabbal az gegyadta vilgon semmi dolga sincs.------=_NextPart_000_0001_01CA91E8.711B1180 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

A msodik blokkot nem msolom teljesen ide, mert borzaszt hossz. De ha tnzed, lthatod, hogy ez ugyanaz a tartalom, mint az els MIME blokkban, csak ez HTML kd. Azaz tele van formz utastssal - de a tartalom az ugyanaz a rvid mondat. Viszont rdemes elmeditlni a kdolson. Ez mr nem 7bit, ugyanis a HTML kdban vannak tiltott karakterek is. Ekkor jn be a kpbe a quoted printable kdols. Ez a kvetkezkppen mkdik. Fogja a 8 bites kdot s egy hrom karakterbl ll sorozattal vltja ki. Az els karakter mindig az egyenlsgjel, a msik kett pedig a karakter ASCII kdja, hexadecimlis formban.

~ 54 ~

AZ ALKALMAZS RTEG WEBES PROTOKOLLJAI

Rgtn gy kezddik a MIME blokk. Ltunk benne quoted printable kdot? Persze, ott van az '=3D' sorozat. Kdoljuk vissza. 3D -> 61; az us-ascii tbla 61-es kdja pedig pont az '=', azaz az egyenlsgjel kdja.http://en.wikipedia.org/wiki/US-ASCII#ASCII_printable_characters

Hopp. Az egyenlsgjellel jelezzk, hogy a berakott illeglis karakter az egyenlsgjel? Ez csak els rnzsre holdat nyalogat baromsg. Ugyanis ha a quoted printable kdolsnl az egyenlsgjel az egy foglalt vezrlkarakter, akkor tnyleg illeglis a hasznlata. A szmtgp nem tudja intuitven eldnteni, hogy a szvegben elfordul egyenlsgjel most ppen vezrlkarakter-e vagy sem. Nzznk egy egyrtelmbb pldt. rtam egy msik levelet.

2.31. BRA T ESZTLEVL

Nzzk meg a capture fjlt.

~ 55 ~

A TCP/IP PROTOKOLL MKDSE

2.32. BRA RVZTR TKRFRGP

Milyen protokollnak is rzkeli a Wireshark a csomagot? IMF. Aranyos. Brmennyire is hlyn hangzik, de a kk cskkal jelzett szvegrszlet az a bizonyos 'rvztr tkrfrgp' karaktersorozat. Nzzk meg a MIME blokkot.------=_NextPart_000_000D_01CA93C6.65716B60 Content-Type: text/plain; charset="iso-8859-2" Content-Transfer-Encoding: quoted-printable Itt indul a szoveg: --=E1rv=EDzt=FBr=F5 t=FCk=F6rf=FAr=F3g=E9p ---Itt =E9r v=E9get

Az iso-8859-2 kdtbla mr szigoran 8 bites. Vannak benne 128-nl magasabb sorszm ASCII karakterek is. Itt mr nem csak a tiltott egyenlsgjel jelenik meg, hanem olyan karakterek is, melyek nem tartoznak a printable csoportba.

~ 56 ~

AZ ALKALMAZS RTEG WEBES PROTOKOLLJAI Szrprbaszeren kdoljunk vissza nhny karaktert.2.11. TBLZAT Quoted printable kd =E1 =ED =FB =F5

Decimlis rtk 225 237 251 245

Az iso-8859-2 kdtblzat kdja

http://en.wikipedia.org/wiki/ISO/IEC_8859-2

Ok. Ezzel a mdszerrel elrtk, hogy - igaz, egy karakter helyett hrommal - de le tudjuk rni az sszes karaktertbla sszes elemt. De mi van akkor, ha csatolst rakunk a levlbe? MIME blokk:------=_NextPart_000_0070_01CAB73D.4D8BB510 Content-Type: text/plain; name="teszt.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="teszt.txt" VGV0c3r1bGVnZXMgdHh0IGbhamwuDQoNCsFydu16dPty9SB0/Gv2cmb6cvNn6XAu ------=_NextPart_000_0070_01CAB73D.4D8BB510--

Szemmel lthatan bejttek jabb vltozk a MIME blokk fejlcbe. A leginkbb szembetn, hogy egy jabb kdolssal tallkozunk: ez a base64. Volt mr rla sz a knyvben, jl le is dorongoltuk. Ez persze nem azt jelenti, hogy nem szeretjk pusztn csak arrl van sz, hogy mindenkit a maga helyn szeretnk. A base64 kdols tkletes arra, hogy brmilyen 8 bites rtkbl 7 bites rtket lltson el de borzasztan bna, ha arrl van sz, hogy egy karaktersorozatot titkostsunk. Ezzel el is rultam, mire hasznlja a MIME a base64 kdolst: arra, hogy mindent, ami csatolt fjl, gyorsan bjt szinten lekdol 7 bitesre, majd gy mr bele tudja illeszteni - MIME blokkokon keresztl - az SMTP DATA mezbe. Magrl a kdolsrl nem szndkozom sokat rni. Nagyjbl arrl van sz, hogy 3 bjtos blokkokat ngyfel szednk (ekkor egy egysg hat bites lesz), ezeknek ugye 64 klnbz rtke lehet. Minden rtkhez egy karaktert rendelnk az n. Base64 ABC-bl. (Ez egy 64 elem karaktertblzat, szigoran semleges printable karakterekbl.) A felhgulsi arny 1,37, azaz a 8 bites kdols fjl 1,37-szer lesz nagyobb base64 kdols utn. (Plusz 814 bjt fejlc.)

~ 57 ~

A TCP/IP PROTOKOLL MKDSEhttp://en.wikipedia.org/wiki/Base64

Gyors ellenrzs.

2.33. BRA S ZVEGES FJL VISSZAFEJTSE

Habr a visszafejts nem sikerlt tkletesen, de ez mr a weblap hibja. Nem ismeri a magyar karaktereket. mlesztve mg nhny csatols. JPG:------=_NextPart_000_007F_01CAB73E.6761D2C0 Content-Type: image/jpeg; name="feed.jpg" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="feed.jpg" /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcU FhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgo KCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAEAAQADASIA

~ 58 ~

AZ ALKALMAZS RTEG WEBES PROTOKOLLJAI MP3------=_NextPart_000_0091_01CAB73F.CEC85AA0 Content-Type: audio/mpeg; name="cohen-mbx.mp3" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="cohen-mbx.mp3" AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

(A fjl maga rengeteg space karakterrel kezddik. Amiatt van a sok A karakter.) XLS:------=_NextPart_000_008B_01CAB73F.3644C660 Content-Type: application/vnd.ms-excel; name="abc.xls" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="abc.xls" 0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAA EAAAHAAAAAEAAAD+////AAAAAAAAAAD///////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////

(A vnd a vendor rvidtse.) EXE:------=_NextPart_000_009D_01CAB740.1CA6BDC0 Content-Type: application/x-msdownload; name="myuninst.exe" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="myuninst.exe" TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAA+AAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1v ZGUuDQ0KJAAAAAAAAAA1L+4CcU6AUXFOgFFxToBRClKMUXROgFHyUo5Rck6AUR5Ri1FzToBRHlGK

Nem beszltnk mg a levelek fejlcben tallhat czifra karakterekrl. Nzzk meg pldul ezt:From: =?iso-8859-2?Q?Petr=E9nyi_J=F3zsef?=

Ltjuk rajta, hogy hasonlt a quoted-printable kdolsra... de azrt nem teljesen az. Itt ugyanis magba az rtkbe kell elrejtennk, hogy melyik ASCII tblt hasznltuk, s milyen kdolst. A fenti sorban pldul az iso-8859-2 tblt s a Q, azaz quotedprintable kdolst. Az egyes mezket a '?' karakter vlasztja el.

~ 59 ~

A TCP/IP PROTOKOLL MKDSE (Vannak mg megktsek, a space helyett pl. '_' karakter lp be, az rtkek hossza sem lehet vgtelen, 75 karakteres blokkokba trdelnk - de ennyire mlyen foglalkozzanak vele a kderek.) Azaz sszefoglalva: a MIME f feladata, hogy brhol, ahol a levlben 7 bitesnl bonyolultabb karaktertipus jelenik meg, azt t tudja kdolni 7 bitesre. (Hogy ne kelljen hozznylni az SMTP szerverekhez.) Ehhez kt kdolst hasznl, mr amikor egyltaln szksge van r: quoted printable base64 Emellett megteszi azt a szvessget is, hogy ha egy konkrt binris kupacot kell a levlbe belerakni, akkor a content-type vltozban be is kategorizlja azt. Ez a kategorizls meglehetsen rgztett. Imhol a f kategrik.2.12. TBLZAT MIME tipus Application Audio Example Image Message Model Multipart Text Video

A f kategrikon bell aztn kismilli altipus ltezik.Content types and subtypes: http://www.iana.org/assignments/media-types/

Ez az egsz MIME kategorizls vgl annyira sikeres lett, hogy tvettk a HTTP-be is. Hiszen pucrns kpet ne csak emailben lehessen mr kldeni, valahogyan a webrl val letltsnek is mkdnie kell. (Br itt a 7/8 bit problma nem jtszik.)http://en.wikipedia.org/wiki/Internet_media_type

Huh. Azt hiszem, a body rszt ezzel ki is vgeztk. Nzzk akkor a fejlceket. Minden klnsebb rtests helyett:

~ 60 ~

AZ ALKALMAZS RTEG WEBES PROTOKOLLJAI

2.13. TBLZAT Fejlc neve A-IM Accept Accept-Additions Accept-Charset Accept-Encoding Accept-Features Accept-Language Accept-Language Accept-Patch Accept-Ranges Age Allow Also-Control Alternate-Recipient Alternates Apply-To-Redirect-Ref Approved Archive Archived-At Archived-At Article-Names Article-Updates Authentication-Info Authentication-Results Authorization Auto-Submitted Autoforwarded Autosubmitted Bcc C-Ext C-Man C-Opt C-PEP C-PEP-Info Cache-Control Cc Comments Comments Connection Content-Alternative Content-Base Content-Base Content-Description Content-Disposition Content-Disposition Content-Duration Content-Encoding Content-features Content-ID Content-ID Content-Identifier Content-Language Content-Language Content-Length Content-Location Content-Location Content-MD5 Content-MD5 Content-Range

Protokoll http http http http http http http mail http http http http netnews mail http http netnews netnews mail netnews netnews netnews http mail http mail mail mail mail http http http http http http mail mail netnews http MIME http MIME MIME http MIME MIME http MIME http MIME mail http MIME http http MIME http MIME http

Sttusz

obsoleted

standard standard standard standard obsoleted obsoleted standard standard

standard

standard standard standard

~ 61 ~

A TCP/IP PROTOKOLL MKDSEContent-Return Content-Script-Type Content-Style-Type Content-Transfer-Encoding Content-Type Content-Type Content-Version Control Conversion Conversion-With-Loss Cookie Cookie2 DASL DAV DL-Expansion-History Date Date Date Date-Received Default-Style Deferred-Delivery Delivery-Date Delta-Base Depth Derived-From Destination Differential-ID Digest Discarded-X400-IPMS-Extensions Discarded-X400-MTS-Extensions Disclose-Recipients Disposition-Notification-Options Disposition-Notification-To Distribution DKIM-Signature Downgraded-Bcc Downgraded-Cc Downgraded-Disposition-Notification-To Downgraded-From Downgraded-Mail-From Downgraded-Rcpt-To Downgraded-Reply-To Downgraded-Resent-Bcc Downgraded-Resent-Cc Downgraded-Resent-From Downgraded-Resent-Reply-To Downgraded-Resent-Sender Downgraded-Resent-To Downgraded-Return-Path Downgraded-Sender Downgraded-To Encoding Encrypted ETag Expect Expires Expires Expires Expiry-Date Ext Followup-To From From mail http http MIME http MIME http netnews mail mail http http http http mail http mail netnews netnews http mail mail http http http http http http mail mail mail mail mail netnews mail mail mail mail mail mail mail mail mail mail mail mail mail mail mail mail mail mail mail http http http mail netnews mail http netnews http mail

standard

standard

standard standard obsoleted

standard standard experimental experimental experimental experimental experimental experimental experimental experimental experimental experimental experimental experimental experimental experimental experimental experimental

standard

standard standard

~ 62 ~

AZ ALKALMAZS RTEG WEBES PROTOKOLLJAIFrom Generate-Delivery-Report GetProfile Host IM If If-Match If-Modified-Since If-None-Match If-Range If-Unmodified-Since Importance In-Reply-To Incomplete-Copy Injection-Date Injection-Info Keep-Alive Keywords Keywords Label Language Last-Modified Latest-Delivery-Time Lines Link List-Archive List-Help List-ID List-Owner List-Post List-Subscribe List-Unsubscribe Location Lock-Token Man Max-Forwards Message-Context Message-ID Message-ID Message-Type Meter MIME-Version MIME-Version Negotiate Newsgroups NNTP-Posting-Date NNTP-Posting-Host Obsoletes Opt Ordering-Type Organization Original-Encoded-Information-Types Original-From Original-Message-ID Original-Recipient Original-Sender Originator-Return-Address Original-Subject Overwrite P3P Path PEP PICS-Label netnews mail http http http http http http http http http mail mail mail netnews netnews http mail netnews http mail http mail netnews http mail mail mail mail mail mail mail http http http http mail mail netnews mail http http MIME http netnews netnews netnews mail http http netnews mail mail mail mail netnews mail mail http http netnews http http standard

standard standard standard standard standard

deprecated

standard standard

standard obsoleted obsoleted

standard standard standard standard standard standard

standard

~ 63 ~

A TCP/IP PROTOKOLL MKDSEPICS-Label Pep-Info Position Posting-Version Pragma Prevent-NonDelivery-Report Priority ProfileObject Protocol Protocol-Info Protocol-Query Protocol-Request Proxy-Authenticate Proxy-Authentication-Info Proxy-Authorization Proxy-Features Proxy-Instruction Public Range Received Received-SPF Redirect-Ref References References Referer Relay-Version Reply-By Reply-To Reply-To Resent-Bcc Resent-Cc Resent-Date Resent-From Resent-Message-ID Resent-Reply-To Resent-Sender Resent-To Retry-After Return-Path Safe Security-Scheme See-Also Sender Sender Sensitivity Server Set-Cookie Set-Cookie2 SetProfile SLUG SoapAction Solicitation Status-URI Subject Subject Summary Supersedes Supersedes Surrogate-Capability Surrogate-Control TCN TE Timeout mail http http netnews http mail mail http http http http http http http http http http http http mail mail http mail netnews http netnews mail mail netnews mail mail mail mail mail mail mail mail http mail http http netnews mail netnews mail http http http http http http mail http mail netnews netnews mail netnews http http http http http

standard obsoleted

standard

standard standard obsoleted standard standard standard standard standard standard standard obsoleted standard standard standard

obsoleted standard standard

standard

standard standard standard standard

~ 64 ~

AZ ALKALMAZS RTEG WEBES PROTOKOLLJAITo Trailer Transfer-Encoding URI Upgrade User-Agent User-Agent Variant-Vary Vary VBR-Info Via WWW-Authenticate Want-Digest Warning X400-Content-Identifier X400-Content-Return X400-Content-Type X400-MTS-Identifier X400-Originator X400-Received X400-Recipients X400-Trace Xref mail http http http http http netnews http http mail http http http http mail mail mail mail mail mail mail mail netnews standard

standard

standard

standard

Forrs: http://www.iana.org/assignments/message-headers/perm-headers.html

Alrom, ez kiss mr sok volt. De ennyi van. Biztos vagyok benne, hogy a legtbbel nem fogsz tallkozni. n magam is sokat tprengtem, hogy rdemes-e ekkora tblzatokat belerakni a knyvbe, amikor hivatkozni is lehet a neten lv anyagokra. Vgl gy dntttem, jobb az, ha egy knyvben ott van minden. Ha kell, akkor nem leszel rknyszertve, hogy egy csom bngszablak legyen nyitva olvass kzben, illetve ha kinyomtatod, akkor elg csak magt a knyvet. Ha meg nem kell, akkor legfeljebb tlapozod. Lehet, most fogsz megkvezni, de a kvetkezkben azokrl a header mezkrl fogok beszlni, amelyek _nincsenek_ benne a fenti tblzatban. Nem gondoltad volna, mi? Akkora ez a tblzat, hogy ebben elmletileg a teljes vilgegyetemnek bele kellett volna frnie. De van egy olyan fejlc kategria, mely nem szabvnyos ugyan - ezrt nincs benne a tblzatban - mgis nagyon elterjedt: ez a borzaszt npes X-header csald. Az X-headereknek ugyanis nincs defincijuk. X-headert brki olyat csinl magnak, amilyet csak akar.

~ 65 ~

A TCP/IP PROTOKOLL MKDSE Nzd meg pldul az X-Face header tipust. Itt van nhny kpviselje:

X-Face

About... The Cheshire Cat

ASCII-codeX-Face: ,l9N8F.A~!GX.Yz#yYAZtvpk7aF(an!BVo3%Xb,`Q]*$Oh'RtXB 5n4iisiGw8l3nY)lnh(G]9[ud;QeX:W}'r)1F9gEQD4o::mBU9J ZAXI\y_0t$P#*/o|!TSG9OtqY+`NX>cpjf?w~w1RY_}M5731El5 2pUnI}OaRi~PA+n[fiO>=TS|2h~f%c9zy]*i2LajTWLJ_X^1No" P#D_(t*t-5n]wW1

Dilbert

X-Face: Xw|'+}IE3RcO/4u;MCw_rVT6OB