NotaryCache: Preventing man-in-the-middle attacks through ubiquitous multi-path probing

There are various design issues with todays WebPKI, ranging from technical issues, such as buggy implementations, to organizational and governance issues. As a consequence, the WebPKI, that constitutes an essential part in todays internet security, is prone to attacks and threats from various actors. This problem is also strengthened by the large size of WebPKI, which prevents fixing the design issues within a short-range. However, to protect a client against different threat actors, few approaches have been evolved in research, which extend the existing WebPKI with different services. The concept of multi-path notaries is one approach to deal with man-in-the-middle attacks. In this concept, special hosts on the internet called notaries are asked to establish a TLS connection to a target host. The notaries then establish a TLS connection to the target host and return the received X.509 certificate back to the client. The client is then able to compare the X.509 certificate, that was received during his own connection establishment, with the X.509 certificate, that was returned by the notary. The goal of this comparison is to give the client the ability to identify forged X.509 certificates, that were knowingly or unknowingly issued to an adversary by the WebPKI. If this process is repeated with different notaries around the world, then man-in-the-middle adversaries, such as rouge ISPs or governments, could be detected. However, notaries face different problems, which lead to the fact, that existing implementations are unattractive to both endusers and server operators, which results in a low distribution of the concept. To better understand the goals and incentives of endusers and server operators, the current situation is examined and a set of requirements for notaries is established. To overcome possible gaps in existing notaries and to prevent the same issues in future implementations, NotaryCache is presented. NotaryCache abstracts from the actual notary to provide a common interface for endusers. It extends each notary with a cache, that can be downloaded by a client asynchronously to evaluate target hosts without connecting to the respective notary during connection establishment with the target host. In contrast to existing notaries, latency is not affected, if the target host is found in the cache. Moreover, NotaryCache extends the cached data with additional information, that can be used for service discovery of notary services or other NotaryCache deployments to prevent user configurable lists of notaries and their cryptographic material. NotaryCache also gives automatic mechanisms to restrict the size of the cache and the number of requests the server will handle to restrict disk and traffic usage. This mechanisms are supported by a context-dependent configuration to avoid complex installation and maintenance, which could otherwise exclude users due to missing expert knowledge. Moreover, NotaryCache introduces replication services to distribute caches to reduce load on the server, as well as monitoring services to give further incentives to take part in this ecosystem. Lastly, NotaryCache is evaluated regarding its resource consumption for an individual user as well as for the internet. It is shown, that NotaryCache could provide benefits for endusers, server operators and businesses.