menu
shopping_cart
0
KOSÁR

5. lecke

Elektronikus üzenetküldés: E-mail

lightbulb_outlineAz e-mail küldés működése, protokollok, DNS névfeloldás, üzenetmezők...

Az e-mail, az elektronikus levelezés egy üzenetküldő rendszer, ami az internet segítségével továbbítja az üzeneteket. Az email üzenetek küldése számítógép hálózatokon kereszül történik. A címzettet és a feladót is egyedi felhasználónevükhöz tartozó postafiók azonosítja.

Hogyan fejlődött ki az e-mail?

Az email az 1960-as években fejlődött ki, szoros kapcsolatban az ARPANETtel, ami az internet elődjének tekinthető számítógépes hálózat. Először amerikai egyetemek, mint például az MIT (Massachusetts Institute of Technology) építettek ki belső hálózati kommunikációjukat úgy, hogy egy nagyszámítógép (mainframe), a központ tárolta az összes üzenetet, amihez a felhasználók kapcsolódhattak apróbb gépeken keresztül és nézhették meg a részükre szóló üzeneteket. A számítógépek csillag topológiába rendeződtek, tehát volt egy központi kiszolgáló szerver és ahhoz kapcsódtak kliensek.

A kommunikáció először csak lokális volt, tehát nem történt üzenetküldés egymástól földrajzilag távol eső helyekre -- később azonban az egyetemek összekapcsolták a levelezőrendszereket kialakítva ezzel egy globális hálózatot.

Az ARPANET, a világ első számítógéphálózata az email kommunikációval párhuzamosan fejlődött és egymásnak járták ki az utat: ARPANET nélkül nem lett volna e-mail, e-mail nélkül nem lett volna ARPANET.

Az ARPANET a DARPA (Defense Advanced Research Projects Agency) az Egyesült Államok fejlett védelmi és kutatási projektek ügynökségének fejlesztése. Az ARPANET is számítógépek összekapcsolásából jött létre, hivatalok és kutatólaborok kapcsolódtak össze egy hálózatba a hivatali adattovábbítás meggyorsítása és a nagyobb össz-számítási teljesítmény elérése érdekében. A rendszer alapja a ma is használt TCP/IP protokoll volt, és úgy helyezték el földrajzilag a számítógépeket és vezetékeket, hogy egy esetleges atomtámadásnak is ellenálljon; a hálózat néhány gép elvesztése esetén is működőképes maradjon. Az ilyen decentralizált, elosztott rendszer létrehozására az akkori hidegháborús fenyegetések miat volt szükség.

A képen látható az ARPANET hálózati térképe. Próbáltak minél több hurkot helyezni a topológiába, egy szerverhez több utvonalon is el lehet jutni. A rendszer műholdas kapcsolatot is tartalmaz: Hawaii-ra, és Európába a képen hullámos vonallal jelzett útvonal műdolhon keresztül fut.

A korai email protokollja és működése

Az első e-mailek tartalma a "QWERTYUIOP" és a "ASDFGHJKL" karaktersorozat volt. A mérnökök ezzel a szöveg hibamentes átvitelét tesztelték. A küldés UUCP protokollon keresztül történt.

Az informatikában a protokoll egy egyezmény, vagy szabvány, amely leírja, hogy egy adott rendszer hogyan működjön. Lényegében egy szabálygyűjtemény amit a nagy nemzetközi szabványhivatalok adnak ki.

Ilyen szabványhivatal például:

ITU - International Telecommunication Union
IETF - Internet Engineering Task Force
ISO - International Organization for Standardization

A protokollok nagyon fontos elemei a kommunikációnak, mert csak így biztosítható az adatintegritás. Ha nem lennének ilyen szabálygyűjtemények akkor lehet, hogy egy elküldött adatsort a küldő máshogy értelmezne, mint a fogadó.

Az elektronikus levelezés kifejlesztésének korában, az 1970-es években a legelterjedtebb operációs rendszer a Unix volt, aminek egyik szoftverét a Unix-To-Unix-Copy-t felhasználták az első email küldéséhez, ami lényegében szöveges fájlokat másolt távoli számítógépekre - ezért lett az első e-mail protokoll neve UUCP. Ma már az üzenetküldés folyamata sokkal bonyolultabb: felhasználói fiókok vannak, titkosítás, spamszűrés, ezért nem használják az UUCP-t.

Az első email-ek címzése hosszú volt. Meg kellett adni a teljes elérési útvonalat, amin az üzenet végighaladt. A címzésben felkiáltójelek is szerepeltek amik a számítógépek közötti ugrásokat jelölték. Az ilyen ugrásokat a szakzsargonban "hop"-nak, az egész címzést pedig "bang path"-nak nevezik utalva egy "ösvényre", amin az üzenet végighalad. Az ilyen hosszú címekre azért volt szükség, mert nem volt olyan központi rendszer, ami nyilvántartotta volna a hálózat kinézetét, és hogy pontosan mely útvonalon kell küldeni az üzeneteket. Ezt régebben manuálisan kellett megadni -- ma már a DNS rendszer rendelkezésre áll, erről a Hálózatok című tételben lesz szó.

Ha a DARCOM nevű gépről a MIT6 gépre akartunk üzenetet küldeni egy felhasználónak, akkor a cím így nézett ki:

belvoir!cmu!radc!lincoln!mit44!mit6!felhasználó

A mai e-mail működése

A mai címek lényegesen rövidebbek.

valaki@valahol.hu

Az email üzenetek két részből állnak. A kukac jel (@) előtt a felhasználó van akinek szól az üzenet, a kukac jel után a szervergép neve ami tárolja az üzeneteket. (A kukac jelet at-nek ejtjük és először egy 15. századi római szállítólevélen használták annak jelölésére kinek a részére kell küldeni a szállítmányt. Már akkor is "csigajellel" ábrázolták, és a latin ad szót jelölte aminek jelentése -nál -nél.)

Hogyan talál az e-mail a számítógépünkről egy távoli számítógépbe? A DNS segítségével. A DNS a Doman Name System rövidítése. Ez a rendszer végzi a webcímek IP címmé fordítását. Például:

A webcím: megabyte.hu. A DNS névfeloldást végez és meghatározza az IP címet: 207.154.233.0

A DNS rendszernek emlegetett dolog egy hierarchikus számítógéprendszer, ami a webcím-IPcím átalakítást végzi. Található benne 13 darab nagy teljesítményű számítógép a világ különböző pontjain elhelyezve, ami kiemelten fontos, ezek az úgynevezett root DNS szerverek, először ők próbálják meg a webcímet IP címmé fordítani, de ha ez nem megy, ők tudni fogják, hogy melyik másik DNS szerveren kell keresni a bejegyzést. A 13 szervert az ABC karaktereiről nevezték el, és pontos címüket minden operációs rendszer ismeri, hisz ezek nélkül a böngészőbe beírt webcímek semmit nem jelentenének, csak hangzatos kulcsszavak lennének.

Minden számítógépnek van IP címe, ez azonosítja őt az internetes kommunikációban, viszont nem mindegyikhez tartozik webcím is. A te IP címedet például a http://fos.hu/?funkcio=ip címen kérheted le, ha csak nincs saját magad által üzemeltettett weboldalad, akkor nagy valószínűséggel ehhez nem tartozik webcím. Amikor e-mail küldesz te egy az ember számára könnyen megjegyezhető karakterláncot írsz le. Ahhoz, hogy az üzenet eljusson a címzetthez, tudni kell azonosítani pontosan a címzett üzeneteit feldolgozó számítógépet az IP címével. Na hát ekkor is a webcím → IP cím feloldást a nagyszerű DNS rendszer végzi.

Az e-mail küldés lépései:

  1. Megírod az e-mail üzenetet a számítógépeden vagy a telefonodon egy kliensprogramban. A kliensprogram lehet felhasználói program, mint például az Outlook üzenetküldő, vagy a Mozilla Thinderbird program, vagy okostelefonos alkalmazás pl a Gmail alkalmazása. Sőt lehet webes felületű kliens, mint például gmail.com. Az üzenetet megcímzed, pédlául valaki@valahol.hu. A kliensprogram csak ideiglenesen kezeli a leveleidet.

  2. A kliens kapcsolódik az üzenetkiszolgáló szerverhez (MTA -- Mail Transfer Agent), ami ténylegesen, hosszú távon tárolja a leveleidet és odaadja neki ezt az új üzenetet.

  3. Az üzenetkezelő szerver elvégzi a névfeloldást. Két részre bontja az email címet, ahogyan ezt te is teszed fejben: A kukac jel előtti rész a címzett postafiókja, a kukac jel utáni rész, hogy melyik szerveren található a címzett postaládája

  4. Az MTA a DNS rendszer segítségével lekéri ennek a szervernek az IP címét.

  5. Elküldi ide a levelet.

  6. Ha megérkezett a címzett MTA-jára az üzenet, az belehelyezi a címzett felhasználónak a postaládájába, ahonnét az ipse szintén egy kliensprogrammal tudja kezelni a leveleket, akár csak a feladó.

A levelek küldésének meghatározott szabályrendszere van, ez az SMTP -- Simple Mail Transfer protokoll. Ez az az közös nyelv, amit az MTA-k egymás között használnak.

A levelek fogadásának protokollja a POP vagy az IMAP.

  • POP = Post Office Protokol, a 90-es években volt népszerű, amikor csak időszakosan jött létre betárcsázós internetkapcsolat. A levelek kezelése a kliens gépén történik, letöltődnek oda, ezután az internetkapcsolatot meg lehet szüntetni.

  • IMAP = Internet Mesage Access Protocol, modern levélkezelési módszer. Folyamatos adatkapcsolat szükséges hozzá, a levelek kezelése a szerveren történik, a felhasználó kapcsolódik és minden változtatás azonnal életbe lép.

Ezek a rövidítések sajnos nem tölteléknek vannak itt, a fránya emelt szintű érettségin kérdezik őket, hogy melyiknek mi a jellemzője :(

Az e-mail üzenet tartalma

Az e-mail üzenet egy egyszerű szöveges fájl. Az üzeneteknek van forráskódja (hasonlóan, mint egy számítógépes programnak -- bár az üzeneteket nem kell lefordítani). A forrást egyszerűen email forrásának nevezünk. Ezt dolgozzák fel az e-mail küldő programok és jelenítik meg a nekünk releváns információkat szép grafikus felületen. Egy email forrás olyasmi, mint egy felsorolás. Valami elnevezést követ valami érték. Az e-mail forrás tartalmazza a következő mezőket:

  • from -- kitől

  • to -- kinek

  • reply-to -- válaszcím, ami eltérhet ami eltérhet a from-tól

  • subject -- az üzenet tárgya

  • cc -- carbon copy, kinek menjen másolatpéldány az üzenetről. A carbon copy megnevezés az email fejlesztésének korában elterjedt másolási módszer angol neve volt: indigó

  • bcc -- blind carbon copy, kinek menjen titkos másolat. Míg a sima cc-nél az összes címzett látja egymást, a bcc-nél nem látják egymás címét.

  • date -- feladási dátum

  • message id -- egyedi üzenetazonosító. Ez a hálózatban globálisan egyedi üzenetazonosító. Nincs két egyforma e-mail message id. Képzése a küldő szerverének nevéből + a dátum + az időből történik.

  • data -- adatrész, az üzenet legfontosabb része: szöveg és csatolmányok

  • content-type -- ha az üzenet nem csak szöveget tartalaz, hanem speciális csatolmányokat Ez a mező azonosítja a csatolmányok fájltípusát

  • spam osztályozás -- modernebb kliensen osztályozzák az üzeneteket hasznosság alapján. Ezt a felhasználó szokásainak elemzésével teszik, ha egy személlyel sokat levelezünk, akkor az kevésbé veszélyes, mint egy olyan akivel keveset -- illetve ha egy feladótól kapott üzenetet kevés ideig olvasunk (pár másodperc) és utána letöröljük azt, akkor rosszabb osztályozást kap, mint egy olyan amire válaszolunk is. Fejlett elemzési technológiák léteznek és sok szolgáltató saját spam adatbázist gyűjt, amibe ha egyszer bekerül egy mailcím nagyon nehézen tud csak belőle kijönni.

Az email forrásának megtekintését több kliens támogatja, a népszerű Gmail levelezőnél például itt lehet lekérni:

Lekérés után hasonló kép fogad,mint amit itt látsz. Az üzenet felépítése és a mezők sorrendje eltérhet, de a szabvány mezők egy része mindenképp megtalálható:

Ha egy üzenet nem csak szöveget tartalmaz, hanem csatolmányokat is, például médiafájlokat, akkor ezeket szöveggé kell alakítani, mert az email üzenet szövegesen tárolódik/továbbítódik! A bináris fájlokat szöveggé alakítani a base64 nevű kódolással lehet, ami bármilyen bitsorozatból ASCII szöveget tud előállítani.

Az email üzenet küldése csatolmányok esetén úgy történik, hogy a feladó oldalon a teljes üzenet lekódolódik base64 kódolással. Ekkor tölti ki a kliens a Content Type tartalomazonosító mezőt, ami a szöveggé kódolt csatolt fájlok típus(ai)t tartalmaza felsorolva -- hogy a fogadó oldalon vissza lehessen kódolni őket a megfelelő formátumba. az üzenet elküldésre kerül, majd a fogadó oldalon kikódolja az ottani email kliens.

Íme egy üzenet forrása, aminek van csatolmánya:

A tartalomazonosítók ezek lehetnek például:

Egyéb fogalmak

SPAM, kéretlen üzenet, reklámüzenet. A 90-as években, amikor az e-mail elkezdett terjedni, angolszász nyelvterületen jelen volt az élelmiszerpiacot elárasztó SPAM feliratú löncshúskonzerv. Erről a konzervről lett elnevezve a kéretlen elektronikus üzenet. A SPAM nevű húskonzervet nagy tömegben gyártották és a köznyelvben összetársult ez az elnevezés a "kéretlen valami" fogalmával -- ami aztán átragadt a kéretlen e-mail üzenetekre is.

Levelezőlista: Sok ember egybegyűlik és levelezőlistát alkot, témákat vitat meg egymás üzeneteire válaszolva. Ehhez speciális üzenetkezelő szerver kell, mert ilyenkor van 1 darab globális e-mail cím, a levelezőlista fő címe amire, ha bármelyik levlista tag küld egy üzenetet, akkor azt a többi tag megkapja.

Titkosítás: Az email kommunikációt lehet titkosítani, SSL vagy TLS protokollok alkalmazásával, amit sok kliens felkínál. (A titkosításról részletesebben szó lesz: Titkosítás tétel)

Rossz dolgok:

  • E-mailben terjedhetnek vírusok csatolt fájlként

  • E-mailben terjedhetnek átverések vagy adathalász üzenetek, amik kényes adatokat próbálnak megszerezni

Érdekesség: E-mail bombát is elő lehet állítani. Az e-mail bomba milliónyi üzenetet jelent, ami eltömíti az áldozat postafiókját. A támadás a modern üzenetkezelő rendszerek fejlett szolgáltatásait használja ki. Az e-mail bomba előállításához szükséges 2 postafiók.

  • Az 1. postafiókot beállítjuk úgy, hogy továbbítsa egy 2. postafiókba a címet

  • A 2. postafiókot beállítjuk úgy, hogy a levelet továbbítsa az áldozat postafiókjába és vissza is az 1. postafiókba.

  • Ha a kialakított rendszerbe küldünk egy levelet az 1. postafiókba, akkor a 2. és 1. fiók között körözni fog ez a levél, és közben mindig kiküldődik egy másolat az áldozat részére is.

Az e-mail bombát (sajnos? :D) a mai MTA-k kiszűrik az üzenetazonosító (Message ID) alapján.