Tietoliikenteen perusteet

Samankaltaiset tiedostot
Push- ja pull-protokollat

Sähköpostisanoman muoto. Push- ja pull-protokollat. työntöprotokolla (PUSH) Yleisiä sanoman otsakekenttiä kentät erotettu rivinvaihdolla

C:. S: 250 Message accepted for delivery C: QUIT S: 221 princeton.edu closing connection

Lähettävä postipalvelin Vastaanottava postipalvelin

Käyttäjäliitäntä (user agent) sanomien kirjoittaminen, lukeminen ja lähettäminen

2.2. Sähköposti. SMTP (Simple Mail Transfer Protocol) Postipalvelimet käyttävät SMTPprotokollaa. TCP-yhteys on pysyvä

Tietoliikenteen perusteet

Luento 4: Sovelluskerros nimipalvelu (DNS), tiedostonsiirto sähköposti, vertaisverkot (P2P)

Tietoliikenteen perusteet

URL (Uniform Resource Locator) 2.1. WWW. Muita URLeja: HTTP-asiakas. HTTP (Hypertext Transfer Protocol)

2. Sovelluksia ja sovellusprotokollia

2.1. WWW. WWW on joukko yhteentoimivia palvelimia ja asiakkaita, jotka puhuvat samaa HTTP-kieltä (-protokollaa) graafinen asiakasohjelma selain

Sovellusprotokolla on vain osa hajautettua sovellusta Esim. WWW

Sovellusprotokolla on vain osa hajautettua sovellusta Esim. WWW

S Tietoliikennetekniikan perusteet. Pakettikytkentäiset verkot. Helsinki University of Technology Networking Laboratory

Sovelluksia ja sovellusprotokollia Prosessien etäkommunikointi 2.1. WWW (World Wide Web)

Tietoliikenne II (2 ov)

Tietoliikenteen perusteet SOVELLUSKERROS

2. Sovelluksia ja sovellusprotokollia

Tietoliikenteen perusteet SOVELLUSKERROS

Käyttäjänedustaja (User Agent) Internetin kuljetusprotokollat. Sovellus ja kuljetuspalvelun laatu

Käyttäjänedustaja (User Agent) Internetin kuljetusprotokollat. Sovellus ja kuljetuspalvelun laatu

Tietoliikenteen perusteet SOVELLUSKERROS

Verkkosovellusten periaatteet

2. Sovelluksia ja sovellusprotokollia

2. Sovelluksia ja sovellusprotokollia

2. Sovelluksia ja sovellusprotokollia

ELEC-C7241 Tietokoneverkot Sovelluskerros

Tietoliikenteen perusteet. VERKKOSOVELLUKSIA SOVELLUSPROTOKOLLIA Kurose, Ross: Ch 2

2. Sovelluksia ja sovellusprotokollia

Tietoliikenteen perusteet SOVELLUSKERROS

Tietoliikenteen perusteet SOVELLUSKERROS

Tietoliikenne II (2 ov)

Verkkosovellusten periaatteet

Verkkosovellusten periaatteet

OSI ja Protokollapino

2. Sovelluksia ja sovellusprotokollia

ELEC-C7241 Tietokoneverkot Sovelluskerros

Chapter 2 Application Layer

Tekninen kuvaus Aineistosiirrot Interaktiiviset yhteydet iftp-yhteydet

ICMP-sanomia. 3. IP-kerroksen muita protokollia ja mekanismeja ICMP (Internet Control Message Protocol)

3. IP-kerroksen muita protokollia ja

Verkkosovellusten periaatteet

Salausmenetelmät (ei käsitellä tällä kurssilla)

3. Kuljetuskerros 3.1. Kuljetuspalvelu

IHTE 1900 Seittiviestintä (syksy 2007) VERKKOTEKNIIKKAA. Mikä on protokolla, IP osoite, nimipalvelu jne ja mihin näitä tarvitaan?

TCP/IP-protokollat ja DNS

TeleWell TW-EA711 ADSL modeemi & reititin ja palomuuri. Pikaohje

7. Sovelluksia DNS (Domain NameSystem) 7.4. Sähköposti 7.6. WWW (World Wide Web)

Sovelluskerros: Socket API, WWW, sähköposti, DNS

DNS- ja DHCPpalvelut. Linuxissa. Onni Kytönummi & Mikko Raussi

1/27/15. Sovellukset (osa 2) Sisältö: sovellusarkkitehtuurit. Lyhenteitä ja terminologiaa. Internet-protokollapino

2. Sovelluksia ja sovellusprotokollia

2. Sovelluksia ja sovellusprotokollia

Sovellusprotokolla on vain osa hajautettua sovellusta Esim. WWW

Sovelluskerros. Chapter 2 Application Layer. Sovelluskerros. Joitain verkkosovelluksia. Sovelluskerros. Verkkosovelluksen luonnista

SSH Secure Shell & SSH File Transfer

Laitteessa tulee olla ohjelmisto tai uudempi, tarvittaessa päivitä laite

Tietoliikenne II. Syksy 2005 Markku Kojo. Tietoliikenne II (2 ov,, 4 op) Page1. Markku Kojo Helsingin yliopisto Tietojenkäsittelytieteen laitos

Nimeäminen. Kari Systä. Distributed systems - principles & paradigms kirjan luku /Kari Systä OHJ-5010/Hajautettujen perusteet 1

Nimeäminen. Distributed systems - principles & paradigms kirjan luku 5. Kari Systä

Sovellukset 1: sähköposti, web, nimipalvelu

Sovellukset (osa 2) CSE-C2400 Tietokoneverkot Sanna Suoranta. Tietokoneverkot 2015

Security server v6 installation requirements

... nimipalvelija (primary) ja yksi tai useita nimeä vastaavan IP-osoitteen ja. apunimipalvelijoita (secondary) palauttaa sen kirjastorutiinille

Internet Protocol version 6. IPv6

Tietokone. Tietokone ja ylläpito. Tietokone. Tietokone. Tietokone. Tietokone

SuomiCom-sähköpostiasetukset Microsoft Outlook 2016

Security server v6 installation requirements

Käyttäjänedustaja (User Agent) Internetin kuljetusprotokollat. Sovellus ja kuljetuspalvelun laatu

Sähköpostitilin käyttöönotto

Mikä on internet, miten se toimii? Mauri Heinonen

Internet ja tietoverkot 2015 Harjoitus 5: (ISO/OSI-malli: Verkkokerros, TCP/IP-malli: internet-kerros)

Tikon Ostolaskujenkäsittely versio SP1

Kuljetus- ja sovelluskerroksen tietoturvaratkaisut. Transport Layer Security (TLS) TLS:n suojaama sähköposti

3. Kuljetuskerros 3.1. Kuljetuspalvelu

S Teletekniikan perusteet

Outlook Office 365. Tässä ohjeessa kuvataan miten sähköpostitili (IMAP) sekä Kotisivut.com Autentikoiva SMTPlisäpalvelu

Sovelluskerros. Sovelluskerros. Sovellusarkkitehtuuri. WWW ja HTTP. Asiakkaan HTTP-viestintä. Palvelimen HTTP-viestintä <#>

DNA Toimistoviestintä Microsoft - sähköposti

Netemul -ohjelma Tietojenkäsittelyn koulutusohjelma

Siltojen haitat. Yleisesti edut selvästi suuremmat kuin haitat 2/19/ Kytkin (switch) Erittäin suorituskykyisiä, moniporttisia siltoja

Turvallisuus verkkokerroksella

Turvallisuus verkkokerroksella

AH-otsake. Turvallisuus verkkokerroksella. AH-otsake. AH-otsake. ESP-otsake. IP-otsake

Tikon Ostolaskujenkäsittely versio 6.2.0

Tietoliikenteen perusteet. Langaton linkki

Tietoliikenteen perusteet. Langaton linkki

T Tietokoneverkot kertaus

2. Sovelluksia ja sovellusprotokollia

K U U L A L A A K E R I LUOTTAMUKSELLINEN 1(6)

Sovellusprotokolla on vain osa hajautettua sovellusta Esim. WWW

ATK yrittäjän työvälineenä

TELEWELL TW-EA200 MODEEMIN ASENTAMINEN SILLATTUUN SAUNALAHDEN ADSL-LIITTYMÄÄN KÄYTTÄEN USB-VÄYLÄÄ

IPv6 käyttöönoton mahdollistajat operaattorin näkemys

DNSSec. Turvallisen internetin puolesta

Directory Information Tree

ProNetti -sähköpostijärjestelmä

Tietoliikenteen perusteet: Kokeeseen tulevista asioista

Kierroksen 4 ratkaisut

Transkriptio:

Tietoliikenteen perusteet Luento 4: Sovelluskerros nimipalvelu (DNS), tiedostonsiirto, sähköposti, vertaisverkot (P2P) Syksy 2015, Timo Karvi Tietoliikenteen perusteet, syksy 2014 Tiina Niklander 16.2.2005

sanoma segmentti datagrammi kehys H l H n H n H t H t H t M M M M Lähettäjä (source) Sovellusk. Kuljetusk. Verkkok. Linkkik. Fyysinen k. Luennon sisältöä linkki fyysinen Kytkin (switch) message segment datagram frame H l Vastaanottaja (destination) H H n n t H n H t H t M M M M application transport network link physical H l H n H n H t H t M M network link physical H n H t M Reititin (router) Tietoliikenteen perusteet, syksy 2015 Timo Karvi 2

Sisältöä Verkkosovellusten periaatteet World Wide Web ja HTTP Tiedostonsiirto ja FTP Sähköposti ja SMTP, IMAP, POP3 Nimipalvelu ja DNS Vertaistoimijat (peer-to-peer) Pistoke ja sen käyttö Oppimistavoitteet: - Osaa selittää asiakaspalvelija malliin perustuvien verkkosovellusten toimintaperiaatteet -Tuntee sovellusprotokollien syntaksia ja semantiikkaa - Osaa selittää www:n ja sähköpostin toimintaideat - Osaa kuvata nimipalvelun toiminnan Tietoliikenteen perusteet, syksy 2015 Timo Karvi 3

INTERNETIN NIMIPALVELU: DNS Tietoliikenteen perusteet, syksy 2015 Timo Karvi 4

Domain Name System (DNS) Hakemistopalvelu ja sovelluskerroksen protokolla Isäntäkoneet ja nimipalvelimet käyttävät Käyttää UDP-kuljetuspalvelua DNS-sanomien kuljettamiseen Hajautettu, hierarkkinen tietokanta (hakemisto) Toteutettu useiden replikoitujen nimipalvelimien yhteistyönä skaalautuvuus, kuormantasaus, ylläpito, vikasietoisuus,.. Jos oma nimipalvelija ei tunne, se kysyy muilta. Nimien muuttaminen IPosoitteiksi (ja päinvastoin) POSIX: gethostbyname gethostbyname (hydra.cs.helsinki.fi) 218.214.4.29 Kone = hydra =29, verkko= cs.helsinki.fi = 218.214.4.0 Sallii aliasnimet, palvelijan replikoinnin/toisintamisen Esim. WWW.cs.helsinki.fi ja cs.helsinki.fi ovat aliasnimiä Esim. www-palvelijaan voi liittyä useita IP-osoitteita, rotaatio Tietoliikenteen perusteet, syksy 2015 Timo Karvi 5

DNS historiaa Ennen 1983 1983 Jokaisessa verkon koneessa HOSTS.TXT tiedosto, jossa verkkotunniste ja sitä vastaava IP-osoite Tiedot haettiin SRI-yrityksen yhdeltä koneelta HOSTS.TXT edelleen käytössä (staattisia asetuksia) DNS käyttöönotto Berkeley BIND toteutus Myöhempiä laajennuksia: päivitys, replikointi, kansainväliset merkistöt, tietoturva Tietoliikenteen perusteet, syksy 2015 Timo Karvi 6

Hajautettu, hierarkkinen tietokanta Standarditoteutus: Unix + BIND-ohjelma Root DNS Servers Fig 2.19 [KR12] com DNS servers org DNS servers edu DNS servers yahoo.com DNS servers amazon.com DNS servers pbs.org DNS servers poly.edu DNS servers umass.edu DNS servers 13 juuritason nimipalvelijaa: Replikoituja, kaikilla samat tiedot Internet Assigned Numbers Authority (IANA) Internet Corporation for Assigned Names and Numbers (ICANN) Ylätason palvelimet maa- ja yleistunnuksille (n. 265 kpl).., fi, fr, uk, edu, net, com, org,... 中国.. (Viestintävirasto myöntää fi) Autorisoidut aluepalvelimet (domain) (2-taso) Isoilla yliopistoilla ja firmoilla omansa, pienet käyttävät jonkun muun ylläpitämää aluepalvelinta Tietoliikenteen perusteet, syksy 2015 Timo Karvi 7

Juuripalvelimet (2012) c. Cogent, Herndon, VA (5 other sites) d. U Maryland College Park, MD h. ARL Aberdeen, MD j. Verisign, Dulles VA (69 other sites ) k. RIPE London (17 other sites) Fig 2.20 [KR12] i. Netnod, Stockholm (37 other sites) e. NASA Mt View, CA f. Internet Software C. Palo Alto, CA (and 48 other sites) a. Verisign, Los Angeles CA (5 other sites) b. USC-ISI Marina del Rey, CA l. ICANN Los Angeles, CA (41 other sites) g. US DoD Columbus, OH (5 other sites) Juuripalvelimet tietävät, mikä ylätason palvelin on vastuussa maa- ja yleistunnuksesta. Ylätason palvelimet tuntevat omat aluepalvelimensa. Aluepalvelimet tuntevat juuripalvelijan. Koneen oma paikallinen nimipalvelija on koneen asetustiedoissa. m. WIDE Tokyo (5 other sites) 13 root name servers worldwide Tietoliikenteen perusteet, syksy 2015 Timo Karvi 8

DNS-nimiavaruuden vyöhykejako DNS-nimiavaruus jaettu vyöhykkeisiin (zone) kukin vyöhyke kattaa osan nimipuusta vyöhykkeellä on yksi siitä vastaava nimipalvelija (primary) ja yksi tai useita apunimipalvelijoita (secondary) Vyöhykejako on hallinnollinen tarpeen mukaan nimipalvelijoita vastaamaan omasta alueestaan Tietoliikenteen perusteet, syksy 2015 Timo Karvi 9

ICANN The Internet Corporation for Assigned Names and Numbers Domain -nimiavaruus COM,.NET,.ORG,.EDU,.INT,.MIL.GOV,. ARPA ja maakoodit. fi com org edu. helsinki cs... Uusia:.biz,.info,.name,.рф, இந த ய Tietoliikenteen perusteet, syksy 2015 Timo Karvi 10 10

Paikallinen nimipalvelija (local DNS name server) Ei ole osa varsinaisten auktorisoitujen nimipalvelijoiden muodostamaa hierarkiaa Jokaisella palvelutarjoajalla (verkko-operaattori, yritys, yliopisto) on oma paikallinen, oletus-nimipalvelija Kun isäntäkoneen sovellus tekee nimipalvelukyselyn, lähettää kone sen paikalliselle nimipalvelijalle, Jolla on omassa välimuistissaan viimeisimpien kyselyjen nimi-osoite muunnoksia (osa voi olla vanhentuneita!) Joka toimii kuin välimuisti (eli proxy), ja lähettää kyselyn edelleen auktorisoidulle nimipalvelijalle Tietoliikenteen perusteet, syksy 2015 Timo Karvi 11

IP-nimen selvittäminen Sovellusohjelma kutsuu kirjastorutiinia parametrina nimi merkkijonona esim Unix:ssa gethostbyname() Kirjastorutiini lähettää UDP-datasähkeen paikalliselle DNS-palvelimelle Paikallinen nimipalvelin etsii nimeä vastaavan IP-osoitteen ja palauttaa sen kirjastorutiinille etsinnässä tarvitaan usein monien palvelimien yhteistyötä Iteratiivinen kysely / rekursiivinen kysely Välimuistin käyttö Tietoliikenteen perusteet, syksy 2015 Timo Karvi 12

Iteratiivinen kysely: kerro keneltä pitää kysyä? Mikä on gaia.cs.umass.edu:n IP-numero? Isäntäkone Kysy omalta aluepalvelijalta Paikallinen nimipalvelija (poly) (1) Ratkaise isäntäkoneen puolesta Juuripalvelin (3) Kerro, mistä löytyy ylätason palvelin edu-tunnuksille Ylätason palvelin(edu)(4,5) Kerro, mistä löytyy aluepalvelija umass.edu-tunnuksille Aluepalvelija (6,7) Tuntee cs-verkon koneet. Kerro koneen IP-osoite local DNS server dns.poly.edu 1 2 8 3 4 5 7 Fig 2.21 [KR12] root DNS server TLD DNS server requesting host cis.poly.edu gaia.cs.umass.edu 6 authoritative DNS server dns.cs.umass.edu Tietoliikenteen perusteet, syksy 2015 Timo Karvi 13

Rekursiivinen kysely: kysy muilta, jos et itse tiedä Mikä on gaia.cs.umass.edu:n IP-numero? Fig 2.22 [KR12] root DNS server Ratkaise kysyjän puolesta koko ongelma 2 3 vastaa jos tiedät kysy edelleen jos et tiedä 7 6 TLD DNS server Juuripalvelimen suorituskyky, kun paljon kyselyitä? Iteratiivinen on tavallisempi malli, mutta kumpikin mahdollinen local DNS server dns.poly.edu requesting host cis.poly.edu gaia.cs.umass.edu Tietoliikenteen perusteet, syksy 2015 Timo Karvi 14 1 8 5 4 authoritative DNS server dns.cs.umass.edu

DNS-välimuisti (DNS caching) Suorituskyvyn parantamiseksi nimipalvelijat varastoivat välimuistiinsa näkemiään DNS-resurssitietueita. Ei tarvitse aina hakea uudestaan Kuormittaa vähemmän ylemmän tason nimipalvelimia Nopeuttaa tavallisimpia kyselyjä: löytyy läheltä Tiedon oikeellisuus Tietueelle määrätty elinaika (TTL, time to live) kertoo voimassaoloajan (yleensä muutama päivä) Kun umpeutuu, tieto poistetaan. Yleensä muutokset paikallisia: koneen lisäys, koneen poisto, joskus uusi verkko Tietoliikenteen perusteet, syksy 2015 Timo Karvi 15

DNS- resurssitietue (resource records, RR) Resurssitietueen kentät ovat (nimi, arvo, tyyppi, elinaika) Tyyppi määrää nimen ja arvon merkityksen: Tyyppi = A (host address) nimi = koneen nimi, arvo = IP-osoite (Ipv4) esim: (relay1.bar.foo.com, 145.37.3.126, A, TTL) Tyyppi = NS (name server) nimi = aluenimi (domain), arvo = autorisoidun palvelimen nimi esim: (foo.com, ds.foo.com, NS, TTL) Tyyppi = CNAME (canonical name) nimi = koneen aliasnimi, arvo= kanoninen, oikea konenimi esim: (foo.com, relay1.bar.foo.com, CNAME, TTL) Ipv6: AAAA Tyyppi = MX (mail exchange) nimi = koneen aliasnimi, arvo = postipalvelimen kanoninen nimi esim: (foo.com, mail.bar.com, MX,TTL) Tietoliikenteen perusteet, syksy 2015 Timo Karvi 16

DNS-sanoma Kysely ja vastaus käyttävät samaa formaattia Sanoman otsake (header) Identification-kenttä Kyselyn tunniste (16-bittinen numero), vastauksessa sama numero => kysely ja vastaus helposti yhdistettävissä toisiinsa. Lipukkeet (flags) Pyyntö vai vastaus Käytä rekursiivista kyselyä Rekursiivinen kysely mahdollista Vastaus tulee suoraan autorisoidulta palvelijalta Fig 2.23 [KR12] 2 bytes 2 bytes identification flags # questions # answer RRs # authority RRs # additional RRs questions (variable # of questions) answers (variable # of RRs) authority (variable # of RRs) additional info (variable # of RRs) Tietoliikenteen perusteet, syksy 2015 Timo Karvi 17

DNS-sanoma Kyselystä voi generoitua vastaus, jossa on useita resurssitietueita Esim. Palvelijafarmien kuormantasaaminen: vastauksessa on useita IPosoitteita (rotaatio) Kyselyalueella etsittävän nimi ja tyyppi Vastausalueella (useita) resurssitietueita, jotka liittyvät kysyttyyn nimeen Tietueita muihin autorisoituihin palvelijoihin Ylim. hyödyllisiä resurssitietueita Fig 2.23 [KR12] 2 bytes 2 bytes identification flags # questions # answer RRs # authority RRs # additional RRs questions (variable # of questions) answers (variable # of RRs) authority (variable # of RRs) additional info (variable # of RRs) Tietoliikenteen perusteet, syksy 2015 Timo Karvi 18

Hyökkäyksiä nimipalvelua vastaan tai käyttäen DDoS-hyökkäys (Distributed Denial of Service) osoitekyselyjä juuripalvelimille - Ei onnistu enää. (v. 2002 yritys ICMP-datagrammeilla) - Paikalliset DNS-välimuistit tallettavat ylätason palvelimien osoitteet, eikä kyselyjä lähetetä enää juuripalvelimelle Hyökkäys ylätason (TLD) nimipalvelijoita vastaan voisi olla vaarallisempi Uudelleenohjaus (Redirect) Man-in-middle: ohjaa kyselyt toisaalle DNS myrkytys (poisoning): syötä väärää tietoa DNSpalvelimen välimuistiin DNS:n käyttö DDoS-hyökkäyksessä tiettyä palvelinta vastaan Houkuttele DNS-palvelimet kysymään tieto ko. palvelimelta Järkevä vain jos oma viesti DNSpalvelimelle pienempi kuin palvelimen viesti kohteelle (ns. vahvistaminen, amplification) Tietoliikenteen perusteet, syksy 2015 Timo Karvi 19

Välimuistin myrkytys Tämä hyökkäys yrittää saada nimipalvelun viemään väärän DNS-tietueen välimuistiin. Seuraava skenaario kuvaa hyökkäystä. 1) Eve päättää aloittaa hyökkäyksen ISP DNS palvelinta vastaan. Hän lähettää nopeasti useita DNS-kyselyitä tälle palvelimelle, joka puolestaan tekee Even puolesta kyselyjä ylemmän tason nimipalvelimelle. 2) Eve lähettää samaan aikaan DNS-vastauksen omaan kyselyynsä ISP DNS:lle väärentäen lähteen IPosoitteeksi ylemmän tason nimipalvelimen. Tietoliikenteen perusteet, syksy 2015 Timo Karvi 20

Välimuistin myrkytys (2) 3) ISP-palvelin hyväksyy Even väärennetyn viestin ja tallettaa virheellisen tiedon välimuistiin. Tämän jälkeen kaikki ISP:n alaisuudessa olevat käyttäjät ohjataan Even haittasivuille, kun he yrittävät päästä oikean IPosoitteen sivuille. Even täytyy ratkaista pari ongelmaa ennen kuin yllä esitetty skenaario toimii. Viesteissä kulkee nimittäin mukana kyselyn tunnus, 16-bittinen luku: www.ex.com? DNS-req, ID=x a) E--------------------> ISP DNS ----------> DNS b) E--------------------->ISP DNS ---------- DNS DNS-reply, ID=x Tietoliikenteen perusteet, syksy 2015 Timo Karvi 21

Välimuistin myrkytys(3) Aivan ensin Even täytyy varmistaa, että hänen oma vastauksensa b) menee perille ennen ylemmän tason vastausta. Eli vastaus täytyy lähettää pian heti kyselyn jälkeen. Toiseksi hänen täytyy arvata 16-bittinen satunnaisluku, joka on ISP DNS:n valitsema ja jonka täytyy olla DNS:n vastauksessa. Ennen vuotta 2002 useimmat DNSpalvelimet käyttivät yksinkertaista laskuria, joka generoi numeroita järjestyksessä. Sen jälkeen siirryttiin satunnaislukuihin. Tietoliikenteen perusteet, syksy 2015 Timo Karvi 22

Välimuistin myrkytys(4) Satunnaisluvut eivät täysin ratkaise puolustusongelmaa. Hyökkääjä voi nimittäin tehdä useita yrityksiä. Tällöin on riittävän suuri mahdollisuus onnistua syntymäpäiväparadoksin perusteella. Jos tätä sovelletaan satunnaislukujen arvaamiseen, voidaan laskea, että jos hyökkääjä tekee 213 yritystä ja saa saman verran vastauksia, on yli 50%:n tn, että ainakin yksi arvaus osuu kohdalleen. Tietoliikenteen perusteet, syksy 2015 Timo Karvi 23

Välimuistin myrkytys(5) Huolimatta syntymäpäiväparadoksista esitetty arvaushyökkäys on hyvin rajoitettu, koska sen täytyy tapahtua tiukoissa aikarajoissa. Kun oikea vastaus saapuu DNS:ltä, se viedään palvelimen välimuistiin tietyksi ajaksi, joka löytyy time-to-live kentästä. Aika voi olla minuutteja, tunteja tai jopa päiviä, jonka jälkeen vasta hyökkääjä voi tehdä uuden yrityksen, ellei ylemmän tason nimipalvelinta kaadeta esim. palvelunestohyökkäyksellä. Tietoliikenteen perusteet, syksy 2015 Timo Karvi 24

Välimuistin myrkytys(6) Vuonna 2008 löydettiin uusi alialueen DNS:n välimuistin hyökkäys. Sen sijaan että lähetetään alueesta ex.com yksi kysely kerrallaan, lähetetään useita kyselyitä, jotka kohdistuvat olemattomiin kohdealueen alialueisiin; esim. aaa.ex.com, aaab.ex.com jne. Näitä alueita ei itse asiassa ole olemassa, joten todellista kohdetta ex.com edustava nimipalvelin jättää pyynnöt huomiotta. Samaan aikaan hyökkääjä lähettää vastaukset näihin kyselyihin arvattujen tunnusten kera. Koska kilpailua ei ole, on suuritn, että jokin arvauksista onnistuu. Tämä hyökkäys ei yksinään aiheuta vahinkoa, mutta vastauksiin voidaan lisätä nimipalvelimen vaihto. Tällöin kyselyt kohdistuvat hyökkääjän koneelle. Tietoliikenteen perusteet, syksy 2015 Timo Karvi 25

Välimuistin myrkytys(7) Alialueen välimuistin myrkytys johtuu itse DNS-protollan heikkoudesta: 16 bittiä on liian vähän ja tiedusteluihin olemattomista alialueista ei vastata. Siten hyökkäyksiä on vaikea estää. Uuden DNS-version asentaminen olisi erittäin suuri työ johtuen nimipalvelun keskeisestä asemasta Internetissä. Muutamia perustekniikoita on kuitenkin olemassa. Useimmat DNS-hyökkäykset kohdistuvat ISP DNS palvelimia vastaan. Ennen vuotta 2008 nämä olivat kaikille avoimia, mutta sen jälkeen ne on konfiguroitu vastaamaan vain aliverkosta tuleviin kyselyihin. Aliverkosta tulevat hyökkäykset menevät kuitenkin läpi. Tietoliikenteen perusteet, syksy 2015 Timo Karvi 26

Välimuistin myrkytys(8) Monet DNS-toteutukset käyttävät myös lähdeportin satunnaistamista. Eli kyselyt lähetetään satunniasesta portista ja vastausten pitää tulla samaan porttiin. Tämä vähentää mahdollisuuksia lähettää väärennetty sanoma: 2^16 mahdollisen kyselytunnuksen lisäksi täytyy arvata 65000 porttitunnusta. On kuitenki osoitettu, että myrkytyshyökkäys on yhä mahdollista. Tietoliikenteen perusteet, syksy 2015 Timo Karvi 27

TIEDOSTONSIIRTO, FTP Tietoliikenteen perusteet, syksy 2015 Timo Karvi 28

FTP file transfer protocol (RFC 959) user at host FTP user interface FTP client local file system file transfer FTP server Fig 2.14 [KR12] remote file system Tiedostojen kopioiminen koneelta koneelle Asiakas voi selata etäkoneen hakemistoissa FTP sanomilla, voi noutaa tai tallettaa haluamansa tiedoston (download/upload) Aktiivimoodi: Asiakas vastaanottaa palvelimen pyynnön Ei toimi palomuurien ja NAT-laitteiden kanssa Passiivimoodi (PASV-komento): Asiakas ottaa yhteyttä palvelimelta juuri pyytämäänsä IP-osoitteeseen ja porttiin, palvelin lähettää tai vastaanottaa tiedoston Tietoliikenteen perusteet, syksy 2015 Timo Karvi 29

FTP: eri yhteydet hallinnalle ja tiedostojen siirrolle FTP-palvelin kuuntelee porttia 21 yhteys kontrollitiedon välitystä varten Asiakas kuuntelee porttia 20 palvelija avaa tiedoston siirtoa varten FTP-palvelin ylläpitää tilatietoa mm. työhakemiston polku, autentikointi FTP asiakas ottaa yhteyttä palvelimen porttiin 21 - käyttöoikeuksien tarkistus - hakemistojen selailu ja kaikki muutkin asiakkaan pyynnöt tällä yhteydellä FTP client 20 Aktiivimoodissa: Katso fig 2.15 [KR12] control data 21 Kun palvelin saa tiedostonlatauspyynnön, se avaa toisen rinnakkaisen yhteyden asiakkaaseen (portti 20) tiedoston siirtoa varten. Siirron jälkeen palvelin sulkee yhteyden. Uudelle tiedostolle avataan taas uusi yhteys. FTP server 2 TCP-yhteyttä Tietoliikenteen perusteet, syksy 2015 Timo Karvi 30

FTP-pyyntöjä ja -vastauksia Kaikki sanomat ASCII-muodossa, binääritila tiedostoille Asiakkaan pyyntöjä: USER username PASS password LIST tiedostoluettelo RETR filename nouda tiedosto STOR filename stores talleta tiedosto Palvelimen vastauksia: 331 Username OK, password required 125 data connection already open; transfer starting 425 Can t open data connection 452 Error writing file Tietoliikenteen perusteet, syksy 2015 Timo Karvi 31

SÄHKÖPOSTI: SMTP, IMAP, POP3 Tietoliikenteen perusteet, syksy 2015 Timo Karvi 32

Sähköpostin komponentit Postiohjelma (user agent) Postin lukeminen ja lähettäminen Eudora, Outlook, elm, pine, Messenger, Pegasus, Kmail, Posti talletettuna omalle postipalvelimelle Postipalvelin (mail server) Kullakin käyttäjällä on oma saapuvien postien laatikko Yhteinen lähtevien postien laatikko Postiprotokolla SMTP Protokolla, jolla postipalvelin välittää postin suoraan vastaanottajan postipalvelimelle mail server SMTP mail server user agent user agent SMTP SMTP user agent mail server user agent user agent user agent Lähtevien sanomien jono Käyttäjän postilaatikko Tietoliikenteen perusteet, syksy 2015 Timo Karvi 33

Esimerkki: Alice Bobille 1. Alice kirjoittaa viestin postiohjelmalla: to: bob@someschool.edu 2. Alicen postiohjelma lähettää viestin omalle postipalvelimelle (SMTP-protokollalla) 3. Alicen postipalvelin avaa TCPyhteyden Bobin postipalvelimelle 1 Alice s agent 2 3 Alice s mail server 4 4. Alicen postipalvelin siirtää viestin SMTP-protokollalla Bobin postipalvelimelle käyttäen TCP-yhteyttä 5. Bobin postipalvelin laittaa viestin Bobin postilaatikkoon 6. Bob lukee viestin omalla postiohjelmalla (IMAP-prot.) Bob s mail server. 5 6 Fig 2.17 [KR12] Bob s agent Tietoliikenteen perusteet, syksy 2015 Timo Karvi 34

SMTP (Simple Mail Transfer Protocol) (RFC 821) Postipalvelimet kuuntelevat porttia 25 Asiakas muodostaa säilyvän TCP-yhteyden palvelimeen luotettava yksi yhteys: lähetetään kaikki samalle palvelimelle menevät viestit Lähetyksessä: Kättely, Viestien välitys, Lopetus Pyyntö-vastaus-protokolla Pyyntö: ASCII-tekstiä Vastaus: status-koodi ja fraasi tekstinä Push-protokolla: työntää tietoa vastapäähän vrt. HTTP on ns. pull-protokolla Vastaanottava on palvelin DATA Lähettävä on asiakas Tietoliikenteen perusteet, syksy 2015 Timo Karvi 35

SMTP esimerkki C asiakas, lähettäjä S palvelija, vastaanottaja S: 220 helsinki.fi C: HELO princeton.edu S: 250 Hello princeton.edu SMTP:n kättely C: MAIL FROM: <Bob@princeton.edu> S: 250 <Bob@princeton.edu> OK C: RCPT TO: <pekka.puupaa@cs.helsinki.fi> S: 250 <pekka.puupaa@cs.helsinki.fi> OK C: DATA S: 354 Enter mail, end with. on a line by itself C: dataa dataa C: dataa dataa C:. S: 250 Message accepted for delivery C: QUIT S: 221 princeton.edu closing connection Viesti(t) SMTP:n lopetus Tietoliikenteen perusteet, syksy 2015 Timo Karvi 36

Sähköpostiviestin rakenne (on SMTP:lle vain dataa) Eri asia kuin SMTP: eri standardit (RFC 822) Esim. To: CC: From: Message-Id: Received: Date: Reply-To: Subject:. otsakerivit runko varsinainen viesti, jossa vain ASCIImerkkejä ja lopussa piste omalla rivillä tyhjä rivi Tietoliikenteen perusteet, syksy 2015 Timo Karvi 37

SMTP:n rajoitteita Kaikki esitettävä 7-bittisenä ASCII:na = IRA, International Reference Alphabet Myös binääridata, esim. kuvat ja ääni Yksittäinen viesti loppuu omalla rivillä olevaan pisteeseen eli lopussa ASCII-merkit: CRLF.CRLF Vanha protokolla! Binääridata on koodattava s.e. siinä ei esiinny CRLF.CRLF MIME-laajennus CR = carriage return LF = line feed Multipurpose Internet Mail Extensions Tietoliikenteen perusteet, syksy 2015 Timo Karvi 38

MIME (Multipurpose Internet Mail Extension) (RFC 2045, 2056) Kaikki on koodattava 7-bittiseksi ASCII-koodiksi Lisää kenttiä otsakkeeseen: vastaanottajan postiohjelma osaa käynnistää oikean sovelluksen viestin näyttämiseksi. MIME-versio Koodausmenetelmä multimediadatan tyyppi, alityypit, parametrit koodattu data From: alice@crepes.fr To: bob@hamburger.edu Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data.........base64 encoded data Tietoliikenteen perusteet, syksy 2015 Timo Karvi 39

MIME MIME-sisältötyyppejä text/plain; charset=us-ascii text/html image/gif, image/jpeg, video/mpeg application/postscript application/msword application/octetstream multipart/mixed MIME-versio: Content-Transfer- Encoding: Content-Type: Base-64-koodaus Sanoman 24 bitin ryhmät on jaettu 6 bitin osiksi, jotka kukin on koodattu ASCII-merkiksi, 64 eri vaihtoehtoa (3:sta tavusta tulee 4 tavua) Tietoliikenteen perusteet, syksy 2015 Timo Karvi 40

Moniosainen MIME-viesti Content-Type: multipart/mixed; Boundary=StartOfNextPart - - StartOfNextPart Hei Allu, sinulle kaunis kuva kissastani Villestä. - - StartOfNextPart Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data..... base64 encoded data - - StartOfNextPart Haluatko muita kuvia!. Nykyisin yleensä linkki www-sivulle, josta kuvan voi hakea! Tietoliikenteen perusteet, syksy 2015 Timo Karvi 41

Postinnoutoprotokollat (mail access protocols) Posti omalta postipalvelimelta postiohjelmaan POP3: Post Office Protocol versio 3 Viestien lataamiseen omalle koneelle, ei postikansioita Koska SMTP on PUSH - protokolla, sitä ei voi käyttää sanomia haettaessa ( PULL ). IMAP: Internet Mail Access Protocol Monipuolisempi: postikansiot (folders), lataa vain otsikot, viestien säilytys postipalvelimella HTTP: Esim. TKTL:lla käytettävä IlohaMail, Hotmail, Web-palvelija käyttää IMAP-palvelijaa (eli yksi kone enemmän!) ja noutaa postin siltä IMAP protokollalla. user agent SMTP SMTP access protocol sender s mail server receiver s mail server POP3 IMAP (HTTP) user agent Fig 2.18 [KR12] Tietoliikenteen perusteet, syksy 2015 Timo Karvi 42

ESMTP (Extended Simple Mail Transfer Protocol) RFC 2821 (uusin versio RFC 5321 (lokakuu 2008)) Runsaasti laajennoksia jo 1995 (RFC 1868) * 8BITMIME 8 bit data transmission, RFC 1652 * ATRN Authenticated Turn, RFC 2645 * SMTP-AUTH Authenticated SMTP, RFC 2554 * CHUNKING Chunking, RFC 3030 * DSN Delivery status notification, RFC 1891 * ETRN Extended Turn, RFC 1985 * HELP Supply helpful information, RFC 821 * PIPELINING Command pipelining, RFC 2920 * SIZE Message size declaration, RFC 1870 * STARTTLS Transport layer security, RFC 3207 EHLO aloittaa Tietoliikenteen perusteet, syksy 2015 Timo Karvi 43

VERTAISTOIMIJAT PEER-TO-PEER (P2P) Tietoliikenteen perusteet, syksy 2015 Timo Karvi 44

Vertaistoimijaverkko Kone on satunnaisesti Internetissä (no always-on) IP-osoitekin voi vaihdella kerrasta toiseen Kukin kone sekä palvelija että asiakas! Skaalautuvuus, kuormantasaus Fig 2.2b [KR12] Esimerkkejä: Tiedostojen jakaminen (BitTorrent) Multimedia, kuten IPTV (KanKan) VoIP (Skype) Tietoliikenteen perusteet, syksy 2015 Timo Karvi 45

Vertaistoimijat: tiedoston jakaminen Isäntäkoneet asiakkaan ja palvelijan roolissa Jaetaan uusi versio käyttöjärjestelmästä, korjaustiedosto ohjelmaan, MP3-tiedostoja, videoleikkeitä, Jokainen vertainen voi toimia jakelijana Miten löytää vertaistoimija(t)? Keskitetty hakemisto: kiinteä IP-osoite, josta voi kysellä Kyselyn tulvitus: kysellään potentiaalisilta toimijoilta Hiukan keskitetty hakemistopalvelu, joka tekee jatkokyselyt Kun kohde löytynyt, kopiointi suoraan sieltä Kyselyn tuloksena IP-osoite Nouto esim. HTTP-protokollaa käyttäen BitTorrent-liikenne jo 30% Internetin koko liikenteestä? Tietoliikenteen perusteet, syksy 2015 Timo Karvi 46

Skaalautuvuus Fig 2.24 [KR12] Asiakas-palvelinmalli: Palvelimen siirrettävä n*f bittiä => siirtoaika = nf/u s. Hitain asiakas d min saa tiedoston ajassa F/ d min Siirtoaika = max (nf/u s, F/ d min ) Server File F Kun n kasvaa, palvelimen kuorma kasvaa ja siirtoaika kasvaa. u s u n, d n... u 1, d 1 Internet u 6, d 6 Vertaistoimijamalli (alussa tiedosto on palvelimella) Siirtoaika = max{f/u s,,f/d min,,nf/(u s + Su i )} Summamerkki: total upload rate F/u s lähetys kerran aika u 2, d 2 u 5, d 5 Fig 2.25 [KR12] u 3, d 3 u 4, d 4 Tietoliikenteen perusteet, syksy 2015 Timo Karvi 47 0 10 20 30 n

BitTorrent Tiedostonjakoverkko Tiedostot jaettu yhdenkokoisiin lohkoihin (256KB) Vertaistoimijat lataavat ja samaan aikaan jakavat yhden ryöpyn (torrent) lohkoja tracker, seurantapalv.: pitää kirjaa torrent-ryhmän jäsenistä torrent: ryhmä vertaistoimijoita, jotka jakavat tiedoston lohkoja Alice saapuu saa seurantapalvelimelta vertaislistan ja aloittaa lohkojen vaihdon vertaisten kanssa Fig 2.26 [KR12] Tietoliikenteen perusteet, syksy 2015 Timo Karvi 48

BitTorrent lohkojen vaihto Naapureilta kysellään lohkolistoja ja pyydetään lähettämään lohkoja (harvinaisimmat ensin) Itse lähettää - 4:lle, jotka lähettävät itselle suurimmalla nopeudella (arvio 10 s välein) (tit-for-tat) - ja 30 s välein satunnaiselle naapurille kokeeksi Vapaa matkustus -ongelma (freeriding) BitTorrentissa paljon muita piirteitä! Alice Tietoliikenteen perusteet, syksy 2015 Timo Karvi 49

Hajautettu tiiviste (Distributed Hash Table, DHT) avain hetu Elokuvan nimi Tiiviste/ Tunniste arvo Henkilön nimi IP osoite Tunniste (ID) Hajautettu tietokanta vertaisverkoille alkiot ovat (avain, arvo) pareja ei yhtä keskitettyä tietokantapalvelinta, vaan tietokannan alkiot jaettu (miljoonille) vertaisille Annetaan numeeriset tunnisteet sekä avaimille että vertaisille ja jaetaan näiden numeroiden perusteella Kyselyt aina avaimella vastauksena tulee avaimeen liittyvä(t) arvo(t) Vertaisverkon solmut voivat lisätä alkioita Tietoliikenteen perusteet, syksy 2015 Timo Karvi 50

Numeeriset tunnisteet ja tiivisteet Numeroidaan vertaiset kokonaislukuarvoilla [0,2 n-1 ] kukin tunniste on n bittiä. Lasketaan avaimille numeroarvo samalle arvovälille käyttäen hajautusfunktiota (hash function) ja tarvittaessa jakojäännöstä (jaetaan 2 n) esim: avain = hash( Led Zeppelin IV ) Sijoittelu vertaisille (kirjan sääntö): numerojärjestyksessä lähimmälle seuraajalle renkaana. eli kun n=4 ja vertaisilla tunnisteet: 1,3,4,5,8,10,12,14; avain = 13, säilytysvastuu annetaan vertaiselle 14 avain = 15, säilytysvastuu annetaan vertaiselle 1 Tietoliikenteen perusteet, syksy 2015 Timo Karvi 51

Circular DHT 1 Fig 2.27a [KR12] 15 3 12 10 8 Kukin vertainen tietää vain edeltäjän ja seuraajan numeerisen tunnisteen (ja IP:n) Näin muodostaa uusi päällysverkko (overlay network) 5 4 Tietoliikenteen perusteet, syksy 2015 Timo Karvi 52

Circular DHT esimerkki Fig 2.27a [KR12] Kyselyyn vastaamiseen tarvitaan keskimäärin O(N) viestiä, kun verkossa on N solmua Muista: Sijoitettu solmulle joka numeerisesti sama tai lähin suurempi 1111 1100 Minä 1110 1110 1010 1110 0001 1110 1000 0011 1110 1110 Kuka vastaa avaimesta 1110? 0100 0101 Tietoliikenteen perusteet, syksy 2015 Timo Karvi 53

Circular DHT with shortcuts 15 12 1 10 8 Fig 2.27b [KR12] 3 5 4 Kuka vastaa avaimesta 1110? Nyt jokainen solmu pitää kirjaa seuraajan ja edeltäjän lisäksi myös muutamasta oikopolusta. Kyselyssä tarvittavien viestien määrä putosi 6:sta 2:een. Teoria: oikopolut voidaan määrätä siten, että kirjanpidossa O(log N) naapuria ja kyselyissä O(log N) viestiä Tietoliikenteen perusteet, syksy 2015 Timo Karvi 54

Vertaisten vellominen (Peer churn): näitä tulee ja menee 15 12 10 8 1 3 5 Esimerkki: Solmu 5 poistuu yllättäen 4 Solmut voivat liittyä ja poistua Solmu 4 havaitsee solmun 5 poistumisen; kirjaa solmun 8 lähimmäksi seuraajaksi; kysyy solmulta 8 sen lähimmän seuraajan ja kirjaa sen itselleen seuraajan seuraajaksi. - Muutkin solmut joutuvat päivittämään mitkä? Mitä, jos solmu 13 haluaa liittyä mukaan? Jokaisen täytyy tietä kaksi seuraajaa ja edeltäjää Niiden mukanaolo tarkistettava (ping) säännöllisesti Jos muutoksia, niin tee tarvittavat päivitykset ja kysele muilta puuttuvat tiedot Tietoliikenteen perusteet, syksy 2015 Timo Karvi 55

Kertauskysymyksiä Asiakas-palvelija-malli? Vertaisverkkomalli? Kuinka asiakas löytää palvelimen? Miten KJ osaa antaa bitit oikealle sovellukselle? Miten koneen nimestä saadaan selville sen IP-osoite? Miten HTTP-protokolla toimii? Miksi SMTP ei riitä, vaan tarvitaan POP3 tai IMAP? Mitä hyötyä on proxy-palvelimesta? Miksi käytetään evästeitä? Mikä on pistoke ja missä sitä käytetään? Ks. myös kurssikirja s.195-197. Tietoliikenteen perusteet, syksy 2015 Timo Karvi 56