Certificate-based resource alteration prevention using a public key infrastructure
- The shift from purely static server-side websites to rich web services in the modern World Wide Web entailed so-called single page applications. These are JavaScript programs that run mostly server independent in the client's browser and dynamically change the visible elements, requesting additional resources only when they are needed. Unfortunately, security issues were only of secondary importance in this evolution, leading to numerous client-side attacks nowadays to steal sensitive user data such as credit card data or even passwords. In addition to well-known cross-channel attacks such as cross-site scripting or cross-side request forgery, this also includes resource tampering, which was originally more ascribed to server-side attacks, but which explicitly enables client-side attacks through the distribution of script resources by third party content distribution networks. While existing work deals basically only with attacks by malicious third parties, we assume in this thesisThe shift from purely static server-side websites to rich web services in the modern World Wide Web entailed so-called single page applications. These are JavaScript programs that run mostly server independent in the client's browser and dynamically change the visible elements, requesting additional resources only when they are needed. Unfortunately, security issues were only of secondary importance in this evolution, leading to numerous client-side attacks nowadays to steal sensitive user data such as credit card data or even passwords. In addition to well-known cross-channel attacks such as cross-site scripting or cross-side request forgery, this also includes resource tampering, which was originally more ascribed to server-side attacks, but which explicitly enables client-side attacks through the distribution of script resources by third party content distribution networks. While existing work deals basically only with attacks by malicious third parties, we assume in this thesis that the publisher of the application can be in cahoots with the adversary. The resulting attack, targeting a specific or small group of clients, is called a resource alteration attack, as the application files can be legitimately modified to reveal user information. In this work, we present a novel approach based on a public key infrastructure to prevent such attacks, even if multiple parties within our system have been compromised. Hash values of application resources are embedded in certificates, which are validated by certificate authorities. Thereafter, they are stored on one or more synchronizing log servers in an authenticated data structure, the Merkle Tree. Such a tree is able to generate unforgeable proofs regarding its content and consistency of insertions, whereby the existence of a certificate can be proven beyond doubt and verified by the client. We modify and extend an existing protocol that allows certificate authorities to monitor modification and query processes, signing the proof responses on approval. This allows any malicious party to be identified and held accountable in the event of inconsistencies. We also present an efficient monitoring procedure that does not require a Merkle Tree to be built and maintained locally, so that instead of only dedicated monitors, the client can also ensure global consistency of multiple log servers. An analysis of our proposal shows that the level of security scales in the number of certificate authorities involved, and in the case of a secure connection between publisher and client, both the former and at least one log server must be compromised in addition to the authorities for a successful attack. Furthermore, we encourage security experts to publish their analysis results for an application in our system with a certificate as well. Since we expect casual users to have not taken far-reaching security precautions against common client-side attacks, experts can additionally specify assertions in the analysis certificates to provide additional protection and confidence. These are then verified by our browser extension, which already queries certificates and verifies associated proofs.…