SlideShare a Scribd company logo
1 of 4
Download to read offline
RESTful Security
                                                              Dan Forsberg
                                                        Nokia Research Center
                                                          Helsinki, Finland
                                            dan.forsberg@nokia.com, dforsber@gmail.com

Abstract— We take a look into the REST architectural style of          sniffed by others. Actually, the users may copy and publish the
making scalable web applications and find out the critical             links by themselves.
requirements that mismatch with the current web security and
privacy architecture. One of the core challenges is the inability of       There are many ways to design and implement web
the web security model to scale up with caching when millions of       applications. Many applications are implemented with the
users share confidential data inside communities. Our                  model of Remote Procedure Calls (RPC over HTTP) that are
contribution includes a new solution for achieving RESTful             executed on the server side and thus increases the load. This
security for web architecture without secure URLs. The solution        does not help service providers to easily scale up their services
scales up the performance of web services that require                 for a higher number of clients, which is a crucial requirement
confidentiality protection and relaxes the security requirements       for today’s web applications. One of the answers to this
for data storage networks by separating the access control             problem is Roy Fielding’s Representational State Transfer
decision from the data request.                                        (REST) [4..7] architectural style for web applications and has
                                                                       become an important set of requirements for modern web
    REST, web security, TLS, web caching, user privacy, key            application developers and designers (e.g. REST APIs). REST
hierarchy, key derivation                                              style brings clarity on how to build highly scalable web
                                                                       applications. For example, it allows servers to be more stateless
                       I.    INTRODUCTION                              and utilizes the benefits of caching with more static Uniform
    More applications are being developed for the web instead          Resource Identifiers (URI) [8]. In REST style applications the
of as native applications for an operating system like Windows.        URIs can be referenced after the session as well in contrast to
Social networking is one common phenomenon for these                   many web applications, where the dynamic URIs are used and
applications and allows people to register, create own profiles,       their relevance is low after the session ends. Even REST is
tune their application preferences, and invite friends to join         described as an architectural style, it implies multiple
communities. The users upload photos and other personal data           requirements for web applications. It efficiently utilizes the
and share information about their life, like how they think, live,     HTTP protocol (version 1.1 [9]) methods to handle data and
consume, and connect with different people. This brings up             requests in contrast to web applications that use single GET
security issues like user’s privacy, data confidentiality, identity    method to invoke remote scripts with arguments to modify and
verification (authentication), and access authorization for            read data.
handling all this personal data. Who is able or allowed to                 There is a gap between the REST architecture and the
access the data? What is considered to be private and public           current security features of today’s web. The security
and how it is followed? It is crucial that scalable security is        architecture does not naturally align with the REST
taken into account and built into the architecture of applications     architecture in the sense that secure sessions create session
and services like these in the open internet with billions of          specific keys but more static data that can be stored in web
users.                                                                 caches can not be confidentiality protected and fetched from
    The current methods for implementing security include user         the caches at the same time. This heavily reduces the scalability
authentication [1] and Transport Layer Security (TLS) [2] for          of the REST architectural style for applications and services
protecting sessions over the Internet. Certificates are used to        that require access control to the data and for this reason
authenticate the web site URLs for the clients, but the scheme         provide the data through e.g. TLS [2] tunnels or require HTTP
wrongly relies on human understanding of the links and                 authorization. In this paper we identify and address some of the
certificates and thus phishing attacks have emerged. Web               challenges that rise up from this gap.
cookies [3] are used to e.g. transfer session information and to           In section 2 we describe the REST architectural design
carry authorization information in the HTTP requests during            style and web caching in more details. In section 3 we describe
the session lifetime. The personal data of the users is usually        some possible solutions to overcome the limitations of the
stored and in many cases transferred unencrypted.                      current security architecture that also support the REST
Furthermore, users have weak or no control over the data that          architectural style for web applications. Furthermore, we
is once transferred to the services. If a malicious user is able to    analyze our solution in section 4 and list some issues for further
access another person’s (victim) picture or video and put it into      study. We conclude this paper in section 5.
the Internet the victim has small or no chances to delete the
content once it has spread around. The only defense may be a
secret URL, transferred in plain text over the network, which
may not be good enough in some cases as the URLs can be
II.   REST ARCHITECTURAL DESIGN STYLE ALIGNS WITH               response in the cache already for the URI and return an old
                        WEB CACHING                                response. This may be ok for the application or service logic.
                                                                   REST architectural style of implementing web applications
    HTTP version 1.1 has four main methods for client
                                                                   gives a good guidance for the designer and developers. It is
requests, namely GET, PUT, POST, and DELETE (there are
                                                                   about understanding the nature of the web and not misusing it.
also other methods like HEAD, CONNECT, and TRACE,
                                                                   It also discourages the usage of scripting for all user session
which we do not address in this paper). The REST handles all
                                                                   specific data handling as the content based on the results from
data as URIs and the HTTP methods are applied to them. To
                                                                   scripts are not generally cached.
make this more general, the HTTP GET can be seen as similar
to read data, PUT similar to create/replace data, POST similar         The REST style encourages having a separate URI for each
to append to/create data, and DELETE similar to remove data.       data item, like a single photo or entry in a database. One of the
GET (also HEAD) is a safe read method, which does not alter        reasons is that different data items can be cached separately,
the data, but all the other methods update the data in some        e.g. a user’s image in the cache does not expire even if the user
ways and can be thought as write methods (i.e. append, replace,    changes the profile data information in the web application
or remove).                                                        database. This encourages developers to apply HTTP PUT/
                                                                   POST/ DELETE to a most accurate URI in question. In
    Web content caching [10] with the URIs assigned to the
                                                                   contrast one might design the web application in such a way
data items is an important part of RESTful thinking and applies
to the HTTP GET method. Data that needs to be presented to         that all PUT/ POST/ DELETE queries go to the same root URI
                                                                   but with different arguments for the script. This may flush the
the user via the browser is fetched with the HTTP GET method
                                                                   cache [9] as the data is updated with these methods and the
from the web servers. Between the client and the server there
                                                                   current cached entry may become invalid. Using scripts also
can be web proxies and web caches that may already contain
                                                                   makes effective caching hard for all entries addressed with the
the requested URI presented in the GET request. Caches reduce
bandwidth usage and especially the server load, and shows as       root URI if for example the mod_cache [13] is used with
smaller lag to the user. On the other hand the freshness of the    Apache web server. Take this search query URI as an example:
fetched data needs to be known.                                      (1) http://mypics.com/?cmd=create&cat=music&sub=rock&title=acdc

    There are multiple web caching models. User agent caches       and compare it with the following examples:
are implemented in the web browsers in the clients themselves
and are user specific. Proxy caches (also known as forward           (2) http://mypics.com/music/rock/?title=acdc
                                                                     (3) http://mypics.com/music/rock/acdc
proxy caches) are most known to normal users as they require
configuration of the browser (i.e. proxy settings). Interception
proxy caches or transparent caches are variants that do not        We see that the first example, if used with PUT/ POST, may
require setting up the clients. On the other hand gateway          disable cached copies of all entries for the mypics.com (write
caches, reverse proxy caches, surrogate caches, or web             operation on that URL updating the content), whilst the second
accelerators are closer to or inside the server site and not       only for the rock subcategory in the music category. The last
visible to the clients either. There are protocols to manage the   example row is the simplest and follows the RESTful design,
contents of the web caches in a distributed manner, such as        e.g. if used with PUT. All GET, PUT, POST, and DELETE can
Internet Cache Protocol (ICP) [10, 11] and Hypertext Caching       be invoked with the same URI and the web application knows
Protocol (HTCP) [12]. Further on, the web caches can work          what to do with it.
together to implement Content Delivery (or Distribution)
Networks (CDN). These become very important when the               A. Web security and caching
scalability of video on demand services like YouTube                   There are message based end-to-end security mechanisms,
(www.youtube.com) etc. is considered.                              like Secure / Multipurpose Internet Mail Extensions (S/MIME)
                                                                   [14], Cryptographic Message Syntax (CMS) [15], and Pretty
    HTTP protocol includes mechanisms to control caching.          Good      Privacy    (PGP)     email     protection   program
Freshness ("cache lifetime") allows the cache to provide the
                                                                   (www.pgp.com) based on public keys originally developed by
response to the client without re-checking it on the origin
                                                                   Philip Zimmermann back in 1991. S/MIME is a public key
server. Validation is used in the cache to check from the origin   based standard for encrypting and signing emails, it adds the
server whether the expired cache entry is still valid. Then, an
                                                                   security extensions into the MIME. CMS is a more general
important feature for the RESTful architectural model is the
                                                                   specification for message level authentication, signing, and
way how cache entries may become invalidated. Invalidation         encryption. CMS supports shared secrets in addition to public
happens usually as a side effect when HTTP PUT/ POST/              key based solutions. These are application level security
DELETE request is applied for the respective cached URI [9].       mechanisms and not generally implemented for securing web
Since these requests modify the respective URI the cache can       content.
not provide the cached version of the URI back to the client but
let the origin server handle the write operation and provide the      With TLS the secure sessions are user specific and keys are
response (note that there may be other web caches on the           generated on the fly. The content that is encrypted again and
routing path that are not traversed, especially user agent and     again when pushed to the secure tunnel. The data can not be
proxy caches). On the other hand if the HTTP GET method is         cached as the web caches can not access the data inside the
designed to be used as an RPC method to call a script in the       secure tunnel. On the other hand the client accessing the
server for writing data, the cache may think it has a valid        content gets the data and can further copy it locally or
distribute it further (even the decryption keys themselves). The     the keys to decrypt the content. Note that the end result of this
former problem is about content protection and access control,       model is similar to current web security model with TLS,
latter problem about user control and platform security and          except that the (a) servers do not do redundant encryptions and
relates to DRM, which is out of the scope of this paper. Thus,       that the (b) caching of the data under access control is possible
in this paper we concentrate on the former problem, namely           without any needs to make the URLs secret.
caching content that requires access control and confidentiality
protection.                                                              We use key hierarchies together with directory hierarchies
                                                                     for supporting REST architectural style. In this model we have
                                                                     a     root    key     root-K      for  the     root   directory
       III.   DIRECTORY SPECIFIC SYMMETRIC CONTENT                   ("http://www.domain.com/") and derive next level keys along
                       ENCRYPTION KEYS                               with the directory structure. For example:
    Let’s say we build a "mypics.com" web application in a              http://www.domain.com/ : root-K
RESTful style and make the URIs in a way that the pictures              …/pictures/ : pictures-K = H(Root-K, "pictures")
can be easily cached for scalability reasons. But with the              …/pictures/john/ : john-K= H(Pictures-K, "john")
current web technology if they are cached, anybody can get the          …/pictures/john/23.jpg : 23.jpg-K = H(John-K, "23.jpg")
                                                                        …/pictures/mary/ : mary-K = H(pictures-K, "mary")
pictures if they know the correct (secret) URI even if they were        …/pictures/mary/face.jpg : face.jpg-K = H(mary-K, "face.jpg")
not authenticated users. So, we have a problem. If we apply
secure sessions with TLS and transfer all the pictures inside the    Here the function H is a one-way key derivation function
secure tunnel, caching is effectively disabled as the caches         (KDF) used for getting next level keys. The keys are bound to
along the path can not intercept the pictures. Also, the pictures    the directory and file names. This allows access control based
are encrypted multiple times for each client accessing them          on every single file or set of directories below a root directory.
(redundant encryptions). But on the other hand the pictures are      Each client knows how to create the next level key from the
safe and user sessions authenticated. Another possible               root key. Thus, John could set the policy to allow Mary to get
improvement solution is to disable general caching and apply         the key John-K, but set the policy to allow Jane to see only the
application specific caching near the server where the secure        picture 23.jpg and thus get the key 23-K only. Note that the
session ends. However, this is not a nice solution as it requires    names of the keys are in the scope of the directory namespace,
application platform specific caching and does not utilize the       i.e. face.jpg-K key is not unique name until it is bound with the
benefits of proxy caches. And still, it also requires that the       directory of /pictures/mary/.
server encrypts the pictures as they go through the tunnel for
each session separately (redundant encryptions). It also puts
security requirements on the data in the servers behind access       A. Extending the key hierarchy
control.                                                                 We initially wanted to align the web security architecture
                                                                     with the REST architectural style without loosing the existing
    In user communities photos are generally shared among            content protection and access control features. In our model the
trusted people only. This requires access control to the photos      content is protected and the keys are provided only for those
and user authentication. Also, commercial sites that require         clients or users who have authorization to access the content.
users to pay for the content want to restrict the content to the     Our model also scales well to different levels of security
customers that pay for it but at the same time want to make          policies where the subdirectories and files are protected with
their service architecture as scalable as possible to allow higher   separate keys based on a key hierarchy. However, the
growth of customer base. There is a mismatch between these           disadvantage of this model is that once a client gets a key for a
two targets when web caching is considered. I.e. web caching         directory all the subdirectories are also accessible for the user.
is not possible for the encrypted content.
                                                                         The model could be extended to break the key hierarchy in
    Our solution sketch to this problem is simple. We create a       these cases and create a new and independent root key for the
content protection key, optionally bind the lifetime of that key     subdirectory that requires access control separation from the
with the cache lifetime of the URI, and provide the key to those     parent directory’s access control. This would also require the
clients who are authorized to access the ciphered content. All       client to understand that now the directory key can not be used
pictures (or e.g. videos with progressive download) are              to create subdirectory key for this particular subdirectory. The
encrypted with the content protection key and can thus be            immediate analogy to the web server configuration would be to
stored outside the service provisioning pool. We require secure      use the .htaccess file and extend it to support a mechanism,
user authentication and content access authorization decisions       which describes the key hierarchy relation for that particular
(e.g. through TLS tunnels or with HTTP authentication and            directory. For example the .htaccess file could say that the
authorization mechanisms). The actual data is then accessed          content protection key is NULL (no encryption), PARENT
without secure HTTP and thus served for the clients directly         (use the parent directory key to derive the subdirectory key), or
outside secure TLS tunnel or HTTP authorization headers even         ROOT (start a new key hierarchy for this directory).
from any available cache that may have the encrypted data
stored. In this model the secure HTTP session acts as a control         The downside of this extension is that the client does not
channel where the data protection keys are provided for the          know whether new key is needed or if the existing parent key
clients after proper authentication and authorization. We            can be used. Without this extension the client could always
support the REST architectural style and allow all clients to        apply the parent key for directory hierarchies with assigned
access the encrypted data content URIs without access control.       root keys. One way to implement this extension would be to
Thus, the data is not usable for the clients if they do not have
extend HTTP headers with information about the key hierarchy              Our solution reduces the need to do HTTP authorization
root, adding a key identifier of the respective key, or both.         checks for the data as access is controlled with the decryption
                                                                      key. In effect our solution is analogical to secret URI usage
                        IV.   DISCUSSION                              schemes except that instead of adding the secret part into the
                                                                      URI, we use key to secure the content itself, which better
    There are multiple advantages in our approach of content          fulfills the privacy and data confidentiality needs. Our solution
protection based on separate content protection keys delivered        could also be used e.g. with OAuth [16], where the Access
to clients via secure authenticated and authorized sessions. First    Token is replaced with the content decryption key.
and most important advantage is that this way the web security
architecture could be better aligned with the REST                        Getting the data to the client is only part of the solution of
architectural style. Doing this enables all the caching scalability   access control to the content. Users can copy the images and
advantages of the REST architectural design style.                    videos to other users, which essentially bypasses the access
                                                                      control of the web applications. This said, we note that our
    Our model reduces server load considerably with content           solution is aligned with the model of the current web security
that requires confidentiality protection. When using a content        model but adjusts it to match better with web caching for data
protection key, there is no need to encrypt the same content          that requires confidentiality protection.
again and again over a TLS session. The server needs to protect
the content once per caching lifetime, which can be very long
for content that does not change, e.g. picture and video files.                                      REFERENCES
                                                                      [1]    Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P.,
    Clients can get the content from local or remote caches                  Luotonen, A., Sink, E. and L. Stewart, HTTP Authentication: Basic and
even without logging in into the web application once they                   Digest Access Authentication, Internet RFC 2617, June 1999. URL:
have received the content protection keys. This also effectively             ftp://ftp.isi.edu/in-notes/rfc2617.txt
enables offline use cases for web applications that require           [2]    T. Dierks, C. Allen, The TLS Protocol Version 1.0; Internet RFC 2246,
content protection and access authorization. On the other hand               January 1999, URL: http://tools.ietf.org/html/rfc2246
our model also allows content pre-distribution to clients and         [3]    "HTTP State Management Mechanism"; D. Kristol, L. Montulli,
                                                                             October           2000,        Internet       RFC       2965,      URL:
getting the access rights and content decryption key later on.               http://tools.ietf.org/html/rfc2965
This may have potential to improve the user experience on             [4]    "Architectural Styles and the Design of Network-based Software
some services, where the content can be downloaded in the                    Architectures",        Roy       Fielding,      Ph.D.    thesis.   URL:
background and displayed for the user immediately when                       http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
decryption keys are available (pre-fetching or parallel fetching      [5]    Ryan Tomayko, "How I explained REST to My Wife", Referenced
while user is authenticating).                                               2008-11-18, URL: http://tomayko.com/articles/2004/12/12/rest-to-my-
                                                                             wife
    There are multiple implementation alternatives. Initially if a    [6]    Stefan Tilkov, "A brief introduction to REST", Referenced 2008-11-18,
web application developer wants to use this model of encrypted               URL: http://www.infoq.com/articles/rest-introduction
content, the encryption, decryption, and key management could         [7]    Leonard Richardson, "RESTful Web Services", Referenced 2008-11-18,
be done on the application layer (e.g. with Javascript and                   URL:            http://www.amazon.com/RESTful-Web-Services-Leonard-
plugins). Another approach could be to standardize needed                    Richardson/dp/0596529260
extensions with the HTTP protocol. There is lots of work to be        [8]    T. Berners-Lee, R. T. Fielding, and L. Masinter. Uniform Resource
done for further defining how this model would work in                       Identifiers (URI): Generic syntax. Internet RFC 2396, Aug. 1998, URL:
                                                                             http://tools.ietf.org/html/rfc2396
practice and actually verifying how different caching
                                                                      [9]    R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T.
technologies behave. CMS could be used for the actual content                Berners-Lee, "HTTP 1.1 Protocol", Internet RFC 2616, URL:
encryption (and integrity protection).                                       http://www.w3.org/Protocols/rfc2616/rfc2616.html)
                                                                      [10]   D. Wessels, K. Claffy, "Internet Cache Protocol (ICP), version 2";
                        V.    CONCLUSION                                     Internet RFC 2186, Sept 1997, URL: http://tools.ietf.org/html/rfc2186
                                                                      [11]   D. Wessels, K. Claffy, "Application of Internet Cache Protocol (ICP),
    We analyzed the web security architecture model within the               version       2",    Sept     1997,     Internet    RFC    2187,   URL:
scope of REST and concluded that the two of them are not well                http://tools.ietf.org/html/rfc2187
aligned. To overcome this mismatch, we sketched a solution,           [12]   P. Vixie, D. Wessels, "Hyper Text Caching Protocol (HTCP/0.0)",
which consists of hierarchical content protection keys that                  January           2000,        Internet       RFC       2756,      URL:
share the lifetime of the cached context and are delivered to the            http://tools.ietf.org/html/rfc2756
clients through secure HTTP after proper user authentication.         [13]   Apache HTTP server mod_cache module documentation; Referenced
We analyzed this solution in high level and gave some topics                 2008-11-18. URL: http://httpd.apache.org/docs/2.2/caching.html
for further study on this area. Our solution seems to give a          [14]    B. Ramsdell, "Secure/Multipurpose Internet Mail Extensions (S/MIME)
                                                                             Version 3.1 Message Specification", Internet RFC 3851, July 2004,
promise of improved web application scalability in cases where               URL: http://www.ietf.org/rfc/rfc3851.txt
access control and content protection needs to be applied for all     [15]   R. Housley, "Cryptographic Message Syntax (CMS)", Internet RFC
content. This is a very important topic as there are multiple                3852, July 2004, URL: http://www.ietf.org/rfc/rfc3852.txt
content distribution network providers and hundreds of                [16]   Mark Atwood & al., “OAuth Core 1.0"; URL: http://oauth.net/core/1.0/,
millions of files that require access authorization. We also                 December 4, 2007
realized that it is not easy to find out how caching works in real
life as there are many configuration options.

More Related Content

What's hot

Stealth Extranet for SharePoint_datasheet
Stealth Extranet for SharePoint_datasheetStealth Extranet for SharePoint_datasheet
Stealth Extranet for SharePoint_datasheetMark Stratman
 
IRJET - Confidential Image De-Duplication in Cloud Storage
IRJET - Confidential Image De-Duplication in Cloud StorageIRJET - Confidential Image De-Duplication in Cloud Storage
IRJET - Confidential Image De-Duplication in Cloud StorageIRJET Journal
 
Volume 2-issue-6-2073-2076
Volume 2-issue-6-2073-2076Volume 2-issue-6-2073-2076
Volume 2-issue-6-2073-2076Editor IJARCET
 
Enabling data dynamic and indirect mutual trust for cloud computing storage s...
Enabling data dynamic and indirect mutual trust for cloud computing storage s...Enabling data dynamic and indirect mutual trust for cloud computing storage s...
Enabling data dynamic and indirect mutual trust for cloud computing storage s...IEEEFINALYEARPROJECTS
 
Disclosing Private Information from Metadata, hidden info and lost data
Disclosing Private Information from  Metadata, hidden info and lost data Disclosing Private Information from  Metadata, hidden info and lost data
Disclosing Private Information from Metadata, hidden info and lost data Chema Alonso
 
Mona secure multi owner data sharing for dynamic groups in the cloud-ppt
Mona secure multi owner data sharing for dynamic groups in the cloud-pptMona secure multi owner data sharing for dynamic groups in the cloud-ppt
Mona secure multi owner data sharing for dynamic groups in the cloud-pptKrushna Panda
 
A secure anti collusion data sharing scheme for dynamic groups in the cloud
A secure anti collusion data sharing scheme for dynamic groups in the cloudA secure anti collusion data sharing scheme for dynamic groups in the cloud
A secure anti collusion data sharing scheme for dynamic groups in the cloud1crore projects
 
Google File System
Google File SystemGoogle File System
Google File Systemvivatechijri
 
Secure Distributed Deduplication Systems with Improved Reliability
Secure Distributed Deduplication Systems with Improved ReliabilitySecure Distributed Deduplication Systems with Improved Reliability
Secure Distributed Deduplication Systems with Improved Reliability1crore projects
 
Enterprise & Web based Federated Identity Management & Data Access Controls
Enterprise & Web based Federated Identity Management & Data Access Controls Enterprise & Web based Federated Identity Management & Data Access Controls
Enterprise & Web based Federated Identity Management & Data Access Controls Kingsley Uyi Idehen
 
Mona secure multi owner data sharing for dynamic groups in the cloud
Mona secure multi owner data sharing for dynamic groups in the cloudMona secure multi owner data sharing for dynamic groups in the cloud
Mona secure multi owner data sharing for dynamic groups in the cloudAvinash K S
 
secure multi-owner data sharing for dynamic groups
secure multi-owner data sharing for dynamic groupssecure multi-owner data sharing for dynamic groups
secure multi-owner data sharing for dynamic groupsSuchithra Balan
 
Article data-centric security key to cloud and digital business
Article   data-centric security key to cloud and digital businessArticle   data-centric security key to cloud and digital business
Article data-centric security key to cloud and digital businessUlf Mattsson
 
E FFICIENT D ATA R ETRIEVAL F ROM C LOUD S TORAGE U SING D ATA M ININ...
E FFICIENT  D ATA  R ETRIEVAL  F ROM  C LOUD  S TORAGE  U SING  D ATA  M ININ...E FFICIENT  D ATA  R ETRIEVAL  F ROM  C LOUD  S TORAGE  U SING  D ATA  M ININ...
E FFICIENT D ATA R ETRIEVAL F ROM C LOUD S TORAGE U SING D ATA M ININ...IJCI JOURNAL
 
XA Secure | Whitepaper on data security within Hadoop
XA Secure | Whitepaper on data security within HadoopXA Secure | Whitepaper on data security within Hadoop
XA Secure | Whitepaper on data security within Hadoopbalajiganesan03
 
Secure distributed deduplication systems
Secure distributed deduplication systemsSecure distributed deduplication systems
Secure distributed deduplication systemsPvrtechnologies Nellore
 

What's hot (17)

Stealth Extranet for SharePoint_datasheet
Stealth Extranet for SharePoint_datasheetStealth Extranet for SharePoint_datasheet
Stealth Extranet for SharePoint_datasheet
 
IRJET - Confidential Image De-Duplication in Cloud Storage
IRJET - Confidential Image De-Duplication in Cloud StorageIRJET - Confidential Image De-Duplication in Cloud Storage
IRJET - Confidential Image De-Duplication in Cloud Storage
 
Volume 2-issue-6-2073-2076
Volume 2-issue-6-2073-2076Volume 2-issue-6-2073-2076
Volume 2-issue-6-2073-2076
 
Enabling data dynamic and indirect mutual trust for cloud computing storage s...
Enabling data dynamic and indirect mutual trust for cloud computing storage s...Enabling data dynamic and indirect mutual trust for cloud computing storage s...
Enabling data dynamic and indirect mutual trust for cloud computing storage s...
 
Disclosing Private Information from Metadata, hidden info and lost data
Disclosing Private Information from  Metadata, hidden info and lost data Disclosing Private Information from  Metadata, hidden info and lost data
Disclosing Private Information from Metadata, hidden info and lost data
 
Mona secure multi owner data sharing for dynamic groups in the cloud-ppt
Mona secure multi owner data sharing for dynamic groups in the cloud-pptMona secure multi owner data sharing for dynamic groups in the cloud-ppt
Mona secure multi owner data sharing for dynamic groups in the cloud-ppt
 
A secure anti collusion data sharing scheme for dynamic groups in the cloud
A secure anti collusion data sharing scheme for dynamic groups in the cloudA secure anti collusion data sharing scheme for dynamic groups in the cloud
A secure anti collusion data sharing scheme for dynamic groups in the cloud
 
Oruta ppt
Oruta pptOruta ppt
Oruta ppt
 
Google File System
Google File SystemGoogle File System
Google File System
 
Secure Distributed Deduplication Systems with Improved Reliability
Secure Distributed Deduplication Systems with Improved ReliabilitySecure Distributed Deduplication Systems with Improved Reliability
Secure Distributed Deduplication Systems with Improved Reliability
 
Enterprise & Web based Federated Identity Management & Data Access Controls
Enterprise & Web based Federated Identity Management & Data Access Controls Enterprise & Web based Federated Identity Management & Data Access Controls
Enterprise & Web based Federated Identity Management & Data Access Controls
 
Mona secure multi owner data sharing for dynamic groups in the cloud
Mona secure multi owner data sharing for dynamic groups in the cloudMona secure multi owner data sharing for dynamic groups in the cloud
Mona secure multi owner data sharing for dynamic groups in the cloud
 
secure multi-owner data sharing for dynamic groups
secure multi-owner data sharing for dynamic groupssecure multi-owner data sharing for dynamic groups
secure multi-owner data sharing for dynamic groups
 
Article data-centric security key to cloud and digital business
Article   data-centric security key to cloud and digital businessArticle   data-centric security key to cloud and digital business
Article data-centric security key to cloud and digital business
 
E FFICIENT D ATA R ETRIEVAL F ROM C LOUD S TORAGE U SING D ATA M ININ...
E FFICIENT  D ATA  R ETRIEVAL  F ROM  C LOUD  S TORAGE  U SING  D ATA  M ININ...E FFICIENT  D ATA  R ETRIEVAL  F ROM  C LOUD  S TORAGE  U SING  D ATA  M ININ...
E FFICIENT D ATA R ETRIEVAL F ROM C LOUD S TORAGE U SING D ATA M ININ...
 
XA Secure | Whitepaper on data security within Hadoop
XA Secure | Whitepaper on data security within HadoopXA Secure | Whitepaper on data security within Hadoop
XA Secure | Whitepaper on data security within Hadoop
 
Secure distributed deduplication systems
Secure distributed deduplication systemsSecure distributed deduplication systems
Secure distributed deduplication systems
 

Viewers also liked

Securing the Insecure
Securing the InsecureSecuring the Insecure
Securing the InsecureWSO2
 
Workshop: Creating RESTful API’s with Grails and Spring Security (GR8Conf 2014)
Workshop: Creating RESTful API’s with Grails and Spring Security (GR8Conf 2014)Workshop: Creating RESTful API’s with Grails and Spring Security (GR8Conf 2014)
Workshop: Creating RESTful API’s with Grails and Spring Security (GR8Conf 2014)Alvaro Sanchez-Mariscal
 
REST Level 5 - A Trek To The Summit
REST Level 5 - A Trek To The SummitREST Level 5 - A Trek To The Summit
REST Level 5 - A Trek To The SummitPat Cappelaere
 
State of Authenticating RESTful APIs
State of Authenticating RESTful APIsState of Authenticating RESTful APIs
State of Authenticating RESTful APIsrobwinch
 
Restful Security Requirements
Restful Security RequirementsRestful Security Requirements
Restful Security RequirementsPat Cappelaere
 
Securty Testing For RESTful Applications
Securty Testing For RESTful ApplicationsSecurty Testing For RESTful Applications
Securty Testing For RESTful ApplicationsSource Conference
 
Creating RESTful API’s with Grails and Spring Security
Creating RESTful API’s with Grails and Spring SecurityCreating RESTful API’s with Grails and Spring Security
Creating RESTful API’s with Grails and Spring SecurityAlvaro Sanchez-Mariscal
 
DataPower Restful API Security
DataPower Restful API SecurityDataPower Restful API Security
DataPower Restful API SecurityJagadish Vemugunta
 

Viewers also liked (9)

Securing the Insecure
Securing the InsecureSecuring the Insecure
Securing the Insecure
 
Workshop: Creating RESTful API’s with Grails and Spring Security (GR8Conf 2014)
Workshop: Creating RESTful API’s with Grails and Spring Security (GR8Conf 2014)Workshop: Creating RESTful API’s with Grails and Spring Security (GR8Conf 2014)
Workshop: Creating RESTful API’s with Grails and Spring Security (GR8Conf 2014)
 
REST Level 5 - A Trek To The Summit
REST Level 5 - A Trek To The SummitREST Level 5 - A Trek To The Summit
REST Level 5 - A Trek To The Summit
 
RESTful Security
RESTful SecurityRESTful Security
RESTful Security
 
State of Authenticating RESTful APIs
State of Authenticating RESTful APIsState of Authenticating RESTful APIs
State of Authenticating RESTful APIs
 
Restful Security Requirements
Restful Security RequirementsRestful Security Requirements
Restful Security Requirements
 
Securty Testing For RESTful Applications
Securty Testing For RESTful ApplicationsSecurty Testing For RESTful Applications
Securty Testing For RESTful Applications
 
Creating RESTful API’s with Grails and Spring Security
Creating RESTful API’s with Grails and Spring SecurityCreating RESTful API’s with Grails and Spring Security
Creating RESTful API’s with Grails and Spring Security
 
DataPower Restful API Security
DataPower Restful API SecurityDataPower Restful API Security
DataPower Restful API Security
 

Similar to Rest ful security

REST & RESTful APIs: The State of Confusion
REST & RESTful APIs: The State of ConfusionREST & RESTful APIs: The State of Confusion
REST & RESTful APIs: The State of ConfusionGlenn Antoine
 
Secc tutorials development and deployment of rest web services in java_v2.0
Secc tutorials development and deployment of rest web services in java_v2.0Secc tutorials development and deployment of rest web services in java_v2.0
Secc tutorials development and deployment of rest web services in java_v2.0Aravindharamanan S
 
Web Based Secure Soa
Web Based Secure SoaWeb Based Secure Soa
Web Based Secure Soaijbuiiir1
 
Restful web-services
Restful web-servicesRestful web-services
Restful web-servicesrporwal
 
Enabling Fine-grained Multi-keyword Search Supporting Classified Sub-dictiona...
Enabling Fine-grained Multi-keyword Search Supporting Classified Sub-dictiona...Enabling Fine-grained Multi-keyword Search Supporting Classified Sub-dictiona...
Enabling Fine-grained Multi-keyword Search Supporting Classified Sub-dictiona...1crore projects
 
Enabling Fine-grained Multi-keyword Search Supporting Classified Sub-dictiona...
Enabling Fine-grained Multi-keyword Search Supporting Classified Sub-dictiona...Enabling Fine-grained Multi-keyword Search Supporting Classified Sub-dictiona...
Enabling Fine-grained Multi-keyword Search Supporting Classified Sub-dictiona...1crore projects
 
IRJET- Rest API for E-Commerce Site
IRJET- Rest API for E-Commerce SiteIRJET- Rest API for E-Commerce Site
IRJET- Rest API for E-Commerce SiteIRJET Journal
 
Developing Distributed Web Applications, Where does REST fit in?
Developing Distributed Web Applications, Where does REST fit in?Developing Distributed Web Applications, Where does REST fit in?
Developing Distributed Web Applications, Where does REST fit in?Srinath Perera
 
20507-38933-1-PB.pdf
20507-38933-1-PB.pdf20507-38933-1-PB.pdf
20507-38933-1-PB.pdfIjictTeam
 
200211 Fielding Apachecon
200211 Fielding Apachecon200211 Fielding Apachecon
200211 Fielding ApacheconDaniel Parker
 
The Proliferation And Advances Of Computer Networks
The Proliferation And Advances Of Computer NetworksThe Proliferation And Advances Of Computer Networks
The Proliferation And Advances Of Computer NetworksJessica Deakin
 
Key aspects of big data storage and its architecture
Key aspects of big data storage and its architectureKey aspects of big data storage and its architecture
Key aspects of big data storage and its architectureRahul Chaturvedi
 
Res tful web services oracle
Res tful web services oracleRes tful web services oracle
Res tful web services oracleknoxxs
 
A Study Of Web Services And Its Implications
A Study Of Web Services And Its ImplicationsA Study Of Web Services And Its Implications
A Study Of Web Services And Its ImplicationsTony Lisko
 

Similar to Rest ful security (20)

REST & RESTful APIs: The State of Confusion
REST & RESTful APIs: The State of ConfusionREST & RESTful APIs: The State of Confusion
REST & RESTful APIs: The State of Confusion
 
Secc tutorials development and deployment of rest web services in java_v2.0
Secc tutorials development and deployment of rest web services in java_v2.0Secc tutorials development and deployment of rest web services in java_v2.0
Secc tutorials development and deployment of rest web services in java_v2.0
 
ReSTful API Final
ReSTful API FinalReSTful API Final
ReSTful API Final
 
Web Based Secure Soa
Web Based Secure SoaWeb Based Secure Soa
Web Based Secure Soa
 
Restful web-services
Restful web-servicesRestful web-services
Restful web-services
 
Rest vs Soap
Rest vs SoapRest vs Soap
Rest vs Soap
 
Enabling Fine-grained Multi-keyword Search Supporting Classified Sub-dictiona...
Enabling Fine-grained Multi-keyword Search Supporting Classified Sub-dictiona...Enabling Fine-grained Multi-keyword Search Supporting Classified Sub-dictiona...
Enabling Fine-grained Multi-keyword Search Supporting Classified Sub-dictiona...
 
Enabling Fine-grained Multi-keyword Search Supporting Classified Sub-dictiona...
Enabling Fine-grained Multi-keyword Search Supporting Classified Sub-dictiona...Enabling Fine-grained Multi-keyword Search Supporting Classified Sub-dictiona...
Enabling Fine-grained Multi-keyword Search Supporting Classified Sub-dictiona...
 
IRJET- Rest API for E-Commerce Site
IRJET- Rest API for E-Commerce SiteIRJET- Rest API for E-Commerce Site
IRJET- Rest API for E-Commerce Site
 
Developing Distributed Web Applications, Where does REST fit in?
Developing Distributed Web Applications, Where does REST fit in?Developing Distributed Web Applications, Where does REST fit in?
Developing Distributed Web Applications, Where does REST fit in?
 
20507-38933-1-PB.pdf
20507-38933-1-PB.pdf20507-38933-1-PB.pdf
20507-38933-1-PB.pdf
 
Unit 2
Unit 2Unit 2
Unit 2
 
200211 Fielding Apachecon
200211 Fielding Apachecon200211 Fielding Apachecon
200211 Fielding Apachecon
 
The Proliferation And Advances Of Computer Networks
The Proliferation And Advances Of Computer NetworksThe Proliferation And Advances Of Computer Networks
The Proliferation And Advances Of Computer Networks
 
Key aspects of big data storage and its architecture
Key aspects of big data storage and its architectureKey aspects of big data storage and its architecture
Key aspects of big data storage and its architecture
 
Lab7 paper
Lab7 paperLab7 paper
Lab7 paper
 
Enterprise REST
Enterprise RESTEnterprise REST
Enterprise REST
 
Res tful web services oracle
Res tful web services oracleRes tful web services oracle
Res tful web services oracle
 
A Study Of Web Services And Its Implications
A Study Of Web Services And Its ImplicationsA Study Of Web Services And Its Implications
A Study Of Web Services And Its Implications
 
REST Servers in Delphi XE Using DataSnap
REST Servers in Delphi XE Using DataSnapREST Servers in Delphi XE Using DataSnap
REST Servers in Delphi XE Using DataSnap
 

Recently uploaded

Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Celine George
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxOH TEIK BIN
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
Final demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxFinal demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxAvyJaneVismanos
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 
Painted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaPainted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaVirag Sontakke
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxGaneshChakor2
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersSabitha Banu
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxSayali Powar
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTiammrhaywood
 
MARGINALIZATION (Different learners in Marginalized Group
MARGINALIZATION (Different learners in Marginalized GroupMARGINALIZATION (Different learners in Marginalized Group
MARGINALIZATION (Different learners in Marginalized GroupJonathanParaisoCruz
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentInMediaRes1
 
Biting mechanism of poisonous snakes.pdf
Biting mechanism of poisonous snakes.pdfBiting mechanism of poisonous snakes.pdf
Biting mechanism of poisonous snakes.pdfadityarao40181
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon AUnboundStockton
 

Recently uploaded (20)

Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptx
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
Final demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxFinal demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptx
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 
Painted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of IndiaPainted Grey Ware.pptx, PGW Culture of India
Painted Grey Ware.pptx, PGW Culture of India
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptx
 
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginners
 
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptxPOINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
POINT- BIOCHEMISTRY SEM 2 ENZYMES UNIT 5.pptx
 
OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
 
MARGINALIZATION (Different learners in Marginalized Group
MARGINALIZATION (Different learners in Marginalized GroupMARGINALIZATION (Different learners in Marginalized Group
MARGINALIZATION (Different learners in Marginalized Group
 
Alper Gobel In Media Res Media Component
Alper Gobel In Media Res Media ComponentAlper Gobel In Media Res Media Component
Alper Gobel In Media Res Media Component
 
Biting mechanism of poisonous snakes.pdf
Biting mechanism of poisonous snakes.pdfBiting mechanism of poisonous snakes.pdf
Biting mechanism of poisonous snakes.pdf
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon A
 

Rest ful security

  • 1. RESTful Security Dan Forsberg Nokia Research Center Helsinki, Finland dan.forsberg@nokia.com, dforsber@gmail.com Abstract— We take a look into the REST architectural style of sniffed by others. Actually, the users may copy and publish the making scalable web applications and find out the critical links by themselves. requirements that mismatch with the current web security and privacy architecture. One of the core challenges is the inability of There are many ways to design and implement web the web security model to scale up with caching when millions of applications. Many applications are implemented with the users share confidential data inside communities. Our model of Remote Procedure Calls (RPC over HTTP) that are contribution includes a new solution for achieving RESTful executed on the server side and thus increases the load. This security for web architecture without secure URLs. The solution does not help service providers to easily scale up their services scales up the performance of web services that require for a higher number of clients, which is a crucial requirement confidentiality protection and relaxes the security requirements for today’s web applications. One of the answers to this for data storage networks by separating the access control problem is Roy Fielding’s Representational State Transfer decision from the data request. (REST) [4..7] architectural style for web applications and has become an important set of requirements for modern web REST, web security, TLS, web caching, user privacy, key application developers and designers (e.g. REST APIs). REST hierarchy, key derivation style brings clarity on how to build highly scalable web applications. For example, it allows servers to be more stateless I. INTRODUCTION and utilizes the benefits of caching with more static Uniform More applications are being developed for the web instead Resource Identifiers (URI) [8]. In REST style applications the of as native applications for an operating system like Windows. URIs can be referenced after the session as well in contrast to Social networking is one common phenomenon for these many web applications, where the dynamic URIs are used and applications and allows people to register, create own profiles, their relevance is low after the session ends. Even REST is tune their application preferences, and invite friends to join described as an architectural style, it implies multiple communities. The users upload photos and other personal data requirements for web applications. It efficiently utilizes the and share information about their life, like how they think, live, HTTP protocol (version 1.1 [9]) methods to handle data and consume, and connect with different people. This brings up requests in contrast to web applications that use single GET security issues like user’s privacy, data confidentiality, identity method to invoke remote scripts with arguments to modify and verification (authentication), and access authorization for read data. handling all this personal data. Who is able or allowed to There is a gap between the REST architecture and the access the data? What is considered to be private and public current security features of today’s web. The security and how it is followed? It is crucial that scalable security is architecture does not naturally align with the REST taken into account and built into the architecture of applications architecture in the sense that secure sessions create session and services like these in the open internet with billions of specific keys but more static data that can be stored in web users. caches can not be confidentiality protected and fetched from The current methods for implementing security include user the caches at the same time. This heavily reduces the scalability authentication [1] and Transport Layer Security (TLS) [2] for of the REST architectural style for applications and services protecting sessions over the Internet. Certificates are used to that require access control to the data and for this reason authenticate the web site URLs for the clients, but the scheme provide the data through e.g. TLS [2] tunnels or require HTTP wrongly relies on human understanding of the links and authorization. In this paper we identify and address some of the certificates and thus phishing attacks have emerged. Web challenges that rise up from this gap. cookies [3] are used to e.g. transfer session information and to In section 2 we describe the REST architectural design carry authorization information in the HTTP requests during style and web caching in more details. In section 3 we describe the session lifetime. The personal data of the users is usually some possible solutions to overcome the limitations of the stored and in many cases transferred unencrypted. current security architecture that also support the REST Furthermore, users have weak or no control over the data that architectural style for web applications. Furthermore, we is once transferred to the services. If a malicious user is able to analyze our solution in section 4 and list some issues for further access another person’s (victim) picture or video and put it into study. We conclude this paper in section 5. the Internet the victim has small or no chances to delete the content once it has spread around. The only defense may be a secret URL, transferred in plain text over the network, which may not be good enough in some cases as the URLs can be
  • 2. II. REST ARCHITECTURAL DESIGN STYLE ALIGNS WITH response in the cache already for the URI and return an old WEB CACHING response. This may be ok for the application or service logic. REST architectural style of implementing web applications HTTP version 1.1 has four main methods for client gives a good guidance for the designer and developers. It is requests, namely GET, PUT, POST, and DELETE (there are about understanding the nature of the web and not misusing it. also other methods like HEAD, CONNECT, and TRACE, It also discourages the usage of scripting for all user session which we do not address in this paper). The REST handles all specific data handling as the content based on the results from data as URIs and the HTTP methods are applied to them. To scripts are not generally cached. make this more general, the HTTP GET can be seen as similar to read data, PUT similar to create/replace data, POST similar The REST style encourages having a separate URI for each to append to/create data, and DELETE similar to remove data. data item, like a single photo or entry in a database. One of the GET (also HEAD) is a safe read method, which does not alter reasons is that different data items can be cached separately, the data, but all the other methods update the data in some e.g. a user’s image in the cache does not expire even if the user ways and can be thought as write methods (i.e. append, replace, changes the profile data information in the web application or remove). database. This encourages developers to apply HTTP PUT/ POST/ DELETE to a most accurate URI in question. In Web content caching [10] with the URIs assigned to the contrast one might design the web application in such a way data items is an important part of RESTful thinking and applies to the HTTP GET method. Data that needs to be presented to that all PUT/ POST/ DELETE queries go to the same root URI but with different arguments for the script. This may flush the the user via the browser is fetched with the HTTP GET method cache [9] as the data is updated with these methods and the from the web servers. Between the client and the server there current cached entry may become invalid. Using scripts also can be web proxies and web caches that may already contain makes effective caching hard for all entries addressed with the the requested URI presented in the GET request. Caches reduce bandwidth usage and especially the server load, and shows as root URI if for example the mod_cache [13] is used with smaller lag to the user. On the other hand the freshness of the Apache web server. Take this search query URI as an example: fetched data needs to be known. (1) http://mypics.com/?cmd=create&cat=music&sub=rock&title=acdc There are multiple web caching models. User agent caches and compare it with the following examples: are implemented in the web browsers in the clients themselves and are user specific. Proxy caches (also known as forward (2) http://mypics.com/music/rock/?title=acdc (3) http://mypics.com/music/rock/acdc proxy caches) are most known to normal users as they require configuration of the browser (i.e. proxy settings). Interception proxy caches or transparent caches are variants that do not We see that the first example, if used with PUT/ POST, may require setting up the clients. On the other hand gateway disable cached copies of all entries for the mypics.com (write caches, reverse proxy caches, surrogate caches, or web operation on that URL updating the content), whilst the second accelerators are closer to or inside the server site and not only for the rock subcategory in the music category. The last visible to the clients either. There are protocols to manage the example row is the simplest and follows the RESTful design, contents of the web caches in a distributed manner, such as e.g. if used with PUT. All GET, PUT, POST, and DELETE can Internet Cache Protocol (ICP) [10, 11] and Hypertext Caching be invoked with the same URI and the web application knows Protocol (HTCP) [12]. Further on, the web caches can work what to do with it. together to implement Content Delivery (or Distribution) Networks (CDN). These become very important when the A. Web security and caching scalability of video on demand services like YouTube There are message based end-to-end security mechanisms, (www.youtube.com) etc. is considered. like Secure / Multipurpose Internet Mail Extensions (S/MIME) [14], Cryptographic Message Syntax (CMS) [15], and Pretty HTTP protocol includes mechanisms to control caching. Good Privacy (PGP) email protection program Freshness ("cache lifetime") allows the cache to provide the (www.pgp.com) based on public keys originally developed by response to the client without re-checking it on the origin Philip Zimmermann back in 1991. S/MIME is a public key server. Validation is used in the cache to check from the origin based standard for encrypting and signing emails, it adds the server whether the expired cache entry is still valid. Then, an security extensions into the MIME. CMS is a more general important feature for the RESTful architectural model is the specification for message level authentication, signing, and way how cache entries may become invalidated. Invalidation encryption. CMS supports shared secrets in addition to public happens usually as a side effect when HTTP PUT/ POST/ key based solutions. These are application level security DELETE request is applied for the respective cached URI [9]. mechanisms and not generally implemented for securing web Since these requests modify the respective URI the cache can content. not provide the cached version of the URI back to the client but let the origin server handle the write operation and provide the With TLS the secure sessions are user specific and keys are response (note that there may be other web caches on the generated on the fly. The content that is encrypted again and routing path that are not traversed, especially user agent and again when pushed to the secure tunnel. The data can not be proxy caches). On the other hand if the HTTP GET method is cached as the web caches can not access the data inside the designed to be used as an RPC method to call a script in the secure tunnel. On the other hand the client accessing the server for writing data, the cache may think it has a valid content gets the data and can further copy it locally or
  • 3. distribute it further (even the decryption keys themselves). The the keys to decrypt the content. Note that the end result of this former problem is about content protection and access control, model is similar to current web security model with TLS, latter problem about user control and platform security and except that the (a) servers do not do redundant encryptions and relates to DRM, which is out of the scope of this paper. Thus, that the (b) caching of the data under access control is possible in this paper we concentrate on the former problem, namely without any needs to make the URLs secret. caching content that requires access control and confidentiality protection. We use key hierarchies together with directory hierarchies for supporting REST architectural style. In this model we have a root key root-K for the root directory III. DIRECTORY SPECIFIC SYMMETRIC CONTENT ("http://www.domain.com/") and derive next level keys along ENCRYPTION KEYS with the directory structure. For example: Let’s say we build a "mypics.com" web application in a http://www.domain.com/ : root-K RESTful style and make the URIs in a way that the pictures …/pictures/ : pictures-K = H(Root-K, "pictures") can be easily cached for scalability reasons. But with the …/pictures/john/ : john-K= H(Pictures-K, "john") current web technology if they are cached, anybody can get the …/pictures/john/23.jpg : 23.jpg-K = H(John-K, "23.jpg") …/pictures/mary/ : mary-K = H(pictures-K, "mary") pictures if they know the correct (secret) URI even if they were …/pictures/mary/face.jpg : face.jpg-K = H(mary-K, "face.jpg") not authenticated users. So, we have a problem. If we apply secure sessions with TLS and transfer all the pictures inside the Here the function H is a one-way key derivation function secure tunnel, caching is effectively disabled as the caches (KDF) used for getting next level keys. The keys are bound to along the path can not intercept the pictures. Also, the pictures the directory and file names. This allows access control based are encrypted multiple times for each client accessing them on every single file or set of directories below a root directory. (redundant encryptions). But on the other hand the pictures are Each client knows how to create the next level key from the safe and user sessions authenticated. Another possible root key. Thus, John could set the policy to allow Mary to get improvement solution is to disable general caching and apply the key John-K, but set the policy to allow Jane to see only the application specific caching near the server where the secure picture 23.jpg and thus get the key 23-K only. Note that the session ends. However, this is not a nice solution as it requires names of the keys are in the scope of the directory namespace, application platform specific caching and does not utilize the i.e. face.jpg-K key is not unique name until it is bound with the benefits of proxy caches. And still, it also requires that the directory of /pictures/mary/. server encrypts the pictures as they go through the tunnel for each session separately (redundant encryptions). It also puts security requirements on the data in the servers behind access A. Extending the key hierarchy control. We initially wanted to align the web security architecture with the REST architectural style without loosing the existing In user communities photos are generally shared among content protection and access control features. In our model the trusted people only. This requires access control to the photos content is protected and the keys are provided only for those and user authentication. Also, commercial sites that require clients or users who have authorization to access the content. users to pay for the content want to restrict the content to the Our model also scales well to different levels of security customers that pay for it but at the same time want to make policies where the subdirectories and files are protected with their service architecture as scalable as possible to allow higher separate keys based on a key hierarchy. However, the growth of customer base. There is a mismatch between these disadvantage of this model is that once a client gets a key for a two targets when web caching is considered. I.e. web caching directory all the subdirectories are also accessible for the user. is not possible for the encrypted content. The model could be extended to break the key hierarchy in Our solution sketch to this problem is simple. We create a these cases and create a new and independent root key for the content protection key, optionally bind the lifetime of that key subdirectory that requires access control separation from the with the cache lifetime of the URI, and provide the key to those parent directory’s access control. This would also require the clients who are authorized to access the ciphered content. All client to understand that now the directory key can not be used pictures (or e.g. videos with progressive download) are to create subdirectory key for this particular subdirectory. The encrypted with the content protection key and can thus be immediate analogy to the web server configuration would be to stored outside the service provisioning pool. We require secure use the .htaccess file and extend it to support a mechanism, user authentication and content access authorization decisions which describes the key hierarchy relation for that particular (e.g. through TLS tunnels or with HTTP authentication and directory. For example the .htaccess file could say that the authorization mechanisms). The actual data is then accessed content protection key is NULL (no encryption), PARENT without secure HTTP and thus served for the clients directly (use the parent directory key to derive the subdirectory key), or outside secure TLS tunnel or HTTP authorization headers even ROOT (start a new key hierarchy for this directory). from any available cache that may have the encrypted data stored. In this model the secure HTTP session acts as a control The downside of this extension is that the client does not channel where the data protection keys are provided for the know whether new key is needed or if the existing parent key clients after proper authentication and authorization. We can be used. Without this extension the client could always support the REST architectural style and allow all clients to apply the parent key for directory hierarchies with assigned access the encrypted data content URIs without access control. root keys. One way to implement this extension would be to Thus, the data is not usable for the clients if they do not have
  • 4. extend HTTP headers with information about the key hierarchy Our solution reduces the need to do HTTP authorization root, adding a key identifier of the respective key, or both. checks for the data as access is controlled with the decryption key. In effect our solution is analogical to secret URI usage IV. DISCUSSION schemes except that instead of adding the secret part into the URI, we use key to secure the content itself, which better There are multiple advantages in our approach of content fulfills the privacy and data confidentiality needs. Our solution protection based on separate content protection keys delivered could also be used e.g. with OAuth [16], where the Access to clients via secure authenticated and authorized sessions. First Token is replaced with the content decryption key. and most important advantage is that this way the web security architecture could be better aligned with the REST Getting the data to the client is only part of the solution of architectural style. Doing this enables all the caching scalability access control to the content. Users can copy the images and advantages of the REST architectural design style. videos to other users, which essentially bypasses the access control of the web applications. This said, we note that our Our model reduces server load considerably with content solution is aligned with the model of the current web security that requires confidentiality protection. When using a content model but adjusts it to match better with web caching for data protection key, there is no need to encrypt the same content that requires confidentiality protection. again and again over a TLS session. The server needs to protect the content once per caching lifetime, which can be very long for content that does not change, e.g. picture and video files. REFERENCES [1] Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Clients can get the content from local or remote caches Luotonen, A., Sink, E. and L. Stewart, HTTP Authentication: Basic and even without logging in into the web application once they Digest Access Authentication, Internet RFC 2617, June 1999. URL: have received the content protection keys. This also effectively ftp://ftp.isi.edu/in-notes/rfc2617.txt enables offline use cases for web applications that require [2] T. Dierks, C. Allen, The TLS Protocol Version 1.0; Internet RFC 2246, content protection and access authorization. On the other hand January 1999, URL: http://tools.ietf.org/html/rfc2246 our model also allows content pre-distribution to clients and [3] "HTTP State Management Mechanism"; D. Kristol, L. Montulli, October 2000, Internet RFC 2965, URL: getting the access rights and content decryption key later on. http://tools.ietf.org/html/rfc2965 This may have potential to improve the user experience on [4] "Architectural Styles and the Design of Network-based Software some services, where the content can be downloaded in the Architectures", Roy Fielding, Ph.D. thesis. URL: background and displayed for the user immediately when http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm decryption keys are available (pre-fetching or parallel fetching [5] Ryan Tomayko, "How I explained REST to My Wife", Referenced while user is authenticating). 2008-11-18, URL: http://tomayko.com/articles/2004/12/12/rest-to-my- wife There are multiple implementation alternatives. Initially if a [6] Stefan Tilkov, "A brief introduction to REST", Referenced 2008-11-18, web application developer wants to use this model of encrypted URL: http://www.infoq.com/articles/rest-introduction content, the encryption, decryption, and key management could [7] Leonard Richardson, "RESTful Web Services", Referenced 2008-11-18, be done on the application layer (e.g. with Javascript and URL: http://www.amazon.com/RESTful-Web-Services-Leonard- plugins). Another approach could be to standardize needed Richardson/dp/0596529260 extensions with the HTTP protocol. There is lots of work to be [8] T. Berners-Lee, R. T. Fielding, and L. Masinter. Uniform Resource done for further defining how this model would work in Identifiers (URI): Generic syntax. Internet RFC 2396, Aug. 1998, URL: http://tools.ietf.org/html/rfc2396 practice and actually verifying how different caching [9] R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. technologies behave. CMS could be used for the actual content Berners-Lee, "HTTP 1.1 Protocol", Internet RFC 2616, URL: encryption (and integrity protection). http://www.w3.org/Protocols/rfc2616/rfc2616.html) [10] D. Wessels, K. Claffy, "Internet Cache Protocol (ICP), version 2"; V. CONCLUSION Internet RFC 2186, Sept 1997, URL: http://tools.ietf.org/html/rfc2186 [11] D. Wessels, K. Claffy, "Application of Internet Cache Protocol (ICP), We analyzed the web security architecture model within the version 2", Sept 1997, Internet RFC 2187, URL: scope of REST and concluded that the two of them are not well http://tools.ietf.org/html/rfc2187 aligned. To overcome this mismatch, we sketched a solution, [12] P. Vixie, D. Wessels, "Hyper Text Caching Protocol (HTCP/0.0)", which consists of hierarchical content protection keys that January 2000, Internet RFC 2756, URL: share the lifetime of the cached context and are delivered to the http://tools.ietf.org/html/rfc2756 clients through secure HTTP after proper user authentication. [13] Apache HTTP server mod_cache module documentation; Referenced We analyzed this solution in high level and gave some topics 2008-11-18. URL: http://httpd.apache.org/docs/2.2/caching.html for further study on this area. Our solution seems to give a [14] B. Ramsdell, "Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 3.1 Message Specification", Internet RFC 3851, July 2004, promise of improved web application scalability in cases where URL: http://www.ietf.org/rfc/rfc3851.txt access control and content protection needs to be applied for all [15] R. Housley, "Cryptographic Message Syntax (CMS)", Internet RFC content. This is a very important topic as there are multiple 3852, July 2004, URL: http://www.ietf.org/rfc/rfc3852.txt content distribution network providers and hundreds of [16] Mark Atwood & al., “OAuth Core 1.0"; URL: http://oauth.net/core/1.0/, millions of files that require access authorization. We also December 4, 2007 realized that it is not easy to find out how caching works in real life as there are many configuration options.