10 web sigurnost...web sigurnost • web se sada koristi za korisni čki interfejs u višeslojnim...
TRANSCRIPT
![Page 1: 10 Web sigurnost...Web Sigurnost • Web se sada koristi za korisni čki interfejs u višeslojnim arhitekturama softvera, a ne sa osnovnim ciljem da budu distribuirane aplikacije](https://reader031.vdocuments.pub/reader031/viewer/2022041814/5e59c13047bc8e68cf4e29cc/html5/thumbnails/1.jpg)
Web sigurnost
![Page 2: 10 Web sigurnost...Web Sigurnost • Web se sada koristi za korisni čki interfejs u višeslojnim arhitekturama softvera, a ne sa osnovnim ciljem da budu distribuirane aplikacije](https://reader031.vdocuments.pub/reader031/viewer/2022041814/5e59c13047bc8e68cf4e29cc/html5/thumbnails/2.jpg)
Web Sigurnost
• Web se sada koristi za korisnički interfejs u višeslojnim arhitekturama softvera, a ne sa osnovnim ciljem da budu distribuirane aplikacije.
• Internet & Web su ranjivi
• Niz napada ali dominiraju napadi vezani za– integritet
– tajnost
– denial of service
– autentikaciju
• Potrebno je razviti dodatne sigurnosne mehanizme
![Page 3: 10 Web sigurnost...Web Sigurnost • Web se sada koristi za korisni čki interfejs u višeslojnim arhitekturama softvera, a ne sa osnovnim ciljem da budu distribuirane aplikacije](https://reader031.vdocuments.pub/reader031/viewer/2022041814/5e59c13047bc8e68cf4e29cc/html5/thumbnails/3.jpg)
Više od 50% saobraćaja na
internetu je kriptovano
![Page 4: 10 Web sigurnost...Web Sigurnost • Web se sada koristi za korisni čki interfejs u višeslojnim arhitekturama softvera, a ne sa osnovnim ciljem da budu distribuirane aplikacije](https://reader031.vdocuments.pub/reader031/viewer/2022041814/5e59c13047bc8e68cf4e29cc/html5/thumbnails/4.jpg)
TLS (Transport Layer Security)
• Sigurnosni servis na transportnom sloju
• SSL je razvio Netscape
• SSL v3 ≈ TLS v1
• Na kraju postao uz manje izmene Internet standard poznat kao TLS (Transport Layer Security)
• Poslednja standardna verzija: TLSv1.2
• Koristi TCP da dobije pouzdan servis sa kraja na kraj
• TLS ima dva sloja protokola
![Page 5: 10 Web sigurnost...Web Sigurnost • Web se sada koristi za korisni čki interfejs u višeslojnim arhitekturama softvera, a ne sa osnovnim ciljem da budu distribuirane aplikacije](https://reader031.vdocuments.pub/reader031/viewer/2022041814/5e59c13047bc8e68cf4e29cc/html5/thumbnails/5.jpg)
TLS Arhitektura
• TLS sesija
– Asocijacija između klijenta i servera
– Kreira se kroz Handshake Protocol
– Definiše skup kriptografskih parametara
– Može se deliti od strane više SSL konekcija
• TLS konekcija
– Prelazni, peer-to-peer, komunikacioni link
– Pridružen jednoj SSL sesiji
![Page 6: 10 Web sigurnost...Web Sigurnost • Web se sada koristi za korisni čki interfejs u višeslojnim arhitekturama softvera, a ne sa osnovnim ciljem da budu distribuirane aplikacije](https://reader031.vdocuments.pub/reader031/viewer/2022041814/5e59c13047bc8e68cf4e29cc/html5/thumbnails/6.jpg)
TLS Arhitektura
![Page 7: 10 Web sigurnost...Web Sigurnost • Web se sada koristi za korisni čki interfejs u višeslojnim arhitekturama softvera, a ne sa osnovnim ciljem da budu distribuirane aplikacije](https://reader031.vdocuments.pub/reader031/viewer/2022041814/5e59c13047bc8e68cf4e29cc/html5/thumbnails/7.jpg)
TLS Record Protocol
• tajnost
– Upotrebom simetričnog sifrovanja sa deljenim tajnim
ključem određenim Handshake Protokolom
– Poruka se komprimuje pre enkripcije
• Integritet poruke
– Korišćenjem MAC sa deljenim tajnim ključem
– Slično sa HMAC ali sa drugačijom dopunom
![Page 8: 10 Web sigurnost...Web Sigurnost • Web se sada koristi za korisni čki interfejs u višeslojnim arhitekturama softvera, a ne sa osnovnim ciljem da budu distribuirane aplikacije](https://reader031.vdocuments.pub/reader031/viewer/2022041814/5e59c13047bc8e68cf4e29cc/html5/thumbnails/8.jpg)
TLS Record protocol
• Fragmenti max 16384 bajta
• TLSv1.2: no compression default
• MAC: HMAC funkcija
HMAC_hash(MAC_write_secret,
seq_num ƖƖ
TLSCompressed.type ƖƖ
TLSCompressed.version ƖƖ
TLSCompressed.length ƖƖ
TLSCompressed.fragment)
• SSL Record Header:
– Content Type
– Major Version (3)
– Minor Version (0 ili 1)
– Compressed Length
![Page 9: 10 Web sigurnost...Web Sigurnost • Web se sada koristi za korisni čki interfejs u višeslojnim arhitekturama softvera, a ne sa osnovnim ciljem da budu distribuirane aplikacije](https://reader031.vdocuments.pub/reader031/viewer/2022041814/5e59c13047bc8e68cf4e29cc/html5/thumbnails/9.jpg)
TLS Change Cipher Spec Protocol
• Jedan od 4 SSL specifična protokola koji koriste SSL Record protocol
• Proizvodi jednu poruku koja signalizira da su naredne SSL poruke kriptovane
• Prevodi stanje u iščekivanju u tekuće stanje
• Tako se vrši ažuriranje korišćenog cipher suite-a
![Page 10: 10 Web sigurnost...Web Sigurnost • Web se sada koristi za korisni čki interfejs u višeslojnim arhitekturama softvera, a ne sa osnovnim ciljem da budu distribuirane aplikacije](https://reader031.vdocuments.pub/reader031/viewer/2022041814/5e59c13047bc8e68cf4e29cc/html5/thumbnails/10.jpg)
TLS Alert Protocol
• Prosleđuje SSL-povezana upozorenja do peer
entiteta
• ozbiljnost• Upozoravajuća (warning) ili fatalna (fatal)
• Specifična upozorenja• unexpected message, bad record mac, decompression
failure, handshake failure, illegal parameter
• close notify, no certificate, bad certificate, unsupported certificate, certificate revoked, certificate expired, certificate unknown
• Komprimuje se i šifruje kao svi SSL podaci
![Page 11: 10 Web sigurnost...Web Sigurnost • Web se sada koristi za korisni čki interfejs u višeslojnim arhitekturama softvera, a ne sa osnovnim ciljem da budu distribuirane aplikacije](https://reader031.vdocuments.pub/reader031/viewer/2022041814/5e59c13047bc8e68cf4e29cc/html5/thumbnails/11.jpg)
TLS Handshake Protocol
• Dozvoljava serveru & klijentu da se:– Međusobno autentikuju
– Dogovore algoritme za šifrovanje i MAC
– Da dogovore ključeve koji se koriste
• Sastoji se iz niza poruka u fazama:– Uspostavljanja sigurnosnih parametara
– Autentikacije servera i razmene ključeva
– Autentikacije klijenta i razmene ključeva
– Završetka
![Page 12: 10 Web sigurnost...Web Sigurnost • Web se sada koristi za korisni čki interfejs u višeslojnim arhitekturama softvera, a ne sa osnovnim ciljem da budu distribuirane aplikacije](https://reader031.vdocuments.pub/reader031/viewer/2022041814/5e59c13047bc8e68cf4e29cc/html5/thumbnails/12.jpg)
Vrste TLS razmene ključeva • RSA: Simetrični ključ se kriptuje RSA javnim ključem
primaoca. Podrazumeva se postojanje sertifikata.
• Fixed Diffie-Hellman: Diffie-Hellman razmena kod koje
su DH javne vrednosti potpisane od strane CA. Pošto su
fiksne i nepromenljive, uvek se dobija isti simetričan
ključ.
• Ephemeral Diffie-Hellman: Diffie-Hellman razmena kod
koje su razmenjene javne DH vrednosti potpisane RSA
ili DSS algoritmom. Uvek se dobija različit ključ.
• Anonymous Diffie-Hellman: Osnovna Diffie-Hellman
šema bez autentikacije i zaštite od man-in-the-middle
napada.
• Fortezza šema – PCMCIA kripto kartica sa ključevima,
čipom
![Page 13: 10 Web sigurnost...Web Sigurnost • Web se sada koristi za korisni čki interfejs u višeslojnim arhitekturama softvera, a ne sa osnovnim ciljem da budu distribuirane aplikacije](https://reader031.vdocuments.pub/reader031/viewer/2022041814/5e59c13047bc8e68cf4e29cc/html5/thumbnails/13.jpg)
13
TLS Handshake (no client auth)
Premaster secret 48 bajta
Koristi se za računanje
master secret-a
client_key_exchange
message može da sadrži DH
javnu vrednost, ako je ta
vrsta razmene. Dobijeni ključ
je premaster secret
Kod RSA – generiše klijent
![Page 14: 10 Web sigurnost...Web Sigurnost • Web se sada koristi za korisni čki interfejs u višeslojnim arhitekturama softvera, a ne sa osnovnim ciljem da budu distribuirane aplikacije](https://reader031.vdocuments.pub/reader031/viewer/2022041814/5e59c13047bc8e68cf4e29cc/html5/thumbnails/14.jpg)
14
TLS Handshake (w client auth)Klijent Server
ClientHello (predlog parametara zaštite i kompresije)
ServerHello (specifikacija prihvaćenog protokola + sl. broj)
CertificateRequest
ServerHelloDone
ClientKeyExchange (E[Premaster secret + sl broj])
ChangeCipherSpec
Finished
ChangeCipherSpec
Finished
Certificate (Public Key)
Certificate
CertificateVerify (tekst potpisan privatnim ključem klijenta)
![Page 15: 10 Web sigurnost...Web Sigurnost • Web se sada koristi za korisni čki interfejs u višeslojnim arhitekturama softvera, a ne sa osnovnim ciljem da budu distribuirane aplikacije](https://reader031.vdocuments.pub/reader031/viewer/2022041814/5e59c13047bc8e68cf4e29cc/html5/thumbnails/15.jpg)
server_key_exchange
• Samo kada se ne radi RSA ili Fixed DH razmena
![Page 16: 10 Web sigurnost...Web Sigurnost • Web se sada koristi za korisni čki interfejs u višeslojnim arhitekturama softvera, a ne sa osnovnim ciljem da budu distribuirane aplikacije](https://reader031.vdocuments.pub/reader031/viewer/2022041814/5e59c13047bc8e68cf4e29cc/html5/thumbnails/16.jpg)
Client Hello
![Page 17: 10 Web sigurnost...Web Sigurnost • Web se sada koristi za korisni čki interfejs u višeslojnim arhitekturama softvera, a ne sa osnovnim ciljem da budu distribuirane aplikacije](https://reader031.vdocuments.pub/reader031/viewer/2022041814/5e59c13047bc8e68cf4e29cc/html5/thumbnails/17.jpg)
Server Hello
![Page 18: 10 Web sigurnost...Web Sigurnost • Web se sada koristi za korisni čki interfejs u višeslojnim arhitekturama softvera, a ne sa osnovnim ciljem da budu distribuirane aplikacije](https://reader031.vdocuments.pub/reader031/viewer/2022041814/5e59c13047bc8e68cf4e29cc/html5/thumbnails/18.jpg)
Certificate
![Page 19: 10 Web sigurnost...Web Sigurnost • Web se sada koristi za korisni čki interfejs u višeslojnim arhitekturama softvera, a ne sa osnovnim ciljem da budu distribuirane aplikacije](https://reader031.vdocuments.pub/reader031/viewer/2022041814/5e59c13047bc8e68cf4e29cc/html5/thumbnails/19.jpg)
Server key exchange
![Page 20: 10 Web sigurnost...Web Sigurnost • Web se sada koristi za korisni čki interfejs u višeslojnim arhitekturama softvera, a ne sa osnovnim ciljem da budu distribuirane aplikacije](https://reader031.vdocuments.pub/reader031/viewer/2022041814/5e59c13047bc8e68cf4e29cc/html5/thumbnails/20.jpg)
Generisanje kriptografskog
materijala (1)• Za zaštitu HTTP saobraćaja potrebno je da se
odrede: – client write MAC secret,
– server write MAC secret,
– client write key,
– server write key,
– client write IV, server write IV
• Master secret se dobija od premaster secret-a
master_secret = PRF(pre_master_secret, “master secret”, ClientHello.random ‘ ServerHello
.random)
![Page 21: 10 Web sigurnost...Web Sigurnost • Web se sada koristi za korisni čki interfejs u višeslojnim arhitekturama softvera, a ne sa osnovnim ciljem da budu distribuirane aplikacije](https://reader031.vdocuments.pub/reader031/viewer/2022041814/5e59c13047bc8e68cf4e29cc/html5/thumbnails/21.jpg)
Generisanje kriptografskog
materijala (2)
• Materijal za ključeve isto kao za master secret:
PRF: P_hash(secret, seed) = HMAC_hash(secret, A(1) ƖƖ seed) ƖƖ
HMAC_hash(secret, A(2) ƖƖ seed) ƖƖ
HMAC_hash(secret, A(3) ƖƖ seed) ƖƖ
A(0) = seed
A(i) = HMAC_hash(secret, A(i - 1))
key_block = MD5(master_secret ƖƖ SHA(‘A’ ƖƖ master_secret ƖƖ ServerHello.random ƖƖ
ClientHello.random)) ƖƖ MD5(master_secret ƖƖ SHA(’BB’ ƖƖ master_secret ƖƖ
ServerHello.random ƖƖ ClientHello.random)) ƖƖ MD5(master_secret ƖƖ SHA(’CCC’ ƖƖ
master_secret ƖƖ ServerHello.random ƖƖ ClientHello.random)) ƖƖ …
![Page 22: 10 Web sigurnost...Web Sigurnost • Web se sada koristi za korisni čki interfejs u višeslojnim arhitekturama softvera, a ne sa osnovnim ciljem da budu distribuirane aplikacije](https://reader031.vdocuments.pub/reader031/viewer/2022041814/5e59c13047bc8e68cf4e29cc/html5/thumbnails/22.jpg)
TLS PRF funkcija
![Page 23: 10 Web sigurnost...Web Sigurnost • Web se sada koristi za korisni čki interfejs u višeslojnim arhitekturama softvera, a ne sa osnovnim ciljem da budu distribuirane aplikacije](https://reader031.vdocuments.pub/reader031/viewer/2022041814/5e59c13047bc8e68cf4e29cc/html5/thumbnails/23.jpg)
TLS Heartbeat protocol
• Naknadno dodat 2012. (nije deo originalne
specifikacije)
• Služi za proveru toga da li je drugi učesnik SSL
sesije još uvek aktivan i osvežavanje stanja u
firewall uređajima
• Način rada sličan ping mehanizmu
• Heartbeat poruke:– struct {
HeartbeatMessageType type; /* request ili response */
uint16 payload_length;
opaque payload[HeartbeatMessage.payload_length];
opaque padding[padding_length];
} HeartbeatMessage;
![Page 24: 10 Web sigurnost...Web Sigurnost • Web se sada koristi za korisni čki interfejs u višeslojnim arhitekturama softvera, a ne sa osnovnim ciljem da budu distribuirane aplikacije](https://reader031.vdocuments.pub/reader031/viewer/2022041814/5e59c13047bc8e68cf4e29cc/html5/thumbnails/24.jpg)
SSL Heartbeat protocol - bug
• Prouzrokovao Heartbleed bug (2012-2014), 17% sajtova na internetu ugroženo
• Prva implementacija u OpenSSL 1.0.1
• Loša provera kôda u OpenSSL projektu
• Mogućnost krađe zaštićenih podataka iz memorije ako se specificira veći payload_length od stvarne dužine payload
• Patch – jedna linija kôda:– if (1 + 2 + payload + 16 > s->s3->rrec.length) return 0;
/* silently discard per RFC 6520 sec. 4 */
![Page 25: 10 Web sigurnost...Web Sigurnost • Web se sada koristi za korisni čki interfejs u višeslojnim arhitekturama softvera, a ne sa osnovnim ciljem da budu distribuirane aplikacije](https://reader031.vdocuments.pub/reader031/viewer/2022041814/5e59c13047bc8e68cf4e29cc/html5/thumbnails/25.jpg)
TLS v1.3
• Još uvek draft
• Izbačeni stari protokoli koji se smatraju za
nesigurne
• Izbačena kompresija
• Izbačeni anonimni DH
• Izbačen Change Cipher Spec
• Izbačen MD5 i SHA-224
• Brži handshake
![Page 26: 10 Web sigurnost...Web Sigurnost • Web se sada koristi za korisni čki interfejs u višeslojnim arhitekturama softvera, a ne sa osnovnim ciljem da budu distribuirane aplikacije](https://reader031.vdocuments.pub/reader031/viewer/2022041814/5e59c13047bc8e68cf4e29cc/html5/thumbnails/26.jpg)
QUIC protokol
• Razvijen od strane Google-a
• Još uvek nije standardizovan, ali čini 10%
internet saobraćaja u 2018 (Chrome, Google),
preko 20% u 2019
• Dve verzije: Google i IETF
• Obuhvata funkcionalnost TCP i TLSv1.3
• Paketi enkapsulirani u UDP
![Page 27: 10 Web sigurnost...Web Sigurnost • Web se sada koristi za korisni čki interfejs u višeslojnim arhitekturama softvera, a ne sa osnovnim ciljem da budu distribuirane aplikacije](https://reader031.vdocuments.pub/reader031/viewer/2022041814/5e59c13047bc8e68cf4e29cc/html5/thumbnails/27.jpg)
QUIC protokol
• Brzo uspostavljanje veza (jedan handshake umesto
TCP+TLS)
• Multipleksiranje više HTTP tokova (stream) u okviru
jedne veze
• Lakše promene kontrole toka transportnog protokola
• Brži prenos podataka
• Laka mobilnost korisnika (poseban QUIC Connection
ID identifikator)
![Page 28: 10 Web sigurnost...Web Sigurnost • Web se sada koristi za korisni čki interfejs u višeslojnim arhitekturama softvera, a ne sa osnovnim ciljem da budu distribuirane aplikacije](https://reader031.vdocuments.pub/reader031/viewer/2022041814/5e59c13047bc8e68cf4e29cc/html5/thumbnails/28.jpg)
AMRES <-> Google