15
Varnost spletnih storitev REST Načini avtentikacije + primer API- jev velikih ponudnikov iz varnostnega stališča Varnost spletnih storitev REST - Načini avtentikacije + primer API-jev velikih ponudnikov iz varnostnega stališča

Varnost Spletnih Storitev REST

Embed Size (px)

Citation preview

Varnost spletnih storitev RESTNaini avtentikacije + primer API-jev velikih ponudnikov iz varnostnega stalia

Click to edit Master subtitle style

Varnost spletnih storitev REST - Naini avtentikacije + primer API-jev 4/29/12 Varnost spletnih

Kaj je REST?

REST ( Representational State Transfer ) je izraz, ki ga je v svoji doktorski disertaciji vpeljal Roy Fielding in opisuje programski arhitekturni stil za omrene sisteme Kljuni premik nakazujejo Web 2.0 ponudniki storitev kot so Yahoo, Google in Facebook, ki so REST arhitekturo e vzeli za svojo ter opustili vmesnike, ki temeljijo na SOAP in WDSL arhitekturi

4/29/12 spletnih storitev REST - spletnihavtentikacije + primer APIVarnost Varnost Naini

Representational State Transferhttp://www.airbus.com/aircraftfamilies/passengeraircraft/a380family/

Odjemal ecTechnology Onboard well-being Environment ...

Stren ik

a380.htmlOdjemalec naslovi spletni vir z uporabo URL naslova. Strenik polje nazaj predstavitev vira v html dokumentu. Aplikacija, ki jo odjemalec uporablja se s sprejemom dokumenta znajde v nekem stanju. Odjemalec lahko prehaja med stanji v kolikor sledi hiper povezavam. Z vsakim novim sledenjem hiper povezavi se odjemalec znajde v novem stanju. Aplikacija odjemalca pravzaprav spreminja ( prenaa transfers) stanja z vsako novo predstavitvijo vira Representation State Transfer! Postopek izbire linkov pomeni pravzaprav state transitions.

4/29/12 spletnih storitev REST - spletnihavtentikacije + primer API-jev Varnost Varnost Naini

REST ni standard

REST ni standard. Je slog, ki ga programerji lahko razumejo in ga upotevajo pri nartovanju spletnih storitev. REST storitve so tehnologije, ki sledijo naelom arhitekturnega sloga REST Sicer pa uporablja standarde: HTTP

-

Varnost spletnih storitev Varnost Naini avtentikacije + primer API-jev 4/29/12 REST - spletnih

REST uporablja HTTP metodeVsi viri se naslavljajo z naslednjimi metodami oziroma ukazi:Metoda GET POST Opis metode Branje podatkov Sprememba oziroma posodobitev podatkov na posameznih virih Ustvarjanje novih virov

PUT

DELETE

Brisanje virov

Varnost spletnih storitev REST - Naini avtentikacije + primer API-jev 4/29/12 Varnost spletnih

PRIMER spletna trgovinaUporabnik lahko polni koarico z elenimi izdelki. Vsak izdelek v aplikaciji je dostopen preko URL naslova, ki predstavlja vir. e elimo dosei koarico s tevilko 5873 sledimo naslednjemu http ukazu:

GET / shoppingcart / 5873

Varnost spletnih storitev Varnost Naini avtentikacije + primer API-jev 4/29/12 REST - spletnih

Vsak izdelek v bazi je v pogledu aplikacije vir. Za dodajanje vira se uporabi ukaz PUT.

e elimo dodati izdelek v koarico se uporabi ukaz POST. Z ukazom pravzaprav spremenimo stanje vira ( je v koarici , ni v koarici ). POST /shoppingcart/articles&cart=5873&article=4 Izdelek izbriemo z ukazom 501

DELETE DELETE /articles/4501

Varnost spletnih storitevVarnost spletnih 4/29/12 REST - Naini avtentikacije + primer API-jev

REST

SOAP

4/29/12 spletnih storitev REST - spletnihavtentikacije + primer API-jev Varnost Varnost Naini

Principi varne REST avtentikacije

Uporaba HTTPS protokola in overjenega certifikata Uporaba API kljua in privatnega kljua (private secret) Vsaka REST poizvedba mora biti podpisan z uporabo privatnega kljuaGET /object? timestamp=1261496500&apiKey=Qwerty2010 &signature=abcdef012344/29/12 spletnih storitev REST spletnih avtentikacije + primer APIVarnost Varnost - Naini

Amazon AWS

4/29/12 Varnost spletnih storitev REST - Naini avtentikacije + primer APIVarnost spletnih

Varnost spletnih storitevVarnost spletnih 4/29/12 REST - Naini avtentikacije + primer API-jev

Varnost 4/29/12 spletnih storitev REST - spletnihavtentikacije + primer APIVarnost Naini jev velikih ponudnikov iz varnostnega stalia

Podpisovanje zahtevka AWSSignature = Base64(HMAC-SHA1(UTF-8-EncodingOf(SecretAccessKeyID, StringToSign))); StringToSign = HTTP-Verb + "\n" + Content-MD5 + "\n" + Content-Type + "\n" + Date + "\n" + PARAMETERS ... ;

Authorization: AWS AWSAccessKeyId:Signature 4/29/12 spletnih storitev REST - spletnihavtentikacije + primer API-jev Varnost Varnost Naini

GET /docget/foto/fotka.jpg HTTP/1.1 Host: johnsmith.s3.amazonaws.com Date: Tue, 27 Mar 2007 19:36:42 +0000 Authorization: AWS 0PN5J17HBGZHT7JJ3X82: xXjDGYUmKxnwqr5KXNPGldn5LbA=

GET\n \n \n Tue, 27 Mar 2007 19:36:42 +0000\n /docget/foto/fotka.jpg

4/29/12 spletnih storitev REST - spletnihavtentikacije + primer API-jev Varnost Varnost Naini

Varnost spletnih storitevVarnost spletnih 4/29/12 REST - Naini avtentikacije + primer API-