Abstract:
Software ist in unterschiedlichsten Bereichen von größter Wichtigkeit: Wirtschaft, Handel, Industrielle Steueranlagen, Transport, Logistik, Kommunikation, sowie im privaten Gebrauch um nur einige Beispiele zu nennen. Es ist entsprechend unverzichtbar, Software mit Integrität und einer expliziten Befürwortung durch den jeweiligen Entwickler oder Herausgeber zu beziehen. In dieser Arbeit verfolgen wir das Ziel, die Interaktion zwischen Erstellern und Nutzern von Software durch die Etablierung und Nutzung von expliziten Identitäten für Software weiter abzusichern. Eine Softwareidentität etabliert in erster Linie einen eindeutigen und persistenten Bezugspunkt an den Softwareersteller Informationen zu Binärdateien ihrer Software anhängen und entfernen können. ... mehrDie Möglichkeit zuvor veröffentlichte Binärdateien aus einer Softwareidentität zu entfernen erlaubt Entwicklern auf sicherheitskritische Fehler oder Kompromittierungen zu reagieren, indem sie klar kommunizieren, dass bestimmte Binärdateien nicht länger verwendet werden sollten. Nutzer einer Software können über solche Widerrufe oder neue Versionen informiert werden, indem sie die entsprechende Softwareidentität beobachten über die sie dann auch die Integrität und Befürwortung von heruntergeladenen Binärdateien überprüfen können.
Distributed Ledger Technologien wie Ethereum oder zuvor Bitcoin scheinen taugliche Plattformen für die Umsetzung von Softwareidentitäten zu sein, ohne dabei auf zentrale Anbieter vertrauen zu müssen. Ein offenes Peer-to-Peer Netzwerk etabliert einen Konsens über einen manipulationsgeschützten Zustandsverlauf, der namensgebende Ledger, und ermöglicht Zugriff auf selbigen. Ethereum ist einer der ersten Distributed Ledger, der sogenannte Smart Contracts ermöglicht. Dabei handelt es sich um Programme, die auf einem Distributed Ledger installiert und ausgeführt werden und damit einen eindeutig referenzierbaren Teil des Ledgerzustandes etablieren und verwalten. Einzig und allein die Programmierung eines Smart Contracts bestimmt darüber, wer den Teilzustand wann und wie verändern kann.
Die erste Forschungsfrage dieser Dissertation zielt auf die Tauglichkeit von Distributed Ledger Technologien hinsichtlich der Etablierung, Verwaltung, und Nutzung von Softwareidentitäten ab. Insbesondere untersuchen wir, wie nützliche Eigenschaften für Softwareidentitätsmanagement und -nutzung von den Sicherheitseigenschaften des zugrundeliegenden Distributed Ledgers und weiteren Annahmen abgeleitet werden können.
Neben der Verwendung von Softwareidentitäten zur weiteren Absicherung der Softwaredistribution untersuchen wir außerdem ihre Nutzbarkeit als Grundlage für unabhängige Begutachtungen von Softwareversionen. Die Durchführung solcher unabhängigen Begutachtungen mittels Distributed Ledgern führt unweigerlich zu einer Herausforderung hinsichtlich der koordinierten Offenlegung der Ergebnisse. Zum Zeitpunkt der Abfassung dieser Arbeit bietet kein Distributed Ledger eine entsprechende Funktionalität, um die Erstellung einer Menge unabhängig erstellter Aussagen zu unterstützen oder zu dokumentieren. Die zweite Forschungsfrage dieser Arbeit befasst sich deshalb mit der Umsetzung eines Offenlegungsmechanismus für Distributed Ledger basierend auf bestehenden kryptografischen Primitiven.
Wir behandeln beide Forschungsfragen, indem wir entsprechende dezentrale Anwendungen konzipieren, implementieren, und evaluieren. Wir nutzen dabei Ethereum als prominentestes Exemplar eines Smart-Contract-fähigen Distributed Ledgers. Genauer gesagt messen wir die Installations- und Ausführungskosten jener Smart Contracts, die für unsere dezentralen Anwendungen nötig sind, um ihre praktische Tauglichkeit zu bestimmen. In zwei Fällen ermitteln wir außerdem den Rechenaufwand, der abseits des Ledgers anfällt. Wir zeigen zudem semi-formal, wie die Sicherheitseigenschaften unserer Proof of Concept Implementierung von dem zugrundeliegenden Distributed Ledger und weiteren Annahmen abgeleitet werden können.
Wir kommen zu dem Ergebnis, dass Ethereum stellvertretend für Smart-Contract-fähige Distributed Ledger eine taugliche Plattform für die Umsetzung von Softwareidentitäten ist, inklusive der zuvor angemerkten unabhängigen Begutachtungen. Da unser Konzept des Softwareidentitätsmanagements auf eher grundlegenden Eigenschaften von Distributed Ledgern fußt sollte es sich gut auf andere Systeme übertragen lassen. Im Gegensatz dazu erfordert unser Konzept für einen Offenlegungsmechanismus die Unterstützung von bestimmten kryptografischen Operationen auf dem verwendeten Ledger, was die Übertragbarkeit entsprechend einschränkt. Die Kosten für die Installation der nötigen Smart Contracts sind signifikant größer als die Ausführungskosten im typischen Gebrauch, weshalb wir für zukünftige Arbeit empfehlen, die Wiederverwendbarkeit von installierten Smart Contract Instanzen zu verbessern. Bei der koordinierten Offenlegung von unabhängig erstellten Aussagen auf einem Distributed Ledger erzielen wir eine Reduktion der Gesamtkosten von 20–40 % im Vergleich zu verwandter Arbeit, indem wir unterschiedliche kryptografische Anforderungen ausnutzen. Unser Ansatz um eine koordinierte Offenlegung auf Ethereum zu erzielen stützt sich auf Elliptische-Kurven-Operationen die, obwohl ausreichend, zum aktuellen Zeitpunkt sehr eingeschränkt sind. Entsprechend trägt unsere Arbeit einen weiteren Grund für die Erweiterung der unterstützten elliptischen Kurven im Zuge der Weiterentwicklung von Ethereum bei.
Abstract (englisch):
Software holds a place of crucial importance in various contexts: business, commerce, industrial control systems, transportation, logistics, communication, and personal use to name a few. Consequently, it is vital to obtain software with integrity and an explicit endorsement from their authoritative source, like their developer or publisher. In this work, we endeavor to make the interaction between software creators and users more secure through the establishment and use of explicit identities for software. At the most basic level, a software identity establishes a unique and persistent reference point to which creators of software can attach and remove information about binaries of their software. ... mehrThe ability to remove previously released binaries from a software identity enables developers to react to security-critical bugs or compromise by clearly stating that these binaries should no longer be used. Users of a particular software can be informed about both revocations and new releases by monitoring the corresponding software identity and use it to verify the integrity and endorsement of newly obtained binaries.
Distributed ledger technologies like Ethereum, or Bitcoin before it, appear to be viable platforms to realize software identities without relying on a centrally trusted provider. An open peer-to-peer network establishes consensus on a tamper-proof state history, the eponymous ledger, and provides access to said history on demand. Ethereum is one of the earliest distributed ledgers to enable smart contracts, programs deployed to a distributed ledger that establish and manage a uniquely referenceable part of the overall ledger state. Crucially, the programming of smart contracts determines how, when, and by whom this substate can be manipulated.
The first research question of this dissertation aims to explore the viability of distributed ledger technologies to establish, manage, and use software identities. In particular, we investigate how useful properties for software identity management and use can be derived from the security properties provided by distributed ledgers in conjunction with further assumptions.
In addition to using software identities to augment and secure the distribution of software, we also explore their use as the basis for independent reviews of software releases. Executing such reviews on distributed ledgers presents a challenge regarding the disclosure of results. At the time of writing, no distributed ledger offers a corresponding functionality to both execute a procedure and document as a result that a set of statements were recorded independently. The second research question we pursue in this work therefore concerns the realization of such a disclosure mechanism on distributed ledgers based on existing cryptographic primitives.
We approach both research questions by designing, implementing, and evaluating corresponding decentralized applications on Ethereum as the most prominent instance of smart-contract-capable distributed ledgers. More specifically, we measure deployment and execution costs for smart contracts that comprise our decentralized applications to determine their practical viability. In two instances, we also evaluate computational effort that arises outside the ledger.
We also semi-formally describe how the security properties of our proof of concept implementations can be derived from the underlying ledger and further assumptions.
We find Ethereum as an instance of smart-contract-capable distributed ledgers to be a viable platform for establishing and using software identities, including the aforementioned independent reviews. As our software identity management concept relies on rather fundamental properties of distributed ledgers, it should generalize well to systems other than Ethereum. By contrast, our concept for coordinated information disclosure relies on support for cryptographic operations on the ledger itself, which limits its generalizability. The costs to deploy the required smart contracts are significantly higher than the execution costs in typical use, which informs our recommendation for future work to improve the reusability of deployed contract instances. Regarding the coordinated disclosure of independently generated statements on a distributed ledger, we achieve overall cost reductions of 20–40 % compared to related work by exploiting differing cryptographic requirements. Our approach to realizing coordinated information disclosure on Ethereum relies on elliptic curve operations which, while sufficient, are rather limited at the time of writing. As such, our work adds to the rationale for expanding the set of supported elliptic curve in the future development of Ethereum.