32
Web sigurnost

William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

  • Upload
    others

  • View
    19

  • Download
    0

Embed Size (px)

Citation preview

Page 1: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

Web sigurnost

Page 2: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

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: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

Ograničenja

• Često nikada nisu pre toga komunicirali klijent i

server, a ne znaju sigurno ni sa kim

komuniciraju na početku

• Ne znaju da li klijent ima validan sertifikat

• Ne znaju šta koriste za autentikaciju, šifrovanje i

autentikaciju poruke

• Ne zna se koje kriptografske algoritme poseduju

– mora se definisati skup algoritama, a svaka

strana ne mora da poseduje kompletan skup

Page 4: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

Ograničenja (2)

• Izabrati najsigurnije algoritme

pregovaranjem u datim okolnostima

• Sprovesti autentikaciju klijenata kada

serverska aplikacija traži

• Javljati obema stranama upozorenja

• Definisati opšti okvir zasnovan na javnim

ključevima, odnosno sertifikatima

• Kompresija pre slanja? DA

Page 5: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

SSL (Secure Socket Layer)

• Sigurnosni servis na transportnom sloju

• Razvio ga Netscape

• Na kraju postao uz manje izmene Internet

standard poznat kao TLS (Transport Layer

Security)

• Koristi TCP da dobije pouzdan servis sa

kraja na kraj

• SSL ima dva sloja protokola

Page 6: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

SSL Arhitektura

Page 7: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

SSL Arhitektura

• SSL 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

• SSL konekcija

– Prelazni, peer-to-peer, komunikacioni link

– Pridružen jednoj SSL sesiji

Page 8: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

SSL Record Protocol • tajnost

– Upotrebom simetričnog sifrovanja sa deljenim tajnim

ključem određenim Handshake Protokolom

– IDEA CBC, RC2-40, DES-40, DES, 3DES, Fortezza,

RC4-40, RC4-128 i kasnije AES CBC, AES GCM,

AES CCM, Camelia CBC, Camelia GCM, SEED CBC

i ChaCha20+Poly1305 SVI KOJI NISU KASNIJE SU

NESIGURNI po najnovijim rezultatima iz literature

– 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 9: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

SSL Record protocol

• Fragmenti max 16384 bajta

• MAC: hash(MAC_secret ||

pad_2 || hash(MAC_secret ||

pad_1 || seq_num ||

SSLCompressed.type ||

SSLCompressed.length ||

SSLCompressed.fragment))

– pad_1 = 0011 0110 x 48

– pad_2 = 0101 1100 x 48

• SSL Record Header:

– Content Type

– Major Version (3)

– Minor Version (0 ili 1)

– Compressed Length

Page 10: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

SSL Change Cipher Spec Protocol

• Jedan od 3 SSL specifična protokola koji

koriste SSL Record protokol

• 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 (autentikacija, šifrovanje, MAC)

Page 11: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

SSL Alert Protocol

• Prosleđuje SSL-povezana upozorenja do peer

entiteta

• ozbiljnost • Upozoravajuća ili fatalna

• 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 12: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

SSL 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 13: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

Vrste SSL 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 14: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

14

SSL Handshake (no client auth)

Klijent Server

ClientHello (predlog parametara zaštite i kompresije)

ServerHello (specifikacija prihvaćenog protokola + sl. broj)

Certificate (Public Key)

ServerHelloDone

ClientKeyExchange (E[Premaster secret + sl broj])

ChangeCipherSpec

Finished

ChangeCipherSpec

Finished

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

master_secret = MD5(pre_master_secret ||

SHA('A' || pre_master_secret ||

ClientHello.random || ServerHello.random)) ||

MD5(pre_master_secret ||

SHA('BB' || pre_master_secret ||

ClientHello.random || ServerHello.random)) ||

MD5(pre_master_secret || SHA('CCC' ||

pre_master_secret || ClientHello.random ||

ServerHello.random))

Page 15: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

15

SSL 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 16: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

server_key_exchange

• Samo kada se ne radi

RSA ili Fixed DH

razmena

Page 17: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

Generisanje kriptografskog

materijala • 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

• Dobijaju se od master secret-a 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)) ||

. . . Dok se ne dobije dovoljno materijala

Page 18: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

TLS (Transport Layer Security)

• IETF standard RFC 2246 sličan SSLv3 (minor

version 1)

• Manje razlike

– U formatu zapisa, broj verzije

– Koristi HMAC za MAC

– pseudo-slučajna funkcija radi proširenje tajnog dela

– Poseduje dodatne kodove za upozorenja

– Neke razlike u podržanim šifarskim algoritmima

– Postoje promene u pregovaranju oko sertifikata

– Promene u načinu dopune poruke

Page 19: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

Open SSL - Heartbleed

• SSL heartbeats – koriste se za održavanje

SSL sesije zbog timeout-a

• Izbegavanje SSL handshake i SSL

Change cifer spec protokola

• Šalju se bez autentikacije i specificiraju

koliko memorije im je potrebno do 64

kbyte

• Tako puno puta mogu da dobiju po deo

memorije i čitaju zaostali sadržaj

Page 20: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

• Lozinke, privatni ključevi, ključevi sesija, ...

• Nema tragova u OS – savršen napad

• 17% servera je ima Open SSL

• Reverse Heartbleed – maliciozni server

može da koristi heartbeat da čita memoriju

klijentske mašine!!!

• Da li je neko znao i ćutao??!!

• Da li je namerno generisano??!!

Page 21: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

Secure Electronic Transactions

(SET) • Otvorena specifikacija

• Služi za zaštitu transakcija karticama preko

interneta

• Razvili ga 1996 Mastercard, Visa i drugi

• Nije sistem za plaćanje, već skup sigurnosnih

mehanizama koji podržavaju plaćanje:

– Sigurna komunikacija između učesnika

– poverenje dobijeno korišćenjem X.509v3 sertifikata

– Privatnost - učesnici dobijaju samo one

informacije koje su im neophodne

Page 22: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

SET Komponente

Page 23: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

SET Transakcije

1. Kupac otvara nalog/račun/karticu

2. Kupac dobija sertifikat

3. Prodavac ima svoj sertifikat

4. Kupac naručuje robu/servise

5. Kupac proverava prodavca (sertifikat)

6. Kupac šalje informacije o narudžbini i plaćanju prodavcu

7. Prodavac zahteva autorizaciju plaćanja

8. Prodavac potvrđuje narudžbinu

9. Prodavac isporučuje robu ili servise

10.Prodavac zahteva plaćanje

Page 24: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

Dupli potpis - Dual Signature

• Kupac kreira dve poruke

– order information (OI) za prodavca

– payment information (PI) za banku

• Ključna razlika: Ni banka ni trgovac ne

treba da znaju detalje namenjene drugom

učesniku

• Ali moraju da budu povezane

• Dvostruko potpisivanje

– Potpisane stopljene hash funkcije OI & PI

Page 25: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

Dupli potpis

• DS = E(PRc, [H(H(PI)||H(OI)])

• PRc – Privatni ključ kupca

• PI – Payment information, PIMD

• OI – Order information, OIMD

Page 26: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

Purchase Request – Kupac

Page 27: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

Purchase Request – Trgovac

Page 28: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

Zahtev za kupovinom – Trgovac

1. Verifikuje vlasnika kartice preko sertifikata od

CA

2. Verifikuje dual signature korišćenjem javnog

ključa potrošača – vlasnika kartice. Tako

potvrđuje da je potpisan tajnim ključem

potrošača

3. Procesira narudžbu i prosleđuje informacije o

plaćanju do payment gatewaya za authorizaciju

4. Šalje odgovor oko narudžbe vlasniku kartice

Page 29: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

Zahtev za autorizacijom

plaćanja • Prosleđuje se PI koju je trgovac dobio od

kupca + OIMD.

• Šalje se autorizaciona informacija – o ID-u

transakcije. Kriptovana je simetričnim

ključem koji je kriptovan privatnim ključem

trgovca.

• Digitalna envelopa

• Sertifikati

Page 30: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

Payment Gateway Autorizacija

1. Proverava sve sertifikate

2. Dekriptuje digitalnu envelopu autorizacionog dela da bi dobio simetričan ključ i dekriptuje autorizacioni blok.

3. Verifikuje potpis trgovca u autorizacionom bloku

4. Dekriptuje digitalnu envelopu da bi dekriptovao PI

5. Verifikuje dupli potpis

6. Verifikuje da ID transakcije dobijen od trgovca da odgovara onom u PI

7. Zahteva i dobija autorizaciju od onoga ko je izdao karticu

8. Šalje autorizacioni odgovor

Page 31: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

Payment Capture

• Prodavac šalje payment gateway-u

payment capture zahtev

• Gateway proverava zahtev

• Gateway prebacuje sredstva na račun

prodavca

• Gateway obaveštava prodavca o transferu

Page 32: William Stallings, Cryptography and Network …rti.etf.bg.ac.rs/rti/ir4zp/materijali/predavanja/2017/10...SSL Change Cipher Spec Protocol •Jedan od 3 SSL specifična protokola koji

Problemi SET

• Mala rasprostranjenost zbog kompleksnije

infrastrukture od SSL:

– Potrebe za posebnim klijentskim softverom (

e-wallet).

– Cena za prodavce veća nego kod SSL

alternative.

– Distribucija sertifikata za klijente.