Webservice Autorisierung mit Attributzertifikaten - Studienarbeit Ingo Kampe Sommer 2009 - Institut für Informatik Systemarchitektur - Systems ...

Die Seite wird erstellt Titus-Stefan Bachmann
 
WEITER LESEN
Webservice Autorisierung mit Attributzertifikaten - Studienarbeit Ingo Kampe Sommer 2009 - Institut für Informatik Systemarchitektur - Systems ...
Studienarbeit

Webservice Autorisierung mit
    Attributzertifikaten

           Ingo Kampe
           Sommer 2009

       Institut für Informatik
        Systemarchitektur
Inhaltsverzeichnis
1. Einleitung                                                                                               3
   1.1. „Das Netz ist der Computer“ (Sun Microsystems) . . . . . . . . . . . . . . . .                      3
   1.2. Serviceorientierte Architektur (SOA) und Webservices . . . . . . . . . . . . .                      3
   1.3. Attributzertifikate als plattformübergreifende Tickets . . . . . . . . . . . . . .                  4

2. Grundlagen                                                                                                4
   2.1. IT-Sicherheit . . . . . . . . . . . . . . . . . . . . . . . . . . . .   .   .   .   .   .   .   .    4
        2.1.1. Authentizität versus Autorisierung . . . . . . . . . . . . .     .   .   .   .   .   .   .    5
        2.1.2. Zugriffskontrollmodelle . . . . . . . . . . . . . . . . . .      .   .   .   .   .   .   .    6
        2.1.3. Ticketbasierte Verfahren . . . . . . . . . . . . . . . . . .     .   .   .   .   .   .   .    6
   2.2. X.509 Attributzertifikate . . . . . . . . . . . . . . . . . . . . . .   .   .   .   .   .   .   .    7
   2.3. Webservices . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   .   .   .   .   .   .   .    9
        2.3.1. Einführung . . . . . . . . . . . . . . . . . . . . . . . . .     .   .   .   .   .   .   .    9
        2.3.2. OASIS WS-Security, der Standard . . . . . . . . . . . . .        .   .   .   .   .   .   .   10
        2.3.3. Anforderungen an eine Webservice-Sicherheitsarchitektur          .   .   .   .   .   .   .   13
   2.4. Zusammenführung der Komponenten . . . . . . . . . . . . . . .           .   .   .   .   .   .   .   14

3. Anwendungsbeispiel: Direktdemokratie                                                                     15
   3.1. Ziel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                15
        3.1.1. Story . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                  15
        3.1.2. Technik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                  16
        3.1.3. Einschränkung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                    16
   3.2. Architektur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                 17
        3.2.1. Beteiligte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                 17
        3.2.2. Anwendungsfälle . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                    17
        3.2.3. Komponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                    18
        3.2.4. Schnittstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                 19
   3.3. Privilege Management Infrastructur (PMI) . . . . . . . . . . . . . . . . . . . .                    20
        3.3.1. Vorbereitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                   20
        3.3.2. Erstellung AA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                    20
        3.3.3. Erstellung AC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                  21
        3.3.4. Verifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                 23
   3.4. Webservice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                  24
        3.4.1. Java SDK integrierter Webservicestack: JAX-WS . . . . . . . . . . . .                        24
        3.4.2. Interoperabilität und Sicherheit auf Basis der JAX-WS API: das Metro
                Projekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                 25
   3.5. Projektstruktur und Sourcecodemanagement (SCM) . . . . . . . . . . . . . . .                        27
   3.6. Ausführen und Testen der Beispielimplementierung . . . . . . . . . . . . . . .                      27
        3.6.1. Anwendungsfall 2: Durchführung der vote Operationen mit gültigen At-
                tributen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                28
        3.6.2. Anwendungsfall 3: Versuchte Durchführung einer vote Operation mit
                zurückgezogenem Attributzertifikat . . . . . . . . . . . . . . . . . . .                    29

                                                2
4. Fazit                                                                                      30

A. Verzeichnisstruktur der Beispielimplementierung                                            31

Literatur                                                                                     32

1. Einleitung
1.1. „Das Netz ist der Computer“ (Sun Microsystems)
Das Internet verändert nicht nur die Art der Kommunikation und des Datenaustausches von
Menschen und Maschinen sondern mittlerweile wesentliche Merkmale der Softwarearchitektur
selbst. Während früher die Schnittstellen zur Dateneingabe und zur Ergebnisausgabe auf ein
geschlossenes Rechnersystem beschränkt waren, haben sich heute auf Basis des Internet Pro-
tokolls verschiedene Mechanismen etabliert, um zwischen beliebigen Systemen über beliebige
Entfernungen Interaktionen zu ermöglichen. Diese so genannten verteilten Systeme stellen völ-
lig neue Herausforderungen an das Softwaredesign, an die eingesetzten Protokolle und an die
IT-Sicherheit.
   Software läuft nicht mehr unbedingt als abgeschlossene Prozedurabfolge eines lokalen Pro-
zessors, sondern kann, in logischer Folge einer immer stärkeren Modularisierung, in ihrem Ab-
lauf und mit ihren Komponenten auf verschiedene vernetzte Systeme verteilt werden. Hierbei
werden verschiedene Ziele verfolgt. Von der Steigerung der Performance durch Parallelisie-
rung (Loadbalancing), der Verbesserung der Verfügbarkeit durch redundante Bestandteile (High
Availibity), der Umsetzung neuer Geschäftsmodelle und der Verlagerung von Administrations-
aufwänden bis zur Spezialisierung auf einzelne Funktionen aus (patent-) rechtlichen oder Soft-
waredesigngründen (Modularität, Wiederverwendbarkeit, Neukomposition).
   Die Protokolle sind meist offengelegt und standardisiert, da die beteiligten Kommunikati-
onspartner in ihrer Anzahl und Vielfalt stark zugenommen haben. Weiterhin ermöglichen diese
eine plattformunabhängige Nutzung, um flexibel beliebige Betriebssysteme auf verschiedenster
Hardware zusammenarbeiten zu lassen. Um die Anforderungen an die Kommunikationssicher-
heit zu erfüllen, unterstützen bereits die Protokolle entsprechende Verfahren und Formate.
   Völlig neue Sicherheitsanforderungen ergeben sich durch die Kommunikation über ein of-
fenenes Medium. Einfache organisatorische Maßnahmen reichen nicht mehr aus, um die Au-
thentizität der Beteiligten sicherzustellen. Manipulationen und Kopien sind in der digitalen Welt
wesentlich vereinfacht und können ohne kryptografische Verfahren nicht entdeckt oder verhin-
dert werden. Zahlreiche Verfahren versuchen die entsprechenden Sicherheitsziele für bestimmte
Bereiche und Anwendungsfälle umzusetzen.
   Eine Möglichkeit Authentizitätsregeln zu transportieren stellen X.509 Attributzertifikate dar,
die in dieser Arbeit angewendet werden im Umfeld von SOAP-basierten Webservices.

1.2. Serviceorientierte Architektur (SOA) und Webservices
SOA ist aktuell ein sehr häufig genutzter Begriff mit dem eine konzeptionelle Idee zur Umset-
zung der neuen vernetzten Welt bei der Abbildung von konkreten Geschäftsprozesse in die IT

                                               3
Systemarchitektur beschrieben wird. In [11] wird SOA als Konzept definiert, das auf einen Ser-
vice als wohldefinierte in sich geschlossenen Funktionseinheit unabhängig vom Kontext oder
Zustand anderer Services basiert. Hier wird herausgestellt, dass aus Sicht der IT SOA aktuell
hauptsächlich die Anforderung der Integration heterogener Systeme erfüllt. Für die Umsetzung
neuer Geschäftsprozesse spielt vor allem die Möglichkeit der sogenannten Orchestration von
bereits bestehenden Services eine entscheidende Rolle.
   Eine Möglichkeit (neben vielen weiteren) zur Realisierung einer SOA sind Webservices.
Diese sind Dank verschiedener vorhandener funktionsfähigen Bibliotheken und der Standar-
disierung mittlerweile sehr weit verbreitet. Webservices stellen einen definierten Funktionsum-
fang über eine Remoteschnittstelle zur Verfügung. Als Protokoll wird SOAP ein http basiertes
XML-Protokoll verwendet. Insgesamt wird an zahlreichen Stellen XML als Datenformat ge-
nutzt z.B. in der Webservice Description Language (WSDL). Ein Webservice kann interaktiv
von einem Nutzer oder aber von anderen Webservices angesprochen werden. Dabei ist in den
meisten Fällen eine Zugriffskontrolle notwendig. Ein etabliertes Verfahren zur Authentifikati-
on stellen X.509 Zertifikate dar, welche über die vertrauenswürdige Instanz eines Trustcenters
die Verknüpfung zwischen einem realen Subjekt und dem digitalen Nutzer herstellt. Über ver-
schiedene Modelle (z.B. ein rollenbasiertes Zugriffsmodell) können dann die Zugriffsrechte der
festgestellte Identität geprüft werden. Besondere Herausforderungen stellen die Möglichkeit der
Delegation von Rechten in einer orchestrierten SOA zwischen den beteiligten Webservices dar.

1.3. Attributzertifikate als plattformübergreifende Tickets
Ziel dieser Arbeit ist die Untersuchung von X.509 Attributzertifikaten in der Anwendung als
Zugriffsausweis (Ticket) in einer serviceorientierten Architektur zur Realisierung einer Zugriffs-
kontrolle. In einem praktischen Beispiel wird eine Umsetzung erprobt und der Architekturauf-
bau der SOA und der komplette Lebenszyklus eines Zertifikats anhand eines konkreten Ge-
schäftsprozesses beschrieben. Der Prototyp kann lediglich als Ideengeber für eine produktive
Umsetzung genutzt werden. Es werden dort sehr vereinfachte Attribute und Sicherheitsziele
umgesetzt, um die möglich Anwendung zu demonstrieren und zu testen. Als besondere Heraus-
forderung im Vergleich zur „klassischen“ Zugriffskontrolle werden die Delegation und das Wi-
derrufen von Rechten in verteilten Systemen sowie die Möglichkeiten einer anonymen Dienst-
nutzung untersucht.

2. Grundlagen
2.1. IT-Sicherheit
Wie z.B. in [13] beschrieben, kann man IT-Sicherheit aus zwei sehr unterschiedlichen Perspek-
tiven betrachten. Zum einen gibt es die mathematische (in Teilen perfekte) Welt. Hier werden
Algorithmen und Protokolle entworfen, deren Sicherheitseigenschaften anschließend bewiesen
werden. Niemand kann daran im nachhinein etwas ändern (so lange der Beweis korrekt war).
Die reale Welt mit existierenden IT Systemen und der Komplexität der unterschiedlichen Be-
teiligten und Schnittstellen ist aber weitaus schwieriger als „sicher“ zu gestalten. „Sicherheit ist

                                                 4
ein Prozess und kein Produkt“ sind die typischen Erkenntnisse aus den praktischen Erfahrungen
der letzten 10 Jahre.
   Auch die in dieser Arbeit beschriebenen Möglichkeiten sind in diesem Kontext zu sehen. Im
Wesentlichen geht es um die Zugriffskontrolle auf Webservices, die wahrscheinlich mit den be-
schriebenen Verfahren erreicht werden kann, aber eben nur auf der technischen Ebene. An die
umgebende Welt und alle beteiligten Subjekte, Systeme und Kommunikationen gibt es natürlich
ebenfalls die Anforderung sicher zu sein. Das ist vor allem eine organisatorische Herausforde-
rung und der hier beschriebene Teil nur ein kleiner Bausstein in der Sicherheitskette.
   Zunächst werden die angestrebten Schutzziele und die Begrifflichkeiten erläutert. Anschlie-
ßend werden theoretische Modelle zur Umsetzung einer Zugriffskontrolle und dann die prakti-
schen Möglichkeit zur Realisierung des Zugriffsmatrixmodell vorgestellt.

2.1.1. Authentizität versus Autorisierung
Die Authentizität wird in [3] als erstes Schutzziel in einem sicheren System definiert. Dabei geht
es um „die Echtheit und Glaubwürdigkeit des Objekts bzw. Subjekts, die anhand einer eindeu-
tigen Identität und charakteristischen Eigenschaften überprüfbar ist“ [3, S. 6f]. Ein Subjekt ist
dabei nicht immer direkt der aktive Benutzer, sondern umfasst ebenso Prozesse in dessen Auf-
trag. Diese können zum Beispiel auch Webserviceclients sein. Der Prozess des Authentizitäts-
beweises ist die Authentifikation. Dieser ist wesentlicher Bestandteil und Grundvorraussetzung
für viele digitalisierte und netzwerkbasierte Prozesse. Zur Authentifikation dienen heute ver-
schiedene Verfahren, die man in drei Kategorien einordnen kann. Der Identitätsnachweis kann
erfolgen über

   • Besitz (z.B. klassisch Schlüssel zu einem Schloss),

   • Wissen (z.B. Passwort),

   • biometrische Merkmale (z.B. Fingerabdruck).

Neben der sehr weit verbreiteten Nutzername+Passwort Authentifikation haben sich X.509 Zer-
tifikate [9] etabliert, die eine Kombination aus Besitz und Wissen darstellen. Der Besitz ist der
private Schlüssel, das Wissen stellt das Passwort dar mit dem auf diesen Schlüssel zugegriffen
werden kann. Die Zertifikate können je nach Umsetzung sehr hohe Sicherheitsstufen erreichen,
in dem sie zum Beispiel auf entsprechenden Sicherheitstoken wie Smartcards oder USB-Token
abgelegt werden. Dadurch ist ein Zugriff und eine Manipulation aus dem nutzenden System her-
aus nicht möglich. Neben diesen Eigenschaften haben X.509 Zertifikate durch die Einbettung
in Public Key Infrastrukturen (PKI) weitere Vorteile. Durch hierarchische Organisation der Ver-
trauensstruktur und die Nutzung von Trustcentern ist es möglich auch für adhoc Kommunikation
einen authentifizierten Kanal zu etablieren.
    Bei der Autorisierung geht es um die Rechteverwaltung und Zugriffskontrolle eines IT Sys-
tems. Wichtige Vorraussetzung dafür stellt die vorausgehende erfolgreiche Authentifizierung
aller Subjekte und Objekte dar. Erst danach können die entsprechenden Zugriffe kontrolliert
werden. Es geht darum zu prüfen ob ein Subjekt S auf einem Objekt O eine Aktion A ausführen
darf. Die Entscheidung eines derartigen Zugriffs (S, O, A) kann in verschiedene Modellen auf

                                                5
unterschiedliche Art und Weise getroffen werden. Diese werden im nachfolgenden Abschnitt
2.1.2 dargestellt. Für die Anwendung auf Webservices ist das Subjekt S entweder der Benutzer
direkt oder aber ein anderer Webservice oder Prozess des Nutzers. Das Objekt O ist typischer-
weise ein Funktion des Webservice und A ein ausführen (execute) dieser Funktion.

2.1.2. Zugriffskontrollmodelle
Die heute etablierten Sicherheitsmodelle sind zum großen Teil schon Anfang der 70er Jahre
entstanden und wurden anschließend nur in Details modifiziert. Ziel der meist im militärischen
Umfeld entstandenen Modelle war eine möglichst formal beweisbare Sicherheit. Dabei kann
man Zugriffskontrollmodelle und Informationsflussmodelle unterscheiden. Für die Umsetzung
der Webserviceautorisierung sind erstere interessant, da sie Möglichkeiten definieren den Da-
tenzugriff zu steuern.
   Aus dieser Kategorie werden in [3, S. 105ff] 4 Modelle vorgestellt. Während das Chinese-
Wall Modell und das Bell-LaPadula Modell in der Praxis eher ein Nischendasein führen, findet
man sehr häufig Anwendungen der Zugriffsmatrix (bzw. Ausprägungen davon) sowie des rol-
lenbasierten Modells. In heutigen Standardbetriebssystemen (Linux, Solaris, Windows) ist ei-
ne Kombination aus Rollenmodell und Zugriffsmatrix, in der Form von Access Control Lists
(ACLs), anzutreffen.
   Das Zugriffsmatrixmodell definiert mit einer Matrix Mt einen Schutzzustand zu einem Zeit-
punkt t als M t : St × Ot −→ 2R mit den zugreifenden Subjekten St auf die Objekte Ot . Die
Rechte R sind zum Beispiel in klassischen Unix Systemen „read“, „write“ und „execute“.
In der Tabelle 1 ist eine Beispielmatrix dargestellt.

                            Tabelle 1: Beispiel einer Zugriffsmatrix
                    ~/.ssh             ~/public_html        /sbin/reboot   Object 4
 Owner 1     read, write, execute read, write, execute            -           -
 Subject 2             -               read, execute              -        execute
 Subject 3             -            read, write, execute read, execute        -

   Die Zugriffsmatrizen können dynamisch sein, dass heisst es gibt mit entsprechenden Rechten
ausgestattete Subjekte, die die Möglichkeit haben diese zu verändern. Vorteil dieses Modells ist
der objektorientiere Ansatz mit der Möglichkeit sehr fein granular Rechte zu vergeben. Bei ent-
sprechend großen Systemen ist die Verwaltung dann aber auch entsprechend umfangreich. Im
rollenbasierten Modell werden die Rechte daher nicht direkt an die Subjekte gebunden, sondern
an Rollen, die dann wiederum Subjekten zugeordnet werden. Ein Subjekt kann zwar mehrere
Rollen annehmen, in der Regel gibt es aus dieser Funktionssicht aber weniger Rollen als Sub-
jekte und damit eine Vereinfachung.

2.1.3. Ticketbasierte Verfahren
Eine Möglichkeit der Umsetzung des Zugriffsmatrixmodell stellen Zugriffsausweise (andere Be-
zeichnungen sind auch Tickets oder Capabilities) dar. Das Subjekt S hat die Rechte R auf einem

                                               6
Objekt O, wenn S Besitzer eines Tickets TOR ist, in dem R für O enthalten sind. Die Matrix
wird also zeilenweise aufgeteilt und die entsprechende Rechtebeziehung in ein Ticket verpackt.
Genau wie bei der Matrix muss gewährleistet sein, dass das Ticket unverfälschbar ist. Tickets
haben den Vorteil, dass nach erfolgter Ausstellung eine verteilte dezentrale Nutzung möglich
ist. Dadurch steigt natürlich auch die Gefahr eines Diebstahls. Deshalb sind Eigenschaften not-
wendig wie eine begrenzte Gültigkeit und die Möglichkeit des Widerrufens eines gültigen nicht
abgelaufenen Tickets. Attributzertifikate erfüllen diese Eigenschaften.
   Ein bekanntes Verfahren ist Kerberos, das in der aktuellen Version 5 im [10] beschrieben wird.
Die erste Version wurde bereits im Jahre 1987 von S. Miller und C. Neuman am M.I.T. entwi-
ckelt. Wesentliche grundlegende Architekturideen werden in dieser Arbeit aufgegriffen, so dass
Kerberos hier kurz vorgestellt wird. Das Ziel des Verfahrens ist eine sichere Authentifizierung
in einem TCP Netzwerk. Hierbei spielen im wesentlichen drei Komponenten zusammen. Zum
einen das Key Distribution Center (KDC) mit Authentifizierungskomponenten und Ticketaus-
stellung, desweiteren jeweils eine Kerberos Komponente auf dem Serviceclient CK und eine
auf dem Serviceserver CS . Bei einem Authentifizierungsvorgang fragt CK ein Ticket Granting
Ticket (TGT) an. Dafür passiert über bekannte Verfahren zunächst eine Authentifizierung mit-
tels Passwort oder Smartcard. Mit dem TGT kann dann für den aktuellen Zugriff des Clients
auf den Server ein Session Ticket anfragen (ST). Dieses wird dann zur Authentifizierung an den
CS übergeben. Es reicht an dieser Stelle eine Ticketübergabe aus. Der CS prüft das ST dann
wiederum am KDC auf Gültigkeit. Alle beteiligten Kerberos-Komponenten sprechen dabei das
spezielle Kerberosprotokoll. Vorteil dieses Verfahrens ist die Möglichkeit des TGT Caching und
damit einer Wiederverwendung der erfolgreichen Authentifizierung für verschiedene Services
und mehrere Sessions.
   Warum also keine Webservice-Authentifizierung mit dem etablierten Kerberos Verfahren?
Kerberos ist eine komplett eigene Welt mit neuen Datenformaten und Protokollen. Es ist er-
forderlich, dass alle beteiligten Komponenten Kerberos unterstützen. Für die aktuell gängigen
Bibliotheken zur Webservice-Authentifizierung gilt dies nicht immer. Die Komplexität steigt
durch Kerberos enorm an und dies soll der Versuch sein, einen einfacheren Weg zu finden.
X.509 Zertifikate lassen sich in verschiedenen Welten direkt weiter- und wiederverwenden. So
werden mit diesen aktuell digitale Signaturen, S/MIME basierte Emailverschlüsselungen und
andere Anwendungen ermöglicht. Die Authentifizierung mit X.509 Attributzertifikaten soll sich
in diese Welt einfügen und stellt damit eine direkten Gegenentwurf zu Kerberos dar.

2.2. X.509 Attributzertifikate
Schon in „klassischen“ X.509 Zertifikaten ist es möglich in sogenannten non-critical extensi-
ons beliebige Zusatzinformationen zum Inhaber zu speichern. Es hat sich aber erwiesen, dass
ein separierter Datencontainer, der dann wiederum eindeutig mit dem Subjekt also dem Inhaber
des dazugehörigen X.509 Zertifikats verbunden ist, verschiedene Vorteile hat. Dieser Container
hat praktischerweise das gleiche grundlegende X.509 Format und wird über ein X.509 Profil
definiert [siehe 4]. Ein wesentlicher Vorteil des getrennten Ablegens dieser zusätzlichen Eigen-
schaften (Attribute) besteht in der Möglichkeit, diese einzeln mit einer Gültigkeitsdauer zu ver-
sehen und widerrufen zu können ohne die komplette Identität des Subjekts zu widerrufen. Am
Beispiel der Campuskarte der Technischen Universität Berlin [14] wird deutlich, wie wichtig

                                               7
diese Eigenschaft ist. Dort sind zum Beispiel Attribute wie die Zugangserlaubnis zum Gebäu-
de und auch der Bibliotheksausweis umgesetzt. Eine Sperre des Bibliothekszertifikats aufgrund
verspäteter Bücherrückgabe hat nun nicht zur Folge, dass der Student das Gebäude nicht mehr
betreten darf. Typischerweise ist die Lebenszeit einer ausgewiesenen Identität sehr viel höher
als ein detailliertes Recht zu einer bestimmten Aktion.
   Während X.509 Zertifikate als Bestandteil einer Public Key Infrastruktur dazu dienen ein
Subjekt zu authentifizieren, leisten die Attributzertifikate darüber hinaus die Rechteverknüpfung
um eine Autorisierung konkreter Aktionen zu ermöglichen. Aus der PKI leitet sich dabei wie
z.B. in [1] beschrieben die vergleichbar aufgebaute Privilegien Management Infrastruktur (PMI)
ab.

                          Tabelle 2: Gegenüberstellung PKI und PMI

                                           PKI                          PMI
             Zertifikat           Public Key Zertifikat          Attribut Zertifikat
            Herausgeber          Certification Authority     Attribute Authority (AA)
                                          (CA)
              Inhaber                    Subjekt                       Halter
              Bindung            Name des Subjekts an          Name des Halters an
                                 öffentlichen Schlüssel             Privileg(ien)
             Widerrufen          Certificate Revocation       Attribute CRL (ACRL)
                                       List (CRL)
          Vertrauenswurzel          Wurzelzertifikat              Autoritätsquelle
            Ausstellende                 Sub CA               Attribut Autorität (AA)
            Unterinstanz

   Man findet wie in der PKI eine streng hierarchische Struktur mit einer Vertrauenswurzel,
die im allgemeinen von einer dritten Instanz verwaltet wird, der beide (oder alle) beteiligten
Komponenten vertrauen. Diese Autorität wird in PKI Umgebungen von Sicherheitsabteilungen,
externen Trustcentern oder aber auch von staatlichen Institutionen wahr genommen. Da die Ver-
waltung einer PMI sehr viel spezifischer ist, wird sich in diesem Bereich wohl schwer eine ver-
gleichbar übergeordnete Struktur etablieren können. Die Rechte in einer PMI sind auf bestimmte
Prozesse und deren Sicherheitsdomäne beschränkt, so dass sich wohl höchstens branchenweite
Attributtrustcenter entwickeln werden. Die bestehenden Datenformate, Protokolle und Verfahren
aus der PKI Welt können für eine PMI genutzt werden. Das macht die Anwendung so attraktiv
und ist gegenüber anderen Ticketverfahren (wie z.B. Kerberos) ein großer Vorteil in Umgebun-
gen, wo PKI und PMI gemeinsam genutzt werden. Da Public-Key-Verfahren heute sehr weit
verbreitet angewandt werden (z.B. als TLS Client/Server Authentifizierung oder in S/MIME) ist
es eine interessante Herausforderung Attributzertifikate zur Rechteverwaltung in die bestehen-
den Systeme zu integrieren. Eine sehr gute Einführung zu Attributzertifikaten mit Ableitung und
Vergleich zu PKI im PKIX IETF Standard und SPKI ist in [6] zu finden.

                                               8
Attributzertifikate sind in ihrer Spezifikation völlig offen gehalten, betreffend der abgespei-
cherten Attribute. Hier können beliebige Strings (z.B. Schlüssel/Wert Paare) an den Halter ge-
bunden und damit alle heute bekannten Autorisierungsverfahren abgebildet werden. Die direkte
Ablage einer Zugriffsmatrixzeile mit den Zuordnungen von Objekten und Rechten ist natür-
lich nur bis zu einer begrenzten Komplexität auch tatsächlich sinnvoll. Die Datenmenge würde
die Auswertung und den Transport der Attribute sonst schnell ineffizient werden lassen. Bei sehr
vielen zu verwaltenden Rechten bietet sich daher eher die Anwendung eines rollenbasierten Ver-
fahrens an, so dass im Zertifikat nur die Rollenzugehörigkeit(en) abgelegt werden. Man verliert
dabei auf dem auswertenden System etwas an Unabhängigkeit, weil die Auflösung der Rolle
auf die Zugriffsrechte nur entweder über einen zusätzlichen entfernten Dienst oder über eine
Replikation der Rollendefinitionen über alle Systeme der verwalteten Domäne möglich ist. Bei
einer derartig zentralisierten Rollenverwaltung können die Rollenprivilegien geändert werden
ohne kursierende Zertifikate anzupassen. Dies kann bei sehr vielen Rechtehaltern ein schwer-
wiegender Verwaltungsvorteil sein, widerspricht aber der hier angenommen Zielumgebung von
offenen verteilten Systemen. Die Änderung der Zertfikatsattribute lässt sich über zurückziehen
(revoke) oder zeitliches Ablaufen lassen und erneute Ausstellung bewerkstelligen. Dies kann
eine höhere Latenzzeit bis zur Umsetzung der Rechteänderung zur Folge haben als ein zentraler
Rollenservice. Je nach Anwendungsfall muss dies beim Design berücksichtigt werden.

2.3. Webservices
2.3.1. Einführung
Webservices sind ein Mechanismus zur Nutzung verteilter Programmkomponenten und einer
einheitlichen Art der Kommunikation zwischen diesen. Man kann sie als weitere Evolutionsstufe
von Remote Procedure Calls für die es in verschiedenen Programmiersprachen unterschiedlich
umgesetzte Ansätze gibt. Das Besondere an Webservices ist die Gestaltung als platformübergrei-
fender und sprachunabhängiger Standard. Einen wesentlichen Beitrag dazu leisten die ausgiebig
verwendete Datenbeschreibungssprache XML und die „Internetprotokolle“ HTTP und SMTP
als Transportmedium.
   Webservices sind keine an einem Ort zu einer Zeit gemachte Erfindung, sondern eine Entwick-
lung in vielen Bereichen. Es existieren dadurch unzählige Definitionen und sogar Diskussionen
zur Übertragung der Schreibweise ins Deutsche. Sehr informativ dazu ist die Seite von Prof.
Jeckle1 . Eine dort zu findende Definition ist:
   „Webservices sind selbstbeschreibende, gekapselte Software-Komponenten, die eine Schnitt-
stelle anbieten, über die ihre Funktionen entfernt aufgerufen, und die lose durch den Austausch
von Nachrichten miteinander gekoppelt werden können. Zur Erreichung universeller Interope-
rabilität werden für die Kommunikation die herkömmlichen Kanäle des Internets verwendet.
Webservices basieren auf den drei Standards WSDL, SOAP und UDDI: Mit WSDL wird die
Schnittstelle eines Webservices spezifiziert, via SOAP werden Prozedurfernaufrufe übermittelt
und mit UDDI, einem zentralen Verzeichnisdienst für angebotene Web Services, können andere
Webservices aufgefunden werden.“

 1
     http://www.jeckle.de/webServices/

                                                9
Die am weitesten verbreiteten Implementierungen sind .NET von Microsoft und AXIS von
der Apache Foundation. Mittlerweile werden Webservices auch direkt im SUN Java SDK 1.6
unterstützt. Da Webservices an sich keinerlei Sicherheitsmechanismen definieren, wurde dafür
der separate WS-Security Standard definiert.

2.3.2. OASIS WS-Security, der Standard
Sicherheit ist eine grundlegende Voraussetzung, um Webservices als vollwertigen Ersatz für
bestehende Anwendungsarchitekturen einzusetzen. Die Integrität und Vertraulichkeit von Nach-
richten muss sichergestellt sein. Zudem muss die Identität der beteiligten Parteien geprüft wer-
den können. Im Standard zur Beschreibung des Kommunikationsprotokolls SOAP sind dafür
keinerlei Mechanismen vorgesehen. Deshalb ist die Ergänzung Web Service Security Spezifi-
kation die Basis für eine Realisierung von sicheren Lösungen. Die Organization for the Advan-
cement of Structured Information Standards (OASIS) hat die 1. Version der WS-Security Spe-
zifikation am März 2004 als Standard unter dem Namen OASIS Web Service Security (WSS)
bestätigt. Mittlerweile ist die Nachfolgeversion [7] erschienen.
   Es werden im wesentlichen drei grundlegende Verfahren definiert: die Signatur von SOAP-
Protokoll Teilen zur Wahrung der Integrität, die Verschlüsselung von SOAP-Teilen zur Gewähr-
leistung von Vertraulichkeit und die den Transport bzw. die Einbettung von Sicherheitstoken in
das SOAP Protokoll zur Authentifizierung. Für diese Arbeit ist die Tokenübergabe entscheidend,
wie in [8] beschrieben.

Einordnung ISO/OSI Sicherheitsprotokolle Für die Kommunikationssicherheit in
Webservice Architekturen existieren bereits verschiedene Mechanismen in den tiefer liegenden
OSI Modell Schichten. WSS definiert Umsetzungsmöglichkeiten innerhalb der Anwendungs-
schicht und kann daher speziell an die Bedürfnisse der realisierten Applikation angepasst wer-
den. Die weiteren Mechanismen können transparent genutzt werden und erhöhen gegebenenfalls
das Sicherheitslevel zusätzlich. In der Tabelle 3 werden die Protokollebenen dargestellt.

                   Tabelle 3: ISO/OSI Einordnung der Sicherheitsprotokolle

            Schicht              Sicherheitsprotokoll
       6, 7 Anwendung           WSS, SMIME, HTTPS              Benutzerauthentifizierung,
                                                                     Autorisierung
   4, 5 Transport u. Session              TLS                      Verschlüsselung,
                                                                Systemauthentifizierung
        2, 3 Netzwerk                     VPN                        Kapselung der
                                                                  Routinginformation
        1 Physikalisch            geschlossenes Netz             für Webservice selten
                                                                      anwendbar

                                              10
SOAP Signatur Die Integrität der SOAP Nachrichten wird mit eingebetteten XML-
Signaturen nach [12] gewährleistet. Veränderungen der SOAP-Daten können beim Empfänger
bei der Signaturvalidierung erkannt werden. In der Spezifikation werden Mehrfachsignaturen
und verschiedene erweiterbare Signaturformate vorgesehen.
  Der Inhalt der SOAP-Nachricht wird mit einem Schlüssel bestätigt, dies passiert z.B. über
das weit verbreitete Secure-Hash-Verfahren mit anschließender RSA-Verschlüsselung des Has-
hwerts. Der Empfänger hat anhand dieser Information bereits die Möglichkeit, die mathemati-
sche Inhaltskontrolle durchzuführen. Ob der Schlüssel wiederum zum Absender passt, kann in
Kombination mit einem angegebenen Sicherheitstoken geprüft werden. Beim RSA-Verfahren
könnte dies ein X.509 Zertifikat sein. Durch eine Zertifikatsvalidierung kann die Authentizität
des Absenders geprüft werden.
  Das Beispiel für eine SOAP Nachrichtensignatur aus [7, Seite 44]:

        MIIEZzCCA9CgAwIBAgIQEmtJZc0rqrKh5i...
      
            EULddytSo1...
          
          BL8jdfToEb1l/vXcMZNNjPOV...
        
                                              11
QQQ
    
SOAP Verschlüsselung Die Vertraulichkeit der SOAP Nachrichten kann mit einer XML
Verschlüsselung nach [2] gewährleistet werden. Auch hier sind Mehrfachverschlüsselungen ver-
schiedener Beteiligter und die Erweiterung durch neue Verfahren vorgesehen. Es können belie-
bige Teile der Nachrichten Nutzdaten und/oder Kopfdaten mit einem symmetrischen Schlüssel
verschlüsselt werden. Dieser Schlüssel kann z.B. als Passwort Sender und Empfänger bereits be-
kannt sein und mit einem UserNameToken dem richtigen Empfänger zugeordnet oder aber auch
in der Nachricht verschlüsselt mit übermittelt werden. Letztere Variante wird auch als hybrides
Verfahren bezeichnet und kann mit einem Public/Private-Schlüsselpaar in einem X.509 Token
kombiniert werden zur einfachen Adressierung an den korrekten Empfänger der Nachricht.
   Das Beispiel aus [7, Seite 46f] sieht so aus:

                 ...
                 
                         DC=ACMECorp, DC=com
                       
                         12345678
                       
                  ...
              
           ...

                                              12
...
            
Authentifizierung mit Sicherheitstoken In das  Element können
verschiedene Sicherheitstoken eingefügt werden mit dessen Hilfe Signaturen und Schlüssel einer
Identität zugeordnet werden können. Die einfachste Form ist ein UserNameToken.

    anybodys name

  Für kompliziertere Token gibt es einen generischen Binärtyp, in dem dann der Token-Typ so-
wie das Kodierungsverfahren spezifiziert wird. Die beteiligten Webservicekomponenten müssen
diese dann alle unterstützen. Momentan definiert ist hier zum Beispiel der Typ X509v3, der ein
X.509 Zertifikat in Base64 kodierter Form enthalten kann.

2.3.3. Anforderungen an eine Webservice-Sicherheitsarchitektur
Für die Umsetzung von Softwareprojekten ist es meist erforderlich, eine komplette Webser-
viceinfrastruktur aus verschiedenen Komponenten aufzubauen. Die Sicherheitsanforderungen
gehen dabei über die Protokoll- und Nachrichtensicherheit weit hinaus. In [5] werden Anforde-
rungen an eine Webservice-Sicherheitsarchitektur dargestellt.
  Kurz zusammengefasst sind das die folgenden 11 Ziele:
Zugriffskontrolle die einzelnen Ausführungsrechte entsprechend des Zugriffsmatrixmodels,

Verteilte Architektur um die Beschränkung auf kontrollierbare Sicherheitsdomänen zu er-
     möglichen,

Flexible Identitätspreisgabe um nur die notwendigen Rückschlüssen auf den Nutzer zu ge-
     statten,

Automatische Policy Ermittlung damit ein Client notwendige Rechte erfragen kann,

Automatische Accounts sollen für bestimmte Geschäftsprozesse möglich sein,

                                             13
SingleSignOn an orchestrierten Webservices zur komfortablen Nutzung,

Feinspezifikation von Rechten bis hinunter auf erlaubte Wertebereiche für Einzelmetho-
     den,

Erweiterbarkeit als typische Anforderung an jede Softwarearchitektur,

Integrierbarkeit als typische Anforderung an jede Softwarearchitektur,

Usability als typische Anforderung an jede Softwarearchitektur,

Performance als typische Anforderung an jede Softwarearchitektur.

Aus diesen Anforderungen leitet Kraft eine Architektur ab, deren wesentlichen Komponenten
die Access Control Processors (ACP) und der sogenannte Gatekeeper sind. ACP sind dabei
selbst wiederum Webservices die Autorisierungsentscheidungen treffen. Es ist möglich jedem
Webservices mehrere dieser ACP zuzuordnen, so dass je nach Komplexität und Performancean-
forderung auch Einzelentscheidungen zu bestimmten Methoden oder Wertebereichen verteilt
werden können. Am Ende trifft dann der Gatekeeper von dem es jeweils nur eine zugeordnete
Instanz gibt, die finale Entscheidung und stellt entsprechend Tickets aus. Der Gatekeeper ist eine
Art Sicherheitsproxy durch den die Anfragen getunnelt werden müssen, um ihre Autorisierung
zu prüfen. Die Clients haben hier also keinen direkten Kontakt zum eigentlichen Webservice
sondern sprechen immer direkt mit dem Gatekeeper. Das hat natürlich entsprechende Konse-
quenzen, beim Aufbau der Architektur. Die Gatekeeper müssen in der Lage sein TLS-Sessions
zu terminieren und müssen mindestens die gleiche Performance und Verfügbarkeit, wie der ei-
gentliche Service bieten, um die ursprüngliche Architektur nicht zu verschlechtern. Eine erhöhte
Latenzzeit lässt sich durch die zusätzlichen Prüfungen natürlich nicht vermeiden.

2.4. Zusammenführung der Komponenten
Ziel dieser Arbeit ist die Kombination der dargestellten Komponenten zur Realisierung eines au-
torisierten Webservicezugriffs, sowie die Umsetzung einer anonymen Nutzung eines Dienstes.
Die X.509 Attributzertifikate werden mit ihrer grundlegenden Eigenschaft Rechte zu speichern
und überprüfbar an einen X.509 Zertifikatsinhaber zu binden als Ticket benutzt. Eine Attribut-
authorität (AA) legt die Rechtedefinition im Ticket entsprechend der für die Anwendungsdomä-
ne notwendigen Zugriffsbeschränkungen an und kann über die Gültigkeitsdauer des Zertifikats
auch die Rechte für einen eingeschränkten Zeitraum vergeben. Ausserdem können die Rechte
zurückgezogen werden, in dem das Zertifikat widerrufen (revoked) wird.
   Die Architektur von [5] wird vereinfacht und die Autorisierungsprüfung nicht von einen sepa-
raten ACP durchgeführt, sondern direkt im Zielwebservice über einen Security Handler als ein
Protokollschritt vorgeschaltet. Nicht autorisierte Zugriffe können dann dort sofort abgebrochen
werden und die Attributzertifikate können der Anwendungslogik hochgereicht werden, um ei-
ne Weiterverwendung in nachgeschalteten Subwebservices zu ermöglichen. Eine Übersicht der
Architektur bietet das nachfolgende Anwendungsbeispiel.

                                               14
Abbildung 1: Webservice-Sicherheitsarchitektur von Reiner Kraft [5, Seite 43]

                                  Webservice
                                                                      ist Mitglied von
                                  Kollektion

               ACP             ACP                WS           WS                  WS

                                                                 Authorisierung

                                     WS-Client            ACP: Access Control Processor
                                                          WS: Webservice

3. Anwendungsbeispiel: Direktdemokratie
3.1. Ziel
3.1.1. Story
Die Stadt Berlin möchte ihren Bewohnern ermöglichen auf die regionale Politik direkt Einfluss
zu nehmen und gleichzeitig einen Anreiz schaffen in der Stadt möglichst viele Steuern zu zah-
len. Dafür wird im Jahr 2012 ein Punktesystem eingeführt. Die Bürgerpunkte (BPs) und die
Steuerpunkte (SPs). Jeder in Berlin wahlberechtigte Bürger erhält für die Dauer einer Wahl-
periode (4 Jahre) Bürgerpunkte und für seine eingezahlten Steuern entsprechend ihrer Höhe
Steuerpunkte. Die Idee der zukünftigen Landesregierung ist, dass politische Entscheidungen,
die keine direkte Investition von Steuergeldern nach sich ziehen (z.B. ethische Grundgesetze)
mittels Volksabstimmung mit BPs entschieden werden und sämtliche Entscheidungen zu Inves-
titionen mit entsprechend erworbenen SPs. In der 1. Stufe wird es nur eine Art von SP geben,
später ist jedoch geplant, diese nach Steuerarten zu unterscheiden und z.B. Investitionen in die
Verkehrsinfrastruktur nur durch entsprechend vom Verkehr initiierte Steuerpunkte (KFZ-, Mi-
neralölsteuer, Maut) zu entscheiden. Die Punkte werden als Gewicht auf die eigene Stimme
angerechnet und können während ihrer Gültigkeitsdauer beliebig oft, aber pro Abstimmung nur
einmal, eingesetzt werden.
    Erfreulicherweise kann das Projekt auf die erfolgreich eingeführte einheitliche Steuernummer
und die dazu gehörige elektronische Steuerkarte aufbauen. Die Steuerkarte enthält für jeden in
Deutschland gemeldeten Einwohner ein eindeutig zuordbares elektronisches Zertifikat, in dem

                                                 15
die Steuerbehörde die Identität des Individuums fehlerfrei bestätigt.
  Zur Einführung einer effizienten Direktdemokratie sollen folgende Kriterien erfüllt werden:

      • vollständig elektronische Abwicklung der Abstimmungsverfahren unter Einsatz des be-
        stehenden Systems zur Authentifikation mittels Steuerkarte,

      • Zugang zu Abstimmungen sowohl virtuell über Webportale als auch persönlich an Termi-
        nals in Wahllokalen,

      • frei steuerbarer Verfall der Gültigkeit der Punkte durch die ausgebende Behörde,

      • sofortiger Rückzug des Stimmrechts (z.B. bei Wegzug aus Berlin).

Nach der technischen Umsetzung dieser Punkte unter Berücksichtigung aller Datenschutzaspek-
te wird die Stadt Berlin ein Portal aufbauen, in dem alle politischen Entscheidungen, Planungen
öffentlicher Etats, soziale Stadtprojekte usw. übersichtlich und verständlich dargestellt werden.
Auf dem Portal ist ein direkter Meinungsaustausch in Foren, Blogs und Chats möglich. Über ein
Bewertungssystem ist es vor anstehenden Entscheidungen möglich, die Aufmerksamkeit dar-
auf zu erhöhen. Die eigentlichen Abstimmungen finden einmal im Monat an dem sogenannten
Volkswahlsonntag statt. Von 0 bis 20 Uhr kann hier abgestimmt werden. Die Ergebnisse werden
dann ab 20 Uhr veröffentlicht und fliessen direkt in die Gesetze zur Umsetzung ein.

3.1.2. Technik
Die Beispiele sind entstanden in der Programmiersprache Java2 Version 1.6 (build 1.6.0-dp-b88-
34) unter Nutzung Quellcodeprojekttools maven3 . Als Teil des Paketes PMI wird die Erstel-
lung und Prüfung von Attributzertifikate gezeigt. Das Paket WS als Wahl-Webservice enthält
einen übersichtlich gehaltenen Prototypen aus Webservice und dazugehörigem Client. Beson-
derer Fokus liegt auf der Integration der Attributprüfung in das SOAP Protokoll bei Aufruf der
Webservicemethoden. Die Attributzertifikate werden vom Client bei jedem Aufruf mitgeliefert
(„Pushverfahren“).

3.1.3. Einschränkung
Auch wenn hier als exemplarische Anwendung ein demokratisches Abstimmungsverfahren dar-
gestellt wird, entspricht der Vorschlag keiner deutschen Wahlordnung. Verschiedene Aspekte
wie z.B. die organisatorische Umsetzung, die Anonymität der Stimmabgabe oder die Manipula-
tionssicherheit werden hier nicht betrachtet. Zur Sicherstellung der Einmalabgabe von Stimmen
müsste weitere Geschäftslogik im Webservice hinzugefügt werden, die transaktionssicher be-
reits abgegebene Stimmen inkl. Zeitstempel wahlautomatenübergreifend registriert und bei jeder
Stimmenabgabe abgleicht. Alternativ könnten auch Zertifikate eingeführt werden, die pro Ab-
stimmung nur einmal gültig sind. Hierbei müsste sofort während der Nutzung der Stimme diese
über einen Zertifikatswiderruf ungültig gemacht werden. Die Echtzeitverteilung dieser Wider-
rufsdaten stellte, dann eine weitere Herausforderung dar.
 2
     http://java.sun.com/
 3
     http://maven.apache.org/

                                                16
3.2. Architektur
Wie zu erwarten, werden die SP’s als Attributzertifikate und die Hauptapplikation zur Durchfüh-
rung von Abstimmungen als Webservice umgesetzt. Die existierende Steuerkarten PKI wird um
eine PMI erweitert in der zwei AAs berechtigt werden, Attributzertifikate auszustellen. Einmal
das Einwohnermeldeamt (EMA) und die Oberfinanzdirektion Berlin (OFD). Zur Vereinfachung
wird das EMA die vorhandene Infrastruktur der Steuerbehörde mitnutzen und über eine gemein-
same PMI Schnittstelle arbeiten, so dass die beiden lediglich über ihre Zertifikate unterschieden
werden.

3.2.1. Beteiligte
Wähler:     Personen, die autorisiert sind eine Stimme abzugeben
Ämter:      Stellen, die Autorisierungen ausstellen und widerrufen
Treuhänder: Personen oder Institutionen, die berechtigt sind für andere Stimmen abzugeben
Wahlamt:    Institution, die Abstimmungen erstellt und startet, die Stimmen zählt und Ergebnis-
            se veröffentlicht

3.2.2. Anwendungsfälle
Aus den Anforderungen in 3.1 werden die nachfolgenden Anwendungsfälle abgeleitet. Diese
stellen lediglich eine Auswahl dar, um die grundlegenden Prinzipien zu verdeutlichen. Für die
tatsächliche Etablierung der Direktdemokratie gibt es sicher wesentlich mehr und auch komple-
xere Abläufe zu meistern. Der Fokus liegt auf den Autorisierungsvorgängen. Abbildung 2 stellt
die Beziehungen der Beteiligten innerhalb der Anwendung dar.

                                                                                                           1   1
                                                                                       SP übertragen

                                                                                                       1
                  1                               1
                                                                                                               Treuhänder
                                                          SP ausliefern           1
                  1
                          1
            Amt
                                                                                                                       1
              1                   SP widerrufen                                                                    1
                                                                                                       1       1
                                                                  Teilnehmer authentifizieren
                              1                                                                                    1
                                                                                                                       Wähler
                                   SP autorisieren
                                                                                  1
                                                          1
                                                              1                  1        1

                      1                               1
                                                                   Wahl durchführen

           Wahlamt

             Abbildung 2: Betrachtete Anwendungsfälle in der Direktdemokratie

                                                                         17
Anwendungsfall 1: Zuteilung der SPs an den Wähler Nach Eingang der Jahressteuer-
erklärung wird an den Wähler ein Ticket ausgehändigt auf dem die Steuerpunkte für das laufende
Jahr verzeichnet sind. Der Wähler wird hierbei von der OFD als Herausgeber über ein gültiges
Attributzertifikat autorisiert an Wahlen teilzunehmen.

Anwendungsfall 2: Direkter Einsatz der SPs bei einer Onlineabstimmung zum
Wiederaufbau des Berliner Stadtschlosses Auf dem Demokratieportal ist eine Ab-
stimmung zum Wiederaufbau des Berliner Stadtschlosses gestartet. Der Wähler setzt seine SP
ein, um dafür zu stimmen. Dabei wird der Wahlclient die „votePro“ Methode des Wahlautomat
Webservice aufrufen. Wenn das dabei übermittelte AC gültig ist, wird die Stimme gezählt und
entsprechend der Anzahl angefragter SP gewichtet. An der Befragung dürfen nur Personen, die
das 18. Lebensjahr vollendet haben, teilnehmen.

Anwendungsfall 3: Ein mittlerweile nach Stuttgart verzogener Wähler wird bei
der Abstimmung über die Einführung der Umweltzone in Berlin abgelehnt Für
die Einrichtung der Umweltzone in Berlin können Wähler abstimmen. Ein vor kurzem umge-
zogener ehemaliger Bürger versucht unberechtigter Weise dagegen zu stimmen. Seine Stimme
wird abgelehnt. Der Wahlclient ruft die „voteContra“ Methode des Wahlautomat Webservice
auf. Die Validierung des übermittelten ACs ergibt, dass dieses widerrufen wurde. Die Stimme
des Wählers wird verworfen.

3.2.3. Komponenten
Das Direktdemokratiesystem besteht grob unterteilt aus drei Komponenten der Privilege Ma-
nagement Infrastructur (PMI), dem Wahlautomaten und dem Wahlklient wie in Abbildung 3
dargestellt.

PMI In der PMI werden die Attributzertifikate (AC) verwaltet. Im Wesentlichen sind dafür
drei Komponenten notwendig. Die Registration Authority dient der Feststellung der Identität
des Wählers sowie der Rechteverwaltung. Hier wird geprüft, welche Attribute ausgestellt wer-
den. Diese werden in einem Zertifikat beglaubigt und an die ID (Steuerkarte) des Wählers ge-
knüpft. Die ACs können offline oder per remote Schnittstelle übergeben werden. Als Protokoll
kann hier das standardisierte XKMS oder ein speziell dafür abgestimmter Webservice dienen.
Die Zertifikatsinformation und Widerrufslisten (ACRLs) werden in einem sicheren Repository
abgelegt.
  Der AA Manager dient als Verwaltungsmöglichkeit der ausgestellten Zertifikate. Hier können
bestehende ACs zurückgezogen werden. Die Validierung von ACs übernimmt die AC Validation
Engine. Diese Funktionalität kann wiederum per XKMS oder Webservice remote zur Verfügung
gestellt oder aber auch über eine lokale offline Schnittstelle durchgeführt werden.

Wahlautomat Der Wahlautomat ist das Herzstück einer Online-Direktdemokratie. Hier wer-
den Abstimmungen verwaltet und durchgeführt. Wenn dem Wahlautomat über einen regelmäßi-
gen Abgleich mit dem Repository der PMI alle Daten für eine Validierung zur Verfügung stehen,

                                             18
PMI

                               Registration Authority         Attribute Authority Manager        AC Validation Engine

                                                                    Repository (AAs,CRLs)

                                                                    XKMS / WS / Offline

                                                                                                   Wahlautomat
         Wahlclient
                                                        WS Client                           WS                          Vote Counter
                      Vote Requester

                                                                                                                 AC Validation Engine
               PKC Validation Engine

                              Abbildung 3: Komponenten im Direktdemokratiesystem

kann diese lokal und offline mit Hilfe der AC Validation Engine durchgeführt werden. Die Vali-
dierung kann aber auch in Echtzeit zur PMI weitergereicht werden. Der Stimmenzähler nimmt
über den Wahlwebservice gültige Stimmen entgegen und wertet diese aus.

Wahlclient Der Wahlclient kann eine Software auf dem Computer des Wählers oder aber
auch ein spezielles Wahlterminal sein. Über klassische Verfahren wird bereits hier die Identität
des Wählers mit der PKC Validation Engine überprüft. Wenn diese einwandfrei festgestellt ist,
führt der Vote Requester die Stimmenabgabe am Wahlautomat durch. Das AC mit den SPs und
BPs wird dabei mit übertragen.

3.2.4. Schnittstellen
Wie mit den Komponenten bereits dargestellt, gibt es Schnittstellen zur PMI und zwischen Wahl-
client und Wahlautomat. Für diese Arbeit werden die remote Schnittstellen zur PMI nicht weiter
verfeinert. Zur Vereinfachung wird hier mit einer lokalen Datenübergabe auf Dateibasis ge-
arbeitet. Hierbei ist auch eine Mehrfachabstimmung zur gleichen Wahl mit unterschiedlichen
Stimmen möglich. Interessant und Thema dieser Arbeit ist der Webservice des Wahlautomaten
an dem sich der Wahlclient mit einem AC für eine bestimmte Wahl autorisiert.
   Wie in 2.3.2 dargestellt wird das AC als Binärstring in dem Webservice-Aufruf verpackt.
Die Schnittstelle hat zwei Methoden: pro() und contra(). Beide Methoden bekommen als
Parameter die ID der laufenden Abstimmung sowie die Anzahl der Punkte mit der die Stimme
gewichtet werden soll. Diese Anzahl muss kleiner oder gleich der Punkteanzahl im AC sein,
ansonsten wird die Stimme nicht gewertet.

                                                                               19
3.3. Privilege Management Infrastructur (PMI)
Die Basisfunktionen einer PMI wurden in der Programmiersprache Java 1.6 und mit wesentli-
cher Beteiligung der Sicherheitsbibliothek Bouncycastle4 erstellt. In den nachfolgenden Unter-
kapiteln werden die einzelnen Schritte erläutert. Der Quellcode, die Bibliotheken, die Testpro-
gramme und die kurze Anwendungsdokumentation befinden sich auf der beiliegenden CD.

3.3.1. Vorbereitung
Die Kernaufgaben einer PMI sind die Herausgabe, Verwahrung und Überprüfung von Attribut-
zertifikaten. Zur beispielhaften Umsetzung der drei beschriebenen Anwendungsfälle in dieser
Arbeit wird ein AA Zertifikat, ein gültiges AC und ein zurückgezogenes AC erstellt. Die Ver-
waltung und Verwahrung wird mit einfachen Bordmitteln (java keystore, Dateisystem) und nur
lokal umgesetzt. Natürlich macht es Sinn diese auch innerhalb einer SOA verteilt zur Verfügung
zu stellen, was z.B. mit WS-Trust oder XKMS Architekturen möglich ist. Die Prüfeinheit ist eine
Javaklasse, die als Bibliothek im Webservice angesprochen wird. Neben der Gültigkeitsprüfung
kann diese auch genutzt werden, um die Attribute aus dem AC auszulesen.

3.3.2. Erstellung AA
Die Erstellung einer Attribute Authority gleicht dem Verfahren zur Generierung einer CA in
einer PKI. Im Beispiel AAissuer.java wird ein neues Schlüsselpaar und daraus ein selbstsi-
gniertes Wurzelzertifikat erzeugt. Diese kann zur Signatur des AC im nächsten Schritt verwendet
werden. Das Zertifikat sieht folgendermaßen aus:
Certificate:
Data:
    Version: 3 (0x2)
    Serial Number: 10 (0xa)
    Signature Algorithm: sha256WithRSAEncryption
    Issuer: C=DE, O=Humboldt University,
             OU=Systems Architecture Group, OU=Sample OFD
    Validity
        Not Before: Jan 20 23:56:01 2009 GMT
        Not After : Jul 20 23:56:01 2010 GMT
    Subject: C=DE, O=Humboldt University,
              OU=Systems Architecture Group, OU=Sample OFD
    Subject Public Key Info:
        Public Key Algorithm: rsaEncryption
        RSA Public Key: (1024 bit)
             Modulus (1024 bit):
             00:f8:0d:a0:23:32:a6:16:60:92:ac:52:92:48:7a:
             3c:49:09:3e:7e:72:10:d3:c0:72:32:78:0d:7c:90:
             d9:3d:8f:42:df:2f:fb:43:63:7c:15:77:93:29:3e:
 4
     http://www.bouncycastle.org

                                              20
95:74:97:5c:81:82:f1:e4:f1:23:db:eb:73:4c:9f:
            18:ca:17:3d:8e:04:98:98:b6:e7:c7:b0:5b:d4:0b:
            ef:1e:20:59:ff:ad:c2:10:e9:1d:68:3c:56:e1:4b:
            ea:cf:d7:61:59:48:c4:74:a7:0d:ca:f9:20:bd:82:
            08:2e:ae:55:1e:68:db:c8:6e:fc:5a:4b:d0:d5:3c:
            ce:4e:f8:66:c2:44:7d:ad:15
            Exponent: 65537 (0x10001)
    X509v3 extensions:
        X509v3 Basic Constraints: critical
            CA:TRUE, pathlen:0
        X509v3 Key Usage: critical
            Certificate Sign, CRL Sign
Signature Algorithm: sha256WithRSAEncryption
    34:7d:61:a4:9c:44:1a:b4:ad:d3:3f:92:4c:48:9a:08:39:34:
    d3:eb:ec:a7:05:4f:17:e5:30:a5:c2:97:41:33:97:3c:37:6b:
    02:4e:89:71:6f:f5:93:0c:19:1b:d1:5d:34:62:85:52:b8:b8:
    9d:92:33:72:1a:bf:8c:39:33:01:cf:fe:11:38:00:fc:6e:bc:
    8b:1b:22:8b:45:2f:82:27:3d:47:ab:00:43:ce:00:c0:ac:50:
    ce:d7:4d:bd:82:29:ac:1d:15:41:84:53:18:87:c4:5f:b7:0b:
    d9:92:26:45:d3:bd:83:ea:91:24:90:55:45:93:6c:2f:40:79:
    f7:78

3.3.3. Erstellung AC
In der Klasse ACissuer.java wird ein Attributzertifikat erzeugt und der Anwendungs-
fall 1 umgesetzt. Als Voraussetzung wird ein Identitätszertifikat benötigt, dass in der Klasse
PKCissuer.java erzeugt wird. Für dieses Beispiel wird die gleiche CA verwandt wie für
das AC und mit dieser ein Identitätszertifikat für die Bürgerin Identa ausgestellt. Dieses PKC ist
mit dem ausgestellten AC verknüpft. Hier zunächst das PKC Zertifikat:
Certificate:
Data:
    Version: 3 (0x2)
    Serial Number: 1 (0x1)
    Signature Algorithm: sha256WithRSAEncryption
    Issuer: C=DE, O=Humboldt University,
             OU=Systems Architecture Group, OU=Sample OFD
    Validity
        Not Before: Jan 27 23:13:28 2009 GMT
        Not After : Jul 27 23:13:28 2010 GMT
    Subject: CN=Identa, C=DE, O=Humboldt University,
              OU=Systems Architecture Group, OU=Sample OFD
    Subject Public Key Info:
        Public Key Algorithm: rsaEncryption

                                               21
RSA Public Key: (2048 bit)
            Modulus (2048 bit):
            00:9e:96:fd:c1:88:3b:23:df:99:9c:1f:17:c9:d5:
            ae:e7:6b:ef:e0:f1:f7:c4:0d:91:1a:06:9d:b5:0a:
            11:20:c7:1a:ed:7a:74:1f:70:99:00:29:58:55:aa:
            b5:f7:f7:a7:79:c7:2b:15:c3:37:cc:2a:3d:59:64:
            5a:54:27:56:32:f1:f8:1b:06:a8:00:81:34:90:ef:
            a7:1e:c0:ca:1f:76:43:03:85:d4:67:d0:49:b5:32:
            71:44:a2:99:27:4e:3a:1e:80:57:a1:65:9f:a5:19:
            3b:d6:64:e1:d4:d3:0c:71:fd:1d:6f:45:f1:e5:87:
            7b:27:57:c0:4a:fd:77:b0:ea:28:33:fd:e0:8a:dd:
            ae:8d:5a:d4:21:da:a6:2e:39:ef:aa:6f:0c:13:f2:
            46:a3:bc:9b:72:b1:60:0e:00:0a:1c:51:7a:1b:8c:
            9d:c5:38:41:c2:8d:9b:46:f8:38:d9:02:81:0d:e8:
            7e:df:65:4b:62:8c:17:63:2f:99:ca:40:ae:ee:09:
            39:46:e4:22:97:bd:99:5e:4f:7a:61:eb:3c:a1:8a:
            68:0d:9a:58:07:b4:00:ca:bb:a5:21:ec:42:53:3f:
            d8:ad:2d:c6:76:9b:34:f9:ef:02:e7:cc:b9:a3:45:
            c6:4f:18:7f:b1:f7:12:43:ef:34:c9:c5:bb:4b:d3:
            af:e5
            Exponent: 65537 (0x10001)
    X509v3 extensions:
        X509v3 Authority Key Identifier:
            keyid:38:4D:4D:62:62:77:12:93:A7:59:8E:9B:4D:
                  C4:A0:2E:EA:4F:0E:42
            DirName:/C=DE/O=Humboldt University/OU=Systems
                     Architecture Group/OU=Sample OFD
            serial:0A
        X509v3 Subject Key Identifier:
            FC:67:2C:E5:7C:8C:8A:4E:4C:D2:77:24:A4:9E:CB:
            7A:5B:21:B9:22
        X509v3 Basic Constraints: critical
            CA:FALSE
        X509v3 Key Usage: critical
            Digital Signature, Non Repudiation, Data Encipherment
Signature Algorithm: sha256WithRSAEncryption
    17:d5:e5:24:d2:2d:08:41:c4:cf:1c:24:fb:65:b0:46:e0:a3:
    3f:f6:2f:d9:17:b2:c1:8e:89:6a:a8:1f:ca:76:42:75:1f:8d:
    6a:45:43:69:62:74:87:ca:a9:14:93:53:cd:6f:ed:88:54:8d:
    3d:77:74:8a:a6:ef:29:b6:42:8d:fc:a5:7a:44:6a:ee:db:b0:
    57:66:0f:17:22:d8:a7:d2:25:11:c5:93:dd:c0:cd:ac:b7:54:
    ed:bb:e8:a8:b1:93:a4:64:87:2d:b0:b3:0d:3a:81:74:b0:5a:
    b8:fb:94:31:3b:47:49:cf:dc:37:ca:c5:28:e0:31:2d:bc:52:
    fa:60

                              22
Die Bürgerin Identa bekommt ein AC mit 10 eingetragenen Steuerpunkten. Ausserdem wird
noch das Attribut P18 gesetzt, dass das überschreiten dieser Altersgrenze bestätigt. Das Zertifikat
sieht folgendermassen aus (Die Darstellung unterscheidet sich jetzt etwas zu den obigen openssl
Ausgaben, da openssl aktuell keine Attributzertifikate unterstützt.)
Certificate:
Data:
         Version: 1
   SerialNumber: 1001
          Issuer: OU=Sample OFD, OU=Systems Architecture Group,
                  O=Humboldt University, C=DE
      Start Date: Mon Jan 28 02:32:28 CET 2009
      Final Date: Mon Dec 28 03:32:28 CEST 2009
Holder (issuer): OU=Sample OFD, OU=Systems Architecture Group,
                  O=Humboldt University, C=DE
Holder (serial): 1
       Signature: bc929a9c0cb4080cd00c9cc5b76a1fa7db54bdfe
                  c329de0fa141cb43477529654c38e2b6d2514462
                  9c9a73ecd619fee7ed7567fcf7ad49959bcc113a
                  c1d29321b6f100b2d8fae9ba1093dd940140d913
                  4ea7cc8560806cc7ad7849a9fc2f1d80248b1caa
                  cfaaaab91cbe357dcb68604b83d107ede5a93fec
                  6e611c3e74ef4c09
      Attributes:
                  P18 = true
                    SP = 10

3.3.4. Verifier
Die Klasse ACverifier stellt eine Methode zur Überprüfung des Attributzertifikats zur Verfü-
gung. Bei einer solchen Validierung wird der Gültigkeitszeitraum, die Signatur der ausstellen-
den AA, der Zertifikatspfad bis zum Wurzel AA Zertifikat sowie die Revocation geprüft. Das
Beispiel enthält zur Vereinfachung keine keystore oder LDAP Logik zur Suche der dazugehöri-
gen Zertifikate. Diese werden aus bekannten statischen Pfaden ausgelesen. Normalerweise wäre
es erforderlich anhand des Issuer-DN das jeweils signierende Zertifikat in einem öffentlichen
Verzeichnis nachzuschlagen. Eine weitere Vereinfachung betrifft die Überprüfung des Revoca-
tionstatus. Zwei Verfahren sind hierfür möglich: OCSP und ACRLs. Beide sind aus der PKI
bekannt und nicht im Fokus dieser Arbeit.
   Die Verifizierungsmethode kann nun im Security Handler des Webservice genutzt
werden zur Prüfung der angehängten „Tickets“. Als kleine zusätzliche Hilfsmethode
dient getAttribute( X509AttributeCertificate acCert, String attOID
), um einzelne Attribute abzufragen.

                                                23
3.4. Webservice
3.4.1. Java SDK integrierter Webservicestack: JAX-WS
Seit der Version 1.5 ist im Java SDK ein kompletter Webservicestack enthalten, der die Entwick-
lung von Webservice- Serverkomponenten und -clientkomponenten ermöglicht ohne auf externe
Bibliotheken zurückgreifen zu müssen. Langfristig wird dadurch die weit verbreitete AXIS Bi-
bliothek von der Apache Foundation vermutlich als „Bestpractise“ abgelöst. Diese Arbeit ist
deshalb auch auf die SUN eigenen Standardkomponenten ausgelegt.
   Es gibt zwei mögliche Entwicklungsverfahren zur Implementierung von Webservices: aus-
gehend von einem WSDL XML-Dokument, das den Service beschreibt, werden sowohl Server
als auch Client generiert oder, basierend auf einer Implementierung der Serviceklassen, wird
ein WSDL xml generiert und daraus dann die Clientseite. Beide Verfahren sind mit JAX-WS
möglich und durch entsprechende Werkzeuge unterstützt, aber besonders der zweite Weg ist
durch die Nutzung von Annotationen zu einer angenehmen, übersichtlichen und quellcodezen-
trierten Variante geworden. Da für den hier erstellten VoteService keine komplizierten eigenen
Datentypen und keine speziellen Serialisierungen von Datenstrukturen notwendig sind, ist der
quellcodebasierte Weg in der Umsetzung wesentlich einfacher zu handhaben. Die fortschreiten-
den Spezifizierungen im SOAP Protokoll Umfeld bleiben dem Anwender (Entwickler) ebenso
verborgen, wie zusätzliche Komponenten und Namensräume (z.B. aus der WS-Addressing Spe-
zifikation).
   Die Beispielimplementierung zur Direktdemokratie orientiert sich an der Dokumentation über
Webservicesicherheit5 und den dort aufgeführten Beispielen. Das folgende kurze Beispiel zeigt
die Nutzung der Annotationen zur vollständigen Beschreibung eines Webservice mit einer Me-
thode.
@WebService(targetNamespace="http://server.ws.termpaper/")
public class VoteService {
  @Resource WebServiceContext context;

     @WebMethod
     public String votePro(@WebParam(name="voteId") String voteId,
                    @WebParam(name="taxPoints") String taxPoints) {
       try {
         vote(authToken, voteId, "pro", taxPoints);
       } catch (Exception e) {
         return "failed: " + e.getMessage();
       }
       return "ok";
     }
}
  Nach dem Start des Servers kann unter der Standard URL6 , das dazugehörige WSDL bezogen
werden. Aus diesem WSDL Dokument lässt sich dann der Client entsprechend ableiten. Alle
 5
     https://xwss.dev.java.net/Securing_JAVASE6_WebServices.html
 6
     http://localhost:9999/SecureWS/VoteService?wsdl

                                              24
Sie können auch lesen