This shows you the differences between two versions of the page.
amres_cbp_wiki:bpd_106_dodatakb_ssl [2011/05/15 20:32] mara |
amres_cbp_wiki:bpd_106_dodatakb_ssl [2011/05/15 20:49] (current) mara |
||
---|---|---|---|
Line 7: | Line 7: | ||
Sa stanovišta SSL protokola, ono što pravi razliku između klijenta i servera su akcije koje oni preduzimaju prilikom pregovora oko sigurnosnih parametara. Klijent inicira komunikaciju, porukom u kojoj se nalazi i njegov predloži skup SSL opcija koje će se koristiti za uspostavu zaštićenog kanala. Server, na osnovu onoga što je klijent ponudio, bira skup opcija koje će se koristiti. Iako je konačna odluka na serveru, server može da bira samo iz skupa parametara koje je klijent inicijalno predložio. | Sa stanovišta SSL protokola, ono što pravi razliku između klijenta i servera su akcije koje oni preduzimaju prilikom pregovora oko sigurnosnih parametara. Klijent inicira komunikaciju, porukom u kojoj se nalazi i njegov predloži skup SSL opcija koje će se koristiti za uspostavu zaštićenog kanala. Server, na osnovu onoga što je klijent ponudio, bira skup opcija koje će se koristiti. Iako je konačna odluka na serveru, server može da bira samo iz skupa parametara koje je klijent inicijalno predložio. | ||
- | ===== B.1 SSL poruke ===== | + | ===== B.1 SSL poruke ===== |
Najkompleksniji deo SSL protokola je deo oko započinjanja i dogovora o parametrima komunikacije između klijenta i servera, //SSL Handshake//. On omogućava serveru i klijentu da međusobno autentifikuju jedan drugog, da izaberu algoritam za šifrovanje, MAC algoritam i da razmene kriptografske ključeve koji će se koristiti za zaštitu podataka u SSL zapisu. | Najkompleksniji deo SSL protokola je deo oko započinjanja i dogovora o parametrima komunikacije između klijenta i servera, //SSL Handshake//. On omogućava serveru i klijentu da međusobno autentifikuju jedan drugog, da izaberu algoritam za šifrovanje, MAC algoritam i da razmene kriptografske ključeve koji će se koristiti za zaštitu podataka u SSL zapisu. | ||
Line 41: | Line 41: | ||
**//ServerKeyExchange//** - Poruka od servera koja sadrži kriptografske ključeve za uspostavu sigurne komunikacije. | **//ServerKeyExchange//** - Poruka od servera koja sadrži kriptografske ključeve za uspostavu sigurne komunikacije. | ||
- | ====== B.2 Uspostavljanje zaštićene komunikacije ====== | + | ===== B.2 Uspostavljanje zaštićene komunikacije ===== |
Osnovna funkcija koju SSL klijent i server mogu da urade je uspostavljanje kanala po kome se odvija sigurna komunikacija. | Osnovna funkcija koju SSL klijent i server mogu da urade je uspostavljanje kanala po kome se odvija sigurna komunikacija. | ||
Line 196: | Line 196: | ||
\\ | \\ | ||
- | ===== B.6.1 SSL i transportni sloj ===== | + | ==== B.6.1 SSL i transportni sloj ==== |
- | SSL protokol zahteva puzdan prenos i bez grešaka, tako da koristi tcp kao protokol transportnog sloja. SSL omogućava kombinovanje više SSL poruka u okviru jednog TCP segmenta. | + | Pošto zahteva puzdan prenos, bez grešaka, SSL koristi TCP na transportnom sloju. Omogućeno je kombinovanje više SSL poruka u okviru jednog TCP segmenta. |
- | {{ amres_cbp_wiki:interni_deo:sigurnost:ssl_transportni_sloj.jpg?450 |Slika 12 }} | + | {{ amres_cbp_wiki:interni_deo:sigurnost:ssl_transportni_sloj.jpg?400 |Slika 12 }} |
;#; | ;#; | ||
- | //Slika 12// | + | //Slika B.6.1.1 Kombinovanje više SSL poruka u jedan TCP segmentu// |
;#; | ;#; | ||
\\ | \\ | ||
- | ===== Record layer ===== | + | ==== B.6.2 Record sloj SSL protokola ==== |
- | SSL koristi //Record Layer// protokol za enkapsulaciju koji definiše zajednički format za sve SSL poruke (//Alert//, //ChangeCipherSpec//, //Handshake// i poruke same aplikacije). Na slici 13 je prikazan format poruke koji specificira //Record Layer//, a u tabeli 6 su data objašnjenja odgovarajućih polja. | + | //Record// sloj SSL protokola vrši enkapsulaciju u format prepoznatljiv za sve SSL poruke (//Alert//, //ChangeCipherSpec//, //Handshake// i poruke aplikacije). Na slici B.6.2.1 je prikazan format poruke, a u tabeli B.6.2.1 su navedena objašnjenja za odgovarajuća imena polja. |
{{ amres_cbp_wiki:interni_deo:sigurnost:ssl_record_layer.jpg?350 |Slika 13}} | {{ amres_cbp_wiki:interni_deo:sigurnost:ssl_record_layer.jpg?350 |Slika 13}} | ||
;#; | ;#; | ||
- | //Slika 13// | + | //Slika B.6.2.1 Record sloj SSL protokola je zadužen za enkapsulaciju poruke// |
;#; | ;#; | ||
\\ | \\ | ||
^ Polje ^ Veličina (B) ^ Namena ^ | ^ Polje ^ Veličina (B) ^ Namena ^ | ||
- | |//Protocol//| 1 |Označava protokol koji je enkapsuliran. Može da ima sledeće vrednosti: 20 – //ChangeCipherSpec//; 21 – //Alert//; 22 – //Handshake//; 23 - Aplikacija| | + | |//Protocol//| 1 |Označava da je poruka deo jednog od tri //handshake// pod-protokola ili aplikacije. Moguće su sledeće vrednosti: \\ 20 – //ChangeCipherSpec//; \\ 21 – //Alert//; \\ 22 – //Handshake//; \\ 23 - Aplikacija| |
|//Version//| 2 |Verzija SSL protokola. Trenutna verzija je 3.0, a TLS koristi verziju 3.1| | |//Version//| 2 |Verzija SSL protokola. Trenutna verzija je 3.0, a TLS koristi verziju 3.1| | ||
- | |//Length//| 2 |Dužina poruke protokola iznad| | + | |//Length//| 2 |Dužina poruke preuzete od protokola na sloju iznad Record sloja SSLa.| |
- | |//Protocol Messages//| n |Poruka enkapsuliranog protokola| | + | |//Protocol Messages//| n |Poruka | |
;#; | ;#; | ||
- | //Tabela 6// | + | //Tabela B.6.2.1 Polja SSL Record Layer poruke// |
;#; | ;#; | ||
\\ | \\ | ||
- | **//ChangeCipherSpec// protokol** | + | **//ChangeCipherSpec// protokol:** je jednostavan protokol koji ima samo jednu poruku, //ChangeCipherSpec//, koja je već pomenuta i objašnjena. |
- | Ovo je jednostavan protokol koji ima samo jednu pruku, ChangeCipherSpec, koja je već pomenuta i objašnjena. | + | **//Alert// protokol: ** se koristi da bi signalizirali grešku ili upozorenje drugoj strani uključenoj u komunikaciju. |
- | **//Alert// protokol** | + | **//Handshake// protokol:** je zadužen za razmenu poruka tokom uspostavljanja i dogovaranja o parametrima SSL sesije. Pripadaju mu poruke //HelloRequest//, //ClientHello//, //ServerHello//, //Certificate//, //ServerKeyExchange//, //CertificateRequest//, //ServerHelloDone//, //CertificateVerify//, //ClientKeyExchange//, //Finished//, čije je značenje opisano na početku u poglavlju B.1 SSL poruke. |
- | Koriste ga sistemi kako bi signalizirali grešku ili upozorenje drugoj strani komunikacije. | ||
- | **//Handshake// protokol** | ||
- | |||
- | Zadužen je razmenu poruka za dogovor parametra SSL sesije: | ||
- | |||
- | * //HelloRequest// | ||
- | * //ClientHello// | ||
- | * //ServerHello// | ||
- | * //Certificate// | ||
- | * //ServerKeyExchange// | ||
- | * //CertificateRequest// | ||
- | * //ServerHelloDone// | ||
- | * //CertificateVerify// | ||
- | * //ClientKeyExchange// | ||
- | * //Finished// |