Threat Mitigation in RESTful Environment
Copyright © 2010 Open Geospatial Consortium, Inc.
93 The suggested approach for the security implementation within a REST service is either
2-way SSL or HTTP Basic Authentication over 1-way SSL. This will provide point-to- point or transport level security. There are no specific standards for implementing
security in a RESTful web service, although there are common practices.
Table 38: Realization of security measures in a RESTful environment
Security measure
Realization
Authentication In two-way SSL authentication mutual authentication, the SSL
client application verifies the identity of the SSL server application, and then the SSL server application verifies the identity of the SSL-
client application. Two-way SSL authentication is also referred to as client authentication because the application acting as an SSL client
presents its certificate to the SSL server after the SSL server authenticates itself to the SSL client. Either self-signed certificates
or certificates released by a trusted CA such as VeriSign can be used. In any case it is important to check the certificate for validity,
including validation of revocation lists and the trusted root certificates. In the context of web browser clients, the use of the
SAML 2 Web Browser SSO Profile can be used to create a security context that is typically maintained in secure cookies cookies that
are only transmitted via HTTPS connections. Http Basic Authentication over one-way SSL enables the application operating
as the SSL client to verify the identity of the application operating as the SSL server. The server can implement or use an existing identity
management system API, such as SAML, OpenAuth or OAuth, to verify a users identity. This would require the users of the service to
have an account with the third party - the Identity Provider.
Authorization In an SSL implementation, either one-way or two-way, the digital
certificate can contain information about a user including their role. The web service could authorize access to data based on
the user’s role. Authorization could also be achieved via custom code
implemented inside the service that would allow an administrator to configure access to individual users or a group of users. A developer
could leverage existing third party identity management system APIs and data stores, such as an LDAP repository, to determine
access controls on their service.
94
Copyright © 2010 Open Geospatial Consortium, Inc.
Security measure
Realization
Non-repudiation In a two-way SSL authenticated system, if both sides use digital
certificates generated by a trusted certificate authority CA, such as VeriSign, to do their auditing of interactions, then both parties are
protected. With Basic HTTP authentication with one-way SSL, only trusted audit at the service side is possible. This audit log needs to be
confidential and integrity protected to both the client and the service party to ensure trustworthiness.
Data confidentiality
Confidentiality of the information being passed is the main purpose of the SSL and TLS protocols. SSL is a secure way of transferring
information between two points on the internet using encryption. When data is being passed between the client and the server on a
network, the SSL responses are encrypted so that the data cannot be deciphered by a third party and the data remains confidential.
Data integrity When data is being passed between the client and the server on a
network, SSL helps guarantee that the data will not be modified in transit by that third party.
Availability Responsibility for availability is placed on the server. Availability is
slightly addressed with SSL since secure communications prevent malicious users from having direct access to the system.
Privacy SSL provides privacy. It is provided through encryption, which
scrambles traffic so that it is incomprehensible to a potential eaves dropper.
Communication security
SSL technology allows web browsers and web servers to communicate over a secure connection. In this secure connection,
the data is encrypted before being sent, and then is decrypted upon receipt and before processing. Both the browser and the server
encrypt all traffic before sending any data.