Scalability and security are two important elements of contemporary distributed software systems. The Web vividly shows that while complying with the constraints defined by the architectural style REST, the layered design of software with intermediate systems enables to scale at large. Intermediaries such as caches, however, interfere with the security guarantees of the industry standard for protecting data in transit on the Web, TLS, as in these circumstances the TLS channel already terminates at the intermediate system's server. For more in-depth defense strategies, service providers require message-oriented security means in addition to TLS. These are hardly available and only in the form of HTTP signature schemes that do not take caches into account either. In this paper we introduce CREHMA, a REST-ful HTTP message signature scheme that guarantees the integrity and authenticity of Web assets from end-to-end while simultaneous allowing service providers to enjoy the benefits of Web caches. Decisively, CREHMA achieves these guarantees without having to trust on the integrity of the cache and without requiring making changes to existing Web caching systems. In extensive experiments we evaluated CREHMA and found that it only introduces marginal impacts on metrics such as latency and data expansion while providing integrity protection from end to end. CREHMA thus extends the possibilities of service providers to achieve an appropriate balance between scalability and security.
[1]
Roy Fielding,et al.
Architectural Styles and the Design of Network-based Software Architectures"; Doctoral dissertation
,
2000
.
[2]
Roy T. Fielding,et al.
Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing
,
2014,
RFC.
[3]
Matjaz B. Juric,et al.
Improved SOA persistence architectural model
,
2010,
SOEN.
[4]
Jian Jiang,et al.
Host of Troubles: Multiple Host Ambiguities in HTTP Implementations
,
2016,
CCS.
[5]
Eran Hammer-Lahav,et al.
The OAuth 1.0 Protocol
,
2010,
RFC.
[6]
Tim Dierks,et al.
The Transport Layer Security (TLS) Protocol Version 1.2
,
2008
.
[7]
Manu Sporny,et al.
Signing HTTP Messages
,
2019
.
[8]
Grady Booch,et al.
The History of Software Engineering
,
2018,
IEEE Software.
[9]
Hannes Tschofenig,et al.
A Method for Signing HTTP Requests for OAuth
,
2016
.
[10]
Dan Boneh,et al.
Stickler: Defending against Malicious Content Distribution Networks in an Unmodified Browser
,
2016,
IEEE Security & Privacy.
[11]
Hannes Federrath,et al.
Mind the cache: large-scale explorative study of web caching
,
2019,
SAC.