Sunteți pe pagina 1din 55

Cursul 10

10
Servicii de reea
6-7 decembrie 2011

Obiective

World Wide Web


Protocolul HTTP
Certificate i HTTPS
Domain Name System

Cursul 10

WWW
Istoric
Tehnologii
HTTPS i certificate

Dawn of the WWW


World Wide Web
Reea de resurse interconectate prin hyperlink-uri

Pagini html statice sau generate dinamic


Documente css
Imagini
Etc.

Ofer resurse identificate prin URI


Resursele sunt accesat prin browsere
Care este diferena dintre Internet i WWW?
R: Internetul este o reea de dispozitive. WWW este un serviciu oferit de o
parte din aceast reea.

Dawn of the WWW


1990

2000

1990: WorldWideWeb
Proiect realizat de Tim Berners Lee la CERN
Proiectul includea primul browser, primul server web i primele pagini web
1993:
Sunt lansate Mosaic (primul browser grafic) i Netscape (urmaul lui Mosaic)
1994:
World Wide Web Consortium
nfiinat la MIT de Tim Berners Lee

1995: Internet Explorer


1996: Opera
1998: Mozilla Foundation creat de Netscape
2003: Safari
2008: Chrome
5

URI
Uniform Resource Identifier
URN: Uniform Resource Name
URL: Uniform Resource Locator

ir folosit pentru identificarea unic a unei resurse n WWW


Sintaxa unui URL:
protocol://user@domeniu:port/cale?interogri#fragment
http://cs.curs.pub.ro/2011/course/view.php?id=215
http://141.85.241.139
http://dynagen.org/tutorial.html#_Toc193248007
telnet://student@example.com:25
https://[2001:b30:800:f011:192:168:6:139]/login/index.html
6

Browser Wars
1990: WorldWideWeb primul browser (scris de Tim Berners Lee)
1993: Mosaic primul browser popular (ulterior numit Netscape)
Anii 90: Primul browser war (Netscape versus Internet Explorer)

Componentele unui site


Un site din WWW adesea folosete o multitudine de tehnologii
curs-rl.ro (141.85.241.139)

Server HTTP
(Apache 2)

a.html
b.html

/site

libapache2-mod-php5

style.css

x.php

php5-mysql

Server DB
(MySQL 5.3)

y.php
cursrl-db

c.html

Server-side vs client-side
Clasificare n funcie de locul unde are loc interpretarea codului
Server

Client

php

Javascript

ruby

AJAX

python

ASP

Serverul Web Apache 2


Dezvoltat de Apache Software Foundation
Cel mai popular server HTTP din Internet
63% din site-uri foloseau Apache2 n Mai 2011

Server modular
Permite ncrcarea i descrcarea modulelor n funcie de cerine
Exemple de module:
php5 permite interpretarea codului php
wsgi permite interpretarea codului python
userdir public pe server pentru fiecare utilizator un director n care acesta
poate pune fiiere

10

Structura grafic HTML

Primul draft: CERN n 1991


HyperText Markup Language
Limbaj pentru descrierea structurii unei pagini
Specificaia HTML5 este n dezvoltare
div

XHTML
eXtensible HyperText Markup Language
Variant XML a HTML
Sintax mai strict dect HTML

div
div

p
p

Mai uor de parsat

n paralel cu HTML5 este definit i XHTML5

11

Aspectul grafic css


Cascading Style Sheets
Limbaj pentru particularizarea aspectului
structurilor HTML
Versiune: CSS3

div

div

+CSS

div
p

div
p

div
div

p
p

12

Generarea de pagini dinamice php


Majoritatea site-urilor actuale se bazeaz pe generarea de pagini
dinamice
Codul interpretat (PHP, Ruby, Python) are rolul de a construi codul
HTML trimis clientului
Server
Baz de date
Interpretor PHP

Cod HTML

Client
Rendering Engine

13

Comportament dinamic - javascript


Codul php creeaz n mod dinamic o pagin static
Pentru a crea comportament dinamic ntr-o pagin (animaii,
evenimente), codul trebuie executat pe client
Javascript este folosit pentru a controla elementele din pagin
Javascript nu este utilizat doar n cadrul site-urilor:
Documente pdf
Module de browser

14

HTTP

Hypertext Transfer Protocol


Portul TCP 80
Versiunea actual: 1.1
Arhitectur client-server
Clientul folosete metode pentru a comunica
Metod Rol
GET Cere o reprezentare a unei resurse
HEAD Cere informaii despre o resurs (fr coninut)
POST Trimite date pentru procesare de ctre server
OPTIONS Cere operaiile suportate de server pentru o resurs

15

HTTP Cookies
Protocolul HTTP nu are stare
Accesri succesive ale unor pagini n relaie logic nu puteau beneficia de
informaii de sesiune

Cookies sunt un mecanism pentru persistena strii:

Termenul iniial era magic cookie i a fost introdus de inginerii Netscape


Obiecte similare unor variabile ce sunt reinute de browser
Asociate unui domeniu
Pot fi citite sau scrise de site prin intermediul javascript

16

Exemplu de cerere HTTP


Metod

Versiune
Nume de domeniu

Locaie
Cookies

De ce e util trimiterea numelui de domeniu n cerere?


17

Recapitulare: Chei asimetrice

18

HTTPS
HTTP Secure
Portul TCP 443
Folosete SSL/TLS pentru a stabili un canal criptat sigur ntre client
i serverul HTTPS
Site-ul se autentific prin intermediul unui certificat
Un certificat conine:

Numele site-ului (CN)


Numele organizaiei (O)
CA-ul care urmeaz s valideze certificatul (CA CN, CA O)
Data de emitere / expirare
Un hash pentru verificarea integritii
Cheia public a site-ului
19

HTTPS
Browser-ul clientului primete certificatul site-ului la accesarea
acestuia
Exemplu cs.curs.pub.ro n Firefox:

20

HTTPS

HTTPS depinde de existen CA-urilor (Certificate Authority)


Un CA este o entitate ce garanteaz autenticitatea unui certificat
CA-urile semneaz ierarhic
n exemplul de mai sus:
Certificat cs.curs.pub.ro
Semnat de ctre StartCom Class 2 Primary Intermediate Server CA
Semnat de ctre StartCom Certification Authority

Browserele vin cu un set de CA-uri importante predefinite


n Firefox 8.0 (Windows):
Firefox/Options/Advanced/Encryption/View Certificates

Cele dou CA-uri StartCom sunt incluse de la instalare deci accesarea


cs.curs.pub.ro nu lanseaz avertizri

21

HTTPS Self signed certificates


Autenticitatea unui CA primar este garantat de el nsui
Certificatele self signed ale CA-urilor importante vin cu browser-ul

22

HTTPS
Dac nu este cunoscut CA-ul site-ului (de exemplu certificatul este
self-signed):
Browserul ofer o avertizare asupra faptului c site-ul nu poate fi
autentificat
Poate semnaliza o ncercare de phishing
Permite adugarea unei excepii pentru certificatul respectiv

23

HTTPS Instalare

Instalare

1. Generare chei
2. Cerere
3. Semnare

CA Server

cs.curs.pub.ro

4. Instalare
Utilizare
1. Primire certificat
2. Validare CA
3. Validare site
Client
24

HTTPS Instalare

Instalare

1. Generare chei
2. Cerere
3. Semnare

CA Server

cs.curs.pub.ro

4. Instalare
Utilizare
1. Primire certificat
2. Validare CA
3. Validare site
Client
25

HTTPS Instalare

Instalare

1. Generare chei
2. Cerere
3. Semnare

CA Server

cs.curs.pub.ro

4. Instalare
Utilizare
1. Primire certificat
CSR
2. Validare CA

- CN: cs.curs.pub.ro
- O: Bogdan Sass
-

3. Validare site
Client
26

HTTPS Instalare

Instalare

1. Generare chei
2. Cerere
3. Semnare

CA Server

cs.curs.pub.ro

4. Instalare
Utilizare
1. Primire certificat
2. Validare CA

- CN: cs.curs.pub.ro
- O: Bogdan Sass
Certificat - CA: StartCom Ltd.
-

3. Validare site
Client
27

HTTPS Instalare
4.
Instalare

1. Generare chei

CA-ul trimite certificatul semnat serverului

Certificatul trebuie configurat n serverul HTTPS folosit


La accesarea serverului, certificatul va fi prezentat
clienilor

2. Cerere
3. Semnare

CA Server

cs.curs.pub.ro

4. Instalare
Utilizare
1. Primire certificat
2. Validare CA

- CN: cs.curs.pub.ro
- O: Bogdan Sass
Certificat - CA: StartCom Ltd.
-

3. Validare site
Client
28

HTTPS Utilizare
1.
Instalare

Clientul acceseaz prin HTTPS cs.curs.pub.ro

Serverul i trimite certificatul obinut anterior

1. Generare chei
2. Cerere
3. Semnare
4. Instalare
Utilizare
1. Primire certificat

cs.curs.pub.ro
- CN: cs.curs.pub.ro
- O: Bogdan Sass
- CA: StartCom Ltd.
-

2. Validare CA
3. Validare site
Client
29

HTTPS Utilizare

Instalare

1. Generare chei
2. Cerere
3. Semnare
4. Instalare
Utilizare
1. Primire certificat
2. Validare CA

cs.curs.pub.ro
- CN: cs.curs.pub.ro
- O: Bogdan Sass
- CA: StartCom Ltd.
StartCom Ltd.?

3. Validare site
Client
30

HTTPS Utilizare

Instalare

1. Generare chei
2. Cerere
3. Semnare
4. Instalare
Utilizare
1. Primire certificat
2. Validare CA
3. Validare site

cs.curs.pub.ro
- CN: cs.curs.pub.ro
- O: Bogdan Sass
- CA: StartCom Ltd.
Certificatul e valid.
Site-ul poate fi
accesat.

Client
31

HTTPS - ntrebri

32

HTTPS - ntrebri

33

Cursul 10

DNS

Istoric
Structur
Servere DNS
Interogri DNS

DNS
Domain Name System
Sistem ierarhic distribuit de asocieri nume adres
Poate rspunde la ntrebrile:
Care sunt adresele IPv4 i IPv6 ale lui cs.curs.pub.ro?
Cine este 141.85.241.139?
Ce IP are serverul de mail pentru domeniul pub.ro?

Port TCP i UDP 53


Model client-server
Serverul stocheaz informaii numite nregistrri
Clienii interogheaz serverul pentru a afla valorile din nregistrri
35

Istorie
1970

1980

1990

2000

Since forever - HOSTS.TXT


Fiier static ce tine mapri Nume Adres
Folosit n sistemele actuale n special pentru maparea localhost 127.0.0.1
ncepnd cu anii 80 nu mai putea face fa numrului n cretere de host-uri
1982 DNS (Domain Name System)
Inventat de Paul Mockapetris
Sistem distribuit de mapri Nume - adres
Folosit i pentru a obine alte informaii
2005 DNSSEC
DNS nu are mecanisme de securitate
Un atacator poate rescrie IP-ul din
rspunsul DNS
DNSSEC garanteaz autenticitatea (dar nu
i confidenialitatea) rspunsului
36

Nume de domeniu
ICANN Internet Corporation for Assigned Names and Numbers
ICANN:
administreaz lista de TLD (Top Level Domains)
deleag altor organizaii autoritatea de a aloca numele de domenii dintr-un
TLD
.
TLD

com

ro

unibuc

org

info

pub
cs

curs

systems

cs

studenti

37

Arhitectur
Serverele DNS sunt ntr-o relaie ierarhic
Responsabilitatea de alocare i asociere este delegat prin numirea unor
servere autoritare peste o anumit zon
.

TLD

com

ro

org

info
pub.pub.ro

unibuc

pub

ns1.cs.pub.ro
cs

curs

systems

cs

studenti

38

Tipuri de servere
Master/Slave

Ambele servere rspund cererilor de DNS

Server forwarder

Ajut alte servere DNS din reeaua local cu rezolvarea


cererilor externe
Folosit pentru a masca serverele DNS locale i pentru a
reduce traficul extern prin caching
Un server trimite la forwarder o cerere dac nu este autoritar
peste domeniul cerut i nu are informaia n cache

Caching-only

Server autoritar doar pe domeniul 0.0.0.127-in.addr.arpa


Face caching de nregistrri des folosite pentru a reduce
traficul DNS

Root Server

Administreaz TLD-uri

39

Tipuri de servere Master/Slave


Fiecare domeniu trebuie s aib o zon de master pentru a putea
genera rspunsuri autoritare pe domeniul gestionat
Serverul Slave va contacta periodic Serverul Master pentru a
obine lista de nregistrri configurate
Zona slave trebuie s precizeze explicit zona master

Cerere detalii zon master

Server Master

Baza de date de nume

Server Slave

40

Tipuri de cereri
Recursiv
Cererea trebuie rezolvat de serverul interogat
Trimise n general de aplicaiile client

Nerecursiv
Cererea primete rspuns doar dac serverul interogat:
Are intrarea n Cache
E autoritar pentru cerere

Dac nu sunt respectate condiiile:


Este returnat faptul c nu poate fi rezolvat cererea
Se indic un alt server de nume

41

Tipuri de nregistrri
Pentru a cere anumite informaii se poate folosi comanda host:
linux> host t MX cs.pub.ro
Tip

Rol

Exemplu

Descoperire adres IPv4

cs.pub.ro has address 141.85.227.111

AAAA

Descoperire adres IPv6

cs.pub.ro has no AAAA record

NS

Name Server identific


serverele de nume asociat cu un
domeniu

cs.pub.ro name server ns1.cs.pub.ro.


cs.pub.ro name server ns2.cs.pub.ro.

SOA

Start of Authority ntoarce


diveri parametri specifici zonei

cs.pub.ro has SOA record ns1.cs.pub.ro.


admin.cs.pub.ro. 2011120301 28800 7200
604800 86400

MX

Mail Exchanger identific


serverele de mail asociate cu un
domeniu

cs.pub.ro mail is handled by 5 mail.cs.pub.ro.


cs.pub.ro mail is handled by 20 vmail.cs.pub.ro.

PTR

Pointer folosite pentru rezolvare


invers

111.227.85.141.in-addr.arpa domain name pointer


cursuri.cs.pub.ro.

42

Exemplu fiier de zon


;cs.pub.ro.db
$ORIGIN pub.ro.
cs
IN
SOA

TXT
NS
NS
A
$ORIGIN cs.pub.ro.
MX
MX
ns1
A
ns2
A
mail
A
vmail
A

ns.cs.pub.ro. nsmaster.cs.pub.ro. (
2011120301
; Serial
8H
; Refresh
2H
; Retry
1W
; Expire
1D
; TTL
)
Computer Science Department
ns1.cs
ns2.cs
141.85.227.111
5
mail.cs.pub.ro
20
vmail.cs.pub.ro
141.85.226.5
141.85.241.113
141.85.227.3
141.85.227.3
43

Exemplu Pasul 0
Staia lemon.cs.pub.ro dorete s acceseze serverul
www.linux.org
Staia lemon.cs.pub.ro are configurat ca server DNS cs.pub.ro
cs.pub.ro

ns1.org

Internet
lemon.cs.pub.ro

ns.linux.org

ns.pub.ro

www.linux.org
44

Exemplu Pasul 1
Staia lemon.cs.pub.ro trimite o cerere recursiv ctre cs.pub.ro
cs.pub.ro verific dac este autoritar peste www.linux.org nu
cs.pub.ro verific dac are n cache www.linux.org nu
cs.pub.ro

ns1.org

Internet
lemon.cs.pub.ro

ns.linux.org

ns.pub.ro

www.linux.org
45

Exemplu Pasul 2
cs.pub.ro are ns.pub.ro configurat ca forwarder
cs.pub.ro trimite o cerere recursiv ctre ns.pub.ro
cs.pub.ro

R: www.linux.org

lemon.cs.pub.ro

ns.pub.ro

ns1.org

Internet
ns.linux.org

www.linux.org
46

Exemplu Pasul 3
ns.pub.ro verific dac are n cache www.linux.org nu
ns.pub.ro trimite o cerere nerecursiv ctre . (root)
cs.pub.ro

ns1.org

Internet
lemon.cs.pub.ro

ns.linux.org

ns.pub.ro

www.linux.org
47

Exemplu Pasul 4
. (root) verific dac are n cache www.linux.org nu
. (root) rspunde negativ cu hint-ul ns1.org
cs.pub.ro

ns1.org

Internet
lemon.cs.pub.ro

ns.linux.org

ns.pub.ro

www.linux.org
48

Exemplu Pasul 5
ns.pub.ro trimite o cerere nerecursiv pentru www.linux.org
ctre ns1.org
cs.pub.ro

ns1.org

Internet
lemon.cs.pub.ro

ns.linux.org

ns.pub.ro

www.linux.org
49

Exemplu Pasul 6
ns1.org verific dac are n cache www.linux.org nu
ns1.org rspunde negativ cu hint-ul ns.linux.org
cs.pub.ro

ns1.org

Internet
lemon.cs.pub.ro

ns.linux.org

ns.pub.ro

www.linux.org
50

Exemplu Pasul 7
ns.pub.ro trimite o cerere nerecursiv pentru www.linux.org
ctre ns.linux.org
cs.pub.ro

ns1.org

Internet
lemon.cs.pub.ro

ns.linux.org

ns.pub.ro

www.linux.org
51

Exemplu Pasul 8
ns.linux.org observ c este autoritar peste domeniul din cerere
ns.linux.org rspunde pozitiv cu adresa IP solicitat
cs.pub.ro

ns1.org

Internet
lemon.cs.pub.ro

ns.linux.org

ns.pub.ro

www.linux.org
52

Exemplu Pasul 9
ns.pub.ro adaug nregistrarea n cache
ns.pub.ro trimite rspunsul mai departe ctre cs.pub.ro
cs.pub.ro

184.173.230.160

ns1.org

lemon.cs.pub.ro

ns.pub.ro

Internet
ns.linux.org

www.linux.org
53

Exemplu Pasul 10
cs.pub.ro adaug nregistrarea n cache
cs.pub.ro trimite rspunsul mai departe ctre lemon.cs.pub.ro
cs.pub.ro

ns1.org

Internet
lemon.cs.pub.ro

ns.linux.org

ns.pub.ro

www.linux.org
54

Cuvinte cheie
HTTP

Browser

WWW

HTTPS

HTML
Apache
CSS

Hyperlink

Master/slave
DNS
PTR

MX
DNS

NS
nregistrare
DNS

AAAA
A

SOA

Cerere
nerecursiv
Cerere
recursiv
55

S-ar putea să vă placă și