120
Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik am Beispiel der elektronischen Krankenakte Diplomarbeit von Christoph Breker Betreuer: Dr. Peter Ochsenschläger Institut für Informatik Fachbereich Informatik und Mathematik (12) Johann Wolfgang Goethe-Universität Frankfurt am Main September 2007

Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

Embed Size (px)

Citation preview

Page 1: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

Formale Modellierung und Analyseeiner OrBAC-basierten

Sicherheitspolitikam Beispiel der

elektronischen Krankenakte

Diplomarbeit

von

Christoph Breker

Betreuer: Dr. Peter Ochsenschläger

Institut für InformatikFachbereich Informatik und Mathematik (12)Johann Wolfgang Goethe-UniversitätFrankfurt am Main September 2007

Page 2: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik
Page 3: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

3

ErklärungHiermit versichere ich, dass ich diese Arbeit selbständig verfasst und keine anderen alsdie angegebenen Quellen und Hilfsmittel benutzt habe.

____________________________________________________(Christoph Breker)

Page 4: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik
Page 5: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

5

DanksagungIch bedanke mich bei Herrn Dr. Peter Ochsenschläger und Herrn Roland Rieke für ihrefreundliche Betreuung.

Ferner danke ich meinen Korrekturlesern.

Und nicht zuletzt bedanke ich mich ganz herzlich bei meinen Eltern für ihreUnterstützung bei meinem Studium.

Page 6: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik
Page 7: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ZUSAMMENFASSUNG

7

ZUSAMMENFASSUNG

In Krankenhäusern gewinnt die elektronische Datenverarbeitung an immer größererBedeutung. Immer mehr Dokumente stehen elektronisch zur Verfügung.

Die Dokumentation in einem Krankenhaus erfolgt dementsprechend häufig alselektronische Krankenakte, wobei eine Krankenakte sämtliche Daten umfasst, die imZusammenhang mit der medizinischen Versorgung eines Patienten stehen. Neben vielenVorteilen gegebenüber der konventionellen Krankenakte, wie z.B. dem gleichzeitigengemeinsamen Zugriff von mehreren Personen, bringt die elektronische Krankenakteauch Risiken mit sich. Durch die hohe Verfügbarkeit der elektronischen Krankenakte istdie Gefahr von Missbrauch und Manipulation groß. Da sich die elektronischeKrankenakte aus einer Vielzahl sensibler Dokumente zusammensetzt, werden hoheAnforderungen an den Datenschutz beim Umgang mit ihr gestellt.

In Deutschland gibt es Gesetze, die regeln, wie weitgehend die Daten in einemKrankenhaus geschützt werden müssen. Um die Datenschutzbestimmungen einzuhalten,müssen Krankenhäuser alle möglichen Maßnahmen treffen. Unter anderem muss eindifferenziertes Berechtigungskonzept erarbeitet werden, das auf genaue, saubere undwohldefinierte Weise beschreibt, welche Zugriffe auf die elektronische Krankenakteerlaubt sind und welche nicht.

OrBAC (Organization based access control) ist ein Zugriffskontrollmodell, mit demebensolche Beschreibungen formuliert werden können. Im Rahmen dieser Diplomarbeitwird eine Zugriffskontrollpolitik mittels OrBAC für ein repräsentatives abervereinfachtes Beispielkrankenhaus modelliert. Dabei fließen neben dendatenschutzrechtlichen Bestimmungen auch organisatorische und strukturelleRahmenbedingungen des Beispielkrankenhauses in die Zugriffskontrollpolitik mit ein.

Ein Krankenhaus kann als ein System betrachtet werden, das während seinesBetriebes ein gewisses Verhalten aufweist. Asynchrone Produktautomaten sind einallgemeines Konzept kommunizierender Automaten. Im Rahmen der Diplomarbeit wirddas betrachtete Beispielkrankenhaus und die dort vorherrschende Sicherheitspolitikmittels eines asynchronen Produktautomaten, des Krankenhaus-APAs, modelliert.Dieser asynchrone Produktautomat simuliert das Verhalten des Beispielkrankenhausesunter Beachtung der OrBAC-Zugriffskontrollpolitik. Der Erreichbarkeitsgraph desKrankenhaus-APAs gibt das vollständige Verhalten des Beispielkrankenhauses wieder.

Anhand des Erreichbarkeitsgraphen eines asynchronen Produktautomaten kann dasSystemverhalten analysiert werden. In der Regel ist jedoch der Erreichbarkeitsgraph zukomplex, als das Eigenschaften an ihm direkt abgelesen werden können. Deshalbwerden mittels sogenannter schlichter Homomorphismen Abstraktionen desSystemverhaltens betrachtet. Exemplarisch werden einige ausgewählte Eigenschaftendes Beispielkrankenhauses in dieser Diplomarbeit nachgewiesen.

Schlüsselbegr iffe: Krankenhaus, elektronische Krankenakte, Datenschutz,Zugriffskontrollpolitik, OrBAC, asynchroner Produkautomat, Erreichbarkeitsgraph,Systemverhalten, Analyse, Abstraktion, Verifikation, Systemeigenschaft

Page 8: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik
Page 9: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

INHALTSVERZEICHNIS

9

INHALTSVERZEICHNIS

ZUSAMMENFASSUNG......................................................................................................................7

INHALTSVERZEICHNIS...................................................................................................................9

ABBILDUNGSVERZEICHNIS.........................................................................................................13

KAPITEL 1 EINLEITUNG............................................................................................................15

KAPITEL 2 KRANKENHAUSANALYSE....................................................................................17

2.1 KRANKENHAUS.......................................................................................................................172.1.1 Teileinrichtungen eines Krankenhauses.........................................................................172.1.2 UML-Diagramme zur Organisationsstruktur..................................................................18

2.2 DIE KRANKENAKTE.................................................................................................................202.2.1 Inhalt und Struktur einer Krankenakte...........................................................................202.2.2 Die konventionelle Krankenakte.....................................................................................232.2.3 Die elektronische Krankenakte ......................................................................................23

2.3 ORTE UND PERSONENGRUPPEN DER INFORMATIONSVERARBEITUNG..........................................272.3.1 UML-Klassendiagramm der Personengruppen der Informationsverarbeitung.................27

2.4 AUFGABEN EINES KRANKENHAUSES ........................................................................................282.4.1 Patientenaufnahme........................................................................................................282.4.2 Patientenbehandlung.....................................................................................................292.4.3 Patientenentlassung.......................................................................................................30

2.5 DATENSCHUTZ IM KRANKENHAUS...........................................................................................302.5.1 Allgemeine datenschutzrechtliche Grundsätze................................................................312.5.2 Zugriff auf die elektronische Krankenakte......................................................................32

KAPITEL 3 ORBAC-ZUGRIFFSKONTROLLPOLITIK ............................................................35

3.1 ORBAC-MODELL....................................................................................................................353.2 DIE ENTITÄTEN DES ORBAC-MODELLS...................................................................................36

3.2.1 Entitäten der konkreten Ebene.......................................................................................363.2.2 Entitäten der allgemeinen Ebene....................................................................................373.2.3 Weitere Entitäten...........................................................................................................383.2.4 Attribute von Entitäten...................................................................................................383.2.5 Mengen von Instanzen von Entitäten..............................................................................38

3.3 DIE RELATIONEN DES ORBAC-MODELLS.................................................................................393.3.1 Empower .......................................................................................................................393.3.2 Consider .......................................................................................................................393.3.3 Use................................................................................................................................403.3.4 Define...........................................................................................................................403.3.5 Permission ....................................................................................................................423.3.6 Is_permitted..................................................................................................................42

3.4 ZUGRIFFSKONTROLLPOLITIK FÜR EIN BEISPIELKRANKENHAUS..................................................433.4.1 Mengen.........................................................................................................................443.4.2 Relationen.....................................................................................................................47

KAPITEL 4 ASYNCHRONE PRODUKTAUTOMATEN............................................................51

4.1 APA-DEFINITION ....................................................................................................................514.2 ERREICHBARKEITSGRAPH ........................................................................................................524.3 DAS SH-VERIFICATION TOOL ..................................................................................................52

KAPITEL 5 SPEZIFIKATION DES KRANKENHAUS-APA......................................................53

5.1 PERMISSION CHECKER.............................................................................................................54

Page 10: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

INHALTSVERZEICHNIS

10

5.1.1 Aufgabe......................................................................................................................... 545.1.2 Formale Spezifikation.................................................................................................... 545.1.3 Arbeitsweise.................................................................................................................. 56

5.2 KRANKENHAUS-APA .............................................................................................................. 575.2.1 Aufgabe......................................................................................................................... 575.2.2 Formale Spezifikation.................................................................................................... 575.2.3 Arbeitsweise.................................................................................................................. 60

KAPITEL 6 ANALYSE DES KRANKENHAUS-APA.................................................................. 63

6.1 ERREICHBARKEITSGRAPH ........................................................................................................ 636.2 ABSTRAKTIONSBASIERTE ANALYSE......................................................................................... 64

6.2.1 Homomorphismen......................................................................................................... 646.2.2 Abstraktes Systemverhalten ........................................................................................... 646.2.3 Sicherheits- und Lebendigkeitseigenschaften.................................................................. 656.2.4 Omega-Sprachen........................................................................................................... 656.2.5 Erfüllung von Eigenschaften.......................................................................................... 666.2.6 Schlichte Homomorphismen .......................................................................................... 66

6.3 VERIFIKATION VON SYSTEMEIGENSCHAFTEN ........................................................................... 676.3.1 Homomorphismus 1....................................................................................................... 676.3.2 Homomorphismus 2....................................................................................................... 706.3.3 Homomorphismus 3....................................................................................................... 706.3.4 Homomorphismus 4....................................................................................................... 716.3.5 Homomorphismus 5....................................................................................................... 726.3.6 Homomorphismus 6....................................................................................................... 736.3.7 Homomorphismus 7....................................................................................................... 736.3.8 Homomorphismus 8....................................................................................................... 756.3.9 Homomorphismus 9....................................................................................................... 76

KAPITEL 7 ZUSAMMENFASSUNG DER ERGEBNISSE UND AUSBLICK............................ 79

ANHANG A ZUGRIFFSKONTROLLPOLITIK ............................................................................ 81

A.1 MENGEN................................................................................................................................. 81A.1.1 Die Menge „ Org“ ......................................................................................................... 81A.1.2 Die Menge „ S“ ............................................................................................................. 81A.1.3 Die Menge „ A“ ............................................................................................................. 81A.1.4 Die Menge „ O“ ............................................................................................................. 81A.1.5 Die Menge „ R“ ............................................................................................................. 82A.1.6 Die Menge „ Ó ............................................................................................................. 82A.1.7 Die Menge „ V“ ............................................................................................................. 82A.1.8 Die Menge „ C“ ............................................................................................................. 82

A.2 RELATIONEN........................................................................................................................... 83A.2.1 Die Relation „ Empower“ .............................................................................................. 83A.2.2 Die Relation „ Consider“ ............................................................................................... 83A.2.3 Die Relation „ Use“ ....................................................................................................... 84A.2.4 Die Relation „ Permission“ ............................................................................................ 84

ANHANG B PERMISSION CHECKER......................................................................................... 87

B.1 APA....................................................................................................................................... 87B.2 PREAMBLE.............................................................................................................................. 88

ANHANG C KRANKENHAUS-APA .............................................................................................. 91

C.1 APA....................................................................................................................................... 91C.2 PREAMBLE.............................................................................................................................. 92

C.2.1 Mengen......................................................................................................................... 92C.2.2 Konstanten und Wertetabellen....................................................................................... 94C.2.3 Funktionen.................................................................................................................... 97

ANHANG D HOMOMORPHISMEN............................................................................................ 107

D.1 HOMOMORPHISMUS 1............................................................................................................ 107D.2 HOMOMORPHISMUS 2............................................................................................................ 107

Page 11: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

INHALTSVERZEICHNIS

11

D.3 HOMOMORPHISMUS 3............................................................................................................108D.4 HOMOMORPHISMUS 4............................................................................................................110D.5 HOMOMORPHISMUS 5............................................................................................................112D.6 HOMOMORPHISMUS 6............................................................................................................112D.7 HOMOMORPHISMUS 7............................................................................................................112D.8 HOMOMORPHISMUS 8............................................................................................................113D.9 HOMOMORPHISMUS 9............................................................................................................113

LITERATURVERZEICHNIS.........................................................................................................117

Page 12: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik
Page 13: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ABBILDUNGSVERZEICHNIS

13

ABBILDUNGSVERZEICHNIS

Abbildung 1 - UML-Klassendiagramm zur Organisationsstruktur............................... 19Abbildung 2 - UML-Objektdiagramm für konkrete Organisationsstruktur................... 20Abbildung 3 - UML-Klassendiagramm zur elektronischen Krankenakte..................... 26Abbildung 4 - UML-Klassendiagramm der Personengruppen...................................... 28Abbildung 5 - Permission Checker.............................................................................. 55Abbildung 6 - Krankenhaus-APA ............................................................................... 58Abbildung 7 - Berechnung des Erreichbarkeitsgraphen............................................... 63Abbildung 8 - Berechnung der Zusammenhangskomponenten .................................... 64Abbildung 9 - Minimalautomat 1................................................................................ 69Abbildung 10 - Minimalautomat 2.............................................................................. 70Abbildung 11 - Minimalautomat 3.............................................................................. 71Abbildung 12 - Minimalautomat 4.............................................................................. 72Abbildung 13 - Minimalautomat 5.............................................................................. 73Abbildung 14 - Minimalautomat 6.............................................................................. 73Abbildung 15 - Minimalautomat 7.............................................................................. 74Abbildung 16 - Berechnung des Erreichbarkeitsgraphen für fehlerh. Spezifikation...... 74Abbildung 17 - Berechnung der Zusammenhangskomp. für fehlerh. Spezifikation...... 75Abbildung 18 - Minimalautomat 7 für fehlerhafte Spezifikation.................................. 75Abbildung 19 - Minimalautomat 8.............................................................................. 76Abbildung 20 - Minimalautomat 9.............................................................................. 77

Page 14: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik
Page 15: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 1 EINLEITUNG

15

Kapitel 1 EINLEITUNG

In Krankenhäusern gewinnt die elektronische Datenverarbeitung an immer größererBedeutung. Immer mehr Dokumente werden auf elektronischer Weise erzeugt undstehen damit auch elektronisch zur Verfügung.

Die Dokumentation in einem Krankenhaus erfolgt dementsprechend häufig alselektronische Krankenakte, wobei eine Krankenakte sämtliche Daten über einenPatienten umfasst, die im Zusammenhang mit seiner medizinischen Versorgung erstelltwerden. Neben vielen Vorteilen gegebenüber der konventionellen Krankenakte, wiez.B. der Tatsache, dass mehrere Personen von unterschiedlichen Orten aus gleichzeitigauf sie zugreifen können, bringt die elektronische Krankenakte auch Risiken mit sich.Die elektronische Krankenakte setzt sich aus einer Vielzahl sensibler Dokumentezusammen, unter anderem Stammdatendokumenten und Befunden. Durch die hoheVerfügbarkeit der elektronischen Krankenakte ist die Gefahr von Missbrauch undManipulation groß. Dementsprechend werden hohe Anforderungen an den Datenschutzbeim Umgang mit der elektronischen Krankenakte gestellt.

In Deutschland gibt es Gesetze, die regeln, wie weitgehend die Daten in einemKrankenhaus geschützt werden müssen. Krankenhäuser müssen alle möglichenMaßnahmen treffen, um die Datenschutzbestimmungen einzuhalten. Unter anderemmuss ein differenziertes Berechtigungskonzept erarbeitet werden, welches für sämtlicheBenutzer der elektronischen Krankenakte erforderliche Rechte festlegt. Es werdengenaue, saubere und wohldefinierte Beschreibungen benötigt, welche Zugriffe erlaubtsind und welche nicht.

OrBAC (Organization based access control) ist ein Zugriffskontrollmodell, mit demebensolche Beschreibungen formuliert werden können. Im Rahmen dieser Diplomarbeitwird eine Sicherheitspolitik, oder präziser, eine Zugriffskontrollpolitik mittels OrBACfür ein repräsentatives aber vereinfachtes Beispielkrankenhaus modelliert. Neben dendatenschutzrechtlichen Bestimmungen fließen dabei auch organisatorische undstrukturelle Rahmenbedingungen des Beispielkrankenhauses in dieZugriffskontrollpolitik ein.

Ein Krankenhaus kann als ein System betrachtet werden, das während seinesBetriebes ein gewisses Verhalten aufweist. Asynchrone Produktautomaten sind einallgemeines Konzept kommunizierender Automaten, mit denen Systeme modelliertwerden können. Im Rahmen der Diplomarbeit wird das betrachtete Beispielkrankenhausund die dort vorherrschende Sicherheitspolitik mittels eines asynchronenProduktautomaten, des Krankenhaus-APAs, modelliert. Dieser asynchroneProduktautomat simuliert das Verhalten des Beispielkrankenhauses unter Beachtung derOrBAC-Zugriffskontrollpolitik. Der Erreichbarkeitsgraph des Krankenhaus-APAs gibtdann das vollständige Verhalten des Beispielkrankenhauses wieder.

Anhand des Erreichbarkeitsgraphen eines asynchronen Produktautomaten kann dasSystemverhalten analysiert werden und es können Eigenschaften des modelliertenSystems nachgewiesen werden. In der Regel ist jedoch der Erreichbarkeitsgraph zukomplex, als das Eigenschaften an ihm direkt abgelesen werden können. Deshalbwerden mittels sogenannter schlichter Homomorphismen Abstraktionen des

Page 16: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 1 EINLEITUNG

16

Systemverhaltens betrachtet. Exemplarisch werden einige ausgewählte Eigenschaftendes Beispielkrankenhauses in dieser Diplomarbeit nachgewiesen.

Das SH-Verification Tool (SH = Simple Homomorphisms) lässt sich zurSpezifikation von asynchronen Produktautomaten und Verifikation vonSystemeigenschaften einsetzen und wird auch im Rahmen dieser Diplomarbeitverwendet.

Die Diplomarbeit ist wie folgt strukturiert:

In Kapitel 2 erfolgt eine umfassende Analyse der Einrichtung Krankenhaus. Dabeiwird auf die Organisationsstruktur, die elektronische Krankenakte, die Orte undPersonengruppen der Informationsverarbeitung, die Aufgaben eines Krankenhauses undauf den Datenschutz im Krankenhaus eingegangen.

In Kapitel 3 wird das Zugriffskontrollmodell OrBAC vorgestellt und mittels derErgebnisse der Krankenhausanalyse aus Kapitel 2 eine OrBAC-Zugriffskontrollpolitikfür ein Beispielkrankenhaus entwickelt.

In Kapitel 4 werden asynchrone Produktautomaten vorgestellt, und es wird kurzerläutert, was der Erreichbarkeitsgraph eines asynchronen Produktautomatens ist.

In Kapitel 5 wird mittels eines asynchronen Produktautomaten, des Krankenhaus-APAs, das aus Kapitel 3 bekannte Beispielkrankenhaus und die dort vorherrschendeOrBAC-Zugriffskontrollpolitik modelliert. Des Weiteren wird eine Vorstufe desKrankenhaus-APAs vorgestellt, der Permission Checker.

In Kapitel 6 wird zunächst ein Überblick über die abstraktionsbasierte Analysegegeben. Danach werden einige ausgewählte Systemeigenschaften des Krankenhaus-APAs verifiziert.

Page 17: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 2 KRANKENHAUSANALYSE

17

Kapitel 2 KRANKENHAUS-ANALYSE

2.1 KrankenhausEin Krankenhaus ist eine Einrichtung zur zeitweiligen Aufnahme von Patienten zum

Zwecke einer stationären Pflege und einer ärztlichen Behandlung. Gegebenenfallswerden auch Teileinrichtungen umfasst, die einer ambulanten Behandlung dienen. Eskann zwischen Krankenhäusern unter öffentlicher, gemeinnütziger oder privaterTrägerschaft unterschieden werden.

Des Weiteren ist ein Krankenhaus eine Einrichtung, die fachlich-medizinisch ständigunter ärztlicher Leitung steht und nach wissenschaftlich anerkannten Methoden arbeitet.Es sollen Krankheiten, Leiden und Körperschäden erkannt, geheilt oder gelindertwerden oder Geburtshilfe geleistet werden. Dazu müssen ausreichend diagnostische undtherapeutische Möglichkeiten vorhanden sein, die dem Versorgungsauftrag desKrankenhauses entsprechen. Zusätzlich müssen Patienten untergebracht und verpflegtwerden können.

Anhand der verschiedenen Aufgaben, die aus der Zielsetzung eines Krankenhausesfolgen, lässt es sich in einzelne Teileinrichtungen unterteilen.

2.1.1 Teileinrichtungen eines Krankenhauses

2.1.1.1 Verwaltung

Die Verwaltung eines Krankenhauses verfolgt das zentrale Ziel der dauerhaftenSicherstellung des täglichen Krankenhausbetriebes. Dazu gehört die Organisation derPatientenversorgung und die Kontrolle der finanziellen Lage des Krankenhauses.Teilaufgaben der Krankenhausverwaltung sind unter anderem die administrativeAufnahme von Patienten und die Abrechnung von erbrachten Leistungen. Durch eineAbgrenzung der verschiedenen Teilaufgaben ist eine Aufteilung der Verwaltung ineinzelne Abteilungen möglich.

Abteilungen der Krankenhausverwaltung sind:

• Patientenverwaltung

• Abrechnung

• ...

Page 18: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 2 KRANKENHAUSANALYSE

18

2.1.1.2 Fachabteilungen

Stationen, Leistungsstellen und Ambulanzen werden in der Regel nach ihremFachbezug zu Fachabteilungen (z.B. Chirurgie, Orthopädie, ...) zusammengefasst. Beieiner entsprechenden Größe können Leistungsstellen auch für sich alleine eineFachabteilung (z.B. Radiologie) bilden. Zu dem Aufgabenbereich einer Fachabteilungzählen auch organisatorische Aspekte, wie zum Beispiel die Planung und Verwaltungvon Untersuchungs- und Operationsterminen.

2.1.1.2.1 Untereinheiten von Fachabteilungen

2.1.1.2.1.1 Stationen

Auf den Stationen eines Krankenhauses werden die Patienten untergebracht. Eswerden dort sowohl pflegerische Maßnahmen als auch diagnostische Maßnahmen (z.B.die Messung von Vitalparametern) und therapeutische Maßnahmen (z.B. Medikation)durchgeführt. Stationäre Aufenthalte sind durch mindestens eine Übernachtung desPatienten gekennzeichnet.

2.1.1.2.1.2 Leistungsstellen

Nicht alle diagnostischen und therapeutischen Leistungen werden direkt auf denStationen erbracht, weil dafür besondere Apparaturen und/oder Spezialisten erforderlichsind. Aus diesen Gründen und der damit verbundenen Möglichkeit einer besserenAuslastung der oftmals in der Anschaffung teuren Geräte werden gewisse diagnostischeMaßnahmen (z.B. Röntgenuntersuchungen) und therapeutische Maßnahmen (z.B.Operationen) in speziell dafür vorgesehenen Leistungsstellen (z.B. Radiologie, OP)durchgeführt.

Es kann zwischen zwei Arten von Leistungsstellen unterschieden werden:

• diagnostische Leistungsstelle

• therapeutische Leistungsstelle

2.1.1.2.1.3 Ambulanzen

Eventuell ist ein Krankenhaus mit einer oder mehreren Ambulanzen ausgestattet. Beidem Besuch einer solchen Einrichtung wird der Patient unterschiedlichendiagnostischen und therapeutischen Verfahren unterzogen. In den meisten Fällen stehtder Besuch einer Ambulanz in einem Zusammenhang mit einem vorausgegangenenoder mit einem folgenden stationären Aufenthalt. Ambulante Behandlungen könnensich aus mehreren Besuchen zusammensetzen, die jeweils maximal einen Tag langdauern. Übernachtungen erfolgen dementsprechend nicht.

2.1.2 UML-Diagramme zur Organisations-struktur

Das folgende UML-Klassendiagramm gibt die allgemeine Organisationsstruktur einesKrankenhauses mit allen zuvor beschriebenen Teileinrichtungen wieder.

Page 19: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 2 KRANKENHAUSANALYSE

19

����������

��� �� ���

� � ��� ���� ��� �� ���

� ����� ������

�������������� � �� � � � � �����

� ��� �� �����

� �� ��� ����

� ����� �� �����

� �� ��� ����

�� ����������

�������� ���� � ��������

1

1

1..*

1

1

1

1..*

1..*

1

1..*

Abbildung 1 - UML-K lassendiagramm zur Organisationsstruktur

Im nachfolgenden UML-Objektdiagramm wird ein konkretes Beispiel für dieOrganisationsstruktur eines Krankenhauses gezeigt, wobei die dargestellten ObjekteInstanzen von Klassen des vorherigen UML-Klassendiagramms sind.

Page 20: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 2 KRANKENHAUSANALYSE

20

����������� �����������

������� ��� � ����� ������

��! �� �� � ��� � ����� ������

� ��� �� ��� � � ��� �� ���

�� �� � �� � � � � � ����� �� �����

� �� ��� ����

�� � ��� �� �����

� �� ��� ����

�� �������� � � � ��������

� � ��� ��� ��� �� ��� � � � ��� ��� ��� �� ���

Abbildung 2 - UML-Objektdiagramm für konkrete Organisationsstruktur

2.2 Die KrankenakteDie Krankenakte umfasst alle Daten über einen Patienten, die im Zusammenhang mit

der medizinischen Versorgung erhoben und erstellt werden. Einzelne Dokumentekönnen dabei aus unterschiedlichen Quellen zu verschiedenen Zeitpunkten stammen.

2.2.1 Inhalt und Struktur einer Krankenakte

Bei dem Inhalt einer Krankenakte kann man zunächst zwischen zwei verschiedenenArten von Dokumenten unterscheiden. Einerseits gibt es die Personendatendokumenteund andererseits gibt es die Behandlungsfalldatendokumente. Zusätzlich können jeweilsdie Dokumente der beiden Arten in administrative Dokumente und in medizinischeDokumente unterschieden werden. Erfolgt eine Aufgliederung der Krankenakte indieser Art und Weise, so gehören die Dokumente entweder den administrativen odermedizinischen Personendatendokumenten oder den administrativen oder medizinischenBehandlungsfalldatendokumenten an.

Page 21: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 2 KRANKENHAUSANALYSE

21

2.2.1.1 Personendatendokumente

Personendatendokumente sind durch ihre direkte Zuordnung zu einem Patientencharakterisiert. Im Folgenden werden wichtige Personendatendokumente genannt undkurz beschrieben.

2.2.1.1.1 Administrative Personendatendokumente

2.2.1.1.1.1 Stammdatendokumente

Durch Stammdatendokumente können neue Patienten erfasst werden, wobei jedemPatienten eine Patientenidentifikationsnummer zugewiesen wird.

Stammdatendokumente dienen der Identifikation von Patienten und enthaltenInformationen wie z.B.

• Name

• Geschlecht

• Geburtsdatum

• Geburtsort

• Adresse

2.2.1.1.1.2 Krankenversicherungsdatendokumente

Krankenversicherungsdatendokumente werden für die Abrechnung von erbrachtenLeistungen benötigt und dienen zusätzlich der Identifikation von Patienten. Sieenthalten Informationen wie z.B.

• Krankenversicherungsname

• Krankenversicherungsnummer

2.2.1.1.2 Medizinische Personendatendokumente

2.2.1.1.2.1 Notfalldatendokumente

Notfalldatendokumente beinhalten besonders wichtige Daten über Patienten, vondenen ein jeder Behandelnder Kenntnis haben sollte. Eine Nichtberücksichtigungsolcher Daten bei der Behandlung kann sich in einer negativen Art und Weise auf denGesundheitszustand des jeweiligen Patienten auswirken. Notfalldatendokumenteenthalten Informationen z.B. über

• Allergien

• schwerwiegende Erkrankungen

• Medikamentenunverträglichkeiten

2.2.1.2 Behandlungsfalldatendokumente

Ein Behandlungsfall eines Patienten in einem Krankenhaus beginnt mit dessenambulanter oder stationärer Aufnahme und umfasst die Behandlung in einerFachabteilung sowie mögliche Verlegungen und Mitbehandlungen in anderen

Page 22: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 2 KRANKENHAUSANALYSE

22

Fachabteilungen. Eventuell erstreckt er sich auch über mehrere Krankenhausaufenthalte,bevor er schließlich mit einer Entlassung endet. Im Laufe der Zeit können einemPatienten mehrere Behandlungsfälle zugeordnet sein.

Behandlungsfalldatendokumente sind durch ihre Zuordnung zu einem Behandlungs-fall charakterisiert, der wiederum einem Patienten zugeordnet ist. Im Folgenden werdenwichtige Behandlungsfalldatendokumente genannt und kurz beschrieben.

2.2.1.2.1 Administrative Behandlungsfalldatendokumente

2.2.1.2.1.1 Behandlungsfalldokumente

Durch Behandlungsfalldokumente können neue Behandlungsfälle mit jeweils einerentsprechenden Behandlungsfallnummer angelegt werden.

Behandlungsfalldokumente enthalten Informationen wie z.B.

• Aufnahmedatum

• Entlassungsdatum

2.2.1.2.1.2 Aufenthaltsdokumente

Aufenthaltsdokumente geben Auskunft über die aktuellen Aufenthaltsorte vonPatienten innerhalb des Krankenhauses. Als Eintragungen enthalten sie jeweils dieFachabteilung, in der sich gerade der betreffende Patient befindet, sowie genauereInformationen wie z.B. die Station und die Zimmernummer. Anhand von solchenEintragungen können Fachabteilungen ihre Einbindung in die Behandlung vonPatienten nachweisen.

2.2.1.2.2 Medizinische Behandlungsfalldatendokumente

2.2.1.2.2.1 Befunddokumente

Befunde sind durch Untersuchungen oder Prüfungen festgestellte Ergebnisse oderZustände. Anhand der erhobenen Befunde wird auf eine Diagnose geschlossen.

2.2.1.2.2.2 Diagnosedokumente

Diagnosen sind genaue Zuordnungen von Befunden zu Krankheitsbegriffen. AusDiagnosen sollten sich Konsequenzen für die Behandlung der Patienten ergeben,insbesondere Entscheidungen für bestimmte therapeutische Verfahren.

2.2.1.2.2.3 Therapiedokumente

Therapien sind Maßnahmen zur Behandlung von Verletzungen und Krankheiten. Umeine geeignete Therapie auswählen zu können, muss zunächst eine korrekte Diagnosegestellt werden.

2.2.1.2.2.4 Arztbriefe

Arztbriefe sind Abschlussberichte, die den Verlauf der Behandlungen von Patientenzusammenfassen. Weiterbehandelnde erhalten mit ihrer Hilfe einen aussagefähigenÜberblick über die vollzogenen Behandlungsmaßnahmen und deren Ergebnisse.

Page 23: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 2 KRANKENHAUSANALYSE

23

2.2.2 Die konventionelle Krankenakte

Erfolgt die Informationsverarbeitung auf der Basis von Papier, so spricht man von derkonventionellen Krankenakte, die in der Regel aus einem oder mehreren Heftordnernbesteht.

2.2.2.1 Vorteile und Nachteile der konventionellenKrankenakte

In [InfsysGw2] werden Vorteile und Nachteile der konventionellen Krankenaktegenannt, von denen hier die wichtigsten kurz und prägnant aufgezählt werden.

2.2.2.1.1 Vorteile

+ Die konventionelle Krankenakte ist leicht zu durchblättern.

+ Die konventionelle Krankenakte ist leicht mitzunehmen.

+ Medizinische Daten können unabhängig von ihrem Format in ihr abgelegtwerden.

2.2.2.1.2 Nachteile

− Die konventionelle Krankenakte kann ziemlich umfangreich und dadurchunübersichtlich werden.

− Es besteht die Gefahr der Unauffindbarkeit und der Unvollständigkeit durch eineFehlablage.

− Fehlende bzw. keine zeitnahe Verfügbarkeit.

2.2.3 Die elektronische Krankenakte

Heute erfolgt die Dokumentation häufig als elektronische Krankenakte, weil immermehr Dokumente elektronisch erzeugt werden und somit auch elektronisch verfügbarsind. Die einzelnen Dokumente der elektronischen Krankenakte können zentralzusammengeführt und in einem zentralen System gespeichert werden, oder sie werdendezentral in den Einrichtungen gespeichert, in denen sie auch erzeugt wurden. Bei derzentralen Datenhaltung bleiben die beteiligten Einrichtungen datenverarbeitendeStellen, obwohl bei ihnen selbst keine Daten gespeichert werden.

Die elektronische Krankenakte ist ein wichtiger und integraler Bestandteil von einemKrankenhausinformationssystem (KIS), wobei unter einem Krankenhausinformations-system nach [HbMedInf] folgendes zu verstehen ist:

„Ein Krankenhausinformationssystem ist das Teilsystem eines Krankenhauses, dasalle informationsverarbeitenden (und -speichernden) Prozesse und die an ihnenbeteiligten menschlichen und maschinellen Handlungsträger in ihrer informations-verarbeitenden Rolle umfasst.“

Das Ziel eines Krankenhausinformationssystems ist die rechtzeitige Bereitstellungvon den richtigen Informationen an die richtigen Personen am richtigen Ort in derrichtigen Form, damit die richtigen Entscheidungen getroffen werden können.

Page 24: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 2 KRANKENHAUSANALYSE

24

2.2.3.1 Voraussetzungen für die elektronischeKrankenakte

Ohne eine zentrale Verwaltung der Patienten und der zugehörigen Behandlungsfälleist eine elektronische Krankenakte nicht möglich. Die besondere Bedeutung vonPatienten und Behandlungsfällen kommt daher, dass alle Dokumente der Krankenakteentweder einem Patienten oder einem Behandlungsfall zugeordnet werden. Behand-lungsfälle wiederum werden jeweils einem Patienten zugeordnet. Patienten erhalten beider erstmaligen Aufnahme in einem Krankenhaus eine eineindeutige Patienten-identifikationsnummer (PIN), die unveränderlich und in allen Einrichtungen desKrankenhauses zeitlich unbegrenzt gültig ist. Zusätzlich beginnt, sofern keinBehandlungsfall fortgesetzt wird, mit der Aufnahme eines Patienten ein neuerBehandlungsfall, dem eine eineindeutige Behandlungsfallnummer zugeordnet wird.Patientenidentifikationsnummern und Behandlungsfallnummern mit diesenEigenschaften garantieren eine korrekte Zusammenführung von eindeutigidentifizierbaren Dokumenten zu einer Krankenakte.

Personendatendokumente werden mit der Patientenidentifikationsnummer desentsprechenden Patienten und Behandlungsfalldatendokumente mit der Behandlungs-fallnummer des entsprechenden Behandlungsfalles gekennzeichnet.

Für die Zuordnung von Behandlungsfällen zu Patienten werden noch besondereZuordnungsdokumente benötigt. Diese bestehen jeweils aus einem einzelnen Datensatz,der sich aus einer Patientenidentifikationsnummer und einer Behandlungsfallnummerzusammensetzt. Inhaltlich besagt ein solcher Datensatz, dass der entsprechendeBehandlungsfall dem entsprechenden Patienten zugeordnet ist. FehlerhafteZuordnungen von Behandlungsfällen zu Patienten können demgemäß leicht korrigiertwerden, da lediglich die Zuordnungsdokumente geändert werden müssen. An deneigentlichen Behandlungsfalldatendokumenten sind keine Änderungen nötig.

Anhand der Zuordnungsdokumente lässt sich zum einen feststellen, welcher Patientzu einem gegebenen Behandlungsfall gehört, und zum anderen feststellen, welcheBehandlungsfälle es zu einem gegebenen Patienten gibt.

2.2.3.2 Risiken der elektronischen Krankenakte

In [HbMedInf] werden einige Risiken im Umgang mit der elektronischenKrankenakte aufgezeigt, die hier im Folgenden ausführlich beschrieben werden.

Bei der Aufnahme von Patienten in das Krankenhaus muss eine besondere Sorgfaltverwendet werden, damit die folgenden Fehler vermieden werden.

Besucht ein Patient das Krankenhaus zum wiederholten Mal, so kann bei seinerAufnahme folgender Fehler passieren. Der Patient wird fälschlicherweise nicht als einWiederkehrer erkannt und wird mit einer weiteren PIN neu aufgenommen, obwohl ihmbei seinem erstmaligen Besuch in dem Krankenhaus bereits eine PIN zugewiesenwurde. Ein und derselbe Patient wird nun unter zwei verschiedenen PINs, also doppelt,in dem Krankenhaus geführt. Folglich wird die Situation eintreten, in der es Dokumentegibt, die jeweils mit unterschiedlichen PINs gekennzeichnet sind, wenngleich sieeigentlich zu einem einzigen Patienten gehören. Auch die Behandlungsfälle desPatienten werden jeweils einer von zwei PINs zugeordnet sein und nicht alle einereinzigen. Informationen über den Patienten teilen sich dadurch auf und man erhält je

Page 25: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 2 KRANKENHAUSANALYSE

25

nach gewählter PIN bei deren Zusammenführung eine andere Krankenakte. Keinedieser beiden Krankenakten ist vollständig und liefert eine aktuelle Übersicht über denPatienten. Mittels einer Zusammenführung der beiden Krankenakten kann der Fehlerbehoben werden.

Ein weiterer Fehler, der bei der Aufnahme geschehen kann, ist die Fehlidentifikationeines Patienten. Hierbei wird ein Patient mit einem anderen Patienten verwechselt undanschließend für die Zeit seines Aufenthaltes in dem Krankenhaus unter dessen PINgeführt. Dokumente und Behandlungsfälle, die neu angelegt werden, kommen zu denbereits vorhandenen des anderen Patienten hinzu. Änderungen, sofern sie denn zulässigsind, haben den Verlust korrekter Informationen über den anderen Patienten bei einemNichtvorhandensein von Kopien zur Folge. Die Informationen über zwei verschiedenePatienten vermischen sich zu einer einzigen Krankenakte. Dieser Fall muss unter allenUmständen vermieden werden, weil die Vermischung von medizinischen Daten zuärztlichen Fehlentscheidungen führen kann. Die Korrektur von solchen Fehlern imnachhinein kann meistens nur manuell erfolgen und erfordert dann einen hohenAufwand.

Weiterhin stellt die hohe Verfügbarkeit der elektronischen Krankenakte - auf siekönnen mehrere Personen von unterschiedlichen Orten gleichzeitig zugreifen - hoheAnforderungen an den Datenschutz. Missbrauch muss verhindert oder zumindestaufgedeckt werden können.

2.2.3.3 Vorteile und Nachteile der elektronischenKrankenakte

In [InfsysGw2] werden Vorteile und Nachteile der elektronischen Krankenaktegenannt, von denen hier die wichtigsten kurz und prägnant aufgezählt werden.

2.2.3.3.1 Vorteile

+ Die elektronische Krankenakte ist zeitgleich an mehreren Orten verfügbar.

+ Die elektronische Krankenakte ist aktueller, vollständiger und leserlicher als diekonventionelle Krankenakte.

+ Die Dokumente gehen weniger leicht verloren und sind einfach zu kopieren, zuändern und auszutauschen.

+ Die Dokumente können abhängig von dem Benutzer und der aktuellenBehandlungssituation selektiert und präsentiert werden.

+ Aktenarchiv benötigt wenig Platz.

2.2.3.3.2 Nachteile

− Der Umgang mit elektronischen Krankenakten muss zunächst erlernt werden underfordert einen hohen Schulungsaufwand.

− Die hohe Technikabhängigkeit bringt hohe Investitionskosten für ausfallsichereLösungen mit sich.

− Die Sicherstellung des Urkundencharakters ist bei elektronischen Dokumentenaufwendig.

Page 26: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 2 KRANKENHAUSANALYSE

26

− Hohe Anforderungen an den Datenschutz.

2.2.3.4 UML-Diagramm zur elektronischenKrankenakte

Das folgende UML-Klassendiagramm zeigt verschiedene Spezialisierungen derallgemeinen Klasse Krankenaktendokument. Die aufgeführten Klassen entsprechen denzuvor beschriebenen Arten von Dokumenten.

" �#��! �! � ��� ��

� ��� �� ��! � ��� ��

� ����� ���! � ��� ��

� �� � ���#�! � ��� ��

$ �! �� �������" ����! ���� #����! � ��! � ��� ��

" ����! ���� #���! � ���! � ��� ��

� ��� ���! � ���! � ��� ��

� ! � ��� �� �� ��" ����! ���� #����! � ��! � ��� ��

% �� �! ���� �! � ��� ��

� �� � ! � ���! � ��� ��

��������� ���������� �! � ��! � ��� ��

& ����� ! � ���! � ��� ��

" ����! ���� �#���! � ��� ��

' � #���! � ���! � ��� ��

��������� ��! � ��� ��

� ! � ��� �� �� ��� ��� ����

! � ��! � ��� ��

$ �! �� �������� ��� ����

! � ��! � ��� ��

�������������� �������� � ���������� � �������� � ���������� � �������� �������������� ��������

� �#�� ��� �! � ��� ��

Abbildung 3 - UML-K lassendiagramm zur elektronischen K rankenakte

Page 27: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 2 KRANKENHAUSANALYSE

27

2.3 Orte und Personengruppen derInformationsverarbeitung

Die verbreitete Annahme, Informationsverarbeitung in einem Krankenhaus habevorrangig etwas mit der Verwaltung zu tun, erweist sich als nicht richtig, wenn mansich überlegt, wo überall Informationen über Patienten und Behandlungsfälle sowiepatientenunabhängiges Wissen verarbeitet werden. Vielmehr sind im Allgemeinen alleBereiche in einem Krankenhaus von der Informationsverarbeitung betroffen, wobeiinsbesondere einzelne Abteilungen der Verwaltung (Patientenverwaltung, Abrechnung)und die Fachabteilungen mit ihren Untereinheiten (Stationen, Leistungsstellen,Ambulanzen) an der Erstellung und Verarbeitung von Informationen aus Krankenaktenbeteiligt sind.

Folglich sind sowohl nicht-medizinische als auch medizinische Krankenhaus-mitarbeiter an der Informationsverarbeitung beteiligt. Anhand der Aufgaben undVerantwortlichkeiten, die den Mitarbeitern zugeteilt werden, können sie zuverschiedenen Personengruppen zusammengefasst werden.

2.3.1 UML-Klassendiagramm derPersonengruppen derInformationsverarbeitung

Das folgende UML-Klassendiagramm zeigt verschiedene Personengruppen derInformationsverarbeitung, die alle auch an der Erstellung und Verarbeitung vonInformationen aus Krankenakten beteiligt sind.

Page 28: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 2 KRANKENHAUSANALYSE

28

������������ � ��� �� ��

$ �! �� ��������$ � ��� �� ��

' ��� �� �! �� ��������$ � ��� �� ��

� ��

( ��#���

� #��� ����# ��� �� ��� �� � ��� �� ��

Abbildung 4 - UML-K lassendiagramm der Personengruppen

2.4 Aufgaben eines KrankenhausesNachfolgend werden zentrale Aufgaben eines Krankenhauses dargestellt, bei denen

jeweils Daten von Krankenakten erhoben und verarbeitet werden. Einerseits gibt esAufgaben, deren Durchführung in einem direkten Bezug zu einem Patienten steht, undandererseits Aufgaben, wie z.B. die Abrechnung von erbrachten Leistungen, die nichtunmittelbar etwas mit einem Patienten zu tun haben.

2.4.1 Patientenaufnahme

2.4.1.1 Administrative Aufnahme

Die administrative Aufnahme von Patienten erfolgt häufig an einer zentralen Stelledes Krankenhauses und wird von Verwaltungsmitarbeitern der Patientenverwaltungdurchgeführt. Dort können terminlich einbestellte und unvorhergesehene Patienten(Notfälle ausgenommen) aufgenommen werden.

Zunächst wird ein aufzunehmender Patient identifiziert, und es wird mittels dervorhandenen administrativen Personendatendokumente überprüft, ob er dasKrankenhaus bereits früher einmal besucht hat. Patienten, die das Krankenhaus zumwiederholten Mal besuchen, werden als Wiederkehrer bezeichnet.

Page 29: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 2 KRANKENHAUSANALYSE

29

Ist ein Patient kein Wiederkehrer, so muss er neu aufgenommen werden. Er erhälteine Patientenidentifikationsnummer, und eine Krankenakte wird für ihn angelegt, indie zugleich Dokumente mit administrativen Personendaten aufgenommen werden. Umeinzelne Behandlungsfälle unterscheiden zu können, wird für jeden Behandlungsfalleine Behandlungsfallnummer vergeben. Für einen neu aufzunehmenden Patientenbeginnt immer auch ein neuer Behandlungsfall. Folglich wird eine neue Behandlungs-fallnummer vergeben und Dokumente mit administrativen Behandlungsfalldatenwerden in die Krankenakte aufgenommen.

Ist ein Patient ein Wiederkehrer, so werden in seiner bereits vorhandenenKrankenakte die administrativen Personendatendokumente überprüft undgegebenenfalls aktualisiert. Weiterhin muss überprüft werden, ob ein Behandlungsfallfortgesetzt wird, oder ein neuer Behandlungsfall beginnt. Bei einer Fortsetzung wirdkeine neue Behandlungsfallnummer vergeben und Dokumente mit administrativenBehandlungsfalldaten werden in die Krankenakte aufgenommen oder aktualisiert.Andernfalls wird eine neue Behandlungsfallnummer vergeben und Dokumente mitadministrativen Behandlungsfalldaten werden in die Krankenakte aufgenommen.

Ist dem aufzunehmenden Patienten nun ein Behandlungsfall mitBehandlungsfallnummer zugeordnet, so kann der Patient einer Station zugewiesenwerden.

2.4.1.2 Ärztliche und pflegerische Aufnahme

Die ärztliche und pflegerische Aufnahme von Patienten erfolgt auf einer demjeweiligen Patienten zugewiesenen Station einer Fachabteilung und wird von einemdortigen Arzt bzw. einer dortigen Pflegekraft übernommen. Sie besteht imWesentlichen aus der ärztlichen und pflegerischen Anamnese (Informationssammlungüber medizinische Vorgeschichte). Dabei wird auf Dokumente mit medizinischen oderadministrativen Behandlungsfalldaten und auf Dokumente mit medizinischenPersonendaten zugegriffen.

2.4.2 Patientenbehandlung

2.4.2.1 Behandlungsplanung

Die Behandlungsplanung ist eine ständige Aufgabe, welche von den zuständigen undverantwortlichen Ärzten und Pflegekräften des jeweiligen Patienten ausgeführt wird.Durch das Vorliegen von neuen Informationen wird sie erneut angestoßen. Das Ziel beider Behandlungsplanung ist die Entscheidung über die durchzuführenden pflegerischen,diagnostischen und therapeutischen Maßnahmen und deren sinnvolle Planung.

Vor der Durchführung von Maßnahmen muss der Patient über selbige umfassendaufgeklärt und informiert werden. Des Weiteren ist eine Einwilligung des Patientenüber die Maßnahmen erforderlich, welche festgehalten werden muss. GetroffeneEntscheidungen müssen anschließend dokumentiert werden.

Page 30: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 2 KRANKENHAUSANALYSE

30

2.4.2.2 Leistungskommunikation

Diagnostische und therapeutische Maßnahmen, die nicht direkt auf einer Stationdurchgeführt werden können, müssen von einem Arzt bei entsprechend spezialisiertendiagnostischen bzw. therapeutischen Leistungsstellen angefordert werden. Eventuell istdazu eine Terminvereinbarung mit der leistungserbringenden Einrichtung notwendig.Eine Leistungsanforderung muss möglichst zügig an die zuständige Leistungsstellegeleitet werden.

Für die Leistungsstelle müssen relevante Dokumente mit Behandlungsfalldaten oderPersonendaten zugänglich sein. Nachdem die angeforderte Leistung erbracht wurde,müssen vom Leistungserbringer erstellte Dokumente mit medizinischen Personendatenoder medizinischen Behandlungsfalldaten (Befund bzw. Therapiebericht) demAuftraggeber zugänglich sein.

2.4.2.3 Durchführung von Maßnahmen

Die geplanten pflegerischen, diagnostischen und therapeutischen Maßnahmen werdendurchgeführt und dokumentiert. Dabei werden Dokumente mit medizinischenPersonendaten und medizinischen Behandlungsfalldaten in die Krankenakteaufgenommen, welche korrekt und vollständig die durchgeführten Maßnahmen belegen.Die Inhalte der einzelnen Dokumente hängen jeweils von der dokumentierendenEinrichtung und von der dokumentierenden Personengruppe ab.

2.4.3 Patientenentlassung

2.4.3.1 Arztbriefschreibung

Nach Abschluss der Behandlung eines Patienten erfolgt die Erstellung einesArztbriefes (Abschlussbericht) durch einen zuständigen und verantwortlichen Arzt.Sofern der Patient in einer anderen Einrichtung weiterbehandelt wird, muss dasKrankenhaus den Arztbrief und weitere relevante medizinische Dokumente (z.B.Befunde) an die weiterbehandelnde Einrichtung leiten.

2.4.3.2 Abrechnung

Die Abrechnung aller an den Patienten erbrachten abrechnungsrelevanten Leistungenmit den Kostenträgern wird von Verwaltungsmitarbeitern der Abrechnung durchgeführt.Dabei wird auf Dokumente mit medizinischen oder administrativen Behandlungs-falldaten oder administrativen Personendaten zugegriffen.

2.5 Datenschutz im KrankenhausDie Krankenakte eines Patienten beinhaltet eine Vielzahl unterschiedlicher,

persönlicher Daten, die zusammengeführt ein umfassendes Personenprofil ergeben.Aufgrund der hohen Sensibilität der Daten, insbesondere der medizinischen Daten,

Page 31: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 2 KRANKENHAUSANALYSE

31

kommt dem Datenschutz und der Datensicherheit in einem Krankenhaus eine besondereBedeutung zu.

Welche Zugriffe auf Daten in einem Krankenhaus zulässig sind und wie weitgehenddie Daten geschützt werden müssen, wird durch europäische und deutsche Datenschutz-gesetze und die Landeskrankenhausgesetze der einzelnen Bundesländer geregelt. Umdie Datenschutzbestimmungen einzuhalten, müssen Krankenhäuser alle dazu möglichenMaßnahmen treffen. Die konkrete Gestalt der Maßnahmen hängt von den Abläufen undden organisatorischen und strukturellen Rahmenbedingungen des jeweiligenKrankenhauses ab.

Im Gegensatz zur papierbasierten Krankenakte ist der Zugriff auf die elektronischeKrankenakte kein offensichtlicher Akt. Mehrere Personen können gleichzeitig vonunterschiedlichen Orten aus auf die elektronische Krankenakte zugreifen. Wenn keinevorbeugenden Vorkehrungen getroffen werden, erfolgt der Zugriff unkontrolliert undunbemerkt. Um Missbrauch und Manipulation zu verhindern, müssen Vorkehrungengetroffen werden, welche den Zugriff auf die Krankenakte kontrollieren und einedatenschutzkonforme Handhabung der elektronischen Krankenakte gewährleisten. Diebei den Krankenakten auf Papier üblichen Einsichtsnahme- und Weitergabeverfahrenkönnen nicht ohne weiteres auf die elektronische Krankenakte übertragen werden.

2.5.1 Allgemeine datenschutzrechtlicheGrundsätze

Im Folgenden werden allgemeine datenschutzrechtliche Grundsätze vorgestellt undbeschrieben, die in einem Krankenhaus im Zusammenhang mit der Krankenakte stehen.

2.5.1.1 Patientengeheimnis

Geheimnisse sind Tatsachen, von denen nur eine eingeschränkte Menge von PersonenKenntnis haben. Sie sollen im Interesse desjenigen, den sie betreffen, geheimgehaltenwerden. Wird ein Geheimnis an einen Dritten mitgeteilt, so wird es offenbart.

„Das Patientengeheimnis umfasst alle Informationen, die mit der ärztlichenBehandlung in Zusammenhang stehen.“ [PatdsKh] Dazu gehören Daten überKrankheiten, Leiden und Körperschäden, wie auch persönliche Angaben, die keinendirekten Bezug zu Krankheiten, Leiden und Körperschäden haben. „Schon der Nameoder die Tatsache der Behandlung des Patienten stellt ein Patientengeheimnis dar.“[PatdsKh]

Grundsätzlich dürfen Daten einer Krankenakte nur im Rahmen der Zweck-bestimmung des Behandlungsvertrages und in Verbindung mit den maßgeblichendatenschutzrechtlichen Vorschriften erhoben und verarbeitet werden. Sie dürfen nichtuneingeschränkt ausgetauscht und verwendet werden, auch nicht innerhalb desKrankenhauses. Das Krankenhaus kann nicht als eine informationelle Einheit angesehenwerden. Daten einer Krankenakte dürfen nur von Personen erhoben und verarbeitetwerden, die diese Daten im Rahmen des Behandlungsvorganges benötigen. DiesesPrinzip der Er forder lichkeit - auch unter der Bezeichnung „ need to know“ - Prinzipbekannt - ist streng zu beachten. Die Mitteilung von benötigten Daten innerhalb desKrankenhauses im Rahmen der Behandlung stellt keine unbefugte Offenbarung dar.

Page 32: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 2 KRANKENHAUSANALYSE

32

Zweck des Patientengeheimnisses ist in erster Linie der Schutz der Vertrauens-beziehung zwischen Arzt und Patient.

2.5.1.2 Dokumentationspflicht

„Dem Arzt obliegt nach Standesrecht die vollständige Dokumentation desBehandlungsgeschehens.“ [PatdsKh] Er ist nicht nur berechtigt, sondern dazuverpflichtet, erforderliche Aufzeichnungen über die in Ausübung seines Berufesgemachten Feststellungen und Maßnahmen anzufertigen. Die Dokumentation ist einwesentlicher Bestandteil einer fachgerechten Behandlung.

2.5.1.3 Informationelles Selbstbestimmungsrecht desPatienten

Grundsätzlich haben Patienten das Recht auf informationelle Selbstbestimmung, dasheißt, dass sie selbst über die Preisgabe und Verwendung persönlicher Datenbestimmen. Weiterhin hat ein jeder Patient das Recht, über die Erhebung undVerarbeitung seiner Daten informiert zu sein.

Durch das Abschließen eines Behandlungsvertrages zwischen dem Patienten und demKrankenhaus - die Voraussetzung für die Erhebung und Verarbeitung von notwendigenDaten - wird das benötigte Einverständnis des Patienten zur Erhebung und Verarbeitungseiner Daten als gegeben angenommen. Jedoch dürfen die Daten von Patienteninnerhalb eines Krankenhauses nicht beliebig weitergegeben werden. Dasinformationelle Selbstbestimmungsrecht der Patienten würde verletzt werden.

Wird ein Patient in eine andere Fachabteilung verlegt, werden oftmals auch Datenweitergegeben, was dem Patienten mitzuteilen ist. Zusätzlich muss er darüberunterrichtet werden, wer daraufhin welche Daten zu welchem Zweck einsehen kann.Der Patient hat die Möglichkeit, der Weitergabe seiner Daten zu widersprechen. Erklärtder Patient keinen Widerspruch, so kann von seiner stillschweigenden Einwilligungausgegangen werden. Widerspricht hingegen der Patient der Weitergabe seiner Daten,muss er über daraus resultierende Nachteile selbstverständlich informiert werden.

Allgemein bedarf die Verarbeitung von Daten einer besonderen Einwilligung desPatienten, wenn sie nicht für die Durchführung der Behandlung erforderlich ist.

2.5.2 Zugriff auf die elektronische Krankenakte

Der Zugriff auf Daten einer elektronischen Krankenakte darf nur unter der Wahrungder ärztlichen Schweigepflicht und unter der Berücksichtigung des informationellenSelbstbestimmungsrechtes des Patienten erfolgen. Die ärztliche Schweigepflicht wirdauch Arztgeheimnis bzw. richtiger Patientengeheimnis genannt.

Um der ärztlichen Schweigepflicht Genüge zu tun, reicht es nicht aus, sämtlicheZugriffe auf die elektronische Krankenakte zu protokollieren. Durch eineProtokollierung können zwar im Nachhinein unbefugte Zugriffe aufgedeckt werden,aber nicht unbefugte Zugriffe verhindert werden. „Es muss daher ein differenziertesBerechtigungskonzept erarbeitet werden, das basierend auf der Organisationsstruktur

Page 33: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 2 KRANKENHAUSANALYSE

33

des Krankenhauses für alle Benutzer die zur Aufgabenstellung benötigten Rechtefestlegt.“ [TechOrgFrd]

Ein differenziertes Berechtigungskonzept umfasst mehrere Dimensionen. Zum einengibt es die Personen, welche auf die Daten von elektronischen Krankenakten zugreifenwollen. Es ist sinnvoll, die Personen mittels Rollen, die sie im Krankenhaus spielen,zusammenzufassen, damit die Komplexität reduziert wird. Zum anderen gibt esverschiedene Rechte, wie z.B. ‚anzeigen‘ und ‚bearbeiten‘ , die vergeben werdenkönnen. Des Weiteren gibt es die einzelnen Dokumente der elektronischen Kranken-akte, auf die sich die Rechte beziehen. Hier ist es zweckmäßig, Dokumente nach ihrerArt zusammenzufassen, damit sich Rechte beispielsweise auf Befunde beziehen können.Für ein Berechtigungskonzept müssen die einzelnen Dimensionen einander zugeordnetwerden. [TechOrgFrd]

Auch die Organisationsstruktur eines Krankenhauses spielt beim Zugriff auf dieelektronische Krankenakte eine Rolle. Ein Beispiel dafür ist das Folgende: Weil in derRegel mehrere Ärzte an der Behandlung eines Patienten beteiligt sind, lässt sich dieSchweigepflicht in einem Krankenhaus kaum auf einen bestimmten Arzt beziehen.„Hier wird die Grenze durch die Behandlung innerhalb der Fachabteilung gegeben.“[DsKh]

2.5.2.1 Zugrunde liegende Prinzipien

Im Folgenden werden einige der zugrunde liegenden Prinzipien aufgeführt, die beimZugriff auf die elektronische Krankenakte eine Rolle spielen.

Im Rahmen eines Krankenhausaufenthaltes eines Patienten haben Ärzte einerFachabteilung Zugriff auf den zum aktuellen Behandlungsfall gehörenden Teil derKrankenakte, soweit nicht Daten anderer Fachabteilungen gesperrt sind, sowie auf diebei früheren Behandlungsfällen des Patienten in der gleichen Fachabteilungangefallenen Teile der Krankenakte. [ZPatdKh]

Wird ein Patient in eine andere Fachabteilung geschickt, wechselt der Kreis derZugriffsberechtigten, weil jede Fachabteilung nur auf die von ihr behandelten PatientenZugriff haben darf. Der Zugriff der nachbehandelnden Fachabteilung muss dabei durcheinen vorbehandelnden Arzt ermöglicht werden. Keine Fachabteilung kann selbständigeine behandelnde Fachabteilung eines Patienten werden. [TechOrgFrd]

Eine Fachabteilung muss den Zugriff anderer Fachabteilungen auf Daten, die in ihrangefallen sind, beschränken können. Sensible Daten einer Fachabteilung müssen vorjeglichem Zugriff einer anderen Fachabteilung gesperrt werden können. Weiterhin mussdie Möglichkeit bestehen, wenn z.B. eine Behandlungssituation es erfordert, gesperrteDokumente wieder freizugeben. [ZPatdKh]

Eine Löschung von Daten ist erforderlich, wenn sie nicht mehr benötigt werden bzw.gesetzliche Aufbewahrungsfristen abgelaufen sind. „Wichtig ist sie aber auch in solchenFällen, in denen das Krankenhaus keine Leistung erbracht hat, z.B. wenn ein Patient vorErbringung einer Leistung das Krankenhaus wieder verlässt oder in ein anderesKrankenhaus weitergeleitet wird.“ [TechOrgFrd] Insbesondere dürfen Daten nichtgelöscht werden, wenn sich der betreffende Patient noch im Krankenhaus zurBehandlung aufhält. Allgemein sollten Ärzte nicht selbst Daten löschen können, da diesManipulationen zur Folge haben könnte.

Page 34: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 2 KRANKENHAUSANALYSE

34

Wenn ein Patient ein Krankenhaus verlässt und die Leistungen abgerechnet undbezahlt worden sind, ist (üblicherweise) kein Zugriff auf Daten mehr erforderlich.Ausschließlich die Patientenverwaltung darf zum Zwecke einer Wiederaufnahme desPatienten auf erforderliche Daten zugreifen. [TechOrgFrd]

Weitere Informationen findet der interessierte Leser z.B. in [DsKh], [PatdsKh],[TechOrgFrd] und [ZPatdKh].

Page 35: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 3 ORBAC-ZUGRIFFSKONTROLLPOLITIK

35

Kapitel 3 ORBAC-ZUGRIFFS-KONTROLL-POLITIK

3.1 OrBAC-ModellOrBAC steht für Organization Based Access Control und ist ein Zugriffskontroll-

modell zur Modellierung einer Zugriffskontrollpolitik. Die Autoren von OrBAC sindAnas Abou El Kalam, Rania El Baida, Philippe Balbiani, Salem Benferhat, FrédéricCuppens, Yves Deswarte, Alexandre Miège, Claire Saurel und Gilles Trouessin. Siebeschreiben ihr OrBAC-Modell ausführlich in [OrBAC]. Im Nachfolgepaper[AdOrBAC] von Frédéric Cuppens und Alexandre Miège befindet sich unter anderemeine kurze Zusammenfassung von OrBAC. Außerdem werden dort kleinere Überarbei-tungen an OrBAC vorgenommen.

Systeme, bei denen der Zugriff von Personen und Prozessen auf gemeinsameRessourcen in einer differenzierten Form stattfinden soll, benötigen genaue, saubereund wohldefinierte Beschreibungen, welche Zugriffe erlaubt sind und welche nicht. Umsolche genauen, sauberen und wohldefinierten Beschreibungen anfertigen zu können, istwiederum erst einmal ein Beschreibungsmodell nötig, das einen Rahmen liefert, mitdessen Hilfe ebensolche Beschreibungen formuliert werden können. Solche Beschrei-bungsmodelle sind Zugriffskontrollmodelle. Mit einem Zugriffskontrollmodell kann einUmfeld und eine darin geltende Zugriffskontrollpolitik formal beschrieben werden.Eine Zugriffskontrollpolitik besteht aus Erlaubnissen, kann aber auch je nach ModellVerbote und Verpflichtungen umfassen.

Obwohl mittels einer Zugriffskontrollpolitik letztendlich darüber entschieden werdensoll, ob bestimmte Subjekte bestimmte Aktionen auf bestimmten Objekten ausführenkönnen, ist es nicht sinnvoll die Erlaubnisse der Zugriffskontrollpolitik direkt überSubjekte, Aktionen und Objekte zu definieren. Stattdessen wird z.B. in RBAC (RoleBased Access Control) das Konzept der Rolle verwendet, mit dessen Hilfe eineZugriffskontrollpolitik formuliert werden kann, die flexibler und einfacher zuhandhaben ist. Erlaubnisse werden mit Hilfe von diesem Konzept nicht einzelnenSubjekten zugeordnet, sondern Rollen, die von den Subjekten gespielt werden können.Veränderungen wirken sich auf alle Rolleninhaber aus und müssen im Gegensatz zu derVorgehensweise ohne Rollenkonzept nicht bei jedem einzelnen Subjekt vorgenommenwerden.

In OrBAC gibt es neben dem Rollenkonzept für Subjekte entsprechende Konzepte fürAktionen und Objekte, bei denen die Aktionen bzw. Objekte in einem allgemeineren

Page 36: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 3 ORBAC-ZUGRIFFSKONTROLLPOLITIK

36

Zusammenhang betrachtet werden. Aktionen können als zu Tätigkeiten gehörendangesehen werden und Objekte können unter Sichten verwendet werden. Die neueingeführten Konzepte heißen dementsprechend Tätigkeit und Sicht. Zusätzlich ist es inOrBAC möglich, Kontexte zu definieren. Kontexte können zwischen Subjekten,Aktionen und Objekten bestehen und beschreiben gewisse Umstände, die erfüllt seinmüssen, damit eine Erlaubnis erteilt wird.

Das zentrale Konzept im OrBAC-Modell ist allerdings, wie sich aus dem Namen desModells unschwer erkennen lässt, das Konzept der Organisation. Die Beschreibungendes Umfeldes und der Zugriffskontrollpolitik sind in OrBAC immer an Organisationengebunden.

In OrBAC besteht eine Zugriffskontrollpolitik aus einer Menge von Erlaubnissen,wobei jede einzelne davon besagt, dass eine Organisation einer Rolle die Erlaubniserteilt, eine Tätigkeit auf einer Sicht in einem Kontext auszuüben.

Im Folgenden werden die einzelnen Komponenten des OrBAC-Modells vorgestellt,mit dessen Hilfe ein Umfeld beschrieben und eine darin geltende Zugriffskontrollpoltikformuliert werden können.

3.2 Die Entitäten des OrBAC-ModellsIm OrBAC-Modell gibt es acht Entitäten und zwei Ebenen, denen die Entitäten

angehören können. Einerseits gibt es die allgemeine Ebene und andererseits gibt es diekonkrete Ebene.

3.2.1 Entitäten der konkreten Ebene

3.2.1.1 Subject

Ein Subjekt ist ein menschlicher oder technischer Handlungsträger oder eineOrganisation.

3.2.1.1.1 Beispiele für Instanzen

• „Brinkmann“

• „Chirurgie“

3.2.1.2 Object

Ein Objekt ist im OrBAC-Modell vorrangig ein nicht-menschliches Objekt, wie z.B.ein Dokument oder eine E-Mail.

3.2.1.2.1 Beispiele für Instanzen

• „Befunddokument_1“

• „Röntgenaufnahme_0994“

Page 37: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 3 ORBAC-ZUGRIFFSKONTROLLPOLITIK

37

3.2.1.3 Action

Eine Aktion ist im OrBAC-Modell vorrangig eine Handlung, welche von einemProgramm angeboten wird, das auf einem Computer läuft.

3.2.1.3.1 Beispiele für Instanzen

• „Befunddokument_erzeugen“

• „Befunddokument_bearbeiten“

3.2.2 Entitäten der allgemeinen Ebene

3.2.2.1 Role

Rollen dienen der Gruppierung von Subjekten anhand von verschiedenen Merkmalen,wie z.B. der Berufsbezeichnung oder den übertragenen Aufgaben und Verantwortlich-keiten. Sie bestimmen maßgeblich die Erlaubnisse von Subjekten, die die Rolle spielen.Subjekte können mehrere Rolle innehaben.

3.2.2.1.1 Beispiele für Instanzen

• „Arzt“

• „Pflegekraft“

3.2.2.2 View

Sichten dienen der Gruppierung von Objekten. Objekte mit gemeinsamen Merkmalenwerden unter einer gemeinsamen Sicht verwendet. Ein und dasselbe Objekt kann untermehreren Sichten verwendet werden.

3.2.2.2.1 Beispiele für Instanzen

• „Stammdaten“

• „Befund“

3.2.2.3 Activity

Eine Tätigkeit ist eine Aktivität, die von einem Rolleninhaber ausgeübt wird. Sie kannmehrere zugehörige Aktionen haben und eine Aktion kann mehreren Tätigkeitenangehören.

3.2.2.3.1 Beispiele für Instanzen

• „Befund_erzeugen“

• „Befund_bearbeiten“

Page 38: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 3 ORBAC-ZUGRIFFSKONTROLLPOLITIK

38

3.2.3 Weitere Entitäten

3.2.3.1 Organization

Eine Organisation ist ein aus menschlichen und technischen Handlungsträgernbestehendes Gebilde, welches dauerhaft ein Ziel verfolgt.

Die Entität Organization spielt im OrBAC-Modell eine zentrale Rolle.

3.2.3.1.1 Beispiele für Instanzen

• „Schwarzwaldklinik“

• „Chirurgie“

3.2.3.2 Context

Ein Kontext beschreibt gewisse Umstände und wird benötigt, um sagen zu können,wann eine Organisation einer Rolle die Erlaubnis erteilt, eine Tätigkeit auf einer Sichtauszuüben.

3.2.3.2.1 Beispiele für Instanzen

• „Kontext_1“

• Ein Beispiel zur Definition eines Kontextes kommt im Abschnitt 3.3.4 bei derBeschreibung der Relation Define.

3.2.4 Attribute von Entitäten

Im OrBAC-Modell können jeder Entität mehrere Attribute zugeordnet werden.Attribute in OrBAC werden durch Funktionen repräsentiert, welche Instanzen vonEntitäten Werte von Attributen zuordnen.

3.2.4.1 Beispiel

Wenn s eine Instanz der Entität Subject ist, dann repräsentiert name(s) den Namenvon s.

3.2.5 Mengen von Instanzen von Entitäten

Für jede Entität im OrBAC-Modell wird eine Menge definiert, welche die jeweiligenInstanzen der Entiät beinhaltet.

Page 39: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 3 ORBAC-ZUGRIFFSKONTROLLPOLITIK

39

Menge: Beschreibung:S Beinhaltet Instanzen der Entität SubjectO Beinhaltet Instanzen der Entität ObjectA Beinhaltet Instanzen der Entität ActionR Beinhaltet Instanzen der Entität RoleV Beinhaltet Instanzen der Entität Viewà Beinhaltet Instanzen der Entität ActivityOrg Beinhaltet Instanzen der Entität OrganizationC Beinhaltet Instanzen der Entität Context

3.3 Die Relationen des OrBAC-ModellsIm OrBAC-Modell gibt es fünf Relationen, die jeweils Beziehungen zwischen den

Entitäten ausdrücken. Falls gewünscht, können noch Relationen für Verbote undVerpflichtungen hinzugenommen werden.

3.3.1 Empower

Die Relation Empower dient zur Beschreibung des Umfeldes der Organisation. Sieverbindet die konkrete Ebene der Subjekte mit der allgemeinen Ebene der Rollen.

3.3.1.1 Definition

Empower ist eine Relation zwischen den Mengen

Org, S, R

mit Elementen in

Org × S × R.

Wenn org ∈ Org eine Organisation, s ∈ S ein Subjekt und r ∈ R eine Rolle ist, dannbedeutet Empower(org, s, r), dass die Organisation org das Subjekt s ermächtigt, dieRolle r zu spielen.

3.3.1.2 Beispiel

Empower(Schwarzwaldklinik, Brinkmann, Arzt)

„In der Schwarzwaldklinik wird Brinkmann ermächtigt, die Rolle Arzt zu spielen.“

3.3.2 Consider

Die Relation Consider dient zur Beschreibung des Umfeldes der Organisation. Sieverbindet die konkrete Ebene der Aktionen mit der allgemeinen Ebene der Tätigkeiten.

Page 40: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 3 ORBAC-ZUGRIFFSKONTROLLPOLITIK

40

3.3.2.1 Definition

Consider ist eine Relation zwischen den Mengen

Org, A, Ã

mit Elementen in

Org × A × Ã.

Wenn org ∈ Org eine Organisation, a ∈ A eine Aktion und ã ∈ Ã eine Tätigkeit ist,dann bedeutet Consider(org, a, ã), dass die Organisation org die Aktion a als zu derTätigkeit ã gehörend ansieht.

3.3.2.2 Beispiel

Consider(Schwarzwaldklinik, Befunddokument_erzeugen, Befund_erzeugen)

„In der Schwarzwaldklinik wird die Computeraktion ‚Befunddokument_erzeugen‘ alszu der Tätigkeit ‚Befund_erzeugen‘ gehörend angesehen.“

3.3.3 Use

Die Relation Use dient zur Beschreibung des Umfeldes der Organisation. Sieverbindet die konkrete Ebene der Objekte mit der allgemeinen Ebene der Sichten.

3.3.3.1 Definition

Use ist eine Relation zwischen den Mengen

Org, O, V

mit Elementen in

Org × O × V.

Wenn org ∈ Org eine Organisation, o ∈ O ein Objekt und v ∈ V eine Sicht ist, dannbedeutet Use(org, o, v), dass die Organisation org das Objekt o unter der Sicht vverwendet.

3.3.3.2 Beispiel

Use(Schwarzwaldklinik, Befunddokument_1, Befund)

„In der Schwarzwaldklinik wird das Objekt ‚Befunddokument_1‘ unter der Sicht‚Befund‘ verwendet.“

3.3.4 Define

Die Relation Define dient der Definition von Kontexten (Zusammenhängen) fürElemente der konkreten Ebene.

Page 41: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 3 ORBAC-ZUGRIFFSKONTROLLPOLITIK

41

3.3.4.1 Definition

Define ist eine Relation zwischen den Mengen

Org, S, A, O, C

mit Elementen in

Org × S × A × O × C.

Wenn org ∈ Org eine Organisation, s ∈ S ein Subjekt, a ∈ A eine Aktion, o ∈ O einObjekt und c ∈ C ein Kontext ist, dann bedeutet Define(org, s, a, o, c), dass innerhalbder Organisation org der Kontext c zwischen dem Subjekt s, der Aktion a und demObjekt o besteht.

3.3.4.2 Beispiel

In OrBAC wird das Bestehen von Kontexten durch logische Ausdrücke definiert. EinBeispiel dafür ist der folgende Ausdruck:

∀ s ∈ S, ∀ a ∈ A, ∀ o ∈ O,Define(Schwarzwaldklinik, s, a, o, Kontext_1) ↔ Belegt(o) = false

„In der Schwarzwaldklinik besteht der Kontext ‚Kontext_1‘ zwischen s, a, o genaudann, wenn das Objekt o nicht belegt ist.“

3.3.4.3 Default-Kontext

In OrBAC wird ein Default-Kontext definiert, der unabhängig von den Umständenimmer besteht.

∀ org ∈ Org, ∀ s ∈ S, ∀ a ∈ A, ∀ o ∈ O,Define(org, s, a, o, Default)

3.3.4.4 Konjunktion, Disjunktion und Negation

In OrBAC gibt es desweiteren konjunktive, disjunktive und negative Kontexte, diewie folgt definiert sind:

∀ org ∈ Org, ∀ s ∈ S, ∀ a ∈ A, ∀ o ∈ O, ∀ c1, c2 ∈ C,(Define(org, s, a, o, c1 & c2) ↔ Define(org, s, a, o, c1) ∧ Define(org, s, a, o, c2))

∀ org ∈ Org, ∀ s ∈ S, ∀ a ∈ A, ∀ o ∈ O, ∀ c1, c2 ∈ C,(Define(org, s, a, o, c1 ⊕ c2) ↔ Define(org, s, a, o, c1) ∨ Define(org, s, a, o, c2))

∀ org ∈ Org, ∀ s ∈ S, ∀ a ∈ A, ∀ o ∈ O, ∀ c ∈ C,(Define(org, s, a, o, ¬c) ↔ ¬Define(org, s, a, o, c)

Page 42: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 3 ORBAC-ZUGRIFFSKONTROLLPOLITIK

42

3.3.5 Permission

Die Relation Permission dient der Bestimmung von Erlaubnissen für Elemente derallgemeinen Ebene für gegebene Kontexte.

Im OrBAC-Modell besteht eine Zugriffskontrollpolitik aus einer Menge vonErlaubnissen.

3.3.5.1 Definition

Permission ist eine Relation zwischen den Mengen

Org, R, Ã, V, C

mit Elementen in

Org × R × Ã × V × C.

Wenn org ∈ Org eine Organisation, r ∈ R eine Rolle, ã ∈ Ã eine Tätigkeit, v ∈ Veine Sicht und c ∈ C ein Kontext ist, dann bedeutet Permission(org, r, ã, v, c), dassdie Organisation org der Rolle r die Erlaubnis erteilt, die Tätigkeit ã auf der Sicht v inKontext c auszuüben.

3.3.5.2 Beispiel

Permission(Schwarzwaldklinik, Arzt, Befund_erzeugen, Befund, Kontext_1)

„In der Schwarzwaldklinik wird Ärzten die Erlaubnis erteilt, Befunde im Kontext‚Kontext_1‘ zu erzeugen.“

3.3.6 Is_permitted

Die Relation Is_permitted dient der Bestimmung von Erlaubnissen für Elemente derkonkreten Ebene.

Page 43: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 3 ORBAC-ZUGRIFFSKONTROLLPOLITIK

43

3.3.6.1 Definition

Is_permitted ist eine Relation zwischen den Mengen

S, A, O

mit Elementen in

S × A × O

Wenn s ∈ S ein Subjekt, a ∈ A eine Aktion und o ∈ O ein Objekt ist, dann bedeutetIs_permitted(s, a, o), dass das Subjekt s die Aktion a auf dem Objekt o durchführendarf.

3.3.6.2 Regel zur Herleitung von konkretenErlaubnissen

∀ org ∈ Org, ∀ s ∈ S, ∀ a ∈ A, ∀ o ∈ O, ∀ r ∈ R, ∀ v ∈ V, ∀ ã ∈ Ã, ∀ c ∈ C,Permission(org, r, ã, v, c) ∧ Empower(org, s, r) ∧ Consider(org, a, ã) ∧Use(org, o, v) ∧ Define(org, s, a, o, c) → Is_permitted(s, a, o)

3.4 Zugr iffskontrollpolitik für einBeispielkrankenhaus

Im Rahmen der Diplomarbeit wird im Folgenden eine Zugriffskontrollpolitik für einrepräsentatives Beispielkrankenhaus entwickelt, in welche die Erkenntnisse aus derKrankenhausanalyse aus Kapitel 2 einfließen. Weil die Entwicklung einer Zugriffs-kontrollpolitik eine sehr komplexe Angelegenheit ist, konzentrieren wir uns auf zentraleEinrichtungen eines Krankenhauses und auf zentrale, sensible Dokumente derelektronischen Krankenakte.

Das Beispielkrankenhaus, das betrachtet wird, besteht aus zwei Fachabteilungen, derChirurgie und der Radiologie, sowie aus einer Abteilung der Verwaltung, der Patienten-verwaltung. Die Angestellten im Beispielkrankenhaus sind Ärzte, Pflegekräfte undVerwaltungsmitarbeiter. Die Dokumente der elektronischen Krankenakte, die betrachtetwerden, sind Stammdatendokumente, Behandlungsfalldokumente, Zuordnungs-dokumente, Aufenthaltsdokumente und Befunddokumente.

Diagnosedokumente und Therapiedokumente, die wie Befunddokumentemedizinische Behandlungsfalldokumente sind, werden hier nicht betrachtet, könntenaber analog zu den Befunddokumenten in die Zugriffskontrollpolitik integriert werden.Wie man leicht erkennen wird, sind die Erlaubnisse in den beiden FachabteilungenChirurgie und Radiologie für Ärzte identisch. In der Radiologie, die nur aus einerdiagnostischen Leistungsstelle besteht, gibt es im Gegensatz zur Chirurgie allerdingskeine Pflegekräfte. Allgemein könnten die Erlaubnisse für eine andere Fachabteilunganalog zu den Erlaubnissen der Fachabteilung Chirurgie gebildet werden.

Page 44: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 3 ORBAC-ZUGRIFFSKONTROLLPOLITIK

44

3.4.1 Mengen

3.4.1.1 Die Menge „ Org“

Die Menge Org enthält die verschiedenen Einrichtungen des Beispielkrankenhauses.Sie enthält zum einen die beiden Fachabteilungen ‚Chirurgie‘ und ‚Radiologie‘ und zumanderen eine Abteilung der Krankenhausverwaltung, nämlich die‚Patientenverwaltung‘.

Die genaue Definition der Menge Org befindet sich im Anhang A.1.1.

3.4.1.2 Die Menge „ S“

Die Menge S enthält verschiedene Angestellte des Beispielkrankenhauses. Unteranderem sind in ihr die Personen ‚Brinkmann‘ und ‚Mueller‘ enthalten.

Die genaue Definition der Menge S befindet sich im Anhang A.1.2.

3.4.1.3 Die Menge „ A“

Die Menge A enthält verschiedene Aktionen, die sich jeweils auf eine bestimmte Artvon Dokumenten der elektronischen Krankenakte beziehen. Für jede Art gibt esentsprechende Aktionen zum Erzeugen, Anzeigen, Bearbeiten und Löschen vonDokumenten. Für Befunde gibt es zusätzlich Aktionen zum Freigeben und Sperren vonBefunddokumenten. Unter anderem enthält diese Menge zum Beispiel die Aktionen‚Stammdatendokument_erzeugen‘ und ‚Befunddokument_freigeben‘.

Die genaue Definition der Menge A befindet sich im Anhang A.1.3.

3.4.1.4 Die Menge „ O“

Die Menge O enthält verschiedene Dokumente, die im Beispielkrankenhausverwendet werden können und dann zu elektronischen Krankenakten gehören. Unteranderem enthält diese Menge zum Beispiel die Dokumente ‚Stammdatendokument_1‘und ‚Befunddokument_2‘ .

Die genaue Definition der Menge O befindet sich im Anhang A.1.4.

3.4.1.5 Die Menge „ R“

Die Menge R enthält verschiedene Rollen, die innerhalb der Einrichtungen desBeispielkrankenhauses von den Angestellten gespielt werden. Beispiele für Elementedieser Menge sind ‚Arzt‘ und ‚Verwaltungsmitarbeiter‘ .

Die genaue Definition der Menge R befindet sich im Anhang A.1.5.

Page 45: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 3 ORBAC-ZUGRIFFSKONTROLLPOLITIK

45

3.4.1.6 Die Menge „ Ó

Die Menge à enthält verschiedene Tätigkeiten, die im Beispielkrankenhaus ausgeübtwerden können. Die Tätigkeiten ‚Aufenthalt_beginnen‘, ‚Aufenthalt_ändern‘ und‚Aufenthalt_beenden‘ beziehen sich jeweils auf den Krankenhausaufenthalt einesPatienten. Ein Krankenhausaufenthalt eines Patienten beginnt von der administrativenAufnahme (Patientenverwaltung) aus und findet in den Fachabteilungen desKrankenhauses statt. Geändert wird ein Aufenthalt, wenn ein Patient in eine andereFachabteilung geschickt wird. Weitere Beispiele für Elemente dieser Menge sind‚Stammdaten_erzeugen‘ und ‚Befund_freigeben‘.

Die genaue Definition der Menge à befindet sich im Anhang A.1.6.

3.4.1.7 Die Menge „ V“

Die Menge V enthält verschiedene Sichten, unter denen Dokumente verwendetwerden können. Befunddokumente, die in einer bestimmten Einrichtung erzeugt bzw.nicht erzeugt werden können, werden in dieser Einrichtung unter der Sicht‚ Interner_Befund‘ bzw. ‚Externer_Befund‘ verwendet. Weitere Beispiele für Elementedieser Menge sind ‚Stammdaten‘ und ‚Behandlungsfalldaten‘ .

Die genaue Definition der Menge V befindet sich im Anhang A.1.7.

3.4.1.8 Die Menge „ C“

Die Menge C enthält verschiedene Kontexte, die jeweils in den Einrichtungen desBeispielkrankenhauses bestehen können. Im Folgenden werden alle Kontexte dieserMenge informell beschrieben. Dabei wird zu jedem Kontext der inverse Kontext inKlammern abgegeben. Dieser ist jeweils genau dann gegeben, wenn der entsprechendeeigentliche Kontext nicht gegeben ist.

Stammdatendokument_frei (Stammdatendokument_belegt)

Dieser Kontext besteht genau dann, wenn ein gegebenes Stammdatendokumentfrei ist.

Behandlungsfalldokument_frei (Behandlungsfalldokument_belegt)

Dieser Kontext besteht genau dann, wenn ein gegebenesBehandlungsfalldokument frei ist.

Zuordnungsdokument_frei (Zuordnungsdokument_belegt)

Dieser Kontext besteht genau dann, wenn ein gegebenes Zuordnungsdokumentfrei ist.

Aufenthaltsdokument_frei (Aufenthaltsdokument_belegt)

Dieser Kontext besteht genau dann, wenn ein gegebenes Aufenthaltsdokumentfrei ist.

Befunddokument_frei (Befunddokument_belegt)

Dieser Kontext besteht genau dann, wenn ein gegebenes Befunddokument freiist.

Page 46: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 3 ORBAC-ZUGRIFFSKONTROLLPOLITIK

46

PIN_frei (PIN_belegt)

Dieser Kontext besteht genau dann, wenn es zu einer gegebenen PIN keinStammdatendokument mit derselben PIN gibt.

FNr_frei (FNr_belegt)

Dieser Kontext besteht genau dann, wenn es zu einer gegebenen FNr keinBehandlungsfalldokument mit derselben FNr gibt.

Befunddokument_freigegeben (Befunddokument_gesperrt)

Dieser Kontext besteht genau dann, wenn ein gegebenes Befunddokumentfreigegeben ist.

Ort stimmt ueberein (Ort_stimmt_nicht_ueberein)

Dieser Kontext besteht genau dann, wenn die in einem gegebenenAufenthaltsdokument enthaltene Organisation mit einer gegebenenOrganisation übereinstimmt.

Zu_betreffender_PIN_existieren_andere_Dokumente(Zu_betreffender_PIN_existieren_keine_anderen_Dokumente)

Dieser Kontext besteht genau dann, wenn es zu einer PIN, die von einemgegebenen Personendatendokument stammt, andere Personendatendokumenteoder Zuordnungsdokumente mit derselben PIN gibt.

Zu_betreffender_FNr_existieren_andere_Dokumente(Zu_betreffender_FNr_existieren_keine_anderen_Dokumente)

Dieser Kontext besteht genau dann, wenn es zu einer FNr, die von einemgegebenen Behandlungsfalldatendokument stammt, andereBehandlungsfalldatendokumente oder Zuordnungsdokumente mit derselbenFNr gibt.

Zu_FNr_exisitiert_ein_Zuordnungsdokument(Zu_FNr_exisitiert_kein_Zuordnungsdokument)

Dieser Kontext besteht genau dann, wenn es zu einer gegebenen FNr einZuordnungsdokument mit derselben FNr gibt.

Zu_FNr_exisitiert_ein_Aufenthaltsdokument(Zu_FNr_exisitiert_kein_Aufenthaltsdokument)

Dieser Kontext besteht genau dann, wenn es zu einer gegebenen FNr einAufenthaltsdokument mit derselben FNr gibt.

Zu_betreffender_FNr_existiert_ein_Aufenthaltsdokument(Zu_betreffender_FNr_existiert_kein_Aufenthaltsdokument)

Dieser Kontext besteht genau dann, wenn es zu einer FNr, die von einemgegebenen Behandlungsfalldokument stammt, ein Aufenthaltsdokument mitderselben FNr gibt.

Zu_FNr_existiert_ein_Aufenthaltsdokument_mit_uebereinstimmendem_Ort(Zu_FNr_existiert_kein_Aufenthaltsdokument_mit_uebereinstimmendem_Ort)

Dieser Kontext besteht genau dann, wenn es zu einer gegebenen FNr einAufenthaltsdokument mit derselben FNr gibt, bei dem die enthalteneOrganisation mit einer gegebenen Organisation übereinstimmt.

Page 47: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 3 ORBAC-ZUGRIFFSKONTROLLPOLITIK

47

Zu_betreffender_FNr_existiert_ein_Aufenthaltsdokument_mit_uebereinstimmendem_Ort(Zu_betreffender_FNr_existiert_kein_Aufenthaltsdokument_mit_uebereinstimmendem_Ort)

Dieser Kontext besteht genau dann, wenn es zu einer FNr, die von einemgegebenen Behandlungsfalldokument stammt, ein Aufenthaltsdokument mitderselben FNr gibt, bei dem die enthaltene Organisation mit einer gegebenenOrganisation übereinstimmt.

Zu_einer_der_zugeordneten_FNrn_existiert_ein_Aufenthaltsdokument_mit_uebereinstimmendem_Ort(Zu_keiner_der_zugeordneten_FNrn_existiert_ein_Aufenthaltsdokument_mit_uebereinstimmendem_Ort)

Dieser Kontext besteht genau dann, wenn es zu einer Menge von FNrn, diemittels der Zuordnungsdokumente und einer PIN ermittelt wurde, einAufenthaltsdokument mit einer gleichen FNr gibt, bei dem die enthalteneOrganisation mit einer gegebenen Organisation übereinstimmt.

Die PIN stammt dabei von einem gegebenen Stammdatendokument oder voneinem Zuordnungsdokument, dessen PIN einer FNr zugeordnet ist, die gleichmit der eines gegebenen Befunddokumentes ist.

Die genaue Definition der Menge C befindet sich im Anhang A.1.8.

3.4.2 Relationen

3.4.2.1 Die Relation „ Empower“

Mittels der Relation Empower wird festgelegt, in welcher Einrichtung des Beispiel-krankenhauses welcher Angestellte welche Rolle spielt.

• In den Fachabteilungen spielen Angestellte jeweils die Rolle Arzt oderPflegekraft.

• In der Patientenverwaltung spielen Angestellte jeweils die Rolle Verwaltungs-mitarbeiter.

Die genaue Angabe der Instanzen der Relation Empower befindet sich im AnhangA.2.1.

3.4.2.2 Die Relation „ Consider“

Mittels der Relation Consider wird festgelegt, in welcher Einrichtung des Beispiel-krankenhauses welche Aktion zu welcher Tätigkeit gehört.

• In den Fachabteilungen werden bestimmte, jeweils dort benötigte Aktionen, diesich auf Stammdatendokumente, Behandlungsfalldokumente,Aufenthaltsdokumente und Befunddokumente beziehen, entsprechendenTätigkeiten zugewiesen.

Page 48: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 3 ORBAC-ZUGRIFFSKONTROLLPOLITIK

48

• In der Patientenverwaltung werden bestimmte, dort benötigte Aktionen, die sichauf Stammdatendokumente, Behandlungsfalldokumente, Zuordnungsdokumente,Aufenthaltsdokumente und Befunddokumente beziehen, entsprechendenTätigkeiten zugewiesen.

Die genaue Angabe der Instanzen der Relation Consider befindet sich im AnhangA.2.2.

3.4.2.3 Die Relation „ Use“

Mittels der Relation Use wird festgelegt, in welcher Einrichtung des Beispiel-krankenhauses welches Dokument unter welcher Sicht verwendet werden.

• In den Fachabteilungen werden Stammdatendokumente,Behandlungsfalldokumente und Aufenthaltsdokumente unter entsprechendenSichten verwendet. Alle Befunddokumente, die in einer Fachabteilung unter derSicht ‚ Interner_Befund‘ verwendet werden, werden in allen anderenFachabteilungen unter der Sicht ‚Externer_Befund‘ verwendet.

• In der Patientenverwaltung werden Stammdatendokumente,Behandlungsfalldokumente, Zuordnungsdokumente und Aufenthaltsdokumenteunter entsprechenden Sichten verwendet. Alle Befunddokumente werden hierunter der Sicht ‚Externer_Befund‘ verwendet.

Die genaue Angabe der Instanzen der Relation Use befindet sich im Anhang A.2.3.

3.4.2.4 Die Relation „ Define“

Mittels der Relation Define wird festgelegt, in welcher Einrichtung des Beispiel-krankenhauses welcher Kontext zwischen welchem Subjekt, welcher Aktion undwelchem Objekt besteht.

Weil in einem dynamischen System, wie einem Krankenhaus, Kontexte nichtkonstant bestehen bleiben, sondern im Zusammenhang von Veränderungen malbestehen und mal nicht bestehen, können die Instanzen der Relation Define nichtallgemein gültig angegeben werden. Eine Angabe von Instanzen wäre nur für einentemporären Zustand des Systems Krankenhaus möglich.

Die Angabe von logischen Ausdrücken zur Definition, wann ein Kontext besteht bzw.nicht besteht, ist eine aufwendige und umfangreiche Angelegenheit. Weil dieBerechnung der Instanzen der Relation Define in der Preamble des Krankenhaus-APAsin Anhang C.2 im Detail nachvollzogen werden kann, wird an dieser Stelle auf dieAngabe von logischen Ausdrücken verzichtet. In der Preamble gibt es für jeden Kontexteine entsprechende Funktion, die berechnet, ob der Kontext besteht bzw. nicht besteht.

3.4.2.5 Die Relation „ Permission“

Mittels der Relation Permission wird festgelegt, in welcher Einrichtung des Beispiel-krankenhauses welche Rolle welche Tätigkeit auf welche Sicht in welchem Kontextausüben darf.

Page 49: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 3 ORBAC-ZUGRIFFSKONTROLLPOLITIK

49

Im Wesentlichen werden durch die Permissions die nachfolgenden Sachverhalteausgedrückt. Die Reihenfolge der Sachverhalte entspricht dabei der Reihenfolge derPermissions, die im Anhang aufgeführt werden. Alles, was nicht durch die Permissionserlaubt wird, ist im Beispielkrankenhaus verboten. Die Permissions sind so formuliert,dass sie den in Abschnitt 2.5.2.1 aufgeführten zugrunde liegenden Prinzipien gerechtwerden.

• Verwaltungsmitarbeiter der Patientenverwaltung können die Stammdaten fürPatienten erzeugen, bzw. von Patienten sich anzeigen lassen und bearbeiten.

• Verwaltungsmitarbeiter der Patientenverwaltung können die Stammdaten vonPatienten löschen, wenn dem jeweiligen Patienten keine sonstigen Dokumentezugeordnet sind.

• Verwaltungsmitarbeiter der Patientenverwaltung können Behandlungsfälle fürPatienten erzeugen, bzw. von Patienten sich anzeigen lassen und bearbeiten.

• Verwaltungsmitarbeiter der Patientenverwaltung können Behandlungsfälle vonPatienten löschen, wenn dem jeweiligen Behandlungsfall keine sonstigenDokumente zugeordnet sind.

• Verwaltungsmitarbeiter der Patientenverwaltung können Zuordnungen vonBehandlungsfällen zu Patienten erzeugen, sich anzeigen lassen und löschen.

• Verwaltungsmitarbeiter der Patientenverwaltung können den Aufenthalt einesPatienten beginnen.

• Verwaltungsmitarbeiter der Patientenverwaltung können den Aufenthaltsort einesPatienten überprüfen.

• Verwaltungsmitarbeiter der Patientenverwaltung können den Aufenthalt einesPatienten beenden.

• Verwaltungsmitarbeiter der Patientenverwaltung können Befunde von Patientenlöschen, wenn der jeweilige betreffende Patient sich zur Zeit nicht imKrankenhaus aufhält und behandelt wird.

• Wenn ein Patient in einer bestimmten Fachabteilung ist, dann können dortigeÄrzte sich die Stammdaten des Patienten anzeigen lassen.

• Wenn ein Patient in einer bestimmten Fachabteilung ist, dann können dortigeÄrzte sich den aktuellen Behandlungsfall des Patienten anzeigen lassen.

• Wenn ein Patient in einer bestimmten Fachabteilung ist, dann können dortigeÄrzte den Aufenthaltsort des Patienten prüfen und ändern.

• Wenn ein Patient in einer bestimmten Fachabteilung ist, dann können dortigeÄrzte Befunde erzeugen, die dieser Fachabteilung zugeordnet sind und denaktuellen Behandlungsfall des Patienten betreffen.

• Wenn ein Patient in einer bestimmten Fachabteilung ist, dann können dortigeÄrzte sich alle Befunde von dieser Fachabteilung anzeigen lassen, die denPatienten betreffen.

• Wenn ein Patient in einer bestimmten Fachabteilung ist, dann können dortigeÄrzte sich alle Befunde von anderen Fachabteilungen anzeigen lassen, die denaktuellen Behandlungsfall des Patienten betreffen und freigegeben sind.

Page 50: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 3 ORBAC-ZUGRIFFSKONTROLLPOLITIK

50

• Wenn ein Patient in einer bestimmten Fachabteilung ist, dann können dortigeÄrzte alle Befunde von dieser Fachabteilung bearbeiten, die den aktuellenBehandlungsfall des Patienten betreffen.

• In einer Fachabteilung können dortige Ärzte alle Befunde freigeben und sperren,die der Fachabteilung zugeordnet sind.

• Wenn ein Patient in einer bestimmten Fachabteilung ist, dann können dortigePflegekräfte sich den aktuellen Behandlungsfall des Patienten anzeigen lassen.

• Wenn ein Patient in einer bestimmten Fachabteilung ist, dann können dortigePflegekräfte sich alle Befunde von dieser Fachabteilung anzeigen lassen, die denaktuellen Behandlungsfall des Patienten betreffen.

Die genaue Angabe der Instanzen der Relation Permission befindet sich im AnhangA.2.4.

3.4.2.6 Die Relation „ Is_permitted“

Für jeden temporären Zustand des Systems Krankenhaus werden die Instanzen derRelation Is_permitted mit der Regel in Abschnitt 3.3.6.2 berechnet.

Page 51: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 4 ASYNCHRONE PRODUKTAUTOMATEN

51

Kapitel 4 ASYNCHRONEPRODUKT-AUTOMATEN

Das System Krankenhaus wird im Rahmen dieser Diplomarbeit durch einenasynchronen Produktautomaten (APA) spezifiziert. Auf diesem setzt später die Analysedes Systems Krankenhaus auf. Asynchrone Produktautomaten sind ein sehr allgemeinesKonzept kommunizierender Automaten. [FormEntw] Petrinetze, Produktnetze, etc. sindspezielle APA. [FormEntw]

Ein APA kann als eine Familie von Elementarautomaten betrachtet werden, derenjeweilige Zustandsmenge als Produktmenge strukturiert ist, wobei die einzelnenElementarautomaten durch gemeinsame Komponenten ihrer Zustandsmengen„verklebt“ sind. [FormEntw]

4.1 APA-DefinitionEin asynchroner Produktautomat (APA) besteht aus

• einer Familie von Zustandsmengen (Zs)s∈ ,

• einer Familie von Elementarautomaten (Φt, ∆t)t∈ und

• einer Nachbarschaftsbeziehung N : → ℘( ).

℘(X) bezeichnet dabei die Potenzmenge einer Menge X. und sind Indexmengenmit den Namen der Zustandsmengen und der Elementarautomaten.

Für jeden Elementarautomaten (Φt, ∆t) ist

• Φt sein Alphabet und

• ∆t ⊆ ×s∈N(t) (Zs) × Φt × ×s∈N(t) (Zs) seine Zustandsübergangsrelation.

Zu jedem Element von Φt definiert die Zustandsübergangsrelation ∆t

Zustandsübergänge, die nur die Zustandskomponenten in N(t) ändern.

Die (globalen) Zustände eines APA sind Elemente von ×s∈ (Zs).

Zur Vermeidung pathologischer Fälle wird generell = ∪t∈ (N(t)) und N(t) ≠ ∅ füralle t ∈ vorausgesetzt.

Jeder APA besitzt einen Anfangszustand q0 = (q0s)s∈ ∈ ×s∈ (Zs).

Page 52: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 4 ASYNCHRONE PRODUKTAUTOMATEN

52

Ein APA ist also insgesamt gegeben durch = ((Zs)s∈ , (Φt, ∆t)t∈ , N, q0).

[FormEntw]

4.2 ErreichbarkeitsgraphDas Verhalten eines APA wird durch alle möglichen Folgen von Zustandsübergängen

ausgehend vom Anfangszustand q0 dargestellt.

Die Folge (q0, (t1, a1), q1)(q1, (t2, a2), q2)(q2, (t3, a3), q3)… mit ti ∈ und ai ∈ Φti stellteine mögliche Folge von Aktionen eines APA dar.

Zustandsübergänge (q, (t, a), q') können als beschriftete Kanten eines gerichtetenGraphen angesehen werden, dessen Knoten die Zustände eines APA sind. (q, (t, a), q')ist die Kante, die von q nach q' führt und mit (t, a) beschriftet ist.

Der Teilgraph, der vom Knoten q0 aus erreichbar ist, wird der Erreichbarkeitsgrapheines APA genannt.

4.3 Das SH-Ver ification ToolZur Spezifikation und Analyse von asynchronen Produktautomaten wird im Rahmen

dieser Diplomarbeit das SH-Verification Tool (SHVT) verwendet. Die Abkürzung SHim Namen des Tools steht für Simple Homomorphisms bzw. schlichte Homomorphis-men.

Mit Hilfe des SH-Verification Tools lassen sich asynchrone Produktautomatenerzeugen, darstellen und editieren.

Zu einem gegebenen asynchronen Produktautomaten lässt sich mittels des SH-Verification Tools der Erreichbarkeitsgraph berechnen. Der Erreichbarkeitsgraph stelltdas dynamische Verhalten des durch den APA modellierten Systems dar. Er gibt allemöglichen Aktionsfolgen des Systems wieder.

Bei einem Erreichbarkeitsgraphen handelt es sich um ein Labeled Transition System(LTS). Anhand des Labeled Transition Systems können Eigenschaften des durch denAPA modellierten Systems nachgewiesen werden. In der Regel jedoch ist ein LabeledTransition System zu komplex, als dass Eigenschaften an ihm direkt abgelesen werdenkönnten. Deshalb werden mittels sogenannter schlichter Homomorphismen (vgl.Abschnitt 6.2.6) Abstraktionen des Systemverhaltens betrachtet. Ein abstraktes System-verhalten ist meistens einfacher als das konkrete Systemverhalten, und deshalb könnenSystemeigenschaften an ihm meistens einfacher nachgewiesen werden.

Das SH-Verification Tool stellt verschiedene Funktionen und Werkzeuge zurVerfügung, mit deren Hilfe zum Beispiel der Erreichbarkeitsgraph berechnet werdenkann und Homorphismen definiert und angewendet werden können.

Page 53: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 5 SPEZIFIKATION DES KRANKENHAUS-APA

53

Kapitel 5 SPEZIFIKATIONDESKRANKENHAUS-APA

Ein Krankenhaus kann als ein System betrachtet werden, das während seinesBetriebes ein gewisses Verhalten aufweist. Also kann ein Krankenhaus mittels einesasynchronen Produktautomaten modelliert werden, wobei der Zustand desKrankenhauses in den Zuständen des asynchronen Produktautomaten steckt und dieVeränderungen des Krankenhauses, die während des Betriebes stattfinden, durch dieTransitionen des asynchronen Produktautomaten wiedergegeben werden. Das Verhaltendes Krankenhauses steckt dann im Erreichbarkeitsgraphen des asynchronenProduktautomaten.

Im Folgendem wird das Beispielkrankenhaus, für welches die OrBAC-basierteSicherheitspolitik in 3.4 entwickelt wurde, mit Hilfe eines asynchronen Produkt-automaten, des Krankenhaus-APAs, modelliert. In diesem Beispielkrankenhausmöchten konkrete Subjekte konkrete Aktionen auf konkreten Objekten ausführen.Bevor allerdings ein Subjekt eine Aktion auf einem Objekt ausführen kann, wird mittelsder OrBAC-basierten Sicherheitspolitik überprüft, ob das Subjekt dazu befugt ist.Ausschließlich, wenn es einem Subjekt gestattet ist, eine Aktion auf einem Objektauszuführen, kann auch die Aktion durchgeführt werden.

Die Spezifikation von Sicherheitspolitiken ist ein schwieriger und fehleranfälligerProzess. Mit Hilfe einer Analyse des Erreichbarkeitsgraphen des Krankenhaus-APAskann das Systemverhalten des Beispielkrankenhauses untersucht werden. Es lässt sichdann überprüfen, ob das Verhalten des Beispielkrankenhauses bestimmte Eigenschaftenbezüglich der OrBAC-basierten Sicherheitspolitik erfüllt. Das heißt, es kann anhand desErreichbarkeitsgraphen des Krankenhaus-APAs überprüft werden, ob das Verhalten desBeispielkrankenhauses wirklich dem entspricht, was durch die OrBAC-basierteSicherheitspolitik vorgegeben ist.

Zunächst wird der Permission Checker vorgestellt, der eine Vorstufe desKrankenhaus-APAs ist. Danach folgt der Krankenhaus-APA.

Anmerkung: Da bei einer APA-Spezifikation keine Sonderzeichen verwendetwerden können, wurde das Zeichen à für die Menge von Tätigkeiten durch das ZeichenT ersetzt.

Page 54: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 5 SPEZIFIKATION DES KRANKENHAUS-APA

54

5.1 Permission CheckerDer im Rahmen dieser Diplomarbeit entwickelte Permission Checker ist ein

asynchroner Produktautomat, der eine OrBAC-basierte Sicherheitspolitik widerspiegelt,d.h. mit ihm ist diese Sicherheitspolitik formal modelliert. Die Information, ob konkretein Subjekt eine Aktion auf einem Objekt ausführen kann, kann mit Hilfe desPermission Checkers gewonnen werden.

Der Permission Checker ist eine Vorstufe des später folgenden Krankenhaus-APAs.

5.1.1 Aufgabe

Die Aufgabe des Permission Checkers ist es zu überprüfen, ob ein konkretes Subjekteine konkrete Aktion auf einem konkreten Objekt ausführen kann. Die Entscheidungdarüber wird mittels der OrBAC-basierten Zugriffskontrollpolitik, d.h. anhand derPermissions getroffen.

5.1.2 Formale Spezifikation

Die folgende Abbildung zeigt den Permission Checker.

Page 55: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 5 SPEZIFIKATION DES KRANKENHAUS-APA

55

Abbildung 5 - Permission Checker

Die Zustände ‚Empower‘ , ‚Consider‘ , ‚Use‘ , ‚Define‘ und ‚Permission‘ mit ihrenDomänen entsprechen jeweils den gleichnamigen Relationen des OrBAC-Modells.Jeder dieser Zustände enthält als Initialwert eine Liste von Instanzen der entsprechendenRelation. Die Domänen dieser Zustände sind demgemäß wie folgt definiert:

• ‚Empower‘ hat als Domäne eine Liste von Org×S×R-Tupeln.

• ‚Consider‘ hat als Domäne eine Liste von Org×A×T-Tupeln.

• ‚Use‘ hat als Domäne eine Liste von Org×O×V-Tupeln.

• ‚Define‘ hat als Domäne eine Liste von Org×S×A×O×C-Tupeln.

• ‚Permission‘ hat als Domäne eine Liste von Org×R×T×V×C-Tupeln.

Die beiden weiteren Zustände ‚ request‘ und ‚permittedRequest‘ haben jeweils alsDomäne S×A×O-Tupel. Der Zustand ‚ request‘ enthält als Initialwert ein S×A×O-Tupel(s, a, o), das eine Anfrage darstellt, ob ein konkretes Subjekt s eine konkrete Aktion aauf einem konkreten Objekt o ausführen kann. Der Zustand ‚permittedRequest‘hingegen enthält als Initialwert ein S×A×O-Tupel mit Nullwerten.

Die vollständige Spezifikation des APAs befindet sich im Anhang B.

Page 56: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 5 SPEZIFIKATION DES KRANKENHAUS-APA

56

5.1.3 Arbeitsweise

Die Transition ‚checkRequest‘ schaltet genau dann, wenn die Funktion ‚ isPermitted‘den Wert ‚ true‘ zurückliefert. Als Parameter erhält die Funktion die OrBAC-basierteSicherheitspolitik, d.h. die Belegungen der Zustände ‚Empower‘ , ‚Consider‘ , ‚Use‘ ,‚Define‘ und ‚Permission‘ , sowie eine Anfrage, d.h. die Belegung des Zustandes‚ request‘ .

Wenn die Transition schaltet, dann wird der Anfrage stattgegeben und die Belegungdes Zustandes ‚ request‘ wechselt auf den Zustand ‚permittedRequest‘ . Der Zustand‚ request‘ wird mit einem S×A×O-Tupel mit Nullwerten belegt. Die Belegungen deranderen Zustände bleiben bei einem Schalten der Transition unberührt.

Die Funktion ‚ isPermitted‘ berechnet ihren Rückgabewert wie folgt:

Mittels des S×A×O-Tupels (s, a, o) und den Listen von Org×S×R-Tupeln, Org×A×T-Tupeln, Org×O×V-Tupeln und Org×S×A×O×C-Tupeln werden Listen von Org×R-Tupeln, Org×T-Tupeln, Org×V-Tupeln und Org×C-Tupeln gebildet.

Die neu gebildete Liste der Org×R-Tupel enthält die Tupel (org1, r), für die in derOrg×S×R-Tupel-Liste ein entsprechendes Tupel (org1, s, r) enthalten ist.

Die neu gebildete Liste der Org×T-Tupel enthält die Tupel (org2, t), für die in derOrg×A×T-Tupel-Liste ein entsprechendes Tupel (org2, a, t) enthalten ist.

Die neu gebildete Liste der Org×V-Tupel enthält die Tupel (org3, v), für die in derOrg×O×V-Tupel-Liste ein entsprechendes Tupel (org3, o, v) enthalten ist.

Die neu gebildete Liste der Org×C-Tupel enthält die Tupel (org4, c), für die in derOrg×S×A×O×C-Tupel-Liste ein entsprechendes Tupel (org4, s, a, o, c) enthalten ist.

Man beachte, dass es sich bei s, a und o immer um das s, a und o aus dem Tupel(s, a, o) handelt.

Mittels der gebildeten Listen von Org×R-Tupeln, Org×T-Tupeln, Org×V-Tupeln undOrg×C-Tupeln wird anschließend eine Liste von Org×R×T×V×C-Tupeln gebildet.

Die neu gebildete Liste der Org×R×T×V×C-Tupel enthält die Tupel (org', r', t', v', c'),für diein der Org×R-Tupel-Liste ein entsprechendes Tupel (org', r'),in der Org×T-Tupel-Liste ein entsprechendes Tupel (org', t'),in der Org×V-Tupel-Liste ein entsprechendes Tupel (org', v') undin der Org×C-Tupel-Liste ein entsprechendes Tupel (org', c') enthalten ist.

Die gebildete Org×R×T×V×C-Tupel-Liste enthält sozusagen die Permissions, für diegilt, wenn eine von ihnen gegeben wäre, dann wäre die Anfrage zulässig.

Nun wird die gebildete Liste der Org×R×T×V×C-Tupel mit der Liste derOrg×R×T×V×C-Tupel verglichen, welche die Funktion als Parameter erhalten hat, d.h.mit den Permissions der OrBAC-basierten Zugriffskontrollpolitik.

Ist eines der Tupel aus der gebildeten Org×R×T×V×C-Tupel-Liste in derOrg×R×T×V×C-Tupel-Liste, welche die Funktion als Parameter erhalten hat, enthalten,so ist die Anfrage zulässig und der Wert ‚ true‘ wird zurückgeliefert. Ansonsten wird derWert ‚ false‘ zurückgeliefert.

Die exakte Arbeitsweise der Funktion ‚ isPermitted‘ kann in der Preamble des APAsin Anhang B.2 nachvollzogen werden.

Page 57: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 5 SPEZIFIKATION DES KRANKENHAUS-APA

57

5.2 Krankenhaus-APADer im Rahmen dieser Diplomarbeit entwickelte Krankenhaus-APA ist ein

asynchroner Produktautomat, mit Hilfe dessen das Beispielkrankenhaus modelliertwird. Mit dem zuvor entwickelten Permission Checker konnte lediglich eine einzigeAnfrage überprüft werden. Die Durchführung einer stattgegebenen Aktion und diedamit verbundenen Veränderungen wurden noch nicht mitmodelliert. Bisher war allessehr statisch und es gab praktisch kein Verhalten. Jetzt wird das Beispielkrankenhausals lebendiges System mit entsprechend komplexem Verhalten modelliert.

5.2.1 Aufgabe

Die Aufgabe des Krankenhaus-APAs ist es, das Verhalten des Beispielkrankenhauseszu simulieren. Dazu versucht zu jedem Systemzustand des Beispielkrankenhauses einzufällig gewähltes Subjekt eine zufällig gewählte Aktion auf einem zufällig gewähltenObjekt auszuführen. Die Entscheidung darüber, ob ein konkretes Subjekt eine konkreteAktion auf einem konkreten Objekt ausführen kann, wird mittels der OrBAC-basiertenZugriffskonrollpolitik getroffen.

5.2.2 Formale Spezifikation

Die folgende Abbildung zeigt den Krankenhaus-APA.

Page 58: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 5 SPEZIFIKATION DES KRANKENHAUS-APA

58

Abbildung 6 - K rankenhaus-APA

Page 59: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 5 SPEZIFIKATION DES KRANKENHAUS-APA

59

Die Zustände ‚Stammdatendokumente‘ , ‚Behandlungsfalldokumente‘ ,‚Zuordnungsdokumente‘ , ‚Aufenthaltsdokumente‘ und ‚Befunddokumente‘ mit ihrenDomänen geben jeweils die im Beispielkrankenhaus aktuell existierenden Dokumenteeiner bestimmten Art wieder. Jeder dieser Zustände enthält als Initialwert eine leereListe, das heißt, dass im Startzustand des Beispielkrankenhauses noch kein Dokumentexistiert bzw. erzeugt wurde. Die Domänen dieser Zustände sind wie folgt definiert:

• ‚Stammdatendokumente‘ hat als Domäne eine Liste von O×PINs-Tupeln.

• ‚Behandlungsfalldokumente‘ hat als Domäne eine Liste von O×FNrn-Tupeln.

• ‚Zuordnungsdokumente‘ hat als Domäne eine Liste von O×PINs×FNrn-Tupeln.

• ‚Aufenthaltsdokumente‘ hat als Domäne eine Liste von O×FNrn×Org-Tupeln.

• ‚Befunddokumente‘ hat als Domäne eine Liste von O×FNrn×Status-Tupeln.

Die Menge ‚PINs‘ bzw. ‚FNrn‘ enthält dabei die Patientenidentifikationsnummernbzw. Behandlungsfallnummern, welche im Beispielkrankenhaus vergeben werdenkönnen. Die Menge ‚Status‘ enthält die möglichen Zustände, in denen sich einBefunddokument befinden kann. Ein Befunddokument kann entweder ‚gesperrt‘ oder‚ freigegeben‘ sein.

Die OrBAC-basierte Sicherheitspolitik des Beispielkrankenhauses wird imKrankenhaus-APA nicht mehr durch die Zustände ‚Empower‘ , ‚Consider‘ , ‚Use‘ ,‚Define‘ und ‚Permission‘ wiedergegeben, wie es beim Permission Checker der Fallgewesen ist. Stattdessen gibt es für die Relationen ‚Empower‘ , ‚Consider‘ , ‚Use‘ und‚Permission‘ entsprechende konstante Funktionen, durch die die Sicherheitspolitikfestgelegt wird. Die konstanten Funktionen ‚empower‘ , ‚ consider‘ , ‚use‘ und‚permission‘ liefern jeweils eine Liste von Instanzen der gleichnamigen Relationzurück.

• ‚ empower‘ liefert eine Liste von Org×S×R-Tupeln zurück.

• ‚ consider‘ liefert eine Liste von Org×A×T-Tupeln zurück.

• ‚ use‘ liefert eine Liste von Org×O×V-Tupeln zurück.

• ‚ permission‘ liefert eine Liste von Org×R×T×V×CListe-Tupeln zurück.

‚CListe‘ ist eine Liste, die Elemente aus der Menge C enthält.

Bei der Angabe einer Erlaubnis wird nicht ein einzelner Kontext angegeben, sonderneine Liste von Kontexten, von denen jeder einzelne bestehen muss. Dies vereinfacht dieAngabe der Erlaubnisse, da sich komplexe Kontexte mittels mehrerer einfacherKontexte beschreiben lassen.

Für die Relation ‚Define‘ gibt es keine entsprechende konstante Funktion und auchkeinen entsprechenden Zustand im Krankenhaus-APA, weil sich der Inhalt der Relation‚Define‘ ständig ändert. Stattdessen werden die über die Relation ‚Define‘ benötigtenInformationen ständig aus dem Zustand des Beispielkrankenhauses und der gestelltenAnfrage neu berechnet, und zwar in dem Umfang, in dem sie benötigt werden.

Die Verwendung von konstanten Funktionen bringt Vorteile bei der Berechnung desErreichbarkeitsgraphen, da dadurch weniger Zustandsinformation mitgeschleppt werdenmuss und damit die Berechnung des Erreichbarkeitsgraphen schneller vonstatten geht.

Die vollständige Spezifikation des Krankenhaus-APAs befindet sich im Anhang C.

Page 60: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 5 SPEZIFIKATION DES KRANKENHAUS-APA

60

Die Preamble des Krankenhaus-APAs besteht aus folgenden Teilen:

Mengen: Hier werden die benötigten Mengen definiert, unter anderem die aus demOrBAC-Modell bekannten Mengen Org, S, A, O, R, T, V, C.

Konstanten und Wertetabellen: Hier werden benötigte konstante Funktionen undWertetabellen mittels Funktionen definiert, unter anderem die konstanten Funktionen‚empower‘ , ‚ consider‘ , ‚use‘ , und ‚permission‘ , welche die OrBAC-basierteSicherheitspolitik wiedergeben.

Funktionen: Hier werden die benötigten Funktionen definiert, unter anderem dieFunktion ‚ isPermitted‘ .

5.2.3 Arbeitsweise

In jedem Zustand des Beispielkrankenhauses versucht ein zufällig gewähltes Subjekteine zufällig gewählte Aktion auf einem zufällig gewählten Objekt auszuführen. Darfdas Subjekt die Aktion auf dem Objekt nicht ausführen, so wird ein neues Subjekt, eineneue Aktion und ein neues Objekt zufällig gewählt und eine entsprechende Anfragegestellt. Andernfalls, wenn einer Anfrage stattgegeben wird, also das Subjekt die Aktionauf dem Objekt ausführen darf, wird die Aktion durchgeführt und anschließend wiedererneut eine zufällige Anfrage gestellt. Für die Erzeugung einer zufälligen Anfragestehen sämtliche Subjekte, Aktionen und Objekte zur Auswahl, weil auch unerlaubteSachen in jeder erdenklichen Weise versucht werden können.

Die Transition ‚T‘ schaltet genau dann, wenn die Funktion ‚ isPermitted‘ den Wert‚ true‘ zurückliefert und somit einer gestellten Anfrage stattgibt. Als Parameter erhält dieFunktion ‚ isPermitted‘ :

• Ein zufällig ausgewähltes Subjekt, eine zufällig ausgewählte Aktion und einzufällig ausgewähltes Objekt, die zusammengenommen eine zufällige Anfragedarstellen.

• Die Werte der konstanten Funktionen ‚empower‘ , ‚ consider‘ , ‚use‘ und‚permission‘ , welche die OrBAC-basierte Sicherheitspolitik wiedergeben.

• Eine zufällig ausgewählte Patientenidentifikationsnummer und eine zufälligausgewählte Behandlungsfallnummer, welche bei der Erzeugung von Objekteneine Rolle spielen.

• Den Wert der konstanten Funktion ‚organisationen‘, der alle Organisationen desBeispielkrankenhauses wiedergibt.

• Die Belegungen der Zustände ‚Stammdatendokumente‘ ,‚Behandlungsfalldokumente‘ , ‚Zuordnungsdokumente‘ , ‚Aufenthaltsdokumente‘und ‚Befunddokumente‘ , die jeweils die im Beispielkrankenhaus aktuellexistierenden Dokumente wiedergeben.

Von den Parametern fließen das zufällig ausgewählte Objekt, die zufälligeausgewählte Patientenidentifikationsnummer, die zufällig ausgewählteBehandlungsfallnummer, der Wert der konstanten Funktion ‚organisationen‘, und dieBelegungen der Zustände ‚Stammdatendokumente‘ , ‚Behandlungsfalldokumente‘ ,‚Zuordnungsdokumente‘ , ‚Aufenthaltsdokumente‘ und ‚Befunddokumente‘ in dieBerechnung der bestehenden Kontexte ein.

Page 61: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 5 SPEZIFIKATION DES KRANKENHAUS-APA

61

Die Berechnung der Funktion ‚ isPermitted‘ erfolgt genauso wie beim PermissionChecker, bis auf den Unterschied, dass die dort aufgerufene Funktion‚erzeugeOrgCListe‘ , die bei der Berechnung der bestehenden Kontexte ihren Einsatzfindet, ersetzt wurde. (Vergleiche Anhänge und B.2 und C.2.3.)

Wenn die Transition ‚T‘ schaltet und somit einer Anfrage stattgegeben wird, werdendie Zustände ‚Stammdatendokumente‘ , ‚Behandlungsfalldokumente‘ ,‚Zuordnungsdokumente‘ , ‚Aufenthaltsdokumente‘ und ‚Befunddokumente‘ mit neuenWerten belegt, die durch die Funktionen ‚ f1‘ , ‚ f2‘ , ‚ f3‘ , ‚ f4‘ und ‚ f5‘ berechnet werden,womit die entsprechende Aktion durchgeführt wird.

Im Wesentlichen basiert jeweils die Berechnung des neuen Wertes auf der vorherigenBelegung des Zustandes, der durchzuführenden Aktion und dem Objekt, auf dem dieAktion ausgeführt werden soll. Die anderen Parameter, eine zufällig ausgewähltePatientenidentifikationsnummer (bei ‚ f1‘ und ‚ f3‘), eine zufällig ausgewählteBehandlungsfallnummer (bei ‚ f2‘ , ‚ f3‘ , ‚ f4‘ und ‚ f5‘) und ein zufällig ausgewählterAufenthaltsort (eine Fachabteilung) (bei ‚ f4‘ ) spielen nur eine sekundäre Rolle. Siewerden innerhalb der Funktionen fast ausschließlich bei der Erzeugung vonDokumenten verwendet.

Die Zustände ‚Stammdatendokumente‘ , ‚Behandlungsfalldokumente‘ ,‚Zuordnungsdokumente‘ , ‚Aufenthaltsdokumente‘ und ‚Befunddokumente‘ haben alsDomäne jeweils eine Liste von Tupeln. Diese Listen von Tupeln werden immer sortiertgehalten, wodurch die Anzahl der möglichen Zustände des SystemsBeispielkrankenhaus reduziert wird.

Die Funktion ‚g1‘ reduziert in Abhängigkeit der durchzuführenden Aktion die für diezufällige Auswahl zur Verfügung stehenden Patientenidentifikationsnummern auf einenNullwert, wenn keine zufällige Patientenidentifikationsnummer für weitereBerechnungen im Zusammenhang mit der durchzuführenden Aktion benötigt wird.

Die Funktionen ‚g2‘ und ‚g3‘ reduzieren analog die für die zufällige Auswahl zurVerfügung stehenden Behandlungsfallnummer bzw. Aufenthaltsorte.

Durch die Funktionen ‚g1‘ , ‚g2‘ und ‚g3‘ wird die Anzahl der Transitionen imErreichbarkeitsgraphen reduziert, da weniger mögliche Belegungen der Zufallsvariablenabgearbeitet werden müssen. Dabei gehen keine wichtigen Transitionen verloren,sondern es werden nur redundante Transitionen eingespart.

Die exakten Arbeitsweisen der Funktionen des Krankenhaus-APAs können in denentsprechenden Präambeln in Anhang C.2.2 und C.2.3 nachvollzogen werden.

Page 62: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik
Page 63: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 6 ANALYSE DES KRANKENHAUS-APA

63

Kapitel 6 ANALYSE DESKRANKENHAUS-APA

Im Kapitel 5 wurde ein asynchroner Produktautomat, der Krankenhaus-APA,entwickelt, mit Hilfe dessen ein Beispielkrankenhaus modelliert wird. DasSystemverhalten dieses Krankenhaus-APAs spiegelt die möglichen Vorgänge immodellierten Beispielkrankenhaus wider.

Nun kann untersucht werden, ob das Systemverhalten verschiedene Eigenschaftenerfüllt, insbesondere Eigenschaften im Hinblick auf die Sicherheitspolitik, die imBeispielkrankenhaus vorherrschen soll.

6.1 ErreichbarkeitsgraphMit Hilfe des SH-Verification Tools lässt sich der Erreichbarkeitsgraph des

Krankenhaus-APAs berechnen.

Der Erreichbarkeitsgraph spiegelt das Verhalten des Beispielkrankenhauses wider.Jeder Knoten des Erreichbarkeitsgraphen entspricht einem Zustand, in dem sich dasBeispielkrankenhaus befinden kann. Jede Kante des Erreichbarkeitsgraphen entsprichteinem Vorgang, der im Beispielkrankenhaus stattfinden kann.

Die Berechnung des Erreichbarkeitsgraphen mit dem SH-Verification Tool ergibteinen endlichen Erreichbarkeitsgraphen mit 2433 Knoten und 44908 Kanten.

Anal ysi sSt ar t : 27. 9. 2007 13: 35: 33St op: 27. 9. 2007 13: 53: 50

Reachabi l i t y Gr aph Kr ankenhaus

2433 St at es comput ed. ( 0 DeadSt at es) ( 0 Pseudo St at e Tr ansi t i ons) ( 44908 St at e Tr ansi t i ons)

Abbildung 7 - Berechnung des Erreichbarkeitsgraphen

Anhand der Anzahl der Knoten und der Anzahl der Kanten dieses Erreichbarkeits-graphen lässt sich leicht erkennen, dass dieser Erreichbarkeitsgraph viel zu groß ist, alsdass man an ihm spezielle Systemeigenschaften direkt ablesen könnte. Aus diesemGrund werden im Nachfolgenden sogenannte schlichte Homomorphismen auf den

Page 64: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 6 ANALYSE DES KRANKENHAUS-APA

64

Erreichbarkeitsgraphen angewendet, um aus dem konkreten Systemverhalten (i. Allg.wesentlich einfachere) abstrakte Systemverhalten zu gewinnen und diese abstraktenSystemverhalten betrachten zu können.

Im Nachfolgenden werden die Knoten des Erreichbarkeitsgraphen auch Zustände unddie Kanten des Erreichbarkeitsgraphen auch Transitionen genannt.

Der berechnete Erreichbarkeitsgraph des Krankenhaus-APAs enthält keineTotzustände und ist streng zusammenhängend.

Det er mi ne Connect ed Component sSt ar t : 27. 9. 2007 14: 39: 43St op: 27. 9. 2007 14: 39: 43

Connect ed Component s of Reachabi l i t y Gr aph Kr ankenhaus ( 1 Component f ound) ( 1 Fi nal Component )

Abbildung 8 - Berechnung der Zusammenhangskomponenten

6.2 Abstraktionsbasier te AnalyseUm überprüfen zu können, ob das Systemverhalten des Krankenhaus-APAs

bestimmte Eigenschaften erfüllt, werden abstrakte Systemverhalten des APAsbetrachtet.

6.2.1 Homomorphismen

Die Abstraktion des Systemverhaltens eines APAs kann mittels alphabetischerSprachhomomorphismen h : Σ* → Σ'* formalisiert werden.

Mit Hilfe dieser Homomorphismen werden bestimmte Transitionen ignoriert undandere werden umbenannt. Dies kann den Effekt haben, dass verschiedene Transitionenmiteinander identifiziert werden.

Eine Abbildung h : Σ* → Σ'* wird Sprachhomomorphismus genannt, wenn h(ε) = εund h(yz) = h(y)h(z) für alle y, z ∈ Σ* gilt. Der Sprachhomomorphismus wirdalphabetisch genannt, wenn h(Σ) ⊂ Σ' ∪ { ε} gilt.

6.2.2 Abstraktes Systemverhalten

Wendet man einen Homomorphismus auf ein konkretes Systemverhalten an, so erhältman ein sogenanntes abstraktes Systemverhalten. Die Frage ist nun, inwiefern man vonEigenschaften, die ein abstraktes Systemverhalten erfüllt, Rückschlüsse machen kannauf Eigenschaften, die das zugrunde liegende konkrete Systemverhalten erfüllt. Wirwerden in Kürze sehen, dass solche Rückschlüsse möglich sind, wenn man eineBedingung an die verwendeten Homomorphismen stellt. Diese Bedingung wird sein,dass die Homomorphismen schlicht sind.

Page 65: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 6 ANALYSE DES KRANKENHAUS-APA

65

6.2.3 Sicherheits- undLebendigkeitseigenschaften

Es werden zwei spezielle Typen von Systemeigenschaften ausgezeichnet:Sicherheitseigenschaften und Lebendigkeitseigenschaften. Jede Eigenschaft ist derDurchschnitt einer Sicherheits- und einer Lebendigkeitseigenschaft [FormEntw], wasdie Auszeichnung von Sicherheits- und Lebendigkeitseigenschaften als spezielleEigenschaftstypen rechtfertigt.

6.2.3.1 Sicherheitseigenschaften

Sicherheitseigenschaften sind Eigenschaften von dem Typ:„Das, was geschieht, istnichts Falsches.“

Ein Beispiel hierfür ist: „Ein Client stellt erst dann eine neue Anfrage, wenn dievorhergehende beantwortet wurde.“

Charakteristisch für Sicherheitseigenschaften ist:

• Für jede endliche Aktionsfolge steht fest, ob eine bestimmteSicherheitseigenschaft erfüllt ist.

• Jeder Präfix einer endlichen Aktionsfolge u erfüllt alle Sicherheitseigenschaften,die u erfüllt.

Sicherheitseigenschaften sind durch präfixstabile formale Sprachen charakterisiert.

6.2.3.2 Lebendigkeitseigenschaften

Lebendigkeitseigenschaften sind Eigenschaften von dem Typ: „Immer mal wiedergeschieht etwas Gewünschtes.“

Ein Beispiel hierfür ist: „Ein Client stellt immer mal wieder eine neue Anfrage.“

Charakteristisch für Lebendigkeitseigenschaften ist:

• Jede endliche Aktionsfolge kann zu einer Aktionsfolge fortgesetzt werden,welche die Eigenschaften erfüllt.

Lebendigkeitseigenschaften können nicht durch formale Sprachen endlicherWortlänge charakterisiert werden. Sie werden mit Hilfe von sogenannten ω-Sprachenbeschrieben.

6.2.4 Omega-Sprachen

Aufgrund der Berücksichtigung der Lebendigkeitseigenschaften werdenSystemeigenschaften mit Hilfe von ω-Sprachen formalisiert. (Auch Sicherheits-eigenschaften sowie Systemverhalten lassen sich mittels ω-Sprachen darstellen.) Bei ω-Sprachen handelt es sich um Mengen von unendlich langen Worten.

Page 66: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 6 ANALYSE DES KRANKENHAUS-APA

66

6.2.5 Erfüllung von Eigenschaften

Um die Erfüllung von Eigenschaften zu untersuchen, muss „unendliches System-verhalten“ betrachtet werden. Bezüglich der Erfüllung von Eigenschaften gibt es dieBegriffe des linearen Erfüllens und des approximativen Erfüllens. (Vgl. hierzu auch[FormEntw].)

6.2.5.1 Lineares Erfüllen

Das gewöhnliche Konzept der Erfüllung von Systemeigenschaften ist das lineareErfüllen.

Ein Systemverhalten erfüllt linear eine Eigenschaft genau dann, wenn jede unendlicheAktionsfolge des Systems die Eigenschaft erfüllt.

6.2.5.2 Approximatives Erfüllen

Für Lebendigkeitseigenschaften ist der Begriff des linearen Erfüllens zu restriktiv.Deshalb gibt es den Begriff des approximativen Erfüllens.

Ein Systemverhalten erfüllt approximativ eine Eigenschaft genau dann, wenn jedeendliche Aktionsfolge des Systems zu einer unendlichen Aktionsfolge des Systemsfortgesetzt werden kann, welche die Eigenschaft erfüllt.

Erfüllt ein Systemverhalten eine Eigenschaft linear, dann erfüllt das Systemverhaltendie Eigenschaft auch approximativ. [FormEntw]

Für Sicherheitseigenschaften sind die Begriffe lineares und approximatives Erfüllenäquivalent. [FormEntw]

6.2.6 Schlichte Homomorphismen

Um aus Eigenschaften eines abstrakten Systemverhaltens auf Eigenschaften deskonkreten Systemverhaltens zu schließen, gibt es den Begriff der Schlichtheit vonHomomorphismen.

Die Schlichtheit von Homomorphismen ist eine sehr technische Bedingung. GenaueDetails zur Schlichtheit von Homomorphismen finden sich zum Beispiel in[FormEntw].

Für reguläre Sprachen ist es entscheidbar, ob ein Homomorphismus schlicht auf derSprache ist. [FormEntw]

Für die nachfolgenden Analysen, die auf dem Krankenhaus-APA aufsetzen, reicht esaus zu wissen, dass der endliche Erreichbarkeitsgraph des Krankenhaus-APAs strengzusammenhängend ist. Denn wenn der endliche Erreichbarkeitsgraph bzw. endlicheAutomat streng zusammenhängend ist, dann ist jeder Homomorphismus schlicht.[FormEntw] D.h. alle im Nachfolgenden vorgestellten Homomorphismen, die auf denErreichbarkeitsgraph des Krankenhaus-APAs angewendet werden, sind schlicht.

Wichtig ist der folgende Satz über schlichte Homomorphismen.

Page 67: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 6 ANALYSE DES KRANKENHAUS-APA

67

6.2.6.1 Satz über schlichte Homomorphismen

Schlichte Homomorphismen definieren exakt die Klasse von Abstraktionen, für diegilt, dass jede Eigenschaft genau dann vom abstrakten Systemverhalten approximativerfüllt wird, wenn die „ entsprechende“ Eigenschaft vom konkreten Systemverhaltenapproximativ erfüllt wird.

(Vgl. [FormEntw])

Die „entsprechende“ Eigenschaft ist dabei das Urbild der abstrakten Eigenschaft inBezug auf den Homomorphismus.

Bei dieser Betrachtungsweise treten ω-Sprachen nicht mehr explizit auf. Es werdenlediglich formale Sprachen endlicher Wortlänge betrachtet.

6.3 Ver ifikation vonSystemeigenschaften

Im Folgenden werden verschiedene Homomorphismen vorgestellt, mit deren Hilfeeinige ausgewählte Fragen zum Systemverhalten des Beispielkrankenhausesbeantwortet werden sollen. Es wird sich zeigen, dass das Systemverhalten bezüglich dergestellten Fragen die gewünschten Eigenschaften erfüllt.

Die folgenden Homomorphismen werden jeweils auf den Erreichbarkeitsgraphen desKrankenhaus-APAs angewandt, so dass jeweils zunächst ein Bildgraph entsteht, der einaus dem Homomorphismus hervorgehendes abstraktes Systemverhalten beschreibt. Zuden Bildgraphen wird dann jeweils der Minimalautomat berechnet, an dem sich dannEigenschaften des abstrakten Systemverhaltens ablesen lassen. Da sämtlicheHomomorphismen wie bereits erwähnt wegen des strengen Zusammenhangs desErreichbarkeitsgraphen schlicht sind, lassen sich die Eigenschaften des jeweiligenabstrakten Systemverhaltens entsprechend auf das konkrete Systemverhaltenübertragen.

6.3.1 Homomorphismus 1

Mit Hilfe dieses Homomorphismus soll die folgende Frage beantwortet werden:

„ Welche Aktionen können auf ‚Befunddokument_1‘ ausgeführt werden?“

Die genaue Definition des Homomorphismus 1 befindet sich in Anhang D.1.

Im Nachfolgenden finden sich beispielhaft für diesen Homomorphismus einigeHinweise, wie die Definitionen der Homomorphismen zu lesen sind.

Jede Kante des Erreichbarkeitsgraphen trägt als Information den Namen derschaltenden Transition des APAs (dies ist im Falle des Krankenhaus-APAs immer ‚T‘ ,da ‚T‘ die einzige Transition des Krankenhaus-APAs ist) und die Belegungen derVariablen der Transitionsinschrift (dies sind im Falle des Krankenhaus-APAs dieBelegungen der Variablen ‚s‘ , ‚a‘ , ‚o‘ , ‚pin‘ , ‚ fnr‘ und ‚org‘). Diese Informationenbilden zusammengenommen jeweils die Beschriftung einer Kante. DieHomomorphismen besagen im Grunde, wie diese Beschriftungen abzubilden sind.

Page 68: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 6 ANALYSE DES KRANKENHAUS-APA

68

Bei den hier vorliegenden Homomorphismen werden massiv Prädikate eingesetzt. DiePrädikate sagen aus, wann eine Beschriftung auf was abzubilden ist.

Verbirgt man einen Zweig (gekennzeichnet durch [+]) des Homomorphismus 1, sobesteht die Definition des Homomorphismus aus den folgenden Zeilen:[ - ] - Kr ankenhaus | +- [ - ] - T ( , T( o=' Bef unddokument _1' ) , ) ; " Bef unddokument _1" | +- [ +] - t r ue ( , T( a=' Bef unddokument _er zeugen' ) , ) ; " er zeugen" | +- - - - - f al se - > Epsi l on

Die Zeile+- [ - ] - T ( , T( o=' Bef unddokument _1' ) , ) ; " Bef unddokument _1"

besagt, dass alle Beschriftungen, bei denen das Prädikat( , T( o=' Bef unddokument _1' ) , ) ;

gilt, auf „Befunddokument_1“ abzubilden sind, wenn dieser Abbildungswert nichtnoch einmal durch die untergeordneten Zweige (‚ true‘-Zweig und ‚ false‘-Zweig)überschrieben wird. Das Prädikat( , T( o=' Bef unddokument _1' ) , ) ;

gilt genau dann, wenn die Beschriftung als Namen der schaltenden Transition denTransitionsnamen ‚T‘ und als Belegung der Variablen ‚o‘ den Wert‚Befunddokument_1‘ enthält.

Der ‚ true‘-Zweig beschreibt nun, wie alle Beschriftungen, die das Prädikat erfüllen,weiter abzubilden sind. Die hier vorkommenden Unterzweige sind entsprechend zulesen.

Der ‚ false‘-Zweig beschreibt, wie alle Beschriftungen, die das Prädikat nicht erfüllen,weiter abzubilden sind. Hier in diesem ‚ false‘-Zweig werden alle Beschriftungen aufdas leere Wort ε abgebildet.

An verschiedenen Stellen bei der Definition der Homomorphismen wird das Prädikat( , , ) ;

verwendet, das immer erfüllt ist.

Der Minimalautomat zu Homomorphismus 1 sieht wie folgt aus:

Page 69: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 6 ANALYSE DES KRANKENHAUS-APA

69

Abbildung 9 - M inimalautomat 1

Dieser Minimalautomat zeigt, welche Aktionen auf ‚Befunddokument_1‘ ausgeführtwerden können. Man kann erkennen, dass das ‚Befunddokument_1‘ zuerst erzeugtwerden muss. Dann kann es bearbeitet und angezeigt werden. Ferner kann esfreigegeben und danach wieder gesperrt werden. Es kann nur gelöscht werden, wenn eszuvor erzeugt wurde. Alle Aktionen finden in der korrekten Reihenfolge statt.

Das Systemverhalten des Beispielkrankenhauses erfüllt also z.B. dieSicherheitseigenschaft, dass das ‚Befunddokument_1‘ erst gelöscht werden kann,nachdem es erzeugt wurde.

Außerdem erfüllt das Systemverhalten des Beispielkrankenhauses z.B. dieLebendigkeitseigenschaft, dass es immer wieder mal möglich ist, ‚Befunddokument_1‘anzuzeigen.

Es ist zu beachten, dass das Vor- und Nachspiel der hier gezeigten Aktionen durchden Homomorphismus ausgeblendet ist. Man sieht nur, dass die hier gezeigten Aktionenauftreten können, aber nicht in welchem Zusammenhang bezüglich der ausgeblendetenAktionen sie auftreten.

Zum Beispiel kann ein Befund nur bearbeitet werden, wenn der Bearbeiter ein Arzteiner Fachabteilung und der betreffende Patient in der gleichen Fachabteilung ist. Diesist hier aber nicht zu sehen.

Man sieht nur das, worauf sich der Homomorphismus konzentriert. Das ist abergewollt, da ja gerade vereinfachte Darstellungen des Systemverhaltens mittelsAbstraktionen erreicht werden sollen.

Page 70: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 6 ANALYSE DES KRANKENHAUS-APA

70

Diese Anmerkung gilt auch für die anderen Homomorphismen.

6.3.2 Homomorphismus 2

Mit Hilfe dieses Homomorphismus soll die folgende Frage beantwortet werden:

„ Welche Aktionen können auf ‚Befunddokument_2‘ ausgeführt werden?“

Die genaue Definition des Homomorphismus 2 befindet sich in Anhang D.2.

Homomorphismus 2 entspricht Homomorphismus 1, nur dass nicht‚Befunddokument_1‘ , sondern ‚Befunddokument_2‘ betrachtet wird.

Der Minimalautomat zu Homomorphismus 2 sieht wie folgt aus:

Abbildung 10 - M inimalautomat 2

Homomorphismus 2 liefert denselben Minimalautomaten wie Homomorphismus 1.Auch hier finden alle Aktionen in der korrekten Reihenfolge statt.

6.3.3 Homomorphismus 3

Mit Hilfe dieses Homomorphismus soll die folgende Frage beantwortet werden:

„ Welche Aktionen können von welchem Subjekt auf ‚Befunddokument_1‘ ausgeführtwerden?“

Page 71: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 6 ANALYSE DES KRANKENHAUS-APA

71

Homomorphismus 3 ist eine Verfeinerung von Homomorphismus 1. Jetzt werdennicht nur die Aktionen betrachtet, die auf ‚Befunddokument_1‘ ausgeführt werdenkönnen, sondern auch die Subjekte, die sie ausführen.

Die genaue Definition des Homomorphismus 3 befindet sich in Anhang D.3.

Der Minimalautomat zu Homomorphismus 3 sieht wie folgt aus:

Abbildung 11 - M inimalautomat 3

Man sieht, dass das ‚Befunddokument_1‘ nur vom Arzt ‚Brinkmann‘ erzeugt werdenkann. Das liegt daran, dass das ‚Befunddokument_1‘ ein interner Befund der Chirurgieist, in der ‚Brinkmann‘ als Arzt arbeitet. Nach der Erzeugung kann das‚Befunddokument_1‘ durch ‚Brinkmann‘ angezeigt und bearbeitet werden. Außerdemkann es von ‚Mueller‘ angezeigt werden, der in der Chirurgie als Pflegekraft arbeitet.Nachdem ‚Brinkmann‘ das ‚Befunddokument_1‘ freigegeben hat, kann es auch durchden Arzt ‚Schmidt‘ angezeigt werden, der in der Radiologie arbeitet. Löschen kann das‚Befunddokument_1‘ nur der Verwaltungsmitarbeiter ‚Klein‘ .

6.3.4 Homomorphismus 4

Mit Hilfe dieses Homomorphismus soll die folgende Frage beantwortet werden:

„ Welche Aktionen können von welchem Subjekt auf ‚Befunddokument_2‘ ausgeführtwerden?“

Homomorphismus 4 entspricht Homomorphismus 3, nur dass nicht‚Befunddokument_1‘ , sondern ‚Befunddokument_2‘ betrachtet wird.

Page 72: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 6 ANALYSE DES KRANKENHAUS-APA

72

Außerdem ist Homomorphismus 4 eine Verfeinerung von Homomorphismus 2. Jetztwerden nicht nur die Aktionen betrachtet, die auf ‚Befunddokument_2‘ ausgeführtwerden können, sondern auch die Subjekte, die sie ausführen.

Die genaue Definition des Homomorphismus 4 befindet sich in Anhang D.4.

Der Minimalautomat zu Homomorphismus 4 sieht wie folgt aus:

Abbildung 12 - M inimalautomat 4

Homomorphismus 4 liefert einen anderen Minimalautomaten als Homomorphismus3. Das liegt daran, dass das ‚Befunddokument_2‘ in einer anderen Fachabteilung alsinterner Befund angesehen wird, nämlich in der Radiologie und nicht in der Chirurgie.

Man sieht, dass das ‚Befunddokument_2‘ nur vom Arzt ‚Schmidt‘ erzeugt werdenkann. Das liegt daran, dass das ‚Befunddokument_2‘ ein interner Befund der Radiologieist, in der ‚Schmidt‘ als Arzt arbeitet. Nach der Erzeugung kann das‚Befunddokument_2‘ durch ‚Schmidt‘ angezeigt und bearbeitet werden. Nachdem‚Schmidt‘ das ‚Befunddokument_2‘ freigegeben hat, kann es auch durch den Arzt‚Brinkmann‘ angezeigt werden, der in der Chirurgie arbeitet. Löschen kann das‚Befunddokument_2‘ nur der Verwaltungsmitarbeiter ‚Klein‘ .

6.3.5 Homomorphismus 5

Mit Hilfe dieses Homomorphismus soll die folgende Frage beantwortet werden:

„ Kann Brinkmann immer mal wieder ein Befunddokument erzeugen?“

Die genaue Definition des Homomorphismus 5 befindet sich in Anhang D.5.

Page 73: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 6 ANALYSE DES KRANKENHAUS-APA

73

Der Minimalautomat zu Homomorphismus 5 sieht wie folgt aus:

Abbildung 13 - M inimalautomat 5

Der Minimalautomat beantwortet die gestellte Frage positiv. Der Arzt ‚Brinkmann‘kann immer mal wieder ein Befunddokument erzeugen.

Die hier gestellte Frage kann analog auch für andere Subjekte und Aktionen gestelltwerden. Der Homomorphismus ist dann entsprechend abzuändern.

6.3.6 Homomorphismus 6

Mit Hilfe dieses Homomorphismus soll die folgende Frage beantwortet werden:

„ Kann Brinkmann je ein Befunddokument löschen?“

Die genaue Definition des Homomorphismus 6 befindet sich in Anhang D.6.

Der Minimalautomat zu Homomorphismus 6 sieht wie folgt aus:

Abbildung 14 - M inimalautomat 6

Der Minimalautomat besagt, dass der Arzt ‚Brinkmann‘ nie ein Befunddokumentlöschen kann. Ansonsten würde der Minimalautomat nämlich eine mit ‚Brinkmannloescht Befunddokument‘ beschriftete Kante enthalten.

Auch hier lässt sich die gestellte Frage analog für andere Subjekte und Aktionenstellen.

6.3.7 Homomorphismus 7

Mit Hilfe dieses Homomorphismus soll die folgende Frage beantwortet werden:

„ Kann Mueller je ein Befunddokument bearbeiten?“

Die genaue Definition des Homomorphismus 7 befindet sich in Anhang D.7.

Der Minimalautomat zu Homomorphismus 7 sieht wie folgt aus:

Page 74: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 6 ANALYSE DES KRANKENHAUS-APA

74

Abbildung 15 - M inimalautomat 7

Der Minimalautomat besagt, dass die Pflegekraft ‚Mueller‘ nie ein Befunddokumentbearbeiten kann. Ansonsten würde der Minimalautomat nämlich eine mit ‚Muellerbearbeitet Befunddokument‘ beschriftete Kante enthalten.

Anhand des Homomorphismus 7 soll kurz gezeigt werden, dass auch Fehler in derSpezifikation der Zugriffkontrollspolitik mittels der Betrachtung abstrakterSystemverhalten aufgedeckt werden können.

Dazu wird (nur für dieses Beispiel) in die Preamble des Krankenhaus-APAs einFehler eingebaut. Und zwar wird in den sich im Anhang C.2.2 befindlichen Teil derPreamble beidef const per mi ss i on >> Or gRTVCLi st e

die folgende zusätzliche Permission eingebaut:( Chi r ur gi e, Pf l egekr af t , Bef und_bear bei t en, I nt er ner _Bef und, [ Bef unddokument _bel egt ,

Zu_bet r ef f ender _FNr _exi st i er t _ei n_Auf ent hal t sdokument _mi t _-ueber ei nst i mmendem_Or t ] )

Diese Permission besagt, dass in der Chirurgie Pflegekräften die Erlaubnis erteiltwird, interne Befunde zu bearbeiten, sofern die entsprechenden Kontexte gegeben sind.Zweifellos steht diese Permission im Widerspruch zu der verfolgten Sicherheitspolitik,nach der Pflegekräfte nicht das Recht haben sollten, Befunde bearbeiten zu können.

Die Berechnung des Erreichbarkeitsgraphen des so modifizierten Krankenhaus-APAsergibt einen Erreichbarkeitsgraphen mit 2433 Knoten und 45324 Kanten.

Anal ysi sSt ar t : 27. 9. 2007 16: 35: 31St op: 27. 9. 2007 16: 55: 04

Reachabi l i t y Gr aph Kr ankenhaus

2433 St at es comput ed. ( 0 DeadSt at es) ( 0 Pseudo St at e Tr ansi t i ons) ( 45324 St at e Tr ansi t i ons)

Abbildung 16 - Berechnung des Erreichbarkeitsgraphen für fehlerh. Spezifikation

Dieser Graph ist wieder streng zusammenhängend, so dass jeder Homomorphismusauf ihm schlicht ist.

Page 75: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 6 ANALYSE DES KRANKENHAUS-APA

75

Det er mi ne Connect ed Component sSt ar t : 27. 9. 2007 16: 56: 21St op: 27. 9. 2007 16: 56: 21

Connect ed Component s of Reachabi l i t y Gr aph Kr ankenhaus ( 1 Component f ound) ( 1 Fi nal Component )

Abbildung 17 - Berechnung der Zusammenhangskomp. für fehlerh. Spezifikation

Wendet man den gleichen Homomorphismus 7 auf den neuen Erreichbarkeitsgraphenan, so erhält man folgenden Minimalautomaten:

Abbildung 18 - M inimalautomat 7 für fehlerhafte Spezifikation

Im Gegensatz zum vorherigen Minimalautomaten hat dieser Minimalautomat jetzteine Kante mit der Beschriftung ‚Mueller bearbeitet Befunddokument‘ . DerMinmalautomat gibt also an, dass die Pflegekraft ‚Mueller‘ immer mal wieder einBefunddokument bearbeiten kann, was ein klarer Hinweis darauf ist, dass sich in dieSpezifikation der Zugriffskontrollpolitik ein Fehler eingeschlichen hat.

6.3.8 Homomorphismus 8

Mit Hilfe dieses Homomorphismus soll die folgende Frage beantwortet werden:

„ Welche Aktionen können auf ‚Aufenthaltsdokument_1‘ ausgeführt werden?“

Die genaue Definition des Homomorphismus 8 befindet sich in Anhang D.8.

Der Minimalautomat zu Homomorphismus 8 sieht wie folgt aus:

Page 76: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 6 ANALYSE DES KRANKENHAUS-APA

76

Abbildung 19 - M inimalautomat 8

Man kann erkennen, dass das ‚Aufenthaltsdokument_1‘ zuerst erzeugt werden muss.Dann kann es bearbeitet und angezeigt werden. Es kann nur gelöscht werden, wenn eszuvor erzeugt wurde. Alle Aktionen finden in der korrekten Reihenfolge statt.

6.3.9 Homomorphismus 9

Mit Hilfe dieses Homomorphismus soll die folgende Frage beantwortet werden:

„ Welche Aktionen können von welchem Subjekt auf ‚Aufenthaltsdokument_1‘ausgeführt werden, und wie sieht der Aufenthaltsort dabei aus?“

Homomorphismus 9 ist eine Verfeinerung von Homomorphismus 8. Jetzt werdennicht nur die Aktionen betrachtet, die auf ‚Aufenthaltsdokument_1‘ ausgeführt werdenkönnen, sondern auch die Subjekte, die sie ausführen. Außerdem wird beim Erzeugenund Bearbeiten der neu zuzuweisende Aufenthaltsort berücksichtigt.

Die genaue Definition des Homomorphismus 9 befindet sich in Anhang D.9.

Der Minimalautomat zu Homomorphismus 9 sieht wie folgt aus:

Page 77: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 6 ANALYSE DES KRANKENHAUS-APA

77

Abbildung 20 - M inimalautomat 9

Der Minimalautomat zeigt, dass das ‚Aufenthaltsdokument_1‘ nur durch denVerwaltungsmitarbeiter ‚Klein‘ erzeugt werden kann. Bei der Erzeugung wird entweder‚Chirurgie‘ oder ‚Radiologie‘ in das Aufenthaltsdokument eingetragen. Danach kannder Arzt der entsprechenden Fachabteilung das ‚Aufenthaltsdokument_1‘ anzeigen undbearbeiten. Wenn sich der im ‚Aufenthaltsdokument_1‘ eingetragene Aufenthaltsortdurch die Bearbeitung ändert, wechselt entsprechend der Arzt, der das‚Aufenthaltsdokument_1‘ anzeigen und bearbeiten kann. Der Verwaltungsmitarbeiter‚Klein‘ kann das ‚Aufenthaltsdokument_1‘ jederzeit anzeigen. Er ist der Einzige, derdas ‚Aufenthaltsdokument_1‘ löschen kann.

Page 78: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik
Page 79: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 7 ZUSAMMENFASSUNG DER ERGEBNISSE UND AUSBLICK

79

Kapitel 7 ZUSAMMEN-FASSUNG DERERGEBNISSE UNDAUSBLICK

Im Folgenden werden noch einmal kurz die wichtigsten Ergebnisse dieser Arbeitzusammengefasst.

In Krankenhäusern hat die elektronische Datenverarbeitung schon heute eine großeBedeutung, und es ist zu erwarten, dass diese Bedeutung weiterhin wächst. Dabeibeschränkt sich die elektronische Datenverarbeitung nicht nur auf einige wenigeBereiche eines Krankenhauses, sondern es sind zunehmend alle Bereiche betroffen. Dieelektronische Krankenakte ist ein wichtiger und integraler Bestandteil von einemKrankenhausinformationssystem, und es werden hohe Anforderungen an denDatenschutz beim Umgang mit der elektronischen Krankenakte gestellt.

Es ist zu bemerken, dass ein Krankenhaus ein sehr komplexes System ist. In eine fürein Krankenhaus zu definierende Zugriffskontrollpolitik fließen viele Aspekte ein, wiezum Beispiel gesetzliche Datenschutzbestimmungen oder die Abläufe und dieorganisatorischen und strukturellen Rahmenbedingungen des Krankenhauses.

OrBAC ist ein vergleichsweise neues Zugriffskontrollmodell, das einige neueKonzepte bietet und vielseitig einsetzbar ist. So bietet OrBAC zum Beispiel dieKonzepte Organisationen, Rollen, Sichten, Tätigkeiten und Kontexte. Mit OrBACwerden keine Rechte für konkrete Subjekte, Aktionen und Objekte angegeben, sondernallgemeiner für Rollen, Tätigkeiten und Sichten, womit OrBAC ein hohes Maß anAbstraktion bietet.

OrBAC wurde im Rahmen dieser Diplomarbeit erfolgreich für die Angabe einerZugriffskontrollpolitik für ein Beispielkrankenhaus eingesetzt. Trotz der komplexenSicherheitsanforderungen im Krankenhaus war es möglich, alle zu berücksichtigendenAspekte in die Zugriffskontrollpolitik einfließen zu lassen.

Ein zentrales Ergebnis dieser Arbeit ist, dass sich mittels asynchroner Produkt-automaten eine OrBAC-basierte Zugriffskontrollpolitik darstellen lässt und mit Hilfeasynchroner Produktautomaten überprüft werden kann, ob ein konkretes Subjekt einekonkrete Aktion auf einem konkreten Objekt ausführen darf.

So wurde als Vorstufe des Krankenhaus-APAs in dieser Diplomarbeit der PermissionChecker entwickelt, mit Hilfe dessen entschieden werden kann, ob eine konkreteAnfrage erlaubt ist. Hierbei handelt es sich um einen relativ kleinen APA mit nur einerTransition und sieben Zuständen, dessen hauptsächliche Komplexität in der Preamblesteckt.

Page 80: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

KAPITEL 7 ZUSAMMENFASSUNG DER ERGEBNISSE UND AUSBLICK

80

Ein weiteres wichtiges Ergebnis dieser Arbeit ist der Krankenhaus-APA, mit Hilfedessen das Beispielkrankenhaus inklusive der dort vorherrschenden Zugriffskontroll-politik modelliert werden konnte. Auch dieser asynchrone Produktautmat ist relativklein. Er besteht aus nur einer Transition und fünf Zuständen. Wieder steckt dieeigentliche Komplexität in der Preamble.

Der Erreichbarkeitsgraph des Krankenhaus-APAs hat das Systemverhalten desBeispielkrankenhauses dargestellt. Trotz des relativ einfachen Beispielkrankenhauses,das in der Anzahl seiner Mitarbeiter und Dokumente sehr beschränkt war, war derErreichbarkeitsgraph mit 2433 Knoten und 44908 Kanten schon sehr groß. Da es sehrschwierig ist, Systemeigenschaften an einem Graphen von dieser Größe direktabzulesen, wurden abstrakte Systemverhalten betrachtet, die mittels schlichterHomomorphismen berechnet wurden. Die Schlichtheit der Homomorphismen warerforderlich, um Rückschlüsse von den abstrakten Systemverhalten auf das konkreteSystemverhalten ziehen zu können. Sie folgte aus dem strengen Zusammenhang desErreichbarkeitsgraphen.

Anhand der durch die verschiedenen Homomorphismen berechneten abstraktenSystemverhalten wurden verschiedene ausgewählte Eigenschaften überprüft. Es konntegesehen werden, dass das Systemverhalten verschiedene durch die Zugriffskontroll-politik vorgegebene Eigenschaften erfüllt hat. Außerdem konnte man sehen, dass auchSpezifikationsfehler in der Zugriffskontrollpolitik durch die abstrakte Sichtweiseaufgedeckt werden konnten.

Wie bereits oben erwähnt war das modellierte Beispielkrankenhaus in seiner Größesehr eingeschränkt. Es stellt sich nun die Frage, ob auch größere Krankenhäuserzufriedenstellend untersucht werden können. Hierzu muss gesagt werden, dass diesschwierig werden wird, da die Erreichbarkeitsgraphen mit zunehmender Größe derKrankenhäuser in ihrer Anzahl der Knoten und Kanten stark explodieren werden. Diesliegt daran, dass in einem Krankenhaus viel nebenläufig passieren kann und vieleVorgänge unabhängig voneinander sind. So geschieht zum Beispiel die Behandlungeines Patienten weitgehend unabhängig von der Behandlung anderer Patienten.

Bei der Anaylse des Krankenhaus-APAs wurden nur bestimmte ausgewählte Fragenuntersucht. Selbstverständlich können noch weitere Eigenschaften untersucht werden.Eine vollständige Untersuchung sämtlicher Eigenschaften würde aber im Rahmen dieserDiplomarbeit zu weit führen.

Die mittels OrBAC modellierte Zugriffskontrollpolitik war im Wesentlichen statisch.So konnte zum Beispiel die Rollenzuteilung nicht verändert werden. AdOrBAC ist einAdministrationsmodell für OrBAC, mit dem zum Beispiel die Zuweisung vonBenutzern zu Rollen kontrolliert werden kann. [AdOrBAC] Dies bringt weitereDynamik ins System und könnte in weiterführenden Untersuchungen mit integriertwerden. Erwartungsgemäß wird aber dadurch die Größe der Erreichbarkeitsgraphenstark steigen.

Abschließend sei erwähnt, dass Zugriffsrechte letzten Endes nur ein Teilaspekt inBezug auf Datenschutz im Krankenhaus sind. Die Sicherheitsproblematik imKrankenhaus umfasst mehr. Weitere Sicherheitsaspekte sind zum BeispielVerschlüsselung, Protokollierung und Datenintegrität.

Page 81: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG A ZUGRIFFSKONTROLLPOLITIK

81

Anhang A ZUGRIFFS-KONTROLL-POLITIK

A.1 Mengen

A.1.1 Die Menge „ Org“Org = { Patientenverwaltung,

Chirurgie,Radiologie}

A.1.2 Die Menge „ S“S = { Klein,

Brinkmann,Mueller,Schmidt}

A.1.3 Die Menge „ A“A = { Stammdatendokument_erzeugen,

Stammdatendokument_anzeigen,Stammdatendokument_bearbeiten,Stammdatendokument_loeschen,Behandlungsfalldokument_erzeugen,Behandlungsfalldokument_anzeigen,Behandlungsfalldokument_bearbeiten,Behandlungsfalldokument_loeschen,Zuordnungsdokument_erzeugen,Zuordnungsdokument_anzeigen,Zuordnungsdokument_loeschen,Aufenthaltsdokument_erzeugen,Aufenthaltsdokument_anzeigen,Aufenthaltsdokument_bearbeiten,Aufenthaltsdokument_loeschen,Befunddokument_erzeugen,Befunddokument_anzeigen,Befunddokument_bearbeiten,Befunddokument_loeschen,Befunddokument_freigeben,Befunddokument_sperren}

A.1.4 Die Menge „ O“

Page 82: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG A ZUGRIFFSKONTROLLPOLITIK

82

O = { Stammdatendokument_1,Behandlungsfalldokument_1,Behandlungsfalldokument_2,Zuordnungsdokument_1,Zuordnungsdokument_2,Aufenthaltsdokument_1,Befunddokument_1,Befunddokument_2}

A.1.5 Die Menge „ R“R = { Verwaltungsmitarbeiter,

Arzt,Pflegekraft}

A.1.6 Die Menge „ Óà = { Stammdaten_erzeugen,

Stammdaten_anzeigen,Stammdaten_bearbeiten,Stammdaten_loeschen,Behandlungsfall_erzeugen,Behandlungsfall_anzeigen,Behandlungsfall_bearbeiten,Behandlungsfall_loeschen,Zuordnung_erzeugen,Zuordnung_anzeigen,Zuordnung_loeschen,Aufenthalt_beginnen,Aufenthalt_pruefen,Aufenthalt_aendern,Aufenthalt_beenden,Befund_erzeugen,Befund_anzeigen,Befund_bearbeiten,Befund_loeschen,Befund_freigeben,Befund_sperren}

A.1.7 Die Menge „ V“V = { Stammdaten,

Behandlungsfall,Zuordnung,Aufenthalt,Interner_Befund,Externer_Befund}

A.1.8 Die Menge „ C“C = { Stammdatendokument_frei,

Stammdatendokument_belegt,Behandlungsfalldokument_frei,Behandlungsfalldokument_belegt,Zuordnungsdokument_frei,Zuordnungsdokument_belegt,Aufenthaltsdokument_frei,Aufenthaltsdokument_belegt,Befunddokument_frei,

Page 83: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG A ZUGRIFFSKONTROLLPOLITIK

83

Befunddokument_belegt,PIN_frei,PIN_belegt,FNr_frei,FNr_belegt,Befunddokument_freigegeben,Befunddokument_gesperrt,Ort_stimmt_ueberein,Ort_stimmt_nicht_ueberein,Zu_betreffender_PIN_existieren_andere_Dokumente,Zu_betreffender_PIN_existieren_keine_anderen_Dokumente,Zu_betreffender_FNr_existieren_andere_Dokumente,Zu_betreffender_FNr_existieren_keine_anderen_Dokumente,Zu_FNr_existiert_ein_Zuordnungsdokument,Zu_FNr_existiert_kein_Zuordnungsdokument,Zu_FNr_existiert_ein_Aufenthaltsdokument,Zu_FNr_existiert_kein_Aufenthaltsdokument,Zu_betreffender_FNr_existiert_ein_Aufenthaltsdokument,Zu_betreffender_FNr_existiert_kein_Aufenthaltsdokument,Zu_FNr_existiert_ein_Aufenthaltsdokument_mit_uebereinstimmendem_Ort,Zu_FNr_existiert_kein_Aufenthaltsdokument_mit_uebereinstimmendem_Ort,Zu_betreffender_FNr_existiert_ein_Aufenthaltsdokument_mit_uebereinstimmendem_- Ort,Zu_betreffender_FNr_existiert_kein_Aufenthaltsdokument_mit_uebereinstimmendem_- Ort,Zu_einer_der_zugeordneten_FNrn_existiert_ein_Aufenthaltsdokument_mit_- uebereinstimmendem_Ort,Zu_keiner_der_zugeordneten_FNrn_existiert_ein_Aufenthaltsdokument_mit_- uebereinstimmendem_Ort

A.2 Relationen

A.2.1 Die Relation „ Empower“Empower(Patientenverwaltung, Klein, Verwaltungsmitarbeiter)Empower(Chirurgie, Brinkmann, Arzt)Empower(Chirurgie, Mueller, Pflegekraft)Empower(Radiologie, Schmidt, Arzt)

A.2.2 Die Relation „ Consider“Consider(Patientenverwaltung, Stammdatendokument_erzeugen, Stammdaten_erzeugen)Consider(Patientenverwaltung, Stammdatendokument_anzeigen, Stammdaten_anzeigen)Consider(Patientenverwaltung, Stammdatendokument_bearbeiten, Stammdaten_bearbeiten)Consider(Patientenverwaltung, Stammdatendokument_loeschen, Stammdaten_loeschen)Consider(Patientenverwaltung, Behandlungsfalldokument_erzeugen,

Behandlungsfall_erzeugen)Consider(Patientenverwaltung, Behandlungsfalldokument_anzeigen,

Behandlungsfall_anzeigen)Consider(Patientenverwaltung, Behandlungsfalldokument_bearbeiten,

Behandlungsfall_bearbeiten)Consider(Patientenverwaltung, Behandlungsfalldokument_loeschen,

Behandlungsfall_loeschen)Consider(Patientenverwaltung, Zuordnungsdokument_erzeugen, Zuordnung_erzeugen)Consider(Patientenverwaltung, Zuordnungsdokument_anzeigen, Zuordnung_anzeigen)Consider(Patientenverwaltung, Zuordnungsdokument_loeschen, Zuordnung_loeschen)Consider(Patientenverwaltung, Aufenthaltsdokument_erzeugen, Aufenthalt_beginnen)

Page 84: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG A ZUGRIFFSKONTROLLPOLITIK

84

Consider(Patientenverwaltung, Aufenthaltsdokument_anzeigen, Aufenthalt_pruefen)Consider(Patientenverwaltung, Aufenthaltsdokument_loeschen, Aufenthalt_beenden)Consider(Patientenverwaltung, Befunddokument_loeschen, Befund_loeschen)Consider(Chirurgie, Stammdatendokument_anzeigen, Stammdaten_anzeigen)Consider(Chirurgie, Behandlungsfalldokument_anzeigen, Behandlungsfall_anzeigen)Consider(Chirurgie, Aufenthaltsdokument_anzeigen, Aufenthalt_pruefen)Consider(Chirurgie, Aufenthaltsdokument_bearbeiten, Aufenthalt_aendern)Consider(Chirurgie, Befunddokument_erzeugen, Befund_erzeugen)Consider(Chirurgie, Befunddokument_anzeigen, Befund_anzeigen)Consider(Chirurgie, Befunddokument_bearbeiten, Befund_bearbeiten)Consider(Chirurgie, Befunddokument_freigeben, Befund_freigeben)Consider(Chirurgie, Befunddokument_sperren, Befund_sperren)Consider(Radiologie, Stammdatendokument_anzeigen, Stammdaten_anzeigen)Consider(Radiologie, Behandlungsfalldokument_anzeigen, Behandlungsfall_anzeigen)Consider(Radiologie, Aufenthaltsdokument_anzeigen, Aufenthalt_pruefen)Consider(Radiologie, Aufenthaltsdokument_bearbeiten, Aufenthalt_aendern)Consider(Radiologie, Befunddokument_erzeugen, Befund_erzeugen)Consider(Radiologie, Befunddokument_anzeigen, Befund_anzeigen)Consider(Radiologie, Befunddokument_bearbeiten, Befund_bearbeiten)Consider(Radiologie, Befunddokument_freigeben, Befund_freigeben)Consider(Radiologie, Befunddokument_sperren, Befund_sperren)

A.2.3 Die Relation „ Use“Use(Patientenverwaltung, Stammdatendokument_1, Stammdaten)Use(Patientenverwaltung, Behandlungsfalldokument_1, Behandlungsfall)Use(Patientenverwaltung, Behandlungsfalldokument_2, Behandlungsfall)Use(Patientenverwaltung, Zuordnungsdokument_1, Zuordnung)Use(Patientenverwaltung, Zuordnungsdokument_2, Zuordnung)Use(Patientenverwaltung, Aufenthaltsdokument_1, Aufenthalt)Use(Patientenverwaltung, Befunddokument_1, Externer_Befund)Use(Patientenverwaltung, Befunddokument_2, Externer_Befund)Use(Chirurgie, Stammdatendokument_1, Stammdaten)Use(Chirurgie, Behandlungsfalldokument_1, Behandlungsfall)Use(Chirurgie, Behandlungsfalldokument_2, Behandlungsfall)Use(Chirurgie, Aufenthaltsdokument_1, Aufenthalt)Use(Chirurgie, Befunddokument_1, Interner_Befund)Use(Chirurgie, Befunddokument_2, Externer_Befund)Use(Radiologie, Stammdatendokument_1, Stammdaten)Use(Radiologie, Behandlungsfalldokument_1, Behandlungsfall)Use(Radiologie, Behandlungsfalldokument_2, Behandlungsfall)Use(Radiologie, Aufenthaltsdokument_1, Aufenthalt)Use(Radiologie, Befunddokument_1, Externer_Befund)Use(Radiologie, Befunddokument_2, Interner_Befund)

A.2.4 Die Relation „ Permission“Permission(Patientenverwaltung, Verwaltungsmitarbeiter, Stammdaten_erzeugen,

Stammdaten, Stammdatendokument_frei & PIN_frei)Permission(Patientenverwaltung, Verwaltungsmitarbeiter, Stammdaten_anzeigen, Stammdaten,

Stammdatendokument_belegt)Permission(Patientenverwaltung, Verwaltungsmitarbeiter, Stammdaten_bearbeiten,

Stammdaten, Stammdatendokument_belegt)Permission(Patientenverwaltung, Verwaltungsmitarbeiter, Stammdaten_loeschen, Stammdaten,

Stammdatendokument_belegt &Zu_betreffender_PIN_existieren_keine_anderen_Dokumente)

Permission(Patientenverwaltung, Verwaltungsmitarbeiter, Behandlungsfall_erzeugen,Behandlungsfall, Behandlungsfalldokument_frei & FNr_frei)

Permission(Patientenverwaltung, Verwaltungsmitarbeiter, Behandlungsfall_anzeigen,Behandlungsfall, Behandlungsfalldokument_belegt)

Page 85: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG A ZUGRIFFSKONTROLLPOLITIK

85

Permission(Patientenverwaltung, Verwaltungsmitarbeiter, Behandlungsfall_bearbeiten,Behandlungsfall, Behandlungsfalldokument_belegt)

Permission(Patientenverwaltung, Verwaltungsmitarbeiter, Behandlungsfall_loeschen,Behandlungsfall, Behandlungsfalldokument_belegt &Zu_betreffender_FNr_existieren_keine_anderen_Dokumente)

Permission(Patientenverwaltung, Verwaltungsmitarbeiter, Zuordnung_erzeugen, Zuordnung,Zuordnungsdokument_frei & PIN_belegt & FNr_belegt &Zu_FNr_existiert_kein_Zuordnungsdokument)

Permission(Patientenverwaltung, Verwaltungsmitarbeiter, Zuordnung_anzeigen, Zuordnung,Zuordnungsdokument_belegt)

Permission(Patientenverwaltung, Verwaltungsmitarbeiter, Zuordnung_loeschen, Zuordnung,Zuordnungsdokument_belegt)

Permission(Patientenverwaltung, Verwaltungsmitarbeiter, Aufenthalt_beginnen, Aufenthalt,Aufenthaltsdokument_frei & FNr_belegt & Zu_FNr_existiert_kein_Aufenthaltsdokument)

Permission(Patientenverwaltung, Verwaltungsmitarbeiter, Aufenthalt_pruefen, Aufenthalt,Aufenthaltsdokument_belegt)

Permission(Patientenverwaltung, Verwaltungsmitarbeiter, Aufenthalt_beenden, Aufenthalt,Aufenthaltsdokument_belegt)

Permission(Patientenverwaltung, Verwaltungsmitarbeiter, Befund_loeschen, Externer_Befund,Befunddokument_belegt & Zu_betreffender_FNr_existiert_kein_Aufenthaltsdokument)

Permission(Chirurgie, Arzt, Stammdaten_anzeigen, Stammdaten,Stammdatendokument_belegt &Zu_einer_der_zugeordneten_FNrn_existiert_ein_Aufenthaltsdokument_mit_- uebereinstimmendem_Ort)

Permission(Chirurgie, Arzt, Behandlungsfall_anzeigen, Behandlungsfall,Behandlungsfalldokument_belegt &Zu_betreffender_FNr_existiert_ein_Aufenthaltsdokument_mit_- uebereinstimmendem_Ort)

Permission(Chirurgie, Arzt, Aufenthalt_pruefen, Aufenthalt, Aufenthaltsdokument_belegt &Ort_stimmt_ueberein)

Permission(Chirurgie, Arzt, Aufenthalt_aendern, Aufenthalt, Aufenthaltsdokument_belegt &Ort_stimmt_ueberein)

Permission(Chirurgie, Arzt, Befund_erzeugen, Interner_Befund, Befunddokument_frei &Zu_FNr_existiert_ein_Aufenthaltsdokument_mit_uebereinstimmendem_Ort)

Permission(Chirurgie, Arzt, Befund_anzeigen, Interner_Befund, Befunddokument_belegt &Zu_einer_der_zugeordneten_FNrn_existiert_ein_Aufenthaltsdokument_mit_- uebereinstimmendem_Ort)

Permission(Chirurgie, Arzt, Befund_anzeigen, Externer_Befund, Befunddokument_belegt &Befunddokument_freigegeben &Zu_betreffender_FNr_existiert_ein_Aufenthaltsdokument_mit_- uebereinstimmendem_Ort)

Permission(Chirurgie, Arzt, Befund_bearbeiten, Interner_Befund, Befunddokument_belegt &Zu_betreffender_FNr_existiert_ein_Aufenthaltsdokument_mit_- uebereinstimmendem_Ort)

Permission(Chirurgie, Arzt, Befund_freigeben, Interner_Befund, Befunddokument_belegt &Befunddokument_gesperrt)

Permission(Chirurgie, Arzt, Befund_sperren, Interner_Befund, Befunddokument_belegt &Befunddokument_freigegeben)

Permission(Chirurgie, Pflegekraft, Behandlungsfall_anzeigen, Behandlungsfall,Behandlungsfalldokument_belegt &Zu_betreffender_FNr_existiert_ein_Aufenthaltsdokument_mit_- uebereinstimmendem_Ort)

Permission(Chirurgie, Pflegekraft, Befund_anzeigen, Interner_Befund, Befunddokument_belegt& Zu_betreffender_FNr_existiert_ein_Aufenthaltsdokument_mit_- uebereinstimmendem_Ort)

Permission(Radiologie, Arzt, Stammdaten_anzeigen, Stammdaten,Stammdatendokument_belegt &Zu_einer_der_zugeordneten_FNrn_existiert_ein_Aufenthaltsdokument_mit_- uebereinstimmendem_Ort)

Page 86: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG A ZUGRIFFSKONTROLLPOLITIK

86

Permission(Radiologie, Arzt, Behandlungsfall_anzeigen, Behandlungsfall,Behandlungsfalldokument_belegt &Zu_betreffender_FNr_existiert_ein_Aufenthaltsdokument_mit_- uebereinstimmendem_Ort)

Permission(Radiologie, Arzt, Aufenthalt_pruefen, Aufenthalt, Aufenthaltsdokument_belegt &Ort_stimmt_ueberein)

Permission(Radiologie, Arzt, Aufenthalt_aendern, Aufenthalt, Aufenthaltsdokument_belegt &Ort_stimmt_ueberein)

Permission(Radiologie, Arzt, Befund_erzeugen, Interner_Befund, Befunddokument_frei &Zu_FNr_existiert_ein_Aufenthaltsdokument_mit_uebereinstimmendem_Ort)

Permission(Radiologie, Arzt, Befund_anzeigen, Interner_Befund, Befunddokument_belegt &Zu_einer_der_zugeordneten_FNrn_existiert_ein_Aufenthaltsdokument_mit_- uebereinstimmendem_Ort)

Permission(Radiologie, Arzt, Befund_anzeigen, Externer_Befund, Befunddokument_belegt &Befunddokument_freigegeben &Zu_betreffender_FNr_existiert_ein_Aufenthaltsdokument_mit_- uebereinstimmendem_Ort)

Permission(Radiologie, Arzt, Befund_bearbeiten, Interner_Befund, Befunddokument_belegt &Zu_betreffender_FNr_existiert_ein_Aufenthaltsdokument_mit_- uebereinstimmendem_Ort)

Permission(Radiologie, Arzt, Befund_freigeben, Interner_Befund, Befunddokument_belegt &Befunddokument_gesperrt)

Permission(Radiologie, Arzt, Befund_sperren, Interner_Befund, Befunddokument_belegt &Befunddokument_freigegeben)

Page 87: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG B PERMISSION CHECKER

87

Anhang B PERMISSIONCHECKER

B.1 APA

Zustandsname Domäne Initialwertrequest SAOTupel (s1,a1,o1)permitttedRequest SAOTupel ('none', 'none', 'none')Empower OrgSRListe [(org1,s1,r1)]Consider OrgATListe [(org1,a1,t1)]Use OrgOVListe [(org1,o1,v1)]Define OrgSAOCListe [(org1,s1,a1,o1,c1)]Permission OrgRTVCListe [(org1,r1,t1,v1,c1)]

Page 88: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG B PERMISSION CHECKER

88

B.2 Preamble/ * =========================================================================* // * = Mengen: =* // * =========================================================================* /

def set Or g = { none, or g1, or g2, or g3} ;

def set S = { none, s1, s2, s3} ;def set A = { none, a1, a2, a3} ;def set O = { none, o1, o2, o3} ;

def set R = { none, r 1, r 2, r 3} ;def set T = { none, t 1, t 2, t 3} ;def set V = { none, v1, v2, v3} ;

def set C = { none, c1, c2, c3} ;

def set Bool ean = { f al se, t r ue} ;

/ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * /

def set Or gSRTupel = pr o( Or g, S, R) ;def set Or gATTupel = pr o( Or g, A, T) ;def set Or gOVTupel = pr o( Or g, O, V) ;def set Or gSAOCTupel = pr o( Or g, S, A, O, C) ;def set Or gRTVCTupel = pr o( Or g, R, T, V, C) ;def set SAOTupel = pr o( S, A, O) ;

def set Or gRTupel = pr o( Or g, R) ;def set Or gTTupel = pr o( Or g, T) ;def set Or gVTupel = pr o( Or g, V) ;def set Or gCTupel = pr o( Or g, C) ;def set Or gRTTupel = pr o( Or g, R, T) ;def set Or gRTVTupel = pr o( Or g, R, T, V) ;

def set Or gSRLi st e = [ Or gSRTupel ] ;def set Or gATLi st e = [ Or gATTupel ] ;def set Or gOVLi st e = [ Or gOVTupel ] ;def set Or gSAOCLi st e = [ Or gSAOCTupel ] ;def set Or gRTVCLi st e = [ Or gRTVCTupel ] ;def set SAOLi st e = [ SAOTupel ] ;

def set Or gRLi st e = [ Or gRTupel ] ;def set Or gTLi st e = [ Or gTTupel ] ;def set Or gVLi st e = [ Or gVTupel ] ;def set Or gCLi st e = [ Or gCTupel ] ;def set Or gRTLi st e = [ Or gRTTupel ] ;def set Or gRTVLi st e = [ Or gRTVTupel ] ;

/ * =========================================================================* // * = Funkt i onen: =* // * =========================================================================* /

def r ec l er zeugeOr gRLi st e : pr o( Or gSRLi st e, S) >> Or gRLi st e er zeugeOr gRLi st e( [ ] , s) = [ ] , er zeugeOr gRLi st e( cons( head, l i s t ) , s) = i f p( 2, head) = s t hen pushnew( ( p( 1, head) , p( 3, head) ) , er zeugeOr gRLi st e( l i s t , s) ) el se er zeugeOr gRLi st e( l i s t , s) , er zeugeOr gRLi st e( l i s t , s) ;

def r ec l er zeugeOr gTLi st e : pr o( Or gATLi st e, A) >> Or gTLi st e er zeugeOr gTLi st e( [ ] , a) = [ ] , er zeugeOr gTLi st e( cons( head, l i s t ) , a) = i f p( 2, head) = a t hen pushnew( ( p( 1, head) , p( 3, head) ) , er zeugeOr gTLi st e( l i s t , a) ) el se er zeugeOr gTLi st e( l i s t , a) , er zeugeOr gTLi st e( l i s t , a) ;

def r ec l er zeugeOr gVLi st e : pr o( Or gOVLi st e, O) >> Or gVLi st e er zeugeOr gVLi st e( [ ] , o) = [ ] ,

Page 89: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG B PERMISSION CHECKER

89

er zeugeOr gVLi st e( cons( head, l i s t ) , o) = i f p( 2, head) = o t hen pushnew( ( p( 1, head) , p( 3, head) ) , er zeugeOr gVLi st e( l i s t , o) ) el se er zeugeOr gVLi st e( l i s t , o) , er zeugeOr gVLi st e( l i s t , o) ;

def r ec l er zeugeOr gCLi st e : pr o( Or gSAOCLi st e, SAOTupel ) >> Or gCLi st e er zeugeOr gCLi st e( [ ] , sAOTupel ) = [ ] , er zeugeOr gCLi st e( cons( head, l i s t ) , sAOTupel ) = i f p( 2, head) = p( 1, sAOTupel ) & p( 3, head) = p( 2, sAOTupel ) & p( 4, head) = p( 3, sAOTupel ) t hen pushnew( ( p( 1, head) , p( 5, head) ) , er zeugeOr gCLi st e( l i s t , sAOTupel ) ) el se er zeugeOr gCLi st e( l i s t , sAOTupel ) , er zeugeOr gCLi st e( l i s t , sAOTupel ) ;

/ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * /

def r ec l er schaf f eOr gRTLi st e : pr o( Or gTLi st e, Or gRTupel ) >> Or gRTLi st e er schaf f eOr gRTLi st e( [ ] , or gRTupel ) = [ ] , er schaf f eOr gRTLi st e( cons( head, l i s t ) , or gRTupel ) = i f p( 1, head) = p( 1, or gRTupel ) t hen pushnew( ( p( 1, or gRTupel ) , p( 2, or gRTupel ) , p( 2, head) ) , er schaf f eOr gRTLi st e( l i s t , or gRTupel ) ) el se er schaf f eOr gRTLi st e( l i s t , or gRTupel ) , er schaf f eOr gRTLi st e( l i s t , or gRTupel ) ;

def r ec l er zeugeOr gRTLi st e : pr o( Or gRLi st e, Or gTLi st e) >> Or gRTLi st e er zeugeOr gRTLi st e( [ ] , or gTLi st e) = [ ] , er zeugeOr gRTLi st e( cons( head, l i s t ) , or gTLi st e) = append( er schaf f eOr gRTLi st e( or gTLi st e, head) , er zeugeOr gRTLi st e( l i s t , or gTLi st e) ) , er zeugeOr gRTLi st e( l i s t , or gTLi st e) ;

def r ec l er schaf f eOr gRTVLi st e : pr o( Or gVLi st e, Or gRTTupel ) >> Or gRTVLi st e er schaf f eOr gRTVLi st e( [ ] , or gRTTupel ) = [ ] , er schaf f eOr gRTVLi st e( cons( head, l i s t ) , or gRTTupel ) = i f p( 1, head) = p( 1, or gRTTupel ) t hen pushnew( ( p( 1, or gRTTupel ) , p( 2, or gRTTupel ) , p( 3, or gRTTupel ) , p( 2, head) ) , er schaf f eOr gRTVLi st e( l i s t , or gRTTupel ) ) el se er schaf f eOr gRTVLi st e( l i s t , or gRTTupel ) , er schaf f eOr gRTVLi st e( l i s t , or gRTTupel ) ;

def r ec l er zeugeOr gRTVLi st e : pr o( Or gRTLi st e, Or gVLi st e) >> Or gRTVLi st e er zeugeOr gRTVLi st e( [ ] , or gVLi st e) = [ ] , er zeugeOr gRTVLi st e( cons( head, l i s t ) , or gVLi st e) = append( er schaf f eOr gRTVLi st e( or gVLi st e, head) , er zeugeOr gRTVLi st e( l i s t , or gVLi st e) ) , er zeugeOr gRTVLi st e( l i s t , or gVLi st e) ;

def r ec l er schaf f eOr gRTVCLi st e : pr o( Or gCLi st e, Or gRTVTupel ) >> Or gRTVCLi st e er schaf f eOr gRTVCLi st e( [ ] , or gRTVTupel ) = [ ] , er schaf f eOr gRTVCLi st e( cons( head, l i s t ) , or gRTVTupel ) = i f p( 1, head) = p( 1, or gRTVTupel ) t hen pushnew( ( p( 1, or gRTVTupel ) , p( 2, or gRTVTupel ) , p( 3, or gRTVTupel ) , p( 4, or gRTVTupel ) , p( 2, head) ) , er schaf f eOr gRTVCLi st e( l i s t , or gRTVTupel ) ) el se er schaf f eOr gRTVCLi st e( l i s t , or gRTVTupel ) , er schaf f eOr gRTVCLi st e( l i s t , or gRTVTupel ) ;

def r ec l er zeugeOr gRTVCLi st e : pr o( Or gRTVLi st e, Or gCLi st e) >> Or gRTVCLi st e er zeugeOr gRTVCLi st e( [ ] , or gCLi st e) = [ ] , er zeugeOr gRTVCLi st e( cons( head, l i s t ) , or gCLi st e) = append( er schaf f eOr gRTVCLi st e( or gCLi st e, head) ,

Page 90: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG B PERMISSION CHECKER

90

er zeugeOr gRTVCLi st e( l i s t , or gCLi st e) ) , er zeugeOr gRTVCLi st e( l i s t , or gCLi st e) ;

/ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * /

def r ec l or gRTVCTupel Ent hal t en2 : pr o( Or gRTVCLi st e, Or gRTVCTupel ) >> Bool ean or gRTVCTupel Ent hal t en2( [ ] , or gRTVCTupel ) = f al se, or gRTVCTupel Ent hal t en2( cons( head, l i s t ) , or gRTVCTupel ) = i f head = or gRTVCTupel t hen t r ue el se or gRTVCTupel Ent hal t en2( l i s t , or gRTVCTupel ) , or gRTVCTupel Ent hal t en2( l i s t , or gRTVCTupel ) ;

def r ec l or gRTVCTupel Ent hal t en : pr o( Or gRTVCLi st e, Or gRTVCLi st e) >> Bool ean or gRTVCTupel Ent hal t en( [ ] , or gRTVCLi st e) = f al se, or gRTVCTupel Ent hal t en( cons( head, l i s t ) , or gRTVCLi st e) = i f or gRTVCTupel Ent hal t en2( or gRTVCLi st e, head) = t r ue t hen t r ue el se or gRTVCTupel Ent hal t en( l i s t , or gRTVCLi st e) , or gRTVCTupel Ent hal t en( l i s t , or gRTVCLi st e) ;

/ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * /

def t er m i sPer mi t t ed : pr o( SAOTupel , Or gSRLi st e, Or gOVLi st e, Or gATLi st e, Or gSAOCLi st e, Or gRTVCLi st e) >> Bool ean i sPer mi t t ed( sAOTupel , or gSRLi st e, or gOVLi st e, or gATLi st e, or gSAOCLi st e, or gRTVCLi st e) = or gRTVCTupel Ent hal t en( er zeugeOr gRTVCLi st e( er zeugeOr gRTVLi st e( er zeugeOr gRTLi st e( er zeugeOr gRLi st e( or gSRLi st e, p( 1, sAOTupel ) ) , er zeugeOr gTLi st e( or gATLi st e, p( 2, sAOTupel ) ) ) , er zeugeOr gVLi st e( or gOVLi st e, p( 3, sAOTupel ) ) ) , er zeugeOr gCLi st e( or gSAOCLi st e, sAOTupel ) ) , or gRTVCLi st e) ;

/ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * /

Page 91: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG C KRANKENHAUS-APA

91

Anhang C KRANKENHAUS-APA

C.1 APA

Page 92: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG C KRANKENHAUS-APA

92

Zustandsname Domäne InitialwertStammdatendokumente Stammdatendokumentliste []Behandlungsfalldokumente Behandlungsfalldokumentliste []Zuordnungsdokumente Zuordnungsdokumentliste []Aufenthaltsdokumente Aufenthaltsdokumentliste []Befunddokumente Befunddokumentliste []

C.2 Preamble

C.2.1 Mengen/ * =========================================================================* // * = Pr eambl e: Mengen =* // * =========================================================================* /

def set Or g = { Pat i ent enver wal t ung, Chi r ur gi e, Radi ol ogi e} ;

def set S = { Kl ei n, Br i nkmann, Muel l er , Schmi dt } ;

def set A = { St ammdat endokument _er zeugen, St ammdat endokument _anzei gen, St ammdat endokument _bear bei t en, St ammdat endokument _l oeschen, Behandl ungsf al l dokument _er zeugen, Behandl ungsf al l dokument _anzei gen, Behandl ungsf al l dokument _bear bei t en, Behandl ungsf al l dokument _l oeschen, Zuor dnungsdokument _er zeugen, Zuor dnungsdokument _anzei gen, Zuor dnungsdokument _l oeschen, Auf ent hal t sdokument _er zeugen, Auf ent hal t sdokument _anzei gen, Auf ent hal t sdokument _bear bei t en, Auf ent hal t sdokument _l oeschen, Bef unddokument _er zeugen, Bef unddokument _anzei gen, Bef unddokument _bear bei t en, Bef unddokument _l oeschen, Bef unddokument _f r ei geben, Bef unddokument _sper r en} ;

def set O = { St ammdat endokument _1, Behandl ungsf al l dokument _1, Behandl ungsf al l dokument _2, Zuor dnungsdokument _1, Zuor dnungsdokument _2, Auf ent hal t sdokument _1, Bef unddokument _1, Bef unddokument _2} ;

def set R = { Ver wal t ungsmi t ar bei t er , Ar zt , Pf l egekr af t } ;

def set T = { St ammdat en_er zeugen, St ammdat en_anzei gen, St ammdat en_bear bei t en, St ammdat en_l oeschen, Behandl ungsf al l _er zeugen, Behandl ungsf al l _anzei gen, Behandl ungsf al l _bear bei t en, Behandl ungsf al l _l oeschen, Zuor dnung_er zeugen,

Page 93: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG C KRANKENHAUS-APA

93

Zuor dnung_anzei gen, Zuor dnung_l oeschen, Auf ent hal t _begi nnen, Auf ent hal t _pr uef en, Auf ent hal t _aender n, Auf ent hal t _beenden, Bef und_er zeugen, Bef und_anzei gen, Bef und_bear bei t en, Bef und_l oeschen, Bef und_f r ei geben, Bef und_sper r en} ;

def set V = { St ammdat en, Behandl ungsf al l , Zuor dnung, Auf ent hal t , I nt er ner _Bef und, Ext er ner _Bef und} ;

def set C = { St ammdat endokument _f r ei , St ammdat endokument _bel egt , Behandl ungsf al l dokument _f r ei , Behandl ungsf al l dokument _bel egt , Zuor dnungsdokument _f r ei , Zuor dnungsdokument _bel egt , Auf ent hal t sdokument _f r ei , Auf ent hal t sdokument _bel egt , Bef unddokument _f r ei , Bef unddokument _bel egt , PI N_f r ei , PI N_bel egt , FNr _f r ei , FNr _bel egt , Bef unddokument _f r ei gegeben, Bef unddokument _gesper r t , Or t _st i mmt _ueber ei n, Or t _st i mmt _ni cht _ueber ei n, Zu_bet r ef f ender _PI N_exi st i er en_ander e_Dokument e, Zu_bet r ef f ender _PI N_exi st i er en_kei ne_ander en_Dokument e, Zu_bet r ef f ender _FNr _exi st i er en_ander e_Dokument e, Zu_bet r ef f ender _FNr _exi st i er en_kei ne_ander en_Dokument e, Zu_FNr _exi st i er t _ei n_Zuor dnungsdokument , Zu_FNr _exi st i er t _kei n_Zuor dnungsdokument , Zu_FNr _exi st i er t _ei n_Auf ent hal t sdokument , Zu_FNr _exi st i er t _kei n_Auf ent hal t sdokument , Zu_bet r ef f ender _FNr _exi st i er t _ei n_Auf ent hal t sdokument , Zu_bet r ef f ender _FNr _exi st i er t _kei n_Auf ent hal t sdokument , Zu_FNr _exi st i er t _ei n_Auf ent hal t sdokument _mi t _ueber ei nst i mmendem_Or t , Zu_FNr _exi st i er t _kei n_Auf ent hal t sdokument _mi t _ueber ei nst i mmendem_Or t , Zu_bet r ef f ender _FNr _exi st i er t _ei n_Auf ent hal t sdokument _mi t _-

ueber ei nst i mmendem_Or t , Zu_bet r ef f ender _FNr _exi st i er t _kei n_Auf ent hal t sdokument _mi t _-

ueber ei nst i mmendem_Or t , Zu_ei ner _der _zugeor dnet en_FNr n_exi st i er t _ei n_Auf ent hal t sdokument _mi t _-

ueber ei nst i mmendem_Or t , Zu_kei ner _der _zugeor dnet en_FNr n_exi st i er t _ei n_Auf ent hal t sdokument _mi t _-

ueber ei nst i mmendem_Or t } ;

def set PI Ns = nat _0;def set FNr n = nat _0;

def set St at us = { f r ei gegeben, gesper r t } ;def set Bool ean = { f al se, t r ue} ;def set Or gNone = Or g | | { none} ;

/ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * /

def set Or gLi st e = [ Or g] ;def set Or gLi st e2 = [ Or gNone] ;def set SLi st e = [ S] ;def set ALi st e = [ A] ;def set OLi st e = [ O] ;def set CLi st e = [ C] ;def set PI NLi st e = [ PI Ns] ;def set FNr Li st e = [ FNr n] ;def set St at usLi st e = [ St at us] ;

Page 94: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG C KRANKENHAUS-APA

94

def set Or gSRTupel = pr o( Or g, S, R) ;def set Or gATTupel = pr o( Or g, A, T) ;def set Or gOVTupel = pr o( Or g, O, V) ;def set Or gRTVCTupel = pr o( Or g, R, T, V, CLi st e) ;def set Or gRTupel = pr o( Or g, R) ;def set Or gTTupel = pr o( Or g, T) ;def set Or gVTupel = pr o( Or g, V) ;def set Or gCTupel = pr o( Or g, CLi st e) ;def set Or gRTTupel = pr o( Or g, R, T) ;def set Or gRTVTupel = pr o( Or g, R, T, V) ;

def set Or gSRLi st e = [ Or gSRTupel ] ;def set Or gATLi st e = [ Or gATTupel ] ;def set Or gOVLi st e = [ Or gOVTupel ] ;def set Or gRTVCLi st e = [ Or gRTVCTupel ] ;def set Or gRLi st e = [ Or gRTupel ] ;def set Or gTLi st e = [ Or gTTupel ] ;def set Or gVLi st e = [ Or gVTupel ] ;def set Or gCLi st e = [ Or gCTupel ] ;def set Or gRTLi st e = [ Or gRTTupel ] ;def set Or gRTVLi st e = [ Or gRTVTupel ] ;

def set St ammdat endokument e = pr o( O, PI Ns) ;def set Behandl ungsf al l dokument e = pr o( O, FNr n) ;def set Zuor dnungsdokument e = pr o( O, PI Ns, FNr n) ;def set Auf ent hal t sdokument e = pr o( O, FNr n, Or g) ;def set Bef unddokument e = pr o( O, FNr n, St at us) ;

def set PI NDokument e = St ammdat endokument e;def set FNr Dokument e = Behandl ungsf al l dokument e | | Auf ent hal t sdokument e | | Bef unddokument e;def set Dokument e = PI NDokument e | | FNr Dokument e | | Zuor dnungsdokument e;

def set St ammdat endokument l i s t e = [ St ammdat endokument e] ;def set Behandl ungsf al l dokument l i s t e = [ Behandl ungsf al l dokument e] ;def set Zuor dnungsdokument l i s t e = [ Zuor dnungsdokument e] ;def set Auf ent hal t sdokument l i s t e = [ Auf ent hal t sdokument e] ;def set Bef unddokument l i s t e = [ Bef unddokument e] ;

def set PI NDokument l i s t e = [ PI NDokument e] ;def set FNr Dokument l i s t e = [ FNr Dokument e] ;def set Dokument l i s t e = [ Dokument e] ;

/ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * /

C.2.2 Konstanten und Wertetabellen/ * =========================================================================* // * = Pr eambl e: Konst ant en und Wer t et abel l en =* // * =========================================================================* /

def const empower >> Or gSRLi st e = [ ( Pat i ent enver wal t ung, Kl ei n, Ver wal t ungsmi t ar bei t er ) , ( Chi r ur gi e, Br i nkmann, Ar zt ) , ( Chi r ur gi e, Muel l er , Pf l egekr af t ) , ( Radi ol ogi e, Schmi dt , Ar zt ) ] ;

def const consi der >> Or gATLi st e = [ ( Pat i ent enver wal t ung, St ammdat endokument _er zeugen, St ammdat en_er zeugen) , ( Pat i ent enver wal t ung, St ammdat endokument _anzei gen, St ammdat en_anzei gen) , ( Pat i ent enver wal t ung, St ammdat endokument _bear bei t en, St ammdat en_bear bei t en) , ( Pat i ent enver wal t ung, St ammdat endokument _l oeschen, St ammdat en_l oeschen) , ( Pat i ent enver wal t ung, Behandl ungsf al l dokument _er zeugen,

Behandl ungsf al l _er zeugen) , ( Pat i ent enver wal t ung, Behandl ungsf al l dokument _anzei gen,

Behandl ungsf al l _anzei gen) , ( Pat i ent enver wal t ung, Behandl ungsf al l dokument _bear bei t en,

Behandl ungsf al l _bear bei t en) , ( Pat i ent enver wal t ung, Behandl ungsf al l dokument _l oeschen,

Behandl ungsf al l _l oeschen) , ( Pat i ent enver wal t ung, Zuor dnungsdokument _er zeugen, Zuor dnung_er zeugen) ,

Page 95: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG C KRANKENHAUS-APA

95

( Pat i ent enver wal t ung, Zuor dnungsdokument _anzei gen, Zuor dnung_anzei gen) , ( Pat i ent enver wal t ung, Zuor dnungsdokument _l oeschen, Zuor dnung_l oeschen) , ( Pat i ent enver wal t ung, Auf ent hal t sdokument _er zeugen, Auf ent hal t _begi nnen) , ( Pat i ent enver wal t ung, Auf ent hal t sdokument _anzei gen, Auf ent hal t _pr uef en) , ( Pat i ent enver wal t ung, Auf ent hal t sdokument _l oeschen, Auf ent hal t _beenden) , ( Pat i ent enver wal t ung, Bef unddokument _l oeschen, Bef und_l oeschen) , ( Chi r ur gi e, St ammdat endokument _anzei gen, St ammdat en_anzei gen) , ( Chi r ur gi e, Behandl ungsf al l dokument _anzei gen,

Behandl ungsf al l _anzei gen) , ( Chi r ur gi e, Auf ent hal t sdokument _anzei gen, Auf ent hal t _pr uef en) , ( Chi r ur gi e, Auf ent hal t sdokument _bear bei t en, Auf ent hal t _aender n) , ( Chi r ur gi e, Bef unddokument _er zeugen, Bef und_er zeugen) , ( Chi r ur gi e, Bef unddokument _anzei gen, Bef und_anzei gen) , ( Chi r ur gi e, Bef unddokument _bear bei t en, Bef und_bear bei t en) , ( Chi r ur gi e, Bef unddokument _f r ei geben, Bef und_f r ei geben) , ( Chi r ur gi e, Bef unddokument _sper r en, Bef und_sper r en) , ( Radi ol ogi e, St ammdat endokument _anzei gen, St ammdat en_anzei gen) , ( Radi ol ogi e, Behandl ungsf al l dokument _anzei gen,

Behandl ungsf al l _anzei gen) , ( Radi ol ogi e, Auf ent hal t sdokument _anzei gen, Auf ent hal t _pr uef en) , ( Radi ol ogi e, Auf ent hal t sdokument _bear bei t en, Auf ent hal t _aender n) , ( Radi ol ogi e, Bef unddokument _er zeugen, Bef und_er zeugen) , ( Radi ol ogi e, Bef unddokument _anzei gen, Bef und_anzei gen) , ( Radi ol ogi e, Bef unddokument _bear bei t en, Bef und_bear bei t en) , ( Radi ol ogi e, Bef unddokument _f r ei geben, Bef und_f r ei geben) , ( Radi ol ogi e, Bef unddokument _sper r en, Bef und_sper r en) ] ;

def const use >> Or gOVLi st e = [ ( Pat i ent enver wal t ung, St ammdat endokument _1, St ammdat en) , ( Pat i ent enver wal t ung, Behandl ungsf al l dokument _1, Behandl ungsf al l ) , ( Pat i ent enver wal t ung, Behandl ungsf al l dokument _2, Behandl ungsf al l ) , ( Pat i ent enver wal t ung, Zuor dnungsdokument _1, Zuor dnung) , ( Pat i ent enver wal t ung, Zuor dnungsdokument _2, Zuor dnung) , ( Pat i ent enver wal t ung, Auf ent hal t sdokument _1, Auf ent hal t ) , ( Pat i ent enver wal t ung, Bef unddokument _1, Ext er ner _Bef und) , ( Pat i ent enver wal t ung, Bef unddokument _2, Ext er ner _Bef und) , ( Chi r ur gi e, St ammdat endokument _1, St ammdat en) , ( Chi r ur gi e, Behandl ungsf al l dokument _1, Behandl ungsf al l ) , ( Chi r ur gi e, Behandl ungsf al l dokument _2, Behandl ungsf al l ) , ( Chi r ur gi e, Auf ent hal t sdokument _1, Auf ent hal t ) , ( Chi r ur gi e, Bef unddokument _1, I nt er ner _Bef und) , ( Chi r ur gi e, Bef unddokument _2, Ext er ner _Bef und) , ( Radi ol ogi e, St ammdat endokument _1, St ammdat en) , ( Radi ol ogi e, Behandl ungsf al l dokument _1, Behandl ungsf al l ) , ( Radi ol ogi e, Behandl ungsf al l dokument _2, Behandl ungsf al l ) , ( Radi ol ogi e, Auf ent hal t sdokument _1, Auf ent hal t ) , ( Radi ol ogi e, Bef unddokument _1, Ext er ner _Bef und) , ( Radi ol ogi e, Bef unddokument _2, I nt er ner _Bef und) ] ;

def const per mi ss i on >> Or gRTVCLi st e = [ ( Pat i ent enver wal t ung, Ver wal t ungsmi t ar bei t er , St ammdat en_er zeugen,

St ammdat en, [ St ammdat endokument _f r ei , PI N_f r ei ] ) , ( Pat i ent enver wal t ung, Ver wal t ungsmi t ar bei t er , St ammdat en_anzei gen,

St ammdat en, [ St ammdat endokument _bel egt ] ) , ( Pat i ent enver wal t ung, Ver wal t ungsmi t ar bei t er , St ammdat en_bear bei t en,

St ammdat en, [ St ammdat endokument _bel egt ] ) , ( Pat i ent enver wal t ung, Ver wal t ungsmi t ar bei t er , St ammdat en_l oeschen,

St ammdat en, [ St ammdat endokument _bel egt ,Zu_bet r ef f ender _PI N_exi st i er en_kei ne_ander en_Dokument e] ) ,

( Pat i ent enver wal t ung, Ver wal t ungsmi t ar bei t er , Behandl ungsf al l _er zeugen,Behandl ungsf al l , [ Behandl ungsf al l dokument _f r ei , FNr _f r ei ] ) ,

( Pat i ent enver wal t ung, Ver wal t ungsmi t ar bei t er , Behandl ungsf al l _anzei gen,Behandl ungsf al l , [ Behandl ungsf al l dokument _bel egt ] ) ,

( Pat i ent enver wal t ung, Ver wal t ungsmi t ar bei t er , Behandl ungsf al l _bear bei t en,Behandl ungsf al l , [ Behandl ungsf al l dokument _bel egt ] ) ,

( Pat i ent enver wal t ung, Ver wal t ungsmi t ar bei t er , Behandl ungsf al l _l oeschen,Behandl ungsf al l , [ Behandl ungsf al l dokument _bel egt ,Zu_bet r ef f ender _FNr _exi st i er en_kei ne_ander en_Dokument e] ) ,

( Pat i ent enver wal t ung, Ver wal t ungsmi t ar bei t er , Zuor dnung_er zeugen,Zuor dnung, [ Zuor dnungsdokument _f r ei , PI N_bel egt , FNr _bel egt ,Zu_FNr _exi st i er t _kei n_Zuor dnungsdokument ] ) ,

( Pat i ent enver wal t ung, Ver wal t ungsmi t ar bei t er , Zuor dnung_anzei gen,Zuor dnung, [ Zuor dnungsdokument _bel egt ] ) ,

( Pat i ent enver wal t ung, Ver wal t ungsmi t ar bei t er , Zuor dnung_l oeschen,Zuor dnung, [ Zuor dnungsdokument _bel egt ] ) ,

Page 96: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG C KRANKENHAUS-APA

96

( Pat i ent enver wal t ung, Ver wal t ungsmi t ar bei t er , Auf ent hal t _begi nnen,Auf ent hal t , [ Auf ent hal t sdokument _f r ei , FNr _bel egt ,Zu_FNr _exi st i er t _kei n_Auf ent hal t sdokument ] ) ,

( Pat i ent enver wal t ung, Ver wal t ungsmi t ar bei t er , Auf ent hal t _pr uef en,Auf ent hal t , [ Auf ent hal t sdokument _bel egt ] ) ,

( Pat i ent enver wal t ung, Ver wal t ungsmi t ar bei t er , Auf ent hal t _beenden,Auf ent hal t , [ Auf ent hal t sdokument _bel egt ] ) ,

( Pat i ent enver wal t ung, Ver wal t ungsmi t ar bei t er , Bef und_l oeschen,Ext er ner _Bef und, [ Bef unddokument _bel egt ,Zu_bet r ef f ender _FNr _exi st i er t _kei n_Auf ent hal t sdokument ] ) ,

( Chi r ur gi e, Ar zt , St ammdat en_anzei gen,St ammdat en, [ St ammdat endokument _bel egt ,Zu_ei ner _der _zugeor dnet en_FNr n_exi st i er t _ei n_Auf ent hal t sdokument _mi t _ueber ei nsti mmendem_Or t ] ) ,

( Chi r ur gi e, Ar zt , Behandl ungsf al l _anzei gen,Behandl ungsf al l , [ Behandl ungsf al l dokument _bel egt ,Zu_bet r ef f ender _FNr _exi st i er t _ei n_Auf ent hal t sdokument _mi t _ueber ei nst i mmendem_Ort ] ) ,

( Chi r ur gi e, Ar zt , Auf ent hal t _pr uef en,Auf ent hal t , [ Auf ent hal t sdokument _bel egt , Or t _st i mmt _ueber ei n] ) ,

( Chi r ur gi e, Ar zt , Auf ent hal t _aender n,Auf ent hal t , [ Auf ent hal t sdokument _bel egt , Or t _st i mmt _ueber ei n] ) ,

( Chi r ur gi e, Ar zt , Bef und_er zeugen,I nt er ner _Bef und, [ Bef unddokument _f r ei ,Zu_FNr _exi st i er t _ei n_Auf ent hal t sdokument _mi t _ueber ei nst i mmendem_Or t ] ) ,

( Chi r ur gi e, Ar zt , Bef und_anzei gen,I nt er ner _Bef und, [ Bef unddokument _bel egt ,Zu_ei ner _der _zugeor dnet en_FNr n_exi st i er t _ei n_Auf ent hal t sdokument _mi t _ueber ei nsti mmendem_Or t ] ) ,

( Chi r ur gi e, Ar zt , Bef und_anzei gen,Ext er ner _Bef und, [ Bef unddokument _bel egt , Bef unddokument _f r ei gegeben,Zu_bet r ef f ender _FNr _exi st i er t _ei n_Auf ent hal t sdokument _mi t _ueber ei nst i mmendem_Ort ] ) ,

( Chi r ur gi e, Ar zt , Bef und_bear bei t en,I nt er ner _Bef und, [ Bef unddokument _bel egt ,Zu_bet r ef f ender _FNr _exi st i er t _ei n_Auf ent hal t sdokument _mi t _ueber ei nst i mmendem_Ort ] ) ,

( Chi r ur gi e, Ar zt , Bef und_f r ei geben,I nt er ner _Bef und, [ Bef unddokument _bel egt , Bef unddokument _gesper r t ] ) ,

( Chi r ur gi e, Ar zt , Bef und_sper r en,I nt er ner _Bef und, [ Bef unddokument _bel egt , Bef unddokument _f r ei gegeben] ) ,

( Chi r ur gi e, Pf l egekr af t , Behandl ungsf al l _anzei gen,Behandl ungsf al l , [ Behandl ungsf al l dokument _bel egt ,Zu_bet r ef f ender _FNr _exi st i er t _ei n_Auf ent hal t sdokument _mi t _ueber ei nst i mmendem_Ort ] ) ,

( Chi r ur gi e, Pf l egekr af t , Bef und_anzei gen,I nt er ner _Bef und, [ Bef unddokument _bel egt ,Zu_bet r ef f ender _FNr _exi st i er t _ei n_Auf ent hal t sdokument _mi t _ueber ei nst i mmendem_Ort ] ) ,

( Radi ol ogi e, Ar zt , St ammdat en_anzei gen,St ammdat en, [ St ammdat endokument _bel egt ,Zu_ei ner _der _zugeor dnet en_FNr n_exi st i er t _ei n_Auf ent hal t sdokument _mi t _ueber ei nsti mmendem_Or t ] ) ,

( Radi ol ogi e, Ar zt , Behandl ungsf al l _anzei gen,Behandl ungsf al l , [ Behandl ungsf al l dokument _bel egt ,Zu_bet r ef f ender _FNr _exi st i er t _ei n_Auf ent hal t sdokument _mi t _ueber ei nst i mmendem_Ort ] ) ,

( Radi ol ogi e, Ar zt , Auf ent hal t _pr uef en,Auf ent hal t , [ Auf ent hal t sdokument _bel egt , Or t _st i mmt _ueber ei n] ) ,

( Radi ol ogi e, Ar zt , Auf ent hal t _aender n,Auf ent hal t , [ Auf ent hal t sdokument _bel egt , Or t _st i mmt _ueber ei n] ) ,

( Radi ol ogi e, Ar zt , Bef und_er zeugen,I nt er ner _Bef und, [ Bef unddokument _f r ei ,Zu_FNr _exi st i er t _ei n_Auf ent hal t sdokument _mi t _ueber ei nst i mmendem_Or t ] ) ,

( Radi ol ogi e, Ar zt , Bef und_anzei gen,I nt er ner _Bef und, [ Bef unddokument _bel egt ,Zu_ei ner _der _zugeor dnet en_FNr n_exi st i er t _ei n_Auf ent hal t sdokument _mi t _ueber ei nsti mmendem_Or t ] ) ,

( Radi ol ogi e, Ar zt , Bef und_anzei gen,Ext er ner _Bef und, [ Bef unddokument _bel egt , Bef unddokument _f r ei gegeben,Zu_bet r ef f ender _FNr _exi st i er t _ei n_Auf ent hal t sdokument _mi t _ueber ei nst i mmendem_Ort ] ) ,

( Radi ol ogi e, Ar zt , Bef und_bear bei t en,I nt er ner _Bef und, [ Bef unddokument _bel egt ,Zu_bet r ef f ender _FNr _exi st i er t _ei n_Auf ent hal t sdokument _mi t _ueber ei nst i mmendem_Ort ] ) ,

Page 97: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG C KRANKENHAUS-APA

97

( Radi ol ogi e, Ar zt , Bef und_f r ei geben,I nt er ner _Bef und, [ Bef unddokument _bel egt , Bef unddokument _gesper r t ] ) ,

( Radi ol ogi e, Ar zt , Bef und_sper r en,I nt er ner _Bef und, [ Bef unddokument _bel egt ,Bef unddokument _f r ei gegeben] ) ] ;

def const subj ekt e >> SLi st e = [ Kl ei n, Br i nkmann, Muel l er , Schmi dt ] ;

def const akt i onen >> ALi st e = [ St ammdat endokument _er zeugen, St ammdat endokument _anzei gen, St ammdat endokument _bear bei t en, St ammdat endokument _l oeschen, Behandl ungsf al l dokument _er zeugen, Behandl ungsf al l dokument _anzei gen, Behandl ungsf al l dokument _bear bei t en, Behandl ungsf al l dokument _l oeschen, Zuor dnungsdokument _er zeugen, Zuor dnungsdokument _anzei gen, Zuor dnungsdokument _l oeschen, Auf ent hal t sdokument _er zeugen, Auf ent hal t sdokument _anzei gen, Auf ent hal t sdokument _bear bei t en, Auf ent hal t sdokument _l oeschen, Bef unddokument _er zeugen, Bef unddokument _anzei gen, Bef unddokument _bear bei t en, Bef unddokument _l oeschen, Bef unddokument _f r ei geben, Bef unddokument _sper r en] ;

def const obj ekt e >> OLi st e = [ St ammdat endokument _1, Behandl ungsf al l dokument _1, Behandl ungsf al l dokument _2, Zuor dnungsdokument _1, Zuor dnungsdokument _2, Auf ent hal t sdokument _1, Bef unddokument _1, Bef unddokument _2] ;

def const pi ns >> PI NLi st e = [ 1] ;

def const f nr n >> FNr Li st e = [ 1, 2] ;

def const or gani sat i onen >> Or gLi st e = [ Pat i ent enver wal t ung, Chi r ur gi e, Radi ol ogi e] ;

def const auf ent hal t sor t e >> Or gLi st e = [ Chi r ur gi e, Radi ol ogi e] ;

/ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * /

def t ab er mi t t l eObj ekt i ndex : O >> nat _0 er mi t t l eObj ekt i ndex( St ammdat endokument _1) = 1, er mi t t l eObj ekt i ndex( Behandl ungsf al l dokument _1) = 2, er mi t t l eObj ekt i ndex( Behandl ungsf al l dokument _2) = 3, er mi t t l eObj ekt i ndex( Zuor dnungsdokument _1) = 4, er mi t t l eObj ekt i ndex( Zuor dnungsdokument _2) = 5, er mi t t l eObj ekt i ndex( Auf ent hal t sdokument _1) = 6, er mi t t l eObj ekt i ndex( Bef unddokument _1) = 7, er mi t t l eObj ekt i ndex( Bef unddokument _2) = 8 el se 0;

/ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * /

C.2.3 Funktionen

Page 98: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG C KRANKENHAUS-APA

98

/ * =========================================================================* // * = Pr eambl e: Funkt i onen =* // * =========================================================================* /

def r ec l er zeugeOr gRLi st e : pr o( Or gSRLi st e, S) >> Or gRLi st e er zeugeOr gRLi st e( [ ] , s) = [ ] , er zeugeOr gRLi st e( cons( head, l i s t ) , s) = i f p( 2, head) = s t hen pushnew( ( p( 1, head) , p( 3, head) ) , er zeugeOr gRLi st e( l i s t , s) ) el se er zeugeOr gRLi st e( l i s t , s) , er zeugeOr gRLi st e( l i s t , s) ;

def r ec l er zeugeOr gTLi st e : pr o( Or gATLi st e, A) >> Or gTLi st e er zeugeOr gTLi st e( [ ] , a) = [ ] , er zeugeOr gTLi st e( cons( head, l i s t ) , a) = i f p( 2, head) = a t hen pushnew( ( p( 1, head) , p( 3, head) ) , er zeugeOr gTLi st e( l i s t , a) ) el se er zeugeOr gTLi st e( l i s t , a) , er zeugeOr gTLi st e( l i s t , a) ;

def r ec l er zeugeOr gVLi st e : pr o( Or gOVLi st e, O) >> Or gVLi st e er zeugeOr gVLi st e( [ ] , o) = [ ] , er zeugeOr gVLi st e( cons( head, l i s t ) , o) = i f p( 2, head) = o t hen pushnew( ( p( 1, head) , p( 3, head) ) , er zeugeOr gVLi st e( l i s t , o) ) el se er zeugeOr gVLi st e( l i s t , o) , er zeugeOr gVLi st e( l i s t , o) ;

/ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * /

def r ec l f i ndeEr st esDokument : pr o( Dokument l i s t e, O) >> Dokument l i s t e f i ndeEr st esDokument ( [ ] , o) = [ ] , f i ndeEr st esDokument ( cons( head, l i s t ) , o) = i f p( 1, head) = o t hen [ head] el se f i ndeEr st esDokument ( l i s t , o) , f i ndeEr st esDokument ( l i s t , o) ;

def r ec l f i ndeEr st esPI NDokument : pr o( PI NDokument l i s t e, PI Ns) >> PI NDokument l i s t e f i ndeEr st esPI NDokument ( [ ] , pi n) = [ ] , f i ndeEr st esPI NDokument ( cons( head, l i s t ) , pi n) = i f p( 2, head) = pi n t hen [ head] el se f i ndeEr st esPI NDokument ( l i s t , pi n) , f i ndeEr st esPI NDokument ( l i s t , pi n) ;

def r ec l f i ndeEr st esFNr Dokument : pr o( FNr Dokument l i s t e, FNr n) >> FNr Dokument l i s t e f i ndeEr st esFNr Dokument ( [ ] , f nr ) = [ ] , f i ndeEr st esFNr Dokument ( cons( head, l i s t ) , f nr ) = i f p( 2, head) = f nr t hen [ head] el se f i ndeEr st esFNr Dokument ( l i s t , f nr ) , f i ndeEr st esFNr Dokument ( l i s t , f nr ) ;

def r ec l f i ndeEr st esZuor dnungsdokument : pr o( Zuor dnungsdokument l i s t e, FNr n) >> Zuor dnungsdokument l i s t e f i ndeEr st esZuor dnungsdokument ( [ ] , f nr ) = [ ] , f i ndeEr st esZuor dnungsdokument ( cons( head, l i s t ) , f nr ) = i f p( 3, head) = f nr t hen [ head] el se f i ndeEr st esZuor dnungsdokument ( l i s t , f nr ) , f i ndeEr st esZuor dnungsdokument ( l i s t , f nr ) ;

def r ec l f i ndeZugeor dnet eFNr n : pr o( Zuor dnungsdokument l i s t e, PI Ns) >> FNr Li st e f i ndeZugeor dnet eFNr n( [ ] , pi n) = [ ] , f i ndeZugeor dnet eFNr n( cons( head, l i s t ) , pi n) = i f p( 2, head) = pi n t hen pushnew( p( 3, head) , f i ndeZugeor dnet eFNr n( l i s t , pi n) ) el se f i ndeZugeor dnet eFNr n( l i s t , pi n) , f i ndeZugeor dnet eFNr n( l i s t , pi n) ;

def r ec l f i ndeZugeor dnet ePI Ns : pr o( Zuor dnungsdokument l i s t e, FNr n) >> PI NLi st e f i ndeZugeor dnet ePI Ns( [ ] , f nr ) = [ ] , f i ndeZugeor dnet ePI Ns( cons( head, l i s t ) , f nr ) = i f p( 3, head) = f nr t hen pushnew( p( 2, head) , f i ndeZugeor dnet ePI Ns( l i s t , f nr ) )

Page 99: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG C KRANKENHAUS-APA

99

el se f i ndeZugeor dnet ePI Ns( l i s t , f nr ) , f i ndeZugeor dnet ePI Ns( l i s t , f nr ) ;

def case er mi t t l ePI N : PI NDokument e >> PI Ns er mi t t l ePI N( pi nDokument ) = i f p( 2, pi nDokument ) ? PI Ns t hen p( 2, pi nDokument ) el se 0;

def case er mi t t l eFNr : FNr Dokument e >> FNr n er mi t t l eFNr ( f nr Dokument ) = i f p( 2, f nr Dokument ) ? FNr n t hen p( 2, f nr Dokument ) el se 0;

def case er mi t t l eEr st ePI N : PI NLi st e >> PI Ns er mi t t l eEr st ePI N( pi nLi st e) = i f head( pi nLi st e) ? PI Ns t hen head( pi nLi st e) el se 0;

def case er mi t t l eOr g : Auf ent hal t sdokument e >> Or gLi st e er mi t t l eOr g( auf ent hal t sdokument ) = i f p( 3, auf ent hal t sdokument ) ? Or g t hen [ p( 3, auf ent hal t sdokument ) ] el se [ ] ;

def case er mi t t l eSt at us : Bef unddokument e >> St at usLi st e er mi t t l eSt at us( bef unddokument ) = i f p( 3, bef unddokument ) ? St at us t hen [ p( 3, bef unddokument ) ] el se [ ] ;

def case er mi t t l eBet r ef f endePI N : pr o( PI NDokument l i s t e, O) >> PI Ns er mi t t l eBet r ef f endePI N( pi nDokument l i s t e, o) = i f head( f i ndeEr st esDokument ( pi nDokument l i s t e, o) ) ? PI NDokument e t hen er mi t t l ePI N( head( f i ndeEr st esDokument ( pi nDokument l i s t e, o) ) ) el se 0;

def case er mi t t l eBet r ef f endeFNr : pr o( FNr Dokument l i s t e, O) >> FNr n er mi t t l eBet r ef f endeFNr ( f nr Dokument l i s t e, o) = i f head( f i ndeEr st esDokument ( f nr Dokument l i s t e, o) ) ? FNr Dokument e t hen er mi t t l eFNr ( head( f i ndeEr st esDokument ( f nr Dokument l i s t e, o) ) ) el se 0;

def case st ammdat endokument Fr ei Bel egt : pr o( St ammdat endokument l i s t e, O) >> CLi st e s t ammdat endokument Fr ei Bel egt ( st ammdat endokument l i s t e, o) = i f f i ndeEr st esDokument ( st ammdat endokument l i s t e, o) = [ ] t hen [ St ammdat endokument _f r ei ] el se [ St ammdat endokument _bel egt ] ;

def case behandl ungsf al l dokument Fr ei Bel egt : pr o( Behandl ungsf al l dokument l i s t e, O) >> CLi st e behandl ungsf al l dokument Fr ei Bel egt ( behandl ungsf al l dokument l i s t e, o) = i f f i ndeEr st esDokument ( behandl ungsf al l dokument l i s t e, o) = [ ] t hen [ Behandl ungsf al l dokument _f r ei ] el se [ Behandl ungsf al l dokument _bel egt ] ;

def case zuor dnungsdokument Fr ei Bel egt : pr o( Zuor dnungsdokument l i s t e, O) >> CLi st e zuor dnungsdokument Fr ei Bel egt ( zuor dnungsdokument l i s t e, o) = i f f i ndeEr st esDokument ( zuor dnungsdokument l i s t e, o) = [ ] t hen [ Zuor dnungsdokument _f r ei ] el se [ Zuor dnungsdokument _bel egt ] ;

def case auf ent hal t sdokument Fr ei Bel egt : pr o( Auf ent hal t sdokument l i s t e, O) >> CLi st e auf ent hal t sdokument Fr ei Bel egt ( auf ent hal t sdokument l i s t e, o) = i f f i ndeEr st esDokument ( auf ent hal t sdokument l i s t e, o) = [ ] t hen [ Auf ent hal t sdokument _f r ei ] el se [ Auf ent hal t sdokument _bel egt ] ;

def case bef unddokument Fr ei Bel egt : pr o( Bef unddokument l i s t e, O) >> CLi st e bef unddokument Fr ei Bel egt ( bef unddokument l i s t e, o) = i f f i ndeEr st esDokument ( bef unddokument l i s t e, o) = [ ] t hen [ Bef unddokument _f r ei ]

Page 100: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG C KRANKENHAUS-APA

100

el se [ Bef unddokument _bel egt ] ;

def case pi nFr ei Bel egt : pr o( St ammdat endokument l i s t e, PI Ns) >> CLi st e pi nFr ei Bel egt ( st ammdat endokument l i s t e, pi n) = i f f i ndeEr st esPI NDokument ( st ammdat endokument l i s t e, pi n) = [ ] t hen [ PI N_f r ei ] el se [ PI N_bel egt ] ;

def case f nr Fr ei Bel egt : pr o( Behandl ungsf al l dokument l i s t e, FNr n) >> CLi st e f nr Fr ei Bel egt ( behandl ungsf al l dokument l i s t e, f nr ) = i f f i ndeEr st esFNr Dokument ( behandl ungsf al l dokument l i s t e, f nr ) = [ ] t hen [ FNr _f r ei ] el se [ FNr _bel egt ] ;

def case bef unddokument Fr ei gegebenGesper r t : pr o( Bef unddokument l i s t e, O) >> CLi st e bef unddokument Fr ei gegebenGesper r t ( bef unddokument l i s t e, o) = i f head( er mi t t l eSt at us( head( f i ndeEr st esDokument ( bef unddokument l i s t e, o) ) ) ) = f r ei gegeben t hen [ Bef unddokument _f r ei gegeben] el se [ Bef unddokument _gesper r t ] ;

def case or t St i mmt _Ni cht _Ueber ei n : pr o( Auf ent hal t sdokument l i s t e, O, Or g) >> CLi st e or t St i mmt _Ni cht _Ueber ei n( auf ent hal t sdokument l i s t e, o, or g) = i f head( er mi t t l eOr g( head( f i ndeEr st esDokument ( auf ent hal t sdokument l i s t e, o) ) ) ) = or g t hen [ Or t _st i mmt _ueber ei n] el se [ Or t _st i mmt _ni cht _ueber ei n] ;

def case zuBet r ef f ender PI NExi st i er en_Kei ne_Ander enDokument e : pr o( PI NDokument l i s t e, PI NDokument l i s t e, Zuor dnungsdokument l i s t e, O) >> CLi st e zuBet r ef f ender PI NExi st i er en_Kei ne_Ander enDokument e( pi nDokument l i s t e1, pi nDokument l i s t e2, zuor dnungsdokument l i s t e, o) = i f f i ndeEr st esPI NDokument ( pi nDokument l i s t e2, er mi t t l eBet r ef f endePI N( pi nDokument l i s t e1, o) ) = [ ] & f i ndeZugeor dnet eFNr n( zuor dnungsdokument l i s t e, er mi t t l eBet r ef f endePI N( pi nDokument l i s t e1, o) ) = [ ] t hen [ Zu_bet r ef f ender _PI N_exi st i er en_kei ne_ander en_Dokument e] el se [ Zu_bet r ef f ender _PI N_exi st i er en_ander e_Dokument e] ;

def case zuBet r ef f ender FNr Exi st i er en_Kei ne_Ander enDokument e : pr o( FNr Dokument l i s t e, FNr Dokument l i s t e, Zuor dnungsdokument l i s t e, O) >> CLi st e zuBet r ef f ender FNr Exi st i er en_Kei ne_Ander enDokument e( f nr Dokument l i s t e1, f nr Dokument l i s t e2, zuor dnungsdokument l i s t e, o) = i f f i ndeEr st esFNr Dokument ( f nr Dokument l i s t e2, er mi t t l eBet r ef f endePI N( f nr Dokument l i s t e1, o) ) = [ ] & f i ndeZugeor dnet ePI Ns( zuor dnungsdokument l i s t e, er mi t t l eBet r ef f endeFNr ( f nr Dokument l i s t e1, o) ) = [ ] t hen [ Zu_bet r ef f ender _FNr _exi st i er en_kei ne_ander en_Dokument e] el se [ Zu_bet r ef f ender _FNr _exi st i er en_ander e_Dokument e] ;

def case zuFNr Exi st i er t _Kei n_Zuor dnungsdokument : pr o( Zuor dnungsdokument l i s t e, FNr n) >> CLi st e zuFNr Exi st i er t _Kei n_Zuor dnungsdokument ( zuor dnungsdokument l i s t e, f nr ) = i f f i ndeEr st esZuor dnungsdokument ( zuor dnungsdokument l i s t e, f nr ) = [ ] t hen [ Zu_FNr _exi st i er t _kei n_Zuor dnungsdokument ] el se [ Zu_FNr _exi st i er t _ei n_Zuor dnungsdokument ] ;

def case zuFNr Exi st i er t _Kei n_Auf ent hal t sdokument : pr o( Auf ent hal t sdokument l i s t e, FNr n) >> CLi st e

Page 101: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG C KRANKENHAUS-APA

101

zuFNr Exi st i er t _Kei n_Auf ent hal t sdokument ( auf ent hal t sdokument l i s t e, f nr ) = i f f i ndeEr st esFNr Dokument ( auf ent hal t sdokument l i s t e, f nr ) = [ ] t hen [ Zu_FNr _exi st i er t _kei n_Auf ent hal t sdokument ] el se [ Zu_FNr _exi st i er t _ei n_Auf ent hal t sdokument ] ;

def case zuBet r ef f ender FNr Exi st i er t _Kei n_Auf ent hal t sdokument : pr o( FNr Dokument l i s t e, Auf ent hal t sdokument l i s t e, O) >> CLi st e zuBet r ef f ender FNr Exi st i er t _Kei n_Auf ent hal t sdokument ( f nr Dokument l i s t e, auf ent hal t sdokument l i s t e, o) = i f f i ndeEr st esFNr Dokument ( auf ent hal t sdokument l i s t e, er mi t t l eBet r ef f endeFNr ( f nr Dokument l i s t e, o) ) = [ ] t hen [ Zu_bet r ef f ender _FNr _exi st i er t _kei n_Auf ent hal t sdokument ] el se [ Zu_bet r ef f ender _FNr _exi st i er t _ei n_Auf ent hal t sdokument ] ;

def case zuFNr Exi st i er t _Kei n_Auf ent hal t sdokument Mi t Ueber ei nst i mmendemOr t : pr o( Auf ent hal t sdokument l i s t e, FNr n, Or g) >> CLi st e zuFNr Exi st i er t _Kei n_Auf ent hal t sdokument Mi t Ueber ei nst i mmendemOr t ( auf ent hal t sdokument l i s t e, f nr , or g) = i f head( er mi t t l eOr g( head( f i ndeEr st esFNr Dokument ( auf ent hal t sdokument l i s t e, f nr ) ) ) ) = or g t hen [ Zu_FNr _exi st i er t _ei n_Auf ent hal t sdokument _mi t _ueber ei nst i mmendem_Or t ] el se [ Zu_FNr _exi st i er t _kei n_Auf ent hal t sdokument _mi t _ueber ei nst i mmendem_Or t ] ;

def case zuBet r ef f ender FNr Exi st i er t _Kei n_Auf ent hal t sdokument Mi t Ueber ei nst i mmendemOr t : pr o( FNr Dokument l i s t e, Auf ent hal t sdokument l i s t e, O, Or g) >> CLi st e zuBet r ef f ender FNr Exi st i er t _Kei n_Auf ent hal t sdokument Mi t Ueber ei nst i mmendemOr t ( f nr Dokument l i s t e, auf ent hal t sdokument l i s t e, o, or g) = i f head( er mi t t l eOr g( head( f i ndeEr st esFNr Dokument ( auf ent hal t sdokument l i s t e, er mi t t l eBet r ef f endeFNr ( f nr Dokument l i s t e, o) ) ) ) ) = or g t hen [ Zu_bet r ef f ender _FNr _exi st i er t _ei n_Auf ent hal t sdokument _mi t _ueber ei nst i mmendem_Or t ] el se [ Zu_bet r ef f ender _FNr _exi st i er t _kei n_Auf ent hal t sdokument _mi t _-

ueber ei nst i mmendem_Or t ] ;

def r ec l zuEi ner Der Zugeor dnet enFNr nExi st i er t _Kei n_Auf ent hal t sdokument Mi t -Ueber ei nst i mmendemOr t :

pr o( FNr Li st e, Auf ent hal t sdokument l i s t e, Or g) >> CLi st e zuEi ner Der Zugeor dnet enFNr nExi st i er t _Kei n_Auf ent hal t sdokument Mi t Ueber ei nst i mmendemOr t ( [ ] , auf ent hal t sdokument l i s t e, or g) = [ Zu_kei ner _der _zugeor dnet en_FNr n_exi st i er t _ei n_Auf ent hal t sdokument _mi t _-

ueber ei nst i mmendem_Or t ] , zuEi ner Der Zugeor dnet enFNr nExi st i er t _Kei n_Auf ent hal t sdokument Mi t Ueber ei nst i mmendemOr t ( cons( head, l i s t ) , auf ent hal t sdokument l i s t e, or g) = i f head( zuFNr Exi st i er t _Kei n_Auf ent hal t sdokument Mi t Ueber ei nst i mmendemOr t ( auf ent hal t sdokument l i s t e, head, or g) ) =

Zu_FNr _exi st i er t _ei n_Auf ent hal t sdokument _mi t _ueber ei nst i mmendem_Or t t hen [ Zu_ei ner _der _zugeor dnet en_FNr n_exi st i er t _ei n_Auf ent hal t sdokument _mi t _-

ueber ei nst i mmendem_Or t ] el se zuEi ner Der Zugeor dnet enFNr nExi st i er t _Kei n_Auf ent hal t sdokument Mi t -

Ueber ei nst i mmendemOr t ( l i s t , auf ent hal t sdokument l i s t e, or g) , zuEi ner Der Zugeor dnet enFNr nExi st i er t _Kei n_Auf ent hal t sdokument Mi t -

Ueber ei nst i mmendemOr t ( l i s t , auf ent hal t sdokument l i s t e, or g) ;

/ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * /

def case er zeugeOr gCTupel : pr o( Or g, O, PI Ns, FNr n, St ammdat endokument l i s t e, Behandl ungsf al l dokument l i s t e, Zuor dnungsdokument l i s t e, Auf ent hal t sdokument l i s t e, Bef unddokument l i s t e) >> Or gCTupel er zeugeOr gCTupel ( or g, o, pi n, f nr , s t ammdat endokument l i s t e, behandl ungsf al l dokument l i s t e, zuor dnungsdokument l i s t e, auf ent hal t sdokument l i s t e, bef unddokument l i s t e) =

Page 102: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG C KRANKENHAUS-APA

102

i f [ ] = [ ] t hen ( or g, append( [ ] , append( st ammdat endokument Fr ei Bel egt ( st ammdat endokument l i s t e, o) , append( behandl ungsf al l dokument Fr ei Bel egt -

( behandl ungsf al l dokument l i s t e, o) , append( zuor dnungsdokument Fr ei Bel egt ( zuor dnungsdokument l i s t e, o) , append( auf ent hal t sdokument Fr ei Bel egt ( auf ent hal t sdokument l i s t e, o) , append( bef unddokument Fr ei Bel egt ( bef unddokument l i s t e, o) , append( pi nFr ei Bel egt ( st ammdat endokument l i s t e, pi n) , append( f nr Fr ei Bel egt ( behandl ungsf al l dokument l i s t e, f nr ) , append( bef unddokument Fr ei gegebenGesper r t ( bef unddokument l i s t e, o) , append( or t St i mmt _Ni cht _Ueber ei n( auf ent hal t sdokument l i s t e, o, or g) , append( zuBet r ef f ender PI NExi st i er en_Kei ne_Ander enDokument e-

( st ammdat endokument l i s t e, [ ] , zuor dnungsdokument l i s t e, o) , append( zuBet r ef f ender FNr Exi st i er en_Kei ne_Ander enDokument e-

( behandl ungsf al l dokument l i s t e, append( auf ent hal t sdokument l i s t e, -bef unddokument l i s t e) , zuor dnungsdokument l i s t e, o) ,

append( zuFNr Exi st i er t _Kei n_Zuor dnungsdokument -( zuor dnungsdokument l i s t e, f nr ) ,

append( zuFNr Exi st i er t _Kei n_Auf ent hal t sdokument -( auf ent hal t sdokument l i s t e, f nr ) ,

append( zuBet r ef f ender FNr Exi st i er t _Kei n_Auf ent hal t sdokument -( bef unddokument l i s t e, auf ent hal t sdokument l i s t e, o) ,

append( zuFNr Exi st i er t _Kei n_Auf ent hal t sdokument Mi t -Ueber ei nst i mmendemOr t ( auf ent hal t sdokument l i s t e, f nr , or g) ,

append( zuBet r ef f ender FNr Exi st i er t _Kei n_Auf ent hal t sdokument Mi t -Ueber ei nst i mmendemOr t ( behandl ungsf al l dokument l i s t e, auf ent hal t sdokument l i s t e, -o, or g) ,

append( zuBet r ef f ender FNr Exi st i er t _Kei n_Auf ent hal t sdokument Mi t -Ueber ei nst i mmendemOr t ( bef unddokument l i s t e, auf ent hal t sdokument l i s t e, o, or g) ,

append( zuEi ner Der Zugeor dnet enFNr nExi st i er t _Kei n_-Auf ent hal t sdokument Mi t Ueber ei nst i mmendemOr t ( f i ndeZugeor dnet eFNr n-( zuor dnungsdokument l i s t e, er mi t t l eBet r ef f endePI N( st ammdat endokument l i s t e, o) ) , -auf ent hal t sdokument l i s t e, or g) ,

zuEi ner Der Zugeor dnet enFNr nExi st i er t _Kei n_-Auf ent hal t sdokument Mi t Ueber ei nst i mmendemOr t ( f i ndeZugeor dnet eFNr n-( zuor dnungsdokument l i s t e, er mi t t l eEr st ePI N( f i ndeZugeor dnet ePI Ns-( zuor dnungsdokument l i s t e, er mi t t l eBet r ef f endeFNr ( bef unddokument l i s t e, o) ) ) ) , -auf ent hal t sdokument l i s t e, or g) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )

el se ( or g, [ ] ) ;

def r ec l er zeugeOr gCLi st e : pr o( Or gLi st e, O, PI Ns, FNr n, St ammdat endokument l i s t e, Behandl ungsf al l dokument l i s t e, Zuor dnungsdokument l i s t e, Auf ent hal t sdokument l i s t e, Bef unddokument l i s t e) >> Or gCLi st e er zeugeOr gCLi st e( [ ] , o, pi n, f nr , s t ammdat endokument l i s t e, behandl ungsf al l dokument l i s t e, zuor dnungsdokument l i s t e, auf ent hal t sdokument l i s t e, bef unddokument l i s t e) = [ ] , er zeugeOr gCLi st e( cons( head, l i s t ) , o, pi n, f nr , s t ammdat endokument l i s t e, behandl ungsf al l dokument l i s t e, zuor dnungsdokument l i s t e, auf ent hal t sdokument l i s t e, bef unddokument l i s t e) = pushnew( er zeugeOr gCTupel ( head, o, pi n, f nr , s t ammdat endokument l i s t e, behandl ungsf al l dokument l i s t e, zuor dnungsdokument l i s t e, auf ent hal t sdokument l i s t e, bef unddokument l i s t e) , er zeugeOr gCLi st e( l i s t , o, pi n, f nr , s t ammdat endokument l i s t e, behandl ungsf al l dokument l i s t e, zuor dnungsdokument l i s t e, auf ent hal t sdokument l i s t e, bef unddokument l i s t e) ) , er zeugeOr gCLi st e( l i s t ,

Page 103: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG C KRANKENHAUS-APA

103

o, pi n, f nr , s t ammdat endokument l i s t e, behandl ungsf al l dokument l i s t e, zuor dnungsdokument l i s t e, auf ent hal t sdokument l i s t e, bef unddokument l i s t e) ;

/ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * /

def r ec l er schaf f eOr gRTLi st e : pr o( Or gTLi st e, Or gRTupel ) >> Or gRTLi st e er schaf f eOr gRTLi st e( [ ] , or gRTupel ) = [ ] , er schaf f eOr gRTLi st e( cons( head, l i s t ) , or gRTupel ) = i f p( 1, head) = p( 1, or gRTupel ) t hen pushnew( ( p( 1, or gRTupel ) , p( 2, or gRTupel ) , p( 2, head) ) , er schaf f eOr gRTLi st e( l i s t , or gRTupel ) ) el se er schaf f eOr gRTLi st e( l i s t , or gRTupel ) , er schaf f eOr gRTLi st e( l i s t , or gRTupel ) ;

def r ec l er zeugeOr gRTLi st e : pr o( Or gRLi st e, Or gTLi st e) >> Or gRTLi st e er zeugeOr gRTLi st e( [ ] , or gTLi st e) = [ ] , er zeugeOr gRTLi st e( cons( head, l i s t ) , or gTLi st e) = append( er schaf f eOr gRTLi st e( or gTLi st e, head) , er zeugeOr gRTLi st e( l i s t , or gTLi st e) ) , er zeugeOr gRTLi st e( l i s t , or gTLi st e) ;

def r ec l er schaf f eOr gRTVLi st e : pr o( Or gVLi st e, Or gRTTupel ) >> Or gRTVLi st e er schaf f eOr gRTVLi st e( [ ] , or gRTTupel ) = [ ] , er schaf f eOr gRTVLi st e( cons( head, l i s t ) , or gRTTupel ) = i f p( 1, head) = p( 1, or gRTTupel ) t hen pushnew( ( p( 1, or gRTTupel ) , p( 2, or gRTTupel ) , p( 3, or gRTTupel ) , p( 2, head) ) , er schaf f eOr gRTVLi st e( l i s t , or gRTTupel ) ) el se er schaf f eOr gRTVLi st e( l i s t , or gRTTupel ) , er schaf f eOr gRTVLi st e( l i s t , or gRTTupel ) ;

def r ec l er zeugeOr gRTVLi st e : pr o( Or gRTLi st e, Or gVLi st e) >> Or gRTVLi st e er zeugeOr gRTVLi st e( [ ] , or gVLi st e) = [ ] , er zeugeOr gRTVLi st e( cons( head, l i s t ) , or gVLi st e) = append( er schaf f eOr gRTVLi st e( or gVLi st e, head) , er zeugeOr gRTVLi st e( l i s t , or gVLi st e) ) , er zeugeOr gRTVLi st e( l i s t , or gVLi st e) ;

def r ec l er schaf f eOr gRTVCLi st e : pr o( Or gCLi st e, Or gRTVTupel ) >> Or gRTVCLi st e er schaf f eOr gRTVCLi st e( [ ] , or gRTVTupel ) = [ ] , er schaf f eOr gRTVCLi st e( cons( head, l i s t ) , or gRTVTupel ) = i f p( 1, head) = p( 1, or gRTVTupel ) t hen pushnew( ( p( 1, or gRTVTupel ) , p( 2, or gRTVTupel ) , p( 3, or gRTVTupel ) , p( 4, or gRTVTupel ) , p( 2, head) ) , er schaf f eOr gRTVCLi st e( l i s t , or gRTVTupel ) ) el se er schaf f eOr gRTVCLi st e( l i s t , or gRTVTupel ) , er schaf f eOr gRTVCLi st e( l i s t , or gRTVTupel ) ;

def r ec l er zeugeOr gRTVCLi st e : pr o( Or gRTVLi st e, Or gCLi st e) >> Or gRTVCLi st e er zeugeOr gRTVCLi st e( [ ] , or gCLi st e) = [ ] , er zeugeOr gRTVCLi st e( cons( head, l i s t ) , or gCLi st e) = append( er schaf f eOr gRTVCLi st e( or gCLi st e, head) , er zeugeOr gRTVCLi st e( l i s t , or gCLi st e) ) , er zeugeOr gRTVCLi st e( l i s t , or gCLi st e) ;

/ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * /

def r ec l cEnt hal t en : pr o( CLi st e, C) >> Bool ean cEnt hal t en( [ ] , c) = f al se, cEnt hal t en( cons( head, l i s t ) , c) = i f head = c t hen t r ue el se cEnt hal t en( l i s t , c) , cEnt hal t en( l i s t , c) ;

Page 104: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG C KRANKENHAUS-APA

104

def r ec l cLi s t eEnt hal t en : pr o( CLi st e, CLi st e) >> Bool ean cLi s t eEnt hal t en( [ ] , cLi s t e) = t r ue, cLi s t eEnt hal t en( cons( head, l i s t ) , cLi s t e) = i f cEnt hal t en( cLi st e, head) = t r ue t hen cLi st eEnt hal t en( l i s t , cLi s t e) el se f al se, cLi s t eEnt hal t en( l i s t , cLi s t e) ;

def r ec l or gRTVCTupel Ent hal t en2 : pr o( Or gRTVCLi st e, Or gRTVCTupel ) >> Bool ean or gRTVCTupel Ent hal t en2( [ ] , or gRTVCTupel ) = f al se, or gRTVCTupel Ent hal t en2( cons( head, l i s t ) , or gRTVCTupel ) = i f p( 1, head) = p( 1, or gRTVCTupel ) & p( 2, head) = p( 2, or gRTVCTupel ) & p( 3, head) = p( 3, or gRTVCTupel ) & p( 4, head) = p( 4, or gRTVCTupel ) & cLi s t eEnt hal t en( p( 5, head) , p( 5, or gRTVCTupel ) ) = t r ue t hen t r ue el se or gRTVCTupel Ent hal t en2( l i s t , or gRTVCTupel ) , or gRTVCTupel Ent hal t en2( l i s t , or gRTVCTupel ) ;

def r ec l or gRTVCTupel Ent hal t en : pr o( Or gRTVCLi st e, Or gRTVCLi st e) >> Bool ean or gRTVCTupel Ent hal t en( [ ] , or gRTVCLi st e) = f al se, or gRTVCTupel Ent hal t en( cons( head, l i s t ) , or gRTVCLi st e) = i f or gRTVCTupel Ent hal t en2( or gRTVCLi st e, head) = t r ue t hen t r ue el se or gRTVCTupel Ent hal t en( l i s t , or gRTVCLi st e) , or gRTVCTupel Ent hal t en( l i s t , or gRTVCLi st e) ;

/ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * /

def t er m i sPer mi t t ed : pr o( S, A, O, Or gSRLi st e, Or gATLi st e, Or gOVLi st e, Or gRTVCLi st e, PI Ns, FNr n, Or gLi st e, St ammdat endokument l i s t e, Behandl ungsf al l dokument l i s t e, Zuor dnungsdokument l i s t e, Auf ent hal t sdokument l i s t e, Bef unddokument l i s t e) >> Bool ean i sPer mi t t ed( s, a, o, or gSRLi st e, or gATLi st e, or gOVLi st e, or gRTVCLi st e, pi n, f nr , or gLi st e, s t ammdat endokument l i s t e, behandl ungsf al l dokument l i s t e, zuor dnungsdokument l i s t e, auf ent hal t sdokument l i s t e, bef unddokument l i s t e) = or gRTVCTupel Ent hal t en( er zeugeOr gRTVCLi st e( er zeugeOr gRTVLi st e( er zeugeOr gRTLi st e( er zeugeOr gRLi st e( or gSRLi st e, s) , er zeugeOr gTLi st e( or gATLi st e, a) ) , er zeugeOr gVLi st e( or gOVLi st e, o) ) , er zeugeOr gCLi st e( or gLi st e, o, pi n, f nr , s t ammdat endokument l i s t e, behandl ungsf al l dokument l i s t e, zuor dnungsdokument l i s t e, auf ent hal t sdokument l i s t e, bef unddokument l i s t e) ) , or gRTVCLi st e) ;

/ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * /

def case k l ei ner gl ei ch : pr o( O, O) >> Bool ean k l ei ner gl ei ch( o1, o2) = i f er mi t t l eObj ekt i ndex( o1) <= er mi t t l eObj ekt i ndex( o2) t hen t r ue el se f al se;

def r ec l er zeugeDokument : pr o( Dokument l i s t e, Dokument e) >> Dokument l i s t e er zeugeDokument ( [ ] , dokument ) = [ dokument ] , er zeugeDokument ( cons( head, l i s t ) , dokument ) = i f k l ei ner gl ei ch( p( 1, dokument ) , p( 1, head) ) = t r ue t hen pushnew( dokument , cons( head, l i s t ) ) el se

Page 105: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG C KRANKENHAUS-APA

105

cons( head, er zeugeDokument ( l i s t , dokument ) ) , er zeugeDokument ( l i s t , dokument ) ;

def r ec l l oescheDokument : pr o( Dokument l i s t e, O) >> Dokument l i s t e l oescheDokument ( [ ] , o) = [ ] , l oescheDokument ( cons( head, l i s t ) , o) = i f p( 1, head) = o t hen l oescheDokument ( l i s t , o) el se cons( head, l oescheDokument ( l i s t , o) ) , l oescheDokument ( l i s t , o) ;

def r ec l bear bei t eAuf ent hal t sdokument : pr o( Auf ent hal t sdokument l i s t e, O, Or g) >> Auf ent hal t sdokument l i s t e bear bei t eAuf ent hal t sdokument ( [ ] , o, or g) = [ ] , bear bei t eAuf ent hal t sdokument ( cons( head, l i s t ) , o, or g) = i f p( 1, head) = o t hen pushnew( ( p( 1, head) , p( 2, head) , or g) , bear bei t eAuf ent hal t sdokument ( l i s t , o, or g) ) el se cons( head, bear bei t eAuf ent hal t sdokument ( l i s t , o, or g) ) , bear bei t eAuf ent hal t sdokument ( l i s t , o, or g) ;

def r ec l f r ei gebeBef unddokument : pr o( Bef unddokument l i s t e, O) >> Bef unddokument l i s t e f r ei gebeBef unddokument ( [ ] , o) = [ ] , f r ei gebeBef unddokument ( cons( head, l i s t ) , o) = i f p( 1, head) = o t hen

cons( ( p( 1, head) , p( 2, head) , f r ei gegeben) , f r ei gebeBef unddokument ( l i s t , o) ) el se cons( head, f r ei gebeBef unddokument ( l i s t , o) ) , f r ei gebeBef unddokument ( l i s t , o) ;

def r ec l sper r eBef unddokument : pr o( Bef unddokument l i s t e, O) >> Bef unddokument l i s t e sper r eBef unddokument ( [ ] , o) = [ ] , sper r eBef unddokument ( cons( head, l i s t ) , o) = i f p( 1, head) = o t hen

cons( ( p( 1, head) , p( 2, head) , gesper r t ) , sper r eBef unddokument ( l i s t , o) ) el se cons( head, sper r eBef unddokument ( l i s t , o) ) , sper r eBef unddokument ( l i s t , o) ;

/ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * /

def case f 1 : pr o( St ammdat endokument l i s t e, A, O, PI Ns) >> St ammdat endokument l i s t e f 1( st ammdat endokument l i s t e, a, o, pi n) = i f a = St ammdat endokument _er zeugen t hen er zeugeDokument ( st ammdat endokument l i s t e, ( o, pi n) ) , i f a = St ammdat endokument _l oeschen t hen l oescheDokument ( st ammdat endokument l i s t e, o) el se s t ammdat endokument l i s t e;

def case f 2 : pr o( Behandl ungsf al l dokument l i s t e, A, O, FNr n) >> Behandl ungsf al l dokument l i s t e f 2( behandl ungsf al l dokument l i s t e, a, o, f nr ) = i f a = Behandl ungsf al l dokument _er zeugen t hen er zeugeDokument ( behandl ungsf al l dokument l i s t e, ( o, f nr ) ) , i f a = Behandl ungsf al l dokument _l oeschen t hen l oescheDokument ( behandl ungsf al l dokument l i s t e, o) el se behandl ungsf al l dokument l i s t e;

def case f 3 : pr o( Zuor dnungsdokument l i s t e, A, O, PI Ns, FNr n) >> Zuor dnungsdokument l i s t e f 3( zuor dnungsdokument l i s t e, a, o, pi n, f nr ) = i f a = Zuor dnungsdokument _er zeugen t hen er zeugeDokument ( zuor dnungsdokument l i s t e, ( o, pi n, f nr ) ) , i f a = Zuor dnungsdokument _l oeschen t hen l oescheDokument ( zuor dnungsdokument l i s t e, o) el se zuor dnungsdokument l i s t e;

def case f 4 : pr o( Auf ent hal t sdokument l i s t e, A, O, FNr n, Or gNone) >> Auf ent hal t sdokument l i s t e f 4( auf ent hal t sdokument l i s t e, a, o, f nr , or g) = i f a = Auf ent hal t sdokument _er zeugen & or g ? Or g t hen er zeugeDokument ( auf ent hal t sdokument l i s t e, ( o, f nr , or g) ) , i f a = Auf ent hal t sdokument _bear bei t en & or g ? Or g t hen

Page 106: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG C KRANKENHAUS-APA

106

bear bei t eAuf ent hal t sdokument ( auf ent hal t sdokument l i s t e, o, or g) , i f a = Auf ent hal t sdokument _l oeschen t hen l oescheDokument ( auf ent hal t sdokument l i s t e, o) el se auf ent hal t sdokument l i s t e;

def case f 5 : pr o( Bef unddokument l i s t e, A, O, FNr n) >> Bef unddokument l i s t e f 5( bef unddokument l i s t e, a, o, f nr ) = i f a = Bef unddokument _er zeugen t hen er zeugeDokument ( bef unddokument l i s t e, ( o, f nr , gesper r t ) ) , i f a = Bef unddokument _l oeschen t hen l oescheDokument ( bef unddokument l i s t e, o) , i f a = Bef unddokument _f r ei geben t hen f r ei gebeBef unddokument ( bef unddokument l i s t e, o) , i f a = Bef unddokument _sper r en t hen sper r eBef unddokument ( bef unddokument l i s t e, o) el se bef unddokument l i s t e;

/ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * /

def case g1 : pr o( PI NLi st e, A) >> PI NLi st e g1( pi nLi st e, a) = i f a = St ammdat endokument _er zeugen | a = Zuor dnungsdokument _er zeugen t hen pi nLi st e el se [ 0] ;

def case g2 : pr o( FNr Li st e, A) >> FNr Li st e g2( f nr Li s t e, a) = i f a = Behandl ungsf al l dokument _er zeugen | a = Zuor dnungsdokument _er zeugen | a = Auf ent hal t sdokument _er zeugen | a = Bef unddokument _er zeugen t hen f nr Li s t e el se [ 0] ;

def case g3 : pr o( Or gLi st e, A) >> Or gLi st e2 g3( or gLi st e, a) = i f a = Auf ent hal t sdokument _er zeugen | a = Auf ent hal t sdokument _bear bei t en t hen or gLi st e el se [ none] ;

/ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * /

Page 107: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG D HOMOMORPHISMEN

107

Anhang D HOMO-MORPHISMEN

D.1 Homomorphismus 1[ - ] - Kr ankenhaus | +- [ - ] - T ( , T( o=' Bef unddokument _1' ) , ) ; " Bef unddokument _1" | +- [ - ] - t r ue ( , T( a=' Bef unddokument _er zeugen' ) , ) ; " er zeugen" | | | +- - - - - t r ue | | | +- [ - ] - f al se ( , T( a=' Bef unddokument _anzei gen' ) , ) ; " anzei gen" | | | +- - - - - t r ue | | | +- [ - ] - f al se ( , T( a=' Bef unddokument _bear bei t en' ) , ) ; " bear bei t en" | | | +- - - - - t r ue | | | +- [ - ] - f al se ( , T( a=' Bef unddokument _l oeschen' ) , ) ; " l oeschen" | | | +- - - - - t r ue | | | +- [ - ] - f al se ( , T( a=' Bef unddokument _f r ei geben' ) , ) ; " f r ei geben" | | | +- - - - - t r ue | | | +- [ - ] - f al se ( , T( a=' Bef unddokument _sper r en' ) , ) ; " sper r en" | | | +- - - - - t r ue | | | +- [ - ] - f al se ( , , ) ; " UNBEKANNT" | | | +- - - - - t r ue | | | +- - - - - f al se | +- - - - - f al se - > Epsi l on

D.2 Homomorphismus 2[ - ] - Kr ankenhaus | +- [ - ] - T ( , T( o=' Bef unddokument _2' ) , ) ; " Bef unddokument _2" | +- [ - ] - t r ue ( , T( a=' Bef unddokument _er zeugen' ) , ) ; " er zeugen" | | | +- - - - - t r ue | | | +- [ - ] - f al se ( , T( a=' Bef unddokument _anzei gen' ) , ) ; " anzei gen" | | | +- - - - - t r ue | | | +- [ - ] - f al se ( , T( a=' Bef unddokument _bear bei t en' ) , ) ; " bear bei t en" | | | +- - - - - t r ue | | | +- [ - ] - f al se ( , T( a=' Bef unddokument _l oeschen' ) , ) ; " l oeschen"

Page 108: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG D HOMOMORPHISMEN

108

| | | +- - - - - t r ue | | | +- [ - ] - f al se ( , T( a=' Bef unddokument _f r ei geben' ) , ) ; " f r ei geben" | | | +- - - - - t r ue | | | +- [ - ] - f al se ( , T( a=' Bef unddokument _sper r en' ) , ) ; " sper r en" | | | +- - - - - t r ue | | | +- [ - ] - f al se ( , , ) ; " UNBEKANNT" | | | +- - - - - t r ue | | | +- - - - - f al se | +- - - - - f al se - > Epsi l on

D.3 Homomorphismus 3[ - ] - Kr ankenhaus | +- [ - ] - T ( , T( o=' Bef unddokument _1' ) , ) ; " Bef unddokument _1" | +- [ - ] - t r ue ( , T( a=' Bef unddokument _er zeugen' ) , ) ; " er zeugen" | | | +- [ - ] - t r ue ( , T( s=' Kl ei n' ) , ) ; " er zeugen dur ch Kl ei n" | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Br i nkmann' ) , ) ; " er zeugen dur ch Br i nkmann" | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Muel l er ' ) , ) ; " er zeugen dur ch Muel l er " | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Schmi dt ' ) , ) ; " er zeugen dur ch Schmi dt " | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , , ) ; " er zeugen dur ch UNBEKANNT" | | | | | +- - - - - t r ue | | | | | +- - - - - f al se | | | +- [ - ] - f al se ( , T( a=' Bef unddokument _anzei gen' ) , ) ; " anzei gen" | | | +- [ - ] - t r ue ( , T( s=' Kl ei n' ) , ) ; " anzei gen dur ch Kl ei n" | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Br i nkmann' ) , ) ; " anzei gen dur ch Br i nkmann" | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Muel l er ' ) , ) ; " anzei gen dur ch Muel l er " | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Schmi dt ' ) , ) ; " anzei gen dur ch Schmi dt " | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , , ) ; " anzei gen dur ch UNBEKANNT" | | | | | +- - - - - t r ue | | | | | +- - - - - f al se | | | +- [ - ] - f al se ( , T( a=' Bef unddokument _bear bei t en' ) , ) ; " bear bei t en"

Page 109: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG D HOMOMORPHISMEN

109

| | | +- [ - ] - t r ue ( , T( s=' Kl ei n' ) , ) ; " bear bei t en dur ch Kl ei n" | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Br i nkmann' ) , ) ; " bear bei t en dur ch Br i nkmann" | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Muel l er ' ) , ) ; " bear bei t en dur ch Muel l er " | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Schmi dt ' ) , ) ; " bear bei t en dur ch Schmi dt " | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , , ) ; " bear bei t en dur ch UNBEKANNT" | | | | | +- - - - - t r ue | | | | | +- - - - - f al se | | | +- [ - ] - f al se ( , T( a=' Bef unddokument _l oeschen' ) , ) ; " l oeschen" | | | +- [ - ] - t r ue ( , T( s=' Kl ei n' ) , ) ; " l oeschen dur ch Kl ei n" | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Br i nkmann' ) , ) ; " l oeschen dur ch Br i nkmann" | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Muel l er ' ) , ) ; " l oeschen dur ch Muel l er " | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Schmi dt ' ) , ) ; " l oeschen dur ch Schmi dt " | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , , ) ; " l oeschen dur ch UNBEKANNT" | | | | | +- - - - - t r ue | | | | | +- - - - - f al se | | | +- [ - ] - f al se ( , T( a=' Bef unddokument _f r ei geben' ) , ) ; " f r ei geben" | | | +- [ - ] - t r ue ( , T( s=' Kl ei n' ) , ) ; " f r ei geben dur ch Kl ei n" | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Br i nkmann' ) , ) ; " f r ei geben dur ch Br i nkmann" | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Muel l er ' ) , ) ; " f r ei geben dur ch Muel l er " | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Schmi dt ' ) , ) ; " f r ei geben dur ch Schmi dt " | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , , ) ; " f r ei geben dur ch UNBEKANNT" | | | | | +- - - - - t r ue | | | | | +- - - - - f al se | | | +- [ - ] - f al se ( , T( a=' Bef unddokument _sper r en' ) , ) ; " sper r en" | | | +- [ - ] - t r ue ( , T( s=' Kl ei n' ) , ) ; " sper r en dur ch Kl ei n" | | | | | +- - - - - t r ue | | |

Page 110: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG D HOMOMORPHISMEN

110

| | +- [ - ] - f al se ( , T( s=' Br i nkmann' ) , ) ; " sper r en dur ch Br i nkmann" | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Muel l er ' ) , ) ; " sper r en dur ch Muel l er " | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Schmi dt ' ) , ) ; " sper r en dur ch Schmi dt " | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , , ) ; " sper r en dur ch UNBEKANNT" | | | | | +- - - - - t r ue | | | | | +- - - - - f al se | | | +- [ - ] - f al se ( , , ) ; " UNBEKANNT" | | | +- - - - - t r ue | | | +- - - - - f al se | +- - - - - f al se - > Epsi l on

D.4 Homomorphismus 4[ - ] - Kr ankenhaus | +- [ - ] - T ( , T( o=' Bef unddokument _2' ) , ) ; " Bef unddokument _2" | +- [ - ] - t r ue ( , T( a=' Bef unddokument _er zeugen' ) , ) ; " er zeugen" | | | +- [ - ] - t r ue ( , T( s=' Kl ei n' ) , ) ; " er zeugen dur ch Kl ei n" | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Br i nkmann' ) , ) ; " er zeugen dur ch Br i nkmann" | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Muel l er ' ) , ) ; " er zeugen dur ch Muel l er " | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Schmi dt ' ) , ) ; " er zeugen dur ch Schmi dt " | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , , ) ; " er zeugen dur ch UNBEKANNT" | | | | | +- - - - - t r ue | | | | | +- - - - - f al se | | | +- [ - ] - f al se ( , T( a=' Bef unddokument _anzei gen' ) , ) ; " anzei gen" | | | +- [ - ] - t r ue ( , T( s=' Kl ei n' ) , ) ; " anzei gen dur ch Kl ei n" | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Br i nkmann' ) , ) ; " anzei gen dur ch Br i nkmann" | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Muel l er ' ) , ) ; " anzei gen dur ch Muel l er " | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Schmi dt ' ) , ) ; " anzei gen dur ch Schmi dt " | | | | | +- - - - - t r ue | | |

Page 111: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG D HOMOMORPHISMEN

111

| | +- [ - ] - f al se ( , , ) ; " anzei gen dur ch UNBEKANNT" | | | | | +- - - - - t r ue | | | | | +- - - - - f al se | | | +- [ - ] - f al se ( , T( a=' Bef unddokument _bear bei t en' ) , ) ; " bear bei t en" | | | +- [ - ] - t r ue ( , T( s=' Kl ei n' ) , ) ; " bear bei t en dur ch Kl ei n" | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Br i nkmann' ) , ) ; " bear bei t en dur ch Br i nkmann" | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Muel l er ' ) , ) ; " bear bei t en dur ch Muel l er " | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Schmi dt ' ) , ) ; " bear bei t en dur ch Schmi dt " | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , , ) ; " bear bei t en dur ch UNBEKANNT" | | | | | +- - - - - t r ue | | | | | +- - - - - f al se | | | +- [ - ] - f al se ( , T( a=' Bef unddokument _l oeschen' ) , ) ; " l oeschen" | | | +- [ - ] - t r ue ( , T( s=' Kl ei n' ) , ) ; " l oeschen dur ch Kl ei n" | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Br i nkmann' ) , ) ; " l oeschen dur ch Br i nkmann" | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Muel l er ' ) , ) ; " l oeschen dur ch Muel l er " | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Schmi dt ' ) , ) ; " l oeschen dur ch Schmi dt " | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , , ) ; " l oeschen dur ch UNBEKANNT" | | | | | +- - - - - t r ue | | | | | +- - - - - f al se | | | +- [ - ] - f al se ( , T( a=' Bef unddokument _f r ei geben' ) , ) ; " f r ei geben" | | | +- [ - ] - t r ue ( , T( s=' Kl ei n' ) , ) ; " f r ei geben dur ch Kl ei n" | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Br i nkmann' ) , ) ; " f r ei geben dur ch Br i nkmann" | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Muel l er ' ) , ) ; " f r ei geben dur ch Muel l er " | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Schmi dt ' ) , ) ; " f r ei geben dur ch Schmi dt " | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , , ) ; " f r ei geben dur ch UNBEKANNT" | | | | | +- - - - - t r ue | | | | | +- - - - - f al se

Page 112: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG D HOMOMORPHISMEN

112

| | | +- [ - ] - f al se ( , T( a=' Bef unddokument _sper r en' ) , ) ; " sper r en" | | | +- [ - ] - t r ue ( , T( s=' Kl ei n' ) , ) ; " sper r en dur ch Kl ei n" | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Br i nkmann' ) , ) ; " sper r en dur ch Br i nkmann" | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Muel l er ' ) , ) ; " sper r en dur ch Muel l er " | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Schmi dt ' ) , ) ; " sper r en dur ch Schmi dt " | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , , ) ; " sper r en dur ch UNBEKANNT" | | | | | +- - - - - t r ue | | | | | +- - - - - f al se | | | +- [ - ] - f al se ( , , ) ; " UNBEKANNT" | | | +- - - - - t r ue | | | +- - - - - f al se | +- - - - - f al se - > Epsi l on

D.5 Homomorphismus 5[ - ] - Kr ankenhaus | +- [ - ] - T ( , T( s=' Br i nkmann' & a=' Bef unddokument _er zeugen' ) , ) ; " Br i nkmann er zeugtBef unddokument " | +- - - - - t r ue | +- - - - - f al se - > Epsi l on

D.6 Homomorphismus 6[ - ] - Kr ankenhaus | +- [ - ] - T ( , T( s=' Br i nkmann' & a=' Bef unddokument _l oeschen' ) , ) ; " Br i nkmann l oeschtBef unddokument " | +- - - - - t r ue | +- - - - - f al se - > Epsi l on

D.7 Homomorphismus 7[ - ] - Kr ankenhaus | +- [ - ] - T ( , T( s=' Muel l er ' & a=' Bef unddokument _bear bei t en' ) , ) ; " Muel l er bear bei t etBef unddokument " | +- - - - - t r ue | +- - - - - f al se - > Epsi l on

Page 113: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG D HOMOMORPHISMEN

113

D.8 Homomorphismus 8[ - ] - Kr ankenhaus | +- [ - ] - T ( , T( o=' Auf ent hal t sdokument _1' ) , ) ; " Auf ent hal t sdokument _1" | +- [ - ] - t r ue ( , T( a=' Auf ent hal t sdokument _er zeugen' ) , ) ; " er zeugen" | | | +- - - - - t r ue | | | +- [ - ] - f al se ( , T( a=' Auf ent hal t sdokument _anzei gen' ) , ) ; " anzei gen" | | | +- - - - - t r ue | | | +- [ - ] - f al se ( , T( a=' Auf ent hal t sdokument _bear bei t en' ) , ) ; " bear bei t en" | | | +- - - - - t r ue | | | +- [ - ] - f al se ( , T( a=' Auf ent hal t sdokument _l oeschen' ) , ) ; " l oeschen" | | | +- - - - - t r ue | | | +- [ - ] - f al se ( , , ) ; " UNBEKANNT" | | | +- - - - - t r ue | | | +- - - - - f al se | +- - - - - f al se - > Epsi l on

D.9 Homomorphismus 9[ - ] - Kr ankenhaus | +- [ - ] - T ( , T( o=' Auf ent hal t sdokument _1' ) , ) ; " Auf ent hal t sdokument _1" | +- [ - ] - t r ue ( , T( a=' Auf ent hal t sdokument _er zeugen' ) , ) ; " er zeugen" | | | +- [ - ] - t r ue ( , T( s=' Kl ei n' ) , ) ; " er zeugen dur ch Kl ei n" | | | | | +- [ - ] - t r ue ( , T( or g=' Chi r ur gi e' ) , ) ; " er zeugen dur ch Kl ei n mi t Chi r ur gi e" | | | | | | | +- - - - - t r ue | | | | | | | +- [ - ] - f al se ( , T( or g=' Radi ol ogi e' ) , ) ; " er zeugen dur ch Kl ei n mi t | | | | Radi ol ogi e" | | | | | | | +- - - - - t r ue | | | | | | | +- [ - ] - f al se ( , , ) ; " er zeugen dur ch Kl ei n mi t UNBEKANNT" | | | | | | | +- - - - - t r ue | | | | | | | +- - - - - f al se | | | | | +- [ - ] - f al se ( , T( s=' Br i nkmann' ) , ) ; " er zeugen dur ch Br i nkmann" | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Muel l er ' ) , ) ; " er zeugen dur ch Muel l er " | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Schmi dt ' ) , ) ; " er zeugen dur ch Schmi dt " | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , , ) ; " er zeugen dur ch UNBEKANNT" | | | | | +- - - - - t r ue | | | | | +- - - - - f al se

Page 114: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG D HOMOMORPHISMEN

114

| | | +- [ - ] - f al se ( , T( a=' Auf ent hal t sdokument _anzei gen' ) , ) ; " anzei gen" | | | +- [ - ] - t r ue ( , T( s=' Kl ei n' ) , ) ; " anzei gen dur ch Kl ei n" | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Br i nkmann' ) , ) ; " anzei gen dur ch Br i nkmann" | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Muel l er ' ) , ) ; " anzei gen dur ch Muel l er " | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Schmi dt ' ) , ) ; " anzei gen dur ch Schmi dt " | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , , ) ; " anzei gen dur ch UNBEKANNT" | | | | | +- - - - - t r ue | | | | | +- - - - - f al se | | | +- [ - ] - f al se ( , T( a=' Auf ent hal t sdokument _bear bei t en' ) , ) ; " bear bei t en" | | | +- [ - ] - t r ue ( , T( s=' Kl ei n' ) , ) ; " bear bei t en dur ch Kl ei n" | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Br i nkmann' ) , ) ; " bear bei t en dur ch Br i nkmann" | | | | | +- [ - ] - t r ue ( , T( or g=' Chi r ur gi e' ) , ) ; " bear bei t en dur ch Br i nkmann mi t | | | | Chi r ur gi e" | | | | | | | +- - - - - t r ue | | | | | | | +- [ - ] - f al se ( , T( or g=' Radi ol ogi e' ) , ) ; " bear bei t en dur ch Br i nkmann | | | | mi t Radi ol ogi e" | | | | | | | +- - - - - t r ue | | | | | | | +- [ - ] - f al se ( , , ) ; " bear bei t en dur ch Br i nkmann mi t UNBEKANNT" | | | | | | | +- - - - - t r ue | | | | | | | +- - - - - f al se | | | | | +- [ - ] - f al se ( , T( s=' Muel l er ' ) , ) ; " bear bei t en dur ch Muel l er " | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Schmi dt ' ) , ) ; " bear bei t en dur ch Schmi dt " | | | | | +- [ - ] - t r ue ( , T( or g=' Chi r ur gi e' ) , ) ; " bear bei t en dur ch Schmi dt | | | | mi t Chi r ur gi e" | | | | | | | +- - - - - t r ue | | | | | | | +- [ - ] - f al se ( , T( or g=' Radi ol ogi e' ) , ) ; " bear bei t en dur ch | | | | Schmi dt mi t | | | | Radi ol ogi e" | | | | | | | +- - - - - t r ue | | | | | | | +- [ - ] - f al se ( , , ) ; " bear bei t en dur ch Schmi dt mi t | | | | UNBEKANNT" | | | | | | | +- - - - - t r ue | | | | | | | +- - - - - f al se | | | | | +- [ - ] - f al se ( , , ) ; " bear bei t en dur ch UNBEKANNT" | | | | | +- - - - - t r ue | | |

Page 115: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

ANHANG D HOMOMORPHISMEN

115

| | +- - - - - f al se | | | +- [ - ] - f al se ( , T( a=' Auf ent hal t sdokument _l oeschen' ) , ) ; " l oeschen" | | | +- [ - ] - t r ue ( , T( s=' Kl ei n' ) , ) ; " l oeschen dur ch Kl ei n" | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Br i nkmann' ) , ) ; " l oeschen dur ch Br i nkmann" | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Muel l er ' ) , ) ; " l oeschen dur ch Muel l er " | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , T( s=' Schmi dt ' ) , ) ; " l oeschen dur ch Schmi dt " | | | | | +- - - - - t r ue | | | | | +- [ - ] - f al se ( , , ) ; " l oeschen dur ch UNBEKANNT" | | | | | +- - - - - t r ue | | | | | +- - - - - f al se | | | +- [ - ] - f al se ( , , ) ; " UNBEKANNT" | | | +- - - - - t r ue | | | +- - - - - f al se | +- - - - - f al se - > Epsi l on

Page 116: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik
Page 117: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

LITERATURVERZEICHNIS

117

L ITERATURVERZEICHNIS

[AdOrBAC] Frédéric Cuppens, Alexandre Miège„AdOrBAC: An Administration Model for Or-BAC“http://www.orbac.org/publi/OrBAC/AdOrBac.pdf

[AInfsysKh] Oliver Johannes Bott„Zur Architektur Vorgangsunterstützender Informationssysteme imKrankenhaus - Der Leistungsprozess im Krankenhaus und seineinformationstechnische Unterstützung“Vom Fachbereich für Mathematik und Informatik der TechnischenUniversität Braunschweig genehmigte Dissertation zur Erlangung desGrades eines Doktor-Ingenieurshttp://www.digibib.tu-bs.de/?docid=00001272

[DsKh] Der Landesbeauftragte für den Datenschutz Mecklenburg-Vorpommern„Datenschutz im Krankenhaus“Stand: Januar 2003http://www.lfd.m-v.de/dschutz/informat/dsimkh/dsimkh.html

[FormEntw] Peter Ochsenschläger„Formale Entwurfsmethoden für kooperierende Systeme“Skript zur Vorlesung

[HbMedInf] Thomas M. Lehmann, Erdmuthe Meyer zu Bexten„Handbuch der Medizinischen Informatik“Carl Hanser Verlag, 2002, ISBN 3-446-2189-1

[InfsysGw2] Minne van der Haak„Informationssysteme des Gesundheitswesens 2“Institut für Medizinische Biometrie und Informatik UniversitätHeidelbergSkript zur [email protected]

[KKZkKIS] Marita Gabriele Sergl„Konzepte und Komponenten für die Zugriffskontrolle in verteilten,heterogenen Krankenhaus-Informationssystemen am Beispiel desMainzer Universitätsklinikums“Dissertation zur Erlangung des Doktorgrades der physiologischenWissenschaften der Johannes Gutenberg-Universität Mainzhttp://archimed.uni-mainz.de/pub/2002/0043/diss.pdf

Page 118: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik

LITERATURVERZEICHNIS

118

[OrBAC] Anas Abou El Kalam, Rania El Baida, Philippe Balbiani, SalemBenferhat, Frédéric Cuppens, Yves Deswarte, Alexandre Miège,Claire Saurel, Gilles Trouessin„Organization based access control“http://www.orbac.org/publi/OrBAC/OrBac.pdf

[PatdsKh] Unabhängiges Landeszentrum für Datenschutz Schleswig-Holstein„Patientendatenschutz im Krankenhaus“http://www.datenschutzzentrum.de/medizin/krankenh/patdskh.htm

[SHVTMan] „SHVT Manual“Fraunhofer Institute for Secure TelecooperationNovember 3, 2004

[SHVTTut] Peter Ochsenschläger, Jürgen Repp, Roland Rieke„The SH-Verification Tool - A Tutorial“SIT - Fraunhofer - Institute for Secure TelecooperationNovember 8, 2002

[TechOrgFrd] Der Bayerische Landesbeauftragte für den Datenschutz„Orientierungshilfe: Technisch-organisatorische Forderungen an einbenutzer- und datenschutzfreundliches Patientenverwaltungssystembzw. Krankenhausinformationssystem (KIS)“Stand: 26.01.2005http://www.datenschutz-bayern.de/technik/orient/patdatkh.html

[UML] Martin Fowler, Kendall Scott„UML Distilled - Applying the Standard Object Modeling Language“Addison-Wesley, 2. Auflage August 1997, ISBN 0-201-32563-2

[ZPatdKh] GMDS-Arbeitsgruppe Datenschutz inGesundheitsinformationssystemen„Zugriff auf Patientendaten im Krankenhaus“Stand: 21.04.1999http://info.imsd.uni-mainz.de/AGDatenschutz/Empfehlungen/Zugriff.html

Page 119: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik
Page 120: Formale Modellierung und Analyse einer OrBAC-basierten ...sit.sit.fraunhofer.de/.../download/Diplomarbeit_Breker.pdf · Formale Modellierung und Analyse einer OrBAC-basierten Sicherheitspolitik