Sigurni VoIP

Izvor: SIS Wiki
Skoči na: orijentacija, traži

Članovi tima:

Ivan Gladović, Marko Malnar, Ivan Reif, Siniša Sambol,


Sadržaj

Uvod

U današnjem svijetu, računalne mreže promjenile su način na koji ljudi komuniciraju. Internet, koji je započeo kao projekt američkog ministarstva obrane, danas je sveprisutan i teško je uopće zamisliti svijet bez njega. Razvoj World Wide Web-a i elektroničke pošte su dramatično utjecali na smanjenje kašnjenja u globalnim komunikacijama i prikupljanju informacija. Međutim, javne komutirane telefonske mreže su i dalje nastavile dominirati u svom području.

Internet je utjecao na smanjenje brojnih troškova, pa se tako razvila ideja o jeftinijim razgovorima putem Interneta. Da bi se glas prenio putem interneta, bilo je potrebno taj glas podijeliti u niz višestrukih paketa, od kojih će se svaki prenositi samostalno. Kada stignu na odredište, paketi se ponovo sastavljaju prema pravilnom redosljedu.

Pomoću IP (Internet Protocol) tehnologije ovo je moguće izvesti. Glas je samo druga vrsta podataka i kao takav se može staviti u paket i prenositi uz pomoć IP protokola.

--Igladovic 14:55, 2. siječnja 2012. (CET)

Što je VoIP?

VoIP predstavlja akronim za „Voice over Internet protocol“. Možemo zapravo reći da VoIP opisuje skup objekata za upravljanje i isporuku glasa koristeći IP protokol. Drugim rječima, VoIP predstavlja mogućnost ostvarivanja telefonskih poziva i slanja faksova preko mreža za prijenos podataka temeljenih na IP protokolu s odgovarajućom razinom kvalitete usluge i vrhunskog odnosa cijena/troškovi. Često se VoIP naziva i IP telefonijom.

Wikipedija definira VoIP kao komunikacijsku tehnologiju koja omogućava prijenos zvučne komunikacije preko internetske mreže. [Wikipedia, VoIP]

Bitno je razumjeti da je VoIP vrlo različito od PSTN (Public Switched Telephone Network). Kada je ostvaren jedan "običan" PSTN poziv, virtualno spojen krug je uspostavljen između izvora i odredišta za vrijeme trajanje poziva. U slučaju VoIP-a ne postoji takav krug. Analogni signal u kojem je sadržan glas, kodiran u digitalnom obliku, je podijeljen u različite pakete. Svaki paket se neovisno prenosi preko privatnih mreža ili Interneta koristeći IP protokol. Prema tome, VoIP se može smatrati izravnim konkurentom PSTN mreža u industriji telefonskih usluga. [Vetteth, Joseph, Vincent]

Nadalje podrijetlo VoIP-a se može pratiti od 1994. Godine kada se pojavio jednostavni shareware program za PC računala koji su omogućavao glasovni chat preko interneta. Danas opseg VoIP-a nije ograničen za prijenos samo audio signala između dviju krajnjih točaka. Današnji VoIP podržava višestranačku konferenciju, real-time video, podatkovne i faks prijenose, itd. Iako danas prevladavaju IP mreže, implementacija VoIP-a na njima zahtijeva velike napore. Postoji mnogo pitanja koja treba riješiti i probleme koje pritom treba svladati. U ovom radu ćemo opisati različite probleme koji se pojavljuju kod implementacije VoIP-a i proučiti različite protokole i procedure. [Vetteth, Joseph, Vincent]

--Igladovic 14:55, 2. siječnja 2012. (CET)

Zašto VoIP?

PSTN telefoni su u funkciji više od stotinu godina. Prema tome, VoIP mora ponuditi značajne prednosti u odnosu na PSTN ako će biti prihvaćen na globalnoj razini. Smanjenje troškova predstavlja glavnu prednost VoIP-a. Na primjer, međunarodni pozivi mogu biti preusmjereni prema zemlji odredišta, putem javnog interneta, i na taj način se mogu zaobići različita plaćanja, odnosno može se uštedjeti na PSTN računima. Također VoIP može pomoći tvrtkama u smanjenju ukupnnih troškova opreme integriranjem glasovnih i podatkovnih mreža. Višekorisnička konferencija, real-time multimedije i prijenos podataka su samo neke od usluga koje pruža VoIP. Danas su ti čimbenici bitni za razvoj i implementaciju VoIP-a u različitim dijelovima svijeta. [Vetteth, Joseph, Vincent]

Jedna od velikih prednosti VoIP-a su besplatni razgovori. Kao što smo već spomenuli, VoIP koristi javnu mrežu (Internet) za prijenos paketa. Prema tome, udaljenost nije kriterij za naplatu korištenja, kao u PSTN. Stoga, VoIP pozivi se mogu ostvariti besplatno, koristeći postojeće infrastrukture na internetu (pristup internetu se pretpostavlja). Međutim, postoje i upozorenja. VoIP često ne jamči istu kvalitetu usluge kao i tradicionalna PSTN telefonija. Kvaliteta glasa u VoIP-u može biti degradirana. Isto, tako vrijeme uspostavljanja poziva može biti veće nego kod PSTN-a.

Kvaliteta glasa primljenog na odredištu je glavna briga u VoIP-u. Loša kvaliteta glasa se pripisuje nepouzdanosti svojstvenoj paketima IP mreže. Paketi koji nose podatke se mogu izgubiti u mreži ili mogu stići na odredište u pogrešnom redosljedu. Različiti protokoli, kao što su RTP i RTCP, su zasnovani s ciljem kako bi se smanjio ovaj problem.

PSTN će i dalje biti glavni igrač u telefonskoj industriji. Dakle, VoIP bi trebao biti u mogućnosti da djeluje između PSTN-a i drugih postojećih multimedijskih prijenosnih mreža. Kao se glasovni podaci prenose preko javnog Interneta, privatnost poziva je upitna u VoIP-u. Prema tome, VoIP mora osigurati metode za šifriranje poziva, kao i omogućiti autentifikaciju i nadzor pristupa korisnika. Također VoIP uključuje veliki broj kooperativnih procesa. Razne strategije i tehnologije razvijene su za rješavanje tih problema. [Vetteth, Joseph, Vincent]

--Igladovic 14:55, 2. siječnja 2012. (CET)

VoIP tehnologija

Uspostavljanje PSTN poziva

Da bi shvatili kako funkcionira VoIP prvo moramo razumjeti kako radi PSTN. Ostvarivanje jednog običnog telefonskog poziva uključuje veliki broj koraka. Ti osnovni koraci su navedeni u nastavku [Vetteth, Joseph, Vincent]:

1. Pozivatelj diže telefonsku slušalicu i čuje ton biranja.

2. Telefonski broj se upisuje, navodeći broj osobe koju pozivamo.

3. Signali se šalju putem PSTN i formira se (virtualni) krug za poziv. Kapacitet i propusnost veze su rezervirani za poziv.

4. Odredišni telefon zazvoni, što ukazuje da je poziv stigao.

5. Osoba koju pozivamo diže telefonsku slušalicu i počinje razgovor. Glas, odnosno razgovor je preveden u digitalni oblik u središtu mreže, a zatim natrag u analogni na rubu.

6. Razgovor završava, naplaćuje se, krug se raskida, a sredstva se raspuštaju.

Slika1.jpg

Slika 1. Koraci u PSTN telefoniji [Vetteth, Joseph, Vincent]


Uspostavljanje VoIP poziva

Za korisnika, uspostavljanje VoIP poziva se ne razlikuje u odnosu na PSTN poziv. Ipak, u VoIP pozivu, pozivni slijed (sekvenca) za uspostavljanje poziva mora biti simulirana -signal tonskog biranja, melodija, signal zauzetosti. Sam glas se treba pretvoriti iz analognog u digitalni, izrezati na pakete, poslati preko mreže u formatu paketa, presložiti se i ponovno pretvoriti iz digitalnog u analogni signal. Pritom se se koristimo različitim alatima (koderi i dekoderi) za pretvaranje iz analognog signala u digitalni i obrnuto. [Vetteth, Joseph, Vincent]

U nastavku su navedeni koraci uspostave jednog VoIP poziva: [Vetteth, Joseph, Vincent]

1. Pozivatelj diže telefonsku slušalicu i čuje ton biranja.

2. Pozivatelj unosi telefonski broj, koji će biti preusmjeren na IP adresu osobe koju pozivamo.

3. Protokoli za pozivanje će locirati pozivanog (osobu koju pozivamo) i poslati signal koji će proizvesti zvono.

4. Odredišni telefon zazvoni, što ukazuje da je poziv stigao.

5. Osoba koju pozivamo diže telefonsku slušalicu i počinje dvosmjerni razgovor. Glas je kodiran i putuje preko IP mreže pomoću „voice streaming“ protokola.

6. Razgovor završava, poziv se prekida, naplata se obavlja.

--Igladovic 14:55, 2. siječnja 2012. (CET)

VoIP komponente

Kako smo već spomenuli, VoIP uključuje prijenos glasa u paketima preko IP mreža. Međutim, spomenuli smo da i sam korisnik neće primjetiti nikakvu razliku između VoIP i PSTN poziva, eventualno neke dodatne pogodnosti koje pruža VoIP. Da bi realizirali VoIP, potrebne su nam sljedeće komponente. [Vetteth, Joseph, Vincent]

• Koderi/dekoderi – hardver ili softver koji analogni glas pretvara u niz digitalnih bitova, pritom uzimajući u obzir odgovarajuću brzinu prijenosa podataka. Često obavljaju kompresiju, kako bi sačuvali propusni pojas. Postoje različiti koderi/dekoderi, svaki sa svojim prednostima i nedostacima. G.711, G.726 i G.729 su primjeri popularnih kodera/dekodera. U VoIP sustavu, ovi se koderi/dekoderi koriste za pretvaranje korisnikovog glasa u digitalne signale za prijenos preko mreže.

• VoIP protokoli – potrebi su tijekom različitih faza VoIP poziva. Ovi protokoli definiraju interakciju između različitih VoIP terminala. Primjerice, protokoli su potrebi za uspostavljanje i prekidanje poziva između dva terminala. Nakon što je poziv uspostavljen, drugi protokoli su potrebni za prijenos glasa preko mreže u realnom vremenu. Protokoli H.323, SIP (session Initiation Protocol) i MGCP (Media Gateway Control Protocol) i RTCP (Real-Time Transport Control Protocol) se koriste u prijenosu glasa od pošiljatelja prema primatelju.

• IP telefonski serveri i PBX-evi – upravljaju uslugama (primjerice – prosljeđivanje poziva, prijenos poziva). Uz ove osnovne funkcije, IP PBX može pružiti usluge kao što su jedinstvena poruka - konvergencija glasovne pošte i e-mail. Također, IP telefonski server može poslužiti i kao server video konferencije omogućavajući pritom višestranačke konferencije. Oni također mogu preuzeti ulogu vratara (Gatekeepers) koji pružaju pretvorbu adrese. Dok je tradicionalni PBX obično zatvoren vlasnički sustav, IP PBX može se implementirati na računalu. Takav IP PBX može se upravljati putem standardnog API-a (Application Programming Interface). IP PBX-evi su često grupirani kako bi se osigurala dodatna skalabilnost i pouzdanost.

• VoIP pristupnici (Gateways) – predstavljaju važan dio VoIP sustava. Pristupnici povezuju VoIP sustav s tradicionalnim PSTN ili bilo kojim drugim ne-VoIP mrežama. Pristupnik, tijekom obavljanja poziva, mora biti u mogućnosti upravljati sa signalnim protokolima kako u VoIP, tako i u PSTN mreži. Primjerice, pristupnik koristi H.323 protokol, kada razgovora s VoIP terminalom na jednoj strani i s PSTN telefonom na drugoj strani. Također, pristupnici mogu obavljati transcoding, odnosno pretvorbu iz jednog u drugi „kodek“ (format).

• IP telefoni - tradicionalni telefoni su analogni. Pritom se glas pretvara iz analognog oblika u digitalni signal u IP PBX-u prije nego se preusmjerava u mrežu. Međutim, razvila se nova vrsta telefona, tzv. IP telefoni, koji imaju implementirane kodere i dekodere. Ovi IP telefoni pretvaraju glas u digitalni oblik, a zatim kontaktiraju IP telefonski server za obradu poziva. Ovi telefoni imaju Ethernet priključak, a ne standardni telefonski priključak. Osobno računalo može također preuzeti ulogu IP telefona. Procesor računala može precesuirati glas dobiven iz neke ulazne jedinice (mikrofon). Pritom se LAN kartica računala koristi za signalizaciju i prijenos podataka

U nastavku je prikazan stog VoIP protokola:

STOG VoIP protokola.jpg

Slika 2. Stog VoIP protokola [Vetteth, Joseph, Vincent]

Razlikujemo dva seta protokola za VoIP, a to su H.323 i SIP. MGCP je najpopularniji protokol koji se koristi za kontrolu VoIP pristupnika. Ovi protokoli u potpunosti opisuju rad VoIP-a. RTP i RTCP se koriste za prijenos glasa između terminala. Svi ovi protokoli će biti detaljnije opisani u sljedećem poglavlju.

--Igladovic 14:55, 2. siječnja 2012. (CET)

Strategije za uspostavljanje VoIP

VoIP omogućava komunikaciju između različitih krajnih točaka. Alati poput MS NetMeeting se koriste za PC - PC komunikaciju. Web stranice poput net2phone.com nude PC – Telefon usluge. Direktne Telefon – Telefon, kao i Telefon –PC usluge pruža VoIP. Različite strategije za postavljanje VoIP su donesene na temelju zahtjeva korisnika i telefonskog sustava koji se trenutno koristi. [Vetteth, Joseph, Vincent]

TOLL BYPASS metoda

Veliki profit komunikacijskim korporacijama stvaraju pozivi između jako udaljenih krajnih točaka. Toll Bypass predstavlja jednostavnu metodu koja omogućuje smanjenje tog troška u velikom iznosu. U postojećim telefonskim mrežama, dva ureda neke tvrtke koji žele međusobno razgovarati često koriste iznajmljene vodove za povezivanje njihovih PBX-eva. Ovi iznajmljeni vodovi su izrazito skupi, i moraju biti plaćeni od strane tvrtke bez obzira na njihovu uporabu. U jednostavnoj Toll Bypass metodi, postojeći vodovi su zamjenjeni sa vezama temeljenim na IP mreži. Pritom se najčešće koristi Internet. Najednostavniji način da to učinimo jest da jednostavno isključimo postojeće PBX-eve te ih povežemo s VoIP relejom koji pretvara pozivnu signalizacija i glasovne podatke u oblik pogodan za prijenos preko IP mreže. VoIP relej koji se izravno spaja na router na IP mreži može biti samostalan uređaj ili izravno implementtiran u PBX-u. Sljedeće slike prikazuju postojeće PSTN mreže i VoIP Toll Bypass postavljen na mrežu.

Telefonska mreža koja povezuje 2 udaljena ureda.jpg

Slika 3. Telefonska mreža koja povezuje 2 udaljena ureda [Vetteth, Joseph, Vincent]

VoIP temeljen na Toll Bypas.jpg

Slika 4. VoIP temeljen na Toll Bypass [Vetteth, Joseph, Vincent]

Postoje tri glavna problema u postavljanju VoIP-a temeljenog na Toll Bypass metodi. Prvo, VoIP relej bi trebao biti u mogućnosti da obrađuje dovoljno signalizacijskih informacija za podršku značajkama koje se koristi na PBX-ima. Drugo, mrežni elementi za postavljanje VoIP releja bi trebali prihvaćati standarde kao što su H.323 ili SIP. Posljednji problem odnosi se na korištenu shemu kodiranja i sposobnost IP mreže i VoIP releja da osiguraju željenu razinu kvalitete usluge.

TOTAL IP TELEPHONY NETWORK

U ovom pristupu, svi krajni uređaji su povezani direktno na mrežu pomoću LAN veze. Pritom razlikujemo dvije vrste krajnih uređaja – IP telefon i SoftPhone. Ovi uređaji mogu međusobno komunicirati koristeći IP i RTP protokole. Komunikacija sa PSTN telefonima je omogućena kroz VoIP pristupnik koji upravlja sa različitim signalima i formatom glasovnih podataka. Serveri IP telefona (primjerice H.323 gatekeeper) ili klasteri servera, pružaju osnovne funkcije uspostavljanja poziva kao i napredne funkcije poput usmjeravanja poziva, naplate... Ukupno rješenje IP telefonije uključuje zamjenu gotovo cijele postojeće telefonske opreme. Prema tome, ovo je vrlo skup pristup. Također nije lako postaviti sve komponente na ispravan način.

5.3. IP ENABLED PBXs (Private Branch Exchanges)

Kod ove metode postojeća oprema se ne mora mijenjati. Potrebno je samo ažurirati PBX-eve tako da mogu razumijeti IP protokole. Pritom oni moraju biti povezani s IP mrežom (Internetom). Telefoni spojeni na PBX će se u vanjskom svijetu pojaviti kao IP telefoni. PBX može komunicirati s vanjskim PSTN telefonom kroz gateway sučelje.

PC to PC

Kao što smo spomenuli na početku poglavlja VoIP se može koristiti u direktnoj PC to PC komunikaciji. Tako primjerice alat poput MS NetMeeting omogućava izravnu PC to PC komunikaciju temeljenu na prijenosu glasa i multimedijskih sadržaja. Također ovaj alat nije ograničen na jednosmjernu vezu, već podržava i višestranačke konferencije. Mnogi moderni operacijski sustavi dolaze s različitim implementacijama protokola (primjerice H.323).

--Igladovic 14:55, 2. siječnja 2012. (CET)


H.323 standard

H.323 je skup standardnih tehnologija za prijenos audio i video zapisa u realnom vremenu kod mreža s prijenosom podataka putem paketa. Specificira komponente, protokole i procedure za ostvarenje takve komunikacije, a koristi se za IP telefoniju, audio i video telefoniju, prijenos audio zapisa i podataka i sl. Radi na mrežama kao što su LAN, MAN i WAN, odnosno nije limitiran na point-to-point komunikaciju. Ovo je ujedno i međunarodno prihvaćeni standard koji se koristi i u Europi i u Americi. [Vetteth, Joseph, Voice Over IP]

H.323 mreža sastavljena je od nekoliko krajnjih točaka (terminala), pristupne točke (gateway), upravnik (gateway keeper), jedinice za upravljanje višestranim konferencijama i pozadinskih usluga (Back End Services). U H.323 sustavu gateway keeper obično ima ključnu ulogu jer omogućava dodjeljivanje adresa i kontrolu protoka podataka, te predstavlja određenu vrstu "mosta" (ili poveznice) između H.323 sustava i okoline koja nije na tom standardu. U slučaju kad postoji gateway keeper (a u sustavima gdje se koristi VOIP je gotovo standardan) postoji i BES (Back End Service) koji čuva podatke o pojedinim pristupnim točkama (terminalima) kao što su njihovi servisi, konfiguracije, ovlaštenja i sl. [Kuhn, Walsh, Fries, 2005.]

H.323 arhitektura.jpg

Slika 5. Arhitektura H.323 standarda [Vetteth, Joseph, Vincent]

--Ssambol 15:44, 4. siječnja 2012. (CET)

Pojedinačni elementi H.323 standarda

Terminal (endpoint) u ovom sustavu predstavlja osobno računalo ili samostalni uređaj koji može raditi sa H.323, a koji ujedno podržava audio i video komunikaciju kao i prijenos podataka.

Gateway je logička komponenta H.323 koja služi za povezivanje dviju različitih mreža, a može se instalirati odvojeno ili u kompletu sa gatekeeper-om. U principu, gateway omogućava prijevod protokola za pozive, razgovore i prijenos podataka između H.323 mreže i mreže koja to nije. Primjerice, u IP telefoniji spaja IP mrežu sa PSTN. Na jednoj njegovoj strani nalazi se H.323 putem kojeg komuniciraju terminali (pritom koriste H.245 kontrolni protokol i H.225 pozivni protokol), a na drugoj strani nalaze se "prijevodi" tih protokola prilagođeni nekoj drugoj vrsti mreže.

Gatekeeper je opcionalan u H.323 mreži, ali ako je u nju uključen onda mreža mora koristiti servise koje on pruža kao što su dodjeljivanje adresa, autorizacija terminala i geateway-ova, evidencija i upravljanje tokom podataka. [Tripalo, Štambuk, Lerotić, Martić, 2005.]

--Ssambol 15:44, 4. siječnja 2012. (CET)


H.323 protokoli

H.323 obuhvaća više različitih protokola među koje spadaju sljedeći:

- audio CODEC

- video CODEC

- H.225 registracija, prihvat i status - RAS (eng. Registration, Admission and Status)

- H.225 signal poziva

- H.245 signal kontrole

- prijenos u realnom vremenu - RTP (Real - time Transfer Protocol)

- kontrola u realnom vremenu - RTCP (Real - time Control Protocol)

[Vetteth, Joseph, Vincent]

H.323 protokoli.jpg

Slika 6. Protokoli H.323 standarda [Tripalo, Štambuk, Lerotić, Martić, 2005.]

RAS (Registration, Admission and Status) koriste terminali ili gateway-ovi (kao krajnje točke) da bi se registrirali kod gatekeeper-a. Ovim se protokolom definira dodjeljivanje prava, prijenos podataka, status veze i postupci prekidanja veze između krajnjih točaka (terminala) i gatekeeper-a. Odvojeni kanal za izmjenu RAS poruka se prvi koristi (otvara) kod uspostavljanja komunikacije. Ako se radi o TCP vezi, RAS se ne koristi, ali ako se koristi UDP veza onda je RAS obavezan. U principu, pomoću RAS-a gatekeeper daje adresu terminala ili neke druge krajnje točke kojoj se želi pristupiti.

H.225 signal poziva uspostavlja vezu između dvije H.323 točke koje žele komunicirati i izmjenjivati podatke, a za razliku od RAS protokola, H.225 signali koriste pouzdane kanale kao TCP u H.323 IP mreži. Ovdje se može javiti i direktno signaliziranje (eng. direct signaling) ukoliko između dvije točke koje komuniciraju ne postoji gatekeeper. Taj gatekeeper može biti fizički prisutan u mreži, ali RAS porukom se odlučuje da li će on biti posrednik u toj komunikaciji ili to nije potrebno.

H.245 signal kontrole definira poruke koje se izmjenjuju između H.323 terminala što omogućava i olakšava otvaranje i zatvaranje logičkih kanala koji mogu prenositi poruku u jednom smjeru prema više krajnjih točaka odjednom. Taj signal ostaje otvoren tijekom cijele komunikacije između dvije ili više točaka što otvara prostor za formiranje logičkih kanala za prijenos poruka tijekom cijele komunikacije.

RTP (Real - time Transfer Protocol) služi za prijenos samog audi i video podatka, a obično koristi UDP za prijenos audio i video zapisa u realnom vremenu. Osigurava numeriranje sekvenci, dodavanje vremenskih oznaka i praćenje isporuke podataka, dok je zadatak UDP-a da osigura multipleksiranje i provjeru ispitnog zbroj (checksum). Iako RTP ne garantira kvalitetu samog servisa, ima određene mehanizme kojima se nastoji osigurati točnost podataka koji se prenose. Primjerice, zaglavlja paketa koji se šalju imaju redne brojeve prema kojima RTP slaže poruke kad stignu na odredište.

RTCP (Real - time Control Protocol) služi za praćenje kvalitete i dostavljanje podataka o sudionicima u komunikaciji, a uz to brine o sinkronizaciji dva različita prijenosa podataka (npr. ako se radi o audio/video vezi treba sinkronizirati sliku i zvuk).

H.323 izmjena poruka.jpg


Slika 6. Izmjena poruka u H.323 standardu [Kuhn, Walsh, Fries, 2005.]

--Ssambol 16:16, 4. siječnja 2012. (CET)


Uspostavljanje poziva u H.323 standardu

Uspostavljanje poziva između dvije strane vrši se kroz četiri faze - uspostava poziva, signalizacija kontrole, izmjena sadržaja i raspuštanje poziva. [Vetteth, Joseph, Vincent]

Uspostava poziva započinje slanjem H.225 RAS ARQ registracijske poruke od jedne krajnje točke (T1) prema gatekeeper-u što on potvrđuje i dozvoljava korištenje signalizacije kontrole. Nakon toga T1 šalje signal poziva drugom terminalu (T2) kojim zahtjeva konekciju na što T2 odgovara porukom, ali tek nakon što je s gatekeeper-om izvršena registracija. Poruka koju šalje sadrži signal za spajanje i signal upozorenja.

Signalizacija kontrole odnosi se na uspostavljanje kontrolnog H.245 kanala između dva terminala (T1 i T2), a njime se izmjenjuju podaci o svakom terminalu koji sudjeluje u komunikaciji. T1 zatim otvara kanal za prijenos sadržaja prema T2 kroz koji prolazi poruka sa adresom RTCP kanala. T2 odgovara porukom u kojoj je zapisana RTP transportna adresa koju T1 mora koristiti za slanje podataka prema T2. Na taj je način uspostavljena veza za prijenos podataka.

Izmjena sadržaja započinje slanjem RTP protoka od T1 prema T2 na što T2 odgovara istom porukom dok se kvaliteta prijenosa evidentira u RTCP porukama između ta dva terminala. Poziv završava inicijalizacijom od strane T2 na način da šalje H.245 naredbu za završetak poziva na što T1 odgovara "otpuštanjem" tog terminala i porukom koja sadrži naredbu za prekid. Nakon što je naredba potvrđena, T1 i T2 "odvajaju" se od gatekeeper-a.

H.323 uspostava poziva.jpg Slika 7. Uspostava poziva u H.323 standardu [Wikipedia: H.323]

--Ssambol 16:16, 4. siječnja 2012. (CET)


SIP (Session Initiation Protocol)

SIP je signalni protokol koji služi za uspostavu i prekid komunikacije. Komunicirati mogu dva ili više korisnika i to u obliku bilo kakve razmjene podataka, a ne samo Internet telefonskih poziva. SIP pozivi, koji služe pri za uspostavu veze između korisnika, u sebi uključuju opis vrste veze što omogućuje dogovor korisnika o vrsti korištenog medija (slika, zvuka, vrste slike ili zvuka, itd.). SIP je tekstualno orijentirani protokol koji se temelji na klijent - poslužitelj modelu i nizu poruka koje međusobno izmjenjuju. Zahtjevi se mogu prenositi ili putem TCP-a ili UDP-a. Trenutno postoji šest poziva pomoću kojih možemo u potpunosti koristiti sve mogućnosti SIP-a.

8.JPG

Slika 8. Uspostavljanje i prekidanje SIP komunikacije

Na slici 9 nalazi se shema osnovnih komponenti SIP sustava. Za pravilno funkcioniranje potrebne su sve komponente. Jedna od bitnijih prednosti SIP modela je ta što se može promijeniti bilo koja od komponenti ili pak dodati nova bez utjecaja na rad ostalih.

Sip2.JPG

Slika 9. Osnovne komponente SIP-a


--Mmalnar 19:15, 4. siječnja 2012. (CET)

Osnovni dijelovi SIP sustava (Korisnički i mrežni agent)

Korisnički agent je sustav koji radi za korisnika (najčešće kombincija klijenta i poslužitelja). Korisniku se mora omogučiti primanje dolazećih poziva ali i slanje poziva drugim korisnicima. Klijentski dio (UAC) služi za pokretanje SIP zahtjeva. Poslužiteljski dio (UAS) prima zahtjeve i vraća odgovore korisniku. (Šaban, SIP protokol)

Postoje dvije vrste mrežnih agenata - to su proxy i redirekcijski poslužitelji. SIP proxy je poslužitelj koji proslijeđuje zahtjeve idućem poslužitelju. Idući poslužitelj može biti bilo kakva vrsta SIP poslužitelja, to proxy ne treba znati. Druga vrsta mrežnih poslužitelja je redirekcijski poslužitelj koji ne šalje zahtjev idućem poslužitelju već šalje odgovor klijentu koji u sebi sadrži adresu idućeg poslužitelja koji klijent treba kontaktirati. (Šaban, SIP protokol)

Sip3.JPG

Slika 10. Pojednostavljeni prikaz uspostave SIP poziva


SIP protokol koristi posebnu metodu adresiranja nazvanu SIP URL.

SIP URL je sličan email adresi i oblika je user@host, gdje "user" dio može biti ili korisničko ime ili bilo koja druga jedinstvena oznaka a "host" predstavlja naziv domene ili numeričku mrežna adresa. U velikom broju slučajeva korisnička SIP adresa se može "pogoditi" iz email adrese. Kada se koristi email adresa, SIP mora pretvoriti adresu oblika name@domain u user@host što može dovesti do različitih adresa ovisno o trenutnom vremenu, korištenom mediju, itd. (Šaban, SIP protokol) Kada klijent želi poslati zahtjev za uspostavom veze on prvo dobavlja adresu osobe kojom želi razgovarati. Ako se adresa sastoji od numeričke IP adrese klijent direktno kontaktira SIP poslužitelj koji je naveden u IP-u, a ako je adresa u obliku name@domain klijent prvo treba prevesti "domain" dio u numeričku IP adresu (eng. DNS lookup) preko koje se onda može na i odgovarajući poslužitelj. Kada je IP adresa pronađena zahtjev se šalje bilo preko UDP-a ili preko TCP-a. (Šaban, SIP protokol)


Kada SIP poslužitelj primi zahtjev on mora locirati korisnika unutar svoje domene. Korisnik se može nalaziti na više lokacija, a i ne mora biti aktivan. U tom slučaju se vraća poruka o nedostupnosti korisnika. Za pronalaženje stvarne korisnikove lokacije koristi se lokacijski poslužitelj. Ako je korisnik uspješno pronađen tada se poduzima akcija koja ovisi o vrsti SIP poslužitelja:

• Proxy poslužitelj - može poslati zahtjev na jedan ili paralelno na sve pronađene lokacije

• Redirekcijski poslužitelj - šalje pozivatelju listu sa pronađenim lokacijama

Vrste SIP poruka

Postoje dvije vrste SIP poruka: zahtjevi i odgovori.

Klijent daje zahtjeve, a poslužitelj vraća odgovore. Zahtjevi i odgovori su sačinjeni od različitih zaglavlja koja sadrže detalje o komunikaciji. Zahtjev i odgovor se sastoji od univerzalnog formata zapisa. A njega čine početne linije "line", jednog ili više zaglavlja i prazne linije koja označavavju kraj zaglavlja. (Šaban, SIP protokol) Poruke koriste zaglavlja za identifikaciju pozivatelja, primatelja poziva, puta i vrste poruke, duljine poruke, itd. Neka zaglavlja se koriste u svim porukama, a neka samo kada je potrebno.

Postoji 37 različitih vrsti zaglavlja grupiranih u četiri grupe. U nastavku su navedena samo najbitnija.

Sip4.JPG

Slika 11. Najčešća SIP zaglavlja


Zahtjevi su označeni sa "Start-Line" koja se još naziva i "Request-Line". Postoji šest različitih vrsti zahtjeva:

INVITE - ova metoda pokazuje da je korisnik pozvan na sudjelovanje u nekoj konferenciji. Uspješan odgovor sadržava u svom zaglavlju poruku o vrsti medija koju primatelj želi primati.

ACK - potvrđuje da je klijent primio završni odgovor na INVITE zahtjev - može sadržavati zaglavlje sa svim podacima o vezi

BYE - user client koristi BYE za slanje poruke poslužitelju da želi prekinuti komunikaciju

CANCEL - poništava slijedeći zahtjev, ali ne utječe na već izvršene

OPTIONS - sadrži informacije o mogućnostima poslužitelja, ali ne uspostavlja vezu

REGISTER - prenosi informaciji o lokaciji korisnika do SIP poslužitelja


Nakon zaglavlja može se nalaziti tijelo poruke. Tijelo poruke se uvijek nalazi u obliku definiranom u Content-Type dijelu zaglavlja.


Unastavku slijedi primjer SIP zahtjeva. (Šaban, SIP protokol)


Sip6.JPG

Slika 12. Primjer SIP zahtjeva


Nakon što primi zahtjev, primatelj odgovara sa SIP porukom u kojoj se nalaze status poslužitelja: uspjeh ili neuspjeh. Odgovori mogu biti različitih vrsta a vrsta odogovora je označena statusnim kodom.

Šest različitih vrsta odgovora koje SIP dozvoljava su vidljivi na slici 12.

Sip5.JPG


Slika 12. Šest SIP odgovora


Primjer SIP odgovora: (Šaban, SIP protokol)


Sip7.JPG

Slika 13. Primjer SIP odgovora


--Mmalnar 19:23, 4. siječnja 2012. (CET)

Usporedba SIP-a i H.323 protokola

- I jedan i drugi protokol obavljaju isti posao u procesu Internet telefonije. SIP i H.323 su protokoli koji se bave uspostavljanjem i prekidom veze te prijenosom parametara veze.

- Oba protokola koriste RTP za razmjenu podataka, a niti jedan sam za sebe ne osigurava kvalitetu usluge.

- H.323 je složeniji protokol. H.323 definira stotine elemenata, dok SIP ima samo 37 zaglavlja sa vrlo malim brojem vrijednosti i parametara.

- H.323 protokola koristi binarno kodiranje za prijenos podataka, SIP koristi tekstualna zaglavlja slično HTTP-u.

- Prednost SIP-a je korištenje jednog zahtjeva u kojem se nalaze svi potrebni podaci, dok usluga H.323 protokola zahtijeva komunikaciju između pojedinih dijelova protokola. (Šaban, SIP protokol)

- SIP olakšava prepoznavanje vrste pogreške, jer su greške hijerarhijski grupirane preko numeričkih kodova (slično kao i u HTTP-u). Terminali moraju raspoznavati samo šest osnovnih klasa, a ostala informacija može ali i ne mora biti pročitana niti iskorištena.

- SIP je temeljen na tekstualnim zaglavljima koja krajnji korisnik može slobodno mijenjati, a H.323 aplikacije omogućavaju završnom korisniku promjenu samo određenih dijelova koda.

- Uslugu osobne pokretljivosti podržavaju oba protokola, no kod H.323 protokola je ona nešto slabija. SIP može preusmjeravati redirekcijske i proxy pozive na, teoretski, neograničen broj adresa, dok H.323 nije dizajniran za komunikacije velikih razmjere, ne podržava proslijeđivanje poziva i nema podršku za multicast komunikaciju.


Sve u svemu H.323 pruža mnogo veću funkcionalnost – terminali koriste svoju mogućnost različitog kodiranja i dekodiranja podataka u ovisnosti o parametrima zadanim u kodu protokola, dok SIP koristi samo osnovne mogućnosti prijemnika i pošiljatelja (na klijentu je da "prepozna" poslano). (Šaban, SIP protokol)


--Mmalnar 19:01, 4. siječnja 2012. (CET)



Sigurnost VoIP-a

Sa povećanjem kompleksnosti VoIP sustava, pojavile su se i brojne prijetnje koje mogu ugroziti sigurnu komunikaciju putem VoIP-a. Sve ono što je do tad predstavljalo problem u običnoj IP mreži, sada se odražava i na telefoniju.

Napad na sigurnost VoIP-a može se podijeliti u dvije osnovne skupine - aktivne i pasivne napade.

Pasivnim napadima dolazi se do podataka koji se prenose, ali se ne mijenja njihov sadržaj, a pri tom se mogu presretati poruke sa osjetljivim informacijama ili analizirati algoritam komunikacije. Problem u VoIP-u je da se često ne koristi enkripcija, pa se podaci kao što su korisnička imena i lozinke mogu lako izdvojiti metodom prisluškivanja razgovora.

Aktivni napadi mijenjaju sadržaj poruke koja se šalje ili generiraju lažne tokove podataka. Tu spada DoS Attack (otkaz servisa), DDoS (distribuirani otkaz servisa), neovlašten pristup, napad na aplikacije i protokole i sl. Ovi se napadi najčešće rješavaju detekcijom i oporavkom. [Miljanović, 2006.]

Oblici napada

Eavesdropping se najčešće koristi za prisluškivanje signalnog i podatkovnog prijenosa, a popularan je zbog jednostavnosti i lake pristupačnosti uređajima koji se nalaze u IP mreži i koji mogu utjecati na taj prijenos.

DoS i DDoS napadi mogu uzrokovati gubitak dostupnosti VoIP servisa, a svode se na slanje paketa koji iskorištavaju slabosti sustava koji se napada. To se često može raditi i sa više različitih izvora (DDoS) čime se značajnije utječe na sigurnost. VoIP ima nedostatak u tome što u njemu sudjeluje dosta uređaja, pa je dovoljno da smo jedna od njih padne kako bi se izgubila funkcionalnost, te korištenje velikog broja raznih protokola od kojih svaki ima neki nedostatak.

Theft of service nastaje kad korisnici koriste više servisa nego što im je dodijeljeno. Često napadači koriste proxy kojim, bez znanja korisnika koji sudjeluju u komunikaciji, preusmjeravaju podatke koji se izmjenjuju prema sebi i na taj način postaju "posrednikom". Iz podataka koji prolaze mogu prikupiti brojne informacije o oba korisnika.

Apllication/Protocol - level attacks odnose se na krađu registracije, prekide veze, zagušenja pozivima, uznemiravajuće pozive i sl.

Bitno je napomenuti i da SIP i H.323 protokoli koji se masovno koriste u VoIP-u za sobom povlače dosta nedostataka veznih uz sigurnost. Iako su zbog svoje prilagodljivosti vrlo povoljni i prigodni za korištenje u VoIP-u, imaju brojne sigurnosne propuste koji se mogu relativno lako iskoristiti.

Sigurnosni mehanizmi

IPSec (IP Security) Koristi se za zaštitu na mrežnom sloju (IP sloju), a koristi dva različita protokola - AH (Authentication Header) i ESP (Encapsulating Security Protocol). Oba protokola mogu koristiti dva različita načina rada - transportni i tunelski. Transportni štiti gornje slojeve na način da štiti samo sadržaj IP paketa. Tunelski način štiti i tijelo i zaglavlje IP paketa, odnosno čitavi paket.

TLS (Transport Layer Security) Ovaj protokol radi iznad transportnog sloja, a osigurava sigurnost s jednog na drugi kraj konekcije. Temelji se na TCP-u koji je sam po sebi dosta pouzdan, ali mu je nedostatak da je potrebno neke aplikacije modificirati kako bi mogle raditi sa TLS-om. Njegova glavna prednost je dobro uzajamno prepoznavanje identiteta i upravljanje ključevima za enkripciju i dekripciju.

SRTP (Secure Real-time Protocol) Koristi se za zaštitu toka podataka (RTP) pomoću raznih dinamički dodijeljenih ključeva. Može se primijeniti i na RTCP protokolu, a omogućava integritet, pouzdanost i zaštitu od ponavljanja poruka. Djeluje između transportnog i RTP sloja.

MIKEY (Multimedia Internet KEYing) Omogućava distribuciju ključeva (i upravljanje istima), a koristi se kod SRTP-a. Temelji se na uključivanju u sam proces uspostavljanja poziva gdje dolazi do njegove maksimalne iskorištenosti.

Moguća rješenja

Kako bi se osigurala određena razina sigurnosti prilikom korištenja VoIP-a treba osigurati određene uvjete. Istraživanja su pokazala da je najvažnije osigurati sljedeće:

1. primjenu novih sistema za detekciju i prevenciju upada u sustav za zaštitu na sloju aplikacije i mreže

2. instalacija ALG-a (Application - level Gateway) na granicama povjerljivih zona

3. korištenje mehanizama prepoznavanja, autorizacije i IPsec

4. korištenje VPN-a na kritičnim segmentima VoIP-a

5. virtualno odvajanje govora i podataka korištenjem VLAN-ova

6. primjena raznih metoda enkripcije

7. regularni update softvera, instalacija antivirusnog programa, onemogućavanje svih nepotrebnih servisa na VoIP uređajima i sl.


--Ssambol 18:29, 4. siječnja 2012. (CET)


Naše rješenje / .NET System.Security.Cryptography

Stvaranje pojednostavljenog SSL protokola između klijenta i servera kako bi se osigurao enkriptirani razgovor preko VoIP-a. Kao i bilo koji podatak na računalu tako se i zvuk može zapisati sa 1 i 0. A svaki zapis na disku mi možemo enkriptirati željenim algoritmom. Kako bismo osigurali enkriptiranu vezu između našeg klijenta i servera odlučilo smo kombinirati dvije enkripcije. AES ankripcija koja je simetrična enkripcija i prema tome ključ za dešifriranje i enkriptiranje je uvijek isti i ako bismo naš zvuk kriptirali ovim algoritmom i poslali podatke zajedno sa ključem bilo tko, tko presretne poruku može pomoću kljuća dešifrirati poruku. Kako bismo kriptirali i AES ključ koji šaljemo zajedno sa porukom koristimo RSA algoritam koji nije simetričan i sastoji se od privatnog i javnog ključa, odnosno nije moguče dešifrirati poruku bez provjere privatnog ključa kojeg zna samo osoba koja prima poruku. Zvuk smo odlučili podijeliti na pakete od 1024kb te generirati novi AES i RSA ključ za svaki paket kako bi dodatno otežali dešifriranje eventualnom presretaču poruke.


Poruka koja se šalje izgleda ovako:

Dijagram.jpg


Implementacija se sastoji od dva dijela:

Klijenta

Druga.png

i Servera

Prva.png


Kriptirana veza uspostavlja se sa jednostavnim Handshake-om (rukovanjem) pri kojem se prvo omogućava razmjena informacija odnosno parametara koji će se reflektirati dalje na način prijenosa podataka. Veza koja se ostvaruje osigurava privatnost podataka. Podaci koji se razmjenjuju između klijenta i servera su kriptirani te se koristi simetrično kriptiranje (AES) dok se identitet klijenta provjerava javnim ključ i dodjeljuje se pri uspostavi veze te se ovdje koristi asimetrično kriptiranje (RSA).

Sustav je implementiran u razvojnoj okolini .Net pomocu programskog jezika Visual Basic. Na klijenti i serveru rade dvije dretve koje cekaju prijem odnosno slanje paketa pomocu UDP protokola, te po jedna dretva za snimanje odnosno reprodukciju glasa.

Prije samog početka komunikacije potrebno je kreirati RSA javni i privatni ključ kako bi server mogao dijeliti javni ključ u slučaju zahtjeva za pozivom.


 Public Sub CreateNewKeys()
        Dim Keys As Encryption.Keypair = Encryption.Keypair.CreateNewKeys
        TextBox5.Text = Keys.Privatekey
        TextBox6.Text = Keys.Publickey
    End Sub

Iz biblioteke Encryption poziva se generiranje RSA ključeva.
Nadalje, potrebno je pokrenuti proces koji ceka na poziv.



   Public Sub Razmjeni_kljuc()

        Dim receiveBytes As Byte() = razmjena_javnogClient.Receive(RemoteIpEndPoint)
        Dim returnData As String = Encoding.ASCII.GetString(receiveBytes)       
        SetControlPropertyValue(pozivatelj, "Text", returnData)
        razmjena_javnogClient.Connect(RemoteIpEndPoint.Address, CInt(port.Text) + 3)
        Dim bytCommand As Byte() = New Byte() {}
        bytCommand = Encoding.ASCII.GetBytes(TextBox6.Text)
        razmjena_javnogClient.Send(bytCommand, bytCommand.Length)
        ThreadReceive.Start()
    End Sub

Ovaj proces pri primitku "hello" zahtjeva, uzima IP adresu i ID ( ime ) klijeta koji se spojio na server, te mu na odjeljeni port šalje javni RSA ključ u običnom ASCII obliku (plaintext). Nakon slanja Kluča pokreče proces koji čeka na pakete sa kriptiranim podacima.



   Public Sub Primi()
        Try
            Dim RemoteIpEndPoint As IPEndPoint = New IPEndPoint(IPAddress.Any, 0)
            Dim receiveBytes As Byte() = Client_razmjena.Receive(RemoteIpEndPoint)
            Dim returnData As String = Encoding.ASCII.GetString(receiveBytes)
            SetControlPropertyValue(TextBox4, "Text", returnData)
        Catch ex As Exception
            MessageBox.Show(ex.ToString())
        End Try

    End Sub

Nakon što je Klijent poslao zahtjev za poziv sa svojim podacima, server mu je odgovora javnim RSA ključem te Klijent čeka kako bi ga mogao koristiti za slanje poruka.

    Public Sub Salji()
        Dim broj As Integer
        broj = 0
        GLOIP = IPAddress.Parse(ip.Text)
        GLOINTPORT = CInt(port.Text)
        udpClient.Connect(GLOIP, GLOINTPORT)                'klijent koji salje podatke
        System.Threading.Thread.Sleep(300)
        Dim bytes() = File.ReadAllBytes("record.wav")
        '   -------- AES Enkripcija ------- '
        myRijndael.GenerateKey()
        myRijndael.GenerateIV()
        'spremi kljuc i vektor
        key = myRijndael.Key
        IV = myRijndael.IV
        '          >......... RSA enkripcija ......."
        'key i IV enkriptirati sa public keyom.
        Dim RSA_Key As Encryption.RSAResult = Encryption.RSA.Encrypt(key, TextBox4.Text)
        Dim RSA_IV As Encryption.RSAResult = Encryption.RSA.Encrypt(IV, TextBox4.Text)

        '          >......... RSA enkripcija ......."
        '   kreira enkriptor za zadani kljuc i vektor
        Dim encryptor As ICryptoTransform = myRijndael.CreateEncryptor(key, IV)
        '  enkriptiraj()
        Dim msEncrypt As New MemoryStream()
        Dim csEncrypt As New CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write)
        '  upisi podatke pomocu kripto strima
        csEncrypt.Write(bytes, 0, bytes.Length)
        csEncrypt.FlushFinalBlock()
        '  enkriptirano polje bajtova
        encrypted = msEncrypt.ToArray()
        '  -------- AES Enkripcija ------- '
        Dim sendBytes As [Byte]() = encrypted
        udpClient.Send(sendBytes, sendBytes.Length)             ' posalji enkriptirane podatke
        udpClient.Send(RSA_Key.AsBytes, RSA_Key.AsBytes.Length)
        udpClient.Send(RSA_IV.AsBytes, RSA_IV.AsBytes.Length)
    End Sub


Funkcija Salji obavlja zadatak iscitavanja audio zapisa u obliku binarnog zapisa te ga enkriptira AES algoritmom, za koji generira ( myRijndael.GenerateKey() ) dvije varijable ( IV kao vektor na temelju kojeg se generira algoritam, i Key kao ključ koji predstavlja ključ kojim se šifrira audio zapis i dešifrira na serverskom dijelu.

Kako bi Aes ključ i vektor mogli sigurno poslati potrebno ga je enkriptirati RSA algoritmom.

Dim RSA_Key As Encryption.RSAResult = Encryption.RSA.Encrypt(key, TextBox4.Text)

Ova funkcija omogućava nam tu enkripciju, no potrebno je zamijetiti da je Javni kljuc Rsa enkripcije sadržan u Texbox-u, te da je on vec predhodno primljem od strane servera pri prvom spajanju ( Handshake-u ). isto je potrebno zamijetiti da podaci koji se enkriptiraju moraju biti u obliku binarne datoteke.

udpClient.Send(sendBytes, sendBytes.Length) 


Pri kraju funkcije sve je spremno i potrebno je samo poslati naš paket koji se sastoji od 3 djela:

1) Enkriptiranog Aes ključa
2) Enkriptiranog AEs IV vektora
3) Podataka enkriptiranih Aes-om

Sve se obavlja funkcijom udpClient.Send koja kao parametere prima datoeteku u binarnom obliku i velicinu datagrama.

Na serverskoj strani potrebno je primiti paket ( 3 dijela ), dešifrirati Aes ključ pomocu privatnog Rsa ključa i reproducirati poruku.


 Public Sub ReceiveMessages()
        Dim i As Integer
        i = 0
        While True
            If sstop = True Then
                ThreadReceive.Abort()
            Else
                Dim data As Byte() = receivingUdpClient.Receive(RemoteIpEndPoint)

                SetControlPropertyValue(Label2, "Text", "Client IP: " + RemoteIpEndPoint.Address.ToString)  'dohvati kontrolu preko threda
                If i Mod 3 = 0 Then
                    AddItem("-> data: " + data.Length.ToString + " B")
                    encrypted = data
                End If
                If i Mod 3 = 1 Then
                    AddItem("-> key:  " + data.Length.ToString + " B")
                    key = data
                End If
                If i Mod 3 = 2 Then                                     'primljen zadnji dio poruke
                    AddItem("-> IV:   " + data.Length.ToString + " B")
                    IV = data
                    SetControlPropertyValue(ListBox1, "SelectedIndex", i)
                    '------------- AES Dekripcija ------------------'
                    'dekriptirati key i iV pomocu pirvatnog RSA kljuca prije nego se koristi u AES dekodiranju

                    Dim RSA_key_de As Encryption.RSAResult = Encryption.RSA.Decrypt(key, TextBox5.Text)
                    Dim RSA_IV_de As Encryption.RSAResult = Encryption.RSA.Decrypt(IV, TextBox5.Text)

                    Dim stri1 As String = ""

                    For x = 0 To RSA_key_de.AsBytes.Length - 1
                        stri1 = stri1 + " " + Hex(RSA_key_de.AsBytes(x)).ToString
                    Next
                    SetControlPropertyValue(TextBox4, "Text", stri1)

                    Dim stri2 As String = ""
                    For x = 0 To RSA_IV_de.AsBytes.Length - 1
                        stri2 = stri2 + " " + Hex(RSA_IV_de.AsBytes(x)).ToString
                    Next
                    SetControlPropertyValue(TextBox3, "Text", stri2)

                    SetControlPropertyValue(TextBox7, "Text", RSA_IV_de.AsBase64String)

                    'Get a decryptor that uses the same key and IV as the encryptor.
                    Dim decryptor As ICryptoTransform = myRijndael.CreateDecryptor(RSA_key_de.AsBytes, RSA_IV_de.AsBytes)
                    Dim msDecrypt As New MemoryStream(encrypted)
                    Dim csDecrypt As New CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read)

                    fromEncrypt = New Byte(encrypted.Length) {}

                    'from encrypt sadrzi dekriptiranu poruku nakon ovog
                    csDecrypt.Read(fromEncrypt, 0, fromEncrypt.Length)

                    '--------------- AES Dekripcija -------------------'
                    Dim oFileStream As System.IO.FileStream
                    oFileStream = New System.IO.FileStream("record.wav", System.IO.FileMode.Create) 'spremni dekriptiranu poruku
                    oFileStream.Write(fromEncrypt, 0, fromEncrypt.Length)
                    oFileStream.Close()
                    My.Computer.Audio.Play("record.wav", AudioPlayMode.Background)                  'play that funky music 
                End If
                SetControlPropertyValue(ListBox1, "TopIndex", i)
                i = i + 1
            End If
        End While
    End Sub


Proces koja vrti funkciju ReceiveMessage() odvija se na serveru i sluzi primeju podataka putem UDP protokola. Pošto smo našu poruku poslali u 3 djela potrebno je pri svakom primitku odrediti koji dio poruke je primljen kako bi se mogle pravilo pohraniti varijable nakon primitka. Upotrebom Mod funkcije pri svakom primitku podaci se spremaju u varijablu Key, IV ili data. AES ključ ( Key ) je sada enkriptiran pomocu RSA javnog ključa i nije ga moguce koristiti da bi se dekriptirala poruka, te je to i svrha ovog protokola. Ukoliko bi napadač presreo poruku ne bi mogao doci do AES ključa jer ne posjeduje privati RSA ključ. No, na srecu naš server sadržava privatni ključ koji je u paru sa javnim ključem kojeg je dodijelio klijentu se se pomocu funkcije

Encryption.RSA.Decrypt(key, TextBox5.Text)

dekriptiraju podaci i dobiva se izvorni AES kljuc i vektor koji je bio korišten kako bi se enkriptirali podaci na strani Klijenta.
Kako bi se dobila konačna poruka potrebno je enkriptiranu poruku dešifrirati Aes ključem te se pomocu funkcije

 Dim decryptor As ICryptoTransform = myRijndael.CreateDecryptor(RSA_key_de.AsBytes, RSA_IV_de.AsBytes)

stvara dekriptor i poruka se sprema u MemoryStream koja se dalje zapisuje u datoteku koja služi kao buffer te se reproducira zvuk koji nam je poslan.

Kako bi upotpunili protokol potrebno bi bilo i dodati provjeru integriteta poput MD5 checksum, no ona ovdje nije potrebna kad se radi o VoIP komunikaciji preko UDP protokola kod kojeg su dopuštena izostavljanja paketa.


--Ivareif 17:56, 5. siječnja 2012. (CET)

Sigurnost: Skype

Skype je međunarodno popularan alat za komuniciranje putem Interneta. On nudi funkcionalnost standardnog instant messaging (IM )klijenta, ali je najveću popularnost ipak stekao zahvaljujući funkcionalnosti IP telefona. Iako postoji velik broj klijenata koji nude slična rješenja uporabe VoIP (eng. Voice over IP) protokola, većina njih se pokazala se nedovoljno dobrima (uglavnom zbog loše kvalitete veze) te ne mogu zamijeniti klasičan telefon. Skype se upotrebom vlastitog, još uvijek tajnog rješenja tog problema i besplatnom distribucijom aplikacije nametnuo kao najbolje rješenje te ubrzo postao vrlo popularan. Nakon incijalno velikog interesa javnosti, Skype je u fokus ponovno došao nedavno, kada je korisnicima njegova usluga bila nedostupna čak nekoliko dana zbog sigurnosnih problema u alatu i poslužiteljima za podršku. Tek nakon tog događaja pojavilo se pitanje: "Koliko je Skype ustvari siguran i trebaju li njegovi korisnici biti na oprezu kada ga koriste?" Odgovor na to pitanje tema je ovog dokumenta.

Skype je alat za telefoniranje, instant messaging i ostvarivanje video poziva putem Interneta. U ovom dokumentu, prilikom opisa značajki i gdje nije drukčije specificirano, govori se o aktualnoj inačici (3.5. za Windows operacijske sustave). Skype se temelji na P2P (eng. Peer To Peer) infrastrukturi i vlastito razvijenim komunikacijskim protokolima koji djeluju povrh VoIP protokola. P2P mreža razvijena je oko središnjeg poslužitelja koji sadrži podatke o Skype korisnicima i omogućuje njihovo pronalaženje u mreži. Međutim, sama komunikacija između korisnika ne odvija se preko tog poslužitelja. Skype korisnicima uz male naknade omogućeno je i uspostavljanje poziva prema fiksnim ili mobilnim telekomunikacijskim mrežama bilo gdje u svijetu. Budući da su naknade za takvo telefoniranje još uvijek puno manje od onih za ostvarenje takvog poziva unutar klasične telekomunikacijske mreže, Skype je stekao veliku popularnost.


Usporedba Skype alata s ostalim VoIP alatima Postoji nekoliko definiranih i uglavnom međusobno nekompatibilnih protokola za prijenos glasa putem Interneta. ITU standard H.225 definira protokol za glasovne i video telekonferencije, IETF je prihvatio nekompatibilan protokol nazvan SIP (eng. Session Initiation Protocol), dok je Cisco razvio vlastiti protokol nazvan SCCP (eng. Skinny Client Control Protocol). Skype također koristi zasebno rješenje. Protokol se temelji na središnjem poslužitelju koji omogućuje uspostavu veze sa Skype korisnicima. Nakon što je veza uspostavljena, sva se komunikacija odvija izravno između klijenata.
U usporedbi s ostalim VoIP alatima Skype se razlikuje u nekoliko značajnih činjenica:

   • Skype je vrlo popularan – samo u prvom tjednu nakon objavljivanja u kolovozu 2003. godine
     60 000 ljudi je preuzelo alat. Danas Skype broji milijune korisnika.
• Korištenje Skype klijenta i Skype P2P mreže je besplatno . Naplaćuje se samo korištenje dodatnih usluga kao što su „SkypeOut“ i „SkypeIn“ koje koriste pristup vanjskim telekomunikacijskim mrežama.
• Skype je značajno lakši za korištenje. Instalacija Skype klijenta je izrazito jednostavna – osim odabira korisničkog imena nije potrebna druga konfiguracija sustava. Osim toga, za razliku od drugih VoIP sustava, Skype će raditi čak i ako se korisnik nalazi iza vatrozida ili NAT (eng. Network Address Translation) sustava.
• Skype koristi impresivnu tehnologiju komprimiranja govorenog zvuka. Ona mu daje pouzdanost i kvalitetu koja čak nadmašuje neke tradicionalne telefonske sustave ako se koristi putem širokopojasne veze prema Internetu.
• Osim telefonije Skype podržava i instant messaging, pretraživanje i prijenos datoteka te ostvarivanje video poziva visoke rezolucije.
• Skype komunikacija je enkriptirana. Za razliku od obične telefonije i ostalih VoIP sustava, prema tvrdnjama Skype-a, sva komunikacija je enkriptirana ključevima od minimalno 128 bita što onemogućava bilo kakvo presretanje i prisluškivanje komunikacije.

U skladu s izjavama svojih autora, čini se da Skype koristi enkripciju. Istinitost ove primjedbe može se utvrditi analizom paketa koje Skype šalje. Iz njih se, naime, ne može na jednostavan način otkriti sadržaj komunikacije. Napravljena je analiza jedne uspostave poziva koja je pokazala sljedeće:

Za autentikaciju korisnika koristi se inačica HTTP protokola kojom se ostvaruje veza s središnjim poslužiteljem za autentikaciju (ui.skype.com - koji se navodno nalazi u Amsterdamu).Za komunikaciju s ostalim Skype klijentima koristi se izmijenjena inačica HTTP protokola. Za prijenos razgovora, poruka ili datoteka koristi se vlastito razvijeni kriptirani protokol.
Unatoč kriptiranju cjelokupne komunikacije Skype klijenata, analizom prometa moguće je raspoznati uspostavljanje interakcije između dvaju klijenata. To znači da čak i neovlašteni korisnici Skype P2P mreže mogu iz analize prometa otkriti kada neki korisnik zove drugog.
Nije poznato da li Skype sustav članovima mreže daje mogućnost praćenja cjelokupnog prometa unutar Skype P2P mreže ili je njima vidljiv samo dio ukupnog prometa mreže.
br> igurnost kriptiranih podataka ovisi o mnogo čimbenika kao što su kriptografski algoritmi, mehanizam razmjene ključeva, implementacija protokola koji koriste kriptografiju, itd. Skype tvrdi da koristi RSA algoritam za razmjenu ključeva i 256-bitni AES algoritam za enkripciju komunikacije. Budući da implementacija tih algoritama kao ni dizajn njihovih certifikata i autentikacijskog sustava nisu javni, ne može se sa sigurnošću reći da su navedeni algoritmi uopće implementirani, a pogotovo nije moguće dati realnu ocjenu kvalitete primijenjene implementacije, kao ni opće sigurnosti koju ona pruža.
S druge strane može se sa sigurnošću reći da je Skype sigurniji od većine današnjih VoIP sustava jer oni uopće ne nude enkripciju. Međutim, ukoliko se komunikacija tih VoIP sustava ostvari povrh VPN mreže tada oni vjerojatno postaju sigurniji od Skype sustava. Postoje i drugi sigurnosni aspekti Skype alata vezani uz privatnost :
Iako izgleda da Skype klijent ne zapisuje ili arhivira glasovne pozive, on uobičajeno pohranjuje IM poruke osim ako korisnik izričito ne isključi tu opciju. Te arhivirane poruke mogu potencijalno postati meta napadačima putem raznih spyware ili drugih alata kojima se može preuzeti kontrola nad drugim računalom.
Budući da su svi Skype korisnici priključeni na isti „oblak“ svaki Skype korisnik može vidjeti da li je neki drugi korisnik trenutno priključen na mrežu ili ne.
Čini se da Skype sustav pokušava razmjenjivati pakete izravno između sudionika razgovora. Ako izravan put između komunicirajućih subjekata nije ostvariv, klijent pokušava pakete razmjenjivati preko drugih računala uključenih u Skype mrežu – super čvorova. Nije poznato može li super čvor pratiti promet koji se kroz njega ostvaruje.
Skype tvrdi da to nije moguće zbog upotrebe enkripcije, ali to nije moguće provjeriti.


Skype P2P mreža se satoji od dvije vrste članova – obični članovi (eng. Ordinary host) i super čvorovi (eng. Super Node). Običan član je bilo koji Skype klijent za uspostavu poziva i slanje poruka. Super čvor je Skype klijent koji se nalazi na rubu Skype P2P mreže, tj. član kojeg samo jedan običan član dijeli od kraja mreže. Bilo koji član koji ima javnu IP adresu, dovoljno memorije i kapaciteta procesora, te dovoljno brzu vezu prema Internetu može postati super član.

Skype mreza.png

Ranjivosti Skype sustava
U zadnje vrijeme otkriveno je nekoliko ranjivosti Skype sustava:

• Sigurnosni propusti Skype klijenta koji zlonamjernim korisnicima dozvoljavaju rušenje Skype klijenta i pokretanje proizvoljnog programskog koda na računalu na kojem se klijent nalazi.
• Sigurnosni propust koji Skype korisnicima omogućava pokretanje prijenosa datoteka bez pristanka druge strane, ali samo ako se prijenos događa između dva klijenta koji su već uspostavili povjerenje (tj. verificirali su jedan drugog).

Kao što je vidljivo spomenuti sigurnosni propusti (kao i većina ranije otkrivenih) uglavnom se ne odnose na Skype sustav nego na Skype klijent i to ih čini manje važnim. Jedino što je zabrinjavajuće kod većine propusta Skype klijenta je činjenica da se velik broj njih manifestira na svim platformama što govori o tome da su svi Skype klijenti utemeljeni na vrlo sličnom kodu. To i izuzetna popularnost čini ih potencijalno atraktivnom metom napadača. Iako su otkrivene ranjivosti Skype klijenta relativno opasne, one nisu zabrinule Skype korisnike. Ono što je diglo veliku buku i srušilo povjerenje mnogih Skype korisnika bila je ranjivost Skype sustava koja je uzrokovala njegovo rušenje i nedostupnost korisnicima kroz nekoliko dana u kolovozu ove godine.
Iako se inicijalno smatralo da je uzrok pada sustava problem s autentikacijskim poslužiteljem, to se na kraju pokazalo netočnim. Također, pokazalo se netočnim i prvobitno objavljeno objašnjenje koje pad sustava dovodi u vezu s novoobjavljenim Windows sigurnosnim zakrpama. Nakon rješenja problema, koje se po ocjeni većine korisnika nije dogodilo dovoljno brzo, pojavilo se i konačno službeno objašnjenje koje ukratko opisuje razlog pada sustava. Velik broj ponovnih pokretanja Windows računala u kratkom vremenskom roku, uzrokovanih instalacijom Windows sigurnosnih zakrpa, narušio je integritet Skype P2P mreže. To je dovelo do enormnog povećanja zahtjeva za autentikaciju što je pak zbog manjka trenutno raspoloživih resursa unutar Skype P2P mreže dovelo do lančane reakcije s kritičnim posljedicama. Automatski restauracijski mehanizmi Skype P2P mreže koji su u prošlosti uspjeli riješiti problem nedostatka P2P resursa nisu mogli obnoviti mrežu u nastalim uvjetima koji su ovaj put bili izuzetno nepovoljni. Drugim riječima algoritam za alokaciju resursa nije se mogao dovoljno brzo prilagoditi okolnostima u kojima se jako brzo mijenjaju kako količina prometa tako i struktura Skype P2P mreže te je zaglavio i doveo do raspada mreže. Da bi se problem riješio bilo je potrebno ručno stabilizirati jezgru Skype P2P mreže kako bi se omogućio njen daljnji rad. (HAK, 2002)



Skype i ostali VoIP Sustavi

Skype je vrlo popularan. Unutar prvog tjedna rada više od 60,000 ljudi preuzelo je Skype klijent. Danas je Skype dostupan za Windows, MacOs, POcektPc i Linux. Korištenje Skype software-a je besplatno isto kao i korištenje Skype mreže. Postoji naknada za uspostavu poziva kada se koristi pocija "Skype Out" i "SkypeIn" koje povezuju Skype na PSTN mrežu.
Skype je mnogo lakše koristiti nego druge VoIp sustave. Skype klijent se jednostavno instalira te se osim odabira korisničkog imena i lozinka nije potrebno ništa više konfigurirati. Za razliku od SIP sustava koji koristi Vonage, Skype klijenti rade iza vatrozila i Network Address Translation (NAT) sustava.
Skype ima razvijen vrlo dobar kompresor zvuka te se u mnogim slučajevima nadilazi mogučnosti telefonske linije ako se koristi u kombinaciji sa brzom internet konekcijom.
U dodatku VoIP-a, Skype podržava i instant poruke, pretraživanje i prijenost datoteka.

Skype i Peer-to-Peer

Iako Skype koristi Peer-to-peer komunikaciju za lociranje ostalih Skype korisnika i za prijenos zvuka, tu su mnogi aspekti koji čine Skype drugačijim od potpune peer-to-peer veze.

Skype se oslanja na centralni autentifikacijski server i distribuciju softwarea. Prema Skype-ov publicistu svaki identitet korisnika i distribucija softwarea su digitalno potpisani sa RSA privatnim ključem. Taj ključ ugrađen je u svaki izvršni kod Skype-a.

--Ivareif 10:02, 5. siječnja 2012. (CET)

Zaključak

VoIP je jedan od najboljih načina glasovnog komuniciranja komuniciranja danas. Ne samo da je besplatan nego i omogućuje potpuno kriptiranu vezu između dvoje sugovornika. U usporedbi sa analognim signalom odnosno obicnom telefonskom linijom pruža daleko veću kvalitetu zvuka i više mogućnosti.VoIP je trenutno u razdoblju konstantnih promjena. Novi protokoli se konstruiraju i aplikacije se pojavljuju diljem svijeta. Od nedavno su i hrvatski operateri poput T-com-a uveli Voip zamjenu za analognu liniju te se može primjetiti da se i u ostalim zemljama događa isto, no takav VoIP se naplaćuje fiksnom cijenom po minuti razgovora isto kao i obicni telefonski poziv. Sa povečanjem tehnoške svijesnosti povećva se i potreba za boljom i pouzdanijom tehnologijom komuniciranja.


--Ivareif 12:02, 4. siječnja 2012. (CET)

Literatura

• Vetteth, A., Joseph, D. A., Vincent, Voice over IP - A Comprehensive Study, dostupno na: dilu.tripod.com/research/projects/voip.pdf.gz

• Wikipedia, VoIP, dostupno na: http://hr.wikipedia.org/wiki/VoIP

• Dejan Miljanović: Sigurnost VoIP-a (opasnosti, mjere i rješenja), Telekomunikacijski forum, 2006., dostupno na: http://www.telfor.rs/telfor2006/Radovi/02_TM_07.pdf

• Z. Tripalo, Ž. Solari Štambuk, S. Lerotić, V. Marčić: Protokol H.323, Ericsson Nikola Tesla, 2005., dostupno na: http://www.ericsson.com/hr/etk/revija/Br_2_2005/h323.pdf

• D. Richard Kuhn, Thomas J. Walsh, Steffen Fries: Recommendations of the National Institute of Standards and Technology, U.S. Department of Commerce, 2005.

• Josip Šaban: SIP protokol (2003.). Dostupno na: http://www.zemris.fer.hr/predmeti/mr/arhiva/2002-2003/seminari/finished/pdf/sip.pdf

• HAK (2002.). Dostupno na: http://www.cert.hr/sites/default/files/CCERT-PUBDOC-2007-10-208.pdf

Sve web stranice učitane su u razdoblju od 21.12.2011. do 4.12.2012.

Implementacija SIS VoIP-a

Implementacija SiS Voip Software-a

--Ivareif 21:36, 28. prosinca 2011. (CET)

Osobni alati
Imenski prostori
Inačice
Radnje
Orijentacija
Traka s alatima