[ Sale_123 @ 30.08.2005. 22:13 ] @
Radim na jednoj aplikaciji cisto onako da se ucim i dosao sam do par problema, a radi se o sigurnosti web servisa.

Nesto sam vec na netu citao o sigurnosti servisa ali mi neke strvari nisu jasne:

Pretpostavimo da koristimo u nasem web servisu klasu koja sadrzi informacije o korisniku i o tome da li je prosao provjeru identiteta. E sada ukoliko klijent salje informacije o sebi tipa UserName i Password onda bi takve stvari bile vidljive za druge. To se moze rijesiti kao i mnoge druge stvari putem SSL.

Medjutim, sta ako nismo u mogucnosti da si priustimo SSL?
Da li postoje neki sigurni nacini provjere identiteta i autorizacije bez koristenja SSL-a?
Koliko je sigurno koristiti WSE i da li on zahtjeva SSL?

Dakle zanime me generalno koncept sigurnosti za web servise.

Nadam se da nisam previse dosadan.
Hvala.
[ adnan78 @ 31.08.2005. 10:20 ] @
Mozda ce ovo pomoci :)

http://www.msexchange.org/tutorials/SSL_Enabling_OWA_2003.html
[ mmix @ 31.08.2005. 13:04 ] @
Ovo funkcionise samo ako su svi klijenti web servisa pod tvojom kontorlom pa mozes na svaki da instaliras root CA. IE pri browsovanju SSL stranica dozvoljava korisniku da ignorise neki od uslova SSLa (trusted root, matching name, expiry date), medjutim automatski https kliejtni kao sto je SOAP u .NETu pucaju.
Medjutim, ovo je quick&dirty nacin, cak iako se u install klijent aplikacije stavi instalacija rootCA, korisnik ne mora (a ako je pametan i nece) instalirati taj root cert. Skoro smo imali problem kod jednog konkurenta (nazovimo je firma A) koji je tako izdao svoj rootCA da ne bi placao SSL za svoje servise i B2B sajtove, pa su njihovi zaposleni posle pravili svoje privatne web sajtove i stitili ih SSLovima koje su sami pravili na "drugarskoj" osnovi, a kojima su klijenti firme A "verovali" zato sto su im svima instalirali taj rootCA. Kad je jedan od tih zaposlenih poceo da skuplja brojeve kreditnih kartica, postalo je gusto . Biti CA je mnogo vise od potpisivanja certova.

Ako koristis svoju winforms aplikaciju kao klijenta, jedina alternativa SSLu je zapravo SSL sa tim sto se encrytping layer premesta iz https-a u samu aplikaciju. Dakle, sam razmenis kljuceve i sam kriptujes/dekriptujes parametre web metoda kroz dve proxy klase (jedna sa klijent, durga sa server strane), dok se kao transport koristi SOAP kroz nezasticeni http. Kolicina posla ovde je proporcionalna broju metoda koje imas. Za par metoda se isplati, ali ako imas gomilu, mnogo je lakse potrositi 100$ i kupiti SSL cert od trusted CA i zavrsiti pricu.
[ jablan @ 31.08.2005. 13:35 ] @
Citat:
mmix: Kolicina posla ovde je proporcionalna broju metoda koje imas.

Je l' ista ova priča važi i ako se koristi WSE?
[ mmix @ 31.08.2005. 20:22 ] @
Vrlo verovatno ne mora, ali bolje da ovo potvrdi neko ko se igrao sa tim vise, posto WSE nisam propisno pogledao od bete1, sto je bilo mnogo davno, a v2 release ne stizem da pogledam od obaveza (a moracu pre ili kasnije). Ono sto definitivno znam je da smo jednom instalirali WSE i posle builda web servisa svi Java Axis klijenti su bukvalno poludeli, pa smo odustali od toga.

[ Sale_123 @ 31.08.2005. 21:54 ] @
Evo da detaljnije pojasnim problem, ali govoreci hipoteticki:

Pretpostavimo da imamo neki web servis ( uzimam bez veze) nekog kluba koji izdaje dvd, i recimo da taj klub ima neku od stalnih veza ka internetu. Naravno zelimo omoguciti klijentu da preko interneta rezervise neki film. Ovo do sada nije problem ukoliko se web server nalazi na racunaru tog kluba.

Medjutim tu postoji mnogo problema od recimo da dodje do promjene adrese tog racunara kod kluba, nestanka struje, kvara pa do sigurnosti i administiranja sistema.

U tom slucaju (sad ne znam koliko je to pametno ali ne zamjerite jer jos ucim)
1. zakupimo hosting od neke firme, tamo postavimo bazu, web servis i web sajt. Klijenti preko web sajta mogu naruciti film a data i business layer su smjesteni u taj web servis a u klubu se nalazi aplikacija koja samo prestavlja presentation layer, ili
2. postavimo web servis u klubu pa web sajt kontaktira web servis

Nisam siguran koliko je ovo pametno (to ostavljam vama proficima da ocjenite i date bolji predlog ako imate) ali sada treba tu komunikaciju aplikacije u klubu i web servisa(1) ili web sajta i web servisa(2) osigurati.

Ukoliko nemamo SSL moramo sami enkriptovati prenos podataka onako kako je mmix rekao

Citat:
mmix:encrytping layer premesta iz https-a u samu aplikaciju. Dakle, sam razmenis kljuceve i sam kriptujes/dekriptujes parametre web metoda kroz dve proxy klase (jedna sa klijent, durga sa server strane), dok se kao transport koristi SOAP kroz nezasticeni http.


medjutim posto se bas ne rezumijem puno u enkripciju mislio sam da wse moze pomoci ali ne znam da li on zahtjeva SSL, koliko je siguran i hoce li raditi dobro.

[Ovu poruku je menjao Sale_123 dana 31.08.2005. u 23:04 GMT+1]