<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de-AT">
	<id>https://mediawiki.fernfh.ac.at/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=V%C3%96LKL+Peter</id>
	<title>FernFH MediaWiki - Benutzerbeiträge [de-at]</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.fernfh.ac.at/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=V%C3%96LKL+Peter"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php/Spezial:Beitr%C3%A4ge/V%C3%96LKL_Peter"/>
	<updated>2026-05-20T09:46:39Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.37.0</generator>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Computer-_und_Netzwerksicherheit&amp;diff=6591</id>
		<title>Computer- und Netzwerksicherheit</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Computer-_und_Netzwerksicherheit&amp;diff=6591"/>
		<updated>2026-02-13T20:29:36Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Computer- und Netzwerksicherheit - Gesamt|Computer- und Netzwerksicherheit - Gesamt (Achtung - immer die aktuellste Version!)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Version für das Sommersemester 2026&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[Special:PermanentLink/5584|Computer- und Netzwerksicherheit - Grundlagen|Computer- und Netzwerksicherheit - Grundlagen]]&lt;br /&gt;
&lt;br /&gt;
[[Special:PermanentLink/2157|Computer- und Netzwerksicherheit - Bewusstseinsbildung|Computer- und Netzwerksicherheit - Bewusstseinsbildung]]&lt;br /&gt;
&lt;br /&gt;
[[Special:PermanentLink/2278|Computer- und Netzwerksicherheit - Kryptograhpie|Computer- und Netzwerksicherheit - Kryptograhpie]]&lt;br /&gt;
&lt;br /&gt;
[[Special:PermanentLink/2711|Computer- und Netzwerksicherheit - Zugriffssteuerung|Computer- und Netzwerksicherheit - Zugriffssteuerung]]&lt;br /&gt;
&lt;br /&gt;
[[Special:PermanentLink/2280|Computer- und Netzwerksicherheit - Netzwerksicherheit|Computer- und Netzwerksicherheit - Netzwerksicherheit]]&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Benutzer:V%C3%96LKL_Peter&amp;diff=6523</id>
		<title>Benutzer:VÖLKL Peter</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Benutzer:V%C3%96LKL_Peter&amp;diff=6523"/>
		<updated>2025-03-11T20:23:00Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;[[Datei:Völkl Peter 2024-054 klein.jpg|300x200px|left|thumb|Peter Völkl]]&amp;lt;p&amp;gt;&amp;#039;&amp;#039;&amp;#039;Peter Völkl&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;Jahrgang 1984&amp;#039;&amp;#039;) startete seine berufliche Laufbahn nach dem Abschluss seiner Ausbildung an der &amp;#039;&amp;#039;&amp;#039;HTBLuVA für EDV und Organisation&amp;#039;&amp;#039;&amp;#039; im Jahr 2005 als &amp;#039;&amp;#039;&amp;#039;Softwareentwickler beim Österreichischen Roten Kreuz&amp;#039;&amp;#039;&amp;#039;. 2008 übernahm er die Leitung einer Abteilung der Blutspendezentrale für Wien, Niederösterreich und Burgenland, die für die &amp;#039;&amp;#039;&amp;#039;IT-Services des Blutbereichs&amp;#039;&amp;#039;&amp;#039; verantwortlich war. Neben der Führung der Abteilung lagen seine Schwerpunkte in der &amp;#039;&amp;#039;&amp;#039;Koordination und Überwachung von IT-Projekten und -Prozessen&amp;#039;&amp;#039;&amp;#039; sowie in der &amp;#039;&amp;#039;&amp;#039;Entwicklung, Testung und Validierung von IT-Systemen&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Parallel zu seiner beruflichen Tätigkeit begann er 2010 das &amp;#039;&amp;#039;&amp;#039;Bachelorstudium Wirtschaftsinformatik an der FernFH&amp;#039;&amp;#039;&amp;#039;, das er 2012 abschloss. Im Anschluss absolvierte er die &amp;#039;&amp;#039;&amp;#039;Masterstudiengänge Wirtschaftsinformatik an der FernFH sowie Information Management and IT Security an der FH Technikum Wien&amp;#039;&amp;#039;&amp;#039;, die er 2014 erfolgreich beendete.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Von November 2014 bis 2024 war Peter Völkl als &amp;#039;&amp;#039;&amp;#039;wissenschaftlicher Mitarbeiter an der FernFH&amp;#039;&amp;#039;&amp;#039; tätig. Ab Juli 2016 übernahm er die &amp;#039;&amp;#039;&amp;#039;Studiengangsleitung des Masterstudiengangs Wirtschaftsinformatik&amp;#039;&amp;#039;&amp;#039; und leitete seit 2023 zudem das &amp;#039;&amp;#039;&amp;#039;Institut für Informationstechnologie und Wirtschaftsinformatik&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Seit Oktober 2024 ist er &amp;#039;&amp;#039;&amp;#039;Kaufmännischer Leiter der Blutspendezentrale für Wien, Niederösterreich und Burgenland&amp;#039;&amp;#039;&amp;#039; im &amp;#039;&amp;#039;&amp;#039;Österreichischen Roten Kreuz&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Datei:V%C3%B6lkl_Peter_2024-054_klein.jpg&amp;diff=6522</id>
		<title>Datei:Völkl Peter 2024-054 klein.jpg</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Datei:V%C3%B6lkl_Peter_2024-054_klein.jpg&amp;diff=6522"/>
		<updated>2025-03-11T20:21:44Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Computer-_und_Netzwerksicherheit&amp;diff=6511</id>
		<title>Computer- und Netzwerksicherheit</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Computer-_und_Netzwerksicherheit&amp;diff=6511"/>
		<updated>2025-02-03T05:16:58Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Computer- und Netzwerksicherheit - Gesamt|Computer- und Netzwerksicherheit - Gesamt (Achtung - immer die aktuellste Version!)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Version für das Sommersemester 2025&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[Special:PermanentLink/5584|Computer- und Netzwerksicherheit - Grundlagen|Computer- und Netzwerksicherheit - Grundlagen]]&lt;br /&gt;
&lt;br /&gt;
[[Special:PermanentLink/2157|Computer- und Netzwerksicherheit - Bewusstseinsbildung|Computer- und Netzwerksicherheit - Bewusstseinsbildung]]&lt;br /&gt;
&lt;br /&gt;
[[Special:PermanentLink/2278|Computer- und Netzwerksicherheit - Kryptograhpie|Computer- und Netzwerksicherheit - Kryptograhpie]]&lt;br /&gt;
&lt;br /&gt;
[[Special:PermanentLink/2711|Computer- und Netzwerksicherheit - Zugriffssteuerung|Computer- und Netzwerksicherheit - Zugriffssteuerung]]&lt;br /&gt;
&lt;br /&gt;
[[Special:PermanentLink/2280|Computer- und Netzwerksicherheit - Netzwerksicherheit|Computer- und Netzwerksicherheit - Netzwerksicherheit]]&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Benutzer:V%C3%96LKL_Peter&amp;diff=6510</id>
		<title>Benutzer:VÖLKL Peter</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Benutzer:V%C3%96LKL_Peter&amp;diff=6510"/>
		<updated>2025-02-03T05:15:49Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;[[file:Voelkl_mittel.jpg|300x150px|left|thumb|Peter Völkl]]&amp;lt;p&amp;gt;&amp;#039;&amp;#039;&amp;#039;Peter Völkl&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;Jahrgang 1984&amp;#039;&amp;#039;) startete seine berufliche Laufbahn nach dem Abschluss seiner Ausbildung an der &amp;#039;&amp;#039;&amp;#039;HTBLuVA für EDV und Organisation&amp;#039;&amp;#039;&amp;#039; im Jahr 2005 als &amp;#039;&amp;#039;&amp;#039;Softwareentwickler beim Österreichischen Roten Kreuz&amp;#039;&amp;#039;&amp;#039;. 2008 übernahm er die Leitung einer Abteilung der Blutspendezentrale für Wien, Niederösterreich und Burgenland, die für die &amp;#039;&amp;#039;&amp;#039;IT-Services des Blutbereichs&amp;#039;&amp;#039;&amp;#039; verantwortlich war. Neben der Führung der Abteilung lagen seine Schwerpunkte in der &amp;#039;&amp;#039;&amp;#039;Koordination und Überwachung von IT-Projekten und -Prozessen&amp;#039;&amp;#039;&amp;#039; sowie in der &amp;#039;&amp;#039;&amp;#039;Entwicklung, Testung und Validierung von IT-Systemen&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Parallel zu seiner beruflichen Tätigkeit begann er 2010 das &amp;#039;&amp;#039;&amp;#039;Bachelorstudium Wirtschaftsinformatik an der FernFH&amp;#039;&amp;#039;&amp;#039;, das er 2012 abschloss. Im Anschluss absolvierte er die &amp;#039;&amp;#039;&amp;#039;Masterstudiengänge Wirtschaftsinformatik an der FernFH sowie Information Management and IT Security an der FH Technikum Wien&amp;#039;&amp;#039;&amp;#039;, die er 2014 erfolgreich beendete.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Von November 2014 bis 2024 war Peter Völkl als &amp;#039;&amp;#039;&amp;#039;wissenschaftlicher Mitarbeiter an der FernFH&amp;#039;&amp;#039;&amp;#039; tätig. Ab Juli 2016 übernahm er die &amp;#039;&amp;#039;&amp;#039;Studiengangsleitung des Masterstudiengangs Wirtschaftsinformatik&amp;#039;&amp;#039;&amp;#039; und leitete seit 2023 zudem das &amp;#039;&amp;#039;&amp;#039;Institut für Informationstechnologie und Wirtschaftsinformatik&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/p&amp;gt;&amp;lt;p&amp;gt;Seit Oktober 2024 ist er &amp;#039;&amp;#039;&amp;#039;Kaufmännischer Leiter der Blutspendezentrale für Wien, Niederösterreich und Burgenland&amp;#039;&amp;#039;&amp;#039; im &amp;#039;&amp;#039;&amp;#039;Österreichischen Roten Kreuz&amp;#039;&amp;#039;&amp;#039;.&amp;lt;/p&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Frontend_Development&amp;diff=6469</id>
		<title>Frontend Development</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Frontend_Development&amp;diff=6469"/>
		<updated>2024-09-30T16:38:52Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Frontend Development in 2024 - Gesamt|Frontend Development - Gesamt]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Frontend_Development&amp;diff=6468</id>
		<title>Frontend Development</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Frontend_Development&amp;diff=6468"/>
		<updated>2024-09-30T16:38:33Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Frontend Development - Gesamt|Frontend Development in 2024 - Gesamt]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Informatik_und_IT&amp;diff=6467</id>
		<title>Informatik und IT</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Informatik_und_IT&amp;diff=6467"/>
		<updated>2024-09-30T16:32:59Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Einführung in Computational Intelligence und AI|Einführung in Computational Intelligence und AI]]&lt;br /&gt;
&lt;br /&gt;
[[Webserver Infrastructures|Webserver Infrastructures]]&lt;br /&gt;
&lt;br /&gt;
[[Cloud Computing Security|Cloud Computing Security]]&lt;br /&gt;
&lt;br /&gt;
[[KI in der Wirtschaft|KI in der Wirtschaft]]&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Cloud_Computing_Security&amp;diff=6330</id>
		<title>Cloud Computing Security</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Cloud_Computing_Security&amp;diff=6330"/>
		<updated>2024-09-06T10:21:32Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Grundlagen und Architektur des Cloud Computing|Grundlagen und Architektur des Cloud Computing]]&lt;br /&gt;
&lt;br /&gt;
[[Sicherheitsfragen bei der Nutzung von Cloud-Diensten|Sicherheitsfragen bei der Nutzung von Cloud-Diensten]]&lt;br /&gt;
&lt;br /&gt;
[[Private und Public Cloud Security|Private &amp;amp; Public Cloud Security]]&lt;br /&gt;
&lt;br /&gt;
[[Virtualisierungssicherheit|Virtualisierungssicherheit]]&lt;br /&gt;
&lt;br /&gt;
[[Sicherheitsempfehlungen für Cloud-Systeme|Sicherheitsempfehlungen für Cloud-Systeme]]&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Web_Development&amp;diff=6265</id>
		<title>Web Development</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Web_Development&amp;diff=6265"/>
		<updated>2024-06-17T13:06:08Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Einführung in PHP und Webentwicklung|Einführung in PHP und Webentwicklung]]&amp;lt;br&amp;gt;[[Datenbankintegration (Webdevelopment)|Datenbankintegration]]&lt;br /&gt;
&lt;br /&gt;
[[Entwicklung in E-Commerce-Plattformen|Entwicklung in E-Commerce-Plattformen]]&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Web_Development&amp;diff=6264</id>
		<title>Web Development</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Web_Development&amp;diff=6264"/>
		<updated>2024-06-17T13:05:24Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: Die Seite wurde neu angelegt: „Einführung in PHP und Webentwicklung Datenbankintegration Entwicklung in E-Commerce-Plattformen“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Einführung in PHP und Webentwicklung&lt;br /&gt;
Datenbankintegration&lt;br /&gt;
Entwicklung in E-Commerce-Plattformen&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Advanced_Topics_in_Web_Software_Engineering&amp;diff=6263</id>
		<title>Advanced Topics in Web Software Engineering</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Advanced_Topics_in_Web_Software_Engineering&amp;diff=6263"/>
		<updated>2024-06-17T13:04:43Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Architektur-Design für Webanwendungen|Architektur-Design für Webanwendungen]]&amp;lt;br&amp;gt;[[Version Control und Zusammenarbeit|Version Control und Zusammenarbeit]]&amp;lt;br&amp;gt;[[DevOps and Continuous Integration Continuous Deployment|DevOps und Continuous Integration/Continuous Deployment (CI/CD)]]&amp;lt;br&amp;gt;[[Testing und Qualitätssicherung (Webdevelopment)|Testing und Qualitätssicherung]]&amp;lt;br&amp;gt;[[Performance-Optimierung (Webdevelopment)|Performance-Optimierung]]&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Advanced_Topics_in_Web_Software_Engineering&amp;diff=6262</id>
		<title>Advanced Topics in Web Software Engineering</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Advanced_Topics_in_Web_Software_Engineering&amp;diff=6262"/>
		<updated>2024-06-17T13:02:50Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: Die Seite wurde neu angelegt: „Architektur-Design für Webanwendungen Version Control und Zusammenarbeit DevOps und Continuous Integration/Continuous Deployment (CI/CD) Testing und Qualitätssicherung Performance-Optimierung“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Architektur-Design für Webanwendungen&lt;br /&gt;
Version Control und Zusammenarbeit&lt;br /&gt;
DevOps und Continuous Integration/Continuous Deployment (CI/CD)&lt;br /&gt;
Testing und Qualitätssicherung&lt;br /&gt;
Performance-Optimierung&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Web_Software_Quality_Assurance&amp;diff=6261</id>
		<title>Web Software Quality Assurance</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Web_Software_Quality_Assurance&amp;diff=6261"/>
		<updated>2024-06-11T15:33:07Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Testplanung und Teststrategie|Testplanung und Teststrategie]]&amp;lt;br&amp;gt;[[Testdesign und Testfälle|Testdesign und Testfälle]]&amp;lt;br&amp;gt;[[Testautomatisierung|Testautomatisierung]]&amp;lt;br&amp;gt;[[Testdurchführung und Berichterstattung|Testdurchführung und Berichterstattung]]&amp;lt;br&amp;gt;[[Werkzeuge für Qualitätssicherung von Web-Software|Werkzeuge für Qualitätssicherung von Web-Software]]&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Web_Software_Quality_Assurance&amp;diff=6260</id>
		<title>Web Software Quality Assurance</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Web_Software_Quality_Assurance&amp;diff=6260"/>
		<updated>2024-06-11T15:32:29Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: Die Seite wurde neu angelegt: „Testplanung und Teststrategie Testdesign und Testfälle Testautomatisierung Testdurchführung und Berichterstattung Werkzeuge für Qualitätssicherung von Web-Software“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Testplanung und Teststrategie&lt;br /&gt;
Testdesign und Testfälle&lt;br /&gt;
Testautomatisierung&lt;br /&gt;
Testdurchführung und Berichterstattung&lt;br /&gt;
Werkzeuge für Qualitätssicherung von Web-Software&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Webserver_Infrastructures&amp;diff=6259</id>
		<title>Webserver Infrastructures</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Webserver_Infrastructures&amp;diff=6259"/>
		<updated>2024-06-11T15:25:36Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Webserver Grundlagen|Webserver Grundlagen]]&amp;lt;br&amp;gt;[[Lastausgleich und Skalierbarkeit|Lastausgleich und Skalierbarkeit]]&amp;lt;br&amp;gt;[[Leistungsoptimierung (Webserver)|Leistungsoptimierung]]&amp;lt;br&amp;gt;[[Hochverfügbarkeit und Ausfallsicherheit (Webserver)|Hochverfügbarkeit und Ausfallsicherheit]]&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Webserver_Infrastructures&amp;diff=6258</id>
		<title>Webserver Infrastructures</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Webserver_Infrastructures&amp;diff=6258"/>
		<updated>2024-06-11T15:24:36Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: Die Seite wurde neu angelegt: „Webserver Grundlagen Lastausgleich und Skalierbarkeit Leistungsoptimierung Hochverfügbarkeit und Ausfallsicherheit“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Webserver Grundlagen&lt;br /&gt;
Lastausgleich und Skalierbarkeit&lt;br /&gt;
Leistungsoptimierung&lt;br /&gt;
Hochverfügbarkeit und Ausfallsicherheit&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Frontend_Development&amp;diff=6257</id>
		<title>Frontend Development</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Frontend_Development&amp;diff=6257"/>
		<updated>2024-06-11T15:16:27Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Wiederholung Webentwicklungstechnologien|Wiederholung Webentwicklungstechnologien]]&amp;lt;br&amp;gt;[[Grundlagen der JavaScript-Programmierung|Grundlagen der JavaScript-Programmierung]]&amp;lt;br&amp;gt;[[Document Object Model|Document Object Model (DOM)]]&amp;lt;br&amp;gt;[[JavaScript-Frameworks und -Bibliotheken|JavaScript-Frameworks und -Bibliotheken]]&amp;lt;br&amp;gt;[[Asynchrone Programmierung und Datenübertragung|Asynchrone Programmierung und Datenübertragung]]&amp;lt;br&amp;gt;[[Responsive Webdesign und Barrierefreiheit|Responsive Webdesign und Barrierefreiheit]]&amp;lt;br&amp;gt;[[Leistungsoptimierung (Frontend Development)|Leistungsoptimierung]]&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Frontend_Development&amp;diff=6256</id>
		<title>Frontend Development</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Frontend_Development&amp;diff=6256"/>
		<updated>2024-06-11T15:14:28Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: Die Seite wurde neu angelegt: „Wiederholung Webentwicklungstechnologien Grundlagen der JavaScript-Programmierung Document Object Model (DOM) JavaScript-Frameworks und -Bibliotheken Asynchrone Programmierung und Datenübertragung Responsive Webdesign und Barrierefreiheit Leistungsoptimierung“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wiederholung Webentwicklungstechnologien&lt;br /&gt;
Grundlagen der JavaScript-Programmierung&lt;br /&gt;
Document Object Model (DOM)&lt;br /&gt;
JavaScript-Frameworks und -Bibliotheken&lt;br /&gt;
Asynchrone Programmierung und Datenübertragung&lt;br /&gt;
Responsive Webdesign und Barrierefreiheit&lt;br /&gt;
Leistungsoptimierung&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Cloud_Computing_Security&amp;diff=6255</id>
		<title>Cloud Computing Security</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Cloud_Computing_Security&amp;diff=6255"/>
		<updated>2024-06-11T06:07:41Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Grundlagen und Architektur des Cloud Computing|Grundlagen und Architektur des Cloud Computing]]&lt;br /&gt;
&lt;br /&gt;
[[Sicherheitsfragen bei der Nutzung von Cloud-Diensten|Sicherheitsfragen bei der Nutzung von Cloud-Diensten]]&lt;br /&gt;
&lt;br /&gt;
[[Private und Public Cloud Security|Private &amp;amp; Public Cloud Security]]&lt;br /&gt;
&lt;br /&gt;
[[Sicherheitsempfehlungen für Cloud-Systeme|Sicherheitsempfehlungen für Cloud-Systeme]]&lt;br /&gt;
&lt;br /&gt;
[[Virtualisierungssicherheit|Virtualisierungssicherheit]]&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Cloud_Computing_Security&amp;diff=6254</id>
		<title>Cloud Computing Security</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Cloud_Computing_Security&amp;diff=6254"/>
		<updated>2024-06-11T06:07:15Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Grundlagen und Architektur des Cloud Computing|Grundlagen und Architektur des Cloud Computing]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Sicherheitsfragen bei der Nutzung von Cloud-Diensten|Sicherheitsfragen bei der Nutzung von Cloud-Diensten]]&lt;br /&gt;
&lt;br /&gt;
[[Private &amp;amp;amp;amp; Public Cloud Security|Private &amp;amp; Public Cloud Security]]&lt;br /&gt;
&lt;br /&gt;
[[Sicherheitsempfehlungen für Cloud-Systeme|Sicherheitsempfehlungen für Cloud-Systeme]]&lt;br /&gt;
&lt;br /&gt;
[[Virtualisierungssicherheit|Virtualisierungssicherheit]]&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Cloud_Computing_Security&amp;diff=6253</id>
		<title>Cloud Computing Security</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Cloud_Computing_Security&amp;diff=6253"/>
		<updated>2024-06-11T06:05:45Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: Die Seite wurde neu angelegt: „Grundlagen und Architektur des Cloud Computing Sicherheitsfragen bei der Nutzung von Cloud-Diensten Private &amp;amp; Public Cloud Security Sicherheitsempfehlungen für Cloud-Systeme Virtualisierungssicherheit“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Grundlagen und Architektur des Cloud Computing&lt;br /&gt;
Sicherheitsfragen bei der Nutzung von Cloud-Diensten&lt;br /&gt;
Private &amp;amp; Public Cloud Security&lt;br /&gt;
Sicherheitsempfehlungen für Cloud-Systeme&lt;br /&gt;
Virtualisierungssicherheit&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Computer-_und_Netzwerksicherheit_-_Zugriffssteuerung&amp;diff=6247</id>
		<title>Computer- und Netzwerksicherheit - Zugriffssteuerung</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Computer-_und_Netzwerksicherheit_-_Zugriffssteuerung&amp;diff=6247"/>
		<updated>2024-04-04T06:26:47Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Zugriffssteuerung =&lt;br /&gt;
&lt;br /&gt;
Die Zugriffssteuerung (Access Control) regelt den Zugriff und die Kommunikation von IT-Systemen mit ihren Anwendern, Ressourcen und anderen IT-Systemen. Es handelt sich dabei um eine zentrales Element der meisten IT-Systeme, da davon alle Schutzziele (Vertraulichkeit, Integrität und Verfügbarkeit; siehe Lektion &amp;quot;[[Computer- und Netzwerksicherheit_-_Grundlagen#S%C3%A4ulen_der_Informationssicherheit_-_CIA_Triade|Säulen der Informationssicherheit - CIA Triade]]&amp;quot;) betroffen sein können.&lt;br /&gt;
&lt;br /&gt;
In dieser Lektion werden die grundlegenden Begriffe der Zugriffssteuerung erläutert und weiter die konkreten Techniken der Zertifikate und der Fernzugriffe sowie potentielle Angriffsvektoren näher behandelt.&lt;br /&gt;
&lt;br /&gt;
== Grundbegriffe der Zugriffssteuerung ==&lt;br /&gt;
&lt;br /&gt;
Um die Schutzziele der Vertraulichkeit, Integrität und Verfügbarkeit des Datenaustausches mit IT-Systemen gewährleisten zu können müssen die jeweiligen Anforderungen an die Kommunikation definiert werden. Dabei gibt es einige wesentliche Begriffe, welche oft auch von Technikern falsch verwendet werden. Beispielsweise werden &amp;#039;&amp;#039;Identifikation&amp;#039;&amp;#039;, &amp;#039;&amp;#039;Authentifikation&amp;#039;&amp;#039; und &amp;#039;&amp;#039;Autorisation&amp;#039;&amp;#039; manchmal fälschlicherweise als Akronyme verwendet, obwohl es sich dabei um grundlegend unterschiedliche Begriffe handelt. Auch ist es wichtig zu wissen, wie bestimmte Anforderungen an die Zugriffssteuerung implementiert werden können.&lt;br /&gt;
&lt;br /&gt;
=== Zugriff ===&lt;br /&gt;
&lt;br /&gt;
Beim Zugriff handelt es sich um die Kommunikation mit einem IT-System. Diese kann sowohl mit einem Anwender, als auch mit einem anderen IT-System oder seiner Ressourcen stattfinden. In den meisten Fällen gibt es dabei Anforderungen an Identifikation, Authentifikation und Autorisation, sowie an die Nachverfolgbarkeit und Nichtabstreitbarkeit (siehe weiter auch Lektion &amp;quot;[[Computer- und Netzwerksicherheit_-_Kryptograhpie#Kryptographie|Krypotgraphie]]&amp;quot; Unterkapitel 2 - 5).&lt;br /&gt;
&lt;br /&gt;
Ressourcen können dabei alle Komponenten sein, welche einen Zugriff auf Daten ermöglichen oder diese beinhalten, wie beispielsweise: Datenbanken, Tabellen und Dateien. Die Zugriffe können dabei sowohl über lokale Verbindungen, als auch über das Netzwerk/Internet oder unterschiedliche Datenträger erfolgen.&lt;br /&gt;
&lt;br /&gt;
=== Identifikation ===&lt;br /&gt;
&lt;br /&gt;
Die Identifikation bezeichnet die Benennung eines bestimmten Systems oder einer Person, welche auf ein System zugreifen möchte. Dabei ist weder sichergestellt durch wen diese Benennung erfolgt ist, noch ob es sich bei der Benennung tatsächlich um das benannte System oder die benannte Person handelt.&lt;br /&gt;
&lt;br /&gt;
Zur Identifikation dienen oft die eindeutige User-ID, die E-Mailadresse oder der Name.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel ist eine Anwesenheitsliste: Die Protokollführung schreibt die Namen der anwesenden Personen auf, welche diese wiederum identifizieren. Dabei ist jedoch noch nicht sichergestellt, ob die jeweiligen Personen tatsächlich die sind, die sie vorgeben zu sein. Im schlechtesten Fall sind sie der Protokollführung nicht bekannt und identifizieren sich durch Nennung ihres Namens.&lt;br /&gt;
&lt;br /&gt;
=== Authentifikation ===&lt;br /&gt;
&lt;br /&gt;
Die eindeutige Identifikation einer Person oder eines Systems wird als Authentifikation bezeichnet. Erst dadurch wird sichergestellt, dass es sich dabei tatsächlich um die Identifizierten handelt.&lt;br /&gt;
&lt;br /&gt;
Es gibt drei unterschiedliche Kategorien von Authentifikationsmethoden und -merkmale:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Wissen&amp;#039;&amp;#039;&amp;#039; (was jemand weiß),&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Besitz&amp;#039;&amp;#039;&amp;#039; (was jemand besitzt) und&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Biometrie&amp;#039;&amp;#039;&amp;#039; (was jemand ist).&lt;br /&gt;
Die drei Merkmale Wissen, Besitz und Biometrie werden oft auch als „Wissen, Haben und Sein“ bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Eine häufig eingesetzte Methode ist das Passwort. Dieses ist in der Kategorie des &amp;#039;&amp;#039;&amp;#039;Wissens&amp;#039;&amp;#039;&amp;#039; eingeordnet, da es von jedem eingesetzt werden kann, der es kennt. Es kann daher auch weitergegeben oder ausgespäht werden. Je komplexer es ist, desto leichter kann es auch vergessen werden. Je häufiger es verwendet wird, desto schneller kann es herausgefunden werden. Zu komplexe Passwörter sind daher keine gute Lösung zur sicheren Authentifikation, da sie von vielen Usern vergessen oder aufgeschrieben werden. Dasselbe gilt für zu einfache Passwörter, da sie leicht erraten werden können.&lt;br /&gt;
&lt;br /&gt;
Beim Merkmal des &amp;#039;&amp;#039;&amp;#039;Besitzes&amp;#039;&amp;#039;&amp;#039; wird die Authentifikation über etwas erreicht, dass nur der zu Authentifizierende besitzt. Beispiele dafür sind ein Personalausweis oder eine Chipkarte (z.B. eine Bankomatkarte). Damit die Weitergabe dieses Merkmals überhaupt nicht, oder nur sehr schwierig möglich ist, sollte es möglichst nicht vervielfältigt werden können.&lt;br /&gt;
&lt;br /&gt;
Unter &amp;#039;&amp;#039;&amp;#039;Biometrie&amp;#039;&amp;#039;&amp;#039; werden Merkmale verstanden, die an eine bestimmte Person (oder ein bestimmtes System) gebunden sind. Sie sind öffentlich sichtbar oder beobachtbar, jedoch nicht leicht duplizierbar. Häufig bekannte Beispiele für biometrische Merkmale sind Fingerabdrücke, Venenmuster, die Iris-Muster der Augen und Stimmmuster. Weitere, oft weniger bekannte, Merkmale sind jedoch auch die Art des Ganges einer Person, ihre Tastenanschläge, ihr Schreibstil und aber auch die Art und Weise wie sie sich innerhalb eines Programmes oder einer Webseite bewegen.&lt;br /&gt;
&lt;br /&gt;
Je nach Sicherheitsanforderungen können dabei auch mehrere Merkmale kombiniert werden um die Authentifizierungsqualität noch weiter zu verstärken. Ein bekanntes Beispiel dafür ist die zur Bargeldbehebung mittels Bankomatkarte notwendige Authentifizierung. Dabei wird ein Besitzmerkmal (Bankomatkarte) mit einem Wissensmerkmal (PIN-Code) kombiniert. Ist jemand im Besitz der Karte, benötigt er zusätzlich noch den PIN-Code und umgekehrt. Mit einem der beiden Merkmale allein kann keine gültige Authentifikation erfolgen und damit auch kein Geld behoben werden.&lt;br /&gt;
&lt;br /&gt;
Werden zwei Merkmale kombiniert, wird dies auch als &amp;#039;&amp;#039;&amp;#039;Zwei-Faktor-Authentifizierung&amp;#039;&amp;#039;&amp;#039; bezeichnet. Wichtig ist dabei immer, dass zwei Merkmale unterschiedlicher Kategorien (Wissen, Besitz und Biometrie) kombiniert werden. Die Kombination zweier Merkmale derselben Kategorie, erhöht zwar die Sicherheit, gilt dabei jedoch nicht als Zwei-Faktor-Authentifizierung. Die einzelnen Merkmalskategorien und die sich daraus ergebenen Authentifizierungslevel sind weiter in Abbildung &amp;quot;Authentifizierungsfaktoren: Wissen, Besitz und Biometrie&amp;quot; dargestellt.&lt;br /&gt;
&lt;br /&gt;
Ob die Authentifizierungsqualität durch den Einsatz von drei Faktoren weiter stark erhöht werden kann, ist umstritten. Dies ist stark von den jeweils eingesetzten Techniken, aber auch von deren Akzeptanz bei den Anwendern, abhängig.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 15.png|300px|none|thumb| Authentifizierungsfaktoren: Wissen, Besitz und Biometrie]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref414885673&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Autorisation ===&lt;br /&gt;
&lt;br /&gt;
Bei der Autorisation handelt es sich um die Berechtigung, die eine authentifizierte Person oder ein authentifiziertes System für einen bestimmten Zugriff hat. So können in einem System beispielsweise unterschiedliche Rollen existieren, welche wiederum unterschiedliche Zugriffe ermöglichen. Wie ein System unterschiedliche Autorisationen verwaltet und behandelt wird als [[Computer- und_Netzwerksicherheit_-_Zugriffssteuerung#Zugriffssteuerungsmodelle|Zugriffssteuerungsmodell]] bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Die Authentifikation stellt damit sicher, dass es sich um jemand bestimmten handelt und die Autorisation regelt wiederum welche bestimmten Rollen welche Zugriffe bekommen.&lt;br /&gt;
&lt;br /&gt;
=== Nachverfolgbarkeit und Nichtabstreitbarkeit ===&lt;br /&gt;
&lt;br /&gt;
Bei der Nachverfolgbarkeit und Nichtabstreitbarkeit handelt es sich um Zugriffsmerkmale, welche eine genaue Dokumentation der jeweiligen Systemkommunikation ermöglichen. Je nach Anforderung wird dabei dokumentiert, welche Zugriffe stattgefunden haben und unter welchen (Sicherheits-)Parametern diese aufgebaut wurden. Um eine lückenlose Nachverfolgbarkeit sicherzustellen, ist es erforderlich, den Erfolg der Authentifikation und die erteilte Autorisation zu dokumentieren.&lt;br /&gt;
&lt;br /&gt;
In manchen Fällen ist es weiter erforderlich eine Nichtabstreitbarkeit von Zugriffen zu ermöglichen. Als &amp;#039;&amp;#039;&amp;#039;Nichtabstreitbarkeit&amp;#039;&amp;#039;&amp;#039; wird bezeichnet, das eine Person die Erstellung einer gesendeten Nachricht nicht mehr abstreiten kann. Dies beinhaltet auch automatisch die Integrität der Nachricht. Es muss daher für eine Nichtabstreitbarkeit auch sichergestellt sein, dass die Nachricht nicht mehr verändert wurde, da anderenfalls der Absender behaupten könnte, ursprünglich eine andere Nachricht erstellt zu haben.&lt;br /&gt;
&lt;br /&gt;
Die Nichtabstreitbarkeit kann mit Hilfe asymmetrischer Kryptographie Methoden sichergestellt werden (siehe Kapitel &amp;quot;[[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Asymmetrische_Verfahren|Asymmetrische Verfahren]]&amp;quot; Lektion &amp;quot;Kryptographie&amp;quot;). Dabei wird der Hashwert einer Nachricht mit dem privaten Schlüssel des Absenders verschlüsselt. Zur Prüfung der Integrität (ob die Nachricht der abgesendeten Nachricht entspricht), muss nun nur noch der verschlüsselte Hashwert mit dem öffentlichen Schlüssel entschlüsselt und mit dem aktuellen Hashwert der Nachricht verglichen werden. Da die Verschlüsselung nur vom Besitzer des privaten Schlüssels durchgeführt werden kann, ist hier eine Nichtabstreitbarkeit gewährleistet.&lt;br /&gt;
&lt;br /&gt;
=== Zugriffssteuerungsmodelle ===&lt;br /&gt;
&lt;br /&gt;
Zugriffssteuerungsmodelle (Access Control Models) regeln die Art und Weise von Zugriffen. Sie definieren dabei die möglichen Regeln und Ziele der Zugriffe und stellen diese den jeweiligen Zugriffssteuerungstechnologien zur Verfügung. Die Modelle sind ein wesentlicher Bestandteil des jeweiligen Betriebssystems, da sie grundlegende Entscheidungen der internen Zugriffe beeinflussen. Sie sind daher direkt im Kern des Betriebssystems integriert. [Ha13, 219]&lt;br /&gt;
&lt;br /&gt;
Es wird zwischen drei verschiedenen Kategorien von Zugriffssteuerungsmodellen unterschieden:&lt;br /&gt;
&lt;br /&gt;
* Eigner-definierte Zugriffssteuerung (DAC: Discretionary Access Control),&lt;br /&gt;
* Obligatorische Zugriffssteuerung (MAC: Mandatory Access Control) und&lt;br /&gt;
* Rollenbasierte Zugriffssteuerung (RBAC: Role Based Access Control).&lt;br /&gt;
Da eine gleichzeitige Unterstützung mehrerer Modelle meist nicht sinnvoll realisierbar ist, ist die Modellauswahl eine grundlegende Entscheidung für das IT-System. Das am häufigsten anzutreffende Modell ist das der Eigner-definierten Zugriffssteuerung.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Eigner-definierte Zugriffssteuerung&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Bei der Eigner-definierten Zugriffssteuerung haben alle Daten einen definierten Eigner (oft auch als Besitzer bezeichnet). Dieser ist fest mit den Daten oder der Datei verbunden. Der Eigner definiert, welche Personen oder Systeme Zugriff auf die Daten erhalten und in welcher Form (z.B.: lesen, schreiben, ändern, ausführen oder verweigern).&lt;br /&gt;
&lt;br /&gt;
Die Zugriffsberechtigungen sind dabei meist über Access Control Lists (ACL‘s) definiert. Dabei handelt es sich um eine Auflistung aller Berechtigten und der jeweils zugeordneten Rechte.&lt;br /&gt;
&lt;br /&gt;
Dieses Modell ist in aktuellen Windows-, Linux- und Mac-Systemen anzutreffen. In diesen Systemen hat jede Datei einen Besitzer und eine entsprechende ACL zugeordnet.&lt;br /&gt;
&lt;br /&gt;
Einzelne User und Systeme können hier meist in Berechtigungsgruppen zusammengefasst werden. In diesem Fall können die ACL’s sowohl Zuordnungen einzelner User und Systeme, als auch Berechtigungsgruppen enthalten.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Obligatorische Zugriffssteuerung&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Die obligatorische Zugriffssteuerung findet ihre Anwendung in Bereichen mit sehr hohem Sicherheitsbedarf. Sie kommt daher meist in behördlichen und militärischen Systemen zum Einsatz.&lt;br /&gt;
&lt;br /&gt;
In diesem Modell ist keine individuelle Behandlung einzelner User und Dateien vorgesehen. Der Zugriff ist abhängig von unterschiedlichen Sicherheitsstufen, auf denen sich Daten und User befinden. Meist ist dabei eine Änderung von Dateiberechtigungen durch die User nicht möglich.&lt;br /&gt;
&lt;br /&gt;
Die Umsetzung der Sicherheitsstufen erfolgt durch Vertrauens-Levels (Clearance) für User und Sensitivitäts-Labels für Dateien. Mögliche Sicherheitsstufen wären z.B.: nicht vertraulich, vertraulich, geheim und streng geheim.&lt;br /&gt;
&lt;br /&gt;
Der Zugriff auf Daten erfolgt gemäß den jeweiligen Sicherheitsstufen. Sind die Stufe der Datei und die Stufe des Users ident, darf er auf die Daten zugreifen. Ob er auf Daten von darunterliegenden Stufen zugreifen darf, kann unterschiedlich implementiert sein. Meist dürfen Informationen nur von niedrigeren Levels zu höheren Levels übertragen werden und nicht umgekehrt. Zugriffe zwischen unterschiedlichen Levels werden dabei meist auch von eigenen Überwachungsdienstprogrammen gesteuert und genehmigt.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich werden meist hierarchische Zuordnungen vergeben, in denen sich sowohl Daten, als auch User befinden können. Die hierarchische Zuordnung steht dann nochmals über der Zuordnung des Sicherheitslevels. Damit ist sichergestellt, dass die Zugriffe nicht nur gemäß des Vertrauens-Levels, sondern auch gemäß der Zugriffs-Notwendigkeit erfolgen. Befindet sich ein User nicht in derselben hierarchischen Zuordnung, wie die jeweiligen Daten, wird davon ausgegangen, dass er keinen Zugriff benötigt und der Zugriff daher verweigert.&lt;br /&gt;
&lt;br /&gt;
Ein frei verfügbares Betriebssystem, welches das Modell der obligatorischen Zugriffssteuerung einsetzt, ist beispielsweise SE Linux [Na09].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rollenbasierte Zugriffssteuerung&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Bei der rollenbasierten Zugriffssteuerung werden Organisationsrichtlinien und -abläufe in ein Zugriffsmodell übersetzt. Dabei werden einzelnen Usern oder Systemen bestimmte (Organisations-)Rollen zugeordnet. Der Zugriff auf Daten hängt dabei von der jeweiligen Rolle des Zugreifenden ab. Die Berechtigung wird bei jedem Zugriffsversuch überprüft und dann genehmigt oder abgewiesen.&lt;br /&gt;
&lt;br /&gt;
Bei den hier eingesetzten Rollen handelt es sich nicht um Gruppen im Sinne der Eigner-definierten Zugriffssteuerung, sondern um Rollen innerhalb des jeweiligen Geschäftsprozesses bzw. einer Organisationseinheit. So kann ein User eine Rolle haben, die ihm aus einer Anwendung heraus Zugriff auf einen Datensatz gestattet und aus einer anderen Anwendung nicht mehr, obwohl es sich um denselben Datensatz handelt. Wichtig ist dabei immer die Betrachtung des aktuellen Zwecks des Zugriffes.&lt;br /&gt;
&lt;br /&gt;
Die Implementierung rollenbasierter Zugriffssteuerungen ist daher auch komplexer als die der Eigner-definierten Zugriffssteuerung.&lt;br /&gt;
&lt;br /&gt;
== Passwortsicherheit ==&lt;br /&gt;
&lt;br /&gt;
Wie bereits in der Lektion zu [[Computer- und_Netzwerksicherheit_-_Kryptograhpie|Kyptographie]] beschrieben, hat die sichere Speicherung von Passwörtern eine hohe Priorität und sollte in einer entsprechend sicheren Architektur erfolgen. Zusätzlich zur technischen Sicherheit ist eine entsprechende &amp;#039;&amp;#039;&amp;#039;Passwortkomplexität von besonderer Relevanz&amp;#039;&amp;#039;&amp;#039;. Ein noch so effizient abgesicherter Passwortspeicher verliert an Bedeutung, wenn das darin gespeicherte Passwort selbst unsicher ist.&lt;br /&gt;
&lt;br /&gt;
Ein unsicheres Passwort hat entweder:&lt;br /&gt;
&lt;br /&gt;
* eine zu geringe &amp;#039;&amp;#039;&amp;#039;Komplexität&amp;#039;&amp;#039;&amp;#039; und kann daher durch [[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Brute-Force_Angriffe|Bruteforce]]- oder [[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Angriffe_gegen_Hashwerte|Hash-Kollisions-Angriffe]] gefunden werden, oder&lt;br /&gt;
* kann durch &amp;#039;&amp;#039;&amp;#039;[[Computer- und_Netzwerksicherheit_-_Bewusstseinsbildung#Angriffsvektor_Social_Engineering|Social Engineering]]&amp;#039;&amp;#039;&amp;#039; herausgefunden werden (z.B.: Name des Kindes mit Jahreszahl, Anfangsbuchstaben des Titels des Lieblingsliedes, usw.).&lt;br /&gt;
Die Komplexität eines Passwortes ergibt sich aus der &amp;#039;&amp;#039;&amp;#039;Entropie&amp;#039;&amp;#039;&amp;#039; – also den möglichen unterschiedlichen Kombinationen bzw. dem [[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Schl%C3%BCssel_(Key)_und_Keyspace|Keyspace]]. Daraus und an der Anzahl an Passwörtern, welche pro Sekunde geprüft werden können, ergibt sich dann wiederum die Dauer, in welcher das Passwort durch Ausprobieren (Bruteforce-Angriff) gefunden werden kann.&lt;br /&gt;
&lt;br /&gt;
Für die Komplexität von Passwörter galt lange eine bestimmte Mindestlänge (meist 8 Zeichen) und eine Kombination aus den Merkmalen:&lt;br /&gt;
&lt;br /&gt;
* Kleinbuchstaben,&lt;br /&gt;
* Großbuchstaben,&lt;br /&gt;
* Ziffern und&lt;br /&gt;
* Sonderzeichen&lt;br /&gt;
als ausreichender Schutz.&lt;br /&gt;
&lt;br /&gt;
Beispielsweise ein Passwort &amp;#039;&amp;#039;&amp;#039;„&amp;#039;&amp;#039;f9D22+P#&amp;#039;&amp;#039;“&amp;#039;&amp;#039;&amp;#039; mit 8 Zeichen und Erfüllung aller oben genannten Kriterien hat somit folgende Komplexität:&lt;br /&gt;
&lt;br /&gt;
* 26 Kleinbuchstaben +&lt;br /&gt;
* 26 Großbuchstaben +&lt;br /&gt;
* 10 Ziffern +&lt;br /&gt;
* 36 Sonderzeichen (alle Sonderzeichen der deutschen Tastatur)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;= 98 Mögliche Zeichen pro Stelle&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Bei 8 Zeichen sind das 98^8 mögliche Passwortkombinationen.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Ein Hochleistungs-PC, welcher 2.148.000.000 Passwörter in der Sekunde ausprobieren kann, benötigt somit durchschnittlich ca. &amp;#039;&amp;#039;&amp;#039;23 Tage&amp;#039;&amp;#039;&amp;#039; um das Passwort herauszufinden.&lt;br /&gt;
&lt;br /&gt;
Ein Problem solcher komplexen Passwörter ist, dass es für die meisten User schwierig ist, sie sich zu einzuprägen. Dadurch besteht ein erhöhtes Risiko, dass die Passwörter:&lt;br /&gt;
&lt;br /&gt;
* vergessen werden,&lt;br /&gt;
* auf einem Zettel notiert werden,&lt;br /&gt;
* nicht ausreichend oft geändert werden oder&lt;br /&gt;
* nur minimal geändert werden – beispielsweise durch simple Variation einzelner Teile des Passwortes, wie einer Ziffer am Ende.&lt;br /&gt;
Aufgrund der oben genannten Schwächen und der dennoch geringen Entropie noch gut merkbarer Passwortlängen, können diese Passwortrichtlinien &amp;#039;&amp;#039;&amp;#039;nicht mehr als Stand der Technik&amp;#039;&amp;#039;&amp;#039; betrachtet werden. Eine wesentlich bessere Möglichkeit ist die Nutzung von zufälligen Wörtern aus dem Wörterbuch. [Ga17]&lt;br /&gt;
&lt;br /&gt;
Bei der Nutzung von &amp;#039;&amp;#039;&amp;#039;vier zufälligen Wörtern aus dem Wörterbuch&amp;#039;&amp;#039;&amp;#039; (kein Satz, sondern tatsächlich zufällig gewählte Wörter), ergibt sich bei Nutzung der 100.000 unterschiedlichen Wörter des Österreichischen Wörterbuchs [AF20] folgende Komplexität:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;100.000 mögliche Wörter pro „Stelle“ (ein Wort ist somit eine Stelle).&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Bei 4 Wörtern sind das 100.000^4 mögliche Passwortkombinationen.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Ein Hochleistungs-PC (der selbe PC wie im ersten Beispiel), welcher 2.148.000.000 Passwörter in der Sekunde ausprobieren kann, benötigt somit durchschnittlich ca. &amp;#039;&amp;#039;&amp;#039;738 &amp;lt;u&amp;gt;Jahre&amp;lt;/u&amp;gt;&amp;#039;&amp;#039;&amp;#039; um das Passwort herauszufinden.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für ein Passwort aus 4 unzusammenhängenden Wörtern aus dem deutschen Duden ist: &amp;#039;&amp;#039;&amp;#039;„&amp;#039;&amp;#039;Dachs faul logisch Gerät&amp;#039;&amp;#039;“&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Das Passwort weißt somit eine &amp;#039;&amp;#039;&amp;#039;wesentlich höhere Entropie&amp;#039;&amp;#039;&amp;#039; auf und ist für einen Menschen gleichzeitig &amp;#039;&amp;#039;&amp;#039;leichter merkbar&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Leider ist diese Form der Passwörter in &amp;#039;&amp;#039;&amp;#039;vielen Systemen noch nicht implementiert&amp;#039;&amp;#039;&amp;#039; und es werden noch die veralteten Komplexitätsmerkmale des ersten Beispiels abgerufen. Diese Hürde kann ganz einfach überwunden werden, indem am Ende des Passworts eine Ziffer und ein Sonderzeichen gestellt werden. Da diese keine wirkliche Relevanz für die genannte Passwortsicherheit haben, können hier auch Zeichen genutzt werden, die schnell zu tippen sind. Das oben genannte Passwort könnte damit dann einfach &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;„Dachs faul logisch Gerät 9+“&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; lauten.&lt;br /&gt;
&lt;br /&gt;
== Zertifikate ==&lt;br /&gt;
&lt;br /&gt;
Zertifikate dienen der Feststellung der Identitäten von Personen und Systemen auf digitalem Wege. Ein Zertifikat ist ein digitales Dokument, indem bestimmte Daten angegeben sind, welche eine Person oder ein System und optional auch zugehörige Eigenschaften identifizieren. Zertifikate sind wesentliche Bestandteile von Public-Key-Systemen und enthalten zusätzlich den jeweiligen Public-Key des Zertifikatsinhabers (siehe auch Kapitel &amp;quot;[[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Asymmetrische_Verfahren|Asymmetrische Verfahren]]&amp;quot; Lektion &amp;quot;Kryptographie&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Um die Echtheit eines Zertifikats zu bestätigen, kann dieses von anderen Stellen signiert werden. Diese Stellen werden als &amp;#039;&amp;#039;&amp;#039;Zertifizierungsstellen (CA: Certification Authority)&amp;#039;&amp;#039;&amp;#039; bezeichnet. Die Signatur erfolgt dabei, wie in Kapitel &amp;quot;[[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Asymmetrische_Verfahren|Asymmetrische Verfahren]]&amp;quot; beschrieben, durch hashen des Zertifikates und Verschlüsselung des Hashwertes durch den privaten Schlüssel der Zertifizierungsstelle. Da der öffentliche Schlüssel – wiederum durch das Zertifikat der Zertifizierungsstelle – bekannt ist, kann der Hashwert korrekt entschlüsselt, und die Signatur damit als gültig erkannt, werden.&lt;br /&gt;
&lt;br /&gt;
Ob diese Echtheitsbestätigungen nun &amp;#039;&amp;#039;&amp;#039;hierarchisch&amp;#039;&amp;#039;&amp;#039; erfolgen ([[Computer- und_Netzwerksicherheit_-_Zugriffssteuerung#Public-Key-Infrastruktur_(PKI)|Public-Key-Infrastruktur]]), oder über ein dezentral &amp;#039;&amp;#039;&amp;#039;verteiltes Vertrauensmodell&amp;#039;&amp;#039;&amp;#039; ([[Computer- und Netzwerksicherheit_-_Zugriffssteuerung#Web_of_Trust_(WOT)|Web of Trust]]) ist von der jeweiligen Implementierung abhängig. Derzeit sind beide Modellvarianten im Einsatz und finden ihre Anwendung in einer Vielzahl von Systemen. Die Zertifikate der behördlich akzeptierten digitalen Signaturen basieren derzeit auf dem hierarchischen Modell der Public-Key-Infrastruktur.&lt;br /&gt;
&lt;br /&gt;
Ein Zertifikat ist mit einem Ausweisdokument vergleichbar. Auf dem Ausweis befinden sich die Daten der Person und ein Verweis auf den Aussteller. Durch Sicherheitsmerkmale am Dokument (Wasserzeichen, Silberstreifen,…) wird dabei die Echtheitsprüfung ermöglicht. Der Aussteller (z.B. eine Behörde) bestätigt damit die Identität des Inhabers (z.B. Personalausweis) und gegebenenfalls auch bestimmte durch das Dokument erlaubte Tätigkeiten (z.B. Führerschein).&lt;br /&gt;
&lt;br /&gt;
Die Echtheit eines Zertifikates kann von der jeweiligen Zertifizierungsstelle auch wieder zurückgezogen werden. Zu diesem Zweck werden &amp;#039;&amp;#039;&amp;#039;Zertifikats-Sperrlisten (CRL: Certificate Revocation Lists)&amp;#039;&amp;#039;&amp;#039; eingesetzt, welche Einträge der Seriennummern aller Zertifikate mit zurückgenommenen Echtheitsbestätigungen enthält. Die Sperrliste ist selbst wiederum von der jeweiligen Zertifizierungsstelle signiert, um ihre Echtheit zu bestätigen.&lt;br /&gt;
&lt;br /&gt;
Der Aufbau und der mögliche Inhalt eines Zertifikates ist im &amp;#039;&amp;#039;&amp;#039;X.509 Standard&amp;#039;&amp;#039;&amp;#039; [Ne99] definiert. Ein entsprechendes Beispiel (das aktuelle Zertifikat des Online-Campus) ist in Abbildung &amp;quot;Zertifikat&amp;quot; dargestellt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 16.png|300px|none|thumb|Zertifikat]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref415127603&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Public-Key-Infrastruktur (PKI) ===&lt;br /&gt;
&lt;br /&gt;
Bei der Public-Key-Infrastruktur (PKI) handelt es sich um ein hierarchisch aufgebautes System von Zertifizierungsstellen. Das bedeutet, dass jede Zertifizierungsstelle das in sie gesetzte Vertrauen an nachfolgende Stellen weiterverteilen kann, indem sie die zugehörigen Zertifikate signiert.&lt;br /&gt;
&lt;br /&gt;
Daraus ergibt sich dann eine Hierarchie aus mehreren Zertifikaten, die bis zu einem Stammzertifikat rückverfolgt werden können sind. Durch das Vertrauen in das jeweilige Stammzertifikat wird auch den nachfolgenden Zertifikaten vertraut.&lt;br /&gt;
&lt;br /&gt;
In den meisten Anwendungen, die PKI Zertifikate einsetzen (z.B. Internetbrowser für HTTPS Verbindungen), sind bereits einige gängige Stammzertifikate der großen Zertifizierungsstellen vorinstalliert. Es ist jedoch meist auch möglich weitere Stammzertifikate hinzuzufügen, denen dann ebenfalls vertraut wird. In Abbildung &amp;quot;Zertifizierungspfad&amp;quot; ist die Hierarchie des Zertifikates des Online-Campus dargestellt. Die Stammzertifizierungsstelle ist in diesem Fall das Unternehmen Go Daddy.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 17.png|300px|none|thumb|Zertifizierungspfad]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref415147744&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den Zertifizierungsstellen gibt es in der PKI noch weitere Instanzen, welche hautsächlich für den Zertifizierungsprozess verantwortlich sind. Die Hauptakteure der PKI sind:&lt;br /&gt;
&lt;br /&gt;
* Zertifizierungsstelle (CA: Certification Authority),&lt;br /&gt;
* Registrierungsstelle (RA: Registration Authority) und&lt;br /&gt;
* Validierungsdienst (VA: Validation Authority)&lt;br /&gt;
Die &amp;#039;&amp;#039;&amp;#039;Registrierungsstelle&amp;#039;&amp;#039;&amp;#039; ist in der PKI dafür verantwortlich die Identität des Antragsstellers zu überprüfen und dies wiederum der Zertifizierungsstelle mitzuteilen. Die &amp;#039;&amp;#039;&amp;#039;Validierungsstelle&amp;#039;&amp;#039;&amp;#039; ist für die Gültigkeitsprüfung von bereits ausgestellten Zertifikaten verantwortlich. Sie verwaltet auch die Zertifikats-Sperrlisten und ihre Erreichbarkeit ist meist in einem Datenfeld in den Zertifikaten selbst angegeben.&lt;br /&gt;
&lt;br /&gt;
Soll nun ein neues Zertifikat ausgestellt werden, muss folgender &amp;#039;&amp;#039;&amp;#039;Zertifizierungsprozess&amp;#039;&amp;#039;&amp;#039; durchlaufen werden:&lt;br /&gt;
&lt;br /&gt;
# Der Antrag für das neue Zertifikat wird an die Registrierungsstelle (RA) geschickt&lt;br /&gt;
# Die Registrierungsstelle (RA) überprüft den Antrag und stellt sicher, dass es sich bei der Identität tatsächlich um die der antragstellenden Person oder des zugehörigen IT-Systems (z.B. bei einem Webserver-Zertifikat) handelt.&lt;br /&gt;
# Wenn die Registrierungsstelle die Identität bestätigen kann, sendet sie den Antrag weiter an die Zertifizierungsstelle (CA).&lt;br /&gt;
# Die Zertifizierungsstelle (CA) stellt nun das beantragte Zertifikat aus, generiert dafür einen privaten und einen öffentlichen Schlüssel und sendet diese an die antragsstellende Person.&lt;br /&gt;
Oft ist es auch möglich das Schlüsselpaar selbst zu generieren und dem Antrag nur den öffentlichen Schlüssel beizufügen. Dies ist für die Ausstellung des Zertifikates ausreichend, da der private Schlüssel für seine Signierung nicht benötigt wird (diese wird durch den privaten Schlüssel der CA durchgeführt). In diesem Fall ist zusätzlich sichergestellt, dass der private Schlüssel nur der antragsstellenden Person bekannt ist.&lt;br /&gt;
&lt;br /&gt;
Gerade bei der Überprüfung durch die Registrierungsstelle gibt es unterschiedliche Qualitäten. Wird hier ungenau vorgegangen, kann dies zu Zertifikaten falscher Identitäten führen.&lt;br /&gt;
&lt;br /&gt;
=== Web of Trust (WOT) ===&lt;br /&gt;
&lt;br /&gt;
Das Modell des Web of Trust ist im Gegensatz zur PKI nicht hierarchisch, sondern dezentral aufgebaut. Es basiert auf einer dezentralen Vertrauensverteilung zwischen den Teilnehmern, ähnlich dem Freundes- und Bekanntenkreis einer Person. Die Schlüssel sind dabei nicht in einer hierarchischen Struktur zentral abrufbar und überprüfbar, sondern werden direkt von den Benutzern verwaltet. Jeder User hat seinen eigenen Schlüsselbund, wobei hier zwischen dem privaten und dem öffentlichen Schlüsselbund unterschieden wird.&lt;br /&gt;
&lt;br /&gt;
Am &amp;#039;&amp;#039;&amp;#039;privaten Schlüsselbund&amp;#039;&amp;#039;&amp;#039; befinden sich die privaten Schlüssel des Users, mit denen Daten signiert und entschlüsselt werden können. Am &amp;#039;&amp;#039;&amp;#039;öffentlichen Schlüsselbund&amp;#039;&amp;#039;&amp;#039; befinden sich die eigenen öffentlichen Schlüssel, sowie die öffentlichen Schlüssel anderer User. Mit den öffentlichen Schlüsseln können Nachrichten verschlüsselt und Signaturen geprüft werden.&lt;br /&gt;
&lt;br /&gt;
Die Vertrauensstufen werden über die öffentlichen Schlüssel der Teilnehmer ermittelt. Dazu gibt es im öffentlichen Schlüsselbund für jeden Schlüssel ein &amp;#039;&amp;#039;&amp;#039;Key Legimitation Field&amp;#039;&amp;#039;&amp;#039;, in dem der jeweilige &amp;#039;&amp;#039;&amp;#039;Vertrauensgrad (Owner Trust)&amp;#039;&amp;#039;&amp;#039; des Schlüssels angegeben wird.&lt;br /&gt;
&lt;br /&gt;
Im WOT gibt es folgende Vertrauensgrade:&lt;br /&gt;
&lt;br /&gt;
* unknown: Personen über die keine Informationen bekannt sind,&lt;br /&gt;
* not trusted: Personen denen nicht vertraut wird,&lt;br /&gt;
* marginal: Personen denen nicht voll vertraut wird,&lt;br /&gt;
* complete: Personen denen voll vertraut wird und&lt;br /&gt;
* ultimate: eigener öffentlicher Schlüssel.&lt;br /&gt;
Wer als vertrauenswürdig eingestuft wird, liegt somit beim jeweiligen Schlüsselbund Inhaber.&lt;br /&gt;
&lt;br /&gt;
Die Vertrauensgrade können an andere User (z.B. über einen Schlüsselserver) weitergegeben werden, indem die jeweiligen Schlüssel durch den eigenen privaten Schlüssel signiert werden. Dies wird auch als &amp;#039;&amp;#039;&amp;#039;indirekte Zertifizierung&amp;#039;&amp;#039;&amp;#039; bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Ist dem User, der einen dritten Schlüssel signiert hat, im eigenen Schlüsselbund einem Vertrauensgrad zugewiesen, so erhält der von ihm signierte Schlüssel je nach eigener Einstellung denselben Vertrauensgrad oder niedriger. Zusätzlich kann definiert werden, wie viele signierte Schlüssel eines niedrigeren Vertrauensgrades notwendig sind, um die Vertrauensstufe um eine Stufe aufzuwerten. Die Standartwerte hierfür sind 3 signierte Schlüssel anderer User für die Aufwertung und ein signierter Schlüssel eines anderen Users für dieselbe Stufe.&lt;br /&gt;
&lt;br /&gt;
Diese Abhängigkeiten sind in Abbildung &amp;quot;Web of Trust - Vertrauensnetzwerk&amp;quot; ersichtlich: Anna kennt sowohl Peter, als auch Christoph persönlich und hat daher ihre öffentlichen Schlüssel in ihrem öffentlichen Schlüsselbund abgelegt. Christoph hat nur eine direkte Beziehung zu Anna, nicht aber zu Peter. Da sich Christophs öffentlicher Schlüssel im öffentlichen Schlüsselbund von Anna befindet, erkennt Peter sein Zertifikat als gültig an.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref415150535&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;[[file:img1643193688517.png|300px|alt=Web of Trust - Vertrauensnetzwerk|none|thumb|Web of Trust - Vertrauensnetzwerk]]&lt;br /&gt;
&lt;br /&gt;
Die erste Implementierung des WOT war &amp;#039;&amp;#039;&amp;#039;Pretty Good Privacy (PGP)&amp;#039;&amp;#039;&amp;#039; [Sy15]. Es ist ein Softwarepaket, welches die Sicherstellung der Authentizität, Integrität und Vertraulichkeit von E-Mails sowie beliebiger Dateien ermöglicht. &amp;#039;&amp;#039;&amp;#039;GnuPG&amp;#039;&amp;#039;&amp;#039; [Gn15] ist die frei verfügbare Version, die unter der GNU General Public License [Fr07] steht. Ein möglicher Windows Client für GnuPG ist beispielsweise Gpg4win [In15b].&lt;br /&gt;
&lt;br /&gt;
=== Neue Zertifikatsmodelle und Erweiterungen ===&lt;br /&gt;
&lt;br /&gt;
Sowohl im Bereich des PKI, als auch im WOT Modell, gibt es mittlerweile einige bekannte Sicherheitslücken und Protokollfehler. Weiter ist gerade im PKI Modell die Rolle der CA enorm wichtig. Werden hier nur schlechte Identitätskontrollen bei der Ausstellung von Zertifikaten durchgeführt, kann es zu falschen validen Identitäten kommen. Im Bereich des WOT können beispielsweise die Schlüsselserver zum Generieren von SPAM-Versandlisten genutzt werden, da die zugehörigen E-Mailadressen der Zertifikate dort frei verfügbar sein müssen. Weiter sind über die WOT soziale Netzwerke der User analysierbar, da die Trustlevel und ihre Abhängigkeiten leicht analysiert werden können. [Br14]&lt;br /&gt;
&lt;br /&gt;
Um diese Schwachstellen zu beseitigen wird bereits an möglichen neuen Protokollen und Erweiterungen geforscht. Den meisten Ansätzen gemein ist, die Abhängigkeit von einzelnen CA’s zu verringern. Fehler einer CA sollen möglichst auf Seite der Endanwendung (wie z.B. im Browser oder Mail Client) frühzeitig erkannt und angezeigt werden. [Br14]&lt;br /&gt;
&lt;br /&gt;
Einer dieser neuen Ansätze ist die Software &amp;#039;&amp;#039;Perspectives&amp;#039;&amp;#039; [Ca15]. Dabei handelt es sich um eine Browsererweiterung, die jedes Zertifikat zusätzlich mit einem sogenannten Notary-Server abgleicht. Damit können beispielsweise Man-in-the-Middle Angriffe frühzeitig erkannt werden.&lt;br /&gt;
&lt;br /&gt;
Weitere aktuelle Erweiterungen sind [Br14]:&lt;br /&gt;
&lt;br /&gt;
* Pinning [EPS14],&lt;br /&gt;
* Certificate Transparency [LLK13],&lt;br /&gt;
* Microsoft SmartScreen [Mi15] und&lt;br /&gt;
* DANE [HVS12].&lt;br /&gt;
&lt;br /&gt;
== Angriffsvektoren der Access Control ==&lt;br /&gt;
&lt;br /&gt;
Die Angriffsmethoden der Access Control sind sehr vielfältig und haben oft [[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Angriffsvektoren_der_Kryptographie|Angriffsvektoren der Kryptographie]] und [[Computer- und_Netzwerksicherheit_-_Netzwerksicherheit#Angriffsvektoren_der_Daten%C3%BCbertragung|Datenübertragung]], sowie [[Computer- und_Netzwerksicherheit_-_Bewusstseinsbildung#Angriffsvektor_Social_Engineering|Social Engineering]]als Grundlage. Dies trifft insbesondere auf Angriffe gegen die Integrität und Authentizität zu.&lt;br /&gt;
&lt;br /&gt;
Dazu bereits behandelte Angriffsvektoren sind:&lt;br /&gt;
&lt;br /&gt;
* [[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Brute-Force_Angriffe|Brute-Force Angriffe]],&lt;br /&gt;
* [[Computer- und_Netzwerksicherheit_-_Bewusstseinsbildung#Phishing|Phishing]]&amp;amp;nbsp;und&lt;br /&gt;
* [[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Angriffe_gegen_Hashwerte|Angriffe gegen Hashwerte]].&lt;br /&gt;
Eine weitere wichtige Angriffsmethode ist die des &amp;#039;&amp;#039;&amp;#039;Pharming.&amp;#039;&amp;#039;&amp;#039; Dabei wird die Anfrage eines Users auf einen bösartigen Server umgeleitet. Er glaubt sich sicher und gibt dann dort seine geheimen Daten ( wie z.B.: Zugangsdaten und Transaktionsdaten) preis. Beim Pharming handelt es sich daher um einen [[Computer- und_Netzwerksicherheit_-_Netzwerksicherheit#Man-in-the-Middle_Angriff|Man-in-the-Middle Angriff]].&lt;br /&gt;
&lt;br /&gt;
== Wiederholungsaufgaben/Übungen ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1 Was ist der Unterschied zwischen Identifikation, Authentifikation und Autorisation?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2 Was ist eine Zwei-Faktor-Authentifikation?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3 Welche drei Zugriffssteuerungsmodelle gibt es?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;4 Erklären Sie das Modell der Eigner-definierten Zugriffssteuerung.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;5 Was sind Zertifikate und die damit verbundenen Vertrauensmodelle?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;6 Was bedeutet PKI und wer sind ihre Hauptakteure? Wie hängen diese Akteure zusammen?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;7 Eine Passwortrichtlinie fordert ein Passwort, bestehend aus Kleinbuchstaben, Großbuchstaben und Ziffern mit einer Länge von 10 Zeichen. Wie wird die Komplexität des Passworts berechnet (wie viele mögliche Passwörter gibt es)?&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Computer-_und_Netzwerksicherheit_-_Kryptograhpie&amp;diff=6245</id>
		<title>Computer- und Netzwerksicherheit - Kryptograhpie</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Computer-_und_Netzwerksicherheit_-_Kryptograhpie&amp;diff=6245"/>
		<updated>2024-03-19T13:37:15Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Kryptographie =&lt;br /&gt;
&lt;br /&gt;
Bei der Kryptographie handelt es sich um Methoden, Daten in eine Form zu bringen, in der Sie nur von denen gelesen werden können, die dazu berechtigt sind. Für alle anderen sollen die Daten während ihrer Übermittlung und Speicherung unlesbar sein.&lt;br /&gt;
&lt;br /&gt;
Die Kryptographie hat ihren bekannten Ursprung in den Jahren um 2000 v. Chr. Die Ägypter nutzten Hieroglyphen um Grabkammern zu dekorieren und die Lebensgeschichte des Verstorbenen zu erzählen. Das Augenmerk lag dabei jedoch nicht in der Unkenntlichmachung der Informationen sondern darin, sie durch die bildhafte Darstellungsform zeremoniell und majestätisch wirken zu lassen. [Ha13, 760]&lt;br /&gt;
&lt;br /&gt;
Eine der ersten Methoden mit der Absicht einen Text unkenntlich zu machen, war die hebräische &amp;#039;&amp;#039;&amp;#039;Atbash&amp;#039;&amp;#039;&amp;#039; Methode. Dabei wurde als Schlüssel jedem Buchstaben im Alphabet ein anderer Buchstabe zugewiesen. Ein Beispiel für einen Schlüssel wären demnach die folgenden beiden Zeilen [Ha13, 760]:&lt;br /&gt;
&lt;br /&gt;
ABCDEFGHIJKLMNOPQRSTUVWXYZ&lt;br /&gt;
&lt;br /&gt;
ZYXWVUTSRQPONMLKJIHGFEDCBA&lt;br /&gt;
&lt;br /&gt;
Damit könnte nun beispielsweise der Text „KRYPTO“ zum Text „PIBKGL“ verschlüsselt werden, indem der Buchstabe des ursprünglichen Textes in der ersten Zeile des Schlüssels nachgesehen und dann durch den jeweiligen Buchstaben der zweiten Zeile ersetzt wird. Zur Entschlüsselung wird dieselbe Technik umgekehrt angewendet, indem der Buchstabe des verschlüsselten Textes in der zweiten Zeile gesucht und dann durch den jeweiligen Eintrag der ersten Zeile ersetzt wird.&lt;br /&gt;
&lt;br /&gt;
Ein weiterer historisch erfolgreicher Algorithmus ist der &amp;#039;&amp;#039;&amp;#039;Cäsar-Algorithmus&amp;#039;&amp;#039;&amp;#039;. Er wurde in der Zeit der gallischen Kriege von Julius Cäsar entwickelt und eingesetzt um vertrauliche Nachrichten zu übermitteln, ohne dem Nachrichtenboten vertrauen zu müssen. Das Prinzip des Cäsar- Algorithmus ist simpel. Jeder Buchstabe der Nachricht wird um eine bestimmte Anzahl an Stellen im Alphabet nach hinten verschoben, wobei beim Erreichen des letzten Buchstaben Z wieder mit dem ersten Buchstaben A weitergezählt wird. Die Anzahl der Buchstaben, um die die Nachricht verschoben wird, wird dabei meist als Teil des Algorithmus Namens angegeben. So sind bei einer Cäsar 5 Verschlüsselung die Buchstaben der Nachricht um 5 Stellen verschoben und bei einer Cäsar 15 Verschlüsselung um 15 Stellen.&lt;br /&gt;
&lt;br /&gt;
Der Text „KRYPTO“ wird durch Anwendung einer Cäsar 5 Verschlüsselung zu „PWDUYT“. Dabei wird auch deutlich, dass beim Verschieben des Buchstaben Y zum Buchstaben D, nach Erreichen von Z wieder mit A begonnen wird.&lt;br /&gt;
&lt;br /&gt;
Der Cäsar-Algorithmus ist aus heutiger Sicht auch von Nicht-Kryptographen leicht zu knacken. Aus damaliger Sicht war es jedoch ein sehr sicheres Verfahren, da der Bildungsgrad der Bevölkerung nicht sehr hoch war und viele nicht schreiben und lesen konnten.&lt;br /&gt;
&lt;br /&gt;
Eine deutliche Verbesserung des Cäsar-Algorithmus würde im 16. Jahrhundert von Blaise de Vigenere entwickelt und deshalb auch als &amp;#039;&amp;#039;&amp;#039;Vigenere-Algorithmus&amp;#039;&amp;#039;&amp;#039; bezeichnet. Dabei wird nicht mehr jeder Buchstabe um eine bestimmte Anzahl von Zeichen verschoben, sondern ein Schlüssel definiert, der die jeweilige Verschiebung der einzelnen Buchstaben bestimmt. Im nachfolgenden Beispiel wird ein Text mit Hilfe des Schlüssels „KRYPTO“ verschlüsselt.&lt;br /&gt;
&lt;br /&gt;
Klartext: &amp;#039;&amp;#039;&amp;#039;DIETA&amp;#039;&amp;#039;&amp;#039;UBEISTA&amp;#039;&amp;#039;&amp;#039;UFDEMD&amp;#039;&amp;#039;&amp;#039;ACH&lt;br /&gt;
&lt;br /&gt;
Schlüssel: &amp;#039;&amp;#039;&amp;#039;KRYPTO&amp;#039;&amp;#039;&amp;#039;KRYPTO&amp;#039;&amp;#039;&amp;#039;KRYPTO&amp;#039;&amp;#039;&amp;#039;KRY&lt;br /&gt;
&lt;br /&gt;
Verschlüsselt: &amp;#039;&amp;#039;&amp;#039;NZCIT&amp;#039;&amp;#039;&amp;#039;ILVGHMO&amp;#039;&amp;#039;&amp;#039;EWBTFR&amp;#039;&amp;#039;&amp;#039;KTF&lt;br /&gt;
&lt;br /&gt;
Der Schlüssel wird für die gesamte Länge der Nachricht immer wieder wiederholt. Im Beispiel befindet sich der Buchstabe D bei seinem ersten vorkommen im Text unter dem Buchstaben K des Schlüssels und wird daher um 10 Zeichen verschoben und somit zu einem N. Bei seinem zweiten Vorkommen befindet sich das D der Nachricht jedoch unter dem Y des Schlüssels und wird daher zu einem B.&lt;br /&gt;
&lt;br /&gt;
Um den Abstand zwischen dem Zeichen der Nachricht und dem Zeichen des Schlüssels schneller manuell ermitteln zu können wird oft eine Tabelle eingesetzt, in der alle möglichen Abstandskombinationen aufgelistet sind. Diese wird als Vigenere-Tabelle bezeichnet und ist in Abbildung &amp;quot;Vigenere-Tabelle&amp;quot; zu sehen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 7.png|300px|none|thumb|Vigenere-Tabelle]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref413834735&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In dieser Lektion werden nun weiter die Grundbegriffe der Kryptographie, ihre wesentlichen Methoden und mögliche Angriffsvektoren genauer behandelt.&lt;br /&gt;
&lt;br /&gt;
== Wesentliche Begriffe der Kryptographie ==&lt;br /&gt;
&lt;br /&gt;
In der Kryptographie gibt es einige wichtige Grundbegriffe. Sie dienen der Beschreibung der Methoden und den unterschiedlichen Stadien von Ver- und Entschlüsselung. Diese Begriffe sind nun nachfolgend beschrieben.&lt;br /&gt;
&lt;br /&gt;
===  Klartext (Plaintext) ===&lt;br /&gt;
&lt;br /&gt;
Beim Klartext handelt es sich um die unverschlüsselte Nachricht, die übertragen werden soll. Solange sich die Nachricht in diesem Zustand befindet kann sie von jedem gelesen werden, der Zugriff auf sie hat.&lt;br /&gt;
&lt;br /&gt;
=== Geheimtext (Ciphertext) ===&lt;br /&gt;
&lt;br /&gt;
Dabei handelt es sich um eine verschlüsselte Klartext Nachricht. Sie ist in diesem Zustand nicht lesbar. Jeder, der in den Besitz des Geheimtextes kommt muss den zugehörigen Algorithmus und Schlüssel kennen um die Nachricht wieder in den Klartext umwandeln zu können.&lt;br /&gt;
&lt;br /&gt;
=== Chiffre (Cipher / Algorithmus) ===&lt;br /&gt;
&lt;br /&gt;
Die zur Ver- und Entschlüsselung eingesetzte Methode und der zugehörige Algorithmus werden als Chiffre (Cipher) bezeichnet. Sie verarbeitet einen Plaintext mit Hilfe des Keys zu Ciphertext und umgekehrt. Dabei handelt es sich um eine Ansammlung von Umwandlungen der Zeichen (oder Bits) des Textes.&lt;br /&gt;
&lt;br /&gt;
Es gibt &amp;#039;&amp;#039;&amp;#039;bekannte&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;unbekannte&amp;#039;&amp;#039;&amp;#039; Chiffren. Alle gängig eingesetzten Chiffren sind hinlänglich ihrer genauen Funktionsweise bekannt. Die Stärke der Chiffre ist von wesentlicher Bedeutung für die Sicherheit. Die Unbekannte ist dabei immer der Schlüssel. Ein wesentlicher Vorteil von bekannten Chiffren ist die große Anzahl an Nutzern und der Möglichkeit sie öffentlich zu analysieren und zu testen. Damit werden gefundene Schwachstellen meist schnell veröffentlicht und behoben. Dass die Sicherheit eines kryptographischen Verfahrens im Wesentlichen in der Geheimhaltung des Schüssels und nicht in der des Ciphers liegt, ist die wesentliche Aussage von [[#Security by_Obscurity_und_das_Kerckhoffs%E2%80%99sche_Prinzip|Kerckhoff‘s Prinzip]].&lt;br /&gt;
&lt;br /&gt;
Unbekannte Chiffren werden meist von Nachrichtendiensten eingesetzt. Ihr Vorteil liegt darin, dass ein möglicher Angreifer nicht nur den Schlüssel, sondern auch die Chiffre herausfinden muss, um die Nachricht lesen zu können. Der wesentliche Nachteil ist das Fehlen einer breiten Anwenderschicht und die damit verbundenen Reviews und Tests. Es muss daher sehr viel Aufwand in die Entwicklung und Testung der Chiffre gesteckt werden, um mögliche Sicherheitslücken identifizieren zu können.&lt;br /&gt;
&lt;br /&gt;
Bei den Chiffren wird zwischen &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;[[#Symmetrische Verfahren|&amp;lt;strong&amp;gt;symmetrischen&amp;lt;/strong&amp;gt; ]] &amp;#039;&amp;#039;&amp;#039;und&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;[[#Asymmetrische Verfahren|&amp;lt;strong&amp;gt;asymmetrischen&amp;lt;/strong&amp;gt; ]]Algorithmen unterschieden.&lt;br /&gt;
&lt;br /&gt;
=== Schlüssel (Key) und Keyspace ===&lt;br /&gt;
&lt;br /&gt;
Der &amp;#039;&amp;#039;&amp;#039;Schlüssel&amp;#039;&amp;#039;&amp;#039; wird von der Chiffre verwendet um Variabilität und Unregelmäßigkeiten in den Algorithmus zu bringen. Damit soll sichergestellt werden, dass dieselbe Chiffre, angewendet auf denselben Klartext, durch den Einsatz unterschiedlicher Schlüssel zu unterschiedlichen Geheimtexten führt. Somit ist der Schlüssel das wesentliche, geheim zuhaltende, Element.&lt;br /&gt;
&lt;br /&gt;
Welche möglichen Schlüssel für eine Chiffre angewendet werden können, wird durch den &amp;#039;&amp;#039;&amp;#039;Keyspace&amp;#039;&amp;#039;&amp;#039; definiert. Dieser enthält alle möglichen Schlüssel. Je größer der Keyspace ist, desto mehr unterschiedliche Schlüssel existieren. Je mehr mögliche Schlüssel auf eine Chiffre anwendbar sind, desto aufwändiger wird es für einen Angreifer eine Nachricht durch bloßes Ausprobieren unterschiedlicher Schlüssel zu entschlüsseln.&lt;br /&gt;
&lt;br /&gt;
Der Cäsar Algorithmus hat beispielsweise einen Keyspace von 26 möglichen Schlüsseln, da es genauso viele Buchstaben im lateinischen Alphabet gibt. Ein Angreifer würde durch einfaches durchprobieren daher maximal 26 Versuche benötigen, wobei die Verwendung des Schlüssels A sehr unwahrscheinlich ist, da der Text damit gleich bleiben würde.&lt;br /&gt;
&lt;br /&gt;
Aktuelle Cipher haben hingegen wesentlich größere Keyspaces. Beispielsweise hat [[#Aktuelle Kryptographie-Standards_mit_symmetrischen_Methoden|AES256]] eine Schlüssellänge von 256 Bit. Daraus ergibt sich ein Keyspace von 2&amp;lt;sup&amp;gt;256&amp;lt;/sup&amp;gt; möglichen Schlüsseln. Da ein Angreifer durch zufälliges durchprobieren einen Schlüssel in der Regel nach der Hälfte der möglichen Kombinationen errät, muss er hier ca. (2&amp;lt;sup&amp;gt;256&amp;lt;/sup&amp;gt;)/2 = 2&amp;lt;sup&amp;gt;255&amp;lt;/sup&amp;gt; Versuche durchführen.&lt;br /&gt;
&lt;br /&gt;
=== Verschlüsselung (Encryption) / Entschlüsselung (Decryption) ===&lt;br /&gt;
&lt;br /&gt;
Bei der &amp;#039;&amp;#039;&amp;#039;Verschlüsselung&amp;#039;&amp;#039;&amp;#039; handelt es sich um die Umwandlung von Klartext in Geheimtext mittels zugehöriger Chiffre und Schlüssel und bei der &amp;#039;&amp;#039;&amp;#039;Entschlüsselung&amp;#039;&amp;#039;&amp;#039; um die Umwandlung des Geheimtextes zurück in den Klartext.&lt;br /&gt;
&lt;br /&gt;
Der Ablauf eines Weges vom Klartext über den Geheimtext zurück zum Klartext ist in Abbildung &amp;quot;Zusammenhang der Kryptographie Begriffe&amp;quot; noch einmal grafisch dargestellt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 8.png|300px|none|thumb|Zusammenhang der Kryptographie Begriffe]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref413851263&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Security by Obscurity und das Kerckhoffs’sche Prinzip ==&lt;br /&gt;
&lt;br /&gt;
Ein kryptographisches System lässt sich durch die bloße Geheimhaltung der zugehörigen Chiffre nicht gewährleisten. Dieser Versuch wird auch als &amp;#039;&amp;#039;&amp;#039;Security by Obscurity&amp;#039;&amp;#039;&amp;#039; bezeichnet, da hier davon ausgegangen würde, dass alleine die Unwissenheit über die Methodik der Chiffre zu mehr Sicherheit führt. Dadurch ergeben sich jedoch einige wesentliche Probleme. Die geringe Anzahl an eingeweihten Anwendern entdeckt Fehler des Ciphers spät bis überhaupt nicht. Sobald die geheime Chiffre jedoch bekannt wird, ist jede durch ihre Geheimhaltung erreichte Sicherheit gebrochen. Wurde dann nicht auf eine ausreichende Geheimhaltung und Komplexität der Schlüssel geachtet hat wird das gesamte System unbrauchbar.&lt;br /&gt;
&lt;br /&gt;
Kerkhoff entwickelte 1883 die Grundprinzipien sicherer Verschlüsselung, welche bis heute Bestand haben. Einer dieser Grundsätze wird heute als das &amp;#039;&amp;#039;&amp;#039;Kerhoffs‘sche Prinzip&amp;#039;&amp;#039;&amp;#039; bezeichnet. Es besagt, dass nicht das System selbst, sondern der Schlüssel geheim sein muss, um eine maximale Sicherheit zu erreichen. Der Algorithmus soll immer öffentlich bekannt sein. Der Schlüssel muss dabei unbedingt geheim gehalten werden. Je mehr unterschiedliche Geheimnisse rund um ein kryptographisches System nötig sind, umso verwundbarer ist es gegenüber möglichen Angriffen, welche Teile der Geheimnisse herausfinden. [Ha13, 767]&lt;br /&gt;
&lt;br /&gt;
Auch wenn das Kerhoffs‘sche Prinzip besagt, dass die Sicherheit alleinig in der Geheimhaltung des Schlüssels liegt, so hat Security by Obscurity doch auch manchmal ihre Berechtigung. So kann beispielsweise durch die Kombination mehrerer bekannter Verfahren eine Unregelmäßigkeit hergestellt werden, welche möglichen Angreifern eine Analyse erschwert und damit eine erste Hürde darstellt, die überwunden werden muss.&lt;br /&gt;
&lt;br /&gt;
Eine bekannte Anwendung ist das sogenannte „Salzen“ von Hashwerten. Dabei wird dem Plaintext vor der Hashwertberechnung ein zusätzlicher Teil („Salt“) hinzugefügt. Gelingt es einem Angreifer nun anhand der Hashwerte mögliche Ausgangswerte zu konstruieren, kann er den Ursprungswert nur durch das zusätzliche Wissen des „Salts“ rekonstruieren. Die berechneten Werte sind somit unbrauchbar.&lt;br /&gt;
&lt;br /&gt;
== Symmetrische Verfahren ==&lt;br /&gt;
&lt;br /&gt;
Bei einem symmetrischen kryptographischen Verfahren (Chiffre) wird ein Klartext mit ein und &amp;#039;&amp;#039;&amp;#039;demselben Schlüssel&amp;#039;&amp;#039;&amp;#039; verschlüsselt und auch wieder entschlüsselt (siehe Abbildung &amp;quot;Symmetrische Verfahren mit einem Schlüssel&amp;quot;). Bei symmetrischen Verfahren werden &amp;#039;&amp;#039;&amp;#039;Substitutions-Methoden&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;Transpositions-Methoden&amp;#039;&amp;#039;&amp;#039; angewendet, um den Klartext unkenntlich zu machen. Diese können innerhalb der Chiffre natürlich auch beliebig kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 9.png|300px|none|thumb|Symmetrische Verfahren mit einem Schlüssel]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref414275816&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Substitutions-Methoden ===&lt;br /&gt;
&lt;br /&gt;
Bei der Substitution handelt es sich um die Umwandlung eines Zeichens (oder Bits) durch ein anderes. Dies wären beispielsweise bei einem Cäsar 5 Algorithmus das Ersetzen des Zeichen K durch das Zeichen P zur Verschlüsselung und das Ersetzen des Zeichens P durch das Zeichen K zur Entschlüsselung. Der Schlüssel ist hierbei der Wert 5, welcher die Zuordnung des jeweiligen Zielzeichens ermöglicht.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel auf Bit-Ebene ist die einfache XOR Verknüpfung des Schlüssels mit dem Text, welche ebenfalls in beide Richtungen anwendbar ist:&lt;br /&gt;
&lt;br /&gt;
Klartext: 010010110101001001011001&lt;br /&gt;
&lt;br /&gt;
Schlüssel: 010000010100001001000011&lt;br /&gt;
&lt;br /&gt;
Geheimtext: 000010100001000000011010&lt;br /&gt;
&lt;br /&gt;
Die Berechnung des Geheimtextes und des Klartextes ist dabei in beide Richtungen über die Verknüpfung mit dem Schlüssel möglich.&lt;br /&gt;
&lt;br /&gt;
Ist der mittels XOR verknüpfte Schlüssel:&lt;br /&gt;
&lt;br /&gt;
* gleich lang wie die Nachricht,&lt;br /&gt;
* zufällig generiert und&lt;br /&gt;
* wird dieser nur ein einziges Mal verwendet,&lt;br /&gt;
wird dies als &amp;#039;&amp;#039;&amp;#039;One-Time-Pad&amp;#039;&amp;#039;&amp;#039; bezeichnet. Diese Methode ist, ohne den Schlüssel in Besitz zu bekommen, definitiv unknackbar und damit die sicherste kryptographische Methode. Die Herausforderung besteht hierbei darin den Schlüssel sicher zu übermitteln, da dieser gleich lang wie die Nachricht sein muss. Dies ist meist nur sehr umständlich machbar und mit einem ähnlichen Aufwand verbunden, wie die Übermittlung der Nachricht selbst. One-Time-Pads werden daher eher zur Übermittlung kleinerer, hoch sensibler, Datenmengen eingesetzt. Sie könnten jedoch an Bedeutung gewinnen, da eine sichere Übermittlung von größeren Schlüsseln mittels Quantentechnologien immer praxistauglicher wird.&lt;br /&gt;
&lt;br /&gt;
=== Transpositions-Methode ===&lt;br /&gt;
&lt;br /&gt;
Bei der Transposition werden einzelne Teile des Textes mit anderen Teilen vertauscht. Der Schlüssel gibt dabei an, welcher Teil mit welchem vertauscht werden soll.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für eine einfache Transpositions-Methode ist in Abbildung &amp;quot;Transpositions-Cipher&amp;quot; dargestellt. Dabei wird der Plaintext zuerst in Gruppen zerlegt. Diese Gruppen werden nun gemäß dem Schlüsselwert intern neu angeordnet und ergeben dann in Summe wiederum den Ausgabetext. Auch diese Methode ist in beide Richtungen – sowohl zur Ver-, als auch zur Entschlüsselung – anwendbar.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 10.png|300px|none|thumb|Transpositions-Cipher]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref414273373&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aktuelle Kryptographie-Standards mit symmetrischen Methoden ===&lt;br /&gt;
&lt;br /&gt;
In der nachfolgenden Tabelle &amp;quot;Gängige Standards mit symmetrischen Algorithmen&amp;quot; sind die aktuell gängigsten symmetrischen Chiffren und ihre Eckpunkte aufgelistet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref414288799&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Tabelle: Gängige Standards mit symmetrischen Algorithmen&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! width=&amp;quot;34%&amp;quot; | Standard Name&lt;br /&gt;
! width=&amp;quot;34%&amp;quot; | Algorithmus&lt;br /&gt;
! width=&amp;quot;31%&amp;quot; | Schlüssellängen&lt;br /&gt;
|- &lt;br /&gt;
| Data Encryption Standard (DES)&lt;br /&gt;
| Data Encryption Algorithm (DEA)&lt;br /&gt;
| 56 Bit Schlüssel&amp;lt;br&amp;gt;&lt;br /&gt;
(+8 Bit Parität = 64Bit)&lt;br /&gt;
|- &lt;br /&gt;
| Triple-DES (3DES)&lt;br /&gt;
| Triple Data Encryption Algorithm (TDEA)&lt;br /&gt;
| 112 Bit&lt;br /&gt;
|- &lt;br /&gt;
| Advanced Encryption Standard (AES)&lt;br /&gt;
| Rijndael&lt;br /&gt;
|&lt;br /&gt;
128 Bit&lt;br /&gt;
&lt;br /&gt;
192 Bit&lt;br /&gt;
&lt;br /&gt;
256 Bit&lt;br /&gt;
|- &lt;br /&gt;
| International Data Encryption Algorithm (IDEA)&lt;br /&gt;
| International Data Encryption Algorithm (IDEA)&lt;br /&gt;
| 128 Bit&lt;br /&gt;
|- &lt;br /&gt;
| Blowfish&lt;br /&gt;
| Blowfish&lt;br /&gt;
| Variable Länge zwischen 32 und 448 Bit&lt;br /&gt;
|- &lt;br /&gt;
| RC4&lt;br /&gt;
| RC4&lt;br /&gt;
| Variable Länge&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Asymmetrische Verfahren ==&lt;br /&gt;
&lt;br /&gt;
Bei asymmetrischen Verfahren werden zur Verschlüsselung und Entschlüsselung einer Nachricht &amp;#039;&amp;#039;&amp;#039;zwei unterschiedliche Schlüssel&amp;#039;&amp;#039;&amp;#039; verwendet. Die beiden Schlüssel gehören dabei immer zusammen und bilden ein &amp;#039;&amp;#039;&amp;#039;Schlüsselpaar&amp;#039;&amp;#039;&amp;#039; (siehe Abbildung &amp;quot;Asymmetrische Verfahren mit zwei unterschiedlichen Schlüsseln&amp;quot;). Es ist somit nicht möglich eine Nachricht mit demselben Schlüssel zu entschlüsseln, mit dem sie verschlüsselt wurde. Es kann dabei jeder der beiden Schlüssel zur Verschlüsselung einer Nachricht eingesetzt werden. Zur Entschlüsselung wird dabei immer der jeweils andere Schlüssel benötigt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 11.png|300px|none|thumb|Asymmetrische Verfahren mit zwei unterschiedlichen Schlüsseln]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref414276398&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies ist auch vergleichbar mit einem Vorhängeschloss und einem Schlüssel. Das Schloss kann eingesetzt werden um eine Kiste zu versperren. Ohne den zugehörigen Schlüssel kann das Schloss jedoch nicht mehr geöffnet werden. Im Fall der asymmetrischen Verschlüsselung ist jeder der beiden Schlüssel gleichzeitig das Schloss des jeweils anderen Schlüssels:&lt;br /&gt;
&lt;br /&gt;
* Key 1 = Schloss 2 (kann von Key 2 geöffnet werden)&lt;br /&gt;
* Key 2 = Schloss 1 (kann von Key 1 geöffnet werden)&lt;br /&gt;
Die beiden Schlüssel werden als &amp;#039;&amp;#039;&amp;#039;Public-Key&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;Private-Key&amp;#039;&amp;#039;&amp;#039; bezeichnet. Diese Bezeichnungen beruhen darauf, dass einer der beiden Schlüssel immer privat – also nur einer bestimmten Person bekannt – sein sollte. Der andere Schlüssel kann dann öffentlich an alle weitergegeben werden, die Nachrichten an den Besitzer des Private-Keys schicken wollen. Er ist somit public.&lt;br /&gt;
&lt;br /&gt;
Will nun jemand eine Nachricht an den Besitzer des Private-Keys übermitteln kann er nun den dazu den &amp;#039;&amp;#039;&amp;#039;Public-Key für die Verschlüsselung&amp;#039;&amp;#039;&amp;#039; verwenden. Da die Nachricht nur mit dem zugehörigen Private-Key entschlüsselt werden kann, kann sie auch nur von dessen Besitzer gelesen werden. Der Public-Key ist zwar öffentlich verfügbar, jedoch zur Entschlüsselung der Nachricht nicht verwendbar.&lt;br /&gt;
&lt;br /&gt;
Diese Methode kann nun auch umgekehrt verwendet werden um eine Nachricht durch den Besitzer des &amp;#039;&amp;#039;&amp;#039;Private-Keys zu&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;signieren&amp;#039;&amp;#039;&amp;#039;. Dabei wird meist ein [[#Hashing|Hashwert]] der Nachricht generiert, die signiert werden soll. Dieser Hashwert wird nun mit dem Private-Key verschlüsselt und an die Nachricht angehängt. Will nun ein Empfänger prüfen, ob die Nachricht tatsächlich vom Besitzer des Private-Keys stammt, muss er nur den Hashwert mit dem öffentlich verfügbaren Public-Key entschlüsseln und mit dem aktuellen Hashwert der empfangenen Nachricht vergleichen. Sind die beiden Hashwerte ident, ist somit sichergestellt, dass die Nachricht vom Besitzer des Private-Keys stammen muss, da nur er den Hashwert korrekt verschlüsseln konnte. Würde sie auf dem Weg zum Empfänger verändert worden sein, wären die Hashwerte unterschiedlich.&lt;br /&gt;
&lt;br /&gt;
Asymmetrische Methoden basieren auf komplexen mathematischen Berechnungen und sind vergleichsweise langsam. Sie werden daher meist nicht für die Verschlüsselung der Nachricht, sondern nur für die Verschlüsselung eines Schlüssels für die Anwendung einer symmetrischen Methode verwendet. Damit ist sichergestellt, dass der Schlüssel sicher übertragen wird und gleichzeitig eine schnellere Ver- und Entschlüsselung der übrigen Nachricht, mittels symmetrischer Methoden, erfolgen kann.&lt;br /&gt;
&lt;br /&gt;
Eine weit verbreitete asymmetrische Methode wurde 1977 von Ronald L. &amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039;ivest, Adi &amp;#039;&amp;#039;&amp;#039;S&amp;#039;&amp;#039;&amp;#039;hamir und Leonard &amp;#039;&amp;#039;&amp;#039;A&amp;#039;&amp;#039;&amp;#039;dleman entwickelt und trägt daher den Namen &amp;#039;&amp;#039;&amp;#039;RSA&amp;#039;&amp;#039;&amp;#039;. Sie ist eine Weiterentwicklung des Diffie-Hellmann [[#Schl%C3%BCsseltauschverfahren|Schlüsseltauschverfahrens]]. Genauso wie dieses basiert sie auf dem Einsatz von &amp;#039;&amp;#039;&amp;#039;[[#Schl%C3%BCsseltauschverfahren|Einwegfunktionen]]&amp;#039;&amp;#039;&amp;#039;. Das Schlüsselpaar wird bei RSA durch den Einsatz sehr großer Primzahlen generiert, wobei die Anwendung des ersten Schlüssels die Nachricht unkenntlich macht und die zusätzliche Anwendung des zweiten Schlüssels die Anwendung des ersten Schlüssels wieder aufhebt. Der zugehörige zweite Schlüssel der Einwegfunktion ist nur durch Primfaktorzerlegungen sehr großer Primzahlen berechenbar. Dies ist jedoch ein sehr rechen- und damit zeitaufwändiger Vorgang.&lt;br /&gt;
&lt;br /&gt;
Eine weiter asymmetrische Methode ist die der &amp;#039;&amp;#039;&amp;#039;E&amp;#039;&amp;#039;&amp;#039;lliptic &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;urve &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;ryptographie (&amp;#039;&amp;#039;&amp;#039;ECC&amp;#039;&amp;#039;&amp;#039;). Sie basiert auf der Berechnung von Punkten entlang einer elliptischen Kurve in einem zweidimensionalen Koordinatensystem. Dabei werden eine bestimmte Kurve und ein Startpunkt angegeben. Das Schlüsselpaar ergibt sich dann durch die Koordinaten eines Zielpunkts und der Anzahl der nötigen Schritte, die nötig sind, um vom Startpunkt aus zu ihm zu gelangen. Ähnlich der Berechnung der Multiplikation zweier Primzahlen ist und der Schwierigkeit einer Rückrechnung mittels Primfaktorzerlegung ist es einfach einen Punkt auf der Kurve zu berechnen, jedoch schwierig die Anzahl der nötigen Schritte zu ermitteln, die nötig sind um zu diesem Punkt zu gelangen. Ein Beispiel einer solchen Elliptic Curve ist in Abbildung &amp;quot;Elliptic Curve&amp;quot; dargestellt.&lt;br /&gt;
&lt;br /&gt;
Die ECC Methoden sind stärker als die herkömmlichen asymmetrischen Methoden. Sie können sehr gut als performante Hardwarekomponenten implementiert werden und eignen sich daher besonders für den Einsatz in mobilen Endgeräten mit geringer Rechenleistung.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 12.png|300px|none|thumb|Elliptic Curve]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref414286823&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Schlüsseltauschverfahren ==&lt;br /&gt;
&lt;br /&gt;
Eine wesentliche Herausforderung der verschlüsselten Datenübertragung ist der Schlüsseltausch. Es muss daher eine Methode gefunden werden den nötigen Schlüssel zur Entschlüsselung der Nachricht an den Empfänger zu übermitteln, ohne dass dieser abgefangen werden kann. Würde der Schlüssel einfach vor der Übermittlung einer Nachricht übertragen werden, dann könnte ein möglicher Angreifer sowohl den Schlüssel, als auch den verschlüsselte Nachricht abfangen und dann beides gemeinsam einsetzen und die Nachricht einfach entschlüsseln.&lt;br /&gt;
&lt;br /&gt;
Um dieses Problem zu lösen gibt es einige Methoden, die daher auch als Schlüsseltauschverfahren bezeichnet werden.&lt;br /&gt;
&lt;br /&gt;
Die erste veröffentlichte mögliche Schlüsseltausch-Methode wurde 1976 von Diffie und Hellmann entwickelt. Sie basiert auf dem Einsatz von mathematischen Einwegfunktionen. Eine &amp;#039;&amp;#039;&amp;#039;Einwegfunktion&amp;#039;&amp;#039;&amp;#039; ist eine Funktion, welche leicht berechnet werden kann, deren Rückrechnung jedoch sehr schwierig ist. Dies lässt sich mit dem Mischen zweier Farbkübel zu vergleichen: Es ist zwar leicht zwei Farben zu mischen, jedoch enorm aufwändig sie wieder in ihre ursprünglichen Farbtöne aufzuteilen (vgl. Abbildung &amp;quot;Einwegfunktion der Farbmischung&amp;quot;) und manuell nur durch ausprobieren möglich.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 13.png|300px|none|thumb|Einwegfunktion der Farbmischung]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref413924943&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies macht sich der Diffie-Hellmann Schlüsseltausch nun zu Nutze, indem er mathematische Einwegfunktionen verwendet um einen gemeinsamen und geheimen Schlüssel über eine unsichere Leitung auszutauschen. Die Vorgehensweise ist nachfolgend durch ein Beispiel mit Farbkübeln beschrieben und dann anschließend mathematisch erklärt.&lt;br /&gt;
&lt;br /&gt;
Der Ablauf ist dabei folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
# Beide Teilnehmer vereinbaren eine &amp;#039;&amp;#039;&amp;#039;gemeinsame (nicht geheime) Farbe.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Jeder Teilnehmer generiert eine eigene &amp;#039;&amp;#039;&amp;#039;geheime Farbe&amp;#039;&amp;#039;&amp;#039;, nur er selbst kennt.&lt;br /&gt;
# Nun &amp;#039;&amp;#039;&amp;#039;mischen sie jeweils die geheime Farbe zur gemeinsamen Farbe&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Danach &amp;#039;&amp;#039;&amp;#039;übermitteln&amp;#039;&amp;#039;&amp;#039; sie sich gegenseitig die &amp;#039;&amp;#039;&amp;#039;Mischungen&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Jeder Teilnehmer mischt seine &amp;#039;&amp;#039;&amp;#039;eigene geheime Farbe zur empfangenen Mischung&amp;#039;&amp;#039;&amp;#039; des anderen. Damit haben nun beide einen Farbkübel mit derselben Mischung aus: &amp;#039;&amp;#039;&amp;#039;gemeinsame Farbe + eigene geheime Farbe + geheime Farbe des anderen&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Die gemeinsame Mischung kann nun als Schlüssel für den geheimen Nachrichtenaustausch verwendet werden.&lt;br /&gt;
Die einzelnen Schritte des Schlüsseltauschs sind in Abbildung &amp;quot;Ablauf des Diffie-Hellmann Schlüsseltausches&amp;quot; noch einmal bildlich dargestellt. In der rechten Spalte ist ersichtlich welche Informationen ein möglicher Angreifer mithören kann. Er gelangt zwar an die gemeinsame Farbe und an die beiden Mischungen. Es ist ihm jedoch nicht möglich die geheimen Farben zu ermitteln. Damit fehlt ihm auch die Möglichkeit den gemeinsamen Schlüssel herauszufinden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 14.png|300px|none|thumb|Ablauf des Diffie-Hellmann Schlüsseltausches]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref414352792&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mathematisch betrachtet basiert der Diffie-Hellmann Schlüsseltausch auf dem &amp;#039;&amp;#039;diskreten Logarithmus-Problem&amp;#039;&amp;#039; und wird mit Hilfe folgender Formel abgebildet:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;n = g&amp;lt;sup&amp;gt;k&amp;lt;/sup&amp;gt; mod p&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Das &amp;#039;&amp;#039;diskrete Logarithmus-Problem&amp;#039;&amp;#039; beschreibt die Schwierigkeit für gegebene Werte der Variablen &amp;#039;&amp;#039;n&amp;#039;&amp;#039;, &amp;#039;&amp;#039;g&amp;#039;&amp;#039; und der Primzahl &amp;#039;&amp;#039;p&amp;#039;&amp;#039; den Wert der Variablen &amp;#039;&amp;#039;k&amp;#039;&amp;#039; zu finden. Bei kleinen Werten ist eine Berechnung von k noch machbar. Je größer sie jedoch werden, desto länger wird die dafür benötigte Zeit, da ein Rückrechnen nur durch Ausprobieren möglich ist. Für jedes zusätzliche Bit des Wertes müssen doppelt so viele Versuche angewendet werden.&lt;br /&gt;
&lt;br /&gt;
Beim Schlüsseltausch sind &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;g&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; nun die gemeinsamen Werte (gemeinsame Farbe), welche öffentlich übermittelt werden und &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; das jeweilige Mischergebnis. &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;k&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; ist dabei der jeweils geheime Wert (eigene geheime Farbe), welcher niemals übermittelt wird.&lt;br /&gt;
&lt;br /&gt;
Um zur gemeinsamen Farbmischung zu kommen macht sich der Schlüsseltausch nun zu Nutze, dass (x &amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt;) &amp;lt;sup&amp;gt;b&amp;lt;/sup&amp;gt; gleich (x &amp;lt;sup&amp;gt;b&amp;lt;/sup&amp;gt;)&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt; &amp;amp;nbsp;und damit x &amp;lt;sup&amp;gt;a b&amp;lt;/sup&amp;gt; ist. Sind a und b nun die beiden geheimen Zahlen können sie zum jeweils anderen Ergebnis hinzugefügt werden, ohne den jeweiligen Exponenten der anderen Seite zu kennen. Übermittelt wird hierbei immer nur das Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Angewendet auf die oben genannte Formel des &amp;#039;&amp;#039;diskreten&amp;#039;&amp;#039; &amp;#039;&amp;#039;Logarithmus-Problems&amp;#039;&amp;#039; ergibt sich nun folgender Ablauf des Schlüsseltauschs:&lt;br /&gt;
&lt;br /&gt;
# Die gemeinsamen Werte für &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;g&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; werden übermittelt&lt;br /&gt;
# Beide Teilnehmer generieren eine geheime Zahl (Teilnehmer A: &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;a&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;; Teilnehmer B: &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;b&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
# Sie berechnen nun jeweils aus &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;g, p&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; und ihrer eigenen geheimen Zahl (&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;a&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; bzw. &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;b&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;) den Wert zur Übermittlung:&amp;lt;br&amp;gt;&lt;br /&gt;
Teilnehmer A: &amp;#039;&amp;#039;A = g&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt; mod p&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Teilnehmer B: &amp;#039;&amp;#039;B = g&amp;lt;sup&amp;gt;b&amp;lt;/sup&amp;gt; mod p&amp;#039;&amp;#039;&lt;br /&gt;
# Teilnehmer A übermittelt nun den Wert &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;A&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; an Teilnehmer B und Teilnehmer B den Wert &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;B&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; an Teilnehmer A.&lt;br /&gt;
# Nun können beide Teilnehmer mit ihrer eigenen geheimen Zahl den gemeinsamen Schlüssel &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;K&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; berechnen:&amp;lt;br&amp;gt;&lt;br /&gt;
Teilnehmer A: &amp;#039;&amp;#039;K = B&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt; mod p&amp;lt;br&amp;gt;&amp;#039;&amp;#039;Teilnehmer B: &amp;#039;&amp;#039;K = A&amp;lt;sup&amp;gt;b&amp;lt;/sup&amp;gt; mod p&amp;#039;&amp;#039;&lt;br /&gt;
# Beide Teilnehmer können nun K zur Verschlüsselung ihrer geheimen Nachrichten verwenden.&lt;br /&gt;
Das &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;B&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt; mod p&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; gleich &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;A&amp;lt;sup&amp;gt;b&amp;lt;/sup&amp;gt; mod p&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; ist, kann mittels gegenseitigem Einsetzen bewiesen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;K = B&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt; mod p = (g&amp;lt;sup&amp;gt;b&amp;lt;/sup&amp;gt; mod p)&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt; mod p = g&amp;lt;sup&amp;gt;b a&amp;lt;/sup&amp;gt; mod p&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;K = A&amp;lt;sup&amp;gt;b&amp;lt;/sup&amp;gt; mod p = (g&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt; mod p)&amp;lt;sup&amp;gt;b&amp;lt;/sup&amp;gt; mod p = g&amp;lt;sup&amp;gt;a b&amp;lt;/sup&amp;gt; mod p&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;K = g&amp;lt;sup&amp;gt;b a&amp;lt;/sup&amp;gt; mod p = g&amp;lt;sup&amp;gt;a b&amp;lt;/sup&amp;gt; mod p&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Da ein möglicher Angreifer jedoch nur in Besitz der Werte g, p, A und B kommt, kann er den Schlüssel K nur mit enorm hohem Aufwand ermitteln.&lt;br /&gt;
&lt;br /&gt;
Auf dem Grundprinzip von Diffie-Hellmann wurde später mit [[#Asymmetrische Verfahren|RSA]] die asymmetrischen Verschlüsselungsmethoden entwickelt. Die Diffie-Hellmann Methode wurde inzwischen auch um die verstärkte Sicherheit von Elliptic Curves erweitert und findet ihre diesbezügliche Verbreitung unter dem Namen Elliptic Curve Diffie-Helman (ECDH).&lt;br /&gt;
&lt;br /&gt;
== Hashing ==&lt;br /&gt;
&lt;br /&gt;
Beim Hashing handelt es sich um die Anwendung einer &amp;#039;&amp;#039;&amp;#039;nicht reversiblen Funktion&amp;#039;&amp;#039;&amp;#039;, auf einen bestimmten Wert. Das Ergebnis einer Hash-Funktion ist somit nicht auf den Ausgangswert umkehrbar. Dabei wird meist ein Wert variabler Länge zu einem Wert fixer Länge umgewandelt, der dem Ursprungswert nicht mehr ähnelt.&lt;br /&gt;
&lt;br /&gt;
Ein guter Hash-Algorithmus hat möglichst wenige &amp;#039;&amp;#039;&amp;#039;Kollisionen&amp;#039;&amp;#039;&amp;#039;. Das bedeutet, dass die Wahrscheinlichkeit bei unterschiedlichen Eingangswerten denselben Ausgangswert zu bekommen sehr gering ist.&lt;br /&gt;
&lt;br /&gt;
Das nachfolgende Beispiel in Tabelle &amp;quot;Beispiel Hashfunktion HashMe()&amp;quot; zeigt mögliche Hashwerte einer fiktiven Hashfunktion HashMe(). Die letzten beiden Zeilen sind ein Beispiel einer Kollision.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref414362664&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Tabelle: Beispiel Hashfunktion HashMe()&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! width=&amp;quot;49%&amp;quot; | Eingangswert&lt;br /&gt;
! width=&amp;quot;28%&amp;quot; | Hashwert = HashMe(Eingangswert)&lt;br /&gt;
! width=&amp;quot;22%&amp;quot; | &amp;lt;br&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| Peter&lt;br /&gt;
| 0c74c6051287c95d&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
|&lt;br /&gt;
Guten Tag!&lt;br /&gt;
&lt;br /&gt;
Hiermit nehme ich Ihr Angebot mit der Nummer 12334 an.&lt;br /&gt;
&lt;br /&gt;
Mit freundlichen Grüßen,&lt;br /&gt;
&lt;br /&gt;
Miriam Muster&lt;br /&gt;
| 878b87429ff50296&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| Mich gibt es hoffentlich nur einmal!&lt;br /&gt;
| ae4692a6f28a03cd&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Kollision&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|- &lt;br /&gt;
| 45667533423233467885354&lt;br /&gt;
|&lt;br /&gt;
ae4692a6f28a03cd&lt;br /&gt;
|           &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Da ein Hashwert einer bestimmten Nachricht immer gleich ist, eignet er sich sehr gut zur &amp;#039;&amp;#039;&amp;#039;Integritätsprüfung&amp;#039;&amp;#039;&amp;#039;. Sobald sich ein Teil der Nachricht ändert, ändert sich auch der Hashwert. Das Vorhandensein einer Änderung der Nachricht kann somit einfach durch den Vergleich des Original-Hashwertes und des aktuellen Hashwertes aufgezeigt werden.&lt;br /&gt;
&lt;br /&gt;
Dieses Prinzip wird auch bei &amp;#039;&amp;#039;&amp;#039;digitalen Signaturen&amp;#039;&amp;#039;&amp;#039; verwendet. Dabei wird ein Hashwert der zu signierenden Nachricht generiert und mit dem [[#Asymmetrische Verfahren|Private-Key]] des Absenders verschlüsselt. Dieser wird der Nachricht dann als Signatur beigefügt. Der Empfänger kann nun den Hashwert mit dem Public-Key entschlüsseln und mit dem aktuellen Hashwert der empfangenen Nachricht vergleichen. Sind die beiden Werte gleich ist sichergestellt, dass:&lt;br /&gt;
&lt;br /&gt;
* sich der Inhalt der Nachricht nicht verändert hat und&lt;br /&gt;
* der Besitzer des Private-Key ist auch der Absender der Nachricht ist, da nur er eine Verschlüsselung durchführen kann, welche mit dem zugehörigen Public-Key korrekt entschlüsselt wird.&lt;br /&gt;
Da mit Hash-Werten die Integrität von Nachrichten geprüft werden kann, werden diese auch oft als &amp;#039;&amp;#039;&amp;#039;Fingerprint&amp;#039;&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;&amp;#039;Message-Digest&amp;#039;&amp;#039;&amp;#039; bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Einige derzeit gängige Hash-Algorithmen sind in Tabelle &amp;quot;Gängige Hash-Algorithmen&amp;quot; aufgelistet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref414365977&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Tabelle: Gängige Hash-Algorithmen&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! width=&amp;quot;26%&amp;quot; | Standard Name&lt;br /&gt;
! width=&amp;quot;32%&amp;quot; | Länge des Hash-Wertes&lt;br /&gt;
! width=&amp;quot;40%&amp;quot; | Anmerkung&lt;br /&gt;
|- &lt;br /&gt;
| MD4&lt;br /&gt;
| 128 Bit&lt;br /&gt;
| Optimiert für schnelle Berechnung&lt;br /&gt;
|- &lt;br /&gt;
| MD5&lt;br /&gt;
| 128 Bit&lt;br /&gt;
| Komplexerer Algorithmus als MD4 und daher langsamere Berechnung&lt;br /&gt;
|- &lt;br /&gt;
| SHA&lt;br /&gt;
| 160 Bit&lt;br /&gt;
| Ähnlich wie MD4&lt;br /&gt;
|- &lt;br /&gt;
| HAVAL&lt;br /&gt;
| Variable Länge&lt;br /&gt;
| Ähnlich wie MD5&lt;br /&gt;
|- &lt;br /&gt;
| Tiger&lt;br /&gt;
| 192 Bit&lt;br /&gt;
|&lt;br /&gt;
Ähnlich wie MD4&lt;br /&gt;
&lt;br /&gt;
Optimiert für 64 Bit Systeme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Angriffsvektoren der Kryptographie ==&lt;br /&gt;
&lt;br /&gt;
Die möglichen direkten Angriffsvektoren der Kryptographie teilen sich in die, nachfolgend beschriebenen, Kategorien:&lt;br /&gt;
&lt;br /&gt;
* Brute-Force Angriffe,&lt;br /&gt;
* Kryptoanalyse und&lt;br /&gt;
* Angriffe gegen Hashwerte.&lt;br /&gt;
Um die genannten Angriffe ausführen zu können, ist es meist erforderlich den zugehörigen Datenverkehr abzuhören und gegebenenfalls auch zu manipulieren. Dazu werden oft [[Computer- und_Netzwerksicherheit_-_Netzwerksicherheit#Sniffing|Sniffing]]- und [[Computer- und_Netzwerksicherheit_-_Netzwerksicherheit#Man-in-the-Middle_Angriff|Man-in-the-Middle-Attacken]] genutzt.&lt;br /&gt;
&lt;br /&gt;
=== Brute-Force Angriffe ===&lt;br /&gt;
&lt;br /&gt;
Bei Brute-Force Angriffen wird versucht eine Verschlüsselung zu knacken, indem eine &amp;#039;&amp;#039;&amp;#039;Vielzahl möglicher Schlüssel ausprobiert&amp;#039;&amp;#039;&amp;#039; wird. Dabei steigt mit der Länge der Schlüssel auch die Anzahl der dazu nötigen Versuche (siehe auch [[#Schl%C3%BCssel (Key)_und_Keyspace|Keyspace]]).&lt;br /&gt;
&lt;br /&gt;
Die Stärke einer Chiffre wird daher auch dadurch angegeben, wie lange es dauern würde, durch einen Brute-Force Angriff einen möglichen Schlüssel zu finden.&lt;br /&gt;
&lt;br /&gt;
Um die Möglichkeiten einzuschränken wird daher oft die Methode des &amp;#039;&amp;#039;&amp;#039;Wörterbuchangriffs&amp;#039;&amp;#039;&amp;#039; eingesetzt. Dabei werden keine beliebigen Schlüssel generiert, sondern stattdessen Einträge eines Wörterbuches bzw. einer Liste häufig eingesetzter Schlüssel (bzw. Passwörter) verwendet. Diese Listen werden meist auch nach der statistischen Häufigkeit der Verwendung der Begriffe gereiht, um die am häufigsten genutzten Passwörter auch zuerst zu versuchen. Die zugehörigen Statistiken werden dabei aus bereits im Internet veröffentlichten oder gestohlenen Passwortlisten generiert.&lt;br /&gt;
&lt;br /&gt;
Da der Aufwand eines Angriffes mit der Länge der verwendeten Schlüssel zunimmt, kann ihm besonders durch den Einsatz langer Schlüssel begegnet werden. Auch ist es wichtig Passwörter zu verwenden, welche nicht durch Wörterbücher und Passwortlisten generiert werden können.&lt;br /&gt;
&lt;br /&gt;
=== Kryptoanalyse ===&lt;br /&gt;
&lt;br /&gt;
Bei der Kryptoanalyse handelt es sich um ein Teilgebiet der Kryptographie. Sie hat zum Gegenstand aus möglichen bekannten Teilen eines kryptographischen Systems (Klartext, Geheimtext, Chiffre) nicht bekannte Teile herauszufinden.&lt;br /&gt;
&lt;br /&gt;
Da der Algorithmus einer Chiffre in der Regel bekannt ist, kann die Kryptoanalyse diesen als Basis verwenden. Um nun den Schlüssel oder den Klartext rekonstruieren zu können, stehen dem Analytiker folgende Analysemethoden zur Verfügung:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ciphertext-Only&amp;#039;&amp;#039;&amp;#039; (der Analyse steht nur der Geheimtext zur Verfügung),&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Known-Plaintext&amp;#039;&amp;#039;&amp;#039; (der Analyse steht der Geheimtext und der Klartext zur Verfügung),&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Chosen-Plaintext&amp;#039;&amp;#039;&amp;#039; (der Analyse steht der Geheimtext zur Verfügung und der Klartext kann für die Analyse frei gewählt werden) und&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Chosen-Ciphertext&amp;#039;&amp;#039;&amp;#039; (der Analyse steht der Klartext zur Verfügung und der Geheimtext kann für die Analyse frei gewählt werden).&lt;br /&gt;
&lt;br /&gt;
=== Angriffe gegen Hashwerte ===&lt;br /&gt;
&lt;br /&gt;
Angriffe gegen Hashwerte haben das Ziel Kollisionen zu finden, die zu einem gesuchten Hashwert führen. Werden beispielsweise Passwörter als Hash gespeichert und kommt ein Angreifender in den Besitz dieser Daten, kann er die Passwörter nicht einfach aus den Werten berechnen, da Hashwerte nicht reversibel sind.&lt;br /&gt;
&lt;br /&gt;
Es ist jedoch möglich (ähnlich wie einem [[#Brute-Force Angriffe|Brute-Force Angriff]]) aus einer Liste von Passwörtern mögliche Hashwerte zu berechnen und diese dann mit den Hashwerten zu vergleichen.&lt;br /&gt;
&lt;br /&gt;
Da diese Listen sehr groß (einige Terrabyte und mehr) werden können und damit auch nur sehr schwer zu durchsuchen sind, wurde die Methode der &amp;#039;&amp;#039;&amp;#039;Rainbow-Tables&amp;#039;&amp;#039;&amp;#039; entwickelt. Dabei handelt es sich um eine näherungsweise Suche, die mögliche Teilstücke des Hashwerts berechnet. Die Suche erfolgt damit in mehreren Schritten verknüpften Tabellen, ist jedoch wesentlich schneller als die Suche in einer enorm großen Liste. Der Name Rainbow-Tables kommt dabei von einer der ersten grafischen Darstellungen der zugehörigen Methode. Dabei wurden die einzelnen Schritte (Tabellen) in unterschiedlichen Farben dargestellt.&lt;br /&gt;
&lt;br /&gt;
Diesem Angriff kann entgegengewirkt werden, indem die &amp;#039;&amp;#039;&amp;#039;Passwortlänge erhöht&amp;#039;&amp;#039;&amp;#039; wird und indem der Hashwert bei der Berechnung zusätzlich „gesalzen“ wird. Durch die Erhöhung der Länge wird die nötige Menge der vorausberechnenden Werte entsprechend höher, was einen Angriff auf lange Passwörter entsprechend erschwert. Beim &amp;#039;&amp;#039;&amp;#039;Salzen&amp;#039;&amp;#039;&amp;#039; wird dem Passwort vor der Hashwertberechnung ein zusätzlicher Wert hinzugefügt. Dieser Wert wird als „Salt“ bezeichnet. Kann dieser Ausgangswert nun mittels Rainbow-Tables ermittelt werden, handelt es sich um den gesalzenen Wert und nicht um das tatsächliche Passwort. Die Angreifenden müssten daher einerseits den Salt kennen und dann sehr aufwändig eine eigene Rainbow-Table generieren, die ebenfalls diesen Salt anhält.&lt;br /&gt;
&lt;br /&gt;
== Wiederholungsaufgaben/Übungen ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1 Erklären Sie den Cäsar-Algorithmus anhand der Verschlüsselung des Wortes &amp;#039;&amp;#039;&amp;#039;&amp;amp;quot;&amp;#039;&amp;#039;&amp;#039;WIBA&amp;#039;&amp;#039;&amp;#039;&amp;amp;quot;&amp;#039;&amp;#039;&amp;#039; durch Cäsar 5.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2 Erklären Sie die Begriffe Klartext, Geheimtext, und Chiffre. Stellen Sie Ihre Zusammenhänge bei der Verschlüsselung und Entschlüsselung grafisch dar.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3 Erklären Sie den Begriff “Security by Obscurity“? Welches Prinzip spricht dagegen?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;4 Wodurch unterscheiden sich symmetrische und asymmetrische Kryptographie-Verfahren?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;5 Wie läuft der Diffie-Hellmann Schlüsseltausch ab. Erklären Sie ihn anhand eines einfachen Beispiels mit Farbkübeln ODER mathematisch.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;6 Was ist Hashing und wozu wird es eingesetzt?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;7 Was ist ein Brute-Force Angriff?&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Computer-_und_Netzwerksicherheit_-_Kryptograhpie&amp;diff=6244</id>
		<title>Computer- und Netzwerksicherheit - Kryptograhpie</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Computer-_und_Netzwerksicherheit_-_Kryptograhpie&amp;diff=6244"/>
		<updated>2024-03-19T13:36:10Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Kryptographie =&lt;br /&gt;
&lt;br /&gt;
Bei der Kryptographie handelt es sich um Methoden, Daten in eine Form zu bringen, in der Sie nur von denen gelesen werden können, die dazu berechtigt sind. Für alle anderen sollen die Daten während ihrer Übermittlung und Speicherung unlesbar sein.&lt;br /&gt;
&lt;br /&gt;
Die Kryptographie hat ihren bekannten Ursprung in den Jahren um 2000 v. Chr. Die Ägypter nutzten Hieroglyphen um Grabkammern zu dekorieren und die Lebensgeschichte des Verstorbenen zu erzählen. Das Augenmerk lag dabei jedoch nicht in der Unkenntlichmachung der Informationen sondern darin, sie durch die bildhafte Darstellungsform zeremoniell und majestätisch wirken zu lassen. [Ha13, 760]&lt;br /&gt;
&lt;br /&gt;
Eine der ersten Methoden mit der Absicht einen Text unkenntlich zu machen, war die hebräische &amp;#039;&amp;#039;&amp;#039;Atbash&amp;#039;&amp;#039;&amp;#039; Methode. Dabei wurde als Schlüssel jedem Buchstaben im Alphabet ein anderer Buchstabe zugewiesen. Ein Beispiel für einen Schlüssel wären demnach die folgenden beiden Zeilen [Ha13, 760]:&lt;br /&gt;
&lt;br /&gt;
ABCDEFGHIJKLMNOPQRSTUVWXYZ&lt;br /&gt;
&lt;br /&gt;
ZYXWVUTSRQPONMLKJIHGFEDCBA&lt;br /&gt;
&lt;br /&gt;
Damit könnte nun beispielsweise der Text „KRYPTO“ zum Text „PIBKGL“ verschlüsselt werden, indem der Buchstabe des ursprünglichen Textes in der ersten Zeile des Schlüssels nachgesehen und dann durch den jeweiligen Buchstaben der zweiten Zeile ersetzt wird. Zur Entschlüsselung wird dieselbe Technik umgekehrt angewendet, indem der Buchstabe des verschlüsselten Textes in der zweiten Zeile gesucht und dann durch den jeweiligen Eintrag der ersten Zeile ersetzt wird.&lt;br /&gt;
&lt;br /&gt;
Ein weiterer historisch erfolgreicher Algorithmus ist der &amp;#039;&amp;#039;&amp;#039;Cäsar-Algorithmus&amp;#039;&amp;#039;&amp;#039;. Er wurde in der Zeit der gallischen Kriege von Julius Cäsar entwickelt und eingesetzt um vertrauliche Nachrichten zu übermitteln, ohne dem Nachrichtenboten vertrauen zu müssen. Das Prinzip des Cäsar- Algorithmus ist simpel. Jeder Buchstabe der Nachricht wird um eine bestimmte Anzahl an Stellen im Alphabet nach hinten verschoben, wobei beim Erreichen des letzten Buchstaben Z wieder mit dem ersten Buchstaben A weitergezählt wird. Die Anzahl der Buchstaben, um die die Nachricht verschoben wird, wird dabei meist als Teil des Algorithmus Namens angegeben. So sind bei einer Cäsar 5 Verschlüsselung die Buchstaben der Nachricht um 5 Stellen verschoben und bei einer Cäsar 15 Verschlüsselung um 15 Stellen.&lt;br /&gt;
&lt;br /&gt;
Der Text „KRYPTO“ wird durch Anwendung einer Cäsar 5 Verschlüsselung zu „PWDUYT“. Dabei wird auch deutlich, dass beim Verschieben des Buchstaben Y zum Buchstaben D, nach Erreichen von Z wieder mit A begonnen wird.&lt;br /&gt;
&lt;br /&gt;
Der Cäsar-Algorithmus ist aus heutiger Sicht auch von Nicht-Kryptographen leicht zu knacken. Aus damaliger Sicht war es jedoch ein sehr sicheres Verfahren, da der Bildungsgrad der Bevölkerung nicht sehr hoch war und viele nicht schreiben und lesen konnten.&lt;br /&gt;
&lt;br /&gt;
Eine deutliche Verbesserung des Cäsar-Algorithmus würde im 16. Jahrhundert von Blaise de Vigenere entwickelt und deshalb auch als &amp;#039;&amp;#039;&amp;#039;Vigenere-Algorithmus&amp;#039;&amp;#039;&amp;#039; bezeichnet. Dabei wird nicht mehr jeder Buchstabe um eine bestimmte Anzahl von Zeichen verschoben, sondern ein Schlüssel definiert, der die jeweilige Verschiebung der einzelnen Buchstaben bestimmt. Im nachfolgenden Beispiel wird ein Text mit Hilfe des Schlüssels „KRYPTO“ verschlüsselt.&lt;br /&gt;
&lt;br /&gt;
Klartext: &amp;#039;&amp;#039;&amp;#039;DIETA&amp;#039;&amp;#039;&amp;#039;UBEISTA&amp;#039;&amp;#039;&amp;#039;UFDEMD&amp;#039;&amp;#039;&amp;#039;ACH&lt;br /&gt;
&lt;br /&gt;
Schlüssel: &amp;#039;&amp;#039;&amp;#039;KRYPTO&amp;#039;&amp;#039;&amp;#039;KRYPTO&amp;#039;&amp;#039;&amp;#039;KRYPTO&amp;#039;&amp;#039;&amp;#039;KRY&lt;br /&gt;
&lt;br /&gt;
Verschlüsselt: &amp;#039;&amp;#039;&amp;#039;NZCIT&amp;#039;&amp;#039;&amp;#039;ILVGHMO&amp;#039;&amp;#039;&amp;#039;EWBTFR&amp;#039;&amp;#039;&amp;#039;KTF&lt;br /&gt;
&lt;br /&gt;
Der Schlüssel wird für die gesamte Länge der Nachricht immer wieder wiederholt. Im Beispiel befindet sich der Buchstabe D bei seinem ersten vorkommen im Text unter dem Buchstaben K des Schlüssels und wird daher um 10 Zeichen verschoben und somit zu einem N. Bei seinem zweiten Vorkommen befindet sich das D der Nachricht jedoch unter dem Y des Schlüssels und wird daher zu einem B.&lt;br /&gt;
&lt;br /&gt;
Um den Abstand zwischen dem Zeichen der Nachricht und dem Zeichen des Schlüssels schneller manuell ermitteln zu können wird oft eine Tabelle eingesetzt, in der alle möglichen Abstandskombinationen aufgelistet sind. Diese wird als Vigenere-Tabelle bezeichnet und ist in Abbildung &amp;quot;Vigenere-Tabelle&amp;quot; zu sehen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 7.png|300px|none|thumb|Vigenere-Tabelle]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref413834735&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In dieser Lektion werden nun weiter die Grundbegriffe der Kryptographie, ihre wesentlichen Methoden und mögliche Angriffsvektoren genauer behandelt.&lt;br /&gt;
&lt;br /&gt;
== Wesentliche Begriffe der Kryptographie ==&lt;br /&gt;
&lt;br /&gt;
In der Kryptographie gibt es einige wichtige Grundbegriffe. Sie dienen der Beschreibung der Methoden und den unterschiedlichen Stadien von Ver- und Entschlüsselung. Diese Begriffe sind nun nachfolgend beschrieben.&lt;br /&gt;
&lt;br /&gt;
===  Klartext (Plaintext) ===&lt;br /&gt;
&lt;br /&gt;
Beim Klartext handelt es sich um die unverschlüsselte Nachricht, die übertragen werden soll. Solange sich die Nachricht in diesem Zustand befindet kann sie von jedem gelesen werden, der Zugriff auf sie hat.&lt;br /&gt;
&lt;br /&gt;
=== Geheimtext (Ciphertext) ===&lt;br /&gt;
&lt;br /&gt;
Dabei handelt es sich um eine verschlüsselte Klartext Nachricht. Sie ist in diesem Zustand nicht lesbar. Jeder, der in den Besitz des Geheimtextes kommt muss den zugehörigen Algorithmus und Schlüssel kennen um die Nachricht wieder in den Klartext umwandeln zu können.&lt;br /&gt;
&lt;br /&gt;
=== Chiffre (Cipher / Algorithmus) ===&lt;br /&gt;
&lt;br /&gt;
Die zur Ver- und Entschlüsselung eingesetzte Methode und der zugehörige Algorithmus werden als Chiffre (Cipher) bezeichnet. Sie verarbeitet einen Plaintext mit Hilfe des Keys zu Ciphertext und umgekehrt. Dabei handelt es sich um eine Ansammlung von Umwandlungen der Zeichen (oder Bits) des Textes.&lt;br /&gt;
&lt;br /&gt;
Es gibt &amp;#039;&amp;#039;&amp;#039;bekannte&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;unbekannte&amp;#039;&amp;#039;&amp;#039; Chiffren. Alle gängig eingesetzten Chiffren sind hinlänglich ihrer genauen Funktionsweise bekannt. Die Stärke der Chiffre ist von wesentlicher Bedeutung für die Sicherheit. Die Unbekannte ist dabei immer der Schlüssel. Ein wesentlicher Vorteil von bekannten Chiffren ist die große Anzahl an Nutzern und der Möglichkeit sie öffentlich zu analysieren und zu testen. Damit werden gefundene Schwachstellen meist schnell veröffentlicht und behoben. Dass die Sicherheit eines kryptographischen Verfahrens im Wesentlichen in der Geheimhaltung des Schüssels und nicht in der des Ciphers liegt, ist die wesentliche Aussage von [[#Security by_Obscurity_und_das_Kerckhoffs%E2%80%99sche_Prinzip|Kerckhoff‘s Prinzip]].&lt;br /&gt;
&lt;br /&gt;
Unbekannte Chiffren werden meist von Nachrichtendiensten eingesetzt. Ihr Vorteil liegt darin, dass ein möglicher Angreifer nicht nur den Schlüssel, sondern auch die Chiffre herausfinden muss, um die Nachricht lesen zu können. Der wesentliche Nachteil ist das Fehlen einer breiten Anwenderschicht und die damit verbundenen Reviews und Tests. Es muss daher sehr viel Aufwand in die Entwicklung und Testung der Chiffre gesteckt werden, um mögliche Sicherheitslücken identifizieren zu können.&lt;br /&gt;
&lt;br /&gt;
Bei den Chiffren wird zwischen &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;[[#Symmetrische Verfahren|&amp;lt;strong&amp;gt;symmetrischen&amp;lt;/strong&amp;gt; ]] &amp;#039;&amp;#039;&amp;#039;und&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;[[#Asymmetrische Verfahren|&amp;lt;strong&amp;gt;asymmetrischen&amp;lt;/strong&amp;gt; ]]Algorithmen unterschieden.&lt;br /&gt;
&lt;br /&gt;
=== Schlüssel (Key) und Keyspace ===&lt;br /&gt;
&lt;br /&gt;
Der &amp;#039;&amp;#039;&amp;#039;Schlüssel&amp;#039;&amp;#039;&amp;#039; wird von der Chiffre verwendet um Variabilität und Unregelmäßigkeiten in den Algorithmus zu bringen. Damit soll sichergestellt werden, dass dieselbe Chiffre, angewendet auf denselben Klartext, durch den Einsatz unterschiedlicher Schlüssel zu unterschiedlichen Geheimtexten führt. Somit ist der Schlüssel das wesentliche, geheim zuhaltende, Element.&lt;br /&gt;
&lt;br /&gt;
Welche möglichen Schlüssel für eine Chiffre angewendet werden können, wird durch den &amp;#039;&amp;#039;&amp;#039;Keyspace&amp;#039;&amp;#039;&amp;#039; definiert. Dieser enthält alle möglichen Schlüssel. Je größer der Keyspace ist, desto mehr unterschiedliche Schlüssel existieren. Je mehr mögliche Schlüssel auf eine Chiffre anwendbar sind, desto aufwändiger wird es für einen Angreifer eine Nachricht durch bloßes Ausprobieren unterschiedlicher Schlüssel zu entschlüsseln.&lt;br /&gt;
&lt;br /&gt;
Der Cäsar Algorithmus hat beispielsweise einen Keyspace von 26 möglichen Schlüsseln, da es genauso viele Buchstaben im lateinischen Alphabet gibt. Ein Angreifer würde durch einfaches durchprobieren daher maximal 26 Versuche benötigen, wobei die Verwendung des Schlüssels A sehr unwahrscheinlich ist, da der Text damit gleich bleiben würde.&lt;br /&gt;
&lt;br /&gt;
Aktuelle Cipher haben hingegen wesentlich größere Keyspaces. Beispielsweise hat [[#Aktuelle Kryptographie-Standards_mit_symmetrischen_Methoden|AES256]] eine Schlüssellänge von 256 Bit. Daraus ergibt sich ein Keyspace von 2&amp;lt;sup&amp;gt;256&amp;lt;/sup&amp;gt; möglichen Schlüsseln. Da ein Angreifer durch zufälliges durchprobieren einen Schlüssel in der Regel nach der Hälfte der möglichen Kombinationen errät, muss er hier ca. (2&amp;lt;sup&amp;gt;256&amp;lt;/sup&amp;gt;)/2 = 2&amp;lt;sup&amp;gt;255&amp;lt;/sup&amp;gt; Versuche durchführen.&lt;br /&gt;
&lt;br /&gt;
=== Verschlüsselung (Encryption) / Entschlüsselung (Decryption) ===&lt;br /&gt;
&lt;br /&gt;
Bei der &amp;#039;&amp;#039;&amp;#039;Verschlüsselung&amp;#039;&amp;#039;&amp;#039; handelt es sich um die Umwandlung von Klartext in Geheimtext mittels zugehöriger Chiffre und Schlüssel und bei der &amp;#039;&amp;#039;&amp;#039;Entschlüsselung&amp;#039;&amp;#039;&amp;#039; um die Umwandlung des Geheimtextes zurück in den Klartext.&lt;br /&gt;
&lt;br /&gt;
Der Ablauf eines Weges vom Klartext über den Geheimtext zurück zum Klartext ist in Abbildung &amp;quot;Zusammenhang der Kryptographie Begriffe&amp;quot; noch einmal grafisch dargestellt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 8.png|300px|none|thumb|Zusammenhang der Kryptographie Begriffe]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref413851263&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Security by Obscurity und das Kerckhoffs’sche Prinzip ==&lt;br /&gt;
&lt;br /&gt;
Ein kryptographisches System lässt sich durch die bloße Geheimhaltung der zugehörigen Chiffre nicht gewährleisten. Dieser Versuch wird auch als &amp;#039;&amp;#039;&amp;#039;Security by Obscurity&amp;#039;&amp;#039;&amp;#039; bezeichnet, da hier davon ausgegangen würde, dass alleine die Unwissenheit über die Methodik der Chiffre zu mehr Sicherheit führt. Dadurch ergeben sich jedoch einige wesentliche Probleme. Die geringe Anzahl an eingeweihten Anwendern entdeckt Fehler des Ciphers spät bis überhaupt nicht. Sobald die geheime Chiffre jedoch bekannt wird, ist jede durch ihre Geheimhaltung erreichte Sicherheit gebrochen. Wurde dann nicht auf eine ausreichende Geheimhaltung und Komplexität der Schlüssel geachtet hat wird das gesamte System unbrauchbar.&lt;br /&gt;
&lt;br /&gt;
Kerkhoff entwickelte 1883 die Grundprinzipien sicherer Verschlüsselung, welche bis heute Bestand haben. Einer dieser Grundsätze wird heute als das &amp;#039;&amp;#039;&amp;#039;Kerhoffs‘sche Prinzip&amp;#039;&amp;#039;&amp;#039; bezeichnet. Es besagt, dass nicht das System selbst, sondern der Schlüssel geheim sein muss, um eine maximale Sicherheit zu erreichen. Der Algorithmus soll immer öffentlich bekannt sein. Der Schlüssel muss dabei unbedingt geheim gehalten werden. Je mehr unterschiedliche Geheimnisse rund um ein kryptographisches System nötig sind, umso verwundbarer ist es gegenüber möglichen Angriffen, welche Teile der Geheimnisse herausfinden. [Ha13, 767]&lt;br /&gt;
&lt;br /&gt;
Auch wenn das Kerhoffs‘sche Prinzip besagt, dass die Sicherheit alleinig in der Geheimhaltung des Schlüssels liegt, so hat Security by Obscurity doch auch manchmal ihre Berechtigung. So kann beispielsweise durch die Kombination mehrerer bekannter Verfahren eine Unregelmäßigkeit hergestellt werden, welche möglichen Angreifern eine Analyse erschwert und damit eine erste Hürde darstellt, die überwunden werden muss.&lt;br /&gt;
&lt;br /&gt;
Eine bekannte Anwendung ist das sogenannte „Salzen“ von Hashwerten. Dabei wird dem Plaintext vor der Hashwertberechnung ein zusätzlicher Teil („Salt“) hinzugefügt. Gelingt es einem Angreifer nun anhand der Hashwerte mögliche Ausgangswerte zu konstruieren, kann er den Ursprungswert nur durch das zusätzliche Wissen des „Salts“ rekonstruieren. Die berechneten Werte sind somit unbrauchbar.&lt;br /&gt;
&lt;br /&gt;
== Symmetrische Verfahren ==&lt;br /&gt;
&lt;br /&gt;
Bei einem symmetrischen kryptographischen Verfahren (Chiffre) wird ein Klartext mit ein und &amp;#039;&amp;#039;&amp;#039;demselben Schlüssel&amp;#039;&amp;#039;&amp;#039; verschlüsselt und auch wieder entschlüsselt (siehe Abbildung &amp;quot;Symmetrische Verfahren mit einem Schlüssel&amp;quot;). Bei symmetrischen Verfahren werden &amp;#039;&amp;#039;&amp;#039;Substitutions-Methoden&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;Transpositions-Methoden&amp;#039;&amp;#039;&amp;#039; angewendet, um den Klartext unkenntlich zu machen. Diese können innerhalb der Chiffre natürlich auch beliebig kombiniert werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 9.png|300px|none|thumb|Symmetrische Verfahren mit einem Schlüssel]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref414275816&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Substitutions-Methoden ===&lt;br /&gt;
&lt;br /&gt;
Bei der Substitution handelt es sich um die Umwandlung eines Zeichens (oder Bits) durch ein anderes. Dies wären beispielsweise bei einem Cäsar 5 Algorithmus das Ersetzen des Zeichen K durch das Zeichen P zur Verschlüsselung und das Ersetzen des Zeichens P durch das Zeichen K zur Entschlüsselung. Der Schlüssel ist hierbei der Wert 5, welcher die Zuordnung des jeweiligen Zielzeichens ermöglicht.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel auf Bit-Ebene ist die einfache XOR Verknüpfung des Schlüssels mit dem Text, welche ebenfalls in beide Richtungen anwendbar ist:&lt;br /&gt;
&lt;br /&gt;
Klartext: 010010110101001001011001&lt;br /&gt;
&lt;br /&gt;
Schlüssel: 010000010100001001000011&lt;br /&gt;
&lt;br /&gt;
Geheimtext: 000010100001000000011010&lt;br /&gt;
&lt;br /&gt;
Die Berechnung des Geheimtextes und des Klartextes ist dabei in beide Richtungen über die Verknüpfung mit dem Schlüssel möglich.&lt;br /&gt;
&lt;br /&gt;
Ist der mittels XOR verknüpfte Schlüssel:&lt;br /&gt;
&lt;br /&gt;
* gleich lang wie die Nachricht,&lt;br /&gt;
* zufällig generiert und&lt;br /&gt;
* wird dieser nur ein einziges Mal verwendet,&lt;br /&gt;
wird dies als &amp;#039;&amp;#039;&amp;#039;One-Time-Pad&amp;#039;&amp;#039;&amp;#039; bezeichnet. Diese Methode ist, ohne den Schlüssel in Besitz zu bekommen, definitiv unknackbar und damit die sicherste kryptographische Methode. Die Herausforderung besteht hierbei darin den Schlüssel sicher zu übermitteln, da dieser gleich lang wie die Nachricht sein muss. Dies ist meist nur sehr umständlich machbar und mit einem ähnlichen Aufwand verbunden, wie die Übermittlung der Nachricht selbst. One-Time-Pads werden daher eher zur Übermittlung kleinerer, hoch sensibler, Datenmengen eingesetzt. Sie könnten jedoch an Bedeutung gewinnen, da eine sichere Übermittlung von größeren Schlüsseln mittels Quantentechnologien immer praxistauglicher wird.&lt;br /&gt;
&lt;br /&gt;
=== Transpositions-Methode ===&lt;br /&gt;
&lt;br /&gt;
Bei der Transposition werden einzelne Teile des Textes mit anderen Teilen vertauscht. Der Schlüssel gibt dabei an, welcher Teil mit welchem vertauscht werden soll.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für eine einfache Transpositions-Methode ist in Abbildung &amp;quot;Transpositions-Cipher&amp;quot; dargestellt. Dabei wird der Plaintext zuerst in Gruppen zerlegt. Diese Gruppen werden nun gemäß dem Schlüsselwert intern neu angeordnet und ergeben dann in Summe wiederum den Ausgabetext. Auch diese Methode ist in beide Richtungen – sowohl zur Ver-, als auch zur Entschlüsselung – anwendbar.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 10.png|300px|none|thumb|Transpositions-Cipher]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref414273373&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Aktuelle Kryptographie-Standards mit symmetrischen Methoden ===&lt;br /&gt;
&lt;br /&gt;
In der nachfolgenden Tabelle &amp;quot;Gängige Standards mit symmetrischen Algorithmen&amp;quot; sind die aktuell gängigsten symmetrischen Chiffren und ihre Eckpunkte aufgelistet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref414288799&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Tabelle: Gängige Standards mit symmetrischen Algorithmen&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! width=&amp;quot;34%&amp;quot; | Standard Name&lt;br /&gt;
! width=&amp;quot;34%&amp;quot; | Algorithmus&lt;br /&gt;
! width=&amp;quot;31%&amp;quot; | Schlüssellängen&lt;br /&gt;
|- &lt;br /&gt;
| Data Encryption Standard (DES)&lt;br /&gt;
| Data Encryption Algorithm (DEA)&lt;br /&gt;
| 56 Bit Schlüssel&amp;lt;br&amp;gt;&lt;br /&gt;
(+8 Bit Parität = 64Bit)&lt;br /&gt;
|- &lt;br /&gt;
| Triple-DES (3DES)&lt;br /&gt;
| Triple Data Encryption Algorithm (TDEA)&lt;br /&gt;
| 112 Bit&lt;br /&gt;
|- &lt;br /&gt;
| Advanced Encryption Standard (AES)&lt;br /&gt;
| Rijndael&lt;br /&gt;
|&lt;br /&gt;
128 Bit&lt;br /&gt;
&lt;br /&gt;
192 Bit&lt;br /&gt;
&lt;br /&gt;
256 Bit&lt;br /&gt;
|- &lt;br /&gt;
| International Data Encryption Algorithm (IDEA)&lt;br /&gt;
| International Data Encryption Algorithm (IDEA)&lt;br /&gt;
| 128 Bit&lt;br /&gt;
|- &lt;br /&gt;
| Blowfish&lt;br /&gt;
| Blowfish&lt;br /&gt;
| Variable Länge zwischen 32 und 448 Bit&lt;br /&gt;
|- &lt;br /&gt;
| RC4&lt;br /&gt;
| RC4&lt;br /&gt;
| Variable Länge&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Asymmetrische Verfahren ==&lt;br /&gt;
&lt;br /&gt;
Bei asymmetrischen Verfahren werden zur Verschlüsselung und Entschlüsselung einer Nachricht &amp;#039;&amp;#039;&amp;#039;zwei unterschiedliche Schlüssel&amp;#039;&amp;#039;&amp;#039; verwendet. Die beiden Schlüssel gehören dabei immer zusammen und bilden ein &amp;#039;&amp;#039;&amp;#039;Schlüsselpaar&amp;#039;&amp;#039;&amp;#039; (siehe Abbildung &amp;quot;Asymmetrische Verfahren mit zwei unterschiedlichen Schlüsseln&amp;quot;). Es ist somit nicht möglich eine Nachricht mit demselben Schlüssel zu entschlüsseln, mit dem sie verschlüsselt wurde. Es kann dabei jeder der beiden Schlüssel zur Verschlüsselung einer Nachricht eingesetzt werden. Zur Entschlüsselung wird dabei immer der jeweils andere Schlüssel benötigt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 11.png|300px|none|thumb|Asymmetrische Verfahren mit zwei unterschiedlichen Schlüsseln]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref414276398&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies ist auch vergleichbar mit einem Vorhängeschloss und einem Schlüssel. Das Schloss kann eingesetzt werden um eine Kiste zu versperren. Ohne den zugehörigen Schlüssel kann das Schloss jedoch nicht mehr geöffnet werden. Im Fall der asymmetrischen Verschlüsselung ist jeder der beiden Schlüssel gleichzeitig das Schloss des jeweils anderen Schlüssels:&lt;br /&gt;
&lt;br /&gt;
* Key 1 = Schloss 2 (kann von Key 2 geöffnet werden)&lt;br /&gt;
* Key 2 = Schloss 1 (kann von Key 1 geöffnet werden)&lt;br /&gt;
Die beiden Schlüssel werden als &amp;#039;&amp;#039;&amp;#039;Public-Key&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;Private-Key&amp;#039;&amp;#039;&amp;#039; bezeichnet. Diese Bezeichnungen beruhen darauf, dass einer der beiden Schlüssel immer privat – also nur einer bestimmten Person bekannt – sein sollte. Der andere Schlüssel kann dann öffentlich an alle weitergegeben werden, die Nachrichten an den Besitzer des Private-Keys schicken wollen. Er ist somit public.&lt;br /&gt;
&lt;br /&gt;
Will nun jemand eine Nachricht an den Besitzer des Private-Keys übermitteln kann er nun den dazu den &amp;#039;&amp;#039;&amp;#039;Public-Key für die Verschlüsselung&amp;#039;&amp;#039;&amp;#039; verwenden. Da die Nachricht nur mit dem zugehörigen Private-Key entschlüsselt werden kann, kann sie auch nur von dessen Besitzer gelesen werden. Der Public-Key ist zwar öffentlich verfügbar, jedoch zur Entschlüsselung der Nachricht nicht verwendbar.&lt;br /&gt;
&lt;br /&gt;
Diese Methode kann nun auch umgekehrt verwendet werden um eine Nachricht durch den Besitzer des &amp;#039;&amp;#039;&amp;#039;Private-Keys zu&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;signieren&amp;#039;&amp;#039;&amp;#039;. Dabei wird meist ein [[#Hashing|Hashwert]] der Nachricht generiert, die signiert werden soll. Dieser Hashwert wird nun mit dem Private-Key verschlüsselt und an die Nachricht angehängt. Will nun ein Empfänger prüfen, ob die Nachricht tatsächlich vom Besitzer des Private-Keys stammt, muss er nur den Hashwert mit dem öffentlich verfügbaren Public-Key entschlüsseln und mit dem aktuellen Hashwert der empfangenen Nachricht vergleichen. Sind die beiden Hashwerte ident, ist somit sichergestellt, dass die Nachricht vom Besitzer des Private-Keys stammen muss, da nur er den Hashwert korrekt verschlüsseln konnte. Würde sie auf dem Weg zum Empfänger verändert worden sein, wären die Hashwerte unterschiedlich.&lt;br /&gt;
&lt;br /&gt;
Asymmetrische Methoden basieren auf komplexen mathematischen Berechnungen und sind vergleichsweise langsam. Sie werden daher meist nicht für die Verschlüsselung der Nachricht, sondern nur für die Verschlüsselung eines Schlüssels für die Anwendung einer symmetrischen Methode verwendet. Damit ist sichergestellt, dass der Schlüssel sicher übertragen wird und gleichzeitig eine schnellere Ver- und Entschlüsselung der übrigen Nachricht, mittels symmetrischer Methoden, erfolgen kann.&lt;br /&gt;
&lt;br /&gt;
Eine weit verbreitete asymmetrische Methode wurde 1977 von Ronald L. &amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039;ivest, Adi &amp;#039;&amp;#039;&amp;#039;S&amp;#039;&amp;#039;&amp;#039;hamir und Leonard &amp;#039;&amp;#039;&amp;#039;A&amp;#039;&amp;#039;&amp;#039;dleman entwickelt und trägt daher den Namen &amp;#039;&amp;#039;&amp;#039;RSA&amp;#039;&amp;#039;&amp;#039;. Sie ist eine Weiterentwicklung des Diffie-Hellmann [[#Schl%C3%BCsseltauschverfahren|Schlüsseltauschverfahrens]]. Genauso wie dieses basiert sie auf dem Einsatz von &amp;#039;&amp;#039;&amp;#039;[[#Schl%C3%BCsseltauschverfahren|Einwegfunktionen]]&amp;#039;&amp;#039;&amp;#039;. Das Schlüsselpaar wird bei RSA durch den Einsatz sehr großer Primzahlen generiert, wobei die Anwendung des ersten Schlüssels die Nachricht unkenntlich macht und die zusätzliche Anwendung des zweiten Schlüssels die Anwendung des ersten Schlüssels wieder aufhebt. Der zugehörige zweite Schlüssel der Einwegfunktion ist nur durch Primfaktorzerlegungen sehr großer Primzahlen berechenbar. Dies ist jedoch ein sehr rechen- und damit zeitaufwändiger Vorgang.&lt;br /&gt;
&lt;br /&gt;
Eine weiter asymmetrische Methode ist die der &amp;#039;&amp;#039;&amp;#039;E&amp;#039;&amp;#039;&amp;#039;lliptic &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;urve &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;ryptographie (&amp;#039;&amp;#039;&amp;#039;ECC&amp;#039;&amp;#039;&amp;#039;). Sie basiert auf der Berechnung von Punkten entlang einer elliptischen Kurve in einem zweidimensionalen Koordinatensystem. Dabei werden eine bestimmte Kurve und ein Startpunkt angegeben. Das Schlüsselpaar ergibt sich dann durch die Koordinaten eines Zielpunkts und der Anzahl der nötigen Schritte, die nötig sind, um vom Startpunkt aus zu ihm zu gelangen. Ähnlich der Berechnung der Multiplikation zweier Primzahlen ist und der Schwierigkeit einer Rückrechnung mittels Primfaktorzerlegung ist es einfach einen Punkt auf der Kurve zu berechnen, jedoch schwierig die Anzahl der nötigen Schritte zu ermitteln, die nötig sind um zu diesem Punkt zu gelangen. Ein Beispiel einer solchen Elliptic Curve ist in Abbildung &amp;quot;Elliptic Curve&amp;quot; dargestellt.&lt;br /&gt;
&lt;br /&gt;
Die ECC Methoden sind stärker als die herkömmlichen asymmetrischen Methoden. Sie können sehr gut als performante Hardwarekomponenten implementiert werden und eignen sich daher besonders für den Einsatz in mobilen Endgeräten mit geringer Rechenleistung.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 12.png|300px|none|thumb|Elliptic Curve]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref414286823&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Schlüsseltauschverfahren ==&lt;br /&gt;
&lt;br /&gt;
Eine wesentliche Herausforderung der verschlüsselten Datenübertragung ist der Schlüsseltausch. Es muss daher eine Methode gefunden werden den nötigen Schlüssel zur Entschlüsselung der Nachricht an den Empfänger zu übermitteln, ohne dass dieser abgefangen werden kann. Würde der Schlüssel einfach vor der Übermittlung einer Nachricht übertragen werden, dann könnte ein möglicher Angreifer sowohl den Schlüssel, als auch den verschlüsselte Nachricht abfangen und dann beides gemeinsam einsetzen und die Nachricht einfach entschlüsseln.&lt;br /&gt;
&lt;br /&gt;
Um dieses Problem zu lösen gibt es einige Methoden, die daher auch als Schlüsseltauschverfahren bezeichnet werden.&lt;br /&gt;
&lt;br /&gt;
Die erste veröffentlichte mögliche Schlüsseltausch-Methode wurde 1976 von Diffie und Hellmann entwickelt. Sie basiert auf dem Einsatz von mathematischen Einwegfunktionen. Eine &amp;#039;&amp;#039;&amp;#039;Einwegfunktion&amp;#039;&amp;#039;&amp;#039; ist eine Funktion, welche leicht berechnet werden kann, deren Rückrechnung jedoch sehr schwierig ist. Dies lässt sich mit dem Mischen zweier Farbkübel zu vergleichen: Es ist zwar leicht zwei Farben zu mischen, jedoch enorm aufwändig sie wieder in ihre ursprünglichen Farbtöne aufzuteilen (vgl. Abbildung &amp;quot;Einwegfunktion der Farbmischung&amp;quot;) und manuell nur durch ausprobieren möglich.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 13.png|300px|none|thumb|Einwegfunktion der Farbmischung]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref413924943&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dies macht sich der Diffie-Hellmann Schlüsseltausch nun zu Nutze, indem er mathematische Einwegfunktionen verwendet um einen gemeinsamen und geheimen Schlüssel über eine unsichere Leitung auszutauschen. Die Vorgehensweise ist nachfolgend durch ein Beispiel mit Farbkübeln beschrieben und dann anschließend mathematisch erklärt.&lt;br /&gt;
&lt;br /&gt;
Der Ablauf ist dabei folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
# Beide Teilnehmer vereinbaren eine &amp;#039;&amp;#039;&amp;#039;gemeinsame (nicht geheime) Farbe.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Jeder Teilnehmer generiert eine eigene &amp;#039;&amp;#039;&amp;#039;geheime Farbe&amp;#039;&amp;#039;&amp;#039;, nur er selbst kennt.&lt;br /&gt;
# Nun &amp;#039;&amp;#039;&amp;#039;mischen sie jeweils die geheime Farbe zur gemeinsamen Farbe&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Danach &amp;#039;&amp;#039;&amp;#039;übermitteln&amp;#039;&amp;#039;&amp;#039; sie sich gegenseitig die &amp;#039;&amp;#039;&amp;#039;Mischungen&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Jeder Teilnehmer mischt seine &amp;#039;&amp;#039;&amp;#039;eigene geheime Farbe zur empfangenen Mischung&amp;#039;&amp;#039;&amp;#039; des anderen. Damit haben nun beide einen Farbkübel mit derselben Mischung aus: &amp;#039;&amp;#039;&amp;#039;gemeinsame Farbe + eigene geheime Farbe + geheime Farbe des anderen&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Die gemeinsame Mischung kann nun als Schlüssel für den geheimen Nachrichtenaustausch verwendet werden.&lt;br /&gt;
Die einzelnen Schritte des Schlüsseltauschs sind in Abbildung &amp;quot;Ablauf des Diffie-Hellmann Schlüsseltausches&amp;quot; noch einmal bildlich dargestellt. In der rechten Spalte ist ersichtlich welche Informationen ein möglicher Angreifer mithören kann. Er gelangt zwar an die gemeinsame Farbe und an die beiden Mischungen. Es ist ihm jedoch nicht möglich die geheimen Farben zu ermitteln. Damit fehlt ihm auch die Möglichkeit den gemeinsamen Schlüssel herauszufinden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 14.png|300px|none|thumb|Ablauf des Diffie-Hellmann Schlüsseltausches]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref414352792&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mathematisch betrachtet basiert der Diffie-Hellmann Schlüsseltausch auf dem &amp;#039;&amp;#039;diskreten Logarithmus-Problem&amp;#039;&amp;#039; und wird mit Hilfe folgender Formel abgebildet:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;n = g&amp;lt;sup&amp;gt;k&amp;lt;/sup&amp;gt; mod p&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Das &amp;#039;&amp;#039;diskrete Logarithmus-Problem&amp;#039;&amp;#039; beschreibt die Schwierigkeit für gegebene Werte der Variablen &amp;#039;&amp;#039;n&amp;#039;&amp;#039;, &amp;#039;&amp;#039;g&amp;#039;&amp;#039; und der Primzahl &amp;#039;&amp;#039;p&amp;#039;&amp;#039; den Wert der Variablen &amp;#039;&amp;#039;k&amp;#039;&amp;#039; zu finden. Bei kleinen Werten ist eine Berechnung von k noch machbar. Je größer sie jedoch werden, desto länger wird die dafür benötigte Zeit, da ein Rückrechnen nur durch Ausprobieren möglich ist. Für jedes zusätzliche Bit des Wertes müssen doppelt so viele Versuche angewendet werden.&lt;br /&gt;
&lt;br /&gt;
Beim Schlüsseltausch sind &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;g&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; nun die gemeinsamen Werte (gemeinsame Farbe), welche öffentlich übermittelt werden und &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; das jeweilige Mischergebnis. &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;k&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; ist dabei der jeweils geheime Wert (eigene geheime Farbe), welcher niemals übermittelt wird.&lt;br /&gt;
&lt;br /&gt;
Um zur gemeinsamen Farbmischung zu kommen macht sich der Schlüsseltausch nun zu Nutze, dass (x &amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt;) &amp;lt;sup&amp;gt;b&amp;lt;/sup&amp;gt; gleich (x &amp;lt;sup&amp;gt;b&amp;lt;/sup&amp;gt;)&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt; &amp;amp;nbsp;und damit x &amp;lt;sup&amp;gt;a b&amp;lt;/sup&amp;gt; ist. Sind a und b nun die beiden geheimen Zahlen können sie zum jeweils anderen Ergebnis hinzugefügt werden, ohne den jeweiligen Exponenten der anderen Seite zu kennen. Übermittelt wird hierbei immer nur das Ergebnis.&lt;br /&gt;
&lt;br /&gt;
Angewendet auf die oben genannte Formel des &amp;#039;&amp;#039;diskreten&amp;#039;&amp;#039; &amp;#039;&amp;#039;Logarithmus-Problems&amp;#039;&amp;#039; ergibt sich nun folgender Ablauf des Schlüsseltauschs:&lt;br /&gt;
&lt;br /&gt;
# Die gemeinsamen Werte für &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;g&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;p&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; werden übermittelt&lt;br /&gt;
# Beide Teilnehmer generieren eine geheime Zahl (Teilnehmer A: &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;a&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;; Teilnehmer B: &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;b&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
# Sie berechnen nun jeweils aus &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;q, p&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; und ihrer eigenen geheimen Zahl (&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;a&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; bzw. &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;b&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;) den Wert zur Übermittlung:&amp;lt;br&amp;gt;&lt;br /&gt;
Teilnehmer A: &amp;#039;&amp;#039;A = g&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt; mod p&amp;#039;&amp;#039;&amp;lt;br&amp;gt;&lt;br /&gt;
Teilnehmer B: &amp;#039;&amp;#039;B = g&amp;lt;sup&amp;gt;b&amp;lt;/sup&amp;gt; mod p&amp;#039;&amp;#039;&lt;br /&gt;
# Teilnehmer A übermittelt nun den Wert &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;A&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; an Teilnehmer B und Teilnehmer B den Wert &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;B&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; an Teilnehmer A.&lt;br /&gt;
# Nun können beide Teilnehmer mit ihrer eigenen geheimen Zahl den gemeinsamen Schlüssel &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;K&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; berechnen:&amp;lt;br&amp;gt;&lt;br /&gt;
Teilnehmer A: &amp;#039;&amp;#039;K = B&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt; mod p&amp;lt;br&amp;gt;&amp;#039;&amp;#039;Teilnehmer B: &amp;#039;&amp;#039;K = A&amp;lt;sup&amp;gt;b&amp;lt;/sup&amp;gt; mod p&amp;#039;&amp;#039;&lt;br /&gt;
# Beide Teilnehmer können nun K zur Verschlüsselung ihrer geheimen Nachrichten verwenden.&lt;br /&gt;
Das &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;B&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt; mod p&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; gleich &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;A&amp;lt;sup&amp;gt;b&amp;lt;/sup&amp;gt; mod p&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; ist, kann mittels gegenseitigem Einsetzen bewiesen werden:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;K = B&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt; mod p = (g&amp;lt;sup&amp;gt;b&amp;lt;/sup&amp;gt; mod p)&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt; mod p = g&amp;lt;sup&amp;gt;b a&amp;lt;/sup&amp;gt; mod p&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;K = A&amp;lt;sup&amp;gt;b&amp;lt;/sup&amp;gt; mod p = (g&amp;lt;sup&amp;gt;a&amp;lt;/sup&amp;gt; mod p)&amp;lt;sup&amp;gt;b&amp;lt;/sup&amp;gt; mod p = g&amp;lt;sup&amp;gt;a b&amp;lt;/sup&amp;gt; mod p&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;K = g&amp;lt;sup&amp;gt;b a&amp;lt;/sup&amp;gt; mod p = g&amp;lt;sup&amp;gt;a b&amp;lt;/sup&amp;gt; mod p&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Da ein möglicher Angreifer jedoch nur in Besitz der Werte g, p, A und B kommt, kann er den Schlüssel K nur mit enorm hohem Aufwand ermitteln.&lt;br /&gt;
&lt;br /&gt;
Auf dem Grundprinzip von Diffie-Hellmann wurde später mit [[#Asymmetrische Verfahren|RSA]] die asymmetrischen Verschlüsselungsmethoden entwickelt. Die Diffie-Hellmann Methode wurde inzwischen auch um die verstärkte Sicherheit von Elliptic Curves erweitert und findet ihre diesbezügliche Verbreitung unter dem Namen Elliptic Curve Diffie-Helman (ECDH).&lt;br /&gt;
&lt;br /&gt;
== Hashing ==&lt;br /&gt;
&lt;br /&gt;
Beim Hashing handelt es sich um die Anwendung einer &amp;#039;&amp;#039;&amp;#039;nicht reversiblen Funktion&amp;#039;&amp;#039;&amp;#039;, auf einen bestimmten Wert. Das Ergebnis einer Hash-Funktion ist somit nicht auf den Ausgangswert umkehrbar. Dabei wird meist ein Wert variabler Länge zu einem Wert fixer Länge umgewandelt, der dem Ursprungswert nicht mehr ähnelt.&lt;br /&gt;
&lt;br /&gt;
Ein guter Hash-Algorithmus hat möglichst wenige &amp;#039;&amp;#039;&amp;#039;Kollisionen&amp;#039;&amp;#039;&amp;#039;. Das bedeutet, dass die Wahrscheinlichkeit bei unterschiedlichen Eingangswerten denselben Ausgangswert zu bekommen sehr gering ist.&lt;br /&gt;
&lt;br /&gt;
Das nachfolgende Beispiel in Tabelle &amp;quot;Beispiel Hashfunktion HashMe()&amp;quot; zeigt mögliche Hashwerte einer fiktiven Hashfunktion HashMe(). Die letzten beiden Zeilen sind ein Beispiel einer Kollision.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref414362664&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Tabelle: Beispiel Hashfunktion HashMe()&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! width=&amp;quot;49%&amp;quot; | Eingangswert&lt;br /&gt;
! width=&amp;quot;28%&amp;quot; | Hashwert = HashMe(Eingangswert)&lt;br /&gt;
! width=&amp;quot;22%&amp;quot; | &amp;lt;br&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| Peter&lt;br /&gt;
| 0c74c6051287c95d&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
|&lt;br /&gt;
Guten Tag!&lt;br /&gt;
&lt;br /&gt;
Hiermit nehme ich Ihr Angebot mit der Nummer 12334 an.&lt;br /&gt;
&lt;br /&gt;
Mit freundlichen Grüßen,&lt;br /&gt;
&lt;br /&gt;
Miriam Muster&lt;br /&gt;
| 878b87429ff50296&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| Mich gibt es hoffentlich nur einmal!&lt;br /&gt;
| ae4692a6f28a03cd&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Kollision&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|- &lt;br /&gt;
| 45667533423233467885354&lt;br /&gt;
|&lt;br /&gt;
ae4692a6f28a03cd&lt;br /&gt;
|          &amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Da ein Hashwert einer bestimmten Nachricht immer gleich ist, eignet er sich sehr gut zur &amp;#039;&amp;#039;&amp;#039;Integritätsprüfung&amp;#039;&amp;#039;&amp;#039;. Sobald sich ein Teil der Nachricht ändert, ändert sich auch der Hashwert. Das Vorhandensein einer Änderung der Nachricht kann somit einfach durch den Vergleich des Original-Hashwertes und des aktuellen Hashwertes aufgezeigt werden.&lt;br /&gt;
&lt;br /&gt;
Dieses Prinzip wird auch bei &amp;#039;&amp;#039;&amp;#039;digitalen Signaturen&amp;#039;&amp;#039;&amp;#039; verwendet. Dabei wird ein Hashwert der zu signierenden Nachricht generiert und mit dem [[#Asymmetrische Verfahren|Private-Key]] des Absenders verschlüsselt. Dieser wird der Nachricht dann als Signatur beigefügt. Der Empfänger kann nun den Hashwert mit dem Public-Key entschlüsseln und mit dem aktuellen Hashwert der empfangenen Nachricht vergleichen. Sind die beiden Werte gleich ist sichergestellt, dass:&lt;br /&gt;
&lt;br /&gt;
* sich der Inhalt der Nachricht nicht verändert hat und&lt;br /&gt;
* der Besitzer des Private-Key ist auch der Absender der Nachricht ist, da nur er eine Verschlüsselung durchführen kann, welche mit dem zugehörigen Public-Key korrekt entschlüsselt wird.&lt;br /&gt;
Da mit Hash-Werten die Integrität von Nachrichten geprüft werden kann, werden diese auch oft als &amp;#039;&amp;#039;&amp;#039;Fingerprint&amp;#039;&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;&amp;#039;Message-Digest&amp;#039;&amp;#039;&amp;#039; bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Einige derzeit gängige Hash-Algorithmen sind in Tabelle &amp;quot;Gängige Hash-Algorithmen&amp;quot; aufgelistet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref414365977&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Tabelle: Gängige Hash-Algorithmen&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! width=&amp;quot;26%&amp;quot; | Standard Name&lt;br /&gt;
! width=&amp;quot;32%&amp;quot; | Länge des Hash-Wertes&lt;br /&gt;
! width=&amp;quot;40%&amp;quot; | Anmerkung&lt;br /&gt;
|- &lt;br /&gt;
| MD4&lt;br /&gt;
| 128 Bit&lt;br /&gt;
| Optimiert für schnelle Berechnung&lt;br /&gt;
|- &lt;br /&gt;
| MD5&lt;br /&gt;
| 128 Bit&lt;br /&gt;
| Komplexerer Algorithmus als MD4 und daher langsamere Berechnung&lt;br /&gt;
|- &lt;br /&gt;
| SHA&lt;br /&gt;
| 160 Bit&lt;br /&gt;
| Ähnlich wie MD4&lt;br /&gt;
|- &lt;br /&gt;
| HAVAL&lt;br /&gt;
| Variable Länge&lt;br /&gt;
| Ähnlich wie MD5&lt;br /&gt;
|- &lt;br /&gt;
| Tiger&lt;br /&gt;
| 192 Bit&lt;br /&gt;
|&lt;br /&gt;
Ähnlich wie MD4&lt;br /&gt;
&lt;br /&gt;
Optimiert für 64 Bit Systeme&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Angriffsvektoren der Kryptographie ==&lt;br /&gt;
&lt;br /&gt;
Die möglichen direkten Angriffsvektoren der Kryptographie teilen sich in die, nachfolgend beschriebenen, Kategorien:&lt;br /&gt;
&lt;br /&gt;
* Brute-Force Angriffe,&lt;br /&gt;
* Kryptoanalyse und&lt;br /&gt;
* Angriffe gegen Hashwerte.&lt;br /&gt;
Um die genannten Angriffe ausführen zu können, ist es meist erforderlich den zugehörigen Datenverkehr abzuhören und gegebenenfalls auch zu manipulieren. Dazu werden oft [[Computer- und_Netzwerksicherheit_-_Netzwerksicherheit#Sniffing|Sniffing]]- und [[Computer- und_Netzwerksicherheit_-_Netzwerksicherheit#Man-in-the-Middle_Angriff|Man-in-the-Middle-Attacken]] genutzt.&lt;br /&gt;
&lt;br /&gt;
=== Brute-Force Angriffe ===&lt;br /&gt;
&lt;br /&gt;
Bei Brute-Force Angriffen wird versucht eine Verschlüsselung zu knacken, indem eine &amp;#039;&amp;#039;&amp;#039;Vielzahl möglicher Schlüssel ausprobiert&amp;#039;&amp;#039;&amp;#039; wird. Dabei steigt mit der Länge der Schlüssel auch die Anzahl der dazu nötigen Versuche (siehe auch [[#Schl%C3%BCssel (Key)_und_Keyspace|Keyspace]]).&lt;br /&gt;
&lt;br /&gt;
Die Stärke einer Chiffre wird daher auch dadurch angegeben, wie lange es dauern würde, durch einen Brute-Force Angriff einen möglichen Schlüssel zu finden.&lt;br /&gt;
&lt;br /&gt;
Um die Möglichkeiten einzuschränken wird daher oft die Methode des &amp;#039;&amp;#039;&amp;#039;Wörterbuchangriffs&amp;#039;&amp;#039;&amp;#039; eingesetzt. Dabei werden keine beliebigen Schlüssel generiert, sondern stattdessen Einträge eines Wörterbuches bzw. einer Liste häufig eingesetzter Schlüssel (bzw. Passwörter) verwendet. Diese Listen werden meist auch nach der statistischen Häufigkeit der Verwendung der Begriffe gereiht, um die am häufigsten genutzten Passwörter auch zuerst zu versuchen. Die zugehörigen Statistiken werden dabei aus bereits im Internet veröffentlichten oder gestohlenen Passwortlisten generiert.&lt;br /&gt;
&lt;br /&gt;
Da der Aufwand eines Angriffes mit der Länge der verwendeten Schlüssel zunimmt, kann ihm besonders durch den Einsatz langer Schlüssel begegnet werden. Auch ist es wichtig Passwörter zu verwenden, welche nicht durch Wörterbücher und Passwortlisten generiert werden können.&lt;br /&gt;
&lt;br /&gt;
=== Kryptoanalyse ===&lt;br /&gt;
&lt;br /&gt;
Bei der Kryptoanalyse handelt es sich um ein Teilgebiet der Kryptographie. Sie hat zum Gegenstand aus möglichen bekannten Teilen eines kryptographischen Systems (Klartext, Geheimtext, Chiffre) nicht bekannte Teile herauszufinden.&lt;br /&gt;
&lt;br /&gt;
Da der Algorithmus einer Chiffre in der Regel bekannt ist, kann die Kryptoanalyse diesen als Basis verwenden. Um nun den Schlüssel oder den Klartext rekonstruieren zu können, stehen dem Analytiker folgende Analysemethoden zur Verfügung:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ciphertext-Only&amp;#039;&amp;#039;&amp;#039; (der Analyse steht nur der Geheimtext zur Verfügung),&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Known-Plaintext&amp;#039;&amp;#039;&amp;#039; (der Analyse steht der Geheimtext und der Klartext zur Verfügung),&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Chosen-Plaintext&amp;#039;&amp;#039;&amp;#039; (der Analyse steht der Geheimtext zur Verfügung und der Klartext kann für die Analyse frei gewählt werden) und&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Chosen-Ciphertext&amp;#039;&amp;#039;&amp;#039; (der Analyse steht der Klartext zur Verfügung und der Geheimtext kann für die Analyse frei gewählt werden).&lt;br /&gt;
&lt;br /&gt;
=== Angriffe gegen Hashwerte ===&lt;br /&gt;
&lt;br /&gt;
Angriffe gegen Hashwerte haben das Ziel Kollisionen zu finden, die zu einem gesuchten Hashwert führen. Werden beispielsweise Passwörter als Hash gespeichert und kommt ein Angreifender in den Besitz dieser Daten, kann er die Passwörter nicht einfach aus den Werten berechnen, da Hashwerte nicht reversibel sind.&lt;br /&gt;
&lt;br /&gt;
Es ist jedoch möglich (ähnlich wie einem [[#Brute-Force Angriffe|Brute-Force Angriff]]) aus einer Liste von Passwörtern mögliche Hashwerte zu berechnen und diese dann mit den Hashwerten zu vergleichen.&lt;br /&gt;
&lt;br /&gt;
Da diese Listen sehr groß (einige Terrabyte und mehr) werden können und damit auch nur sehr schwer zu durchsuchen sind, wurde die Methode der &amp;#039;&amp;#039;&amp;#039;Rainbow-Tables&amp;#039;&amp;#039;&amp;#039; entwickelt. Dabei handelt es sich um eine näherungsweise Suche, die mögliche Teilstücke des Hashwerts berechnet. Die Suche erfolgt damit in mehreren Schritten verknüpften Tabellen, ist jedoch wesentlich schneller als die Suche in einer enorm großen Liste. Der Name Rainbow-Tables kommt dabei von einer der ersten grafischen Darstellungen der zugehörigen Methode. Dabei wurden die einzelnen Schritte (Tabellen) in unterschiedlichen Farben dargestellt.&lt;br /&gt;
&lt;br /&gt;
Diesem Angriff kann entgegengewirkt werden, indem die &amp;#039;&amp;#039;&amp;#039;Passwortlänge erhöht&amp;#039;&amp;#039;&amp;#039; wird und indem der Hashwert bei der Berechnung zusätzlich „gesalzen“ wird. Durch die Erhöhung der Länge wird die nötige Menge der vorausberechnenden Werte entsprechend höher, was einen Angriff auf lange Passwörter entsprechend erschwert. Beim &amp;#039;&amp;#039;&amp;#039;Salzen&amp;#039;&amp;#039;&amp;#039; wird dem Passwort vor der Hashwertberechnung ein zusätzlicher Wert hinzugefügt. Dieser Wert wird als „Salt“ bezeichnet. Kann dieser Ausgangswert nun mittels Rainbow-Tables ermittelt werden, handelt es sich um den gesalzenen Wert und nicht um das tatsächliche Passwort. Die Angreifenden müssten daher einerseits den Salt kennen und dann sehr aufwändig eine eigene Rainbow-Table generieren, die ebenfalls diesen Salt anhält.&lt;br /&gt;
&lt;br /&gt;
== Wiederholungsaufgaben/Übungen ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1 Erklären Sie den Cäsar-Algorithmus anhand der Verschlüsselung des Wortes &amp;#039;&amp;#039;&amp;#039;&amp;amp;quot;&amp;#039;&amp;#039;&amp;#039;WIBA&amp;#039;&amp;#039;&amp;#039;&amp;amp;quot;&amp;#039;&amp;#039;&amp;#039; durch Cäsar 5.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2 Erklären Sie die Begriffe Klartext, Geheimtext, und Chiffre. Stellen Sie Ihre Zusammenhänge bei der Verschlüsselung und Entschlüsselung grafisch dar.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3 Erklären Sie den Begriff “Security by Obscurity“? Welches Prinzip spricht dagegen?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;4 Wodurch unterscheiden sich symmetrische und asymmetrische Kryptographie-Verfahren?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;5 Wie läuft der Diffie-Hellmann Schlüsseltausch ab. Erklären Sie ihn anhand eines einfachen Beispiels mit Farbkübeln ODER mathematisch.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;6 Was ist Hashing und wozu wird es eingesetzt?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;7 Was ist ein Brute-Force Angriff?&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=AI_assisted_Engineering&amp;diff=6226</id>
		<title>AI assisted Engineering</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=AI_assisted_Engineering&amp;diff=6226"/>
		<updated>2024-02-12T13:33:28Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Grundlagen von AI in Engineering und Softwareentwicklung|AI assisted Engineering - Grundlagen von AI in Engineering und Softwareentwicklung]]&lt;br /&gt;
&lt;br /&gt;
[[Prompt-Entwicklung und -Anwendung|AI assisted Engineering - Prompt-Entwicklung und -Anwendung]]&lt;br /&gt;
&lt;br /&gt;
[[AI-gestützte Datenanalyse und Modellierung|AI assisted Engineering - AI-gestützte Datenanalyse und Modellierung]]&lt;br /&gt;
&lt;br /&gt;
[[Softwareentwicklung mit AI|AI assisted Engineering - Softwareentwicklung mit AI]]&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=AI_assisted_Engineering&amp;diff=6225</id>
		<title>AI assisted Engineering</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=AI_assisted_Engineering&amp;diff=6225"/>
		<updated>2024-02-12T13:32:55Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: Die Seite wurde neu angelegt: „   Grundlagen von AI in Engineering und Softwareentwicklung  Prompt-Entwicklung und -Anwendung  AI-gestützte Datenanalyse und Modellierung  Softwareentwicklung mit AI“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[AI assisted Engineering - Grundlagen von AI in Engineering und Softwareentwicklung|Grundlagen von AI in Engineering und Softwareentwicklung]]&lt;br /&gt;
&lt;br /&gt;
[[AI assisted Engineering - Prompt-Entwicklung und -Anwendung|Prompt-Entwicklung und -Anwendung]]&lt;br /&gt;
&lt;br /&gt;
[[AI assisted Engineering - AI-gestützte Datenanalyse und Modellierung|AI-gestützte Datenanalyse und Modellierung]]&lt;br /&gt;
&lt;br /&gt;
[[AI assisted Engineering - Softwareentwicklung mit AI|Softwareentwicklung mit AI]]&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Computer-_und_Netzwerksicherheit&amp;diff=6224</id>
		<title>Computer- und Netzwerksicherheit</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Computer-_und_Netzwerksicherheit&amp;diff=6224"/>
		<updated>2024-02-09T10:48:41Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Computer- und Netzwerksicherheit - Gesamt|Computer- und Netzwerksicherheit - Gesamt (Achtung - immer die aktuellste Version!)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Version für das Sommersemester 2024&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[Special:PermanentLink/5584|Computer- und Netzwerksicherheit - Grundlagen|Computer- und Netzwerksicherheit - Grundlagen]]&lt;br /&gt;
&lt;br /&gt;
[[Special:PermanentLink/2157|Computer- und Netzwerksicherheit - Bewusstseinsbildung|Computer- und Netzwerksicherheit - Bewusstseinsbildung]]&lt;br /&gt;
&lt;br /&gt;
[[Special:PermanentLink/2278|Computer- und Netzwerksicherheit - Kryptograhpie|Computer- und Netzwerksicherheit - Kryptograhpie]]&lt;br /&gt;
&lt;br /&gt;
[[Special:PermanentLink/2711|Computer- und Netzwerksicherheit - Zugriffssteuerung|Computer- und Netzwerksicherheit - Zugriffssteuerung]]&lt;br /&gt;
&lt;br /&gt;
[[Special:PermanentLink/2280|Computer- und Netzwerksicherheit - Netzwerksicherheit|Computer- und Netzwerksicherheit - Netzwerksicherheit]]&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Grundlagen_der_Modellierung&amp;diff=6097</id>
		<title>Grundlagen der Modellierung</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Grundlagen_der_Modellierung&amp;diff=6097"/>
		<updated>2023-11-02T14:25:53Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Grundlagen der Modellierung - Gesamt |Grundlagen der Modellierung - Gesamt (Achtung - immer die aktuellste Version!)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Version für das Wintersemester 2023/2024&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[Grundlagen der Modellierung - Einleitung|Grundlagen der Modellierung - Einleitung]]&lt;br /&gt;
&lt;br /&gt;
[[Grundlagen der Modellierung - Datenmodellierung|Grundlagen der Modellierung - Datenmodellierung]]&lt;br /&gt;
&lt;br /&gt;
[[Grundlagen der Modellierung - Prozess- und Ablauf- und Geschäftsprozessmodellierung|Grundlagen der Modellierung - Prozess- und Ablauf- und Geschäftsprozessmodellierung]]&lt;br /&gt;
&lt;br /&gt;
[[Grundlagen der Modellierung - Prozess- und Ablaufmodellierung|Grundlagen der Modellierung - Prozess- und Ablaufmodellierung]]&lt;br /&gt;
&lt;br /&gt;
[[Grundlagen der Modellierung - Geschätfsprozessmodellierung|Grundlagen der Modellierung - Geschätfsprozessmodellierung]]&lt;br /&gt;
&lt;br /&gt;
[[Grundlagen der Modellierung - Objektorientierte Modelle|Grundlagen der Modellierung - Objektorientierte Modelle]]&lt;br /&gt;
&lt;br /&gt;
[[Grundlagen der Modellierung - Quellen|Grundlagen der Modellierung - Quellen]]&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Grundlagen_der_Modellierung_-_Gesamt&amp;diff=6096</id>
		<title>Grundlagen der Modellierung - Gesamt</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Grundlagen_der_Modellierung_-_Gesamt&amp;diff=6096"/>
		<updated>2023-11-02T14:25:14Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:UrheberrechtDefault}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;hr&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{:Benutzer:VÖLKL_Peter}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;hr&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{:Grundlagen der Modellierung - Einleitung|Grundlagen der Modellierung - Einleitung}}&lt;br /&gt;
&lt;br /&gt;
{{:Grundlagen der Modellierung - Datenmodellierung|Grundlagen der Modellierung - Datenmodellierung}}&lt;br /&gt;
&lt;br /&gt;
{{:Grundlagen der Modellierung - Prozess- und Ablauf- und Geschäftsprozessmodellierung|Grundlagen der Modellierung - Prozess- und Ablauf- und Geschäftsprozessmodellierung}}&lt;br /&gt;
&lt;br /&gt;
{{:Grundlagen der Modellierung - Objektorientierte Modelle|Grundlagen der Modellierung - Objektorientierte Modelle}}&lt;br /&gt;
&lt;br /&gt;
{{:Grundlagen der Modellierung - Quellen|Grundlagen der Modellierung - Quellen}}&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Grundlagen_der_Modellierung&amp;diff=6095</id>
		<title>Grundlagen der Modellierung</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Grundlagen_der_Modellierung&amp;diff=6095"/>
		<updated>2023-11-02T14:23:31Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Grundlagen der Modellierung - Gesamt |Grundlagen der Modellierung - Gesamt (Achtung - immer die aktuellste Version!)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Version für das Wintersemester 2023/2024&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[Grundlagen der Modellierung - Einleitung|Grundlagen der Modellierung - Einleitung]]&lt;br /&gt;
&lt;br /&gt;
[[Grundlagen der Modellierung - Datenmodellierung|Grundlagen der Modellierung - Datenmodellierung]]&lt;br /&gt;
&lt;br /&gt;
[[Grundlagen der Modellierung - Prozess- und Ablauf- und Geschätfsprozessmodellierung|Grundlagen der Modellierung - Prozess- und Ablauf- und Geschätfsprozessmodellierung]]&lt;br /&gt;
&lt;br /&gt;
[[Grundlagen der Modellierung - Prozess- und Ablaufmodellierung|Grundlagen der Modellierung - Prozess- und Ablaufmodellierung]]&lt;br /&gt;
&lt;br /&gt;
[[Grundlagen der Modellierung - Geschätfsprozessmodellierung|Grundlagen der Modellierung - Geschätfsprozessmodellierung]]&lt;br /&gt;
&lt;br /&gt;
[[Grundlagen der Modellierung - Objektorientierte Modelle|Grundlagen der Modellierung - Objektorientierte Modelle]]&lt;br /&gt;
&lt;br /&gt;
[[Grundlagen der Modellierung - Quellen|Grundlagen der Modellierung - Quellen]]&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Computer-_und_Netzwerksicherheit_-_Grundlagen&amp;diff=5584</id>
		<title>Computer- und Netzwerksicherheit - Grundlagen</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Computer-_und_Netzwerksicherheit_-_Grundlagen&amp;diff=5584"/>
		<updated>2023-08-10T16:20:16Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Grundlagen der Informationssicherheit =&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Die Sicherheit der Informationstechnologie ist ein wesentlicher Bestandteil der Unternehmenssicherheit, da viele Prozesse einer intensiven IT-Unterstützung bedürfen und ohne sie nicht mehr, oder nur teilweise, funktionieren können. Es ist daher enorm wichtig, die möglichen Risiken zu kennen und diese, bezugnehmend auf die einzelnen Unternehmensprozesse, bewerten zu können. So umfangreich die Informationssysteme eines Unternehmens sind, so umfangreich sind auch die zu beachtenden Angriffsvektoren, sowie die Szenarien für Datenverlust, Nichtverfügbarkeit und Datendiebstahl. Die Computer- und Netzwerksicherheit ist ein wesentlicher Bestandteil der Informationssicherheit und greift in jede erdenkliche Materie der Informationstechnologie ein.&lt;br /&gt;
&lt;br /&gt;
Die Zwischenfälle im IT-Sicherheitsbereich nahmen in den letzten Jahren immer mehr zu. Einer Statistik der Internet-Sicherheitslage in Österreich von CERT.at und GovCERT.gv.at zufolge ist die Anzahl der IT-Sicherheitszwischenfälle von unter 10 pro Monat im Jahr 2009 auf konstant über 500 pro Monat ab Ende des Jahres 2012 gestiegen. Gegen Ende 2013 kann sogar von 1000 Zwischenfällen pro Monat ausgegangen werden, die Tendenz ist weiterhin steigend. [Ni13, 13]&lt;br /&gt;
&lt;br /&gt;
== Informations- und IT-Sicherheit ==&lt;br /&gt;
&lt;br /&gt;
Rund um den Bereich der IT-Sicherheit gibt es viele, oft falsch verstandene Begrifflichkeiten wie Datenschutz, Datensicherheit und Informationssicherheit [Ha12, 28]. Nachfolgend werden diese Begriffe nun kurz beschrieben, um einen Überblick über die Materie zu verschaffen.&lt;br /&gt;
&lt;br /&gt;
=== Informationssicherheit ===&lt;br /&gt;
&lt;br /&gt;
Bei der Informationssicherheit handelt es sich um die ganzheitliche Betrachtung der Sicherheit und den Schutz aller Art von Informationen. Dabei ist es nicht relevant, ob diese Informationen in elektronischer oder nicht elektronischer Form vorliegen.&lt;br /&gt;
&lt;br /&gt;
=== IT-Sicherheit ===&lt;br /&gt;
&lt;br /&gt;
Die IT-Sicherheit ist Teil der Informationssicherheit (siehe Abbildung &amp;quot;Schnittmenge Informations-Sicherheit und IT-Sicherheit&amp;quot;). Sie beschäftigt sich mit dem Schutz aller Art von elektronischer Information. Das beinhaltet alle EDV und Kommunikationssysteme, wie Computer, Internetverbindungen und Netzwerke, Telefonie und die für den Betrieb der Systeme zugrundeliegende Infrastruktur wie beispielsweise die Stromversorgung.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 1.png|300px|none|thumb|Schnittmenge Informations-Sicherheit und IT-Sicherheit ]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref375556757&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Datenschutz und Datensicherheit ===&lt;br /&gt;
&lt;br /&gt;
Der Datenschutz regelt den Schutz personenbezogener Daten, welche in elektronischer oder manueller - nicht elektronisch geführter - Form vorliegen. In Österreich ist der Datenschutz sowohl in einem Bundesgesetz (DSG), als auch in 9 Landesgesetzen geregelt.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Jedermann hat, insbesondere auch im Hinblick auf die Achtung seines Privat- und Familienlebens, Anspruch auf Geheimhaltung der ihn betreffenden personenbezogenen Daten, soweit ein schutzwürdiges Interesse daran besteht. Das Bestehen eines solchen Interesses ist ausgeschlossen, wenn Daten infolge ihrer allgemeinen Verfügbarkeit oder wegen ihrer mangelnden Rückführbarkeit auf den Betroffenen einem Geheimhaltungsanspruch nicht zugänglich sind.&amp;#039;&amp;#039; [Bg19, § 1. (1)]&lt;br /&gt;
&lt;br /&gt;
Die Einhaltung des Datenschutzes ist Teil der Informationssicherheit bzw. IT-Sicherheit und damit des IT-Sicherheitsmanagements. Die beiden Begrifflichkeiten werden jedoch oft vermischt oder verwechselt. So ist der Datenschutz selbst nur ein kleiner Teilbereich. IT-Sicherheit betrachtet wesentlich mehr als den Schutz personenbezogener Daten und bezieht sich auf alle Unternehmensprozesse und ihre IT-Unterstützung.&lt;br /&gt;
&lt;br /&gt;
== Säulen der Informationssicherheit - CIA Triade ==&lt;br /&gt;
&lt;br /&gt;
Die IT-Sicherheit und damit das IT-Sicherheitsmanagement basieren auf drei Säulen, welche den zu betrachtenden Rahmen aller durchzuführenden Analysen und den damit verbundenen Maßnahmen darstellen. Sie tragen somit bildlich das Dach der IT-Sicherheit und sorgen nur in ihrer gemeinsamen Betrachtung für die Stabilität und Sicherheit des gesamten IT-Sicherheits-Systems. Ihr Fundament ist das IT-Sicherheitsbewusstsein und die damit verbundene Bewusstseinsbildung ist die notwendige Maßnahme (siehe Abbildung &amp;quot;Aufbau der IT-Sicherheit&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Die drei Säulen sind:&lt;br /&gt;
&lt;br /&gt;
* Vertraulichkeit (Confidentiality),&lt;br /&gt;
* Integrität (Integrity) und&lt;br /&gt;
* Verfügbarkeit (Availability).&lt;br /&gt;
[[Datei:IT244 2.png|300px|none|thumb|Aufbau der IT-Sicherheit]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref375059634&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die drei Säulen der IT-Sicherheit werden oft auch als „CIA-Triade“  &amp;lt;ref&amp;gt;Der genaue Ursprung der „CIA-Triade“ ist nicht genau feststellbar. Die zugrundeliegenden Konzepte waren bereits vor Jahrtausenden im militärischen Kontext bekannt. Sie befinden sich beispielsweise in den Werken „Commentarii de bello Gallico“ [Ca58] des römischen Feldherren Gaius Julius Cäsar.&amp;lt;/ref&amp;gt;  oder „AIC-Principles“ bezeichnet, da die englischen Bezeichnungen mit den Buchstaben C, I und A beginnen.&lt;br /&gt;
&lt;br /&gt;
=== Vertraulichkeit (Confidentiality) ===&lt;br /&gt;
&lt;br /&gt;
Unter Vertraulichkeit wird die Einschränkung der Datenzugriffe auf einen bestimmten Anwenderkreis verstanden. Unberechtigte dürfen keinen Zugriff auf die IT-Systeme und Daten haben. Dies sind beispielsweise die Absicherung des gesamten Systems vor IT-Zugriffen unberechtigter Dritter und aber auch die Definition unterschiedlicher Berechtigungsstufen innerhalb der berechtigten Anwender. So sollte es beispielsweise einem Anwender erlaubt sein, die benötigten Programme zu starten, nicht jedoch neue Software zu installieren oder die gesamte Datenbank zu kopieren.&lt;br /&gt;
&lt;br /&gt;
Je nach System kann die Vertraulichkeit über Benutzer- und Programm-Berechtigungen und auch physische Zutrittskontrolle sichergestellt werden. Die hier gesetzten Maßnahmen sind jene Maßnahmen, welche am häufigsten mit IT-Sicherheit in Zusammenhang gebracht werden, jedoch ohne Betrachtung der anderen beiden Bereiche Integrität und Verfügbarkeit nicht vollständig sind.&lt;br /&gt;
&lt;br /&gt;
=== Integrität (Integrity) ===&lt;br /&gt;
&lt;br /&gt;
Die Integrität ist die Betrachtung des Datenbestandes im Zusammenhang mit allen verfügbaren, und nicht verfügbaren, Daten. Innerhalb des Datenbestandes muss sichergestellt werden, dass die Daten selbst vollständig, unverfälscht, korrekt zusammenhängend und nicht widersprüchlich sind. Das bedeutet, dass der Datenbestand lückenlos sein muss und das Fehlen von Daten ersichtlich sein muss. Auch darf durch die Nichtverfügbarkeit einzelner Daten keine Kettenreaktion auf andere Daten ausgelöst werden, welche wiederum zu weiteren falschen Daten führen würde.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel hierfür ist das Fehlen von Messwerten eines über das Netzwerk angebundenen Medizinproduktes, welches für eine gewisse Zeit durch eine Störung nicht korrekt angebunden war. Wird dieses Lückenproblem nicht korrekt vom darüberlegenden IT-System behandelt, könnten hierbei falsche Durchschnittswerte entstehen, welche wiederum zu einem falschen Diagnosevorschlag führen würden.&lt;br /&gt;
&lt;br /&gt;
=== Verfügbarkeit (Availability) ===&lt;br /&gt;
&lt;br /&gt;
Bei der Verfügbarkeit wird die Funktionsbereitschaft der IT-Systeme zu den Zeitpunkten bezeichnet, zu denen sie benötigt werden. Dabei handelt es sich um alle Maßnahmen gegen Ausfälle oder Datenverlust. Hierbei ist es auch erforderlich den Zusammenhang zwischen den Systemen zu betrachten, da der Ausfall eines als unwichtig erscheinenden Systems andere wichtige Systeme beeinträchtigen könnte.&lt;br /&gt;
&lt;br /&gt;
So kann beispielsweise der Ausfall eines Dateiservers als wenig wichtig eingestuft werden, da die Daten in den Kernprozessen nicht unmittelbar im Zugriff sein müssen. Wenn hingegen eine wichtige Software des Kernprozesses seine Logdateien auf genau diesen Dateiserver ablegen muss, wird die anfangs als unwichtig eingestufte Dateiablage auf einmal zu einer kritischen Komponente, da sonst wiederum die Integrität gefährdet wäre.&lt;br /&gt;
&lt;br /&gt;
=== Kontrollmechanismen ===&lt;br /&gt;
&lt;br /&gt;
Rund um die CIA-Triade sind drei Kontrollmechanismen definiert, um ihre grundsätzlichen Ziele im Detail analysieren zu können [Fr13, 29]:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Physische Kontrolle&amp;#039;&amp;#039;&amp;#039;: Schutz der IT-Systeme vor physischem Zugriff durch Maßnahmen wie Zäune, Schlösser und Wachpersonal.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Technische Kontrolle&amp;#039;&amp;#039;&amp;#039;: Schutz der IT-Systeme und Daten vor technischen Zugriffen über Netzwerke und Anwenderzugriffe. Beispielsweise durch Benutzerberechtigungen, Firewalls, Datenverschlüsselung und das Verhindern des Betriebs von unerlaubten IT-Komponenten im eigenen IT-System.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Administrative Kontrolle&amp;#039;&amp;#039;&amp;#039;: Installation, Schulung und Kontrolle von IT-Sicherheitsprozessen und IT-Sicherheitsmanagement und allen damit verbundenen Richtlinien und Vorgaben und die Einhaltung der damit verbundenen Gesetzlichen Vorgaben.&lt;br /&gt;
&lt;br /&gt;
=== Risiko- und Schwachstelleneinteilung der Schutzziele ===&lt;br /&gt;
&lt;br /&gt;
Um eine einheitliche Betrachtung und Maßnahmensetzung zu ermöglichen sollten alle Risiken gemäß der Schutzziele der CIA-Triade kategorisiert werden. Eine Einteilung in mehrere Kategorien ist in einigen Fällen möglich, jedoch nicht immer voll abgrenzbar [Ha12, 267]. Im Rahmen der Analyse sollte jedoch stets darauf geachtet werden, eine mögliche Einstufung in jeder der drei Säulen zu bedenken. So kann beispielsweise das Risiko einer Schadsoftware mehr als einem Schutzziel zugeordnet werden, da sie sowohl die Integrität als auch die Verfügbarkeit und die Vertraulichkeit gefährden kann [Ha12, 268].&lt;br /&gt;
&lt;br /&gt;
Bei der Analyse der Risiken werden mögliche Schwachstellen der Schutzziele aufgedeckt, welche wiederum zu möglichen Bedrohungen führen. Daraus ergeben sich dann die dafür notwendigen Maßnahmen. Zwischen diesen drei Bereichen bestehen nun einige direkte Abhängigkeiten, die sich jedoch auch oft überschneiden können. Das bedeutet, dass eine Schwachstelle mehrere Risiken bedingen kann und mehreren Risiken durch eine einzelne Maßnahme begegnet werden kann. Abbildung &amp;quot;Zusammenhang von Schwachstellen, Bedrohungen und abgeleiteten Maßnahmen&amp;quot; beschreibt die hier erwähnten Zusammenhänge anhand einiger Beispiele aus dem Softwarebereich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref375580330&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;[[file:img1643450062206.png|300px|none|thumb|Zusammenhang von Schwachstellen, Bedrohungen und abgeleiteten Maßnahmen]]&lt;br /&gt;
&lt;br /&gt;
Die möglichen Bedrohungen durch das Ausnutzen von Schwachstellen werden oft auch als &amp;#039;&amp;#039;&amp;#039;Angriffsvektoren&amp;#039;&amp;#039;&amp;#039; bezeichnet. Ein Angriffsvektor ist dabei der Weg, den ein Angreifer wählen kann um sein jeweiliges Angriffsziel zu erreichen.&lt;br /&gt;
&lt;br /&gt;
== Informationssicherheits-Standards ==&lt;br /&gt;
&lt;br /&gt;
Die IT-Sicherheit und die Einführung und der Aufbau von IT-Sicherheits-Management-Systemen sind in unterschiedlichen Normen und Standards geregelt, die teilweise aufeinander aufbauen oder referenzieren.&lt;br /&gt;
&lt;br /&gt;
Die wesentlichen drei Standards sind:&lt;br /&gt;
&lt;br /&gt;
* die ISO/IEC 2700x Reihe,&lt;br /&gt;
* IT-Grundschutz-Standards des Bundesamtes für Sicherheit in der Informationstechnik (BSI) und&lt;br /&gt;
* das Österreichische Informationssicherheitshandbuch.&lt;br /&gt;
&lt;br /&gt;
=== ISO/IEC 2700x Reihe ===&lt;br /&gt;
&lt;br /&gt;
Eine Reihe verbreiteter internationaler Informationssicherheits-Standards ist die ISO/IEC 2700x Reihe. Sie wurde von der International Organization for Standardization (ISO) und der International Electrotechnical Commission (IEC) begründet und wird stetig ausgebaut.&lt;br /&gt;
&lt;br /&gt;
Das Basisdokument der Reihe ist die ISO/IEC 27000 [Is14] (Informationstechnologie, Sicherheitstechnik, Informationssicherheits-Managementsysteme). Sie definiert die Grundbegriffe und bietet einen Gesamtüberblick. Einige Teile der Reihe wurden von Standards der British Standards Institution (BSI) abgeleitet.&lt;br /&gt;
&lt;br /&gt;
Die grundlegenden Teile der ISO/IEC 2700x sind:&lt;br /&gt;
&lt;br /&gt;
* ISO/IEC 27001 bis 27004: Definition, Betrieb und Kontrolle von Informationssicherheits-Managementsystemen (ISMS) und&lt;br /&gt;
* ISO/IEC 27005: Informationssicherheits-Risikomanagement.&lt;br /&gt;
Die weiteren Teile beschäftigen sich mit dem Audit und branchenspezifischen und technischen Ausprägungen der ersten fünf Standards. Ein Beispiel dafür ist die EN ISO 27799, welche sich auf das Sicherheitsmanagement im Gesundheitswesen bezieht.&lt;br /&gt;
&lt;br /&gt;
=== IT-Grundschutz-Standards des Bundesamtes für Sicherheit in der Informationstechnik (BSI) ===&lt;br /&gt;
&lt;br /&gt;
Der BSI IT-Grundschutz Standard teilt sich in mehrere Dokumente. Er wird durch das Bundesamt für Sicherheit in der Informationstechnik (BSI) der Bundesrepublik Deutschland stetig weiterentwickelt und herausgegeben.&lt;br /&gt;
&lt;br /&gt;
Die Teile des IT-Grundschutz sind:&lt;br /&gt;
&lt;br /&gt;
* BSI-Standard 100-1: Managementsysteme für Informationssicherheit (ISMS) [Bu08a],&lt;br /&gt;
* BSI-Standard 100-2: IT-Grundschutz-Vorgehensweise [Bu08b],&lt;br /&gt;
* BSI-Standard 100-3: Risikoanalyse auf der Basis von IT-Grundschutz [Bu08c] und&lt;br /&gt;
* BSI-Standard 100-4: Notfallmanagement [Bu08d].&lt;br /&gt;
Bei allen BSI Standards handelt es sich um Empfehlungen zu Methoden, Prozessen und Verfahren der Informationssicherheit. Die Standards dienen der fachlichen Unterstützung von Anwendern der Informationstechnik und bieten die Möglichkeit, entweder die Empfehlungen direkt zu verwenden oder diese erforderlichenfalls an die eigenen Bedürfnisse anzupassen. [Bu15]&lt;br /&gt;
&lt;br /&gt;
=== Österreichisches Informationssicherheitshandbuch ===&lt;br /&gt;
&lt;br /&gt;
Beim Österreichisches Informationssicherheitshandbuch [Ze13] handelt es sich um ein vom Österreichischen Bundeskanzleramt herausgegebenes Werk, welches teilweise auf bestehenden Standards und Normen wie den BSI IT-Grundschutz und die ISO/IEC 2700x aufbaut und Vorgehensweisen für den Aufbau und Betrieb von Informationssicherheit-Management-Systemen. Die Struktur entspricht dabei derer der ISO/IEC 27001 und ISO/IEC 27002.&lt;br /&gt;
&lt;br /&gt;
Das Informationssicherheitshandbuch beschreibt seine eigene Ausrichtung und Umfang wie folgt: &amp;#039;&amp;#039;Von der Ausrichtung versteht sich das Informationssicherheitshandbuch […] als Sammlung von Leitlinien und Empfehlungen für die Praxis, die entsprechend den spezifischen Anforderungen und Bedürfnissen in einer Einsatzumgebung angepasst werden müssen. Dies wird auch durch die Online-Funktionalitäten wie Checklisten unterstützt. Es soll eine Ergänzung zu den bestehenden Regelungen und Vorschriften (Datenschutzgesetz, Informationssicherheitsgesetz, Verschlusssachenvorschriften, Amtsgeheimnis, …) darstellen und setzt diese weder außer Kraft noch steht es zu ihnen im Widerspruch.&amp;#039;&amp;#039; [Ze13, 27]&lt;br /&gt;
&lt;br /&gt;
== Informationssicherheits-Management ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;IT-Security ist keine Software, kein Werkzeug und auch kein Zustand. IT-Security ist ein Prozess!&amp;#039;&amp;#039; [KRS08, 401]&lt;br /&gt;
&lt;br /&gt;
Dieser Satz beschreibt die grundlegende Definition bereits ganz gut. Um IT-Sicherheit einzuführen benötigt es keiner einzelnen Produkte oder reiner persönlicher Ansichten, sondern einen unterstützenden Unternehmensprozess des IT-Sicherheitsmanagements. Es kann dabei nicht als eigenständiges Vorhaben betrachtet werden, sondern gliedert sich in die Betrachtung aller Geschäftsprozesse mit ein. Ein wesentlicher Fehler wäre es, sie Einführung von IT-Sicherheit als zeitlich begrenztes Projekt abzuwickeln, ohne danach einen funktionierenden Managementprozess zu haben, der sich um die Aufrechterhaltung und stetige Verbesserung des IT-Sicherheitsstatus kümmert.&lt;br /&gt;
&lt;br /&gt;
Der Schutz von Informationen und Daten ist auch für kleine und mittlere Unternehmen von großer Bedeutung, &amp;#039;&amp;#039;da für diese ein entsprechender Verlust von Daten oder deren Manipulation, sehr rasch, ein existenzbedrohendes Potential annehmen kann.&amp;#039;&amp;#039; [Fr13, 8]&lt;br /&gt;
&lt;br /&gt;
Die Implementierung eines durchgängigen und effizienten IT-Sicherheitsmanagements bedarf detailliertes Wissen über das betreffende Unternehmen und Fachkompetenz im Bereich der IT und IT-Sicherheit. Durch standardisierte Methoden und vormodellierte interne Kontrollsysteme kann es jedoch ermöglicht werden, den operativen Teil des IT-Sicherheitsmanagements durch Spezialisten der Geschäftsprozesse mit IT-Basiswissen durchzuführen.&lt;br /&gt;
&lt;br /&gt;
Um IT-Sicherheitsmanagement in einem Unternehmen zu implementieren, wird ein &amp;#039;&amp;#039;&amp;#039;IT-Sicherheitsmanagement-System (ISMS)&amp;#039;&amp;#039;&amp;#039; aufgesetzt. Dieses System ist die Grundlage des IT-Sicherheitsprozesses, welcher, als Managementprozess, wiederum durch entsprechende Prozessnahtstellen Teil aller Unternehmensprozesse ist.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ein ISMS ist ein Teil eines allgemeineren, umfassenderen Management-Systems, das andere Teile der Organisation, möglicherweise die gesamte Organisation, und weitere Themen umfasst. Das ISMS baut auf der Einschätzung der Geschäftsrisiken auf. Ein ISMS sollte daher als ein Mittel verstanden werden, mit dem das Management einer Organisation auf erkannte Risiken im Geschäft der Organisation reagiert.&amp;#039;&amp;#039; [KRS08, 45f]&lt;br /&gt;
&lt;br /&gt;
Die Vorgehensweise für die Installation eines ISMS ist im BSI-Standard folgendermaßen beschrieben [Bu08a, 24ff]:&lt;br /&gt;
&lt;br /&gt;
# Festlegung des Geltungsbereiches, für den das ISMS gelten soll&lt;br /&gt;
# Ermittlung von Rahmenbedingungen&lt;br /&gt;
# Formulierung von Sicherheitszielen und einer Leitlinie zur Informationssicherheit&lt;br /&gt;
# Aufbau einer Informationssicherheitsorganisation&lt;br /&gt;
Darüber hinaus ist die Einrichtung eines ISMS ein stetig andauernder Prozess, welcher sich in einen Plan-Do-Check-Act Kreiskauf darstellen lässt. Nach der Planung und Implementierung muss das ISMS regelmäßig inhaltlich überprüft werden und die aus der Überprüfung resultierten Erkenntnisse wiederum in die ursprüngliche Planung und damit in die eigentliche Umsetzung integriert werden. In der ISO 27001 ist dieser Kreislauf folgend ausformuliert [II08, 6]:&lt;br /&gt;
&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Planen (Einrichten eines ISMS):&amp;#039;&amp;#039;&amp;#039; Einrichten einer ISMS-Politik sowie von Zielen, Prozessen und Verfahren, die für das Risikomanagement und die Verbesserung der Informationssicherheit notwendig sind, um Ergebnisse im Einklang mit den übergeordneten Grundsätzen und Zielen der Organisation zu erreichen.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Durchführen (Umsetzen und Durchführen des ISMS):&amp;#039;&amp;#039;&amp;#039; Umsetzen und Durchführen der ISMS-Politik, Maßnahmen, Prozesse und Verfahren.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Prüfen (Überwachen und Überprüfen des ISMS):&amp;#039;&amp;#039;&amp;#039; Bewerten und gegebenenfalls Messen der Prozessleistung an der ISMS-Politik, den ISMS-Zielen und der praktischen Erfahrungen, sowie Berichten der Ergebnisse an das Management zur Überprüfung.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Handeln (Instandhalten und Verbessern des ISMS):&amp;#039;&amp;#039;&amp;#039; Ergreifen von Korrektur- und Vorbeugemaßnahmen, basierend auf den Ergebnissen interner ISMS-Audits und Management-Überprüfungen oder anderer wesentlicher Informationen, um eine ständige Verbesserung des ISMS zu erreichen.&lt;br /&gt;
Wichtige Teile eines ISMS sind daher auch das IT-Business Continuity Management und das IT-Risikomanagement, sowie die sich daraus ergebenden IT-Maßnahmenziele. Für die laufende Analyse, Kontrolle und Weiterentwicklung maßgebend ist das interne Kontrollsystem, welches mit geeigneten Methoden und Checklisten für die Schaffung und Einhaltung des gewünschten IT-Sicherheitsstandards sorgt.&lt;br /&gt;
&lt;br /&gt;
== Business Kontinuität und Sicherheitszwischenfälle ==&lt;br /&gt;
&lt;br /&gt;
Das IT-Business Continuity Management besteht aus dem IT-Notfallmanagement und dem IT-Verfügbarkeitsmanagement [Ha12, 149]. Seine Grundlage ist ein funktionierendes IT-Risikomanagement und entsprechende Risikoanalysen, welche wiederum auf den Geschäftsprozessen basieren.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Das IT-Business Continuity Management (IT BCM) konzentriert sich als Teilbereich des Unternehmens-Business Continuity Managements auf diejenigen Arbeitsabläufe und Prozesse, die maßgeblich von IT-Systemen unterstützt werden.&amp;#039;&amp;#039; [Ha12, 151]&lt;br /&gt;
&lt;br /&gt;
Der Output des IT-Business Continuity Managementprozesses ist der Business Continuity Plan (BCP). In diesem Plan werden konkrete Maßnahmenziele für die jeweiligen Prozesse der Business Impact Analyse (BIA) und den dazugehörigen Risiken aus der Analyse des Notfallmanagements und des Verfügbarkeitsmanagements definiert.&lt;br /&gt;
&lt;br /&gt;
=== Business Impact Analyse (BIA) ===&lt;br /&gt;
&lt;br /&gt;
Im Rahmen der Business Impact Analyse werden alle Geschäftsprozesse hinsichtlich ihrer Auswirkungen bei teilweisen, oder gänzlichen Ausfällen analysiert. Dadurch wird festgestellt, auf welche Prozesse im Business Continuity Plan ein besonderes Augenmerk gelegt werden muss und welche vernachlässigbar sind. Sie betrachtet noch keine Risiken im Detail, sondern nur die Auswirkungen des Ausfalls von Prozessen. Dabei werden alle Geschäftsprozesse und Prozessschritte analysiert und entsprechend bewertet.&lt;br /&gt;
&lt;br /&gt;
Harich beschreibt die Durchführung einer Business Impact Analyse in 7 Phasen, welche der Prozessanalyse, sollten die Prozesse noch nicht bekannt sein, nachgestellt sind [Ha12, 156ff]:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Phase 1 - Vorauswahl der Geschäftsprozesse&amp;#039;&amp;#039;&amp;#039;: Anfertigung einer priorisierten Liste der wichtigsten Prozesse, um weniger wichtige Prozesse aus der Betrachtung auszunehmen, insbesondere die Aussortierung von Prozessen, welche ohne Auswirkungen auf den Unternehmenserfolg für längere Zeit ausfallen dürfen.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Phase 2 - Schadensanalyse&amp;#039;&amp;#039;&amp;#039;: Entstehender Schaden, wenn der analysierte Prozess die Prozessziele nicht erreicht. Es empfiehlt sich eine Staffelung nach Ausfallszeit, da die entstehenden Schäden meist von der Ausfallsdauer abhängen.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Phase 3 - Festlegung Prozess Service Level Agreements&amp;#039;&amp;#039;&amp;#039;: Festlegung der maximal tolerierten Ausfallzeit und dem minimalen Wiederanlaufniveau, das ist die minimale Funktionalität die für den Bereich erforderlich ist, je Prozess.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Phase 4 - Berücksichtigung von Abhängigkeiten&amp;#039;&amp;#039;&amp;#039;: Wenn Prozesse voneinander abhängig sind, dann müssen diese Abhängigkeiten erfasst werden und in die Analyse mit einfließen. So kann ein Prozess einen höheren Service Level benötigen, da ein anderer wichtigerer Prozess von ihm abhängig ist.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Phase 5 - Priorisierung der Geschäftsprozesse&amp;#039;&amp;#039;&amp;#039;: Aufgrund der Erkenntnisse aus den Phasen 2 bis 4 werden nun die Prozesse erneut priorisiert und gegebenenfalls aus der weiteren Betrachtung ausgenommen. Auch wird definiert, ob in der weiteren Betrachtung ein komplettes Notfallmanagement, oder lediglich die Definition simpler Arbeitsabläufe im Rahmen des BCP notwendig ist.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Phase 6 - Zuordnung von Werten&amp;#039;&amp;#039;&amp;#039;: Unter Werten werden hier die IT-Systeme verstanden, welche für das Funktionieren des Prozesses benötigt werden beziehungsweise verantwortlich sind. Da diese Zuordnung oft sehr komplex und aufwändig ist, wird empfohlen, sie nur für die wichtigsten Prozesse im Detail durchzuführen.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Phase 7 - Festlegung Asset Service Level Agreements&amp;#039;&amp;#039;&amp;#039;: In der letzten Phase werden nun die maximalen Ausfallszeiten und Wiederanlaufzeiten für die in Phase 6 zugeordneten IT-Systeme bestimmt. Die Klassifizierung erfolgt dabei über die zugrundeliegenden Prozesse und deren definierten Parametern und Zeiten.&lt;br /&gt;
Für die Schadensanalyse in Phase 2 sind im BSI Standard folgende Schadenskategorien definiert [13, p. 37]:&lt;br /&gt;
&lt;br /&gt;
* „niedrig“: Ausfall hat eine geringe, kaum spürbare Auswirkung&lt;br /&gt;
* „normal“: Ausfall hat spürbare Auswirkungen&lt;br /&gt;
* „hoch“: Ausfall hat erhebliche Auswirkungen&lt;br /&gt;
* „sehr hoch“: Ausfall oder Beeinträchtigung führen zu existenziell bedrohlichen Auswirkungen&lt;br /&gt;
&lt;br /&gt;
=== IT-Notfallmanagement ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Das IT-Notfallmanagement hat die grundsätzliche Aufgabe, Methoden und Maßnahmen bereitzustellen, die zur schnellen Lösung einer Krisensituation dienen. Das IT-Notfallmanagement ist ein Sammelbegriff für alle Schritte von der Notfallvorsorge, Notfallübungen über den Notbetrieb bis hin zur Bewältigung eines Notfalls. Es umfasst die Definition von Verantwortlichkeiten, die Erstellung und Pflege von Notfallplänen und aller Maßnahmen, die im Rahmen von Notfällen abzuarbeiten sind.&amp;#039;&amp;#039; [Ha12, 163f]&lt;br /&gt;
&lt;br /&gt;
Der Umfang des IT-Notfallmanagements ist ein sehr weitreichender. Die tatsächliche Anwendung ist hier jedoch stark von der Unternehmensgröße abhängig. So ist es in kleinen Unternehmen zwar ebenfalls erforderlich, Überlegungen zu allen Teilbereichen, wie beispielsweise der Notfallorganisation, zu treffen, die Komplexität ist jedoch wesentlich geringer. Es können daher einige Aspekte zusammengefasst betrachtet werden. Die Prozessschritte des Notfallmanagementprozesses laut IT-Grundschutz des BSI [Bu08d] sind in Abbildung &amp;quot;Notfallmanagement-Prozess&amp;quot; entsprechend ihrer Reihenfolge und ihrer Zusammenhänge dargestellt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 4.png|300px|none|thumb|Notfallmanagement-Prozess]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref375909025&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die in der Konzeption des Notfallmanagements zu erarbeitenden Punkte sind:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ablauforganisation&amp;#039;&amp;#039;&amp;#039;,&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Krisenkommunikation&amp;#039;&amp;#039;&amp;#039; und&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Notfallhandbuch&amp;#039;&amp;#039;&amp;#039; (Maßnahmenplan, Checklisten).&lt;br /&gt;
&lt;br /&gt;
=== IT-Risikomanagement ===&lt;br /&gt;
&lt;br /&gt;
Genauso wie das IT-Sicherheitsmanagement ist das IT-Risikomanagement ein stetiger Prozess. &amp;#039;&amp;#039;Auch nach Einführung eines Risikomanagementsystems für Informationssicherheit wird es keinen Tag X geben, an dem der CISO [Chief Information Security Officer] verkündet, ab jetzt sei alles sicher. Er wird höchstens sagen können, dass man auf Unsicherheit gezielt und planvoll reagieren kann und genau weiß, auf welche Risiken man sich einlassen will und auf welche lieber nicht.&amp;#039;&amp;#039; [Kl11, 25]&lt;br /&gt;
&lt;br /&gt;
Das IT-Risikomanagement beschäftigt sich mit der Analyse und Bewertung der IT-Risiken innerhalb der Geschäftsprozesse. Grundlage des IT-Risikomanagements ist somit die Prozessanalyse und die Business-Impact-Analyse, da nicht nur die Eintrittswahrscheinlichkeit, sondern auch die möglichen Auswirkungen wesentlicher Bestandteil der Risikoanalyse sind.&lt;br /&gt;
&lt;br /&gt;
Um die Risiken einzuschätzen ist Erfahrung mit den Geschäftsprozessen und den notwendigen IT-Systemen notwendig. Denn nur durch das aus dieser Erfahrung resultierende Wissen lässt sich die Existenz der Schwachstellen und Bedrohungen feststellen und die zugehörigen Risiken abschätzen. Obwohl die Einschätzung grundsätzlich mit entsprechender Prozess- und Technologieerfahrung möglich ist, werden viele Risiken ohne eine entsprechende Risikoanalyse oft nicht erkannt, da es zusätzlich zu dem möglichen Wissen notwendig ist, sich im Rahmen der Risikoanalyse lückenlos mit dem Prozess auseinanderzusetzen.&lt;br /&gt;
&lt;br /&gt;
Bei dieser Art der Risikoanalyse handelt es sich um den kombinierten Ansatz nach dem Österreichischen Informationssicherheitshandbuch [Ze13, 97]. Hier wird anhand der Schutzbedarfsfeststellung der Business-Impact-Analyse festgelegt, welche Risiken einer detaillierten Analyse (hohe Auswirkung) bedürfen und bei welchen auf einen hohen Detaillierungsgrad verzichtet werden kann (niedrige und mittlere Auswirkung) und eine Grundschutzanalyse ausreichend ist. Die Vorgehensweisen bei diesen beiden Analysearten werden nachfolgend genauer beschrieben.&lt;br /&gt;
&lt;br /&gt;
==== Detaillierte Risikoanalyse ====&lt;br /&gt;
&lt;br /&gt;
Die betroffenen Prozesse aus der Business-Impact-Analyse werden nun einer Bedrohungsanalyse und einer Schwachstellenanalyse unterzogen. Dabei wird betrachtet, welche möglichen Bedrohungen zu einer Störung des Prozesses führen können und welche Schwachstellen im Prozess oder seiner IT-Unterstützung diese Bedrohungen begünstigen können. Danach werden die bereits bestehenden Sicherheitsmaßnahmen analysiert und ihr aktueller Nutzen und die korrekte Funktion bewertet. Sobald alle Risiken bekannt sind, werden sie hinsichtlich ihrer Eintrittswahrscheinlichkeit und des möglichen Schadens bewertet und ein Gesamtrisiko berechnet. [Ze13, 97ff]&lt;br /&gt;
&lt;br /&gt;
Um keine mögliche Bedrohung zu übersehen empfiehlt es sich, mit einer Checkliste zu arbeiten, die eine lückenlose Betrachtung aller möglichen Bedrohungstypen oder Kategorien ermöglicht.&lt;br /&gt;
&lt;br /&gt;
Um mit den bewerteten Risiken nun vergleichbare Berechnungen durchführen zu können, werden die Faktoren dabei mit nummerischen Werten für beispielsweise „Niedrig“ bis „Sehr hoch“ beschrieben [Ha12, 304]:&lt;br /&gt;
&lt;br /&gt;
* Niedrig (Wert 1)&lt;br /&gt;
* Mittel (Wert 2)&lt;br /&gt;
* Hoch (Wert 3)&lt;br /&gt;
* Sehr hoch (Wert 4)&lt;br /&gt;
Die gängigste und gleichzeitig einfachste Formel zur Berechnung der Risiken ist:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;Risiko = Schaden*Eintrittswahrscheinlichkeit&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Da jedoch auch die bestehenden Maßnahmen in die Analyse einfließen, wird die Formel in der detaillieren Risikoanalyse um den Faktor &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;Ma\text{ß}nahmen&amp;lt;/math&amp;gt; erweitert, welcher die Eintrittswahrscheinlichkeit wieder verringert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;Risiko = Schaden*(Eintrittswahrscheinlichkeit - Ma\text{ß}nahmen)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier wird nicht das bloße Vorhandensein, sondern die Qualität der Maßnahmen bewertet. [Ha12, 301]&lt;br /&gt;
&lt;br /&gt;
Die oben genannte Formel berücksichtigt nur Maßnahmen, welche die Eintrittswahrscheinlichkeit minimieren. Es kann jedoch auch Maßnahmen geben, mit denen der entstehende Schaden gesenkt werden kann. So senkt beispielsweise eine unterbrechungsfreie Notstromversorgung die Eintrittswahrscheinlichkeit eines stromausfallbedingten IT-Systemausfalls, eine automatische Löschanlage in einem Serverraum minimiert hingegen den möglichen Schaden bei einem Brand, nicht aber die Eintrittswahrscheinlichkeit des Brandes. Die endgültige Formel wird daher noch um den Faktor der Schadensminimierenden Maßnahmen erweitert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;Risiko = \left( Schaden - M_{\text{Schaden}} \right)*(Eintrittswahrscheinlichkeit - M_{\text{Eintritt}})\ &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Um nun die Risikoanalyse übersichtlich und gut sortiert darzustellen, können, die Risiken auch in Form einer Risikomatrix dargestellt werden. Dabei empfiehlt sich die Risikomatrix gemäß der &amp;#039;&amp;#039;&amp;#039;ALARP (As Low As Reasonably Practicable)&amp;#039;&amp;#039;&amp;#039; [Kl11, 150f] Methode darzustellen. Die Achsen der Matrix sind hierbei die Eintrittswahrscheinlichkeit und der Schaden, welche in der hier angeführten Analyse noch um die Qualität der jeweiligen Maßnahmen reduziert wurden. Die daraus entstehende Matrix ist in Tabelle &amp;quot;ALARP Risikomatrix&amp;quot; dargestellt. Sie orientiert sich an der von Klipper [Kl11, 151] beschrieben Darstellung und berücksichtigt die Werte Niedrig bis Hoch der oben genannten Bewertung. Der grün dargestellte Bereich ist dabei der „akzeptable Bereich“. Alle hier eingeordneten Risiken müssen nicht weiter behandelt werden. Die Risiken im „ALARP-Bereich“ werden nur behandelt, wenn sie mit sehr einfachen Maßnahmen in den grünen Bereich gebracht werden können. Sie sind somit vorhanden, können aber noch akzeptiert werden. Eine besondere Betrachtung erfordern nur die Risiken im roten „inakzeptablen“ Bereich. Hier müssen Maßnahmen gesetzt werden, die dafür geeignet sind, die Faktoren so weit zu beeinflussen, damit die Risiken in den ALARP Bereich wechseln.&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref376168125&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;[[file:img1643143624475.png|300px|alt=ALARP Risikomatrix|none|thumb|ALARP Risikomatrix]]&lt;br /&gt;
==== Grundschutzansatz Risikoanalyse ====&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ziel des Grundschutzansatzes ist es, den Aufwand für die Erstellung eines Informationssicherheitskonzeptes angemessen zu begrenzen.&amp;#039;&amp;#039; [Ze13, 110]&lt;br /&gt;
&lt;br /&gt;
Bei der Grundschutzanalyse wird das IT-System anhand von vorhandenen Bausteinen möglichst genau nachmodelliert. Danach werden die vorhanden Maßnahmen mit den empfohlenen Maßnahmen in Form eines Soll-Ist-Vergleichs verglichen und daraus das weitere Vorgehen abgeleitet. Die einzelnen Bausteine für die Modellierung definieren sich durch die IT-Grundschutz Standards des BSI [Bu13]. Die einzelnen Module sind, der einfacheren Betrachtung halber, in einzelne Schichten gegliedert. Die unterschiedlichen Schichten und der aus Ihnen abgeleitete Aufbau des IT-Systems sind in Abbildung &amp;quot;Schichten des IT-Grundschutz Modells&amp;quot; dargestellt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 5.png|300px|none|thumb|Schichten des IT-Grundschutz Modells ]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref375916927&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aus den empfohlenen Maßnahmen des jeweiligen Bausteines ergeben sich die Soll-Parameter für das IT-System. Es wird dabei grundsätzlich nicht auf die beiden Faktoren Schaden und Eintrittswahrscheinlichkeit eingegangen, da dies bereits durch die Konzeption des Grundschutzstandards global berücksichtigt wurde. Bei Abweichungen des Ist-Systems müssen entweder Maßnahmen getroffen werden um die Lücke zu füllen, oder die Abweichung mit einer entsprechenden Begründung akzeptiert werden.&lt;br /&gt;
&lt;br /&gt;
=== IT-Maßnahmenziele ===&lt;br /&gt;
&lt;br /&gt;
Anhand der Ergebnisse der Risikoanalyse werden nun Maßnahmenziele abgeleitet, um entweder das jeweilige Modul des TI-Grundschutz-Modells zu erfüllen, oder um die in der detaillierten Risikoanalyse ermittelten Risiken auf einen akzeptierten Level zu bringen.&lt;br /&gt;
&lt;br /&gt;
Bevor eine vollkommen neue Maßnahme eingeführt wird, empfiehlt es sich mögliche bereits vorhandene Maßnahmen hinlänglich ihrer Erweiterbarkeit und Verbesserbarkeit zu überprüfen [Ha12, 314], da es sich dabei meist um die schnellste und günstigste Lösung handeln wird.&lt;br /&gt;
&lt;br /&gt;
Die ISO/IEC 27001 definiert im Anhang B [II08, 20ff] folgende Kategorien möglicher Maßnahmenziele:&lt;br /&gt;
&lt;br /&gt;
* Sicherheitspolitik,&lt;br /&gt;
* Organisation der Informationssicherheit,&lt;br /&gt;
* Management von Vermögenswerten,&lt;br /&gt;
* Personelle Sicherheit,&lt;br /&gt;
* Physische und umgebungsbezogene Sicherheit,&lt;br /&gt;
* Management der Kommunikation des Betriebes,&lt;br /&gt;
* Zugriffskontrolle,&lt;br /&gt;
* Beschaffung, Entwicklung und Wartung von Informationssystemen,&lt;br /&gt;
* Management von Informationssicherheits-Vorfällen,&lt;br /&gt;
* Betriebliches Kontinuitätsmanagement (Business Continuity Management) sowie&lt;br /&gt;
* Einhaltung von Verpflichtungen.&lt;br /&gt;
Die Maßnahmenziele müssen für die eigenen Prozesse ausdefiniert werden und stehen dann als Maßnahmenkatalog zur Begegnung mit den festgestellten Risiken zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
== Wiederholungsaufgaben/Übungen ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1 Erklären Sie, worin sich die Begriffe Informationssicherheit, IT-Sicherheit und Datenschutz unterscheiden.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2 Was ist die CIA-Triade? Erklären Sie kurz was genau unter C, I und A verstanden wird.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3 Welche Kontrollmechanismen gibt es, um die Ziele der CIA-Triade analysieren zu können?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;4 Was versteht man unter Schwachstellen, Bedrohungen und Maßnahmen und wie hängen sie zusammen?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;5 Zählen Sie wesentliche Standards der Informationssicherheit auf und erläutern Sie kurz ihre Herkunft und ihren Zweck.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;6 Sie sind mit der Durchführung eines Projektes zur Einführung von Informationssicherheit im Unternehmen beauftragt. Welches System werden Sie dazu einführen und was muss nach Projektende unbedingt beachten werden und warum?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;7 Erklären Sie kurz den Begriff des IT-Business Continuity Managements. Welche Analysemaßnahmen müssen darin durchgeführt werden und wie hängen sie zusammen?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;8 Wie funktioniert eine Risikoanalyse nach dem Grundschutzansatz?&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Computer-_und_Netzwerksicherheit_-_Grundlagen&amp;diff=5583</id>
		<title>Computer- und Netzwerksicherheit - Grundlagen</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Computer-_und_Netzwerksicherheit_-_Grundlagen&amp;diff=5583"/>
		<updated>2023-08-10T16:17:57Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Grundlagen der Informationssicherheit =&lt;br /&gt;
&lt;br /&gt;
== Einleitung ==&lt;br /&gt;
&lt;br /&gt;
Die Sicherheit der Informationstechnologie ist ein wesentlicher Bestandteil der Unternehmenssicherheit, da viele Prozesse einer intensiven IT-Unterstützung bedürfen und ohne sie nicht mehr, oder nur teilweise, funktionieren können. Es ist daher enorm wichtig, die möglichen Risiken zu kennen und diese, bezugnehmend auf die einzelnen Unternehmensprozesse, bewerten zu können. So umfangreich die Informationssysteme eines Unternehmens sind, so umfangreich sind auch die zu beachtenden Angriffsvektoren, sowie die Szenarien für Datenverlust, Nichtverfügbarkeit und Datendiebstahl. Die Computer- und Netzwerksicherheit ist ein wesentlicher Bestandteil der Informationssicherheit und greift in jede erdenkliche Materie der Informationstechnologie ein.&lt;br /&gt;
&lt;br /&gt;
Die Zwischenfälle im IT-Sicherheitsbereich nahmen in den letzten Jahren immer mehr zu. Einer Statistik der Internet-Sicherheitslage in Österreich von CERT.at und GovCERT.gv.at zufolge ist die Anzahl der IT-Sicherheitszwischenfälle von unter 10 pro Monat im Jahr 2009 auf konstant über 500 pro Monat ab Ende des Jahres 2012 gestiegen. Gegen Ende 2013 kann sogar von 1000 Zwischenfällen pro Monat ausgegangen werden, die Tendenz ist weiterhin steigend. [Ni13, 13]&lt;br /&gt;
&lt;br /&gt;
== Informations- und IT-Sicherheit ==&lt;br /&gt;
&lt;br /&gt;
Rund um den Bereich der IT-Sicherheit gibt es viele, oft falsch verstandene Begrifflichkeiten wie Datenschutz, Datensicherheit und Informationssicherheit [Ha12, 28]. Nachfolgend werden diese Begriffe nun kurz beschrieben, um einen Überblick über die Materie zu verschaffen.&lt;br /&gt;
&lt;br /&gt;
=== Informationssicherheit ===&lt;br /&gt;
&lt;br /&gt;
Bei der Informationssicherheit handelt es sich um die ganzheitliche Betrachtung der Sicherheit und den Schutz aller Art von Informationen. Dabei ist es nicht relevant, ob diese Informationen in elektronischer oder nicht elektronischer Form vorliegen.&lt;br /&gt;
&lt;br /&gt;
=== IT-Sicherheit ===&lt;br /&gt;
&lt;br /&gt;
Die IT-Sicherheit ist Teil der Informationssicherheit (siehe Abbildung &amp;quot;Schnittmenge Informations-Sicherheit und IT-Sicherheit&amp;quot;). Sie beschäftigt sich mit dem Schutz aller Art von elektronischer Information. Das beinhaltet alle EDV und Kommunikationssysteme, wie Computer, Internetverbindungen und Netzwerke, Telefonie und die für den Betrieb der Systeme zugrundeliegende Infrastruktur wie beispielsweise die Stromversorgung.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 1.png|300px|none|thumb|Schnittmenge Informations-Sicherheit und IT-Sicherheit ]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref375556757&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Datenschutz und Datensicherheit ===&lt;br /&gt;
&lt;br /&gt;
Der Datenschutz regelt den Schutz personenbezogener Daten, welche in elektronischer Form vorliegen. In Österreich ist der Datenschutz sowohl in einem Bundesgesetz (DSG), als auch in 9 Landesgesetzen geregelt.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Jedermann hat, insbesondere auch im Hinblick auf die Achtung seines Privat- und Familienlebens, Anspruch auf Geheimhaltung der ihn betreffenden personenbezogenen Daten, soweit ein schutzwürdiges Interesse daran besteht. Das Bestehen eines solchen Interesses ist ausgeschlossen, wenn Daten infolge ihrer allgemeinen Verfügbarkeit oder wegen ihrer mangelnden Rückführbarkeit auf den Betroffenen einem Geheimhaltungsanspruch nicht zugänglich sind.&amp;#039;&amp;#039; [Bg19, § 1. (1)]&lt;br /&gt;
&lt;br /&gt;
Die Einhaltung des Datenschutzes ist Teil der Informationssicherheit bzw. IT-Sicherheit und damit des IT-Sicherheitsmanagements. Die beiden Begrifflichkeiten werden jedoch oft vermischt oder verwechselt. So ist der Datenschutz selbst nur ein kleiner Teilbereich. IT-Sicherheit betrachtet wesentlich mehr als den Schutz personenbezogener Daten und bezieht sich auf alle Unternehmensprozesse und ihre IT-Unterstützung.&lt;br /&gt;
&lt;br /&gt;
== Säulen der Informationssicherheit - CIA Triade ==&lt;br /&gt;
&lt;br /&gt;
Die IT-Sicherheit und damit das IT-Sicherheitsmanagement basieren auf drei Säulen, welche den zu betrachtenden Rahmen aller durchzuführenden Analysen und den damit verbundenen Maßnahmen darstellen. Sie tragen somit bildlich das Dach der IT-Sicherheit und sorgen nur in ihrer gemeinsamen Betrachtung für die Stabilität und Sicherheit des gesamten IT-Sicherheits-Systems. Ihr Fundament ist das IT-Sicherheitsbewusstsein und die damit verbundene Bewusstseinsbildung ist die notwendige Maßnahme (siehe Abbildung &amp;quot;Aufbau der IT-Sicherheit&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Die drei Säulen sind:&lt;br /&gt;
&lt;br /&gt;
* Vertraulichkeit (Confidentiality),&lt;br /&gt;
* Integrität (Integrity) und&lt;br /&gt;
* Verfügbarkeit (Availability).&lt;br /&gt;
[[Datei:IT244 2.png|300px|none|thumb|Aufbau der IT-Sicherheit]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref375059634&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die drei Säulen der IT-Sicherheit werden oft auch als „CIA-Triade“  &amp;lt;ref&amp;gt;Der genaue Ursprung der „CIA-Triade“ ist nicht genau feststellbar. Die zugrundeliegenden Konzepte waren bereits vor Jahrtausenden im militärischen Kontext bekannt. Sie befinden sich beispielsweise in den Werken „Commentarii de bello Gallico“ [Ca58] des römischen Feldherren Gaius Julius Cäsar.&amp;lt;/ref&amp;gt;  oder „AIC-Principles“ bezeichnet, da die englischen Bezeichnungen mit den Buchstaben C, I und A beginnen.&lt;br /&gt;
&lt;br /&gt;
=== Vertraulichkeit (Confidentiality) ===&lt;br /&gt;
&lt;br /&gt;
Unter Vertraulichkeit wird die Einschränkung der Datenzugriffe auf einen bestimmten Anwenderkreis verstanden. Unberechtigte dürfen keinen Zugriff auf die IT-Systeme und Daten haben. Dies sind beispielsweise die Absicherung des gesamten Systems vor IT-Zugriffen unberechtigter Dritter und aber auch die Definition unterschiedlicher Berechtigungsstufen innerhalb der berechtigten Anwender. So sollte es beispielsweise einem Anwender erlaubt sein, die benötigten Programme zu starten, nicht jedoch neue Software zu installieren oder die gesamte Datenbank zu kopieren.&lt;br /&gt;
&lt;br /&gt;
Je nach System kann die Vertraulichkeit über Benutzer- und Programm-Berechtigungen und auch physische Zutrittskontrolle sichergestellt werden. Die hier gesetzten Maßnahmen sind jene Maßnahmen, welche am häufigsten mit IT-Sicherheit in Zusammenhang gebracht werden, jedoch ohne Betrachtung der anderen beiden Bereiche Integrität und Verfügbarkeit nicht vollständig sind.&lt;br /&gt;
&lt;br /&gt;
=== Integrität (Integrity) ===&lt;br /&gt;
&lt;br /&gt;
Die Integrität ist die Betrachtung des Datenbestandes im Zusammenhang mit allen verfügbaren, und nicht verfügbaren, Daten. Innerhalb des Datenbestandes muss sichergestellt werden, dass die Daten selbst vollständig, unverfälscht, korrekt zusammenhängend und nicht widersprüchlich sind. Das bedeutet, dass der Datenbestand lückenlos sein muss und das Fehlen von Daten ersichtlich sein muss. Auch darf durch die Nichtverfügbarkeit einzelner Daten keine Kettenreaktion auf andere Daten ausgelöst werden, welche wiederum zu weiteren falschen Daten führen würde.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel hierfür ist das Fehlen von Messwerten eines über das Netzwerk angebundenen Medizinproduktes, welches für eine gewisse Zeit durch eine Störung nicht korrekt angebunden war. Wird dieses Lückenproblem nicht korrekt vom darüberlegenden IT-System behandelt, könnten hierbei falsche Durchschnittswerte entstehen, welche wiederum zu einem falschen Diagnosevorschlag führen würden.&lt;br /&gt;
&lt;br /&gt;
=== Verfügbarkeit (Availability) ===&lt;br /&gt;
&lt;br /&gt;
Bei der Verfügbarkeit wird die Funktionsbereitschaft der IT-Systeme zu den Zeitpunkten bezeichnet, zu denen sie benötigt werden. Dabei handelt es sich um alle Maßnahmen gegen Ausfälle oder Datenverlust. Hierbei ist es auch erforderlich den Zusammenhang zwischen den Systemen zu betrachten, da der Ausfall eines als unwichtig erscheinenden Systems andere wichtige Systeme beeinträchtigen könnte.&lt;br /&gt;
&lt;br /&gt;
So kann beispielsweise der Ausfall eines Dateiservers als wenig wichtig eingestuft werden, da die Daten in den Kernprozessen nicht unmittelbar im Zugriff sein müssen. Wenn hingegen eine wichtige Software des Kernprozesses seine Logdateien auf genau diesen Dateiserver ablegen muss, wird die anfangs als unwichtig eingestufte Dateiablage auf einmal zu einer kritischen Komponente, da sonst wiederum die Integrität gefährdet wäre.&lt;br /&gt;
&lt;br /&gt;
=== Kontrollmechanismen ===&lt;br /&gt;
&lt;br /&gt;
Rund um die CIA-Triade sind drei Kontrollmechanismen definiert, um ihre grundsätzlichen Ziele im Detail analysieren zu können [Fr13, 29]:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Physische Kontrolle&amp;#039;&amp;#039;&amp;#039;: Schutz der IT-Systeme vor physischem Zugriff durch Maßnahmen wie Zäune, Schlösser und Wachpersonal.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Technische Kontrolle&amp;#039;&amp;#039;&amp;#039;: Schutz der IT-Systeme und Daten vor technischen Zugriffen über Netzwerke und Anwenderzugriffe. Beispielsweise durch Benutzerberechtigungen, Firewalls, Datenverschlüsselung und das Verhindern des Betriebs von unerlaubten IT-Komponenten im eigenen IT-System.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Administrative Kontrolle&amp;#039;&amp;#039;&amp;#039;: Installation, Schulung und Kontrolle von IT-Sicherheitsprozessen und IT-Sicherheitsmanagement und allen damit verbundenen Richtlinien und Vorgaben und die Einhaltung der damit verbundenen Gesetzlichen Vorgaben.&lt;br /&gt;
&lt;br /&gt;
=== Risiko- und Schwachstelleneinteilung der Schutzziele ===&lt;br /&gt;
&lt;br /&gt;
Um eine einheitliche Betrachtung und Maßnahmensetzung zu ermöglichen sollten alle Risiken gemäß der Schutzziele der CIA-Triade kategorisiert werden. Eine Einteilung in mehrere Kategorien ist in einigen Fällen möglich, jedoch nicht immer voll abgrenzbar [Ha12, 267]. Im Rahmen der Analyse sollte jedoch stets darauf geachtet werden, eine mögliche Einstufung in jeder der drei Säulen zu bedenken. So kann beispielsweise das Risiko einer Schadsoftware mehr als einem Schutzziel zugeordnet werden, da sie sowohl die Integrität als auch die Verfügbarkeit und die Vertraulichkeit gefährden kann [Ha12, 268].&lt;br /&gt;
&lt;br /&gt;
Bei der Analyse der Risiken werden mögliche Schwachstellen der Schutzziele aufgedeckt, welche wiederum zu möglichen Bedrohungen führen. Daraus ergeben sich dann die dafür notwendigen Maßnahmen. Zwischen diesen drei Bereichen bestehen nun einige direkte Abhängigkeiten, die sich jedoch auch oft überschneiden können. Das bedeutet, dass eine Schwachstelle mehrere Risiken bedingen kann und mehreren Risiken durch eine einzelne Maßnahme begegnet werden kann. Abbildung &amp;quot;Zusammenhang von Schwachstellen, Bedrohungen und abgeleiteten Maßnahmen&amp;quot; beschreibt die hier erwähnten Zusammenhänge anhand einiger Beispiele aus dem Softwarebereich:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref375580330&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;[[file:img1643450062206.png|300px|none|thumb|Zusammenhang von Schwachstellen, Bedrohungen und abgeleiteten Maßnahmen]]&lt;br /&gt;
&lt;br /&gt;
Die möglichen Bedrohungen durch das Ausnutzen von Schwachstellen werden oft auch als &amp;#039;&amp;#039;&amp;#039;Angriffsvektoren&amp;#039;&amp;#039;&amp;#039; bezeichnet. Ein Angriffsvektor ist dabei der Weg, den ein Angreifer wählen kann um sein jeweiliges Angriffsziel zu erreichen.&lt;br /&gt;
&lt;br /&gt;
== Informationssicherheits-Standards ==&lt;br /&gt;
&lt;br /&gt;
Die IT-Sicherheit und die Einführung und der Aufbau von IT-Sicherheits-Management-Systemen sind in unterschiedlichen Normen und Standards geregelt, die teilweise aufeinander aufbauen oder referenzieren.&lt;br /&gt;
&lt;br /&gt;
Die wesentlichen drei Standards sind:&lt;br /&gt;
&lt;br /&gt;
* die ISO/IEC 2700x Reihe,&lt;br /&gt;
* IT-Grundschutz-Standards des Bundesamtes für Sicherheit in der Informationstechnik (BSI) und&lt;br /&gt;
* das Österreichische Informationssicherheitshandbuch.&lt;br /&gt;
&lt;br /&gt;
=== ISO/IEC 2700x Reihe ===&lt;br /&gt;
&lt;br /&gt;
Eine Reihe verbreiteter internationaler Informationssicherheits-Standards ist die ISO/IEC 2700x Reihe. Sie wurde von der International Organization for Standardization (ISO) und der International Electrotechnical Commission (IEC) begründet und wird stetig ausgebaut.&lt;br /&gt;
&lt;br /&gt;
Das Basisdokument der Reihe ist die ISO/IEC 27000 [Is14] (Informationstechnologie, Sicherheitstechnik, Informationssicherheits-Managementsysteme). Sie definiert die Grundbegriffe und bietet einen Gesamtüberblick. Einige Teile der Reihe wurden von Standards der British Standards Institution (BSI) abgeleitet.&lt;br /&gt;
&lt;br /&gt;
Die grundlegenden Teile der ISO/IEC 2700x sind:&lt;br /&gt;
&lt;br /&gt;
* ISO/IEC 27001 bis 27004: Definition, Betrieb und Kontrolle von Informationssicherheits-Managementsystemen (ISMS) und&lt;br /&gt;
* ISO/IEC 27005: Informationssicherheits-Risikomanagement.&lt;br /&gt;
Die weiteren Teile beschäftigen sich mit dem Audit und branchenspezifischen und technischen Ausprägungen der ersten fünf Standards. Ein Beispiel dafür ist die EN ISO 27799, welche sich auf das Sicherheitsmanagement im Gesundheitswesen bezieht.&lt;br /&gt;
&lt;br /&gt;
=== IT-Grundschutz-Standards des Bundesamtes für Sicherheit in der Informationstechnik (BSI) ===&lt;br /&gt;
&lt;br /&gt;
Der BSI IT-Grundschutz Standard teilt sich in mehrere Dokumente. Er wird durch das Bundesamt für Sicherheit in der Informationstechnik (BSI) der Bundesrepublik Deutschland stetig weiterentwickelt und herausgegeben.&lt;br /&gt;
&lt;br /&gt;
Die Teile des IT-Grundschutz sind:&lt;br /&gt;
&lt;br /&gt;
* BSI-Standard 100-1: Managementsysteme für Informationssicherheit (ISMS) [Bu08a],&lt;br /&gt;
* BSI-Standard 100-2: IT-Grundschutz-Vorgehensweise [Bu08b],&lt;br /&gt;
* BSI-Standard 100-3: Risikoanalyse auf der Basis von IT-Grundschutz [Bu08c] und&lt;br /&gt;
* BSI-Standard 100-4: Notfallmanagement [Bu08d].&lt;br /&gt;
Bei allen BSI Standards handelt es sich um Empfehlungen zu Methoden, Prozessen und Verfahren der Informationssicherheit. Die Standards dienen der fachlichen Unterstützung von Anwendern der Informationstechnik und bieten die Möglichkeit, entweder die Empfehlungen direkt zu verwenden oder diese erforderlichenfalls an die eigenen Bedürfnisse anzupassen. [Bu15]&lt;br /&gt;
&lt;br /&gt;
=== Österreichisches Informationssicherheitshandbuch ===&lt;br /&gt;
&lt;br /&gt;
Beim Österreichisches Informationssicherheitshandbuch [Ze13] handelt es sich um ein vom Österreichischen Bundeskanzleramt herausgegebenes Werk, welches teilweise auf bestehenden Standards und Normen wie den BSI IT-Grundschutz und die ISO/IEC 2700x aufbaut und Vorgehensweisen für den Aufbau und Betrieb von Informationssicherheit-Management-Systemen. Die Struktur entspricht dabei derer der ISO/IEC 27001 und ISO/IEC 27002.&lt;br /&gt;
&lt;br /&gt;
Das Informationssicherheitshandbuch beschreibt seine eigene Ausrichtung und Umfang wie folgt: &amp;#039;&amp;#039;Von der Ausrichtung versteht sich das Informationssicherheitshandbuch […] als Sammlung von Leitlinien und Empfehlungen für die Praxis, die entsprechend den spezifischen Anforderungen und Bedürfnissen in einer Einsatzumgebung angepasst werden müssen. Dies wird auch durch die Online-Funktionalitäten wie Checklisten unterstützt. Es soll eine Ergänzung zu den bestehenden Regelungen und Vorschriften (Datenschutzgesetz, Informationssicherheitsgesetz, Verschlusssachenvorschriften, Amtsgeheimnis, …) darstellen und setzt diese weder außer Kraft noch steht es zu ihnen im Widerspruch.&amp;#039;&amp;#039; [Ze13, 27]&lt;br /&gt;
&lt;br /&gt;
== Informationssicherheits-Management ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;IT-Security ist keine Software, kein Werkzeug und auch kein Zustand. IT-Security ist ein Prozess!&amp;#039;&amp;#039; [KRS08, 401]&lt;br /&gt;
&lt;br /&gt;
Dieser Satz beschreibt die grundlegende Definition bereits ganz gut. Um IT-Sicherheit einzuführen benötigt es keiner einzelnen Produkte oder reiner persönlicher Ansichten, sondern einen unterstützenden Unternehmensprozess des IT-Sicherheitsmanagements. Es kann dabei nicht als eigenständiges Vorhaben betrachtet werden, sondern gliedert sich in die Betrachtung aller Geschäftsprozesse mit ein. Ein wesentlicher Fehler wäre es, sie Einführung von IT-Sicherheit als zeitlich begrenztes Projekt abzuwickeln, ohne danach einen funktionierenden Managementprozess zu haben, der sich um die Aufrechterhaltung und stetige Verbesserung des IT-Sicherheitsstatus kümmert.&lt;br /&gt;
&lt;br /&gt;
Der Schutz von Informationen und Daten ist auch für kleine und mittlere Unternehmen von großer Bedeutung, &amp;#039;&amp;#039;da für diese ein entsprechender Verlust von Daten oder deren Manipulation, sehr rasch, ein existenzbedrohendes Potential annehmen kann.&amp;#039;&amp;#039; [Fr13, 8]&lt;br /&gt;
&lt;br /&gt;
Die Implementierung eines durchgängigen und effizienten IT-Sicherheitsmanagements bedarf detailliertes Wissen über das betreffende Unternehmen und Fachkompetenz im Bereich der IT und IT-Sicherheit. Durch standardisierte Methoden und vormodellierte interne Kontrollsysteme kann es jedoch ermöglicht werden, den operativen Teil des IT-Sicherheitsmanagements durch Spezialisten der Geschäftsprozesse mit IT-Basiswissen durchzuführen.&lt;br /&gt;
&lt;br /&gt;
Um IT-Sicherheitsmanagement in einem Unternehmen zu implementieren, wird ein &amp;#039;&amp;#039;&amp;#039;IT-Sicherheitsmanagement-System (ISMS)&amp;#039;&amp;#039;&amp;#039; aufgesetzt. Dieses System ist die Grundlage des IT-Sicherheitsprozesses, welcher, als Managementprozess, wiederum durch entsprechende Prozessnahtstellen Teil aller Unternehmensprozesse ist.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ein ISMS ist ein Teil eines allgemeineren, umfassenderen Management-Systems, das andere Teile der Organisation, möglicherweise die gesamte Organisation, und weitere Themen umfasst. Das ISMS baut auf der Einschätzung der Geschäftsrisiken auf. Ein ISMS sollte daher als ein Mittel verstanden werden, mit dem das Management einer Organisation auf erkannte Risiken im Geschäft der Organisation reagiert.&amp;#039;&amp;#039; [KRS08, 45f]&lt;br /&gt;
&lt;br /&gt;
Die Vorgehensweise für die Installation eines ISMS ist im BSI-Standard folgendermaßen beschrieben [Bu08a, 24ff]:&lt;br /&gt;
&lt;br /&gt;
# Festlegung des Geltungsbereiches, für den das ISMS gelten soll&lt;br /&gt;
# Ermittlung von Rahmenbedingungen&lt;br /&gt;
# Formulierung von Sicherheitszielen und einer Leitlinie zur Informationssicherheit&lt;br /&gt;
# Aufbau einer Informationssicherheitsorganisation&lt;br /&gt;
Darüber hinaus ist die Einrichtung eines ISMS ein stetig andauernder Prozess, welcher sich in einen Plan-Do-Check-Act Kreiskauf darstellen lässt. Nach der Planung und Implementierung muss das ISMS regelmäßig inhaltlich überprüft werden und die aus der Überprüfung resultierten Erkenntnisse wiederum in die ursprüngliche Planung und damit in die eigentliche Umsetzung integriert werden. In der ISO 27001 ist dieser Kreislauf folgend ausformuliert [II08, 6]:&lt;br /&gt;
&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Planen (Einrichten eines ISMS):&amp;#039;&amp;#039;&amp;#039; Einrichten einer ISMS-Politik sowie von Zielen, Prozessen und Verfahren, die für das Risikomanagement und die Verbesserung der Informationssicherheit notwendig sind, um Ergebnisse im Einklang mit den übergeordneten Grundsätzen und Zielen der Organisation zu erreichen.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Durchführen (Umsetzen und Durchführen des ISMS):&amp;#039;&amp;#039;&amp;#039; Umsetzen und Durchführen der ISMS-Politik, Maßnahmen, Prozesse und Verfahren.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Prüfen (Überwachen und Überprüfen des ISMS):&amp;#039;&amp;#039;&amp;#039; Bewerten und gegebenenfalls Messen der Prozessleistung an der ISMS-Politik, den ISMS-Zielen und der praktischen Erfahrungen, sowie Berichten der Ergebnisse an das Management zur Überprüfung.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Handeln (Instandhalten und Verbessern des ISMS):&amp;#039;&amp;#039;&amp;#039; Ergreifen von Korrektur- und Vorbeugemaßnahmen, basierend auf den Ergebnissen interner ISMS-Audits und Management-Überprüfungen oder anderer wesentlicher Informationen, um eine ständige Verbesserung des ISMS zu erreichen.&lt;br /&gt;
Wichtige Teile eines ISMS sind daher auch das IT-Business Continuity Management und das IT-Risikomanagement, sowie die sich daraus ergebenden IT-Maßnahmenziele. Für die laufende Analyse, Kontrolle und Weiterentwicklung maßgebend ist das interne Kontrollsystem, welches mit geeigneten Methoden und Checklisten für die Schaffung und Einhaltung des gewünschten IT-Sicherheitsstandards sorgt.&lt;br /&gt;
&lt;br /&gt;
== Business Kontinuität und Sicherheitszwischenfälle ==&lt;br /&gt;
&lt;br /&gt;
Das IT-Business Continuity Management besteht aus dem IT-Notfallmanagement und dem IT-Verfügbarkeitsmanagement [Ha12, 149]. Seine Grundlage ist ein funktionierendes IT-Risikomanagement und entsprechende Risikoanalysen, welche wiederum auf den Geschäftsprozessen basieren.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Das IT-Business Continuity Management (IT BCM) konzentriert sich als Teilbereich des Unternehmens-Business Continuity Managements auf diejenigen Arbeitsabläufe und Prozesse, die maßgeblich von IT-Systemen unterstützt werden.&amp;#039;&amp;#039; [Ha12, 151]&lt;br /&gt;
&lt;br /&gt;
Der Output des IT-Business Continuity Managementprozesses ist der Business Continuity Plan (BCP). In diesem Plan werden konkrete Maßnahmenziele für die jeweiligen Prozesse der Business Impact Analyse (BIA) und den dazugehörigen Risiken aus der Analyse des Notfallmanagements und des Verfügbarkeitsmanagements definiert.&lt;br /&gt;
&lt;br /&gt;
=== Business Impact Analyse (BIA) ===&lt;br /&gt;
&lt;br /&gt;
Im Rahmen der Business Impact Analyse werden alle Geschäftsprozesse hinsichtlich ihrer Auswirkungen bei teilweisen, oder gänzlichen Ausfällen analysiert. Dadurch wird festgestellt, auf welche Prozesse im Business Continuity Plan ein besonderes Augenmerk gelegt werden muss und welche vernachlässigbar sind. Sie betrachtet noch keine Risiken im Detail, sondern nur die Auswirkungen des Ausfalls von Prozessen. Dabei werden alle Geschäftsprozesse und Prozessschritte analysiert und entsprechend bewertet.&lt;br /&gt;
&lt;br /&gt;
Harich beschreibt die Durchführung einer Business Impact Analyse in 7 Phasen, welche der Prozessanalyse, sollten die Prozesse noch nicht bekannt sein, nachgestellt sind [Ha12, 156ff]:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Phase 1 - Vorauswahl der Geschäftsprozesse&amp;#039;&amp;#039;&amp;#039;: Anfertigung einer priorisierten Liste der wichtigsten Prozesse, um weniger wichtige Prozesse aus der Betrachtung auszunehmen, insbesondere die Aussortierung von Prozessen, welche ohne Auswirkungen auf den Unternehmenserfolg für längere Zeit ausfallen dürfen.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Phase 2 - Schadensanalyse&amp;#039;&amp;#039;&amp;#039;: Entstehender Schaden, wenn der analysierte Prozess die Prozessziele nicht erreicht. Es empfiehlt sich eine Staffelung nach Ausfallszeit, da die entstehenden Schäden meist von der Ausfallsdauer abhängen.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Phase 3 - Festlegung Prozess Service Level Agreements&amp;#039;&amp;#039;&amp;#039;: Festlegung der maximal tolerierten Ausfallzeit und dem minimalen Wiederanlaufniveau, das ist die minimale Funktionalität die für den Bereich erforderlich ist, je Prozess.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Phase 4 - Berücksichtigung von Abhängigkeiten&amp;#039;&amp;#039;&amp;#039;: Wenn Prozesse voneinander abhängig sind, dann müssen diese Abhängigkeiten erfasst werden und in die Analyse mit einfließen. So kann ein Prozess einen höheren Service Level benötigen, da ein anderer wichtigerer Prozess von ihm abhängig ist.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Phase 5 - Priorisierung der Geschäftsprozesse&amp;#039;&amp;#039;&amp;#039;: Aufgrund der Erkenntnisse aus den Phasen 2 bis 4 werden nun die Prozesse erneut priorisiert und gegebenenfalls aus der weiteren Betrachtung ausgenommen. Auch wird definiert, ob in der weiteren Betrachtung ein komplettes Notfallmanagement, oder lediglich die Definition simpler Arbeitsabläufe im Rahmen des BCP notwendig ist.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Phase 6 - Zuordnung von Werten&amp;#039;&amp;#039;&amp;#039;: Unter Werten werden hier die IT-Systeme verstanden, welche für das Funktionieren des Prozesses benötigt werden beziehungsweise verantwortlich sind. Da diese Zuordnung oft sehr komplex und aufwändig ist, wird empfohlen, sie nur für die wichtigsten Prozesse im Detail durchzuführen.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Phase 7 - Festlegung Asset Service Level Agreements&amp;#039;&amp;#039;&amp;#039;: In der letzten Phase werden nun die maximalen Ausfallszeiten und Wiederanlaufzeiten für die in Phase 6 zugeordneten IT-Systeme bestimmt. Die Klassifizierung erfolgt dabei über die zugrundeliegenden Prozesse und deren definierten Parametern und Zeiten.&lt;br /&gt;
Für die Schadensanalyse in Phase 2 sind im BSI Standard folgende Schadenskategorien definiert [13, p. 37]:&lt;br /&gt;
&lt;br /&gt;
* „niedrig“: Ausfall hat eine geringe, kaum spürbare Auswirkung&lt;br /&gt;
* „normal“: Ausfall hat spürbare Auswirkungen&lt;br /&gt;
* „hoch“: Ausfall hat erhebliche Auswirkungen&lt;br /&gt;
* „sehr hoch“: Ausfall oder Beeinträchtigung führen zu existenziell bedrohlichen Auswirkungen&lt;br /&gt;
&lt;br /&gt;
=== IT-Notfallmanagement ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Das IT-Notfallmanagement hat die grundsätzliche Aufgabe, Methoden und Maßnahmen bereitzustellen, die zur schnellen Lösung einer Krisensituation dienen. Das IT-Notfallmanagement ist ein Sammelbegriff für alle Schritte von der Notfallvorsorge, Notfallübungen über den Notbetrieb bis hin zur Bewältigung eines Notfalls. Es umfasst die Definition von Verantwortlichkeiten, die Erstellung und Pflege von Notfallplänen und aller Maßnahmen, die im Rahmen von Notfällen abzuarbeiten sind.&amp;#039;&amp;#039; [Ha12, 163f]&lt;br /&gt;
&lt;br /&gt;
Der Umfang des IT-Notfallmanagements ist ein sehr weitreichender. Die tatsächliche Anwendung ist hier jedoch stark von der Unternehmensgröße abhängig. So ist es in kleinen Unternehmen zwar ebenfalls erforderlich, Überlegungen zu allen Teilbereichen, wie beispielsweise der Notfallorganisation, zu treffen, die Komplexität ist jedoch wesentlich geringer. Es können daher einige Aspekte zusammengefasst betrachtet werden. Die Prozessschritte des Notfallmanagementprozesses laut IT-Grundschutz des BSI [Bu08d] sind in Abbildung &amp;quot;Notfallmanagement-Prozess&amp;quot; entsprechend ihrer Reihenfolge und ihrer Zusammenhänge dargestellt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 4.png|300px|none|thumb|Notfallmanagement-Prozess]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref375909025&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die in der Konzeption des Notfallmanagements zu erarbeitenden Punkte sind:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ablauforganisation&amp;#039;&amp;#039;&amp;#039;,&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Krisenkommunikation&amp;#039;&amp;#039;&amp;#039; und&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Notfallhandbuch&amp;#039;&amp;#039;&amp;#039; (Maßnahmenplan, Checklisten).&lt;br /&gt;
&lt;br /&gt;
=== IT-Risikomanagement ===&lt;br /&gt;
&lt;br /&gt;
Genauso wie das IT-Sicherheitsmanagement ist das IT-Risikomanagement ein stetiger Prozess. &amp;#039;&amp;#039;Auch nach Einführung eines Risikomanagementsystems für Informationssicherheit wird es keinen Tag X geben, an dem der CISO [Chief Information Security Officer] verkündet, ab jetzt sei alles sicher. Er wird höchstens sagen können, dass man auf Unsicherheit gezielt und planvoll reagieren kann und genau weiß, auf welche Risiken man sich einlassen will und auf welche lieber nicht.&amp;#039;&amp;#039; [Kl11, 25]&lt;br /&gt;
&lt;br /&gt;
Das IT-Risikomanagement beschäftigt sich mit der Analyse und Bewertung der IT-Risiken innerhalb der Geschäftsprozesse. Grundlage des IT-Risikomanagements ist somit die Prozessanalyse und die Business-Impact-Analyse, da nicht nur die Eintrittswahrscheinlichkeit, sondern auch die möglichen Auswirkungen wesentlicher Bestandteil der Risikoanalyse sind.&lt;br /&gt;
&lt;br /&gt;
Um die Risiken einzuschätzen ist Erfahrung mit den Geschäftsprozessen und den notwendigen IT-Systemen notwendig. Denn nur durch das aus dieser Erfahrung resultierende Wissen lässt sich die Existenz der Schwachstellen und Bedrohungen feststellen und die zugehörigen Risiken abschätzen. Obwohl die Einschätzung grundsätzlich mit entsprechender Prozess- und Technologieerfahrung möglich ist, werden viele Risiken ohne eine entsprechende Risikoanalyse oft nicht erkannt, da es zusätzlich zu dem möglichen Wissen notwendig ist, sich im Rahmen der Risikoanalyse lückenlos mit dem Prozess auseinanderzusetzen.&lt;br /&gt;
&lt;br /&gt;
Bei dieser Art der Risikoanalyse handelt es sich um den kombinierten Ansatz nach dem Österreichischen Informationssicherheitshandbuch [Ze13, 97]. Hier wird anhand der Schutzbedarfsfeststellung der Business-Impact-Analyse festgelegt, welche Risiken einer detaillierten Analyse (hohe Auswirkung) bedürfen und bei welchen auf einen hohen Detaillierungsgrad verzichtet werden kann (niedrige und mittlere Auswirkung) und eine Grundschutzanalyse ausreichend ist. Die Vorgehensweisen bei diesen beiden Analysearten werden nachfolgend genauer beschrieben.&lt;br /&gt;
&lt;br /&gt;
==== Detaillierte Risikoanalyse ====&lt;br /&gt;
&lt;br /&gt;
Die betroffenen Prozesse aus der Business-Impact-Analyse werden nun einer Bedrohungsanalyse und einer Schwachstellenanalyse unterzogen. Dabei wird betrachtet, welche möglichen Bedrohungen zu einer Störung des Prozesses führen können und welche Schwachstellen im Prozess oder seiner IT-Unterstützung diese Bedrohungen begünstigen können. Danach werden die bereits bestehenden Sicherheitsmaßnahmen analysiert und ihr aktueller Nutzen und die korrekte Funktion bewertet. Sobald alle Risiken bekannt sind, werden sie hinsichtlich ihrer Eintrittswahrscheinlichkeit und des möglichen Schadens bewertet und ein Gesamtrisiko berechnet. [Ze13, 97ff]&lt;br /&gt;
&lt;br /&gt;
Um keine mögliche Bedrohung zu übersehen empfiehlt es sich, mit einer Checkliste zu arbeiten, die eine lückenlose Betrachtung aller möglichen Bedrohungstypen oder Kategorien ermöglicht.&lt;br /&gt;
&lt;br /&gt;
Um mit den bewerteten Risiken nun vergleichbare Berechnungen durchführen zu können, werden die Faktoren dabei mit nummerischen Werten für beispielsweise „Niedrig“ bis „Sehr hoch“ beschrieben [Ha12, 304]:&lt;br /&gt;
&lt;br /&gt;
* Niedrig (Wert 1)&lt;br /&gt;
* Mittel (Wert 2)&lt;br /&gt;
* Hoch (Wert 3)&lt;br /&gt;
* Sehr hoch (Wert 4)&lt;br /&gt;
Die gängigste und gleichzeitig einfachste Formel zur Berechnung der Risiken ist:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;Risiko = Schaden*Eintrittswahrscheinlichkeit&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Da jedoch auch die bestehenden Maßnahmen in die Analyse einfließen, wird die Formel in der detaillieren Risikoanalyse um den Faktor &amp;lt;math display=&amp;quot;inline&amp;quot;&amp;gt;Ma\text{ß}nahmen&amp;lt;/math&amp;gt; erweitert, welcher die Eintrittswahrscheinlichkeit wieder verringert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;Risiko = Schaden*(Eintrittswahrscheinlichkeit - Ma\text{ß}nahmen)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hier wird nicht das bloße Vorhandensein, sondern die Qualität der Maßnahmen bewertet. [Ha12, 301]&lt;br /&gt;
&lt;br /&gt;
Die oben genannte Formel berücksichtigt nur Maßnahmen, welche die Eintrittswahrscheinlichkeit minimieren. Es kann jedoch auch Maßnahmen geben, mit denen der entstehende Schaden gesenkt werden kann. So senkt beispielsweise eine unterbrechungsfreie Notstromversorgung die Eintrittswahrscheinlichkeit eines stromausfallbedingten IT-Systemausfalls, eine automatische Löschanlage in einem Serverraum minimiert hingegen den möglichen Schaden bei einem Brand, nicht aber die Eintrittswahrscheinlichkeit des Brandes. Die endgültige Formel wird daher noch um den Faktor der Schadensminimierenden Maßnahmen erweitert:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math display=&amp;quot;block&amp;quot;&amp;gt;Risiko = \left( Schaden - M_{\text{Schaden}} \right)*(Eintrittswahrscheinlichkeit - M_{\text{Eintritt}})\ &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Um nun die Risikoanalyse übersichtlich und gut sortiert darzustellen, können, die Risiken auch in Form einer Risikomatrix dargestellt werden. Dabei empfiehlt sich die Risikomatrix gemäß der &amp;#039;&amp;#039;&amp;#039;ALARP (As Low As Reasonably Practicable)&amp;#039;&amp;#039;&amp;#039; [Kl11, 150f] Methode darzustellen. Die Achsen der Matrix sind hierbei die Eintrittswahrscheinlichkeit und der Schaden, welche in der hier angeführten Analyse noch um die Qualität der jeweiligen Maßnahmen reduziert wurden. Die daraus entstehende Matrix ist in Tabelle &amp;quot;ALARP Risikomatrix&amp;quot; dargestellt. Sie orientiert sich an der von Klipper [Kl11, 151] beschrieben Darstellung und berücksichtigt die Werte Niedrig bis Hoch der oben genannten Bewertung. Der grün dargestellte Bereich ist dabei der „akzeptable Bereich“. Alle hier eingeordneten Risiken müssen nicht weiter behandelt werden. Die Risiken im „ALARP-Bereich“ werden nur behandelt, wenn sie mit sehr einfachen Maßnahmen in den grünen Bereich gebracht werden können. Sie sind somit vorhanden, können aber noch akzeptiert werden. Eine besondere Betrachtung erfordern nur die Risiken im roten „inakzeptablen“ Bereich. Hier müssen Maßnahmen gesetzt werden, die dafür geeignet sind, die Faktoren so weit zu beeinflussen, damit die Risiken in den ALARP Bereich wechseln.&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref376168125&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;[[file:img1643143624475.png|300px|alt=ALARP Risikomatrix|none|thumb|ALARP Risikomatrix]]&lt;br /&gt;
==== Grundschutzansatz Risikoanalyse ====&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Ziel des Grundschutzansatzes ist es, den Aufwand für die Erstellung eines Informationssicherheitskonzeptes angemessen zu begrenzen.&amp;#039;&amp;#039; [Ze13, 110]&lt;br /&gt;
&lt;br /&gt;
Bei der Grundschutzanalyse wird das IT-System anhand von vorhandenen Bausteinen möglichst genau nachmodelliert. Danach werden die vorhanden Maßnahmen mit den empfohlenen Maßnahmen in Form eines Soll-Ist-Vergleichs verglichen und daraus das weitere Vorgehen abgeleitet. Die einzelnen Bausteine für die Modellierung definieren sich durch die IT-Grundschutz Standards des BSI [Bu13]. Die einzelnen Module sind, der einfacheren Betrachtung halber, in einzelne Schichten gegliedert. Die unterschiedlichen Schichten und der aus Ihnen abgeleitete Aufbau des IT-Systems sind in Abbildung &amp;quot;Schichten des IT-Grundschutz Modells&amp;quot; dargestellt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 5.png|300px|none|thumb|Schichten des IT-Grundschutz Modells ]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref375916927&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aus den empfohlenen Maßnahmen des jeweiligen Bausteines ergeben sich die Soll-Parameter für das IT-System. Es wird dabei grundsätzlich nicht auf die beiden Faktoren Schaden und Eintrittswahrscheinlichkeit eingegangen, da dies bereits durch die Konzeption des Grundschutzstandards global berücksichtigt wurde. Bei Abweichungen des Ist-Systems müssen entweder Maßnahmen getroffen werden um die Lücke zu füllen, oder die Abweichung mit einer entsprechenden Begründung akzeptiert werden.&lt;br /&gt;
&lt;br /&gt;
=== IT-Maßnahmenziele ===&lt;br /&gt;
&lt;br /&gt;
Anhand der Ergebnisse der Risikoanalyse werden nun Maßnahmenziele abgeleitet, um entweder das jeweilige Modul des TI-Grundschutz-Modells zu erfüllen, oder um die in der detaillierten Risikoanalyse ermittelten Risiken auf einen akzeptierten Level zu bringen.&lt;br /&gt;
&lt;br /&gt;
Bevor eine vollkommen neue Maßnahme eingeführt wird, empfiehlt es sich mögliche bereits vorhandene Maßnahmen hinlänglich ihrer Erweiterbarkeit und Verbesserbarkeit zu überprüfen [Ha12, 314], da es sich dabei meist um die schnellste und günstigste Lösung handeln wird.&lt;br /&gt;
&lt;br /&gt;
Die ISO/IEC 27001 definiert im Anhang B [II08, 20ff] folgende Kategorien möglicher Maßnahmenziele:&lt;br /&gt;
&lt;br /&gt;
* Sicherheitspolitik,&lt;br /&gt;
* Organisation der Informationssicherheit,&lt;br /&gt;
* Management von Vermögenswerten,&lt;br /&gt;
* Personelle Sicherheit,&lt;br /&gt;
* Physische und umgebungsbezogene Sicherheit,&lt;br /&gt;
* Management der Kommunikation des Betriebes,&lt;br /&gt;
* Zugriffskontrolle,&lt;br /&gt;
* Beschaffung, Entwicklung und Wartung von Informationssystemen,&lt;br /&gt;
* Management von Informationssicherheits-Vorfällen,&lt;br /&gt;
* Betriebliches Kontinuitätsmanagement (Business Continuity Management) sowie&lt;br /&gt;
* Einhaltung von Verpflichtungen.&lt;br /&gt;
Die Maßnahmenziele müssen für die eigenen Prozesse ausdefiniert werden und stehen dann als Maßnahmenkatalog zur Begegnung mit den festgestellten Risiken zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
== Wiederholungsaufgaben/Übungen ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1 Erklären Sie, worin sich die Begriffe Informationssicherheit, IT-Sicherheit und Datenschutz unterscheiden.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2 Was ist die CIA-Triade? Erklären Sie kurz was genau unter C, I und A verstanden wird.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3 Welche Kontrollmechanismen gibt es, um die Ziele der CIA-Triade analysieren zu können?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;4 Was versteht man unter Schwachstellen, Bedrohungen und Maßnahmen und wie hängen sie zusammen?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;5 Zählen Sie wesentliche Standards der Informationssicherheit auf und erläutern Sie kurz ihre Herkunft und ihren Zweck.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;6 Sie sind mit der Durchführung eines Projektes zur Einführung von Informationssicherheit im Unternehmen beauftragt. Welches System werden Sie dazu einführen und was muss nach Projektende unbedingt beachten werden und warum?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;7 Erklären Sie kurz den Begriff des IT-Business Continuity Managements. Welche Analysemaßnahmen müssen darin durchgeführt werden und wie hängen sie zusammen?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;8 Wie funktioniert eine Risikoanalyse nach dem Grundschutzansatz?&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Benutzer:V%C3%96LKL_Peter&amp;diff=4480</id>
		<title>Benutzer:VÖLKL Peter</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Benutzer:V%C3%96LKL_Peter&amp;diff=4480"/>
		<updated>2023-05-31T09:51:33Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;[[file:Voelkl_mittel.jpg|300x150px|left|thumb|Peter Völkl]]&lt;br /&gt;
{| style=&amp;quot;height: 144px;&amp;quot;&lt;br /&gt;
|- style=&amp;quot;height: 144px;&amp;quot;&lt;br /&gt;
| style=&amp;quot;height: 144px; width: 1238px;&amp;quot; | &amp;lt;p&amp;gt;Peter Völkl, Jahrgang 1984, begann seine berufliche Laufbahn, nach dem Abschluss seiner Ausbildung an der HTBLuVA für EDV und Organisation, 2005 als Softwareentwickler beim Österreichischen Roten Kreuz. Dort übernahm er 2008 die Leitung einer, für die IT Services des Blutbereiches verantwortlichen, Abteilung der Blutspendezentrale für Wien, Niederösterreich und das Burgenland. Seine Schwerpunkte lagen hierbei, neben der Führung der Abteilung, in der laufenden Koordination und Überwachung von IT Projekten und Prozessen, sowie der Entwicklung, Testung und Validierung von IT Systemen. Neben seiner beruflichen Tätigkeit begann er 2010 mit dem Bachelorstudium der Wirtschaftsinformatik an der FernFH, welches er 2012 abschloss. Anschließend absolvierte er 2014 die Masterstudien Wirtschaftsinformatik an der FernFH und Information Management and IT Security an der FH Technikum Wien. Ab November 2014 war Peter Völkl als wissenschaftlicher Mitarbeiter an der FernFH tätig, ist seit Juli 2016 Studiengangsleiter des Masterstudiengangs Wirtschaftsinformatik und seit 2023 Leiter des Instituts für Wirtschaftsinformatik.&amp;lt;/p&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Informationstechnologie_und_Informationssysteme&amp;diff=4469</id>
		<title>Informationstechnologie und Informationssysteme</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Informationstechnologie_und_Informationssysteme&amp;diff=4469"/>
		<updated>2023-05-03T06:10:11Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[IT244 - Computer-_und_Netzwerksicherheit|IT244 - Computer- und Netzwerksicherheit]]&lt;br /&gt;
&lt;br /&gt;
[[IT523 - Verteilte Systeme|IT523 - Verteilte Systeme]]&lt;br /&gt;
&lt;br /&gt;
[[IT422 - Technische Sicherheitsaspekte|IT422 - Technische Sicherheitsaspekte]]&lt;br /&gt;
&lt;br /&gt;
[[IT445 - Requirements Engineering and Cost Estimation|IT445 - Requirements Engineering and Cost Estimation]]&lt;br /&gt;
&lt;br /&gt;
[[IT449_-_e-Government|IT449 - E-Government]]&lt;br /&gt;
&lt;br /&gt;
[[IT534 - Kryptographie und Zugriffskontrolle|IT534 - Kryptographie und Zugriffskontrolle]]&lt;br /&gt;
&lt;br /&gt;
[[IT546 - Web-Application- und E-Business-Security|IT546 - Web-Application- und E-Business-Security]]&lt;br /&gt;
&lt;br /&gt;
[[IS434 - Managementinformations- und Berichtssysteme|IT43B - Managementinformations- und Berichtssysteme]]&lt;br /&gt;
&lt;br /&gt;
[[IS532 - E-Commerce-Systeme|IT530 - E-Commerce-Systeme]]&lt;br /&gt;
&lt;br /&gt;
[[IS533 - Management kooperativer Informationssysteme|IT43A - Management kooperativer Informationssysteme]]&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Informationstechnologie_und_Informationssysteme&amp;diff=4468</id>
		<title>Informationstechnologie und Informationssysteme</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Informationstechnologie_und_Informationssysteme&amp;diff=4468"/>
		<updated>2023-05-03T06:09:44Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[IT244 -_Computer-_und_Netzwerksicherheit|IT244 - Computer- und_Netzwerksicherheit]][[IT523 - Verteilte Systeme|IT523 - Verteilte Systeme]]&lt;br /&gt;
&lt;br /&gt;
[[IT422 - Technische Sicherheitsaspekte|IT422 - Technische Sicherheitsaspekte]]&lt;br /&gt;
&lt;br /&gt;
[[IT445 - Requirements Engineering and Cost Estimation|IT445 - Requirements Engineering and Cost Estimation]]&lt;br /&gt;
&lt;br /&gt;
[[IT449_-_e-Government|IT449 - E-Government]]&lt;br /&gt;
&lt;br /&gt;
[[IT534 - Kryptographie und Zugriffskontrolle|IT534 - Kryptographie und Zugriffskontrolle]]&lt;br /&gt;
&lt;br /&gt;
[[IT546 - Web-Application- und E-Business-Security|IT546 - Web-Application- und E-Business-Security]]&lt;br /&gt;
&lt;br /&gt;
[[IS434 - Managementinformations- und Berichtssysteme|IT43B - Managementinformations- und Berichtssysteme]]&lt;br /&gt;
&lt;br /&gt;
[[IS532 - E-Commerce-Systeme|IT530 - E-Commerce-Systeme]]&lt;br /&gt;
&lt;br /&gt;
[[IS533 - Management kooperativer Informationssysteme|IT43A - Management kooperativer Informationssysteme]]&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Computer-_und_Netzwerksicherheit&amp;diff=4413</id>
		<title>Computer- und Netzwerksicherheit</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Computer-_und_Netzwerksicherheit&amp;diff=4413"/>
		<updated>2023-02-06T12:21:51Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Computer- und Netzwerksicherheit - Gesamt|Computer- und Netzwerksicherheit - Gesamt (Achtung - immer die aktuellste Version!)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Version für das Sommersemester 2023&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
[[Special:PermanentLink/2706|Computer- und Netzwerksicherheit - Grundlagen|Computer- und Netzwerksicherheit - Grundlagen]]&lt;br /&gt;
&lt;br /&gt;
[[Special:PermanentLink/2157|Computer- und Netzwerksicherheit - Bewusstseinsbildung|Computer- und Netzwerksicherheit - Bewusstseinsbildung]]&lt;br /&gt;
&lt;br /&gt;
[[Special:PermanentLink/2278|Computer- und Netzwerksicherheit - Kryptograhpie|Computer- und Netzwerksicherheit - Kryptograhpie]]&lt;br /&gt;
&lt;br /&gt;
[[Special:PermanentLink/2711|Computer- und Netzwerksicherheit - Zugriffssteuerung|Computer- und Netzwerksicherheit - Zugriffssteuerung]]&lt;br /&gt;
&lt;br /&gt;
[[Special:PermanentLink/2280|Computer- und Netzwerksicherheit - Netzwerksicherheit|Computer- und Netzwerksicherheit - Netzwerksicherheit]]&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Grundlagen_der_Modellierung_-_Datenmodellierung&amp;diff=4396</id>
		<title>Grundlagen der Modellierung - Datenmodellierung</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Grundlagen_der_Modellierung_-_Datenmodellierung&amp;diff=4396"/>
		<updated>2022-11-02T11:55:28Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;datenmodellierung&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Datenmodellierung =&lt;br /&gt;
&lt;br /&gt;
Bei der Datenmodellierung geht es um die zweckmäßige und effiziente Strukturierung von Daten in Informationssystemen. Die Modelle behandeln unterschiedliche Arten von Speicheranwendungen. Beispielsweise ist das ER-Modell im Bereich der Datenbanksysteme beheimatet, XML und JSON dahingegen im Bereich der Nahtstellen und Datenstrukturen innerhalb und zwischen einzelnen Systemen auf Dateiebene.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;entity-relationship-modell-er-modell&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Entity-Relationship Modell (ER-Modell) ==&lt;br /&gt;
&lt;br /&gt;
Das Entity-Relationship Modell (ER-Modell) wurde bereits im vorherigen Semester, im Studienheft „Datenbanksysteme“ (Schikuta, E.), genau erläutert. Nachfolgend werden nun die wesentlichen Punkte dieses Skriptums nochmals auszugsweise wiederholt.&lt;br /&gt;
&lt;br /&gt;
Das &amp;#039;&amp;#039;&amp;#039;Entity-Relationship-Modell (ER-Modell)&amp;#039;&amp;#039;&amp;#039; ist eines der ältesten (Chen, 1976) und am weitesten verbreiteten Modelle zum Entwurf von Datenbankmodellen und wird auch gerne im Bereich der allgemeinen Software Entwicklung eingesetzt. Durch seine besonders einfachen Darstellungsmöglichkeiten ist es sehr gut für die Kommunikation mit den Endbenutzern geeignet.&lt;br /&gt;
&lt;br /&gt;
Die Grundidee des Entity-Relationship-Modells (Objekt-Beziehungs-Modell) besteht darin, die Welt als Sammlung von &amp;#039;&amp;#039;&amp;#039;Entitäten (Entity&amp;#039;&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;&amp;#039;Objekttypen&amp;#039;&amp;#039;&amp;#039;) und &amp;#039;&amp;#039;&amp;#039;Beziehungen&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;Relationship&amp;#039;&amp;#039;&amp;#039;) zwischen diesen Objekttypen zu sehen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;modellierungsobjekte-des-er-modells&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Modellierungsobjekte des ER-Modells ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;entitäten&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Entitäten ====&lt;br /&gt;
&lt;br /&gt;
Ein Objekt wird &amp;#039;&amp;#039;&amp;#039;Entität-Instanz&amp;#039;&amp;#039;&amp;#039; genannt. Entität-Instanzen sind dabei einzelne Exemplare von Dingen oder Begriffen. Dies können beispielsweise sein:&lt;br /&gt;
&lt;br /&gt;
* Personen: der Kunde, Lieferant, Mitarbeiter etc.&lt;br /&gt;
* Gegenstände: Handelsware, Rohstoff, Maschine etc.&lt;br /&gt;
* Abstrakte Begriffe: Konto, Buchung, Bestellung etc.&lt;br /&gt;
Entität-Instanzen mit gleichen Eigenschaften lassen sich zu Entitäten (Objekttypen) zusammenfassen, z.B. Kunden, Bestellungen etc. Die Eigenschaften einer Entität-Instanz werden durch &amp;#039;&amp;#039;&amp;#039;Attribute&amp;#039;&amp;#039;&amp;#039; beschrieben, z.B. Name, Baujahr, Preis, Bestellnummer.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Im ER – Modell bezeichnet der Begriff Entität immer eine Klasse (Typ) von Instanzen, nicht eine Instanz!&lt;br /&gt;
&lt;br /&gt;
Zwischen zwei, aber auch mehr, Entitäten können Beziehungen bestehen, z.B. „Kunde bestellt Maschine“. Die Beziehung wird dabei durch die Rolle der an ihr beteiligten Entitäten beschrieben. Die Beziehungen können zwischen Entitäten gleichen Typs oder zwischen Entitäten verschiedenen Typs bestehen.&lt;br /&gt;
&lt;br /&gt;
Die wichtigsten Symbole in der grafischen Notation des ER-Modells werden in Abbildung 2 dargestellt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wiba mt233 201607 a.007.png|300px|none|thumb|Grafische Notation im ER-Modell]]&lt;br /&gt;
&lt;br /&gt;
Attribute können auch Beziehungen zugeordnet werden (siehe Abbildung 3). Hier ist bei der Modellierung zu entscheiden, ob dieses Beziehungsattribut nicht einer der beiden Entitäten zugeordnet werden kann oder soll.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wiba mt233 201607 a.008.png|300px|none|thumb|Beispiel Beziehungsattribut]]&lt;br /&gt;
&lt;br /&gt;
Eine minimale Menge von Attributen, deren Werte die zugeordnete Entität-Instanz eindeutig innerhalb aller Instanzen seines Objekttyps identifiziert, nennt man &amp;#039;&amp;#039;&amp;#039;Schlüssel&amp;#039;&amp;#039;&amp;#039;. Oft gibt es Attribute, die künstlich als Schlüssel eingebaut werden, z.B. Personalnummer, Vorlesungsnummer, …&lt;br /&gt;
&lt;br /&gt;
Schlüsselattribute werden durch Unterstreichen (manchmal auch durch doppelt gezeichnete Ovale) gekennzeichnet (siehe Abbildung 4).&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wiba mt233 201607 a.009.png|300px|none|thumb|Beispiel Schlüsselattribut]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;beziehungen&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Beziehungen ====&lt;br /&gt;
&lt;br /&gt;
Beziehungen repräsentieren eigentlich Aggregate von zwei oder mehreren an der Beziehung teilnehmenden Entitäten. Die Anzahl der aggregierten Entitäten heißt &amp;#039;&amp;#039;&amp;#039;Grad&amp;#039;&amp;#039;&amp;#039; der Beziehung (unäre, binäre, n-äre Beziehung). Entitäten haben in einer Beziehung eine minimale und eine maximale &amp;#039;&amp;#039;&amp;#039;Kardinalität&amp;#039;&amp;#039;&amp;#039; bzw. Komplexität.&lt;br /&gt;
&lt;br /&gt;
Die Beziehungen können vom Typ &amp;#039;&amp;#039;&amp;#039;1:1&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;1:n&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;n:1&amp;#039;&amp;#039;&amp;#039;, oder &amp;#039;&amp;#039;&amp;#039;m:n&amp;#039;&amp;#039;&amp;#039; sein. Entsprechende Beispiele für die einzelnen Kardinalitäten findet man in Abbildung 5:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wiba mt233 201607 a.010.png|300px|none|thumb|Beispiele Kardinalitäten]]&lt;br /&gt;
&lt;br /&gt;
Diese Kardinalitäten können folgendermaßen interpretiert werden:&lt;br /&gt;
&lt;br /&gt;
* 1:1 – ein Ehemann hat genau eine Ehefrau (normalerweise), und umgekehrt.&lt;br /&gt;
* 1:n – ein Kunde besitzt mehrere Konten, aber jedes Konto gehört genau einem Kunden.&lt;br /&gt;
* m:n – Ein Kunde kann mehrere Artikel kaufen und jeder Artikel kann von mehreren Kunden gekauft werden.&lt;br /&gt;
Bei der Angabe der Kardinalitäten ist es auch möglich Intervalle durch Angabe der minimalen und maximalen Kardinalität zu definieren. In Abbildung 6 ist sowohl eine n:m und eine n:1 Beziehung definiert, wobei das Maximum der Kardinalität die Beziehungsmultiplizität definiert.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wiba mt233 201607 a.011.png|300px|none|thumb|Beispiel Kardinalitäten mit Intervallen]]&lt;br /&gt;
&lt;br /&gt;
Im obigen Beispiel sieht man, dass es ohne weiters möglich ist, auch mehr als eine Beziehung zwischen Entitäten zu definieren. Im spezifischen Fall sind dies zwei binäre Beziehungen.&lt;br /&gt;
&lt;br /&gt;
In manchen Fällen ist es notwendig auch n-äre Beziehungen zu modellieren. In der Abbildung 7 ist eine ternäre Beziehung dargestellt und die entsprechende Interpretation der Kardinalitäten angegeben.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wiba mt233 201607 a.012.png|300px|none|thumb|Beispiel ternäre Beziehung]]&lt;br /&gt;
&lt;br /&gt;
Es ist aber empfohlen n-äre Beziehungen nur in wirklich begründeten Fällen zu modellieren.&lt;br /&gt;
&lt;br /&gt;
Unter einer &amp;#039;&amp;#039;&amp;#039;schwachen Entität&amp;#039;&amp;#039;&amp;#039; versteht man eine Entität, die kein Schlüsselattribut besitzt (d.h. wo die Instanzen nicht eindeutig unterschieden werden können). Solche Instanzen können nur über eine Beziehung zu einer anderen Entität eindeutig identifiziert werden. Schwache Entitäten werden grafisch durch einen doppelten Rand gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
Im nachfolgenden Beispiel Abbildung 8 ergibt sich die schwache Entität dadurch, dass ein Hörsaal durch seine Nummer, Größe und seinen Typ nicht eindeutig auf einem Universitätscampus identifiziert werden kann, auf dem es eine Vielzahl von Gebäuden mit jeweils mehreren Hörsälen gibt, die in jedem Gebäude von der Nummer 1 an gezählt werden. Das bedeutet es gibt in jedem Gebäude einen Hörsaal mit der Nummer 1. Erst mit der Angabe des Gebäudes (identifying owner) kann dadurch jeder Hörsaal eindeutig identifiziert werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wiba mt233 201607 a.013.png|300px|none|thumb|Beispiel Schwache Entität]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;beispiel-eines-er-modells&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Beispiel eines ER-Modells ===&lt;br /&gt;
&lt;br /&gt;
Im abschließenden (vereinfachten) Beispiel dieser Lektion wollen wir, basierend auf einem gegebenen Ausschnitt der Realität einer „Bank“, eine Modellierung mit Hilfe des ER-Modells durchführen.&lt;br /&gt;
&lt;br /&gt;
Ausgangsposition für unseren Ansatz bildet eine Anforderungsbeschreibung in natürlichsprachiger Form. Es wird angenommen, dass sich diese Beschreibung aus den Interviews mit den Benutzern bzw. Auftragsgebern ergeben hat. Eine in der Praxis simple, aber übliche Vorgangsweise, um Entitätskandidaten zu erhalten, ist alle Hauptworte im Text zu identifizieren und als ersten Ansatz für Entitäten zu verwenden. Dieses Verfahren wird in der CRC-Methode vertieft (siehe die Aufgaben zu dieser Lektion).&lt;br /&gt;
&lt;br /&gt;
Anforderungsbeschreibung:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;„Eine Bank gliedert sich in Filialen. Filialen werden an ihrem Namen unterschieden, sind in einer Stadt beheimatet und weisen ein Vermögen aus. Jede Filiale verwaltet ihre eigenen Konten und Kredite, die über Nummern identifiziert werden. Jedes Konto und jeder Kredit besitzt eine eindeutige Nummer und weist einen Kontostand (bei Konto) bzw. einen Betrag (bei Krediten) auf. Kunden wiederum besitzen Konten und haben auch Kredite laufen, wobei jedes Konto wie auch jeder Kredit genau einem oder mehreren Kunden zugeordnet wird. Kunden haben einen eindeutigen Namen und wohnen in einer Straße in einer Stadt.“&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Eine mögliche Modellierung dieser Anforderungsbeschreibung als ER-Modell findet man in Abbildung 9.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wiba mt233 201607 a.014.png|300px|none|thumb|Beispiel „Bank“: ER-Modell]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;extensible-markup-language-xml&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Extensible Markup Language (XML) ==&lt;br /&gt;
&lt;br /&gt;
Die Extensible Markup Language (XML) ist ein Standard für den Aufbau von Dateidokumenten. Sie wurde vom World Wide Web Consortium (W3C) entwickelt. Es handelt sich dabei um eine sehr flexible Modellierungsform für Textformate welche wiederum von der Standard Generalized Markup Language (SGML, ISO8879) abgeleitet wurde. (World Wide Web Consortium (W3C), 2014)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;XML ist eine Markup-Sprache, und es ist nur eine Markup-Sprache. […] Der XML-Hype ist so extrem geworden, dass viele Leute glauben, XML könne sogar Kaffee kochen der den Familienhund waschen.&amp;#039;&amp;#039; (Harold &amp;amp;amp; Means, 2005, S. 5)&lt;br /&gt;
&lt;br /&gt;
Die Designziele von XML selbst sind (World Wide Web Consortium (W3C), 2008):&lt;br /&gt;
&lt;br /&gt;
* XML soll direkt und unkompliziert über das Internet nutzbar sein,&lt;br /&gt;
* XML soll eine große Anzahl unterschiedlicher Applikationen unterstützen,&lt;br /&gt;
* XML soll mit SGML kompatibel sein,&lt;br /&gt;
* eine Programmierung von Anwendungen, welche XML Dokumente verarbeiten können, soll einfach möglich sein,&lt;br /&gt;
* die Anzahl von optionalen Features soll in XML so gering wie möglich gehalten werden und optimal Null sein,&lt;br /&gt;
* XML Dokumente sollen menschenlesbar und leicht verständlich sein,&lt;br /&gt;
* die Modellierung von XML Dokumenten soll schnell erstellt werden können,&lt;br /&gt;
* das Design von XML Dokumenten soll formal und präzise sein,&lt;br /&gt;
* die Erstellung von XML Dokumenten soll einfach sein und&lt;br /&gt;
* die Kürze und Kompaktheit der XML Elemente ist von geringer Bedeutung.&lt;br /&gt;
Der Hauptvorteil bei XML liegt, im Gegensatz zu eigen entwickelten Dateistrukturmodellen, in der schnellen und einheitlichen Verarbeitbarkeit für den Entwickler. In nahezu jeder gängigen Programmiersprache existieren bereits fertige Parser, welche die Generierung und Verarbeitung der Datenstrukturen, ohne größeren Programmieraufwand, ermöglichen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;aufbau-eines-xml-dokuments&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Aufbau eines XML Dokuments ===&lt;br /&gt;
&lt;br /&gt;
Jedes XML Dokument beinhaltet &amp;#039;&amp;#039;&amp;#039;ein einziges&amp;#039;&amp;#039;&amp;#039; XML &amp;#039;&amp;#039;&amp;#039;Wurzel-Element&amp;#039;&amp;#039;&amp;#039;, welches selbst jeweils wiederum beliebig viele weitere &amp;#039;&amp;#039;&amp;#039;Elemente&amp;#039;&amp;#039;&amp;#039; beinhalten kann. Alle Elemente dürfen wiederum beliebig viele weitere Elemente enthalten. Zusätzlich kann das Dokument &amp;#039;&amp;#039;&amp;#039;XML Deklarationen&amp;#039;&amp;#039;&amp;#039;, auch bezeichnet als Processing Instructions (PI), und beliebig viele &amp;#039;&amp;#039;&amp;#039;Kommentare&amp;#039;&amp;#039;&amp;#039; enthalten. Die Zeichenkodierung der Dokumente darf &amp;#039;&amp;#039;&amp;#039;alle Unicodezeichen&amp;#039;&amp;#039;&amp;#039; enthalten, wobei jedes XML verarbeitende Programm zumindest die Kodierungen UTF-8 und UTF-16 akzeptieren muss. Alle Bezeichnungen eines Dokuments, seien es die von Elementen oder Attributen, sind &amp;#039;&amp;#039;&amp;#039;Case Sensitive&amp;#039;&amp;#039;&amp;#039;. Da es sich dabei um ein einfaches Textdokument handelt, kann es auch von allen Texteditoren und Internetbrowsern, ohne weitere Hilfsmittel und Plugins, angezeigt werden. (World Wide Web Consortium (W3C), 2008)&lt;br /&gt;
&lt;br /&gt;
Vom Aufbau sehen sich XML und HTML (Hypertext Markup Language) Dokumente sehr ähnlich. Sie unterscheiden sich jedoch darin, dass die Art und teilweise die Anzahl der Elemente in HTML fest vorgegeben, in XML jedoch alle Elemente frei modellierbar, sind. Das Metamodell der zu verwendeten Elemente eines XML Dokuments kann somit vom Modellierer selbst festgelegt werden. HTML dient der Modellierung von Webseitendokumenten und hat fest vorgegebene Strukturen und Elemente um eine einheitliche grafische Verarbeitung durch die Internetbrowser zu ermöglichen. Das Design der Elemente selbst ist jedoch in beiden Fällen sehr restriktiv vorgegeben.&lt;br /&gt;
&lt;br /&gt;
Die &amp;#039;&amp;#039;&amp;#039;XML Deklaration&amp;#039;&amp;#039;&amp;#039; gibt die eingesetzte XML Version, und optional das Encoding, an. Dadurch wird den verarbeitenden Programmen die Verarbeitung erleichtert. Gerade die Angabe des Encodings kann viele Verarbeitungsprobleme im Vorfeld abfangen, da der Parser damit die eingesetzten Zeichen kennt und sie korrekt interpretieren kann. Nachfolgend ist in Abbildung 10 ein minimales XML Dokument dargestellt, welches nur eine XML Deklaration und ein einzelnes XML Element, namens „mein_wurzel_element“, ohne weitere Attribute und ohne Wert, beinhaltet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mein_wurzel_element /&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref402861975&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 10 – Minimales XML Dokument&lt;br /&gt;
&lt;br /&gt;
Da einige Zeichen in der XML Syntax eine spezielle Bedeutung haben, müssen sie im Text nötigenfalls in einer anderen Form geschrieben werden, um sie innerhalb von XML Elementen nutzen zu können:&lt;br /&gt;
&lt;br /&gt;
* &amp;amp;lt; wird zu &amp;#039;&amp;#039;&amp;amp;amp;lt;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;amp;gt; wird zu &amp;#039;&amp;#039;&amp;amp;amp;gt;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;amp;quot; wird zu &amp;#039;&amp;#039;&amp;amp;amp;quot;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039; wird zu &amp;#039;&amp;#039;&amp;amp;amp;apos;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;amp;amp; wird zu &amp;#039;&amp;#039;&amp;amp;amp;amp;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;xml-elemente&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== XML-Elemente ===&lt;br /&gt;
&lt;br /&gt;
Die einzelnen XML Elemente sind alle nach demselben Schema aufgebaut. Sie haben eine &amp;#039;&amp;#039;&amp;#039;Elementbezeichnung&amp;#039;&amp;#039;&amp;#039; und können &amp;#039;&amp;#039;&amp;#039;beliebig viele Attribute&amp;#039;&amp;#039;&amp;#039; enthalten. Weiter können sie selbst einen &amp;#039;&amp;#039;&amp;#039;Inhalt&amp;#039;&amp;#039;&amp;#039; haben, welcher wiederum aus Elementen bestehen kann.&lt;br /&gt;
&lt;br /&gt;
Ein Element besteht aus einem oder zwei sogenannten Tags. Ein &amp;#039;&amp;#039;&amp;#039;Tag&amp;#039;&amp;#039;&amp;#039; wird durch &amp;#039;&amp;#039;&amp;#039;spitze Klammern (&amp;amp;lt;,&amp;amp;gt;)&amp;#039;&amp;#039;&amp;#039; an seinem Beginn und Ende ausgezeichnet. Ob ein Element aus &amp;#039;&amp;#039;&amp;#039;einem oder zwei Tags&amp;#039;&amp;#039;&amp;#039; besteht, hängt davon ab, &amp;#039;&amp;#039;&amp;#039;ob es selbst einen eigenen Inhalt&amp;#039;&amp;#039;&amp;#039; besitzt, oder nicht. Der Inhalt kann aus Text oder weiteren Elementen bestehen. Am &amp;#039;&amp;#039;&amp;#039;Beginn&amp;#039;&amp;#039;&amp;#039; jedes Tags steht der &amp;#039;&amp;#039;&amp;#039;Name des Elements&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Hat ein Element &amp;#039;&amp;#039;&amp;#039;keinen&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;Inhaltsbereich&amp;#039;&amp;#039;&amp;#039;, besteht es aus nur &amp;#039;&amp;#039;&amp;#039;einen einzigen Tag.&amp;#039;&amp;#039;&amp;#039; Dessen abschließenden spitzen Klammer wird ein Schrägstrich vorangestellt &amp;#039;&amp;#039;(&amp;amp;lt;elementname /&amp;amp;gt;&amp;#039;&amp;#039;) um die Abwesenheit eines Inhaltbereiches zu signalisieren.&lt;br /&gt;
&lt;br /&gt;
Sollte das Element dahingegen &amp;#039;&amp;#039;&amp;#039;einen Inhaltsbereich&amp;#039;&amp;#039;&amp;#039; haben, wird der erste Tag durch eine einfache spitze Klammer geschossen &amp;#039;&amp;#039;(&amp;amp;lt;elementname&amp;amp;gt;&amp;#039;&amp;#039;). Danach folgt dann der eigentliche Inhalt des Elements. Nach dem Inhalt, und damit am Ende des Elements, steht in diesem Fall ein zweiter Tag, welcher wiederum einen Schrägstrich nach der einleitenden spitzen Klammer hat (&amp;#039;&amp;#039;&amp;amp;lt;/elementname&amp;amp;gt;).&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Die &amp;#039;&amp;#039;&amp;#039;Attribute&amp;#039;&amp;#039;&amp;#039; eines Elements befinden sich immer innerhalb des ersten Tags. In einem Element darf ein gewählter Attributname nur einmal vorkommen. Somit ist es beispielsweise nicht möglich einem Element „person“ mehrmals das Attribut „name“ zu zuzuweisen. die Reihenfolge der einzelnen Attribute eines Elements ist dahingegen nicht relevant und kann beliebig gewählt werden. Ein möglicher Aufbau eines Elements „person“ mit den Attributen „vorname“, „nachname“ und „ausweisnummer“ ist in Abbildung 11 dargestellt.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;person vorname=&amp;amp;quot;Peter&amp;amp;quot; nachname=&amp;amp;quot;Völkl&amp;amp;quot; ausweisnummer=&amp;amp;quot;1234567&amp;amp;quot;/&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref402865176&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 11 – XML Element „person“&lt;br /&gt;
&lt;br /&gt;
In Abbildung 12 sind weiter:&lt;br /&gt;
&lt;br /&gt;
* ein Element &amp;#039;&amp;#039;„element_1“&amp;#039;&amp;#039; ohne Inhalt und ohne Attribute,&lt;br /&gt;
* ein Element &amp;#039;&amp;#039;„element_2“&amp;#039;&amp;#039; ohne Inhalt und mit Attributen,&lt;br /&gt;
* ein Element &amp;#039;&amp;#039;„element_3“&amp;#039;&amp;#039; mit Inhalt und ohne Attributen,&lt;br /&gt;
* ein Element &amp;#039;&amp;#039;„element_4“&amp;#039;&amp;#039; mit Inhalt und mit Attribut und&lt;br /&gt;
* ein Element &amp;#039;&amp;#039;„element_5“&amp;#039;&amp;#039; mit Attributen und weiteren Elementen im Inhalt exemplarisch dargestellt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;element_1 /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;element_2 attribut_1=&amp;quot;Attributwert 1&amp;quot; attribut_2=&amp;quot;Attributwert 2&amp;quot; attribut_3=&amp;quot;Attributwert 3&amp;quot;/&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;element_3&amp;amp;gt;Dies ist ein Inhaltstext&amp;amp;lt;/element_3&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;element_4 attribut_1=&amp;quot;Wert 1&amp;quot;&amp;amp;gt;Noch ein Inhaltstext&amp;amp;lt;/element_4&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;element_5 attribut_1=&amp;quot;Attributwert 1&amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;element_1 /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;element_2 attribut1=&amp;quot;Test 1&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
attribut_2=&amp;quot;Test 2&amp;quot; attribut_3=&amp;quot;Attributwert 3&amp;quot;/&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;element_3&amp;amp;gt;Dies ist ein anderer Inhaltstext&amp;amp;lt;/element_3&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/element_5&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref402870210&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 12 – XML Elemente mit unterschiedlichen Tags&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;kommentare&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Kommentare ===&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den Deklarationen und Elementen, kann ein XML Dokument auch Kommentare enthalten. Diese können sich an jeder Position im Dokument befinden an der auch ein Element stehen dürfte, also überall außer im Attributbereich eines Tags. Sie werden bei der Interpretation des Dokuments ignoriert. Kommentare dienen primär der Lesbarkeit durch Menschen. Mit ihnen können einzelne Teile des Dokuments mit Erklärungen versehen werden, die dem Anwender bei nicht automatisierter Betrachtung helfen können, den Inhalt zu verstehen.&lt;br /&gt;
&lt;br /&gt;
Ein Kommentar ist hinlänglich seines Inhaltes kaum beschränkt. Es darf einzig keine zwei direkt zusammenhängenden Minuszeichen (--) enthalten. Sollte sich innerhalb eines Kommentars ein XML Element befinden, wird es nicht als Element, sondern als Kommentartext interpretiert. Damit können auch einzelne Teile eines Dokuments „auskommentiert“ werden, um sie bei der Interpretation zu ignorieren, ohne sie aus dem Dokument löschen zu müssen. Dies ist gerade bei der Entwicklung von Schnittstellen hilfreich, da die Musterdateien somit abgeändert werden können, ohne einzelne Inhalte zu löschen.&lt;br /&gt;
&lt;br /&gt;
Kommentare werden durch die Zeichenfolge &amp;#039;&amp;#039;&amp;amp;lt;!--&amp;#039;&amp;#039; begonnen und danach durch &amp;#039;&amp;#039;--&amp;amp;gt;&amp;#039;&amp;#039; wieder beendet. Alle Zeichen, welche sich zwischen diesen beiden Teilen befinden gelten damit als Kommentartext und nicht als XML Element.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;document-type-definitions-dtd&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Document Type Definitions (DTD) ===&lt;br /&gt;
&lt;br /&gt;
Die Document Type Definition (DTD) wird verwendet um die &amp;#039;&amp;#039;&amp;#039;Struktur eines XML Dokuments&amp;#039;&amp;#039;&amp;#039; zu definieren. Ohne eine DTD darf es auf beliebigen Elementen in beliebiger Reihenfolge mit beliebigem Inhalt und Attributen aufgebaut sein. Die DTD schränkt nun genau diese Freiheit wieder ein und definiert damit das &amp;#039;&amp;#039;&amp;#039;Metamodell des XML Dokuments&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Um, in einem XML Dokument, eine zugehörige DTD anzugeben. Wird eine eigene Deklaration verwendet, welche am Beginn des Dokumentes nach der XML Deklaration stehen muss. Sie wird mit &amp;#039;&amp;#039;&amp;amp;lt;!DOCTYPE&amp;#039;&amp;#039; eingeleitet und wiederum mit einer einfachen Spitzen Klammer abgeschlossen. Es kann auch mehrere dieser Deklarationen in einem Dokument geben.&lt;br /&gt;
&lt;br /&gt;
Innerhalb der DTD Deklaration des XML Dokuments wird zuerst der Name der Dokumentenart angegeben und danach einer der Identifier SYSTEM oder PUBLIC, sowie ihre zugehörigen Parameter.&lt;br /&gt;
&lt;br /&gt;
Der Identifier &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;SYSTEM&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; gibt an, dass es sich dabei um eine eigene Definition handelt. Der zugehörige Parameter ist hierbei der Pfad zu der Datei, welche die angegebene DTD enthält.&lt;br /&gt;
&lt;br /&gt;
Der Identifier &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;PUBLIC&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; weist auf eine allgemein standardisierte DTD hin, welche dem XML Parser bekannt sein sollte. Hier werden zwei Parameter benötigt. Der Erste gibt an, um welchen Public Identifier es sich dabei handelt und der zweite Parameter verweist optional auf eine alternative DTD Datei, welche verwendet wird falls der genannte Identifier dem Parser nicht bekannt ist.&lt;br /&gt;
&lt;br /&gt;
In Abbildung 13 ist die Deklaration einer eigenen DTD „schema.dtd“ angegeben und in Abbildung 14 die Deklaration eines XML Dokumentes als, dem System bekannten, Dokumententyp HTML.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!DOCTYPE mein_schema SYSTEM &amp;amp;quot;schema.dtd&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref402877835&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 13 – XML DOCTYPE für eigene DTD&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!DOCTYPE HTML PUBLIC &amp;amp;quot;-//W3C//DTD HTML 4.01 //EN&amp;amp;quot; &amp;amp;quot;http://www.w3.org/TR/html4/strict.dtd&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref402877870&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 14 – XML DOCTYPE für HTML&lt;br /&gt;
&lt;br /&gt;
In der DTD Datei können nun die einzelnen Elemente und die Struktur des XML Dokuments definiert werden:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Elemente&amp;#039;&amp;#039;&amp;#039; werden durch &amp;amp;lt;!ELEMENT …&amp;amp;gt; und&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Attribute&amp;#039;&amp;#039;&amp;#039; über &amp;amp;lt;!ATTLIST …&amp;amp;gt; definiert.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Element Definition &amp;amp;lt;!ELEMENT …&amp;amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Bei der Definition eines Elements wird sowohl die &amp;#039;&amp;#039;&amp;#039;Bezeichnung des Elements&amp;#039;&amp;#039;&amp;#039;, als auch sein &amp;#039;&amp;#039;&amp;#039;möglicher Inhalt&amp;#039;&amp;#039;&amp;#039; definiert. Dabei wird als erstes der Elementname und dahinter der Inhalt in Klammer angegeben.&lt;br /&gt;
&lt;br /&gt;
Der &amp;#039;&amp;#039;&amp;#039;Inhalt&amp;#039;&amp;#039;&amp;#039; kann entweder:&lt;br /&gt;
&lt;br /&gt;
* leer (Schlüsselwort &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;EMPTY&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;),&lt;br /&gt;
* beliebig (Schlüsselwort &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;ANY&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;),&lt;br /&gt;
* reiner Text (Schlüsselwort &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;#PCDATA&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;) oder&lt;br /&gt;
* weitere Elemente (Angabe des gewünschten &amp;#039;&amp;#039;&amp;#039;Elementnamen&amp;#039;&amp;#039;&amp;#039;) sein.&lt;br /&gt;
Dabei sind auch die Angaben unterschiedlicher Inhalte und Typen kombinierbar.&lt;br /&gt;
&lt;br /&gt;
Sollen mehrere Inhalte, wie beispielsweise unterschiedliche Elemente, beinhaltet sein, werden diese innerhalb der Klammer durch &amp;#039;&amp;#039;&amp;#039;Beistriche&amp;#039;&amp;#039;&amp;#039; ( &amp;#039;&amp;#039;&amp;#039;,&amp;#039;&amp;#039;&amp;#039; ) oder &amp;#039;&amp;#039;&amp;#039;Pipes&amp;#039;&amp;#039;&amp;#039; ( &amp;#039;&amp;#039;&amp;#039;|&amp;#039;&amp;#039;&amp;#039; ) getrennt.&lt;br /&gt;
&lt;br /&gt;
Dabei gibt ein &amp;#039;&amp;#039;&amp;#039;Beistrich&amp;#039;&amp;#039;&amp;#039; das Vorhandensein beider Elemente in &amp;#039;&amp;#039;&amp;#039;genau dieser Reihenfolge&amp;#039;&amp;#039;&amp;#039; und eine &amp;#039;&amp;#039;&amp;#039;Pipe&amp;#039;&amp;#039;&amp;#039; das Vorhandensein &amp;#039;&amp;#039;&amp;#039;nur&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;eines der beiden Elemente&amp;#039;&amp;#039;&amp;#039; an.&lt;br /&gt;
&lt;br /&gt;
Weiter sind auch &amp;#039;&amp;#039;&amp;#039;Verschachtelungen&amp;#039;&amp;#039;&amp;#039; dieser beiden Operatoren durch Setzen von &amp;#039;&amp;#039;&amp;#039;Klammern&amp;#039;&amp;#039;&amp;#039; zulässig.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich gibt es noch die Möglichkeit hinter jedem Element, oder Klammerausdruck, anzugeben, ob das Element:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;optional&amp;#039;&amp;#039;&amp;#039; ist (durch ein Fragezeichen: &amp;#039;&amp;#039;&amp;#039;?&amp;#039;&amp;#039;&amp;#039;),&lt;br /&gt;
* beliebig &amp;#039;&amp;#039;&amp;#039;oft aber&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;mindestens einmal&amp;#039;&amp;#039;&amp;#039; vorkommt (durch ein Pluszeichen: &amp;#039;&amp;#039;&amp;#039;+&amp;#039;&amp;#039;&amp;#039;) oder&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;beliebig oft&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;und optional&amp;#039;&amp;#039;&amp;#039; vorkommen kann (durch einen Stern: &amp;#039;&amp;#039;&amp;#039;*&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
Wird hinter einem Eintrag keine Angabe über die Häufigkeit gemacht, muss er genau einmal vorkommen.&lt;br /&gt;
&lt;br /&gt;
Im nachfolgenden Beispiel, in Abbildung 15, sind folgende Elemente definiert:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;element_1&amp;#039;&amp;#039; hat keinen Inhalt,&lt;br /&gt;
* &amp;#039;&amp;#039;element_2&amp;#039;&amp;#039; hat einen Textinhalt,&lt;br /&gt;
* &amp;#039;&amp;#039;element_3&amp;#039;&amp;#039; beinhaltet &amp;#039;&amp;#039;element_1&amp;#039;&amp;#039; und &amp;#039;&amp;#039;element_2&amp;#039;&amp;#039;,&lt;br /&gt;
* &amp;#039;&amp;#039;element_4&amp;#039;&amp;#039; beinhaltet &amp;#039;&amp;#039;element_1&amp;#039;&amp;#039; und (entweder &amp;#039;&amp;#039;element_2&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;element_3&amp;#039;&amp;#039;),&lt;br /&gt;
* &amp;#039;&amp;#039;element_5&amp;#039;&amp;#039; beinhaltet 0-n Mal &amp;#039;&amp;#039;element_1&amp;#039;&amp;#039; und 1-n Mal &amp;#039;&amp;#039;element_4&amp;#039;&amp;#039;,&lt;br /&gt;
* &amp;#039;&amp;#039;element_6&amp;#039;&amp;#039; beinhaltet optional &amp;#039;&amp;#039;element_4&amp;#039;&amp;#039;,&lt;br /&gt;
* &amp;#039;&amp;#039;element_7&amp;#039;&amp;#039; beinhaltet &amp;#039;&amp;#039;element_1&amp;#039;&amp;#039; und optional &amp;#039;&amp;#039;element_7&amp;#039;&amp;#039; und&lt;br /&gt;
* &amp;#039;&amp;#039;element_8&amp;#039;&amp;#039; beinhaltet beliebig viele &amp;#039;&amp;#039;element_1&amp;#039;&amp;#039;, &amp;#039;&amp;#039;element_2&amp;#039;&amp;#039; und &amp;#039;&amp;#039;element_3&amp;#039;&amp;#039; in beliebiger Reihenfolge.&lt;br /&gt;
Bei der Definition von verschachtelten Elementen sind auch &amp;#039;&amp;#039;&amp;#039;Rekursionen zulässig&amp;#039;&amp;#039;&amp;#039;, wie das gerade genannte Beispiel mit element_7 zeigt. Hier muss jedoch darauf geachtet werden, die Rekursion &amp;#039;&amp;#039;&amp;#039;als optional zu deklarieren&amp;#039;&amp;#039;&amp;#039; (Angabe von ?, * oder |), da die Rekursion sonst verpflichtend endlos und damit nie erfüllbar wäre.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;!ELEMENT element_1 EMPTY&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT element_2 #PCDATA&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT element_3 (element_1, element_2)&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT element_4 (element_1, (element_2 | element_3))&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT element_5 (element_1*, element_4+)&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT element_6 (element_4?)&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT element_7 (element_1, element_7?)&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT element_8 (element_1|element_2|element_3)*&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref402881692&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 15 – DTD Elemente&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Attribut Definition &amp;amp;lt;!ATTLIST …&amp;amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Um ein definiertes Element &amp;#039;&amp;#039;&amp;#039;mit Attributen auszustatten&amp;#039;&amp;#039;&amp;#039; wird mittels &amp;#039;&amp;#039;&amp;amp;lt;!ATTLIST&amp;#039;&amp;#039; eine Attributliste definiert. Dazu wird zuerst der &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; des Elements angegeben, für das die Attributliste gilt sowie danach der &amp;#039;&amp;#039;&amp;#039;Attributname&amp;#039;&amp;#039;&amp;#039; und sein &amp;#039;&amp;#039;&amp;#039;Typ,&amp;#039;&amp;#039;&amp;#039; sowie optional eine Definition von möglichen Werten und ob der Parameter verpflichtend vorkommen muss. Dabei können entweder &amp;#039;&amp;#039;&amp;#039;mehrere Attribute in einer Definition&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;oder jedes Attribut einzeln&amp;#039;&amp;#039;&amp;#039; in einer &amp;#039;&amp;#039;&amp;#039;eigenen Definition&amp;#039;&amp;#039;&amp;#039; angegeben werden.&lt;br /&gt;
&lt;br /&gt;
Mögliche Datentypen für Attribute sind:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;CDATA&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; für beliebige Zeichenketten,&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;ID&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; für einen eindeutigen Wert unter den Elementen desselben Typs innerhalb des XML Dokuments,&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;IDREF&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; für eine Referenz auf ein anderes Element desselben Typs innerhalb des Dokuments mittels Wert des ID Attributs,&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;ENTITY&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; für eine Referenz auf ein externes Element,&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;ENTITYS&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; für eine Liste von &amp;#039;&amp;#039;ENTITY‘s&amp;#039;&amp;#039;,&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;NMTOKEN&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; für einen Namen (eine Bezeichnung) des Elements innerhalb des XML Dokuments,&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;NMTOKENS&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; für eine Liste von &amp;#039;&amp;#039;NMTOKEN’s&amp;#039;&amp;#039; oder&lt;br /&gt;
* eine fest definierte &amp;#039;&amp;#039;&amp;#039;Menge möglicher Eingabewerte&amp;#039;&amp;#039;&amp;#039;, getrennt durch Pipes in der Form &amp;#039;&amp;#039;(wert1|wert2|wert2).&amp;#039;&amp;#039;&lt;br /&gt;
Zusätzlich kann hinter der Angabe des Datentyps noch:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;#REQUIRED&amp;#039;&amp;#039;&amp;#039;, für verpflichtend anzugebende Attribute,&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;#IMPLIED&amp;#039;&amp;#039;&amp;#039;, für optionale Attribute,&lt;br /&gt;
* oder ein &amp;#039;&amp;#039;&amp;#039;automatischer Standardwert&amp;#039;&amp;#039;&amp;#039; in Anführungszeichen,&lt;br /&gt;
angegeben werden.&lt;br /&gt;
&lt;br /&gt;
Eine Sonderform der Angabe des Standardwertes ist der Parameter &amp;#039;&amp;#039;&amp;#039;#FIXED&amp;#039;&amp;#039;&amp;#039;, gefolgt von einem Standardwert in Anführungszeichen. Dabei handelt es sich um einen nicht veränderbaren Standardwert bzw. einen statischen Attributwert.&lt;br /&gt;
&lt;br /&gt;
Im nachfolgenden Beispiel, in Abbildung 16, wird eine DTD für ein Element &amp;#039;&amp;#039;element_1&amp;#039;&amp;#039; mit den Attributen &amp;#039;&amp;#039;e1_id&amp;#039;&amp;#039;, welches eine eindeutige ID innerhalb des Dokuments enthält, &amp;#039;&amp;#039;e1_name&amp;#039;&amp;#039;, welches eine eindeutige Bezeichnung des Element enthält, &amp;#039;&amp;#039;e1_kommentar&amp;#039;&amp;#039;, welches einen Kommentartext enthalten soll und &amp;#039;&amp;#039;e1_wochentag&amp;#039;&amp;#039;, welches ein Wochentagkürzel enthält.&amp;lt;pre&amp;gt;&amp;amp;lt;!ELEMENT element_1 EMPTY&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST element_1 e1_id ID&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST element_1 e1_name ENTITY&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST element_1 e1_kommentar CDATA&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST element_1 e1_wochentag (MO|DI|MI|DO|FR|SA|SO)&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref403373630&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 16 – DTD Attribute&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;beispiel-eines-xml-modells&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Beispiel eines XML Modells ===&lt;br /&gt;
&lt;br /&gt;
Anforderungsbeschreibung:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;„Eine Bank gliedert sich in Filialen. Filialen werden an ihrem Namen unterschieden, sind in einer Stadt beheimatet und weisen ein Vermögen aus. Jede Filiale verwaltet ihre eigenen Konten und Kredite, die über Nummern identifiziert werden. Jedes Konto und jeder Kredit besitzt eine eindeutige Nummer und weist einen Kontostand (bei Konto) bzw. einen Betrag (bei Krediten) auf. Kunden wiederum besitzen Konten und haben auch Kredite laufen, wobei jedes Konto wie auch jeder Kredit genau einem oder mehreren Kunden zugeordnet wird. Kunden haben einen eindeutigen Namen und wohnen in einer Straße in einer Stadt.“&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Die Anforderungsbeschreibung gleicht der des Beispiels eines ER Modells in Punkt 2.1.2. In diesem Fall soll jedoch kein Datenbankmodell, sondern ein Modell für ein Dateibasiertes XML Dokument für den Datenaustausch erstellt werden. Eine mögliche Modellierung dieser Anforderungsbeschreibung als DTD findet sich in Abbildung 17 und ein mögliches darauf basierendes XML Dokument in Abbildung 18. Dabei wurde aus Sicht der Filialen ausgegangen. Eine Betrachtung aus Sicht des Kontos, Kredites oder aus Sicht des Kunden wäre ebenfalls möglich. Dies hängt natürlich stark vom beabsichtigten Modellierungszweck ab. Als Wurzelelement dient das Element Filialliste, welches 0-n Filialen enthalten darf.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;!ELEMENT filialliste (filiale*)&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT filiale (kredit*, konto*)&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST filiale filialname ID&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST filiale stadt CDATA&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST filiale vermoegen CDATA&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT kredit (kunde)&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST kredit nummer ID&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST kredit betrag CDATA&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT konto (kunde)&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST konto nummer ID&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST konto kontostand CDATA&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT kunde EMPTY&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST kunde name ID&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST kunde strasse CDATA&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST kunde stadt CDATA&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref403048292&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 17 – Beispiel „Bank“: XML-Modell, DTD Datei&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!DOCTYPE bank SYSTEM &amp;amp;quot;bank.dtd&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;filialliste&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;filiale filialname=&amp;amp;quot;Meine Bank&amp;amp;quot; stadt=&amp;amp;quot;Wien&amp;amp;quot; vermoegen=&amp;amp;quot;5 mrd eur&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;kredit nummer=&amp;amp;quot;100&amp;amp;quot; betrag=&amp;amp;quot;200000 eur&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;kunde name=&amp;amp;quot;Max Muster&amp;amp;quot; strasse=&amp;amp;quot;Musterplatz 1&amp;amp;quot; stadt=&amp;amp;quot;Wien&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/kredit&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;kredit nummer=&amp;amp;quot;101&amp;amp;quot; betrag=&amp;amp;quot;10000 eur&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;kunde name=&amp;amp;quot;Maria Muster&amp;amp;quot; strasse=&amp;amp;quot;Mustergasse 3&amp;amp;quot; stadt=&amp;amp;quot;Wien&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/kredit&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/filiale&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;filiale filialname=&amp;amp;quot;Deine Bank&amp;amp;quot; stadt=&amp;amp;quot;Wien&amp;amp;quot; vermoegen=&amp;amp;quot;1 mrd eur&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;konto nummer=&amp;amp;quot;200&amp;amp;quot; kontostand=&amp;amp;quot;3000 eur&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;kunde name=&amp;amp;quot;Hans Meier&amp;amp;quot; strasse=&amp;amp;quot;Mustergasse 1&amp;amp;quot; stadt=&amp;amp;quot;Graz&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/konto&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/filiale&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;filiale filialname=&amp;amp;quot;Seine Bank&amp;amp;quot; stadt=&amp;amp;quot;Wien&amp;amp;quot; vermoegen=&amp;amp;quot;2 mrd eur&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/filiale&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/filialliste&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref403048379&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 18 – Beispiel „Bank“: XML-Modell, XML Datei&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;javascript-object-notation-json&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== JavaScript Object Notation (JSON) ==&lt;br /&gt;
&lt;br /&gt;
Die JavaScript Object Notation (JSON) wurde ursprünglich zur Speicherung und Übertragung von Datenstrukturen in JavaScript entwickelt. Es handelt sich dabei um ein reines Textformat, welches, ähnlich wie in XML, durch die Vorgabe einer klaren Struktur, eine einheitliche Abbildung von Daten ermöglicht. JSON ist in der RFC 4627 definiert und ist wiederum Teil des ECMAScript Programming Standards, welcher wiederum die wesentlichen Objekt Literale von JavaScrip definiert. (RFC Network Working Group, 2006)&lt;br /&gt;
&lt;br /&gt;
Genau wie in XML, zeichnet sich JSON durch seine Menschenlesbarkeit und die Vielzahl verfügbarer Implementierungen in allen gängigen Programmiersprachen aus. JSON ist somit nicht auf JavaScript beschränkt, hat dort jedoch seinen eigentlichen Ursprung. Damit ist auch hier eine schnelle und einfache Implementierung von Nahtstellen zwischen unterschiedlichen Anwendungen möglich. Da die Syntax in JSON wesentlich kompakter geschrieben wird, als in XML, wird es häufig für die Datenübertragungen in Webservices, wie beispielsweise Services mit REST Schnittstellen (Fielding, 2000), eingesetzt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;aufbau-eines-json-dokuments&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Aufbau eines JSON Dokuments ===&lt;br /&gt;
&lt;br /&gt;
Die &amp;#039;&amp;#039;&amp;#039;Elemente&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;Attribute&amp;#039;&amp;#039;&amp;#039; sind in JSON werden als &amp;#039;&amp;#039;&amp;#039;Objekte&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;Key-Values&amp;#039;&amp;#039;&amp;#039; bezeichnet. Jede Struktur ist über Objekte Abgebildet, welche selbst wiederum beliebig Objekte enthalten können. Ähnlich wie in XML muss in der obersten Hierarchiestufe ein einzelnes Objekt stehen. Die gemeinsame Verschachtelung von Objekten geschieht über &amp;#039;&amp;#039;&amp;#039;Arrays&amp;#039;&amp;#039;&amp;#039; Struktur.&lt;br /&gt;
&lt;br /&gt;
Die möglichen &amp;#039;&amp;#039;&amp;#039;Datentypen&amp;#039;&amp;#039;&amp;#039; der einzelnen Objekte sind:&lt;br /&gt;
&lt;br /&gt;
* String,&lt;br /&gt;
* Number,&lt;br /&gt;
* Boolean und&lt;br /&gt;
* null.&lt;br /&gt;
Sie müssen jedoch nicht eigens deklariert werden, sondern ergeben sich durch ihre Schreibweise innerhalb der Datei. &amp;#039;&amp;#039;Strings&amp;#039;&amp;#039; werden mit umschließenden Anführungszeichen geschrieben, &amp;#039;&amp;#039;Numbers&amp;#039;&amp;#039; in Zahlenschreibweise ohne Anführungszeichen und &amp;#039;&amp;#039;Booleans&amp;#039;&amp;#039; direkt als Werte &amp;#039;&amp;#039;true&amp;#039;&amp;#039; und &amp;#039;&amp;#039;false&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Objekte werden durch geschwungene Klammern ( &amp;#039;&amp;#039;&amp;#039;{&amp;#039;&amp;#039;&amp;#039; , &amp;#039;&amp;#039;&amp;#039;}&amp;#039;&amp;#039;&amp;#039; ) deklariert. Sie können beliebig viele Key-Values enthalten. Nach dem Namen einer Key-Value steht immer ein Doppelpunkt, gefolgt von ihrem enthaltenen Wert, welcher wiederum ein eigenes Objekt sein kann. Die einzelnen Key-Values werden durch Beistriche getrennt. Ein Wert kann auch ein Array aus Werten sein. Es wird durch eckige Klammern ( &amp;#039;&amp;#039;&amp;#039;[&amp;#039;&amp;#039;&amp;#039; , &amp;#039;&amp;#039;&amp;#039;]&amp;#039;&amp;#039;&amp;#039; ) deklariert und enthält beliebig viele, durch Beistriche getrennte, Werte.&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zu XML gibt es in JSON Dateien &amp;#039;&amp;#039;&amp;#039;keine Kommentare&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Der Text der JSON Dokumente soll laut Spezifikation (RFC Network Working Group, 2006) Unicode kodiert sein, wobei standardmäßig UTF-8 verwendet wird. Der verwendete Zeichensatz des Dokuments wird vom Parser über seine ersten beiden Zeichen erkannt. Es werden dazu die, in ihrer binären Form, enthaltenen Nullen betrachtet:&lt;br /&gt;
&lt;br /&gt;
* 00 00 00 xx ergibt UTF-32BE  &amp;lt;ref&amp;gt;Die Zusätze &amp;#039;&amp;#039;BE&amp;#039;&amp;#039; und &amp;#039;&amp;#039;LE&amp;#039;&amp;#039; steht für &amp;#039;&amp;#039;Big Endian&amp;#039;&amp;#039; und &amp;#039;&amp;#039;Little Endian&amp;#039;&amp;#039; und beziehen sich auf die Reihenfolge in der die einzelnen Bits des Zeichens gespeichert werden. Somit steht das erste Bit des Zeichens entweder links (LE) oder rechts (BE) in der binären Abbildung.&amp;lt;/ref&amp;gt;  ,&lt;br /&gt;
* 00 xx 00 xx ergibt UTF-16BE,&lt;br /&gt;
* xx 00 00 00 ergibt UTF-32LE,&lt;br /&gt;
* xx 00 xx 00 ergibt UTF-16LE und&lt;br /&gt;
* xx xx xx xx ergibt UTF-8.&lt;br /&gt;
In Abbildung 19 ist ein JSON Objekt für eine Person definiert, welches Key-Values für einen Vornamen, einen Nachnamen und eine Ausweisnummer enthält. Weiter hat die Person ein Array mit Objekten, welche je einen Schlüssel der Person mit der jeweiligen Raumnummer abbilden.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&amp;amp;quot;vorname&amp;amp;quot; : &amp;amp;quot;Peter&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;nachname&amp;amp;quot; : &amp;amp;quot;Völkl&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;ausweisnummer&amp;amp;quot; : 1234567,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;schluessel&amp;amp;quot; : [{&amp;amp;quot;raumnummer&amp;amp;quot; : 22},{&amp;amp;quot;raumnummer&amp;amp;quot; : 33}]&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref403379545&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 19 – Beispiel JSON Objekt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;json-schema&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== JSON Schema ===&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zu XML gibt es bei JSON Daten keine standardisierte Möglichkeit eine eigene, formale, Definition zu erstellen, gegen welche die Struktur automatisiert geprüft werden kann. Eine entsprechende Standardisierung, das JSON Schema, befindet sich derzeit in Ausarbeitung und liegt bereits im Entwurfsstadium vor. Es kann jedoch aktuell nicht davon ausgegangen werden, dass diese unfertige Standardisierung mit jedem Parser eingesetzt werden kann. (Galiegue, 2013)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;beispiel-eines-json-modells&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Beispiel eines JSON Modells ===&lt;br /&gt;
&lt;br /&gt;
Anforderungsbeschreibung:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;„Eine Bank gliedert sich in Filialen. Filialen werden an ihrem Namen unterschieden, sind in einer Stadt beheimatet und weisen ein Vermögen aus. Jede Filiale verwaltet ihre eigenen Konten und Kredite, die über Nummern identifiziert werden. Jedes Konto und jeder Kredit besitzt eine eindeutige Nummer und weist einen Kontostand (bei Konto) bzw. einen Betrag (bei Krediten) auf. Kunden wiederum besitzen Konten und haben auch Kredite laufen, wobei jedes Konto wie auch jeder Kredit genau einem oder mehreren Kunden zugeordnet wird. Kunden haben einen eindeutigen Namen und wohnen in einer Straße in einer Stadt.“&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Die Anforderungsbeschreibung gleicht der des Beispiels des ER Modells in Punkt 2.1.2 und des XML Modells in Punkt 2.2.5. Die JSON Struktur könnte beispielsweise dem Austausch von Filialdaten über ein Webservice dienen. Eine mögliche Modellierung dieser Anforderungsbeschreibung findet sich nachfolgend in Abbildung 17. Dabei wurde ebenfalls wieder aus Sicht der Filialen ausgegangen. Eine Betrachtung aus Sicht des Kontos, Kredites oder aus Sicht des Kunden wäre ebenfalls möglich. Dies hängt natürlich stark vom beabsichtigten Modellierungszweck ab. Als Wurzelelement dient das Element Filialliste, welches 0-n Filialen enthalten darf. Die, in dem Beispiel enthaltenen, Einrückungen dienen der besseren Lesbarkeit und nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&amp;amp;quot;filialliste&amp;amp;quot; : [ {&amp;amp;quot;filialname“ : &amp;amp;quot;Meine Bank&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;stadt&amp;amp;quot; : &amp;amp;quot;Wien&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;vermoegen&amp;amp;quot; : &amp;amp;quot;5 mrd eur&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;kredite&amp;amp;quot; : [ {&amp;amp;quot;nummer&amp;amp;quot; : &amp;amp;quot;100&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;betrag&amp;amp;quot; : &amp;amp;quot;20000 eur&amp;amp;quot;},&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;kunde&amp;amp;quot; : {&amp;amp;quot;name&amp;amp;quot; : &amp;amp;quot;Max Muster&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;strasse&amp;amp;quot; : &amp;amp;quot;Musterplatz 1&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;stadt&amp;amp;quot; : &amp;amp;quot;Wien&amp;amp;quot;}&lt;br /&gt;
&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
{&amp;amp;quot;nummer&amp;amp;quot; : &amp;amp;quot;101&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;betrag&amp;amp;quot; : &amp;amp;quot;10000 eur&amp;amp;quot;},&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;kunde&amp;amp;quot; : {&amp;amp;quot;name&amp;amp;quot; : &amp;amp;quot;Maria Muster&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;strasse&amp;amp;quot; : &amp;amp;quot;Mustergasse 3&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;stadt&amp;amp;quot; : &amp;amp;quot;Wien&amp;amp;quot;}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
],&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;konten&amp;amp;quot; : []&lt;br /&gt;
&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
{&amp;amp;quot;filialname“ : &amp;amp;quot;Deine Bank&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;stadt&amp;amp;quot; : &amp;amp;quot;Wien&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;vermoegen&amp;amp;quot; : &amp;amp;quot;1 mrd eur&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;kredite&amp;amp;quot; : [],&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;konten&amp;amp;quot; : [ {&amp;amp;quot;nummer&amp;amp;quot; : &amp;amp;quot;200&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;betrag&amp;amp;quot; : &amp;amp;quot;3000 eur&amp;amp;quot;},&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;kunde&amp;amp;quot; : {&amp;amp;quot;name&amp;amp;quot; : &amp;amp;quot;Hans Meier&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;strasse&amp;amp;quot; : &amp;amp;quot;Mustergasse 1&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;stadt&amp;amp;quot; : &amp;amp;quot;Graz&amp;amp;quot;}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
},&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Toc408237669&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 20 – Beispiel „Bank“: JSON-Modell, Teil 1/2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&amp;amp;quot;filialname“ : &amp;amp;quot;Seine Bank&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;stadt&amp;amp;quot; : &amp;amp;quot;Wien&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;vermoegen&amp;amp;quot; : &amp;amp;quot;2 mrd eur&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;kredite&amp;amp;quot; : [],&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;konten&amp;amp;quot; : []&lt;br /&gt;
&lt;br /&gt;
} ]&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Toc408237670&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 21 – Beispiel „Bank“: JSON-Modell, Teil 2/2&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Grundlagen_der_Modellierung_-_Datenmodellierung&amp;diff=4395</id>
		<title>Grundlagen der Modellierung - Datenmodellierung</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Grundlagen_der_Modellierung_-_Datenmodellierung&amp;diff=4395"/>
		<updated>2022-11-02T11:53:55Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;datenmodellierung&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Datenmodellierung =&lt;br /&gt;
&lt;br /&gt;
Bei der Datenmodellierung geht es um die zweckmäßige und effiziente Strukturierung von Daten in Informationssystemen. Die Modelle behandeln unterschiedliche Arten von Speicheranwendungen. Beispielsweise ist das ER-Modell im Bereich der Datenbanksysteme beheimatet, XML und JSON dahingegen im Bereich der Nahtstellen und Datenstrukturen innerhalb und zwischen einzelnen Systemen auf Dateiebene.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;entity-relationship-modell-er-modell&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Entity-Relationship Modell (ER-Modell) ==&lt;br /&gt;
&lt;br /&gt;
Das Entity-Relationship Modell (ER-Modell) wurde bereits im vorherigen Semester, im Studienheft „Datenbanksysteme“ (Schikuta, E.), genau erläutert. Nachfolgend werden nun die wesentlichen Punkte dieses Skriptums nochmals auszugsweise wiederholt.&lt;br /&gt;
&lt;br /&gt;
Das &amp;#039;&amp;#039;&amp;#039;Entity-Relationship-Modell (ER-Modell)&amp;#039;&amp;#039;&amp;#039; ist eines der ältesten (Chen, 1976) und am weitesten verbreiteten Modelle zum Entwurf von Datenbankmodellen und wird auch gerne im Bereich der allgemeinen Software Entwicklung eingesetzt. Durch seine besonders einfachen Darstellungsmöglichkeiten ist es sehr gut für die Kommunikation mit den Endbenutzern geeignet.&lt;br /&gt;
&lt;br /&gt;
Die Grundidee des Entity-Relationship-Modells (Objekt-Beziehungs-Modell) besteht darin, die Welt als Sammlung von &amp;#039;&amp;#039;&amp;#039;Entitäten (Entity&amp;#039;&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;&amp;#039;Objekttypen&amp;#039;&amp;#039;&amp;#039;) und &amp;#039;&amp;#039;&amp;#039;Beziehungen&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;Relationship&amp;#039;&amp;#039;&amp;#039;) zwischen diesen Objekttypen zu sehen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;modellierungsobjekte-des-er-modells&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Modellierungsobjekte des ER-Modells ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;entitäten&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Entitäten ====&lt;br /&gt;
&lt;br /&gt;
Ein Objekt wird &amp;#039;&amp;#039;&amp;#039;Entität-Instanz&amp;#039;&amp;#039;&amp;#039; genannt. Entität-Instanzen sind dabei einzelne Exemplare von Dingen oder Begriffen. Dies können beispielsweise sein:&lt;br /&gt;
&lt;br /&gt;
* Personen: der Kunde, Lieferant, Mitarbeiter etc.&lt;br /&gt;
* Gegenstände: Handelsware, Rohstoff, Maschine etc.&lt;br /&gt;
* Abstrakte Begriffe: Konto, Buchung, Bestellung etc.&lt;br /&gt;
Entität-Instanzen mit gleichen Eigenschaften lassen sich zu Entitäten (Objekttypen) zusammenfassen, z.B. Kunden, Bestellungen etc. Die Eigenschaften einer Entität-Instanz werden durch &amp;#039;&amp;#039;&amp;#039;Attribute&amp;#039;&amp;#039;&amp;#039; beschrieben, z.B. Name, Baujahr, Preis, Bestellnummer.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Im ER – Modell bezeichnet der Begriff Entität immer eine Klasse (Typ) von Instanzen, nicht eine Instanz!&lt;br /&gt;
&lt;br /&gt;
Zwischen zwei, aber auch mehr, Entitäten können Beziehungen bestehen, z.B. „Kunde bestellt Maschine“. Die Beziehung wird dabei durch die Rolle der an ihr beteiligten Entitäten beschrieben. Die Beziehungen können zwischen Entitäten gleichen Typs oder zwischen Entitäten verschiedenen Typs bestehen.&lt;br /&gt;
&lt;br /&gt;
Die wichtigsten Symbole in der grafischen Notation des ER-Modells werden in Abbildung 2 dargestellt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wiba mt233 201607 a.007.png|300px|none|thumb|Grafische Notation im ER-Modell]]&lt;br /&gt;
&lt;br /&gt;
Attribute können auch Beziehungen zugeordnet werden (siehe Abbildung 3). Hier ist bei der Modellierung zu entscheiden, ob dieses Beziehungsattribut nicht einer der beiden Entitäten zugeordnet werden kann oder soll.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wiba mt233 201607 a.008.png|300px|none|thumb|Beispiel Beziehungsattribut]]&lt;br /&gt;
&lt;br /&gt;
Eine minimale Menge von Attributen, deren Werte die zugeordnete Entität-Instanz eindeutig innerhalb aller Instanzen seines Objekttyps identifiziert, nennt man &amp;#039;&amp;#039;&amp;#039;Schlüssel&amp;#039;&amp;#039;&amp;#039;. Oft gibt es Attribute, die künstlich als Schlüssel eingebaut werden, z.B. Personalnummer, Vorlesungsnummer, …&lt;br /&gt;
&lt;br /&gt;
Schlüsselattribute werden durch Unterstreichen (manchmal auch durch doppelt gezeichnete Ovale) gekennzeichnet (siehe Abbildung 4).&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wiba mt233 201607 a.009.png|300px|none|thumb|Beispiel Schlüsselattribut]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;beziehungen&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Beziehungen ====&lt;br /&gt;
&lt;br /&gt;
Beziehungen repräsentieren eigentlich Aggregate von zwei oder mehreren an der Beziehung teilnehmenden Entitäten. Die Anzahl der aggregierten Entitäten heißt &amp;#039;&amp;#039;&amp;#039;Grad&amp;#039;&amp;#039;&amp;#039; der Beziehung (unäre, binäre, n-äre Beziehung). Entitäten haben in einer Beziehung eine minimale und eine maximale &amp;#039;&amp;#039;&amp;#039;Kardinalität&amp;#039;&amp;#039;&amp;#039; bzw. Komplexität.&lt;br /&gt;
&lt;br /&gt;
Die Beziehungen können vom Typ &amp;#039;&amp;#039;&amp;#039;1:1&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;1:n&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;n:1&amp;#039;&amp;#039;&amp;#039;, oder &amp;#039;&amp;#039;&amp;#039;m:n&amp;#039;&amp;#039;&amp;#039; sein. Entsprechende Beispiele für die einzelnen Kardinalitäten findet man in Abbildung 5:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wiba mt233 201607 a.010.png|300px|none|thumb|Beispiele Kardinalitäten]]&lt;br /&gt;
&lt;br /&gt;
Diese Kardinalitäten können folgendermaßen interpretiert werden:&lt;br /&gt;
&lt;br /&gt;
* 1:1 – ein Ehemann hat genau eine Ehefrau (normalerweise), und umgekehrt.&lt;br /&gt;
* 1:n – ein Kunde besitzt mehrere Konten, aber jedes Konto gehört genau einem Kunden.&lt;br /&gt;
* m:n – Ein Kunde kann mehrere Artikel kaufen und jeder Artikel kann von mehreren Kunden gekauft werden.&lt;br /&gt;
Bei der Angabe der Kardinalitäten ist es auch möglich Intervalle durch Angabe der minimalen und maximalen Kardinalität zu definieren. In Abbildung 6 ist sowohl eine n:m und eine n:1 Beziehung definiert, wobei das Maximum der Kardinalität die Beziehungsmultiplizität definiert.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wiba mt233 201607 a.011.png|300px|none|thumb|Beispiel Kardinalitäten mit Intervallen]]&lt;br /&gt;
&lt;br /&gt;
Im obigen Beispiel sieht man, dass es ohne weiters möglich ist, auch mehr als eine Beziehung zwischen Entitäten zu definieren. Im spezifischen Fall sind dies zwei binäre Beziehungen.&lt;br /&gt;
&lt;br /&gt;
In manchen Fällen ist es notwendig auch n-äre Beziehungen zu modellieren. In der Abbildung 7 ist eine ternäre Beziehung dargestellt und die entsprechende Interpretation der Kardinalitäten angegeben.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wiba mt233 201607 a.012.png|300px|none|thumb|Beispiel ternäre Beziehung]]&lt;br /&gt;
&lt;br /&gt;
Es ist aber empfohlen n-äre Beziehungen nur in wirklich begründeten Fällen zu modellieren.&lt;br /&gt;
&lt;br /&gt;
Unter einer &amp;#039;&amp;#039;&amp;#039;schwachen Entität&amp;#039;&amp;#039;&amp;#039; versteht man eine Entität, die kein Schlüsselattribut besitzt (d.h. wo die Instanzen nicht eindeutig unterschieden werden können). Solche Instanzen können nur über eine Beziehung zu einer anderen Entität eindeutig identifiziert werden. Schwache Entitäten werden grafisch durch einen doppelten Rand gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
Im nachfolgenden Beispiel Abbildung 8 ergibt sich die schwache Entität dadurch, dass ein Hörsaal durch seine Nummer, Größe und seinen Typ nicht eindeutig auf einem Universitätscampus identifiziert werden kann, auf dem es eine Vielzahl von Gebäuden mit jeweils mehreren Hörsälen gibt, die in jedem Gebäude von der Nummer 1 an gezählt werden. Das bedeutet es gibt in jedem Gebäude einen Hörsaal mit der Nummer 1. Erst mit der Angabe des Gebäudes (identifying owner) kann dadurch jeder Hörsaal eindeutig identifiziert werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wiba mt233 201607 a.013.png|300px|none|thumb|Beispiel Schwache Entität]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;beispiel-eines-er-modells&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Beispiel eines ER-Modells ===&lt;br /&gt;
&lt;br /&gt;
Im abschließenden (vereinfachten) Beispiel dieser Lektion wollen wir, basierend auf einem gegebenen Ausschnitt der Realität einer „Bank“, eine Modellierung mit Hilfe des ER-Modells durchführen.&lt;br /&gt;
&lt;br /&gt;
Ausgangsposition für unseren Ansatz bildet eine Anforderungsbeschreibung in natürlichsprachiger Form. Es wird angenommen, dass sich diese Beschreibung aus den Interviews mit den Benutzern bzw. Auftragsgebern ergeben hat. Eine in der Praxis simple, aber übliche Vorgangsweise, um Entitätskandidaten zu erhalten, ist alle Hauptworte im Text zu identifizieren und als ersten Ansatz für Entitäten zu verwenden. Dieses Verfahren wird in der CRC-Methode vertieft (siehe die Aufgaben zu dieser Lektion).&lt;br /&gt;
&lt;br /&gt;
Anforderungsbeschreibung:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;„Eine Bank gliedert sich in Filialen. Filialen werden an ihrem Namen unterschieden, sind in einer Stadt beheimatet und weisen ein Vermögen aus. Jede Filiale verwaltet ihre eigenen Konten und Kredite, die über Nummern identifiziert werden. Jedes Konto und jeder Kredit besitzt eine eindeutige Nummer und weist einen Kontostand (bei Konto) bzw. einen Betrag (bei Krediten) auf. Kunden wiederum besitzen Konten und haben auch Kredite laufen, wobei jedes Konto wie auch jeder Kredit genau einem oder mehreren Kunden zugeordnet wird. Kunden haben einen eindeutigen Namen und wohnen in einer Straße in einer Stadt.“&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Eine mögliche Modellierung dieser Anforderungsbeschreibung als ER-Modell findet man in Abbildung 9.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wiba mt233 201607 a.014.png|300px|none|thumb|Beispiel „Bank“: ER-Modell]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;extensible-markup-language-xml&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Extensible Markup Language (XML) ==&lt;br /&gt;
&lt;br /&gt;
Die Extensible Markup Language (XML) ist ein Standard für den Aufbau von Dateidokumenten. Sie wurde vom World Wide Web Consortium (W3C) entwickelt. Es handelt sich dabei um eine sehr flexible Modellierungsform für Textformate welche wiederum von der Standard Generalized Markup Language (SGML, ISO8879) abgeleitet wurde. (World Wide Web Consortium (W3C), 2014)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;XML ist eine Markup-Sprache, und es ist nur eine Markup-Sprache. […] Der XML-Hype ist so extrem geworden, dass viele Leute glauben, XML könne sogar Kaffee kochen der den Familienhund waschen.&amp;#039;&amp;#039; (Harold &amp;amp;amp; Means, 2005, S. 5)&lt;br /&gt;
&lt;br /&gt;
Die Designziele von XML selbst sind (World Wide Web Consortium (W3C), 2008):&lt;br /&gt;
&lt;br /&gt;
* XML soll direkt und unkompliziert über das Internet nutzbar sein,&lt;br /&gt;
* XML soll eine große Anzahl unterschiedlicher Applikationen unterstützen,&lt;br /&gt;
* XML soll mit SGML kompatibel sein,&lt;br /&gt;
* eine Programmierung von Anwendungen, welche XML Dokumente verarbeiten können, soll einfach möglich sein,&lt;br /&gt;
* die Anzahl von optionalen Features soll in XML so gering wie möglich gehalten werden und optimal Null sein,&lt;br /&gt;
* XML Dokumente sollen menschenlesbar und leicht verständlich sein,&lt;br /&gt;
* die Modellierung von XML Dokumenten soll schnell erstellt werden können,&lt;br /&gt;
* das Design von XML Dokumenten soll formal und präzise sein,&lt;br /&gt;
* die Erstellung von XML Dokumenten soll einfach sein und&lt;br /&gt;
* die Kürze und Kompaktheit der XML Elemente ist von geringer Bedeutung.&lt;br /&gt;
Der Hauptvorteil bei XML liegt, im Gegensatz zu eigen entwickelten Dateistrukturmodellen, in der schnellen und einheitlichen Verarbeitbarkeit für den Entwickler. In nahezu jeder gängigen Programmiersprache existieren bereits fertige Parser, welche die Generierung und Verarbeitung der Datenstrukturen, ohne größeren Programmieraufwand, ermöglichen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;aufbau-eines-xml-dokuments&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Aufbau eines XML Dokuments ===&lt;br /&gt;
&lt;br /&gt;
Jedes XML Dokument beinhaltet &amp;#039;&amp;#039;&amp;#039;ein einziges&amp;#039;&amp;#039;&amp;#039; XML &amp;#039;&amp;#039;&amp;#039;Wurzel-Element&amp;#039;&amp;#039;&amp;#039;, welches selbst jeweils wiederum beliebig viele weitere &amp;#039;&amp;#039;&amp;#039;Elemente&amp;#039;&amp;#039;&amp;#039; beinhalten kann. Alle Elemente dürfen wiederum beliebig viele weitere Elemente enthalten. Zusätzlich kann das Dokument &amp;#039;&amp;#039;&amp;#039;XML Deklarationen&amp;#039;&amp;#039;&amp;#039;, auch bezeichnet als Processing Instructions (PI), und beliebig viele &amp;#039;&amp;#039;&amp;#039;Kommentare&amp;#039;&amp;#039;&amp;#039; enthalten. Die Zeichenkodierung der Dokumente darf &amp;#039;&amp;#039;&amp;#039;alle Unicodezeichen&amp;#039;&amp;#039;&amp;#039; enthalten, wobei jedes XML verarbeitende Programm zumindest die Kodierungen UTF-8 und UTF-16 akzeptieren muss. Alle Bezeichnungen eines Dokuments, seien es die von Elementen oder Attributen, sind &amp;#039;&amp;#039;&amp;#039;Case Sensitive&amp;#039;&amp;#039;&amp;#039;. Da es sich dabei um ein einfaches Textdokument handelt, kann es auch von allen Texteditoren und Internetbrowsern, ohne weitere Hilfsmittel und Plugins, angezeigt werden. (World Wide Web Consortium (W3C), 2008)&lt;br /&gt;
&lt;br /&gt;
Vom Aufbau sehen sich XML und HTML (Hypertext Markup Language) Dokumente sehr ähnlich. Sie unterscheiden sich jedoch darin, dass die Art und teilweise die Anzahl der Elemente in HTML fest vorgegeben, in XML jedoch alle Elemente frei modellierbar, sind. Das Metamodell der zu verwendeten Elemente eines XML Dokuments kann somit vom Modellierer selbst festgelegt werden. HTML dient der Modellierung von Webseitendokumenten und hat fest vorgegebene Strukturen und Elemente um eine einheitliche grafische Verarbeitung durch die Internetbrowser zu ermöglichen. Das Design der Elemente selbst ist jedoch in beiden Fällen sehr restriktiv vorgegeben.&lt;br /&gt;
&lt;br /&gt;
Die &amp;#039;&amp;#039;&amp;#039;XML Deklaration&amp;#039;&amp;#039;&amp;#039; gibt die eingesetzte XML Version, und optional das Encoding, an. Dadurch wird den verarbeitenden Programmen die Verarbeitung erleichtert. Gerade die Angabe des Encodings kann viele Verarbeitungsprobleme im Vorfeld abfangen, da der Parser damit die eingesetzten Zeichen kennt und sie korrekt interpretieren kann. Nachfolgend ist in Abbildung 10 ein minimales XML Dokument dargestellt, welches nur eine XML Deklaration und ein einzelnes XML Element, namens „mein_wurzel_element“, ohne weitere Attribute und ohne Wert, beinhaltet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mein_wurzel_element /&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref402861975&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 10 – Minimales XML Dokument&lt;br /&gt;
&lt;br /&gt;
Da einige Zeichen in der XML Syntax eine spezielle Bedeutung haben, müssen sie im Text nötigenfalls in einer anderen Form geschrieben werden, um sie innerhalb von XML Elementen nutzen zu können:&lt;br /&gt;
&lt;br /&gt;
* &amp;amp;lt; wird zu &amp;#039;&amp;#039;&amp;amp;amp;lt;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;amp;gt; wird zu &amp;#039;&amp;#039;&amp;amp;amp;gt;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;amp;quot; wird zu &amp;#039;&amp;#039;&amp;amp;amp;quot;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039; wird zu &amp;#039;&amp;#039;&amp;amp;amp;apos;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;amp;amp; wird zu &amp;#039;&amp;#039;&amp;amp;amp;amp;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;xml-elemente&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== XML-Elemente ===&lt;br /&gt;
&lt;br /&gt;
Die einzelnen XML Elemente sind alle nach demselben Schema aufgebaut. Sie haben eine &amp;#039;&amp;#039;&amp;#039;Elementbezeichnung&amp;#039;&amp;#039;&amp;#039; und können &amp;#039;&amp;#039;&amp;#039;beliebig viele Attribute&amp;#039;&amp;#039;&amp;#039; enthalten. Weiter können sie selbst einen &amp;#039;&amp;#039;&amp;#039;Inhalt&amp;#039;&amp;#039;&amp;#039; haben, welcher wiederum aus Elementen bestehen kann.&lt;br /&gt;
&lt;br /&gt;
Ein Element besteht aus einem oder zwei sogenannten Tags. Ein &amp;#039;&amp;#039;&amp;#039;Tag&amp;#039;&amp;#039;&amp;#039; wird durch &amp;#039;&amp;#039;&amp;#039;spitze Klammern (&amp;amp;lt;,&amp;amp;gt;)&amp;#039;&amp;#039;&amp;#039; an seinem Beginn und Ende ausgezeichnet. Ob ein Element aus &amp;#039;&amp;#039;&amp;#039;einem oder zwei Tags&amp;#039;&amp;#039;&amp;#039; besteht, hängt davon ab, &amp;#039;&amp;#039;&amp;#039;ob es selbst einen eigenen Inhalt&amp;#039;&amp;#039;&amp;#039; besitzt, oder nicht. Der Inhalt kann aus Text oder weiteren Elementen bestehen. Am &amp;#039;&amp;#039;&amp;#039;Beginn&amp;#039;&amp;#039;&amp;#039; jedes Tags steht der &amp;#039;&amp;#039;&amp;#039;Name des Elements&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Hat ein Element &amp;#039;&amp;#039;&amp;#039;keinen&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;Inhaltsbereich&amp;#039;&amp;#039;&amp;#039;, besteht es aus nur &amp;#039;&amp;#039;&amp;#039;einen einzigen Tag.&amp;#039;&amp;#039;&amp;#039; Dessen abschließenden spitzen Klammer wird ein Schrägstrich vorangestellt &amp;#039;&amp;#039;(&amp;amp;lt;elementname /&amp;amp;gt;&amp;#039;&amp;#039;) um die Abwesenheit eines Inhaltbereiches zu signalisieren.&lt;br /&gt;
&lt;br /&gt;
Sollte das Element dahingegen &amp;#039;&amp;#039;&amp;#039;einen Inhaltsbereich&amp;#039;&amp;#039;&amp;#039; haben, wird der erste Tag durch eine einfache spitze Klammer geschossen &amp;#039;&amp;#039;(&amp;amp;lt;elementname&amp;amp;gt;&amp;#039;&amp;#039;). Danach folgt dann der eigentliche Inhalt des Elements. Nach dem Inhalt, und damit am Ende des Elements, steht in diesem Fall ein zweiter Tag, welcher wiederum einen Schrägstrich nach der einleitenden spitzen Klammer hat (&amp;#039;&amp;#039;&amp;amp;lt;/elementname&amp;amp;gt;).&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Die &amp;#039;&amp;#039;&amp;#039;Attribute&amp;#039;&amp;#039;&amp;#039; eines Elements befinden sich immer innerhalb des ersten Tags. In einem Element darf ein gewählter Attributname nur einmal vorkommen. Somit ist es beispielsweise nicht möglich einem Element „person“ mehrmals das Attribut „name“ zu zuzuweisen. die Reihenfolge der einzelnen Attribute eines Elements ist dahingegen nicht relevant und kann beliebig gewählt werden. Ein möglicher Aufbau eines Elements „person“ mit den Attributen „vorname“, „nachname“ und „ausweisnummer“ ist in Abbildung 11 dargestellt.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;person vorname=&amp;amp;quot;Peter&amp;amp;quot; nachname=&amp;amp;quot;Völkl&amp;amp;quot; ausweisnummer=&amp;amp;quot;1234567&amp;amp;quot;/&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref402865176&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 11 – XML Element „person“&lt;br /&gt;
&lt;br /&gt;
In Abbildung 12 sind weiter:&lt;br /&gt;
&lt;br /&gt;
* ein Element &amp;#039;&amp;#039;„element_1“&amp;#039;&amp;#039; ohne Inhalt und ohne Attribute,&lt;br /&gt;
* ein Element &amp;#039;&amp;#039;„element_2“&amp;#039;&amp;#039; ohne Inhalt und mit Attributen,&lt;br /&gt;
* ein Element &amp;#039;&amp;#039;„element_3“&amp;#039;&amp;#039; mit Inhalt und ohne Attributen,&lt;br /&gt;
* ein Element &amp;#039;&amp;#039;„element_4“&amp;#039;&amp;#039; mit Inhalt und mit Attribut und&lt;br /&gt;
* ein Element &amp;#039;&amp;#039;„element_5“&amp;#039;&amp;#039; mit Attributen und weiteren Elementen im Inhalt exemplarisch dargestellt.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;element_1 /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;element_2 attribut_1=&amp;quot;Attributwert 1&amp;quot; attribut_2=&amp;quot;Attributwert 2&amp;quot; attribut_3=&amp;quot;Attributwert 3&amp;quot;/&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;element_3&amp;amp;gt;Dies ist ein Inhaltstext&amp;amp;lt;/element_3&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;element_4 attribut_1=&amp;quot;Wert 1&amp;quot;&amp;amp;gt;Noch ein Inhaltstext&amp;amp;lt;/element_4&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;element_5 attribut_1=&amp;quot;Attributwert 1&amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;element_1 /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;element_2 attribut1=&amp;quot;Test 1&amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
attribut_2=&amp;quot;Test 2&amp;quot; attribut_3=&amp;quot;Attributwert 3&amp;quot;/&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;element_3&amp;amp;gt;Dies ist ein anderer Inhaltstext&amp;amp;lt;/element_3&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/element_5&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref402870210&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 12 – XML Elemente mit unterschiedlichen Tags&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;kommentare&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Kommentare ===&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den Deklarationen und Elementen, kann ein XML Dokument auch Kommentare enthalten. Diese können sich an jeder Position im Dokument befinden an der auch ein Element stehen dürfte, also überall außer im Attributbereich eines Tags. Sie werden bei der Interpretation des Dokuments ignoriert. Kommentare dienen primär der Lesbarkeit durch Menschen. Mit ihnen können einzelne Teile des Dokuments mit Erklärungen versehen werden, die dem Anwender bei nicht automatisierter Betrachtung helfen können, den Inhalt zu verstehen.&lt;br /&gt;
&lt;br /&gt;
Ein Kommentar ist hinlänglich seines Inhaltes kaum beschränkt. Es darf einzig keine zwei direkt zusammenhängenden Minuszeichen (--) enthalten. Sollte sich innerhalb eines Kommentars ein XML Element befinden, wird es nicht als Element, sondern als Kommentartext interpretiert. Damit können auch einzelne Teile eines Dokuments „auskommentiert“ werden, um sie bei der Interpretation zu ignorieren, ohne sie aus dem Dokument löschen zu müssen. Dies ist gerade bei der Entwicklung von Schnittstellen hilfreich, da die Musterdateien somit abgeändert werden können, ohne einzelne Inhalte zu löschen.&lt;br /&gt;
&lt;br /&gt;
Kommentare werden durch die Zeichenfolge &amp;#039;&amp;#039;&amp;amp;lt;!--&amp;#039;&amp;#039; begonnen und danach durch &amp;#039;&amp;#039;--&amp;amp;gt;&amp;#039;&amp;#039; wieder beendet. Alle Zeichen, welche sich zwischen diesen beiden Teilen befinden gelten damit als Kommentartext und nicht als XML Element.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;document-type-definitions-dtd&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Document Type Definitions (DTD) ===&lt;br /&gt;
&lt;br /&gt;
Die Document Type Definition (DTD) wird verwendet um die &amp;#039;&amp;#039;&amp;#039;Struktur eines XML Dokuments&amp;#039;&amp;#039;&amp;#039; zu definieren. Ohne eine DTD darf es auf beliebigen Elementen in beliebiger Reihenfolge mit beliebigem Inhalt und Attributen aufgebaut sein. Die DTD schränkt nun genau diese Freiheit wieder ein und definiert damit das &amp;#039;&amp;#039;&amp;#039;Metamodell des XML Dokuments&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Um, in einem XML Dokument, eine zugehörige DTD anzugeben. Wird eine eigene Deklaration verwendet, welche am Beginn des Dokumentes nach der XML Deklaration stehen muss. Sie wird mit &amp;#039;&amp;#039;&amp;amp;lt;!DOCTYPE&amp;#039;&amp;#039; eingeleitet und wiederum mit einer einfachen Spitzen Klammer abgeschlossen. Es kann auch mehrere dieser Deklarationen in einem Dokument geben.&lt;br /&gt;
&lt;br /&gt;
Innerhalb der DTD Deklaration des XML Dokuments wird zuerst der Name der Dokumentenart angegeben und danach einer der Identifier SYSTEM oder PUBLIC, sowie ihre zugehörigen Parameter.&lt;br /&gt;
&lt;br /&gt;
Der Identifier &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;SYSTEM&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; gibt an, dass es sich dabei um eine eigene Definition handelt. Der zugehörige Parameter ist hierbei der Pfad zu der Datei, welche die angegebene DTD enthält.&lt;br /&gt;
&lt;br /&gt;
Der Identifier &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;PUBLIC&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; weist auf eine allgemein standardisierte DTD hin, welche dem XML Parser bekannt sein sollte. Hier werden zwei Parameter benötigt. Der Erste gibt an, um welchen Public Identifier es sich dabei handelt und der zweite Parameter verweist optional auf eine alternative DTD Datei, welche verwendet wird falls der genannte Identifier dem Parser nicht bekannt ist.&lt;br /&gt;
&lt;br /&gt;
In Abbildung 13 ist die Deklaration einer eigenen DTD „schema.dtd“ angegeben und in Abbildung 14 die Deklaration eines XML Dokumentes als, dem System bekannten, Dokumententyp HTML.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!DOCTYPE mein_schema SYSTEM &amp;amp;quot;schema.dtd&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref402877835&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 13 – XML DOCTYPE für eigene DTD&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!DOCTYPE HTML PUBLIC &amp;amp;quot;-//W3C//DTD HTML 4.01 //EN&amp;amp;quot; &amp;amp;quot;http://www.w3.org/TR/html4/strict.dtd&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref402877870&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 14 – XML DOCTYPE für HTML&lt;br /&gt;
&lt;br /&gt;
In der DTD Datei können nun die einzelnen Elemente und die Struktur des XML Dokuments definiert werden:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Elemente&amp;#039;&amp;#039;&amp;#039; werden durch &amp;amp;lt;!ELEMENT …&amp;amp;gt; und&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Attribute&amp;#039;&amp;#039;&amp;#039; über &amp;amp;lt;!ATTLIST …&amp;amp;gt; definiert.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Element Definition &amp;amp;lt;!ELEMENT …&amp;amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Bei der Definition eines Elements wird sowohl die &amp;#039;&amp;#039;&amp;#039;Bezeichnung des Elements&amp;#039;&amp;#039;&amp;#039;, als auch sein &amp;#039;&amp;#039;&amp;#039;möglicher Inhalt&amp;#039;&amp;#039;&amp;#039; definiert. Dabei wird als erstes der Elementname und dahinter der Inhalt in Klammer angegeben.&lt;br /&gt;
&lt;br /&gt;
Der &amp;#039;&amp;#039;&amp;#039;Inhalt&amp;#039;&amp;#039;&amp;#039; kann entweder:&lt;br /&gt;
&lt;br /&gt;
* leer (Schlüsselwort &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;EMPTY&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;),&lt;br /&gt;
* beliebig (Schlüsselwort &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;ANY&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;),&lt;br /&gt;
* reiner Text (Schlüsselwort &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;#PCDATA&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;) oder&lt;br /&gt;
* weitere Elemente (Angabe des gewünschten &amp;#039;&amp;#039;&amp;#039;Elementnamen&amp;#039;&amp;#039;&amp;#039;) sein.&lt;br /&gt;
Dabei sind auch die Angaben unterschiedlicher Inhalte und Typen kombinierbar.&lt;br /&gt;
&lt;br /&gt;
Sollen mehrere Inhalte, wie beispielsweise unterschiedliche Elemente, beinhaltet sein, werden diese innerhalb der Klammer durch &amp;#039;&amp;#039;&amp;#039;Beistriche&amp;#039;&amp;#039;&amp;#039; ( &amp;#039;&amp;#039;&amp;#039;,&amp;#039;&amp;#039;&amp;#039; ) oder &amp;#039;&amp;#039;&amp;#039;Pipes&amp;#039;&amp;#039;&amp;#039; ( &amp;#039;&amp;#039;&amp;#039;|&amp;#039;&amp;#039;&amp;#039; ) getrennt.&lt;br /&gt;
&lt;br /&gt;
Dabei gibt ein &amp;#039;&amp;#039;&amp;#039;Beistrich&amp;#039;&amp;#039;&amp;#039; das Vorhandensein beider Elemente in &amp;#039;&amp;#039;&amp;#039;genau dieser Reihenfolge&amp;#039;&amp;#039;&amp;#039; und eine &amp;#039;&amp;#039;&amp;#039;Pipe&amp;#039;&amp;#039;&amp;#039; das Vorhandensein &amp;#039;&amp;#039;&amp;#039;nur&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;eines der beiden Elemente&amp;#039;&amp;#039;&amp;#039; an.&lt;br /&gt;
&lt;br /&gt;
Weiter sind auch &amp;#039;&amp;#039;&amp;#039;Verschachtelungen&amp;#039;&amp;#039;&amp;#039; dieser beiden Operatoren durch Setzen von &amp;#039;&amp;#039;&amp;#039;Klammern&amp;#039;&amp;#039;&amp;#039; zulässig.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich gibt es noch die Möglichkeit hinter jedem Element, oder Klammerausdruck, anzugeben, ob das Element:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;optional&amp;#039;&amp;#039;&amp;#039; ist (durch ein Fragezeichen: &amp;#039;&amp;#039;&amp;#039;?&amp;#039;&amp;#039;&amp;#039;),&lt;br /&gt;
* beliebig &amp;#039;&amp;#039;&amp;#039;oft aber&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;mindestens einmal&amp;#039;&amp;#039;&amp;#039; vorkommt (durch ein Pluszeichen: &amp;#039;&amp;#039;&amp;#039;+&amp;#039;&amp;#039;&amp;#039;) oder&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;beliebig oft&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;und optional&amp;#039;&amp;#039;&amp;#039; vorkommen kann (durch einen Stern: &amp;#039;&amp;#039;&amp;#039;*&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
Wird hinter einem Eintrag keine Angabe über die Häufigkeit gemacht, muss er genau einmal vorkommen.&lt;br /&gt;
&lt;br /&gt;
Im nachfolgenden Beispiel, in Abbildung 15, sind folgende Elemente definiert:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;element_1&amp;#039;&amp;#039; hat keinen Inhalt,&lt;br /&gt;
* &amp;#039;&amp;#039;element_2&amp;#039;&amp;#039; hat einen Textinhalt,&lt;br /&gt;
* &amp;#039;&amp;#039;element_3&amp;#039;&amp;#039; beinhaltet &amp;#039;&amp;#039;element_1&amp;#039;&amp;#039; und &amp;#039;&amp;#039;element_2&amp;#039;&amp;#039;,&lt;br /&gt;
* &amp;#039;&amp;#039;element_4&amp;#039;&amp;#039; beinhaltet &amp;#039;&amp;#039;element_1&amp;#039;&amp;#039; und (entweder &amp;#039;&amp;#039;element_2&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;element_3&amp;#039;&amp;#039;),&lt;br /&gt;
* &amp;#039;&amp;#039;element_5&amp;#039;&amp;#039; beinhaltet 0-n Mal &amp;#039;&amp;#039;element_1&amp;#039;&amp;#039; und 1-n Mal &amp;#039;&amp;#039;element_4&amp;#039;&amp;#039;,&lt;br /&gt;
* &amp;#039;&amp;#039;element_6&amp;#039;&amp;#039; beinhaltet optional &amp;#039;&amp;#039;element_4&amp;#039;&amp;#039;,&lt;br /&gt;
* &amp;#039;&amp;#039;element_7&amp;#039;&amp;#039; beinhaltet &amp;#039;&amp;#039;element_1&amp;#039;&amp;#039; und optional &amp;#039;&amp;#039;element_7&amp;#039;&amp;#039; und&lt;br /&gt;
* &amp;#039;&amp;#039;element_8&amp;#039;&amp;#039; beinhaltet beliebig viele &amp;#039;&amp;#039;element_1&amp;#039;&amp;#039;, &amp;#039;&amp;#039;element_2&amp;#039;&amp;#039; und &amp;#039;&amp;#039;element_3&amp;#039;&amp;#039; in beliebiger Reihenfolge.&lt;br /&gt;
Bei der Definition von verschachtelten Elementen sind auch &amp;#039;&amp;#039;&amp;#039;Rekursionen zulässig&amp;#039;&amp;#039;&amp;#039;, wie das gerade genannte Beispiel mit element_7 zeigt. Hier muss jedoch darauf geachtet werden, die Rekursion &amp;#039;&amp;#039;&amp;#039;als optional zu deklarieren&amp;#039;&amp;#039;&amp;#039; (Angabe von ?, * oder |), da die Rekursion sonst verpflichtend endlos und damit nie erfüllbar wäre.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;amp;lt;!ELEMENT element_1 EMPTY&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT element_2 #PCDATA&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT element_3 (element_1, element_2)&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT element_4 (element_1, (element_2 | element_3))&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT element_5 (element_1*, element_4+)&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT element_6 (element_4?)&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT element_7 (element_1, element_7?)&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT element_8 (element_1|element_2|element_3)*&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref402881692&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 15 – DTD Elemente&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Attribut Definition &amp;amp;lt;!ATTLIST …&amp;amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Um ein definiertes Element &amp;#039;&amp;#039;&amp;#039;mit Attributen auszustatten&amp;#039;&amp;#039;&amp;#039; wird mittels &amp;#039;&amp;#039;&amp;amp;lt;!ATTLIST&amp;#039;&amp;#039; eine Attributliste definiert. Dazu wird zuerst der &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; des Elements angegeben, für das die Attributliste gilt sowie danach der &amp;#039;&amp;#039;&amp;#039;Attributname&amp;#039;&amp;#039;&amp;#039; und sein &amp;#039;&amp;#039;&amp;#039;Typ,&amp;#039;&amp;#039;&amp;#039; sowie optional eine Definition von möglichen Werten und ob der Parameter verpflichtend vorkommen muss. Dabei können entweder &amp;#039;&amp;#039;&amp;#039;mehrere Attribute in einer Definition&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;oder jedes Attribut einzeln&amp;#039;&amp;#039;&amp;#039; in einer &amp;#039;&amp;#039;&amp;#039;eigenen Definition&amp;#039;&amp;#039;&amp;#039; angegeben werden.&lt;br /&gt;
&lt;br /&gt;
Mögliche Datentypen für Attribute sind:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;CDATA&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; für beliebige Zeichenketten,&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;ID&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; für einen eindeutigen Wert unter den Elementen desselben Typs innerhalb des XML Dokuments,&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;IDREF&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; für eine Referenz auf ein anderes Element desselben Typs innerhalb des Dokuments mittels Wert des ID Attributs,&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;ENTITY&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; für eine Referenz auf ein externes Element,&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;ENTITYS&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; für eine Liste von &amp;#039;&amp;#039;ENTITY‘s&amp;#039;&amp;#039;,&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;NMTOKEN&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; für einen Namen (eine Bezeichnung) des Elements innerhalb des XML Dokuments,&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;NMTOKENS&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; für eine Liste von &amp;#039;&amp;#039;NMTOKEN’s&amp;#039;&amp;#039; oder&lt;br /&gt;
* eine fest definierte &amp;#039;&amp;#039;&amp;#039;Menge möglicher Eingabewerte&amp;#039;&amp;#039;&amp;#039;, getrennt durch Pipes in der Form &amp;#039;&amp;#039;(wert1|wert2|wert2).&amp;#039;&amp;#039;&lt;br /&gt;
Zusätzlich kann hinter der Angabe des Datentyps noch:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;#REQUIRED&amp;#039;&amp;#039;&amp;#039;, für verpflichtend anzugebende Attribute,&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;#IMPLIED&amp;#039;&amp;#039;&amp;#039;, für optionale Attribute,&lt;br /&gt;
* oder ein &amp;#039;&amp;#039;&amp;#039;automatischer Standardwert&amp;#039;&amp;#039;&amp;#039; in Anführungszeichen,&lt;br /&gt;
angegeben werden.&lt;br /&gt;
&lt;br /&gt;
Eine Sonderform der Angabe des Standardwertes ist der Parameter &amp;#039;&amp;#039;&amp;#039;#FIXED&amp;#039;&amp;#039;&amp;#039;, gefolgt von einem Standardwert in Anführungszeichen. Dabei handelt es sich um einen nicht veränderbaren Standardwert bzw. einen statischen Attributwert.&lt;br /&gt;
&lt;br /&gt;
Im nachfolgenden Beispiel, in Abbildung 16, wird eine DTD für ein Element &amp;#039;&amp;#039;element_1&amp;#039;&amp;#039; mit den Attributen &amp;#039;&amp;#039;e1_id&amp;#039;&amp;#039;, welches eine eindeutige ID innerhalb des Dokuments enthält, &amp;#039;&amp;#039;e1_name&amp;#039;&amp;#039;, welches eine eindeutige Bezeichnung des Element enthält, &amp;#039;&amp;#039;e1_kommentar&amp;#039;&amp;#039;, welches einen Kommentartext enthalten soll und &amp;#039;&amp;#039;e1_wochentag&amp;#039;&amp;#039;, welches ein Wochentagkürzel enthält.&amp;lt;pre&amp;gt;&amp;amp;lt;!ELEMENT element_1 EMPTY&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST element_1 e1_id ID&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST element_1 e1_name ENTITY&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST element_1 e1_kommentar CDATA&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST element_1 e1_wochentag (MO|DI|MI|DO|FR|SA|SO)&amp;amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref403373630&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 16 – DTD Attribute&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;beispiel-eines-xml-modells&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Beispiel eines XML Modells ===&lt;br /&gt;
&lt;br /&gt;
Anforderungsbeschreibung:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;„Eine Bank gliedert sich in Filialen. Filialen werden an ihrem Namen unterschieden, sind in einer Stadt beheimatet und weisen ein Vermögen aus. Jede Filiale verwaltet ihre eigenen Konten und Kredite, die über Nummern identifiziert werden. Jedes Konto und jeder Kredit besitzt eine eindeutige Nummer und weist einen Kontostand (bei Konto) bzw. einen Betrag (bei Krediten) auf. Kunden wiederum besitzen Konten und haben auch Kredite laufen, wobei jedes Konto wie auch jeder Kredit genau einem oder mehreren Kunden zugeordnet wird. Kunden haben einen eindeutigen Namen und wohnen in einer Straße in einer Stadt.“&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Die Anforderungsbeschreibung gleicht der des Beispiels eines ER Modells in Punkt 2.1.2. In diesem Fall soll jedoch kein Datenbankmodell, sondern ein Modell für ein Dateibasiertes XML Dokument für den Datenaustausch erstellt werden. Eine mögliche Modellierung dieser Anforderungsbeschreibung als DTD findet sich in Abbildung 17 und ein mögliches darauf basierendes XML Dokument in Abbildung 18. Dabei wurde aus Sicht der Filialen ausgegangen. Eine Betrachtung aus Sicht des Kontos, Kredites oder aus Sicht des Kunden wäre ebenfalls möglich. Dies hängt natürlich stark vom beabsichtigten Modellierungszweck ab. Als Wurzelelement dient das Element Filialliste, welches 0-n Filialen enthalten darf.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT filialliste (filiale*)&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT filiale (kredit*, konto*)&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST filiale filialname ID&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST filiale stadt CDATA&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST filiale vermoegen CDATA&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT kredit (kunde)&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST kredit nummer ID&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST kredit betrag CDATA&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT konto (kunde)&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST konto nummer ID&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST konto kontostand CDATA&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT kunde EMPTY&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST kunde name ID&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST kunde strasse CDATA&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST kunde stadt CDATA&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref403048292&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 17 – Beispiel „Bank“: XML-Modell, DTD Datei&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!DOCTYPE bank SYSTEM &amp;amp;quot;bank.dtd&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;filialliste&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;filiale filialname=&amp;amp;quot;Meine Bank&amp;amp;quot; stadt=&amp;amp;quot;Wien&amp;amp;quot; vermoegen=&amp;amp;quot;5 mrd eur&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;kredit nummer=&amp;amp;quot;100&amp;amp;quot; betrag=&amp;amp;quot;200000 eur&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;kunde name=&amp;amp;quot;Max Muster&amp;amp;quot; strasse=&amp;amp;quot;Musterplatz 1&amp;amp;quot; stadt=&amp;amp;quot;Wien&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/kredit&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;kredit nummer=&amp;amp;quot;101&amp;amp;quot; betrag=&amp;amp;quot;10000 eur&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;kunde name=&amp;amp;quot;Maria Muster&amp;amp;quot; strasse=&amp;amp;quot;Mustergasse 3&amp;amp;quot; stadt=&amp;amp;quot;Wien&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/kredit&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/filiale&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;filiale filialname=&amp;amp;quot;Deine Bank&amp;amp;quot; stadt=&amp;amp;quot;Wien&amp;amp;quot; vermoegen=&amp;amp;quot;1 mrd eur&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;konto nummer=&amp;amp;quot;200&amp;amp;quot; kontostand=&amp;amp;quot;3000 eur&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;kunde name=&amp;amp;quot;Hans Meier&amp;amp;quot; strasse=&amp;amp;quot;Mustergasse 1&amp;amp;quot; stadt=&amp;amp;quot;Graz&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/konto&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/filiale&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;filiale filialname=&amp;amp;quot;Seine Bank&amp;amp;quot; stadt=&amp;amp;quot;Wien&amp;amp;quot; vermoegen=&amp;amp;quot;2 mrd eur&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/filiale&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/filialliste&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref403048379&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 18 – Beispiel „Bank“: XML-Modell, XML Datei&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;javascript-object-notation-json&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== JavaScript Object Notation (JSON) ==&lt;br /&gt;
&lt;br /&gt;
Die JavaScript Object Notation (JSON) wurde ursprünglich zur Speicherung und Übertragung von Datenstrukturen in JavaScript entwickelt. Es handelt sich dabei um ein reines Textformat, welches, ähnlich wie in XML, durch die Vorgabe einer klaren Struktur, eine einheitliche Abbildung von Daten ermöglicht. JSON ist in der RFC 4627 definiert und ist wiederum Teil des ECMAScript Programming Standards, welcher wiederum die wesentlichen Objekt Literale von JavaScrip definiert. (RFC Network Working Group, 2006)&lt;br /&gt;
&lt;br /&gt;
Genau wie in XML, zeichnet sich JSON durch seine Menschenlesbarkeit und die Vielzahl verfügbarer Implementierungen in allen gängigen Programmiersprachen aus. JSON ist somit nicht auf JavaScript beschränkt, hat dort jedoch seinen eigentlichen Ursprung. Damit ist auch hier eine schnelle und einfache Implementierung von Nahtstellen zwischen unterschiedlichen Anwendungen möglich. Da die Syntax in JSON wesentlich kompakter geschrieben wird, als in XML, wird es häufig für die Datenübertragungen in Webservices, wie beispielsweise Services mit REST Schnittstellen (Fielding, 2000), eingesetzt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;aufbau-eines-json-dokuments&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Aufbau eines JSON Dokuments ===&lt;br /&gt;
&lt;br /&gt;
Die &amp;#039;&amp;#039;&amp;#039;Elemente&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;Attribute&amp;#039;&amp;#039;&amp;#039; sind in JSON werden als &amp;#039;&amp;#039;&amp;#039;Objekte&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;Key-Values&amp;#039;&amp;#039;&amp;#039; bezeichnet. Jede Struktur ist über Objekte Abgebildet, welche selbst wiederum beliebig Objekte enthalten können. Ähnlich wie in XML muss in der obersten Hierarchiestufe ein einzelnes Objekt stehen. Die gemeinsame Verschachtelung von Objekten geschieht über &amp;#039;&amp;#039;&amp;#039;Arrays&amp;#039;&amp;#039;&amp;#039; Struktur.&lt;br /&gt;
&lt;br /&gt;
Die möglichen &amp;#039;&amp;#039;&amp;#039;Datentypen&amp;#039;&amp;#039;&amp;#039; der einzelnen Objekte sind:&lt;br /&gt;
&lt;br /&gt;
* String,&lt;br /&gt;
* Number,&lt;br /&gt;
* Boolean und&lt;br /&gt;
* null.&lt;br /&gt;
Sie müssen jedoch nicht eigens deklariert werden, sondern ergeben sich durch ihre Schreibweise innerhalb der Datei. &amp;#039;&amp;#039;Strings&amp;#039;&amp;#039; werden mit umschließenden Anführungszeichen geschrieben, &amp;#039;&amp;#039;Numbers&amp;#039;&amp;#039; in Zahlenschreibweise ohne Anführungszeichen und &amp;#039;&amp;#039;Booleans&amp;#039;&amp;#039; direkt als Werte &amp;#039;&amp;#039;true&amp;#039;&amp;#039; und &amp;#039;&amp;#039;false&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Objekte werden durch geschwungene Klammern ( &amp;#039;&amp;#039;&amp;#039;{&amp;#039;&amp;#039;&amp;#039; , &amp;#039;&amp;#039;&amp;#039;}&amp;#039;&amp;#039;&amp;#039; ) deklariert. Sie können beliebig viele Key-Values enthalten. Nach dem Namen einer Key-Value steht immer ein Doppelpunkt, gefolgt von ihrem enthaltenen Wert, welcher wiederum ein eigenes Objekt sein kann. Die einzelnen Key-Values werden durch Beistriche getrennt. Ein Wert kann auch ein Array aus Werten sein. Es wird durch eckige Klammern ( &amp;#039;&amp;#039;&amp;#039;[&amp;#039;&amp;#039;&amp;#039; , &amp;#039;&amp;#039;&amp;#039;]&amp;#039;&amp;#039;&amp;#039; ) deklariert und enthält beliebig viele, durch Beistriche getrennte, Werte.&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zu XML gibt es in JSON Dateien &amp;#039;&amp;#039;&amp;#039;keine Kommentare&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Der Text der JSON Dokumente soll laut Spezifikation (RFC Network Working Group, 2006) Unicode kodiert sein, wobei standardmäßig UTF-8 verwendet wird. Der verwendete Zeichensatz des Dokuments wird vom Parser über seine ersten beiden Zeichen erkannt. Es werden dazu die, in ihrer binären Form, enthaltenen Nullen betrachtet:&lt;br /&gt;
&lt;br /&gt;
* 00 00 00 xx ergibt UTF-32BE  &amp;lt;ref&amp;gt;Die Zusätze &amp;#039;&amp;#039;BE&amp;#039;&amp;#039; und &amp;#039;&amp;#039;LE&amp;#039;&amp;#039; steht für &amp;#039;&amp;#039;Big Endian&amp;#039;&amp;#039; und &amp;#039;&amp;#039;Little Endian&amp;#039;&amp;#039; und beziehen sich auf die Reihenfolge in der die einzelnen Bits des Zeichens gespeichert werden. Somit steht das erste Bit des Zeichens entweder links (LE) oder rechts (BE) in der binären Abbildung.&amp;lt;/ref&amp;gt;  ,&lt;br /&gt;
* 00 xx 00 xx ergibt UTF-16BE,&lt;br /&gt;
* xx 00 00 00 ergibt UTF-32LE,&lt;br /&gt;
* xx 00 xx 00 ergibt UTF-16LE und&lt;br /&gt;
* xx xx xx xx ergibt UTF-8.&lt;br /&gt;
In Abbildung 19 ist ein JSON Objekt für eine Person definiert, welches Key-Values für einen Vornamen, einen Nachnamen und eine Ausweisnummer enthält. Weiter hat die Person ein Array mit Objekten, welche je einen Schlüssel der Person mit der jeweiligen Raumnummer abbilden.&lt;br /&gt;
&lt;br /&gt;
{&amp;amp;quot;vorname&amp;amp;quot; : &amp;amp;quot;Peter&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;nachname&amp;amp;quot; : &amp;amp;quot;Völkl&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;ausweisnummer&amp;amp;quot; : 1234567,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;schluessel&amp;amp;quot; : [{&amp;amp;quot;raumnummer&amp;amp;quot; : 22},{&amp;amp;quot;raumnummer&amp;amp;quot; : 33}]&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref403379545&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 19 – Beispiel JSON Objekt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;json-schema&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== JSON Schema ===&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zu XML gibt es bei JSON Daten keine standardisierte Möglichkeit eine eigene, formale, Definition zu erstellen, gegen welche die Struktur automatisiert geprüft werden kann. Eine entsprechende Standardisierung, das JSON Schema, befindet sich derzeit in Ausarbeitung und liegt bereits im Entwurfsstadium vor. Es kann jedoch aktuell nicht davon ausgegangen werden, dass diese unfertige Standardisierung mit jedem Parser eingesetzt werden kann. (Galiegue, 2013)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;beispiel-eines-json-modells&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Beispiel eines JSON Modells ===&lt;br /&gt;
&lt;br /&gt;
Anforderungsbeschreibung:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;„Eine Bank gliedert sich in Filialen. Filialen werden an ihrem Namen unterschieden, sind in einer Stadt beheimatet und weisen ein Vermögen aus. Jede Filiale verwaltet ihre eigenen Konten und Kredite, die über Nummern identifiziert werden. Jedes Konto und jeder Kredit besitzt eine eindeutige Nummer und weist einen Kontostand (bei Konto) bzw. einen Betrag (bei Krediten) auf. Kunden wiederum besitzen Konten und haben auch Kredite laufen, wobei jedes Konto wie auch jeder Kredit genau einem oder mehreren Kunden zugeordnet wird. Kunden haben einen eindeutigen Namen und wohnen in einer Straße in einer Stadt.“&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Die Anforderungsbeschreibung gleicht der des Beispiels des ER Modells in Punkt 2.1.2 und des XML Modells in Punkt 2.2.5. Die JSON Struktur könnte beispielsweise dem Austausch von Filialdaten über ein Webservice dienen. Eine mögliche Modellierung dieser Anforderungsbeschreibung findet sich nachfolgend in Abbildung 17. Dabei wurde ebenfalls wieder aus Sicht der Filialen ausgegangen. Eine Betrachtung aus Sicht des Kontos, Kredites oder aus Sicht des Kunden wäre ebenfalls möglich. Dies hängt natürlich stark vom beabsichtigten Modellierungszweck ab. Als Wurzelelement dient das Element Filialliste, welches 0-n Filialen enthalten darf. Die, in dem Beispiel enthaltenen, Einrückungen dienen der besseren Lesbarkeit und nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
{&amp;amp;quot;filialliste&amp;amp;quot; : [ {&amp;amp;quot;filialname“ : &amp;amp;quot;Meine Bank&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;stadt&amp;amp;quot; : &amp;amp;quot;Wien&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;vermoegen&amp;amp;quot; : &amp;amp;quot;5 mrd eur&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;kredite&amp;amp;quot; : [ {&amp;amp;quot;nummer&amp;amp;quot; : &amp;amp;quot;100&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;betrag&amp;amp;quot; : &amp;amp;quot;20000 eur&amp;amp;quot;},&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;kunde&amp;amp;quot; : {&amp;amp;quot;name&amp;amp;quot; : &amp;amp;quot;Max Muster&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;strasse&amp;amp;quot; : &amp;amp;quot;Musterplatz 1&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;stadt&amp;amp;quot; : &amp;amp;quot;Wien&amp;amp;quot;}&lt;br /&gt;
&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
{&amp;amp;quot;nummer&amp;amp;quot; : &amp;amp;quot;101&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;betrag&amp;amp;quot; : &amp;amp;quot;10000 eur&amp;amp;quot;},&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;kunde&amp;amp;quot; : {&amp;amp;quot;name&amp;amp;quot; : &amp;amp;quot;Maria Muster&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;strasse&amp;amp;quot; : &amp;amp;quot;Mustergasse 3&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;stadt&amp;amp;quot; : &amp;amp;quot;Wien&amp;amp;quot;}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
],&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;konten&amp;amp;quot; : []&lt;br /&gt;
&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
{&amp;amp;quot;filialname“ : &amp;amp;quot;Deine Bank&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;stadt&amp;amp;quot; : &amp;amp;quot;Wien&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;vermoegen&amp;amp;quot; : &amp;amp;quot;1 mrd eur&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;kredite&amp;amp;quot; : [],&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;konten&amp;amp;quot; : [ {&amp;amp;quot;nummer&amp;amp;quot; : &amp;amp;quot;200&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;betrag&amp;amp;quot; : &amp;amp;quot;3000 eur&amp;amp;quot;},&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;kunde&amp;amp;quot; : {&amp;amp;quot;name&amp;amp;quot; : &amp;amp;quot;Hans Meier&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;strasse&amp;amp;quot; : &amp;amp;quot;Mustergasse 1&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;stadt&amp;amp;quot; : &amp;amp;quot;Graz&amp;amp;quot;}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Toc408237669&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 20 – Beispiel „Bank“: JSON-Modell, Teil 1/2&lt;br /&gt;
&lt;br /&gt;
{&amp;amp;quot;filialname“ : &amp;amp;quot;Seine Bank&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;stadt&amp;amp;quot; : &amp;amp;quot;Wien&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;vermoegen&amp;amp;quot; : &amp;amp;quot;2 mrd eur&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;kredite&amp;amp;quot; : [],&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;konten&amp;amp;quot; : []&lt;br /&gt;
&lt;br /&gt;
} ]&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Toc408237670&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 21 – Beispiel „Bank“: JSON-Modell, Teil 2/2&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Grundlagen_der_Modellierung_-_Datenmodellierung&amp;diff=4394</id>
		<title>Grundlagen der Modellierung - Datenmodellierung</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Grundlagen_der_Modellierung_-_Datenmodellierung&amp;diff=4394"/>
		<updated>2022-11-02T11:52:26Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;datenmodellierung&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Datenmodellierung =&lt;br /&gt;
&lt;br /&gt;
Bei der Datenmodellierung geht es um die zweckmäßige und effiziente Strukturierung von Daten in Informationssystemen. Die Modelle behandeln unterschiedliche Arten von Speicheranwendungen. Beispielsweise ist das ER-Modell im Bereich der Datenbanksysteme beheimatet, XML und JSON dahingegen im Bereich der Nahtstellen und Datenstrukturen innerhalb und zwischen einzelnen Systemen auf Dateiebene.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;entity-relationship-modell-er-modell&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Entity-Relationship Modell (ER-Modell) ==&lt;br /&gt;
&lt;br /&gt;
Das Entity-Relationship Modell (ER-Modell) wurde bereits im vorherigen Semester, im Studienheft „Datenbanksysteme“ (Schikuta, E.), genau erläutert. Nachfolgend werden nun die wesentlichen Punkte dieses Skriptums nochmals auszugsweise wiederholt.&lt;br /&gt;
&lt;br /&gt;
Das &amp;#039;&amp;#039;&amp;#039;Entity-Relationship-Modell (ER-Modell)&amp;#039;&amp;#039;&amp;#039; ist eines der ältesten (Chen, 1976) und am weitesten verbreiteten Modelle zum Entwurf von Datenbankmodellen und wird auch gerne im Bereich der allgemeinen Software Entwicklung eingesetzt. Durch seine besonders einfachen Darstellungsmöglichkeiten ist es sehr gut für die Kommunikation mit den Endbenutzern geeignet.&lt;br /&gt;
&lt;br /&gt;
Die Grundidee des Entity-Relationship-Modells (Objekt-Beziehungs-Modell) besteht darin, die Welt als Sammlung von &amp;#039;&amp;#039;&amp;#039;Entitäten (Entity&amp;#039;&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;&amp;#039;Objekttypen&amp;#039;&amp;#039;&amp;#039;) und &amp;#039;&amp;#039;&amp;#039;Beziehungen&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;Relationship&amp;#039;&amp;#039;&amp;#039;) zwischen diesen Objekttypen zu sehen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;modellierungsobjekte-des-er-modells&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Modellierungsobjekte des ER-Modells ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;entitäten&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Entitäten ====&lt;br /&gt;
&lt;br /&gt;
Ein Objekt wird &amp;#039;&amp;#039;&amp;#039;Entität-Instanz&amp;#039;&amp;#039;&amp;#039; genannt. Entität-Instanzen sind dabei einzelne Exemplare von Dingen oder Begriffen. Dies können beispielsweise sein:&lt;br /&gt;
&lt;br /&gt;
* Personen: der Kunde, Lieferant, Mitarbeiter etc.&lt;br /&gt;
* Gegenstände: Handelsware, Rohstoff, Maschine etc.&lt;br /&gt;
* Abstrakte Begriffe: Konto, Buchung, Bestellung etc.&lt;br /&gt;
Entität-Instanzen mit gleichen Eigenschaften lassen sich zu Entitäten (Objekttypen) zusammenfassen, z.B. Kunden, Bestellungen etc. Die Eigenschaften einer Entität-Instanz werden durch &amp;#039;&amp;#039;&amp;#039;Attribute&amp;#039;&amp;#039;&amp;#039; beschrieben, z.B. Name, Baujahr, Preis, Bestellnummer.&lt;br /&gt;
&lt;br /&gt;
Hinweis: Im ER – Modell bezeichnet der Begriff Entität immer eine Klasse (Typ) von Instanzen, nicht eine Instanz!&lt;br /&gt;
&lt;br /&gt;
Zwischen zwei, aber auch mehr, Entitäten können Beziehungen bestehen, z.B. „Kunde bestellt Maschine“. Die Beziehung wird dabei durch die Rolle der an ihr beteiligten Entitäten beschrieben. Die Beziehungen können zwischen Entitäten gleichen Typs oder zwischen Entitäten verschiedenen Typs bestehen.&lt;br /&gt;
&lt;br /&gt;
Die wichtigsten Symbole in der grafischen Notation des ER-Modells werden in Abbildung 2 dargestellt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wiba mt233 201607 a.007.png|300px|none|thumb|Grafische Notation im ER-Modell]]&lt;br /&gt;
&lt;br /&gt;
Attribute können auch Beziehungen zugeordnet werden (siehe Abbildung 3). Hier ist bei der Modellierung zu entscheiden, ob dieses Beziehungsattribut nicht einer der beiden Entitäten zugeordnet werden kann oder soll.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wiba mt233 201607 a.008.png|300px|none|thumb|Beispiel Beziehungsattribut]]&lt;br /&gt;
&lt;br /&gt;
Eine minimale Menge von Attributen, deren Werte die zugeordnete Entität-Instanz eindeutig innerhalb aller Instanzen seines Objekttyps identifiziert, nennt man &amp;#039;&amp;#039;&amp;#039;Schlüssel&amp;#039;&amp;#039;&amp;#039;. Oft gibt es Attribute, die künstlich als Schlüssel eingebaut werden, z.B. Personalnummer, Vorlesungsnummer, …&lt;br /&gt;
&lt;br /&gt;
Schlüsselattribute werden durch Unterstreichen (manchmal auch durch doppelt gezeichnete Ovale) gekennzeichnet (siehe Abbildung 4).&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wiba mt233 201607 a.009.png|300px|none|thumb|Beispiel Schlüsselattribut]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;beziehungen&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
==== Beziehungen ====&lt;br /&gt;
&lt;br /&gt;
Beziehungen repräsentieren eigentlich Aggregate von zwei oder mehreren an der Beziehung teilnehmenden Entitäten. Die Anzahl der aggregierten Entitäten heißt &amp;#039;&amp;#039;&amp;#039;Grad&amp;#039;&amp;#039;&amp;#039; der Beziehung (unäre, binäre, n-äre Beziehung). Entitäten haben in einer Beziehung eine minimale und eine maximale &amp;#039;&amp;#039;&amp;#039;Kardinalität&amp;#039;&amp;#039;&amp;#039; bzw. Komplexität.&lt;br /&gt;
&lt;br /&gt;
Die Beziehungen können vom Typ &amp;#039;&amp;#039;&amp;#039;1:1&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;1:n&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;n:1&amp;#039;&amp;#039;&amp;#039;, oder &amp;#039;&amp;#039;&amp;#039;m:n&amp;#039;&amp;#039;&amp;#039; sein. Entsprechende Beispiele für die einzelnen Kardinalitäten findet man in Abbildung 5:&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wiba mt233 201607 a.010.png|300px|none|thumb|Beispiele Kardinalitäten]]&lt;br /&gt;
&lt;br /&gt;
Diese Kardinalitäten können folgendermaßen interpretiert werden:&lt;br /&gt;
&lt;br /&gt;
* 1:1 – ein Ehemann hat genau eine Ehefrau (normalerweise), und umgekehrt.&lt;br /&gt;
* 1:n – ein Kunde besitzt mehrere Konten, aber jedes Konto gehört genau einem Kunden.&lt;br /&gt;
* m:n – Ein Kunde kann mehrere Artikel kaufen und jeder Artikel kann von mehreren Kunden gekauft werden.&lt;br /&gt;
Bei der Angabe der Kardinalitäten ist es auch möglich Intervalle durch Angabe der minimalen und maximalen Kardinalität zu definieren. In Abbildung 6 ist sowohl eine n:m und eine n:1 Beziehung definiert, wobei das Maximum der Kardinalität die Beziehungsmultiplizität definiert.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wiba mt233 201607 a.011.png|300px|none|thumb|Beispiel Kardinalitäten mit Intervallen]]&lt;br /&gt;
&lt;br /&gt;
Im obigen Beispiel sieht man, dass es ohne weiters möglich ist, auch mehr als eine Beziehung zwischen Entitäten zu definieren. Im spezifischen Fall sind dies zwei binäre Beziehungen.&lt;br /&gt;
&lt;br /&gt;
In manchen Fällen ist es notwendig auch n-äre Beziehungen zu modellieren. In der Abbildung 7 ist eine ternäre Beziehung dargestellt und die entsprechende Interpretation der Kardinalitäten angegeben.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wiba mt233 201607 a.012.png|300px|none|thumb|Beispiel ternäre Beziehung]]&lt;br /&gt;
&lt;br /&gt;
Es ist aber empfohlen n-äre Beziehungen nur in wirklich begründeten Fällen zu modellieren.&lt;br /&gt;
&lt;br /&gt;
Unter einer &amp;#039;&amp;#039;&amp;#039;schwachen Entität&amp;#039;&amp;#039;&amp;#039; versteht man eine Entität, die kein Schlüsselattribut besitzt (d.h. wo die Instanzen nicht eindeutig unterschieden werden können). Solche Instanzen können nur über eine Beziehung zu einer anderen Entität eindeutig identifiziert werden. Schwache Entitäten werden grafisch durch einen doppelten Rand gekennzeichnet.&lt;br /&gt;
&lt;br /&gt;
Im nachfolgenden Beispiel Abbildung 8 ergibt sich die schwache Entität dadurch, dass ein Hörsaal durch seine Nummer, Größe und seinen Typ nicht eindeutig auf einem Universitätscampus identifiziert werden kann, auf dem es eine Vielzahl von Gebäuden mit jeweils mehreren Hörsälen gibt, die in jedem Gebäude von der Nummer 1 an gezählt werden. Das bedeutet es gibt in jedem Gebäude einen Hörsaal mit der Nummer 1. Erst mit der Angabe des Gebäudes (identifying owner) kann dadurch jeder Hörsaal eindeutig identifiziert werden.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wiba mt233 201607 a.013.png|300px|none|thumb|Beispiel Schwache Entität]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;beispiel-eines-er-modells&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Beispiel eines ER-Modells ===&lt;br /&gt;
&lt;br /&gt;
Im abschließenden (vereinfachten) Beispiel dieser Lektion wollen wir, basierend auf einem gegebenen Ausschnitt der Realität einer „Bank“, eine Modellierung mit Hilfe des ER-Modells durchführen.&lt;br /&gt;
&lt;br /&gt;
Ausgangsposition für unseren Ansatz bildet eine Anforderungsbeschreibung in natürlichsprachiger Form. Es wird angenommen, dass sich diese Beschreibung aus den Interviews mit den Benutzern bzw. Auftragsgebern ergeben hat. Eine in der Praxis simple, aber übliche Vorgangsweise, um Entitätskandidaten zu erhalten, ist alle Hauptworte im Text zu identifizieren und als ersten Ansatz für Entitäten zu verwenden. Dieses Verfahren wird in der CRC-Methode vertieft (siehe die Aufgaben zu dieser Lektion).&lt;br /&gt;
&lt;br /&gt;
Anforderungsbeschreibung:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;„Eine Bank gliedert sich in Filialen. Filialen werden an ihrem Namen unterschieden, sind in einer Stadt beheimatet und weisen ein Vermögen aus. Jede Filiale verwaltet ihre eigenen Konten und Kredite, die über Nummern identifiziert werden. Jedes Konto und jeder Kredit besitzt eine eindeutige Nummer und weist einen Kontostand (bei Konto) bzw. einen Betrag (bei Krediten) auf. Kunden wiederum besitzen Konten und haben auch Kredite laufen, wobei jedes Konto wie auch jeder Kredit genau einem oder mehreren Kunden zugeordnet wird. Kunden haben einen eindeutigen Namen und wohnen in einer Straße in einer Stadt.“&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Eine mögliche Modellierung dieser Anforderungsbeschreibung als ER-Modell findet man in Abbildung 9.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wiba mt233 201607 a.014.png|300px|none|thumb|Beispiel „Bank“: ER-Modell]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;extensible-markup-language-xml&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Extensible Markup Language (XML) ==&lt;br /&gt;
&lt;br /&gt;
Die Extensible Markup Language (XML) ist ein Standard für den Aufbau von Dateidokumenten. Sie wurde vom World Wide Web Consortium (W3C) entwickelt. Es handelt sich dabei um eine sehr flexible Modellierungsform für Textformate welche wiederum von der Standard Generalized Markup Language (SGML, ISO8879) abgeleitet wurde. (World Wide Web Consortium (W3C), 2014)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;XML ist eine Markup-Sprache, und es ist nur eine Markup-Sprache. […] Der XML-Hype ist so extrem geworden, dass viele Leute glauben, XML könne sogar Kaffee kochen der den Familienhund waschen.&amp;#039;&amp;#039; (Harold &amp;amp;amp; Means, 2005, S. 5)&lt;br /&gt;
&lt;br /&gt;
Die Designziele von XML selbst sind (World Wide Web Consortium (W3C), 2008):&lt;br /&gt;
&lt;br /&gt;
* XML soll direkt und unkompliziert über das Internet nutzbar sein,&lt;br /&gt;
* XML soll eine große Anzahl unterschiedlicher Applikationen unterstützen,&lt;br /&gt;
* XML soll mit SGML kompatibel sein,&lt;br /&gt;
* eine Programmierung von Anwendungen, welche XML Dokumente verarbeiten können, soll einfach möglich sein,&lt;br /&gt;
* die Anzahl von optionalen Features soll in XML so gering wie möglich gehalten werden und optimal Null sein,&lt;br /&gt;
* XML Dokumente sollen menschenlesbar und leicht verständlich sein,&lt;br /&gt;
* die Modellierung von XML Dokumenten soll schnell erstellt werden können,&lt;br /&gt;
* das Design von XML Dokumenten soll formal und präzise sein,&lt;br /&gt;
* die Erstellung von XML Dokumenten soll einfach sein und&lt;br /&gt;
* die Kürze und Kompaktheit der XML Elemente ist von geringer Bedeutung.&lt;br /&gt;
Der Hauptvorteil bei XML liegt, im Gegensatz zu eigen entwickelten Dateistrukturmodellen, in der schnellen und einheitlichen Verarbeitbarkeit für den Entwickler. In nahezu jeder gängigen Programmiersprache existieren bereits fertige Parser, welche die Generierung und Verarbeitung der Datenstrukturen, ohne größeren Programmieraufwand, ermöglichen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;aufbau-eines-xml-dokuments&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Aufbau eines XML Dokuments ===&lt;br /&gt;
&lt;br /&gt;
Jedes XML Dokument beinhaltet &amp;#039;&amp;#039;&amp;#039;ein einziges&amp;#039;&amp;#039;&amp;#039; XML &amp;#039;&amp;#039;&amp;#039;Wurzel-Element&amp;#039;&amp;#039;&amp;#039;, welches selbst jeweils wiederum beliebig viele weitere &amp;#039;&amp;#039;&amp;#039;Elemente&amp;#039;&amp;#039;&amp;#039; beinhalten kann. Alle Elemente dürfen wiederum beliebig viele weitere Elemente enthalten. Zusätzlich kann das Dokument &amp;#039;&amp;#039;&amp;#039;XML Deklarationen&amp;#039;&amp;#039;&amp;#039;, auch bezeichnet als Processing Instructions (PI), und beliebig viele &amp;#039;&amp;#039;&amp;#039;Kommentare&amp;#039;&amp;#039;&amp;#039; enthalten. Die Zeichenkodierung der Dokumente darf &amp;#039;&amp;#039;&amp;#039;alle Unicodezeichen&amp;#039;&amp;#039;&amp;#039; enthalten, wobei jedes XML verarbeitende Programm zumindest die Kodierungen UTF-8 und UTF-16 akzeptieren muss. Alle Bezeichnungen eines Dokuments, seien es die von Elementen oder Attributen, sind &amp;#039;&amp;#039;&amp;#039;Case Sensitive&amp;#039;&amp;#039;&amp;#039;. Da es sich dabei um ein einfaches Textdokument handelt, kann es auch von allen Texteditoren und Internetbrowsern, ohne weitere Hilfsmittel und Plugins, angezeigt werden. (World Wide Web Consortium (W3C), 2008)&lt;br /&gt;
&lt;br /&gt;
Vom Aufbau sehen sich XML und HTML (Hypertext Markup Language) Dokumente sehr ähnlich. Sie unterscheiden sich jedoch darin, dass die Art und teilweise die Anzahl der Elemente in HTML fest vorgegeben, in XML jedoch alle Elemente frei modellierbar, sind. Das Metamodell der zu verwendeten Elemente eines XML Dokuments kann somit vom Modellierer selbst festgelegt werden. HTML dient der Modellierung von Webseitendokumenten und hat fest vorgegebene Strukturen und Elemente um eine einheitliche grafische Verarbeitung durch die Internetbrowser zu ermöglichen. Das Design der Elemente selbst ist jedoch in beiden Fällen sehr restriktiv vorgegeben.&lt;br /&gt;
&lt;br /&gt;
Die &amp;#039;&amp;#039;&amp;#039;XML Deklaration&amp;#039;&amp;#039;&amp;#039; gibt die eingesetzte XML Version, und optional das Encoding, an. Dadurch wird den verarbeitenden Programmen die Verarbeitung erleichtert. Gerade die Angabe des Encodings kann viele Verarbeitungsprobleme im Vorfeld abfangen, da der Parser damit die eingesetzten Zeichen kennt und sie korrekt interpretieren kann. Nachfolgend ist in Abbildung 10 ein minimales XML Dokument dargestellt, welches nur eine XML Deklaration und ein einzelnes XML Element, namens „mein_wurzel_element“, ohne weitere Attribute und ohne Wert, beinhaltet.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;mein_wurzel_element /&amp;amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref402861975&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 10 – Minimales XML Dokument&lt;br /&gt;
&lt;br /&gt;
Da einige Zeichen in der XML Syntax eine spezielle Bedeutung haben, müssen sie im Text nötigenfalls in einer anderen Form geschrieben werden, um sie innerhalb von XML Elementen nutzen zu können:&lt;br /&gt;
&lt;br /&gt;
* &amp;amp;lt; wird zu &amp;#039;&amp;#039;&amp;amp;amp;lt;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;amp;gt; wird zu &amp;#039;&amp;#039;&amp;amp;amp;gt;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;amp;quot; wird zu &amp;#039;&amp;#039;&amp;amp;amp;quot;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039; wird zu &amp;#039;&amp;#039;&amp;amp;amp;apos;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;amp;amp; wird zu &amp;#039;&amp;#039;&amp;amp;amp;amp;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;xml-elemente&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== XML-Elemente ===&lt;br /&gt;
&lt;br /&gt;
Die einzelnen XML Elemente sind alle nach demselben Schema aufgebaut. Sie haben eine &amp;#039;&amp;#039;&amp;#039;Elementbezeichnung&amp;#039;&amp;#039;&amp;#039; und können &amp;#039;&amp;#039;&amp;#039;beliebig viele Attribute&amp;#039;&amp;#039;&amp;#039; enthalten. Weiter können sie selbst einen &amp;#039;&amp;#039;&amp;#039;Inhalt&amp;#039;&amp;#039;&amp;#039; haben, welcher wiederum aus Elementen bestehen kann.&lt;br /&gt;
&lt;br /&gt;
Ein Element besteht aus einem oder zwei sogenannten Tags. Ein &amp;#039;&amp;#039;&amp;#039;Tag&amp;#039;&amp;#039;&amp;#039; wird durch &amp;#039;&amp;#039;&amp;#039;spitze Klammern (&amp;amp;lt;,&amp;amp;gt;)&amp;#039;&amp;#039;&amp;#039; an seinem Beginn und Ende ausgezeichnet. Ob ein Element aus &amp;#039;&amp;#039;&amp;#039;einem oder zwei Tags&amp;#039;&amp;#039;&amp;#039; besteht, hängt davon ab, &amp;#039;&amp;#039;&amp;#039;ob es selbst einen eigenen Inhalt&amp;#039;&amp;#039;&amp;#039; besitzt, oder nicht. Der Inhalt kann aus Text oder weiteren Elementen bestehen. Am &amp;#039;&amp;#039;&amp;#039;Beginn&amp;#039;&amp;#039;&amp;#039; jedes Tags steht der &amp;#039;&amp;#039;&amp;#039;Name des Elements&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Hat ein Element &amp;#039;&amp;#039;&amp;#039;keinen&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;Inhaltsbereich&amp;#039;&amp;#039;&amp;#039;, besteht es aus nur &amp;#039;&amp;#039;&amp;#039;einen einzigen Tag.&amp;#039;&amp;#039;&amp;#039; Dessen abschließenden spitzen Klammer wird ein Schrägstrich vorangestellt &amp;#039;&amp;#039;(&amp;amp;lt;elementname /&amp;amp;gt;&amp;#039;&amp;#039;) um die Abwesenheit eines Inhaltbereiches zu signalisieren.&lt;br /&gt;
&lt;br /&gt;
Sollte das Element dahingegen &amp;#039;&amp;#039;&amp;#039;einen Inhaltsbereich&amp;#039;&amp;#039;&amp;#039; haben, wird der erste Tag durch eine einfache spitze Klammer geschossen &amp;#039;&amp;#039;(&amp;amp;lt;elementname&amp;amp;gt;&amp;#039;&amp;#039;). Danach folgt dann der eigentliche Inhalt des Elements. Nach dem Inhalt, und damit am Ende des Elements, steht in diesem Fall ein zweiter Tag, welcher wiederum einen Schrägstrich nach der einleitenden spitzen Klammer hat (&amp;#039;&amp;#039;&amp;amp;lt;/elementname&amp;amp;gt;).&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Die &amp;#039;&amp;#039;&amp;#039;Attribute&amp;#039;&amp;#039;&amp;#039; eines Elements befinden sich immer innerhalb des ersten Tags. In einem Element darf ein gewählter Attributname nur einmal vorkommen. Somit ist es beispielsweise nicht möglich einem Element „person“ mehrmals das Attribut „name“ zu zuzuweisen. die Reihenfolge der einzelnen Attribute eines Elements ist dahingegen nicht relevant und kann beliebig gewählt werden. Ein möglicher Aufbau eines Elements „person“ mit den Attributen „vorname“, „nachname“ und „ausweisnummer“ ist in Abbildung 11 dargestellt.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;person vorname=&amp;amp;quot;Peter&amp;amp;quot; nachname=&amp;amp;quot;Völkl&amp;amp;quot; ausweisnummer=&amp;amp;quot;1234567&amp;amp;quot;/&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref402865176&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 11 – XML Element „person“&lt;br /&gt;
&lt;br /&gt;
In Abbildung 12 sind weiter:&lt;br /&gt;
&lt;br /&gt;
* ein Element &amp;#039;&amp;#039;„element_1“&amp;#039;&amp;#039; ohne Inhalt und ohne Attribute,&lt;br /&gt;
* ein Element &amp;#039;&amp;#039;„element_2“&amp;#039;&amp;#039; ohne Inhalt und mit Attributen,&lt;br /&gt;
* ein Element &amp;#039;&amp;#039;„element_3“&amp;#039;&amp;#039; mit Inhalt und ohne Attributen,&lt;br /&gt;
* ein Element &amp;#039;&amp;#039;„element_4“&amp;#039;&amp;#039; mit Inhalt und mit Attribut und&lt;br /&gt;
* ein Element &amp;#039;&amp;#039;„element_5“&amp;#039;&amp;#039; mit Attributen und weiteren Elementen im Inhalt exemplarisch dargestellt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;amp;lt;element_1 /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;element_2 attribut_1=&amp;amp;quot;Attributwert 1&amp;amp;quot; attribut_2=&amp;amp;quot;Attributwert 2&amp;amp;quot; attribut_3=&amp;amp;quot;Attributwert 3&amp;amp;quot;/&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;element_3&amp;amp;gt;Dies ist ein Inhaltstext&amp;amp;lt;/element_3&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;element_4 attribut_1=&amp;amp;quot;Wert 1&amp;amp;quot;&amp;amp;gt;Noch ein Inhaltstext&amp;amp;lt;/element_4&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;element_5 attribut_1=&amp;amp;quot;Attributwert 1&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;element_1 /&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;element_2 attribut1=&amp;amp;quot;Test 1&amp;amp;quot;&amp;lt;br&amp;gt;&lt;br /&gt;
attribut_2=&amp;amp;quot;Test 2&amp;amp;quot; attribut_3=&amp;amp;quot;Attributwert 3&amp;amp;quot;/&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;element_3&amp;amp;gt;Dies ist ein anderer Inhaltstext&amp;amp;lt;/element_3&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/element_5&amp;amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref402870210&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 12 – XML Elemente mit unterschiedlichen Tags&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;kommentare&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Kommentare ===&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den Deklarationen und Elementen, kann ein XML Dokument auch Kommentare enthalten. Diese können sich an jeder Position im Dokument befinden an der auch ein Element stehen dürfte, also überall außer im Attributbereich eines Tags. Sie werden bei der Interpretation des Dokuments ignoriert. Kommentare dienen primär der Lesbarkeit durch Menschen. Mit ihnen können einzelne Teile des Dokuments mit Erklärungen versehen werden, die dem Anwender bei nicht automatisierter Betrachtung helfen können, den Inhalt zu verstehen.&lt;br /&gt;
&lt;br /&gt;
Ein Kommentar ist hinlänglich seines Inhaltes kaum beschränkt. Es darf einzig keine zwei direkt zusammenhängenden Minuszeichen (--) enthalten. Sollte sich innerhalb eines Kommentars ein XML Element befinden, wird es nicht als Element, sondern als Kommentartext interpretiert. Damit können auch einzelne Teile eines Dokuments „auskommentiert“ werden, um sie bei der Interpretation zu ignorieren, ohne sie aus dem Dokument löschen zu müssen. Dies ist gerade bei der Entwicklung von Schnittstellen hilfreich, da die Musterdateien somit abgeändert werden können, ohne einzelne Inhalte zu löschen.&lt;br /&gt;
&lt;br /&gt;
Kommentare werden durch die Zeichenfolge &amp;#039;&amp;#039;&amp;amp;lt;!--&amp;#039;&amp;#039; begonnen und danach durch &amp;#039;&amp;#039;--&amp;amp;gt;&amp;#039;&amp;#039; wieder beendet. Alle Zeichen, welche sich zwischen diesen beiden Teilen befinden gelten damit als Kommentartext und nicht als XML Element.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;document-type-definitions-dtd&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Document Type Definitions (DTD) ===&lt;br /&gt;
&lt;br /&gt;
Die Document Type Definition (DTD) wird verwendet um die &amp;#039;&amp;#039;&amp;#039;Struktur eines XML Dokuments&amp;#039;&amp;#039;&amp;#039; zu definieren. Ohne eine DTD darf es auf beliebigen Elementen in beliebiger Reihenfolge mit beliebigem Inhalt und Attributen aufgebaut sein. Die DTD schränkt nun genau diese Freiheit wieder ein und definiert damit das &amp;#039;&amp;#039;&amp;#039;Metamodell des XML Dokuments&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Um, in einem XML Dokument, eine zugehörige DTD anzugeben. Wird eine eigene Deklaration verwendet, welche am Beginn des Dokumentes nach der XML Deklaration stehen muss. Sie wird mit &amp;#039;&amp;#039;&amp;amp;lt;!DOCTYPE&amp;#039;&amp;#039; eingeleitet und wiederum mit einer einfachen Spitzen Klammer abgeschlossen. Es kann auch mehrere dieser Deklarationen in einem Dokument geben.&lt;br /&gt;
&lt;br /&gt;
Innerhalb der DTD Deklaration des XML Dokuments wird zuerst der Name der Dokumentenart angegeben und danach einer der Identifier SYSTEM oder PUBLIC, sowie ihre zugehörigen Parameter.&lt;br /&gt;
&lt;br /&gt;
Der Identifier &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;SYSTEM&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; gibt an, dass es sich dabei um eine eigene Definition handelt. Der zugehörige Parameter ist hierbei der Pfad zu der Datei, welche die angegebene DTD enthält.&lt;br /&gt;
&lt;br /&gt;
Der Identifier &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;PUBLIC&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; weist auf eine allgemein standardisierte DTD hin, welche dem XML Parser bekannt sein sollte. Hier werden zwei Parameter benötigt. Der Erste gibt an, um welchen Public Identifier es sich dabei handelt und der zweite Parameter verweist optional auf eine alternative DTD Datei, welche verwendet wird falls der genannte Identifier dem Parser nicht bekannt ist.&lt;br /&gt;
&lt;br /&gt;
In Abbildung 13 ist die Deklaration einer eigenen DTD „schema.dtd“ angegeben und in Abbildung 14 die Deklaration eines XML Dokumentes als, dem System bekannten, Dokumententyp HTML.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!DOCTYPE mein_schema SYSTEM &amp;amp;quot;schema.dtd&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref402877835&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 13 – XML DOCTYPE für eigene DTD&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!DOCTYPE HTML PUBLIC &amp;amp;quot;-//W3C//DTD HTML 4.01 //EN&amp;amp;quot; &amp;amp;quot;http://www.w3.org/TR/html4/strict.dtd&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref402877870&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 14 – XML DOCTYPE für HTML&lt;br /&gt;
&lt;br /&gt;
In der DTD Datei können nun die einzelnen Elemente und die Struktur des XML Dokuments definiert werden:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Elemente&amp;#039;&amp;#039;&amp;#039; werden durch &amp;amp;lt;!ELEMENT …&amp;amp;gt; und&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Attribute&amp;#039;&amp;#039;&amp;#039; über &amp;amp;lt;!ATTLIST …&amp;amp;gt; definiert.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Element Definition &amp;amp;lt;!ELEMENT …&amp;amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Bei der Definition eines Elements wird sowohl die &amp;#039;&amp;#039;&amp;#039;Bezeichnung des Elements&amp;#039;&amp;#039;&amp;#039;, als auch sein &amp;#039;&amp;#039;&amp;#039;möglicher Inhalt&amp;#039;&amp;#039;&amp;#039; definiert. Dabei wird als erstes der Elementname und dahinter der Inhalt in Klammer angegeben.&lt;br /&gt;
&lt;br /&gt;
Der &amp;#039;&amp;#039;&amp;#039;Inhalt&amp;#039;&amp;#039;&amp;#039; kann entweder:&lt;br /&gt;
&lt;br /&gt;
* leer (Schlüsselwort &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;EMPTY&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;),&lt;br /&gt;
* beliebig (Schlüsselwort &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;ANY&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;),&lt;br /&gt;
* reiner Text (Schlüsselwort &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;#PCDATA&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;) oder&lt;br /&gt;
* weitere Elemente (Angabe des gewünschten &amp;#039;&amp;#039;&amp;#039;Elementnamen&amp;#039;&amp;#039;&amp;#039;) sein.&lt;br /&gt;
Dabei sind auch die Angaben unterschiedlicher Inhalte und Typen kombinierbar.&lt;br /&gt;
&lt;br /&gt;
Sollen mehrere Inhalte, wie beispielsweise unterschiedliche Elemente, beinhaltet sein, werden diese innerhalb der Klammer durch &amp;#039;&amp;#039;&amp;#039;Beistriche&amp;#039;&amp;#039;&amp;#039; ( &amp;#039;&amp;#039;&amp;#039;,&amp;#039;&amp;#039;&amp;#039; ) oder &amp;#039;&amp;#039;&amp;#039;Pipes&amp;#039;&amp;#039;&amp;#039; ( &amp;#039;&amp;#039;&amp;#039;|&amp;#039;&amp;#039;&amp;#039; ) getrennt.&lt;br /&gt;
&lt;br /&gt;
Dabei gibt ein &amp;#039;&amp;#039;&amp;#039;Beistrich&amp;#039;&amp;#039;&amp;#039; das Vorhandensein beider Elemente in &amp;#039;&amp;#039;&amp;#039;genau dieser Reihenfolge&amp;#039;&amp;#039;&amp;#039; und eine &amp;#039;&amp;#039;&amp;#039;Pipe&amp;#039;&amp;#039;&amp;#039; das Vorhandensein &amp;#039;&amp;#039;&amp;#039;nur&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;eines der beiden Elemente&amp;#039;&amp;#039;&amp;#039; an.&lt;br /&gt;
&lt;br /&gt;
Weiter sind auch &amp;#039;&amp;#039;&amp;#039;Verschachtelungen&amp;#039;&amp;#039;&amp;#039; dieser beiden Operatoren durch Setzen von &amp;#039;&amp;#039;&amp;#039;Klammern&amp;#039;&amp;#039;&amp;#039; zulässig.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich gibt es noch die Möglichkeit hinter jedem Element, oder Klammerausdruck, anzugeben, ob das Element:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;optional&amp;#039;&amp;#039;&amp;#039; ist (durch ein Fragezeichen: &amp;#039;&amp;#039;&amp;#039;?&amp;#039;&amp;#039;&amp;#039;),&lt;br /&gt;
* beliebig &amp;#039;&amp;#039;&amp;#039;oft aber&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;mindestens einmal&amp;#039;&amp;#039;&amp;#039; vorkommt (durch ein Pluszeichen: &amp;#039;&amp;#039;&amp;#039;+&amp;#039;&amp;#039;&amp;#039;) oder&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;beliebig oft&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;und optional&amp;#039;&amp;#039;&amp;#039; vorkommen kann (durch einen Stern: &amp;#039;&amp;#039;&amp;#039;*&amp;#039;&amp;#039;&amp;#039;).&lt;br /&gt;
Wird hinter einem Eintrag keine Angabe über die Häufigkeit gemacht, muss er genau einmal vorkommen.&lt;br /&gt;
&lt;br /&gt;
Im nachfolgenden Beispiel, in Abbildung 15, sind folgende Elemente definiert:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;element_1&amp;#039;&amp;#039; hat keinen Inhalt,&lt;br /&gt;
* &amp;#039;&amp;#039;element_2&amp;#039;&amp;#039; hat einen Textinhalt,&lt;br /&gt;
* &amp;#039;&amp;#039;element_3&amp;#039;&amp;#039; beinhaltet &amp;#039;&amp;#039;element_1&amp;#039;&amp;#039; und &amp;#039;&amp;#039;element_2&amp;#039;&amp;#039;,&lt;br /&gt;
* &amp;#039;&amp;#039;element_4&amp;#039;&amp;#039; beinhaltet &amp;#039;&amp;#039;element_1&amp;#039;&amp;#039; und (entweder &amp;#039;&amp;#039;element_2&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;element_3&amp;#039;&amp;#039;),&lt;br /&gt;
* &amp;#039;&amp;#039;element_5&amp;#039;&amp;#039; beinhaltet 0-n Mal &amp;#039;&amp;#039;element_1&amp;#039;&amp;#039; und 1-n Mal &amp;#039;&amp;#039;element_4&amp;#039;&amp;#039;,&lt;br /&gt;
* &amp;#039;&amp;#039;element_6&amp;#039;&amp;#039; beinhaltet optional &amp;#039;&amp;#039;element_4&amp;#039;&amp;#039;,&lt;br /&gt;
* &amp;#039;&amp;#039;element_7&amp;#039;&amp;#039; beinhaltet &amp;#039;&amp;#039;element_1&amp;#039;&amp;#039; und optional &amp;#039;&amp;#039;element_7&amp;#039;&amp;#039; und&lt;br /&gt;
* &amp;#039;&amp;#039;element_8&amp;#039;&amp;#039; beinhaltet beliebig viele &amp;#039;&amp;#039;element_1&amp;#039;&amp;#039;, &amp;#039;&amp;#039;element_2&amp;#039;&amp;#039; und &amp;#039;&amp;#039;element_3&amp;#039;&amp;#039; in beliebiger Reihenfolge.&lt;br /&gt;
Bei der Definition von verschachtelten Elementen sind auch &amp;#039;&amp;#039;&amp;#039;Rekursionen zulässig&amp;#039;&amp;#039;&amp;#039;, wie das gerade genannte Beispiel mit element_7 zeigt. Hier muss jedoch darauf geachtet werden, die Rekursion &amp;#039;&amp;#039;&amp;#039;als optional zu deklarieren&amp;#039;&amp;#039;&amp;#039; (Angabe von ?, * oder |), da die Rekursion sonst verpflichtend endlos und damit nie erfüllbar wäre.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;amp;lt;!ELEMENT element_1 EMPTY&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT element_2 #PCDATA&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT element_3 (element_1, element_2)&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT element_4 (element_1, (element_2 | element_3))&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT element_5 (element_1*, element_4+)&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT element_6 (element_4?)&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT element_7 (element_1, element_7?)&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT element_8 (element_1|element_2|element_3)*&amp;amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref402881692&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 15 – DTD Elemente&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Attribut Definition &amp;amp;lt;!ATTLIST …&amp;amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Um ein definiertes Element &amp;#039;&amp;#039;&amp;#039;mit Attributen auszustatten&amp;#039;&amp;#039;&amp;#039; wird mittels &amp;#039;&amp;#039;&amp;amp;lt;!ATTLIST&amp;#039;&amp;#039; eine Attributliste definiert. Dazu wird zuerst der &amp;#039;&amp;#039;&amp;#039;Name&amp;#039;&amp;#039;&amp;#039; des Elements angegeben, für das die Attributliste gilt sowie danach der &amp;#039;&amp;#039;&amp;#039;Attributname&amp;#039;&amp;#039;&amp;#039; und sein &amp;#039;&amp;#039;&amp;#039;Typ,&amp;#039;&amp;#039;&amp;#039; sowie optional eine Definition von möglichen Werten und ob der Parameter verpflichtend vorkommen muss. Dabei können entweder &amp;#039;&amp;#039;&amp;#039;mehrere Attribute in einer Definition&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;oder jedes Attribut einzeln&amp;#039;&amp;#039;&amp;#039; in einer &amp;#039;&amp;#039;&amp;#039;eigenen Definition&amp;#039;&amp;#039;&amp;#039; angegeben werden.&lt;br /&gt;
&lt;br /&gt;
Mögliche Datentypen für Attribute sind:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;CDATA&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; für beliebige Zeichenketten,&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;ID&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; für einen eindeutigen Wert unter den Elementen desselben Typs innerhalb des XML Dokuments,&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;IDREF&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; für eine Referenz auf ein anderes Element desselben Typs innerhalb des Dokuments mittels Wert des ID Attributs,&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;ENTITY&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; für eine Referenz auf ein externes Element,&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;ENTITYS&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; für eine Liste von &amp;#039;&amp;#039;ENTITY‘s&amp;#039;&amp;#039;,&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;NMTOKEN&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; für einen Namen (eine Bezeichnung) des Elements innerhalb des XML Dokuments,&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;NMTOKENS&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; für eine Liste von &amp;#039;&amp;#039;NMTOKEN’s&amp;#039;&amp;#039; oder&lt;br /&gt;
* eine fest definierte &amp;#039;&amp;#039;&amp;#039;Menge möglicher Eingabewerte&amp;#039;&amp;#039;&amp;#039;, getrennt durch Pipes in der Form &amp;#039;&amp;#039;(wert1|wert2|wert2).&amp;#039;&amp;#039;&lt;br /&gt;
Zusätzlich kann hinter der Angabe des Datentyps noch:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;#REQUIRED&amp;#039;&amp;#039;&amp;#039;, für verpflichtend anzugebende Attribute,&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;#IMPLIED&amp;#039;&amp;#039;&amp;#039;, für optionale Attribute,&lt;br /&gt;
* oder ein &amp;#039;&amp;#039;&amp;#039;automatischer Standardwert&amp;#039;&amp;#039;&amp;#039; in Anführungszeichen,&lt;br /&gt;
angegeben werden.&lt;br /&gt;
&lt;br /&gt;
Eine Sonderform der Angabe des Standardwertes ist der Parameter &amp;#039;&amp;#039;&amp;#039;#FIXED&amp;#039;&amp;#039;&amp;#039;, gefolgt von einem Standardwert in Anführungszeichen. Dabei handelt es sich um einen nicht veränderbaren Standardwert bzw. einen statischen Attributwert.&lt;br /&gt;
&lt;br /&gt;
Im nachfolgenden Beispiel, in Abbildung 16, wird eine DTD für ein Element &amp;#039;&amp;#039;element_1&amp;#039;&amp;#039; mit den Attributen &amp;#039;&amp;#039;e1_id&amp;#039;&amp;#039;, welches eine eindeutige ID innerhalb des Dokuments enthält, &amp;#039;&amp;#039;e1_name&amp;#039;&amp;#039;, welches eine eindeutige Bezeichnung des Element enthält, &amp;#039;&amp;#039;e1_kommentar&amp;#039;&amp;#039;, welches einen Kommentartext enthalten soll und &amp;#039;&amp;#039;e1_wochentag&amp;#039;&amp;#039;, welches ein Wochentagkürzel enthält.&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;amp;lt;!ELEMENT element_1 EMPTY&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST element_1 e1_id ID&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST element_1 e1_name ENTITY&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST element_1 e1_kommentar CDATA&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST element_1 e1_wochentag (MO|DI|MI|DO|FR|SA|SO)&amp;amp;gt;&lt;br /&gt;
&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref403373630&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 16 – DTD Attribute&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;beispiel-eines-xml-modells&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Beispiel eines XML Modells ===&lt;br /&gt;
&lt;br /&gt;
Anforderungsbeschreibung:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;„Eine Bank gliedert sich in Filialen. Filialen werden an ihrem Namen unterschieden, sind in einer Stadt beheimatet und weisen ein Vermögen aus. Jede Filiale verwaltet ihre eigenen Konten und Kredite, die über Nummern identifiziert werden. Jedes Konto und jeder Kredit besitzt eine eindeutige Nummer und weist einen Kontostand (bei Konto) bzw. einen Betrag (bei Krediten) auf. Kunden wiederum besitzen Konten und haben auch Kredite laufen, wobei jedes Konto wie auch jeder Kredit genau einem oder mehreren Kunden zugeordnet wird. Kunden haben einen eindeutigen Namen und wohnen in einer Straße in einer Stadt.“&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Die Anforderungsbeschreibung gleicht der des Beispiels eines ER Modells in Punkt 2.1.2. In diesem Fall soll jedoch kein Datenbankmodell, sondern ein Modell für ein Dateibasiertes XML Dokument für den Datenaustausch erstellt werden. Eine mögliche Modellierung dieser Anforderungsbeschreibung als DTD findet sich in Abbildung 17 und ein mögliches darauf basierendes XML Dokument in Abbildung 18. Dabei wurde aus Sicht der Filialen ausgegangen. Eine Betrachtung aus Sicht des Kontos, Kredites oder aus Sicht des Kunden wäre ebenfalls möglich. Dies hängt natürlich stark vom beabsichtigten Modellierungszweck ab. Als Wurzelelement dient das Element Filialliste, welches 0-n Filialen enthalten darf.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT filialliste (filiale*)&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT filiale (kredit*, konto*)&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST filiale filialname ID&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST filiale stadt CDATA&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST filiale vermoegen CDATA&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT kredit (kunde)&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST kredit nummer ID&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST kredit betrag CDATA&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT konto (kunde)&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST konto nummer ID&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST konto kontostand CDATA&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ELEMENT kunde EMPTY&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST kunde name ID&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST kunde strasse CDATA&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!ATTLIST kunde stadt CDATA&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref403048292&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 17 – Beispiel „Bank“: XML-Modell, DTD Datei&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot;?&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;!DOCTYPE bank SYSTEM &amp;amp;quot;bank.dtd&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;filialliste&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;filiale filialname=&amp;amp;quot;Meine Bank&amp;amp;quot; stadt=&amp;amp;quot;Wien&amp;amp;quot; vermoegen=&amp;amp;quot;5 mrd eur&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;kredit nummer=&amp;amp;quot;100&amp;amp;quot; betrag=&amp;amp;quot;200000 eur&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;kunde name=&amp;amp;quot;Max Muster&amp;amp;quot; strasse=&amp;amp;quot;Musterplatz 1&amp;amp;quot; stadt=&amp;amp;quot;Wien&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/kredit&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;kredit nummer=&amp;amp;quot;101&amp;amp;quot; betrag=&amp;amp;quot;10000 eur&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;kunde name=&amp;amp;quot;Maria Muster&amp;amp;quot; strasse=&amp;amp;quot;Mustergasse 3&amp;amp;quot; stadt=&amp;amp;quot;Wien&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/kredit&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/filiale&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;filiale filialname=&amp;amp;quot;Deine Bank&amp;amp;quot; stadt=&amp;amp;quot;Wien&amp;amp;quot; vermoegen=&amp;amp;quot;1 mrd eur&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;konto nummer=&amp;amp;quot;200&amp;amp;quot; kontostand=&amp;amp;quot;3000 eur&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;kunde name=&amp;amp;quot;Hans Meier&amp;amp;quot; strasse=&amp;amp;quot;Mustergasse 1&amp;amp;quot; stadt=&amp;amp;quot;Graz&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/konto&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/filiale&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;filiale filialname=&amp;amp;quot;Seine Bank&amp;amp;quot; stadt=&amp;amp;quot;Wien&amp;amp;quot; vermoegen=&amp;amp;quot;2 mrd eur&amp;amp;quot;&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/filiale&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;amp;lt;/filialliste&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref403048379&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 18 – Beispiel „Bank“: XML-Modell, XML Datei&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;javascript-object-notation-json&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== JavaScript Object Notation (JSON) ==&lt;br /&gt;
&lt;br /&gt;
Die JavaScript Object Notation (JSON) wurde ursprünglich zur Speicherung und Übertragung von Datenstrukturen in JavaScript entwickelt. Es handelt sich dabei um ein reines Textformat, welches, ähnlich wie in XML, durch die Vorgabe einer klaren Struktur, eine einheitliche Abbildung von Daten ermöglicht. JSON ist in der RFC 4627 definiert und ist wiederum Teil des ECMAScript Programming Standards, welcher wiederum die wesentlichen Objekt Literale von JavaScrip definiert. (RFC Network Working Group, 2006)&lt;br /&gt;
&lt;br /&gt;
Genau wie in XML, zeichnet sich JSON durch seine Menschenlesbarkeit und die Vielzahl verfügbarer Implementierungen in allen gängigen Programmiersprachen aus. JSON ist somit nicht auf JavaScript beschränkt, hat dort jedoch seinen eigentlichen Ursprung. Damit ist auch hier eine schnelle und einfache Implementierung von Nahtstellen zwischen unterschiedlichen Anwendungen möglich. Da die Syntax in JSON wesentlich kompakter geschrieben wird, als in XML, wird es häufig für die Datenübertragungen in Webservices, wie beispielsweise Services mit REST Schnittstellen (Fielding, 2000), eingesetzt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;aufbau-eines-json-dokuments&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Aufbau eines JSON Dokuments ===&lt;br /&gt;
&lt;br /&gt;
Die &amp;#039;&amp;#039;&amp;#039;Elemente&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;Attribute&amp;#039;&amp;#039;&amp;#039; sind in JSON werden als &amp;#039;&amp;#039;&amp;#039;Objekte&amp;#039;&amp;#039;&amp;#039; und &amp;#039;&amp;#039;&amp;#039;Key-Values&amp;#039;&amp;#039;&amp;#039; bezeichnet. Jede Struktur ist über Objekte Abgebildet, welche selbst wiederum beliebig Objekte enthalten können. Ähnlich wie in XML muss in der obersten Hierarchiestufe ein einzelnes Objekt stehen. Die gemeinsame Verschachtelung von Objekten geschieht über &amp;#039;&amp;#039;&amp;#039;Arrays&amp;#039;&amp;#039;&amp;#039; Struktur.&lt;br /&gt;
&lt;br /&gt;
Die möglichen &amp;#039;&amp;#039;&amp;#039;Datentypen&amp;#039;&amp;#039;&amp;#039; der einzelnen Objekte sind:&lt;br /&gt;
&lt;br /&gt;
* String,&lt;br /&gt;
* Number,&lt;br /&gt;
* Boolean und&lt;br /&gt;
* null.&lt;br /&gt;
Sie müssen jedoch nicht eigens deklariert werden, sondern ergeben sich durch ihre Schreibweise innerhalb der Datei. &amp;#039;&amp;#039;Strings&amp;#039;&amp;#039; werden mit umschließenden Anführungszeichen geschrieben, &amp;#039;&amp;#039;Numbers&amp;#039;&amp;#039; in Zahlenschreibweise ohne Anführungszeichen und &amp;#039;&amp;#039;Booleans&amp;#039;&amp;#039; direkt als Werte &amp;#039;&amp;#039;true&amp;#039;&amp;#039; und &amp;#039;&amp;#039;false&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Objekte werden durch geschwungene Klammern ( &amp;#039;&amp;#039;&amp;#039;{&amp;#039;&amp;#039;&amp;#039; , &amp;#039;&amp;#039;&amp;#039;}&amp;#039;&amp;#039;&amp;#039; ) deklariert. Sie können beliebig viele Key-Values enthalten. Nach dem Namen einer Key-Value steht immer ein Doppelpunkt, gefolgt von ihrem enthaltenen Wert, welcher wiederum ein eigenes Objekt sein kann. Die einzelnen Key-Values werden durch Beistriche getrennt. Ein Wert kann auch ein Array aus Werten sein. Es wird durch eckige Klammern ( &amp;#039;&amp;#039;&amp;#039;[&amp;#039;&amp;#039;&amp;#039; , &amp;#039;&amp;#039;&amp;#039;]&amp;#039;&amp;#039;&amp;#039; ) deklariert und enthält beliebig viele, durch Beistriche getrennte, Werte.&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zu XML gibt es in JSON Dateien &amp;#039;&amp;#039;&amp;#039;keine Kommentare&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Der Text der JSON Dokumente soll laut Spezifikation (RFC Network Working Group, 2006) Unicode kodiert sein, wobei standardmäßig UTF-8 verwendet wird. Der verwendete Zeichensatz des Dokuments wird vom Parser über seine ersten beiden Zeichen erkannt. Es werden dazu die, in ihrer binären Form, enthaltenen Nullen betrachtet:&lt;br /&gt;
&lt;br /&gt;
* 00 00 00 xx ergibt UTF-32BE &amp;lt;ref&amp;gt;Die Zusätze &amp;#039;&amp;#039;BE&amp;#039;&amp;#039; und &amp;#039;&amp;#039;LE&amp;#039;&amp;#039; steht für &amp;#039;&amp;#039;Big Endian&amp;#039;&amp;#039; und &amp;#039;&amp;#039;Little Endian&amp;#039;&amp;#039; und beziehen sich auf die Reihenfolge in der die einzelnen Bits des Zeichens gespeichert werden. Somit steht das erste Bit des Zeichens entweder links (LE) oder rechts (BE) in der binären Abbildung.&amp;lt;/ref&amp;gt; ,&lt;br /&gt;
* 00 xx 00 xx ergibt UTF-16BE,&lt;br /&gt;
* xx 00 00 00 ergibt UTF-32LE,&lt;br /&gt;
* xx 00 xx 00 ergibt UTF-16LE und&lt;br /&gt;
* xx xx xx xx ergibt UTF-8.&lt;br /&gt;
In Abbildung 19 ist ein JSON Objekt für eine Person definiert, welches Key-Values für einen Vornamen, einen Nachnamen und eine Ausweisnummer enthält. Weiter hat die Person ein Array mit Objekten, welche je einen Schlüssel der Person mit der jeweiligen Raumnummer abbilden.&lt;br /&gt;
&lt;br /&gt;
{&amp;amp;quot;vorname&amp;amp;quot; : &amp;amp;quot;Peter&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;nachname&amp;amp;quot; : &amp;amp;quot;Völkl&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;ausweisnummer&amp;amp;quot; : 1234567,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;schluessel&amp;amp;quot; : [{&amp;amp;quot;raumnummer&amp;amp;quot; : 22},{&amp;amp;quot;raumnummer&amp;amp;quot; : 33}]&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref403379545&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 19 – Beispiel JSON Objekt&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;json-schema&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== JSON Schema ===&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zu XML gibt es bei JSON Daten keine standardisierte Möglichkeit eine eigene, formale, Definition zu erstellen, gegen welche die Struktur automatisiert geprüft werden kann. Eine entsprechende Standardisierung, das JSON Schema, befindet sich derzeit in Ausarbeitung und liegt bereits im Entwurfsstadium vor. Es kann jedoch aktuell nicht davon ausgegangen werden, dass diese unfertige Standardisierung mit jedem Parser eingesetzt werden kann. (Galiegue, 2013)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;beispiel-eines-json-modells&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Beispiel eines JSON Modells ===&lt;br /&gt;
&lt;br /&gt;
Anforderungsbeschreibung:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;„Eine Bank gliedert sich in Filialen. Filialen werden an ihrem Namen unterschieden, sind in einer Stadt beheimatet und weisen ein Vermögen aus. Jede Filiale verwaltet ihre eigenen Konten und Kredite, die über Nummern identifiziert werden. Jedes Konto und jeder Kredit besitzt eine eindeutige Nummer und weist einen Kontostand (bei Konto) bzw. einen Betrag (bei Krediten) auf. Kunden wiederum besitzen Konten und haben auch Kredite laufen, wobei jedes Konto wie auch jeder Kredit genau einem oder mehreren Kunden zugeordnet wird. Kunden haben einen eindeutigen Namen und wohnen in einer Straße in einer Stadt.“&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Die Anforderungsbeschreibung gleicht der des Beispiels des ER Modells in Punkt 2.1.2 und des XML Modells in Punkt 2.2.5. Die JSON Struktur könnte beispielsweise dem Austausch von Filialdaten über ein Webservice dienen. Eine mögliche Modellierung dieser Anforderungsbeschreibung findet sich nachfolgend in Abbildung 17. Dabei wurde ebenfalls wieder aus Sicht der Filialen ausgegangen. Eine Betrachtung aus Sicht des Kontos, Kredites oder aus Sicht des Kunden wäre ebenfalls möglich. Dies hängt natürlich stark vom beabsichtigten Modellierungszweck ab. Als Wurzelelement dient das Element Filialliste, welches 0-n Filialen enthalten darf. Die, in dem Beispiel enthaltenen, Einrückungen dienen der besseren Lesbarkeit und nicht erforderlich.&lt;br /&gt;
&lt;br /&gt;
{&amp;amp;quot;filialliste&amp;amp;quot; : [ {&amp;amp;quot;filialname“ : &amp;amp;quot;Meine Bank&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;stadt&amp;amp;quot; : &amp;amp;quot;Wien&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;vermoegen&amp;amp;quot; : &amp;amp;quot;5 mrd eur&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;kredite&amp;amp;quot; : [ {&amp;amp;quot;nummer&amp;amp;quot; : &amp;amp;quot;100&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;betrag&amp;amp;quot; : &amp;amp;quot;20000 eur&amp;amp;quot;},&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;kunde&amp;amp;quot; : {&amp;amp;quot;name&amp;amp;quot; : &amp;amp;quot;Max Muster&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;strasse&amp;amp;quot; : &amp;amp;quot;Musterplatz 1&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;stadt&amp;amp;quot; : &amp;amp;quot;Wien&amp;amp;quot;}&lt;br /&gt;
&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
{&amp;amp;quot;nummer&amp;amp;quot; : &amp;amp;quot;101&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;betrag&amp;amp;quot; : &amp;amp;quot;10000 eur&amp;amp;quot;},&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;kunde&amp;amp;quot; : {&amp;amp;quot;name&amp;amp;quot; : &amp;amp;quot;Maria Muster&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;strasse&amp;amp;quot; : &amp;amp;quot;Mustergasse 3&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;stadt&amp;amp;quot; : &amp;amp;quot;Wien&amp;amp;quot;}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
],&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;konten&amp;amp;quot; : []&lt;br /&gt;
&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
{&amp;amp;quot;filialname“ : &amp;amp;quot;Deine Bank&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;stadt&amp;amp;quot; : &amp;amp;quot;Wien&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;vermoegen&amp;amp;quot; : &amp;amp;quot;1 mrd eur&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;kredite&amp;amp;quot; : [],&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;konten&amp;amp;quot; : [ {&amp;amp;quot;nummer&amp;amp;quot; : &amp;amp;quot;200&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;betrag&amp;amp;quot; : &amp;amp;quot;3000 eur&amp;amp;quot;},&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;kunde&amp;amp;quot; : {&amp;amp;quot;name&amp;amp;quot; : &amp;amp;quot;Hans Meier&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;strasse&amp;amp;quot; : &amp;amp;quot;Mustergasse 1&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;stadt&amp;amp;quot; : &amp;amp;quot;Graz&amp;amp;quot;}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Toc408237669&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 20 – Beispiel „Bank“: JSON-Modell, Teil 1/2&lt;br /&gt;
&lt;br /&gt;
{&amp;amp;quot;filialname“ : &amp;amp;quot;Seine Bank&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;stadt&amp;amp;quot; : &amp;amp;quot;Wien&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;vermoegen&amp;amp;quot; : &amp;amp;quot;2 mrd eur&amp;amp;quot;,&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;kredite&amp;amp;quot; : [],&lt;br /&gt;
&lt;br /&gt;
&amp;amp;quot;konten&amp;amp;quot; : []&lt;br /&gt;
&lt;br /&gt;
} ]&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Toc408237670&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Abbildung 21 – Beispiel „Bank“: JSON-Modell, Teil 2/2&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Grundlagen_der_Modellierung_-_Einleitung&amp;diff=4393</id>
		<title>Grundlagen der Modellierung - Einleitung</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Grundlagen_der_Modellierung_-_Einleitung&amp;diff=4393"/>
		<updated>2022-11-02T08:48:29Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;einleitung&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Einleitung =&lt;br /&gt;
&lt;br /&gt;
Modellierung und Modellierungssprachen sind ein essentieller Bestandteil der meisten Themenfelder der Wirtschafsinformatik. Die Modellierung bildet dabei einen existierenden, erwarteten oder geplanten Sachverhalt in Form eines Modells ab. Dabei handelt es sich um eine Darstellung, welche der betroffenen Zielgruppe und Zielsetzung angepasst wurde. In den nachfolgenden Lektionen werden der Modellbegriff und die ordnungsgemäße Modellierung, sowie die Grundlagen einzelner, in der Wirtschafsinformatik besonders relevanter, Modellierungsformen erläutert.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;der-modellbegriff&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Der Modellbegriff ==&lt;br /&gt;
&lt;br /&gt;
Bei einem Modell handelt es sich um eine vereinfachte Darstellung der Realität oder ihres Soll-Zustandes. Durch diese Abstraktion ist eine genauere Betrachtung oder Planung bestimmter Einzelaspekte möglich. Es betrachtet nur so viele Details wie nötig sind, um das zugrunde liegende Problem vollständig zu beschreiben. Der Begriff „Modell“ leitet sich aus dem lateinischen Wort „modulus“ ab und bezeichnete einen Maßstab im Bereich der Architektur. Laut dem deutschen Duden Fremdwörterbuch (2010), bedeutet Modell: &amp;#039;&amp;#039;Objekt, Gebilde, das die inneren Beziehungen und Funktionen von etwas abbildet bzw. [schematisch] veranschaulicht [und vereinfacht, idealisiert]&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Für Wirtschaftsinformatiker und Wirtschaftsinformatikerinnen gehören Modelle und Modellierungstechniken zum unumgänglichen Handwerkszeug, insbesondere die Modelle, die in Informationssystemen abgebildet werden und jene, die wir in der Softwareentwicklung verwenden.&lt;br /&gt;
&lt;br /&gt;
Modelle gibt es nicht nur in der Wirtschaftsinformatik, sondern auch in allen anderen Themenfeldern der Wissenschaft, Forschung und Entwicklung. So werden beispielsweise in der Wirtschaftsinformatik Datenmodelle verwendet und anatomische Modelle in der Medizin.&lt;br /&gt;
&lt;br /&gt;
Die gängigen Modelle in der Wirtschaftsinformatik sind:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Datenmodelle&amp;#039;&amp;#039;&amp;#039;,&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Prozess- und Ablaufmodelle&amp;#039;&amp;#039;&amp;#039;,&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Geschäftsprozessmodelle&amp;#039;&amp;#039;&amp;#039; und&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;objektorientierte Modelle&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
Auf diese vier speziellen Modelle und ihre gängigsten Ausprägungen wird in den Lektionen [[Grundlagen der_Modellierung_-_Datenmodellierung|Datenmodellierung]] bis [[Grundlagen der_Modellierung_-_Objektorientierte_Modelle|Objektorientierte Modelle]] im Detail eingegangen.&lt;br /&gt;
&lt;br /&gt;
Auch die Erstellung eines Test- oder Entwicklungssystems in der Software- und Systementwicklung ist ein (Soll-)Modell des Echtsystems. Meist hat es jedoch einen sehr geringen Abstrahierungsgrad, da es dem Echtsystem so nahe wie möglich kommen soll.&lt;br /&gt;
&lt;br /&gt;
Die richtige Wahl eines Modells ist essentiell für den Erfolg der gewünschten Betrachtung, da es durch eine zu starke oder falsche Abstraktion der Darstellung auch zu fehlerhaften Annahmen und Resultaten führen kann.&lt;br /&gt;
&lt;br /&gt;
Jedes Modell lässt sich selbst wiederum in einem Metamodell beschreiben, welches die Modellierung selbst definiert. Ein Metamodell definiert somit die einzelnen Bausteine eines Modells und wie sie anzuwenden sind.&lt;br /&gt;
&lt;br /&gt;
Die drei Hauptmerkmale des allgemeinen Modellbegriffs nach Herbert Stachowiak, dem Begründer der allgemeinen Modelltheorie, sind (Stachowiak, 1973, S. 131ff):&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Abbildungsmerkmal&amp;#039;&amp;#039;&amp;#039;: Modelle sind Abbildungen oder Repräsentationen natürlicher oder künstlicher Objekte, die selbst wiederum Modelle sein können. Es handelt sich dabei auch um die Zuordnung von Original-Attributen zu Modell-Attributen.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Verkürzungsmerkmal&amp;#039;&amp;#039;&amp;#039;: Modelle bestehen, in der Regel, nicht aus allen, sondern nur aus den relevanten, Attributen des betrachteten Objektes. Um die korrekten Attribute für ein Modell auszuwählen ist sowohl das Wissen über alle möglichen Attribute des Originalobjektes als auch über die Attribute des Modells notwendig.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Pragmatisches Merkmal&amp;#039;&amp;#039;&amp;#039;: Modelle sind nicht alleine einem Zweck, sondern auch einem bestimmten Anwenderkreis und Zeitraum zugeordnet. &amp;#039;&amp;#039;Eine pragmatisch vollständige Bestimmung des Modellbegriffs hat nicht nur die Frage zu berücksichtigen, wovon etwas Modell ist, sondern auch, für wen, wann und wozu bezüglich seiner je spezifischen Funktionen es Modell ist.&amp;#039;&amp;#039;&lt;br /&gt;
Ein Beispiel für ein einfaches Modell und seine Attribute ist das eines Smartphones:&lt;br /&gt;
&lt;br /&gt;
Je nach Abstrahierungsgrad ändern sich die mögliche Darstellung und die relevanten Attribute. Eine mögliche Aufstellung der Attribute und Abbildungen unterschiedlicher Abstrahierungsgrade ist in der Tabelle &amp;quot;Einfaches Modell eines Smartphones&amp;quot; dargestellt.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref407109461&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;Tabelle – Einfaches Modell eines Smartphones&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;border-collapse: collapse;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! width=&amp;quot;24%&amp;quot; | Anwendungsfall:&lt;br /&gt;
! width=&amp;quot;25%&amp;quot; | Technischer Aufbau eines konkreten Smartphones&lt;br /&gt;
! width=&amp;quot;24%&amp;quot; | Abbildung eines konkreten Smartphones&lt;br /&gt;
! width=&amp;quot;24%&amp;quot; | Piktogramm für Smartphone&lt;br /&gt;
|- &lt;br /&gt;
| Attribute:&lt;br /&gt;
|&lt;br /&gt;
* Gerätetyp&lt;br /&gt;
* Betriebssystem&lt;br /&gt;
* Hersteller&lt;br /&gt;
* Gehäuse&lt;br /&gt;
* Schrauben&lt;br /&gt;
* Kabel&lt;br /&gt;
* Platinen&lt;br /&gt;
* Speicher&lt;br /&gt;
* Anschlüsse&lt;br /&gt;
* …&lt;br /&gt;
|&lt;br /&gt;
* Gerätetyp&lt;br /&gt;
* Betriebssystem&lt;br /&gt;
* Hersteller&lt;br /&gt;
|&lt;br /&gt;
* Gerätetyp&lt;br /&gt;
|- &lt;br /&gt;
| Abbildung:&lt;br /&gt;
| [[Datei:Wiba mt233 201607 a.002.png|300px|thumb]]&lt;br /&gt;
| [[Datei:Wiba mt233 201607 a.003.png|300px|thumb]]&amp;amp;nbsp;&amp;amp;nbsp;&lt;br /&gt;
| [[Datei:Wiba mt233 201607 a.004.png|300px|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;modellbildung-und-anforderungen-an-ein-modell&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Modellbildung und Anforderungen an ein Modell ==&lt;br /&gt;
&lt;br /&gt;
Bei der Modellbildung geht es um die ausreichende Abbildung eines realen Systems zur Beschreibung einer bestimmten Fragenstellung oder eines Zustandes. Dazu können entweder bestehende Modelle verwendet werden, oder ein eigenes, geeignetes, Metamodell geschaffen werden. Meist handelt es sich bei den gängigen Modellierungsaufgaben in der Wirtschaftsinformatik jedoch um Situationen, in denen bestehende Modellarten zur Anwendung kommen können und sollten. Die Verwendung eines weit verbreitenden, und im eigenen Fachbereich allgemein bekannten, Modells führt zu einem schnelleren Verständnis für alle beteiligten Personen.&lt;br /&gt;
&lt;br /&gt;
Die Modellbildung lässt sich generell in vier Schritten beschreiben und durchführen (Oeser, 2012, S. 7):&lt;br /&gt;
&lt;br /&gt;
* Schritt 1: Vereinfachung und Formulierung des Problems&lt;br /&gt;
* Schritt 2: Formalisierung und Quantifizierung des Problems&lt;br /&gt;
* Schritt 3: Verarbeitung des Datenmaterials und Erstellung des Modells&lt;br /&gt;
* Schritt 4: Interpretation und Rückschluss auf den ursprünglichen Sachverhalt&lt;br /&gt;
In Schritt 1 und 2 wird deutlich, dass die Anforderungen an ein Modell durch die Formulierung des zugrunde liegenden Problems definiert werden. Dieser Planungsschritt ist sehr wichtig, da die Modellauswahl für den weiteren Erfolg der Modellierung, und der damit verbundenen Behandlung der Problemstellung, essentiell ist.&lt;br /&gt;
&lt;br /&gt;
Im 4. Schritt wird die Erfüllung der Zielsetzung des Modells nochmals überprüft und damit sichergestellt, dass es den Sachverhalt problemadäquat widerspiegelt.&lt;br /&gt;
&lt;br /&gt;
Der Modellierer hat, durch seine Tätigkeit, eine &amp;#039;&amp;#039;&amp;#039;hohe Verantwortung&amp;#039;&amp;#039;&amp;#039; gegenüber der Zielsetzung des Modells. Durch eine zu hohe Abstrahierung kann es zu Fehlern in allen, anhand des Modells abgeleiteten, Folgerungen kommen. Diese Fehler wirken sich dann auf alle Bereiche aus, welche das Modell einsetzen. Wesentliche Fehler können in der Praxis auch sehr schlimme Folgen haben, wie das nachfolgende Beispiel beschreibt.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;border-collapse: collapse; width: 100%;&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
| style=&amp;quot;width: 100%;&amp;quot; |&lt;br /&gt;
&amp;#039;&amp;#039;22.09.2006:&amp;lt;br&amp;gt;&amp;#039;&amp;#039;&amp;#039;23 Menschen sterben in den Trümmern des Transrapid&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Bei dem schweren Transrapid-Unglück im emsländischen Lathen sind 23 Menschen getötet worden. Das teilte die Polizei am Freitag abend mit. Zehn Menschen sollen die Katastrophe verletzt überlebt haben. Der Transrapid war am Vormittag auf einen Reinigungswagen geprallt.&amp;#039;&amp;#039;  &amp;lt;ref&amp;gt;http://www.faz.net/aktuell/gesellschaft/magnetbahn-unfall-23-menschen-sterben-in-den-truemmern-des-transrapid-1357701.html, Aufruf der Seite am 03.11.2014&amp;lt;/ref&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
Der Transrapid nutzt eine neue Antriebsform und ein spezielles Leitsystem mit einigen Sicherheitsmaßnahmen. Der Zug wird durch Magnete in der Schiene bewegt. Weiter umgreift das Fahrwerk des Zuges die Schiene und haltet ihn in Position, was wiederum ein entgleisen verhindert. Zusätzlich ist jeder Zug mit einem Ortungssystem ausgestattet, welches seine Daten kontinuierlich mit dem Leitsystem der Streckenanlage abgleicht. Ein Zusammenstoß zweier Züge ist daher, zumindest dem Modell nach, durch die zentrale Steuerung des Streckenantriebs und die Positionsbestimmung nicht möglich. Das System galt daher als enorm sicher.&lt;br /&gt;
&lt;br /&gt;
Leider gab es in diesem Modell eine Komponente, welche nicht beachtet wurde. Die Streckenfahrzeuge und Reinigungswagen sind mit herkömmlichen Dieselantrieben ausgestattet und verfügten über keine Ortungssysteme. Daher war es auch möglich, dass ein Reinigungsfahrzeug übersehen wurde und in dessen Folge 23 Menschen starben.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;die-grundsätze-ordnungsmäßiger-modellierung-gom&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Die Grundsätze ordnungsmäßiger Modellierung (GoM) ==&lt;br /&gt;
&lt;br /&gt;
Bei den Grundsätzen ordnungsgemäßer Modellierung (GoM) handelt es sich um semantische Empfehlungen zur bedarfsgerechten Informationsmodellierung. Damit wurde eine bewusste Einschränkung der Modellierungsfreiheit, zugunsten der Zielgerichtetheit der Modellierung selbst, eingeführt. Dies soll wiederum die Modellqualität erhöhen. Die GoM wurden von Becker, Rosemann und Schütte, in Anlehnung an den Grundsätzen ordnungsgemäßer Buchführung (GoB), entwickelt. (Becker, Rosemann, &amp;amp;amp; Schütte, 1995, S. 437)&lt;br /&gt;
&lt;br /&gt;
Die GoM definieren einen Ordnungsrahmen, bestehend aus sechs Grundsätzen, welchen wiederum ein Metamodell zugrunde liegt, in dem die einzelnen GoM Objekte, Attribute und ihre Beziehungen untereinander definiert werden (Becker, Rosemann, &amp;amp;amp; Schütte, 1995, S. 437ff):&lt;br /&gt;
&lt;br /&gt;
* Grundsatz der Richtigkeit,&lt;br /&gt;
* Grundsatz der Relevanz,&lt;br /&gt;
* Grundsatz der Wirtschaftlichkeit,&lt;br /&gt;
* Grundsatz der Klarheit,&lt;br /&gt;
* Grundsatz der Vergleichbarkeit und dem&lt;br /&gt;
* Grundsatz des systematischen Aufbaus.&lt;br /&gt;
Zusammengefasst sollen sie die Qualität von Informationsmodellen sicherstellen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;grundsatz-der-richtigkeit&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Grundsatz der Richtigkeit ===&lt;br /&gt;
&lt;br /&gt;
Ein Modell kann sowohl semantisch, als auch syntaktisch richtig sein. Die syntaktische Richtigkeit bezieht sich dabei auf die korrekte Einhaltung der Vorgaben des Metamodells. Bei der semantischen Richtigkeit handelt es sich um die korrekte Abbildung des Modellierungsobjektes. Dies bedeutet nicht nur, dass das Modellierungsobjekt, dem Zweck entsprechend, vollständig abgebildet sein muss, sondern auch, dass es in sich keine Wiedersprüche aufweisen darf. Die Richtigkeit beinhaltet auch die eindeutige und korrekte Benennung von modellierten Objekten. Hierbei sollen Synonyme  &amp;lt;ref&amp;gt;Synonyme sind unterschiedliche Benennungen für den gleichen Begriff. (z.B. kann für den Begriff Auto auch Kraftfahrzeug, Wagen oder Automobil verwendet werden).&amp;lt;/ref&amp;gt;  und Homonyme  &amp;lt;ref&amp;gt;Ein Homonym ist die gleiche Benennung für zwei oder mehrere Begriffe (z.B. Golf ist ein Sport, eine Meeresbucht und ein Fahrzeug).&amp;lt;/ref&amp;gt;  vermeiden werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;grundsatz-der-relevanz&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Grundsatz der Relevanz ===&lt;br /&gt;
&lt;br /&gt;
Bei der Modellierung müssen die mit ihr bezweckten Ziele eingehalten werden. Die in dem Modell enthaltenen Elemente und Beziehungen sind relevant, wenn das Modellierungsziel bei ihrer Reduzierung nicht mehr erfüllt werden würde. Das Modell muss sich wieder in eine Beschreibung des beschriebenen Objektes zurückführen lassen, ohne für die Betrachtung relevante Aspekte zu verlieren.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;grundsatz-der-wirtschaftlichkeit&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Grundsatz der Wirtschaftlichkeit ===&lt;br /&gt;
&lt;br /&gt;
Der Grundsatz der Wirtschaftlichkeit limitiert die Tiefe und den Umfang eines Modells hinlänglich der, durch die Modellierung selbst, entstehenden Kosten. Es handelt sich dabei um eine Abwägung zwischen dem, durch die Modellierung entstehenden, Nutzen durch eine bessere Abbildbarkeit des zugrunde liegenden Problems und der Verbesserung der Interaktion zwischen den Modellnutzern und den Kosten, die durch die Modellierung entstehen. Je umfangreicher und tiefergehend ein Modell gebildet wird, desto mehr Aufwand muss in seine Erstellung investiert werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;grundsatz-der-klarheit&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Grundsatz der Klarheit ===&lt;br /&gt;
&lt;br /&gt;
Die Anwendbarkeit des Grundsatzes der Klarheit ist, ähnlich der Relevanz, stark von den Anwendern des Modells abhängig. So ist es nötig, die Darstellung eines Modells der Zielgruppe anzupassen. Analog zur syntaktischen Richtigkeit ist auch eine klare Darstellung des Modells essentiell. Dabei geht es insbesondere um die verwendeten Symbole auf Ebene des Metamodells, als auch um die Anordnung der Symbole innerhalb des Modells selbst. Dieser Grundsatz kann beispielsweise bedeuten, dass ein sehr komplexes Modell in weitere Abstrahierungsebenen geteilt werden muss, um für den Anwender verständlich zu bleiben. Hierfür werden meist die Möglichkeiten von Substitutionen und Detailmodellen geschaffen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;grundsatz-der-vergleichbarkeit&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Grundsatz der Vergleichbarkeit ===&lt;br /&gt;
&lt;br /&gt;
Ähnlich dem Grundsatz der Richtigkeit wird beim Grundsatz der Vergleichbarkeit in eine syntaktische und eine semantische Vergleichbarkeit unterschiedenen. Die beiden Grundsätze der Richtigkeit und Vergleichbarkeit lehnen sich dabei auch aneinander an. Bei der syntaktischen Vergleichbarkeit handelt es sich um eine Vergleichbarkeit unterschiedlicher Modelle, mit derselben zugrunde liegenden Modellierungsanforderung. Dadurch soll auch eine Überführung von Modellen mit unterschiedlichen Metamodellen ermöglicht werden. Die semantische Vergleichbarkeit bezieht sich auf die inhaltliche Vergleichbarkeit. Damit soll der Vergleich unterschiedlicher Modelle zueinander ermöglicht werden.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;grundsatz-des-systematischen-aufbaus&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Grundsatz des systematischen Aufbaus ===&lt;br /&gt;
&lt;br /&gt;
Bei in unterschiedlichen Sichten aufgebauten Modellen müssen die Sichten untereinander konsistent sein. Das bedeutet, dass die Bezüge der unterschiedlichen Sichten zueinander vorhanden sein müssen. So muss beispielsweise ein Ablaufmodell, welches auf ein Datenmodell referenziert, auch sicherstellen, dass das entsprechende Datenmodell entsprechend modelliert ist und umgekehrt. Um hierbei alle relevanten Sichten zu integrieren, liegen solchen Modellen übergreifende Architekturkonzepte zu Grunde.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;erweiterung-der-gom&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
=== Erweiterung der GoM ===&lt;br /&gt;
&lt;br /&gt;
Die eingeführten Grundsätze ordnungsgemäßer Modellierung wurden von ihrem Mitbegründer Reinhard Schütte in Form der „neuen Grundsätze ordnungsgemäßer Modellierung“ überarbeitet. Diese erweiterten Grundsätze weichen von den herkömmlichen in einigen Teilen ab. Das Ziel der Überarbeitung war, die theoretische Begründung und die praktische Prüfbarkeit der Grundsätze zu verbessern.&lt;br /&gt;
&lt;br /&gt;
Diese „neuen Grundsätze ordnungsgemäßer Modellierung“ sind (Schütte, 1997):&lt;br /&gt;
&lt;br /&gt;
* Grundsatz der Konstruktionsadäquanz,&lt;br /&gt;
* Grundsatz der Sprachadäquanz,&lt;br /&gt;
* Grundsatz des systematischen Aufbaus,&lt;br /&gt;
* Grundsatz der Klarheit und der&lt;br /&gt;
* Grundsatz der Vergleichbarkeit.&lt;br /&gt;
Die erweiterten Grundsätze selbst werden aus, als allgemeingültig erachteten, Zwecken abgeleitet, welche in Abbildung 1 dargestellt sind.&lt;br /&gt;
&lt;br /&gt;
[[Datei:Wiba mt233 201607 a.006.png|300px|none|thumb|Zweckbezogene Ableitung der Grundsätze ordnungsmäßiger Modellierung (Schütte, 1997, S. 3)]]&lt;br /&gt;
&lt;br /&gt;
Dabei unterscheiden sie sich primär in zwei Grundsätzen, von den ursprünglichen GoM:&lt;br /&gt;
&lt;br /&gt;
* Grundsatz der Konstruktionsadäquanz und der&lt;br /&gt;
* Grundsatz der Sprachadäquanz.&lt;br /&gt;
Diese beiden sollten den Grundsatz der Richtigkeit und den Grundsatz der Relevanz ersetzen. Inhaltlich wurden jedoch auch bei den anderen Grundsätzen einige Ergänzungen durchgeführt.&lt;br /&gt;
&lt;br /&gt;
Der &amp;#039;&amp;#039;&amp;#039;Grundsatz der Konstruktionsadäquanz&amp;#039;&amp;#039;&amp;#039; ist dabei als wichtigster Grundsatz definiert. Hierbei wird der Nutzen des Modells, für seinen jeweiligen Modellierungszweck, in den Vordergrund gestellt und der Konsens der Modellersteller herangezogen, da sie bewerten können, ob der Abstrahierungsgrad des Modells die Realität für die Aufgabenstellung angemessen abbildet. Es muss somit zwischen den Anwendern eine Einigkeit über die, ausreichend durch das Modell abgebildete, Problemstellung und die Art der gewählten Darstellung bestehen. Auch muss ein Konsens bezüglich einheitlicher Namenskonventionen herrschen. Ein inhaltlich identes Attribut oder Objekt muss auch in allen Modellen dieselbe Bezeichnung haben.&lt;br /&gt;
&lt;br /&gt;
Der &amp;#039;&amp;#039;&amp;#039;Grundsatz der Sprachadäquanz&amp;#039;&amp;#039;&amp;#039; beschreibt dabei die Spracheignung und Sprachrichtigkeit in Relation zum Modellsystem. Die Spracheignung bezieht sich auf die Auswahl der geeigneten Modellierungstechnik für den jeweiligen Modellierungszweck. Die Sprachrichtigkeit bezieht sich dagegen auf die korrekte Anwendung der, im Metamodell definierten, Sprachsyntax.&lt;br /&gt;
&lt;br /&gt;
Diese neuen GoM werden jedoch, im Gegensatz zu ihrer ursprünglichen Version, kaum angewendet, obwohl sie sich durch eine hohe theoretische Begründung und praktische Prüfbarkeit auszeichnen.&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=IM537_-_Digitale_Transformation_und_Digitalisierung_von_Gesch%C3%A4ftsprozessen_-_Gesamt&amp;diff=4197</id>
		<title>IM537 - Digitale Transformation und Digitalisierung von Geschäftsprozessen - Gesamt</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=IM537_-_Digitale_Transformation_und_Digitalisierung_von_Gesch%C3%A4ftsprozessen_-_Gesamt&amp;diff=4197"/>
		<updated>2022-10-01T06:19:14Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:UrheberrechtCC}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;hr&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{:Benutzer:Neuroth-Pfeiffer_Thomas}}&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;hr&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{:IM537 - Digitale Transformation und Digitalisierung von Geschäftsprozessen - Auslöser und Treiber der digitalen Transformation}}&lt;br /&gt;
&lt;br /&gt;
{{:IM537 - Digitale Transformation und Digitalisierung von Geschäftsprozessen - Transformation von Geschäftsmodellen}}&lt;br /&gt;
&lt;br /&gt;
{{:IM537 - Digitale Transformation und Digitalisierung von Geschäftsprozessen - Reifegrade der digitalen Transformation}}&lt;br /&gt;
&lt;br /&gt;
{{:IM537 - Digitale Transformation und Digitalisierung von Geschäftsprozessen - Technologien zur Unterstützung der digitalen Transformation}}&lt;br /&gt;
&lt;br /&gt;
{{:IM537 - Digitale Transformation und Digitalisierung von Geschäftsprozessen - Auswirkungen der digitalen Transformation auf die Arbeitswelt}}&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=UrheberrechtCC&amp;diff=4196</id>
		<title>UrheberrechtCC</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=UrheberrechtCC&amp;diff=4196"/>
		<updated>2022-10-01T06:18:27Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: Die Seite wurde neu angelegt: „&amp;lt;div&amp;gt;&amp;lt;div&amp;gt;„Creative Commons Namensnennung – Share Alike 4.0 International Public License“ (CC BY SA 4.0.)&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;Es wird ausdrücklich erklärt, dass alle Angaben trotz sorgfältiger Bearbeitung ohne Gewähr erfolgen und eine Haftung des Autors/der Autorin oder des Verlegers/der Verlegerin ausgeschlossen ist.&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;&amp;lt;div&amp;gt;„Creative Commons Namensnennung – Share Alike 4.0 International Public License“ (CC BY SA 4.0.)&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;Es wird ausdrücklich erklärt, dass alle Angaben trotz sorgfältiger Bearbeitung ohne Gewähr erfolgen und eine Haftung des Autors/der Autorin oder des Verlegers/der Verlegerin ausgeschlossen ist.&amp;lt;/div&amp;gt;&amp;lt;div&amp;gt;&amp;lt;br&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Management_und_Kommunikation&amp;diff=4195</id>
		<title>Management und Kommunikation</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Management_und_Kommunikation&amp;diff=4195"/>
		<updated>2022-10-01T05:41:46Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[MN411 - Gesprächsführung, Verhandeln und Konfliktlösung|MN411 - Gesprächsführung, Verhandeln und Konfliktlösung]]&lt;br /&gt;
&lt;br /&gt;
[[MN412 - Management und Organisation|MN412 - Management und Organisation]]&lt;br /&gt;
&lt;br /&gt;
[[MN436 - Gruppen- und Organisationsdynamik|MN436 - Gruppen- und Organisationsdynamik]]&lt;br /&gt;
&lt;br /&gt;
[[MN425 - Beratungstheorie, methoden und -werkzeuge|MN425 - Beratungstheorie, methoden und -werkzeuge]]&lt;br /&gt;
&lt;br /&gt;
[[MN437 - Knowledge Management Instruments &amp;amp; Enterprise Knowledge Infrastructures|MN437 - Knowledge Management Instruments &amp;amp; Enterprise Knowledge Infrastructures]]&lt;br /&gt;
&lt;br /&gt;
[[MN438 - Forschungs,- Technologie- und Innovationsprojekte|MN438 - Forschungs,- Technologie- und Innovationsprojekte]]&lt;br /&gt;
&lt;br /&gt;
[[MN439_Virtuelles_Arbeiten_und_Lernen|MN439 - Virtuelles Arbeiten und Lernen]]&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Informationstechnologie_und_Informationssysteme&amp;diff=4194</id>
		<title>Informationstechnologie und Informationssysteme</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Informationstechnologie_und_Informationssysteme&amp;diff=4194"/>
		<updated>2022-10-01T05:40:23Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[IT523 - Verteilte Systeme|IT523 - Verteilte Systeme]]&lt;br /&gt;
&lt;br /&gt;
[[IT422 - Technische Sicherheitsaspekte|IT422 - Technische Sicherheitsaspekte]]&lt;br /&gt;
&lt;br /&gt;
[[IT445 - Requirements Engineering and Cost Estimation|IT445 - Requirements Engineering and Cost Estimation]]&lt;br /&gt;
&lt;br /&gt;
[[IT449_-_e-Government|IT449 - E-Government]]&lt;br /&gt;
&lt;br /&gt;
[[IT534 - Kryptographie und Zugriffskontrolle|IT534 - Kryptographie und Zugriffskontrolle]]&lt;br /&gt;
&lt;br /&gt;
[[IT546 - Web-Application- und E-Business-Security|IT546 - Web-Application- und E-Business-Security]]&lt;br /&gt;
&lt;br /&gt;
[[IS434 - Managementinformations- und Berichtssysteme|IT43B - Managementinformations- und Berichtssysteme]]&lt;br /&gt;
&lt;br /&gt;
[[IS532 - E-Commerce-Systeme|IT530 - E-Commerce-Systeme]]&lt;br /&gt;
&lt;br /&gt;
[[IS533 - Management kooperativer Informationssysteme|IT43A - Management kooperativer Informationssysteme]]&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Informationstechnologie_und_Informationssysteme&amp;diff=4193</id>
		<title>Informationstechnologie und Informationssysteme</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Informationstechnologie_und_Informationssysteme&amp;diff=4193"/>
		<updated>2022-10-01T05:39:49Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[IT523 - Verteilte Systeme|IT523 - Verteilte Systeme]]&lt;br /&gt;
&lt;br /&gt;
[[IT422 - Technische Sicherheitsaspekte|IT422 - Technische Sicherheitsaspekte]]&lt;br /&gt;
&lt;br /&gt;
[[IT445 - Requirements Engineering and Cost Estimation|IT445 - Requirements Engineering and Cost Estimation]]&lt;br /&gt;
&lt;br /&gt;
[[IT449_-_e-Government|IT449 - E-Government]]&lt;br /&gt;
&lt;br /&gt;
[[IT534 - Kryptographie und Zugriffskontrolle|IT534 - Kryptographie und Zugriffskontrolle]]&lt;br /&gt;
&lt;br /&gt;
[[IT538_-_Industrie_4.0_und_IoT_Security|IT538 - Industrie 4.0 und IoT Security]]&lt;br /&gt;
&lt;br /&gt;
[[IT546 - Web-Application- und E-Business-Security|IT546 - Web-Application- und E-Business-Security]]&lt;br /&gt;
&lt;br /&gt;
[[IS434 - Managementinformations- und Berichtssysteme|IT43B - Managementinformations- und Berichtssysteme]]&lt;br /&gt;
&lt;br /&gt;
[[IS532 - E-Commerce-Systeme|IT530 - E-Commerce-Systeme]]&lt;br /&gt;
&lt;br /&gt;
[[IS533 - Management kooperativer Informationssysteme|IT43A - Management kooperativer Informationssysteme]]&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Informationssystemmanagement_und_-Sicherheit&amp;diff=4192</id>
		<title>Informationssystemmanagement und -Sicherheit</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Informationssystemmanagement_und_-Sicherheit&amp;diff=4192"/>
		<updated>2022-10-01T05:39:31Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[IM412 - Führung und Organisation im IT-Bereich|IM412 - Führung und Organisation im IT-Bereich]]&lt;br /&gt;
&lt;br /&gt;
[[IM423 - Informationssicherheitsmanagement|IM423 - Informationssicherheitsmanagement]]&lt;br /&gt;
&lt;br /&gt;
[[IM535 - IT-Governance|IM535 - IT-Governance]]&lt;br /&gt;
&lt;br /&gt;
[[IM436 - Internationale IT-Projekte und Projektcontrolling|IM436 - Internationale IT-Projekte und Projektcontrolling]]&lt;br /&gt;
&lt;br /&gt;
[[IM448 - Collaborative Business|IM448 - Collaborative Business]]&lt;br /&gt;
&lt;br /&gt;
[[IM449 - Outsourcing, Offshoring &amp;amp;amp; Alliances|IM449 - Outsourcing, Offshoring &amp;amp; Alliances]]&lt;br /&gt;
&lt;br /&gt;
[[IM537_-_Digitale_Transformation_und_Digitalisierung_von_Gesch%C3%A4ftsprozessen|IM537 - Digitale Transformation und Digitalisierung von Geschäftsprozessen]]&lt;br /&gt;
&lt;br /&gt;
[[IS421 - Business &amp;amp;amp; Competitive Intelligence Systems|IM540 - Business &amp;amp; Competitive Intelligence Systems]]&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Computer-_und_Netzwerksicherheit_-_Zugriffssteuerung&amp;diff=2711</id>
		<title>Computer- und Netzwerksicherheit - Zugriffssteuerung</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Computer-_und_Netzwerksicherheit_-_Zugriffssteuerung&amp;diff=2711"/>
		<updated>2022-04-03T08:12:44Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Zugriffssteuerung =&lt;br /&gt;
&lt;br /&gt;
Die Zugriffssteuerung (Access Control) regelt den Zugriff und die Kommunikation von IT-Systemen mit ihren Anwendern, Ressourcen und anderen IT-Systemen. Es handelt sich dabei um eine zentrales Element der meisten IT-Systeme, da davon alle Schutzziele (Vertraulichkeit, Integrität und Verfügbarkeit; siehe Lektion &amp;quot;[[Computer- und Netzwerksicherheit_-_Grundlagen#S%C3%A4ulen_der_Informationssicherheit_-_CIA_Triade|Säulen der Informationssicherheit - CIA Triade]]&amp;quot;) betroffen sein können.&lt;br /&gt;
&lt;br /&gt;
In dieser Lektion werden die grundlegenden Begriffe der Zugriffssteuerung erläutert und weiter die konkreten Techniken der Zertifikate und der Fernzugriffe sowie potentielle Angriffsvektoren näher behandelt.&lt;br /&gt;
&lt;br /&gt;
== Grundbegriffe der Zugriffssteuerung ==&lt;br /&gt;
&lt;br /&gt;
Um die Schutzziele der Vertraulichkeit, Integrität und Verfügbarkeit des Datenaustausches mit IT-Systemen gewährleisten zu können müssen die jeweiligen Anforderungen an die Kommunikation definiert werden. Dabei gibt es einige wesentliche Begriffe, welche oft auch von Technikern falsch verwendet werden. Beispielsweise werden &amp;#039;&amp;#039;Identifikation&amp;#039;&amp;#039;, &amp;#039;&amp;#039;Authentifikation&amp;#039;&amp;#039; und &amp;#039;&amp;#039;Autorisation&amp;#039;&amp;#039; manchmal fälschlicherweise als Akronyme verwendet, obwohl es sich dabei um grundlegend unterschiedliche Begriffe handelt. Auch ist es wichtig zu wissen, wie bestimmte Anforderungen an die Zugriffssteuerung implementiert werden können.&lt;br /&gt;
&lt;br /&gt;
=== Zugriff ===&lt;br /&gt;
&lt;br /&gt;
Beim Zugriff handelt es sich um die Kommunikation mit einem IT-System. Diese kann sowohl mit einem Anwender, als auch mit einem anderen IT-System oder seiner Ressourcen stattfinden. In den meisten Fällen gibt es dabei Anforderungen an Identifikation, Authentifikation und Autorisation, sowie an die Nachverfolgbarkeit und Nichtabstreitbarkeit (siehe weiter auch Lektion &amp;quot;[[Computer- und Netzwerksicherheit_-_Kryptograhpie#Kryptographie|Krypotgraphie]]&amp;quot; Unterkapitel 2 - 5).&lt;br /&gt;
&lt;br /&gt;
Ressourcen können dabei alle Komponenten sein, welche einen Zugriff auf Daten ermöglichen oder diese beinhalten, wie beispielsweise: Datenbanken, Tabellen und Dateien. Die Zugriffe können dabei sowohl über lokale Verbindungen, als auch über das Netzwerk/Internet oder unterschiedliche Datenträger erfolgen.&lt;br /&gt;
&lt;br /&gt;
=== Identifikation ===&lt;br /&gt;
&lt;br /&gt;
Die Identifikation bezeichnet die Benennung eines bestimmten Systems oder einer Person, welche auf ein System zugreifen möchte. Dabei ist weder sichergestellt durch wen diese Benennung erfolgt ist, noch ob es sich bei der Benennung tatsächlich um das benannte System oder die benannte Person handelt.&lt;br /&gt;
&lt;br /&gt;
Zur Identifikation dienen oft die eindeutige User-ID, die E-Mailadresse oder der Name.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel ist eine Anwesenheitsliste: Die Protokollführung schreibt die Namen der anwesenden Personen auf, welche diese wiederum identifizieren. Dabei ist jedoch noch nicht sichergestellt, ob die jeweiligen Personen tatsächlich die sind, die sie vorgeben zu sein. Im schlechtesten Fall sind sie der Protokollführung nicht bekannt und identifizieren sich durch Nennung ihres Namens.&lt;br /&gt;
&lt;br /&gt;
=== Authentifikation ===&lt;br /&gt;
&lt;br /&gt;
Die eindeutige Identifikation einer Person oder eines Systems wird als Authentifikation bezeichnet. Erst dadurch wird sichergestellt, dass es sich dabei tatsächlich um die Identifizierten handelt.&lt;br /&gt;
&lt;br /&gt;
Es gibt drei unterschiedliche Kategorien von Authentifikationsmethoden und -merkmale:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Wissen&amp;#039;&amp;#039;&amp;#039; (was jemand weiß),&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Besitz&amp;#039;&amp;#039;&amp;#039; (was jemand besitzt) und&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Biometrie&amp;#039;&amp;#039;&amp;#039; (was jemand ist).&lt;br /&gt;
Die drei Merkmale Wissen, Besitz und Biometrie werden oft auch als „Wissen, Haben und Sein“ bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Eine häufig eingesetzte Methode ist das Passwort. Dieses ist in der Kategorie des &amp;#039;&amp;#039;&amp;#039;Wissens&amp;#039;&amp;#039;&amp;#039; eingeordnet, da es von jedem eingesetzt werden kann, der es kennt. Es kann daher auch weitergegeben oder ausgespäht werden. Je komplexer es ist, desto leichter kann es auch vergessen werden. Je häufiger es verwendet wird, desto schneller kann es herausgefunden werden. Zu komplexe Passwörter sind daher keine gute Lösung zur sicheren Authentifikation, da sie von vielen Usern vergessen oder aufgeschrieben werden. Dasselbe gilt für zu einfache Passwörter, da sie leicht erraten werden können.&lt;br /&gt;
&lt;br /&gt;
Beim Merkmal des &amp;#039;&amp;#039;&amp;#039;Besitzes&amp;#039;&amp;#039;&amp;#039; wird die Authentifikation über etwas erreicht, dass nur der zu Authentifizierende besitzt. Beispiele dafür sind ein Personalausweis oder eine Chipkarte (z.B. eine Bankomatkarte). Damit die Weitergabe dieses Merkmals überhaupt nicht, oder nur sehr schwierig möglich ist, sollte es möglichst nicht vervielfältigt werden können.&lt;br /&gt;
&lt;br /&gt;
Unter &amp;#039;&amp;#039;&amp;#039;Biometrie&amp;#039;&amp;#039;&amp;#039; werden Merkmale verstanden, die an eine bestimmte Person (oder ein bestimmtes System) gebunden sind. Sie sind öffentlich sichtbar oder beobachtbar, jedoch nicht leicht duplizierbar. Häufig bekannte Beispiele für biometrische Merkmale sind Fingerabdrücke, Venenmuster, die Iris-Muster der Augen und Stimmmuster. Weitere, oft weniger bekannte, Merkmale sind jedoch auch die Art des Ganges einer Person, ihre Tastenanschläge, ihr Schreibstil und aber auch die Art und Weise wie sie sich innerhalb eines Programmes oder einer Webseite bewegen.&lt;br /&gt;
&lt;br /&gt;
Je nach Sicherheitsanforderungen können dabei auch mehrere Merkmale kombiniert werden um die Authentifizierungsqualität noch weiter zu verstärken. Ein bekanntes Beispiel dafür ist die zur Bargeldbehebung mittels Bankomatkarte notwendige Authentifizierung. Dabei wird ein Besitzmerkmal (Bankomatkarte) mit einem Wissensmerkmal (PIN-Code) kombiniert. Ist jemand im Besitz der Karte, benötigt er zusätzlich noch den PIN-Code und umgekehrt. Mit einem der beiden Merkmale allein kann keine gültige Authentifikation erfolgen und damit auch kein Geld behoben werden.&lt;br /&gt;
&lt;br /&gt;
Werden zwei Merkmale kombiniert, wird dies auch als &amp;#039;&amp;#039;&amp;#039;Zwei-Faktor-Authentifizierung&amp;#039;&amp;#039;&amp;#039; bezeichnet. Wichtig ist dabei immer, dass zwei Merkmale unterschiedlicher Kategorien (Wissen, Besitz und Biometrie) kombiniert werden. Die Kombination zweier Merkmale derselben Kategorie, erhöht zwar die Sicherheit, gilt dabei jedoch nicht als Zwei-Faktor-Authentifizierung. Die einzelnen Merkmalskategorien und die sich daraus ergebenen Authentifizierungslevel sind weiter in Abbildung &amp;quot;Authentifizierungsfaktoren: Wissen, Besitz und Biometrie&amp;quot; dargestellt.&lt;br /&gt;
&lt;br /&gt;
Ob die Authentifizierungsqualität durch den Einsatz von drei Faktoren weiter stark erhöht werden kann, ist umstritten. Dies ist stark von den jeweils eingesetzten Techniken, aber auch von deren Akzeptanz bei den Anwendern, abhängig.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 15.png|300px|none|thumb| Authentifizierungsfaktoren: Wissen, Besitz und Biometrie]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref414885673&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Autorisation ===&lt;br /&gt;
&lt;br /&gt;
Bei der Autorisation handelt es sich um die Berechtigung, die eine authentifizierte Person oder ein authentifiziertes System für einen bestimmten Zugriff hat. So können in einem System beispielsweise unterschiedliche Rollen existieren, welche wiederum unterschiedliche Zugriffe ermöglichen. Wie ein System unterschiedliche Autorisationen verwaltet und behandelt wird als [[Computer- und_Netzwerksicherheit_-_Zugriffssteuerung#Zugriffssteuerungsmodelle|Zugriffssteuerungsmodell]] bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Die Authentifikation stellt damit sicher, dass es sich um jemand bestimmten handelt und die Autorisation regelt wiederum welche bestimmten Rollen welche Zugriffe bekommen.&lt;br /&gt;
&lt;br /&gt;
=== Nachverfolgbarkeit und Nichtabstreitbarkeit ===&lt;br /&gt;
&lt;br /&gt;
Bei der Nachverfolgbarkeit und Nichtabstreitbarkeit handelt es sich um Zugriffsmerkmale, welche eine genaue Dokumentation der jeweiligen Systemkommunikation ermöglichen. Je nach Anforderung wird dabei dokumentiert, welche Zugriffe stattgefunden haben und unter welchen (Sicherheits-)Parametern diese aufgebaut wurden. Um eine lückenlose Nachverfolgbarkeit sicherzustellen, ist es erforderlich, den Erfolg der Authentifikation und die erteilte Autorisation zu dokumentieren.&lt;br /&gt;
&lt;br /&gt;
In manchen Fällen ist es weiter erforderlich eine Nichtabstreitbarkeit von Zugriffen zu ermöglichen. Als &amp;#039;&amp;#039;&amp;#039;Nichtabstreitbarkeit&amp;#039;&amp;#039;&amp;#039; wird bezeichnet, das eine Person die Erstellung einer gesendeten Nachricht nicht mehr abstreiten kann. Dies beinhaltet auch automatisch die Integrität der Nachricht. Es muss daher für eine Nichtabstreitbarkeit auch sichergestellt sein, dass die Nachricht nicht mehr verändert wurde, da anderenfalls der Absender behaupten könnte, ursprünglich eine andere Nachricht erstellt zu haben.&lt;br /&gt;
&lt;br /&gt;
Die Nichtabstreitbarkeit kann mit Hilfe asymmetrischer Kryptographie Methoden sichergestellt werden (siehe Kapitel &amp;quot;[[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Asymmetrische_Verfahren|Asymmetrische Verfahren]]&amp;quot; Lektion &amp;quot;Kryptographie&amp;quot;). Dabei wird der Hashwert einer Nachricht mit dem privaten Schlüssel des Absenders verschlüsselt. Zur Prüfung der Integrität (ob die Nachricht der abgesendeten Nachricht entspricht), muss nun nur noch der verschlüsselte Hashwert mit dem öffentlichen Schlüssel entschlüsselt und mit dem aktuellen Hashwert der Nachricht verglichen werden. Da die Verschlüsselung nur vom Besitzer des privaten Schlüssels durchgeführt werden kann, ist hier eine Nichtabstreitbarkeit gewährleistet.&lt;br /&gt;
&lt;br /&gt;
=== Zugriffssteuerungsmodelle ===&lt;br /&gt;
&lt;br /&gt;
Zugriffssteuerungsmodelle (Access Control Models) regeln die Art und Weise von Zugriffen. Sie definieren dabei die möglichen Regeln und Ziele der Zugriffe und stellen diese den jeweiligen Zugriffssteuerungstechnologien zur Verfügung. Die Modelle sind ein wesentlicher Bestandteil des jeweiligen Betriebssystems, da sie grundlegende Entscheidungen der internen Zugriffe beeinflussen. Sie sind daher direkt im Kern des Betriebssystems integriert. [Ha13, 219]&lt;br /&gt;
&lt;br /&gt;
Es wird zwischen drei verschiedenen Kategorien von Zugriffssteuerungsmodellen unterschieden:&lt;br /&gt;
&lt;br /&gt;
* Eigner-definierte Zugriffssteuerung (DAC: Discretionary Access Control),&lt;br /&gt;
* Obligatorische Zugriffssteuerung (MAC: Mandatory Access Control) und&lt;br /&gt;
* Rollenbasierte Zugriffssteuerung (RBAC: Role Based Access Control).&lt;br /&gt;
Da eine gleichzeitige Unterstützung mehrerer Modelle meist nicht sinnvoll realisierbar ist, ist die Modellauswahl eine grundlegende Entscheidung für das IT-System. Das am häufigsten anzutreffende Modell ist das der Eigner-definierten Zugriffssteuerung.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Eigner-definierte Zugriffssteuerung&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Bei der Eigner-definierten Zugriffssteuerung haben alle Daten einen definierten Eigner (oft auch als Besitzer bezeichnet). Dieser ist fest mit den Daten oder der Datei verbunden. Der Eigner definiert, welche Personen oder Systeme Zugriff auf die Daten erhalten und in welcher Form (z.B.: lesen, schreiben, ändern, ausführen oder verweigern).&lt;br /&gt;
&lt;br /&gt;
Die Zugriffsberechtigungen sind dabei meist über Access Control Lists (ACL‘s) definiert. Dabei handelt es sich um eine Auflistung aller Berechtigten und der jeweils zugeordneten Rechte.&lt;br /&gt;
&lt;br /&gt;
Dieses Modell ist in aktuellen Windows-, Linux- und Mac-Systemen anzutreffen. In diesen Systemen hat jede Datei einen Besitzer und eine entsprechende ACL zugeordnet.&lt;br /&gt;
&lt;br /&gt;
Einzelne User und Systeme können hier meist in Berechtigungsgruppen zusammengefasst werden. In diesem Fall können die ACL’s sowohl Zuordnungen einzelner User und Systeme, als auch Berechtigungsgruppen enthalten.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Obligatorische Zugriffssteuerung&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Die obligatorische Zugriffssteuerung findet ihre Anwendung in Bereichen mit sehr hohem Sicherheitsbedarf. Sie kommt daher meist in behördlichen und militärischen Systemen zum Einsatz.&lt;br /&gt;
&lt;br /&gt;
In diesem Modell ist keine individuelle Behandlung einzelner User und Dateien vorgesehen. Der Zugriff ist abhängig von unterschiedlichen Sicherheitsstufen, auf denen sich Daten und User befinden. Meist ist dabei eine Änderung von Dateiberechtigungen durch die User nicht möglich.&lt;br /&gt;
&lt;br /&gt;
Die Umsetzung der Sicherheitsstufen erfolgt durch Vertrauens-Levels (Clearance) für User und Sensitivitäts-Labels für Dateien. Mögliche Sicherheitsstufen wären z.B.: nicht vertraulich, vertraulich, geheim und streng geheim.&lt;br /&gt;
&lt;br /&gt;
Der Zugriff auf Daten erfolgt gemäß den jeweiligen Sicherheitsstufen. Sind die Stufe der Datei und die Stufe des Users ident, darf er auf die Daten zugreifen. Ob er auf Daten von darunterliegenden Stufen zugreifen darf, kann unterschiedlich implementiert sein. Meist dürfen Informationen nur von niedrigeren Levels zu höheren Levels übertragen werden und nicht umgekehrt. Zugriffe zwischen unterschiedlichen Levels werden dabei meist auch von eigenen Überwachungsdienstprogrammen gesteuert und genehmigt.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich werden meist hierarchische Zuordnungen vergeben, in denen sich sowohl Daten, als auch User befinden können. Die hierarchische Zuordnung steht dann nochmals über der Zuordnung des Sicherheitslevels. Damit ist sichergestellt, dass die Zugriffe nicht nur gemäß des Vertrauens-Levels, sondern auch gemäß der Zugriffs-Notwendigkeit erfolgen. Befindet sich ein User nicht in derselben hierarchischen Zuordnung, wie die jeweiligen Daten, wird davon ausgegangen, dass er keinen Zugriff benötigt und der Zugriff daher verweigert.&lt;br /&gt;
&lt;br /&gt;
Ein frei verfügbares Betriebssystem, welches das Modell der obligatorischen Zugriffssteuerung einsetzt, ist beispielsweise SE Linux [Na09].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rollenbasierte Zugriffssteuerung&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Bei der rollenbasierten Zugriffssteuerung werden Organisationsrichtlinien und -abläufe in ein Zugriffsmodell übersetzt. Dabei werden einzelnen Usern oder Systemen bestimmte (Organisations-)Rollen zugeordnet. Der Zugriff auf Daten hängt dabei von der jeweiligen Rolle des Zugreifenden ab. Die Berechtigung wird bei jedem Zugriffsversuch überprüft und dann genehmigt oder abgewiesen.&lt;br /&gt;
&lt;br /&gt;
Bei den hier eingesetzten Rollen handelt es sich nicht um Gruppen im Sinne der Eigner-definierten Zugriffssteuerung, sondern um Rollen innerhalb des jeweiligen Geschäftsprozesses bzw. einer Organisationseinheit. So kann ein User eine Rolle haben, die ihm aus einer Anwendung heraus Zugriff auf einen Datensatz gestattet und aus einer anderen Anwendung nicht mehr, obwohl es sich um denselben Datensatz handelt. Wichtig ist dabei immer die Betrachtung des aktuellen Zwecks des Zugriffes.&lt;br /&gt;
&lt;br /&gt;
Die Implementierung rollenbasierter Zugriffssteuerungen ist daher auch komplexer als die der Eigner-definierten Zugriffssteuerung.&lt;br /&gt;
&lt;br /&gt;
== Passwortsicherheit ==&lt;br /&gt;
&lt;br /&gt;
Wie bereits in der Lektion zu [[Computer- und_Netzwerksicherheit_-_Kryptograhpie|Kyptographie]] beschrieben, hat die sichere Speicherung von Passwörtern eine hohe Priorität und sollte in einer entsprechend sicheren Architektur erfolgen. Zusätzlich zur technischen Sicherheit ist eine entsprechende &amp;#039;&amp;#039;&amp;#039;Passwortkomplexität von besonderer Relevanz&amp;#039;&amp;#039;&amp;#039;. Ein noch so effizient abgesicherter Passwortspeicher verliert an Bedeutung, wenn das darin gespeicherte Passwort selbst unsicher ist.&lt;br /&gt;
&lt;br /&gt;
Ein unsicheres Passwort hat entweder:&lt;br /&gt;
&lt;br /&gt;
* eine zu geringe &amp;#039;&amp;#039;&amp;#039;Komplexität&amp;#039;&amp;#039;&amp;#039; und kann daher durch [[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Brute-Force_Angriffe|Bruteforce]]- oder [[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Angriffe_gegen_Hashwerte|Hash-Kollisions-Angriffe]] gefunden werden, oder&lt;br /&gt;
* kann durch &amp;#039;&amp;#039;&amp;#039;[[Computer- und_Netzwerksicherheit_-_Bewusstseinsbildung#Angriffsvektor_Social_Engineering|Social Engineering]]&amp;#039;&amp;#039;&amp;#039; herausgefunden werden (z.B.: Name des Kindes mit Jahreszahl, Anfangsbuchstaben des Titels des Lieblingsliedes, usw.).&lt;br /&gt;
Die Komplexität eines Passwortes ergibt sich aus der &amp;#039;&amp;#039;&amp;#039;Entropie&amp;#039;&amp;#039;&amp;#039; – also den möglichen unterschiedlichen Kombinationen bzw. dem [[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Schl%C3%BCssel_(Key)_und_Keyspace|Keyspace]]. Daraus und an der Anzahl an Passwörtern, welche pro Sekunde geprüft werden können, ergibt sich dann wiederum die Dauer, in welcher das Passwort durch Ausprobieren (Bruteforce-Angriff) gefunden werden kann.&lt;br /&gt;
&lt;br /&gt;
Für die Komplexität von Passwörter galt lange eine bestimmte Mindestlänge (meist 8 Zeichen) und eine Kombination aus den Merkmalen:&lt;br /&gt;
&lt;br /&gt;
* Kleinbuchstaben,&lt;br /&gt;
* Großbuchstaben,&lt;br /&gt;
* Ziffern und&lt;br /&gt;
* Sonderzeichen&lt;br /&gt;
als ausreichender Schutz.&lt;br /&gt;
&lt;br /&gt;
Beispielsweise ein Passwort &amp;#039;&amp;#039;&amp;#039;„&amp;#039;&amp;#039;f9D22+P#&amp;#039;&amp;#039;“&amp;#039;&amp;#039;&amp;#039; mit 8 Zeichen und Erfüllung aller oben genannten Kriterien hat somit folgende Komplexität:&lt;br /&gt;
&lt;br /&gt;
* 26 Kleinbuchstaben +&lt;br /&gt;
* 26 Großbuchstaben +&lt;br /&gt;
* 10 Ziffern +&lt;br /&gt;
* 36 Sonderzeichen (alle Sonderzeichen der deutschen Tastatur)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;= 98 Mögliche Zeichen pro Stelle&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Bei 8 Zeichen sind das 98^8 mögliche Passwortkombinationen.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Ein Hochleistungs-PC, welcher 2.148.000.000 Passwörter in der Sekunde ausprobieren kann, benötigt somit durchschnittlich ca. &amp;#039;&amp;#039;&amp;#039;23 Tage&amp;#039;&amp;#039;&amp;#039; um das Passwort herauszufinden.&lt;br /&gt;
&lt;br /&gt;
Ein Problem solcher komplexen Passwörter ist, dass es für die meisten User schwierig ist, sie sich zu einzuprägen. Dadurch besteht ein erhöhtes Risiko, dass die Passwörter:&lt;br /&gt;
&lt;br /&gt;
* vergessen werden,&lt;br /&gt;
* auf einem Zettel notiert werden,&lt;br /&gt;
* nicht ausreichend oft geändert werden oder&lt;br /&gt;
* nur minimal geändert werden – beispielsweise durch simple Variation einzelner Teile des Passwortes, wie einer Ziffer am Ende.&lt;br /&gt;
Aufgrund der oben genannten Schwächen und der dennoch geringen Entropie noch gut merkbarer Passwortlängen, können diese Passwortrichtlinien &amp;#039;&amp;#039;&amp;#039;nicht mehr als Stand der Technik&amp;#039;&amp;#039;&amp;#039; betrachtet werden. Eine wesentlich bessere Möglichkeit ist die Nutzung von zufälligen Wörtern aus dem Wörterbuch. [Ga17]&lt;br /&gt;
&lt;br /&gt;
Bei der Nutzung von &amp;#039;&amp;#039;&amp;#039;vier zufälligen Wörtern aus dem Wörterbuch&amp;#039;&amp;#039;&amp;#039; (kein Satz, sondern tatsächlich zufällig gewählte Wörter), ergibt sich bei Nutzung der 100.000 unterschiedlichen Wörter des Österreichischen Wörterbuchs [AF20] folgende Komplexität:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;100.000 mögliche Wörter pro „Stelle“ (ein Wort ist somit eine Stelle).&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Bei 4 Wörtern sind das 100.000^4 mögliche Passwortkombinationen.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Ein Hochleistungs-PC (der selbe PC wie im ersten Beispiel), welcher 2.148.000.000 Passwörter in der Sekunde ausprobieren kann, benötigt somit durchschnittlich ca. &amp;#039;&amp;#039;&amp;#039;738 &amp;lt;u&amp;gt;Jahre&amp;lt;/u&amp;gt;&amp;#039;&amp;#039;&amp;#039; um das Passwort herauszufinden.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für ein Passwort aus 4 unzusammenhängenden Wörtern aus dem deutschen Duden ist: &amp;#039;&amp;#039;&amp;#039;„&amp;#039;&amp;#039;Dachs faul logisch Gerät&amp;#039;&amp;#039;“&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Das Passwort weißt somit eine &amp;#039;&amp;#039;&amp;#039;wesentlich höhere Entropie&amp;#039;&amp;#039;&amp;#039; auf und ist für einen Menschen gleichzeitig &amp;#039;&amp;#039;&amp;#039;leichter merkbar&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Leider ist diese Form der Passwörter in &amp;#039;&amp;#039;&amp;#039;vielen Systemen noch nicht implementiert&amp;#039;&amp;#039;&amp;#039; und es werden noch die veralteten Komplexitätsmerkmale des ersten Beispiels abgerufen. Diese Hürde kann ganz einfach überwunden werden, indem am Ende des Passworts eine Ziffer und ein Sonderzeichen gestellt werden. Da diese keine wirkliche Relevanz für die genannte Passwortsicherheit haben, können hier auch Zeichen genutzt werden, die schnell zu tippen sind. Das oben genannte Passwort könnte damit dann einfach &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;„Dachs faul logisch Gerät 9+“&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; lauten.&lt;br /&gt;
&lt;br /&gt;
== Zertifikate ==&lt;br /&gt;
&lt;br /&gt;
Zertifikate dienen der Feststellung der Identitäten von Personen und Systemen auf digitalem Wege. Ein Zertifikat ist ein digitales Dokument, indem bestimmte Daten angegeben sind, welche eine Person oder ein System und optional auch zugehörige Eigenschaften identifizieren. Zertifikate sind wesentliche Bestandteile von Public-Key-Systemen und enthalten zusätzlich den jeweiligen Public-Key des Zertifikatsinhabers (siehe auch Kapitel &amp;quot;[[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Asymmetrische_Verfahren|Asymmetrische Verfahren]]&amp;quot; Lektion &amp;quot;Kryptographie&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Um die Echtheit eines Zertifikats zu bestätigen, kann dieses von anderen Stellen signiert werden. Diese Stellen werden als &amp;#039;&amp;#039;&amp;#039;Zertifizierungsstellen (CA: Certification Authority)&amp;#039;&amp;#039;&amp;#039; bezeichnet. Die Signatur erfolgt dabei, wie in Kapitel &amp;quot;[[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Asymmetrische_Verfahren|Asymmetrische Verfahren]]&amp;quot; beschrieben, durch hashen des Zertifikates und Verschlüsselung des Hashwertes durch den privaten Schlüssel der Zertifizierungsstelle. Da der öffentliche Schlüssel – wiederum durch das Zertifikat der Zertifizierungsstelle – bekannt ist, kann der Hashwert korrekt entschlüsselt, und die Signatur damit als gültig erkannt, werden.&lt;br /&gt;
&lt;br /&gt;
Ob diese Echtheitsbestätigungen nun &amp;#039;&amp;#039;&amp;#039;hierarchisch&amp;#039;&amp;#039;&amp;#039; erfolgen ([[Computer- und_Netzwerksicherheit_-_Zugriffssteuerung#Public-Key-Infrastruktur_(PKI)|Public-Key-Infrastruktur]]), oder über ein dezentral &amp;#039;&amp;#039;&amp;#039;verteiltes Vertrauensmodell&amp;#039;&amp;#039;&amp;#039; ([[Computer- und Netzwerksicherheit_-_Zugriffssteuerung#Web_of_Trust_(WOT)|Web of Trust]]) ist von der jeweiligen Implementierung abhängig. Derzeit sind beide Modellvarianten im Einsatz und finden ihre Anwendung in einer Vielzahl von Systemen. Die Zertifikate der behördlich akzeptierten digitalen Signaturen basieren derzeit auf dem hierarchischen Modell der Public-Key-Infrastruktur.&lt;br /&gt;
&lt;br /&gt;
Ein Zertifikat ist mit einem Ausweisdokument vergleichbar. Auf dem Ausweis befinden sich die Daten der Person und ein Verweis auf den Aussteller. Durch Sicherheitsmerkmale am Dokument (Wasserzeichen, Silberstreifen,…) wird dabei die Echtheitsprüfung ermöglicht. Der Aussteller (z.B. eine Behörde) bestätigt damit die Identität des Inhabers (z.B. Personalausweis) und gegebenenfalls auch bestimmte durch das Dokument erlaubte Tätigkeiten (z.B. Führerschein).&lt;br /&gt;
&lt;br /&gt;
Die Echtheit eines Zertifikates kann von der jeweiligen Zertifizierungsstelle auch wieder zurückgezogen werden. Zu diesem Zweck werden &amp;#039;&amp;#039;&amp;#039;Zertifikats-Sperrlisten (CRL: Certificate Revocation Lists)&amp;#039;&amp;#039;&amp;#039; eingesetzt, welche Einträge der Seriennummern aller Zertifikate mit zurückgenommenen Echtheitsbestätigungen enthält. Die Sperrliste ist selbst wiederum von der jeweiligen Zertifizierungsstelle signiert, um ihre Echtheit zu bestätigen.&lt;br /&gt;
&lt;br /&gt;
Der Aufbau und der mögliche Inhalt eines Zertifikates ist im &amp;#039;&amp;#039;&amp;#039;X.509 Standard&amp;#039;&amp;#039;&amp;#039; [Ne99] definiert. Ein entsprechendes Beispiel (das aktuelle Zertifikat des Online-Campus) ist in Abbildung &amp;quot;Zertifikat&amp;quot; dargestellt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 16.png|300px|none|thumb|Zertifikat]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref415127603&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Public-Key-Infrastruktur (PKI) ===&lt;br /&gt;
&lt;br /&gt;
Bei der Public-Key-Infrastruktur (PKI) handelt es sich um ein hierarchisch aufgebautes System von Zertifizierungsstellen. Das bedeutet, dass jede Zertifizierungsstelle das in sie gesetzte Vertrauen an nachfolgende Stellen weiterverteilen kann, indem sie die zugehörigen Zertifikate signiert.&lt;br /&gt;
&lt;br /&gt;
Daraus ergibt sich dann eine Hierarchie aus mehreren Zertifikaten, die bis zu einem Stammzertifikat rückverfolgt werden können sind. Durch das Vertrauen in das jeweilige Stammzertifikat wird auch den nachfolgenden Zertifikaten vertraut.&lt;br /&gt;
&lt;br /&gt;
In den meisten Anwendungen, die PKI Zertifikate einsetzen (z.B. Internetbrowser für HTTPS Verbindungen), sind bereits einige gängige Stammzertifikate der großen Zertifizierungsstellen vorinstalliert. Es ist jedoch meist auch möglich weitere Stammzertifikate hinzuzufügen, denen dann ebenfalls vertraut wird. In Abbildung &amp;quot;Zertifizierungspfad&amp;quot; ist die Hierarchie des Zertifikates des Online-Campus dargestellt. Die Stammzertifizierungsstelle ist in diesem Fall das Unternehmen Go Daddy.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 17.png|300px|none|thumb|Zertifizierungspfad]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref415147744&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den Zertifizierungsstellen gibt es in der PKI noch weitere Instanzen, welche hautsächlich für den Zertifizierungsprozess verantwortlich sind. Die Hauptakteure der PKI sind:&lt;br /&gt;
&lt;br /&gt;
* Zertifizierungsstelle (CA: Certification Authority),&lt;br /&gt;
* Registrierungsstelle (RA: Registration Authority) und&lt;br /&gt;
* Validierungsdienst (VA: Validation Authority)&lt;br /&gt;
Die &amp;#039;&amp;#039;&amp;#039;Registrierungsstelle&amp;#039;&amp;#039;&amp;#039; ist in der PKI dafür verantwortlich die Identität des Antragsstellers zu überprüfen und dies wiederum der Zertifizierungsstelle mitzuteilen. Die &amp;#039;&amp;#039;&amp;#039;Validierungsstelle&amp;#039;&amp;#039;&amp;#039; ist für die Gültigkeitsprüfung von bereits ausgestellten Zertifikaten verantwortlich. Sie verwaltet auch die Zertifikats-Sperrlisten und ihre Erreichbarkeit ist meist in einem Datenfeld in den Zertifikaten selbst angegeben.&lt;br /&gt;
&lt;br /&gt;
Soll nun ein neues Zertifikat ausgestellt werden, muss folgender &amp;#039;&amp;#039;&amp;#039;Zertifizierungsprozess&amp;#039;&amp;#039;&amp;#039; durchlaufen werden:&lt;br /&gt;
&lt;br /&gt;
# Der Antrag für das neue Zertifikat wird an die Registrierungsstelle (RA) geschickt&lt;br /&gt;
# Die Registrierungsstelle (RA) überprüft den Antrag und stellt sicher, dass es sich bei der Identität tatsächlich um die der antragstellenden Person oder des zugehörigen IT-Systems (z.B. bei einem Webserver-Zertifikat) handelt.&lt;br /&gt;
# Wenn die Registrierungsstelle die Identität bestätigen kann, sendet sie den Antrag weiter an die Zertifizierungsstelle (CA).&lt;br /&gt;
# Die Zertifizierungsstelle (CA) stellt nun das beantragte Zertifikat aus, generiert dafür einen privaten und einen öffentlichen Schlüssel und sendet diese an die antragsstellende Person.&lt;br /&gt;
Oft ist es auch möglich das Schlüsselpaar selbst zu generieren und dem Antrag nur den öffentlichen Schlüssel beizufügen. Dies ist für die Ausstellung des Zertifikates ausreichend, da der private Schlüssel für seine Signierung nicht benötigt wird (diese wird durch den privaten Schlüssel der CA durchgeführt). In diesem Fall ist zusätzlich sichergestellt, dass der private Schlüssel nur der antragsstellenden Person bekannt ist.&lt;br /&gt;
&lt;br /&gt;
Gerade bei der Überprüfung durch die Registrierungsstelle gibt es unterschiedliche Qualitäten. Wird hier ungenau vorgegangen, kann dies zu Zertifikaten falscher Identitäten führen.&lt;br /&gt;
&lt;br /&gt;
=== Web of Trust (WOT) ===&lt;br /&gt;
&lt;br /&gt;
Das Modell des Web of Trust ist im Gegensatz zur PKI nicht hierarchisch, sondern dezentral aufgebaut. Es basiert auf einer dezentralen Vertrauensverteilung zwischen den Teilnehmern, ähnlich dem Freundes- und Bekanntenkreis einer Person. Die Schlüssel sind dabei nicht in einer hierarchischen Struktur zentral abrufbar und überprüfbar, sondern werden direkt von den Benutzern verwaltet. Jeder User hat seinen eigenen Schlüsselbund, wobei hier zwischen dem privaten und dem öffentlichen Schlüsselbund unterschieden wird.&lt;br /&gt;
&lt;br /&gt;
Am &amp;#039;&amp;#039;&amp;#039;privaten Schlüsselbund&amp;#039;&amp;#039;&amp;#039; befinden sich die privaten Schlüssel des Users, mit denen Daten signiert und entschlüsselt werden können. Am &amp;#039;&amp;#039;&amp;#039;öffentlichen Schlüsselbund&amp;#039;&amp;#039;&amp;#039; befinden sich die eigenen öffentlichen Schlüssel, sowie die öffentlichen Schlüssel anderer User. Mit den öffentlichen Schlüsseln können Nachrichten verschlüsselt und Signaturen geprüft werden.&lt;br /&gt;
&lt;br /&gt;
Die Vertrauensstufen werden über die öffentlichen Schlüssel der Teilnehmer ermittelt. Dazu gibt es im öffentlichen Schlüsselbund für jeden Schlüssel ein &amp;#039;&amp;#039;&amp;#039;Key Legimitation Field&amp;#039;&amp;#039;&amp;#039;, in dem der jeweilige &amp;#039;&amp;#039;&amp;#039;Vertrauensgrad (Owner Trust)&amp;#039;&amp;#039;&amp;#039; des Schlüssels angegeben wird.&lt;br /&gt;
&lt;br /&gt;
Im WOT gibt es folgende Vertrauensgrade:&lt;br /&gt;
&lt;br /&gt;
* unknown: Personen über die keine Informationen bekannt sind,&lt;br /&gt;
* not trusted: Personen denen nicht vertraut wird,&lt;br /&gt;
* marginal: Personen denen nicht voll vertraut wird,&lt;br /&gt;
* complete: Personen denen voll vertraut wird und&lt;br /&gt;
* ultimate: eigener öffentlicher Schlüssel.&lt;br /&gt;
Wer als vertrauenswürdig eingestuft wird, liegt somit beim jeweiligen Schlüsselbund Inhaber.&lt;br /&gt;
&lt;br /&gt;
Die Vertrauensgrade können an andere User (z.B. über einen Schlüsselserver) weitergegeben werden, indem die jeweiligen Schlüssel durch den eigenen privaten Schlüssel signiert werden. Dies wird auch als &amp;#039;&amp;#039;&amp;#039;indirekte Zertifizierung&amp;#039;&amp;#039;&amp;#039; bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Ist dem User, der einen dritten Schlüssel signiert hat, im eigenen Schlüsselbund einem Vertrauensgrad zugewiesen, so erhält der von ihm signierte Schlüssel je nach eigener Einstellung denselben Vertrauensgrad oder niedriger. Zusätzlich kann definiert werden, wie viele signierte Schlüssel eines niedrigeren Vertrauensgrades notwendig sind, um die Vertrauensstufe um eine Stufe aufzuwerten. Die Standartwerte hierfür sind 3 signierte Schlüssel anderer User für die Aufwertung und ein signierter Schlüssel eines anderen Users für dieselbe Stufe.&lt;br /&gt;
&lt;br /&gt;
Diese Abhängigkeiten sind in Abbildung &amp;quot;Web of Trust - Vertrauensnetzwerk&amp;quot; ersichtlich: Peter kennt sowohl Anna, als auch Christoph persönlich und hat daher ihre öffentlichen Schlüssel in seinem öffentlichen Schlüsselbund abgelegt. Christoph hat nur eine direkte Beziehung zu Anna, nicht aber zu Peter. Da sich Christophs öffentlicher Schlüssel im öffentlichen Schlüsselbund von Anna befindet, erkennt Peter sein Zertifikat als gültig an.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref415150535&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;[[file:img1643193688517.png|300px|alt=Web of Trust - Vertrauensnetzwerk|none|thumb|Web of Trust - Vertrauensnetzwerk]]&lt;br /&gt;
&lt;br /&gt;
Die erste Implementierung des WOT war &amp;#039;&amp;#039;&amp;#039;Pretty Good Privacy (PGP)&amp;#039;&amp;#039;&amp;#039; [Sy15]. Es ist ein Softwarepaket, welches die Sicherstellung der Authentizität, Integrität und Vertraulichkeit von E-Mails sowie beliebiger Dateien ermöglicht. &amp;#039;&amp;#039;&amp;#039;GnuPG&amp;#039;&amp;#039;&amp;#039; [Gn15] ist die frei verfügbare Version, die unter der GNU General Public License [Fr07] steht. Ein möglicher Windows Client für GnuPG ist beispielsweise Gpg4win [In15b].&lt;br /&gt;
&lt;br /&gt;
=== Neue Zertifikatsmodelle und Erweiterungen ===&lt;br /&gt;
&lt;br /&gt;
Sowohl im Bereich des PKI, als auch im WOT Modell, gibt es mittlerweile einige bekannte Sicherheitslücken und Protokollfehler. Weiter ist gerade im PKI Modell die Rolle der CA enorm wichtig. Werden hier nur schlechte Identitätskontrollen bei der Ausstellung von Zertifikaten durchgeführt, kann es zu falschen validen Identitäten kommen. Im Bereich des WOT können beispielsweise die Schlüsselserver zum Generieren von SPAM-Versandlisten genutzt werden, da die zugehörigen E-Mailadressen der Zertifikate dort frei verfügbar sein müssen. Weiter sind über die WOT soziale Netzwerke der User analysierbar, da die Trustlevel und ihre Abhängigkeiten leicht analysiert werden können. [Br14]&lt;br /&gt;
&lt;br /&gt;
Um diese Schwachstellen zu beseitigen wird bereits an möglichen neuen Protokollen und Erweiterungen geforscht. Den meisten Ansätzen gemein ist, die Abhängigkeit von einzelnen CA’s zu verringern. Fehler einer CA sollen möglichst auf Seite der Endanwendung (wie z.B. im Browser oder Mail Client) frühzeitig erkannt und angezeigt werden. [Br14]&lt;br /&gt;
&lt;br /&gt;
Einer dieser neuen Ansätze ist die Software &amp;#039;&amp;#039;Perspectives&amp;#039;&amp;#039; [Ca15]. Dabei handelt es sich um eine Browsererweiterung, die jedes Zertifikat zusätzlich mit einem sogenannten Notary-Server abgleicht. Damit können beispielsweise Man-in-the-Middle Angriffe frühzeitig erkannt werden.&lt;br /&gt;
&lt;br /&gt;
Weitere aktuelle Erweiterungen sind [Br14]:&lt;br /&gt;
&lt;br /&gt;
* Pinning [EPS14],&lt;br /&gt;
* Certificate Transparency [LLK13],&lt;br /&gt;
* Microsoft SmartScreen [Mi15] und&lt;br /&gt;
* DANE [HVS12].&lt;br /&gt;
&lt;br /&gt;
== Angriffsvektoren der Access Control ==&lt;br /&gt;
&lt;br /&gt;
Die Angriffsmethoden der Access Control sind sehr vielfältig und haben oft [[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Angriffsvektoren_der_Kryptographie|Angriffsvektoren der Kryptographie]] und [[Computer- und_Netzwerksicherheit_-_Netzwerksicherheit#Angriffsvektoren_der_Daten%C3%BCbertragung|Datenübertragung]], sowie [[Computer- und_Netzwerksicherheit_-_Bewusstseinsbildung#Angriffsvektor_Social_Engineering|Social Engineering]]als Grundlage. Dies trifft insbesondere auf Angriffe gegen die Integrität und Authentizität zu.&lt;br /&gt;
&lt;br /&gt;
Dazu bereits behandelte Angriffsvektoren sind:&lt;br /&gt;
&lt;br /&gt;
* [[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Brute-Force_Angriffe|Brute-Force Angriffe]],&lt;br /&gt;
* [[Computer- und_Netzwerksicherheit_-_Bewusstseinsbildung#Phishing|Phishing]]&amp;amp;nbsp;und&lt;br /&gt;
* [[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Angriffe_gegen_Hashwerte|Angriffe gegen Hashwerte]].&lt;br /&gt;
Eine weitere wichtige Angriffsmethode ist die des &amp;#039;&amp;#039;&amp;#039;Pharming.&amp;#039;&amp;#039;&amp;#039; Dabei wird die Anfrage eines Users auf einen bösartigen Server umgeleitet. Er glaubt sich sicher und gibt dann dort seine geheimen Daten ( wie z.B.: Zugangsdaten und Transaktionsdaten) preis. Beim Pharming handelt es sich daher um einen [[Computer- und_Netzwerksicherheit_-_Netzwerksicherheit#Man-in-the-Middle_Angriff|Man-in-the-Middle Angriff]].&lt;br /&gt;
&lt;br /&gt;
== Wiederholungsaufgaben/Übungen ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1 Was ist der Unterschied zwischen Identifikation, Authentifikation und Autorisation?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2 Was ist eine Zwei-Faktor-Authentifikation?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3 Welche drei Zugriffssteuerungsmodelle gibt es?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;4 Erklären Sie das Modell der Eigner-definierten Zugriffssteuerung.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;5 Was sind Zertifikate und die damit verbundenen Vertrauensmodelle?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;6 Was bedeutet PKI und wer sind ihre Hauptakteure? Wie hängen diese Akteure zusammen?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;7 Eine Passwortrichtlinie fordert ein Passwort, bestehend aus Kleinbuchstaben, Großbuchstaben und Ziffern mit einer Länge von 10 Zeichen. Wie wird die Komplexität des Passworts berechnet (wie viele mögliche Passwörter gibt es)?&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Computer-_und_Netzwerksicherheit_-_Zugriffssteuerung&amp;diff=2710</id>
		<title>Computer- und Netzwerksicherheit - Zugriffssteuerung</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Computer-_und_Netzwerksicherheit_-_Zugriffssteuerung&amp;diff=2710"/>
		<updated>2022-04-03T08:08:28Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Zugriffssteuerung =&lt;br /&gt;
&lt;br /&gt;
Die Zugriffssteuerung (Access Control) regelt den Zugriff und die Kommunikation von IT-Systemen mit ihren Anwendern, Ressourcen und anderen IT-Systemen. Es handelt sich dabei um eine zentrales Element der meisten IT-Systeme, da davon alle Schutzziele (Vertraulichkeit, Integrität und Verfügbarkeit; siehe Lektion &amp;quot;[[Computer- und Netzwerksicherheit_-_Grundlagen#S%C3%A4ulen_der_Informationssicherheit_-_CIA_Triade|Säulen der Informationssicherheit - CIA Triade]]&amp;quot;) betroffen sein können.&lt;br /&gt;
&lt;br /&gt;
In dieser Lektion werden die grundlegenden Begriffe der Zugriffssteuerung erläutert und weiter die konkreten Techniken der Zertifikate und der Fernzugriffe sowie potentielle Angriffsvektoren näher behandelt.&lt;br /&gt;
&lt;br /&gt;
== Grundbegriffe der Zugriffssteuerung ==&lt;br /&gt;
&lt;br /&gt;
Um die Schutzziele der Vertraulichkeit, Integrität und Verfügbarkeit des Datenaustausches mit IT-Systemen gewährleisten zu können müssen die jeweiligen Anforderungen an die Kommunikation definiert werden. Dabei gibt es einige wesentliche Begriffe, welche oft auch von Technikern falsch verwendet werden. Beispielsweise werden &amp;#039;&amp;#039;Identifikation&amp;#039;&amp;#039;, &amp;#039;&amp;#039;Authentifikation&amp;#039;&amp;#039; und &amp;#039;&amp;#039;Autorisation&amp;#039;&amp;#039; manchmal fälschlicherweise als Akronyme verwendet, obwohl es sich dabei um grundlegend unterschiedliche Begriffe handelt. Auch ist es wichtig zu wissen, wie bestimmte Anforderungen an die Zugriffssteuerung implementiert werden können.&lt;br /&gt;
&lt;br /&gt;
=== Zugriff ===&lt;br /&gt;
&lt;br /&gt;
Beim Zugriff handelt es sich um die Kommunikation mit einem IT-System. Diese kann sowohl mit einem Anwender, als auch mit einem anderen IT-System oder seiner Ressourcen stattfinden. In den meisten Fällen gibt es dabei Anforderungen an Identifikation, Authentifikation und Autorisation, sowie an die Nachverfolgbarkeit und Nichtabstreitbarkeit (siehe weiter auch Lektion &amp;quot;[[Computer- und Netzwerksicherheit_-_Kryptograhpie#Kryptographie|Krypotgraphie]]&amp;quot; Unterkapitel 2 - 5).&lt;br /&gt;
&lt;br /&gt;
Ressourcen können dabei alle Komponenten sein, welche einen Zugriff auf Daten ermöglichen oder diese beinhalten, wie beispielsweise: Datenbanken, Tabellen und Dateien. Die Zugriffe können dabei sowohl über lokale Verbindungen, als auch über das Netzwerk/Internet oder unterschiedliche Datenträger erfolgen.&lt;br /&gt;
&lt;br /&gt;
=== Identifikation ===&lt;br /&gt;
&lt;br /&gt;
Die Identifikation bezeichnet die Benennung eines bestimmten Systems oder einer Person, welche auf ein System zugreifen möchte. Dabei ist weder sichergestellt durch wen diese Benennung erfolgt ist, noch ob es sich bei der Benennung tatsächlich um das benannte System oder die benannte Person handelt.&lt;br /&gt;
&lt;br /&gt;
Zur Identifikation dienen oft die eindeutige User-ID, die E-Mailadresse oder der Name.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel ist eine Anwesenheitsliste: Die Protokollführung schreibt die Namen der anwesenden Personen auf, welche diese wiederum identifizieren. Dabei ist jedoch noch nicht sichergestellt, ob die jeweiligen Personen tatsächlich die sind, die sie vorgeben zu sein. Im schlechtesten Fall sind sie der Protokollführung nicht bekannt und identifizieren sich durch Nennung ihres Namens.&lt;br /&gt;
&lt;br /&gt;
=== Authentifikation ===&lt;br /&gt;
&lt;br /&gt;
Die eindeutige Identifikation einer Person oder eines Systems wird als Authentifikation bezeichnet. Erst dadurch wird sichergestellt, dass es sich dabei tatsächlich um die Identifizierten handelt.&lt;br /&gt;
&lt;br /&gt;
Es gibt drei unterschiedliche Kategorien von Authentifikationsmethoden und -merkmale:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Wissen&amp;#039;&amp;#039;&amp;#039; (was jemand weiß),&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Besitz&amp;#039;&amp;#039;&amp;#039; (was jemand besitzt) und&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Biometrie&amp;#039;&amp;#039;&amp;#039; (was jemand ist).&lt;br /&gt;
Die drei Merkmale Wissen, Besitz und Biometrie werden oft auch als „Wissen, Haben und Sein“ bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Eine häufig eingesetzte Methode ist das Passwort. Dieses ist in der Kategorie des &amp;#039;&amp;#039;&amp;#039;Wissens&amp;#039;&amp;#039;&amp;#039; eingeordnet, da es von jedem eingesetzt werden kann, der es kennt. Es kann daher auch weitergegeben oder ausgespäht werden. Je komplexer es ist, desto leichter kann es auch vergessen werden. Je häufiger es verwendet wird, desto schneller kann es herausgefunden werden. Zu komplexe Passwörter sind daher keine gute Lösung zur sicheren Authentifikation, da sie von vielen Usern vergessen oder aufgeschrieben werden. Dasselbe gilt für zu einfache Passwörter, da sie leicht erraten werden können.&lt;br /&gt;
&lt;br /&gt;
Beim Merkmal des &amp;#039;&amp;#039;&amp;#039;Besitzes&amp;#039;&amp;#039;&amp;#039; wird die Authentifikation über etwas erreicht, dass nur der zu Authentifizierende besitzt. Beispiele dafür sind ein Personalausweis oder eine Chipkarte (z.B. eine Bankomatkarte). Damit die Weitergabe dieses Merkmals überhaupt nicht, oder nur sehr schwierig möglich ist, sollte es möglichst nicht vervielfältigt werden können.&lt;br /&gt;
&lt;br /&gt;
Unter &amp;#039;&amp;#039;&amp;#039;Biometrie&amp;#039;&amp;#039;&amp;#039; werden Merkmale verstanden, die an eine bestimmte Person (oder ein bestimmtes System) gebunden sind. Sie sind öffentlich sichtbar oder beobachtbar, jedoch nicht leicht duplizierbar. Häufig bekannte Beispiele für biometrische Merkmale sind Fingerabdrücke, Venenmuster, die Iris-Muster der Augen und Stimmmuster. Weitere, oft weniger bekannte, Merkmale sind jedoch auch die Art des Ganges einer Person, ihre Tastenanschläge, ihr Schreibstil und aber auch die Art und Weise wie sie sich innerhalb eines Programmes oder einer Webseite bewegen.&lt;br /&gt;
&lt;br /&gt;
Je nach Sicherheitsanforderungen können dabei auch mehrere Merkmale kombiniert werden um die Authentifizierungsqualität noch weiter zu verstärken. Ein bekanntes Beispiel dafür ist die zur Bargeldbehebung mittels Bankomatkarte notwendige Authentifizierung. Dabei wird ein Besitzmerkmal (Bankomatkarte) mit einem Wissensmerkmal (PIN-Code) kombiniert. Ist jemand im Besitz der Karte, benötigt er zusätzlich noch den PIN-Code und umgekehrt. Mit einem der beiden Merkmale allein kann keine gültige Authentifikation erfolgen und damit auch kein Geld behoben werden.&lt;br /&gt;
&lt;br /&gt;
Werden zwei Merkmale kombiniert, wird dies auch als &amp;#039;&amp;#039;&amp;#039;Zwei-Faktor-Authentifizierung&amp;#039;&amp;#039;&amp;#039; bezeichnet. Wichtig ist dabei immer, dass zwei Merkmale unterschiedlicher Kategorien (Wissen, Besitz und Biometrie) kombiniert werden. Die Kombination zweier Merkmale derselben Kategorie, erhöht zwar die Sicherheit, gilt dabei jedoch nicht als Zwei-Faktor-Authentifizierung. Die einzelnen Merkmalskategorien und die sich daraus ergebenen Authentifizierungslevel sind weiter in Abbildung &amp;quot;Authentifizierungsfaktoren: Wissen, Besitz und Biometrie&amp;quot; dargestellt.&lt;br /&gt;
&lt;br /&gt;
Ob die Authentifizierungsqualität durch den Einsatz von drei Faktoren weiter stark erhöht werden kann, ist umstritten. Dies ist stark von den jeweils eingesetzten Techniken, aber auch von deren Akzeptanz bei den Anwendern, abhängig.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 15.png|300px|none|thumb| Authentifizierungsfaktoren: Wissen, Besitz und Biometrie]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref414885673&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Autorisation ===&lt;br /&gt;
&lt;br /&gt;
Bei der Autorisation handelt es sich um die Berechtigung, die eine authentifizierte Person oder ein authentifiziertes System für einen bestimmten Zugriff hat. So können in einem System beispielsweise unterschiedliche Rollen existieren, welche wiederum unterschiedliche Zugriffe ermöglichen. Wie ein System unterschiedliche Autorisationen verwaltet und behandelt wird als [[Computer- und_Netzwerksicherheit_-_Zugriffssteuerung#Zugriffssteuerungsmodelle|Zugriffssteuerungsmodell]] bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Die Authentifikation stellt damit sicher, dass es sich um jemand bestimmten handelt und die Autorisation regelt wiederum welche bestimmten Rollen welche Zugriffe bekommen.&lt;br /&gt;
&lt;br /&gt;
=== Nachverfolgbarkeit und Nichtabstreitbarkeit ===&lt;br /&gt;
&lt;br /&gt;
Bei der Nachverfolgbarkeit und Nichtabstreitbarkeit handelt es sich um Zugriffsmerkmale, welche eine genaue Dokumentation der jeweiligen Systemkommunikation ermöglichen. Je nach Anforderung wird dabei dokumentiert, welche Zugriffe stattgefunden haben und unter welchen (Sicherheits-)Parametern diese aufgebaut wurden. Um eine lückenlose Nachverfolgbarkeit sicherzustellen, ist es erforderlich, den Erfolg der Authentifikation und die erteilte Autorisation zu dokumentieren.&lt;br /&gt;
&lt;br /&gt;
In manchen Fällen ist es weiter erforderlich eine Nichtabstreitbarkeit von Zugriffen zu ermöglichen. Als &amp;#039;&amp;#039;&amp;#039;Nichtabstreitbarkeit&amp;#039;&amp;#039;&amp;#039; wird bezeichnet, das eine Person die Erstellung einer gesendeten Nachricht nicht mehr abstreiten kann. Dies beinhaltet auch automatisch die Integrität der Nachricht. Es muss daher für eine Nichtabstreitbarkeit auch sichergestellt sein, dass die Nachricht nicht mehr verändert wurde, da anderenfalls der Absender behaupten könnte, ursprünglich eine andere Nachricht erstellt zu haben.&lt;br /&gt;
&lt;br /&gt;
Die Nichtabstreitbarkeit kann mit Hilfe asymmetrischer Kryptographie Methoden sichergestellt werden (siehe Kapitel &amp;quot;[[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Asymmetrische_Verfahren|Asymmetrische Verfahren]]&amp;quot; Lektion &amp;quot;Kryptographie&amp;quot;). Dabei wird der Hashwert einer Nachricht mit dem privaten Schlüssel des Absenders verschlüsselt. Zur Prüfung der Integrität (ob die Nachricht der abgesendeten Nachricht entspricht), muss nun nur noch der verschlüsselte Hashwert mit dem öffentlichen Schlüssel entschlüsselt und mit dem aktuellen Hashwert der Nachricht verglichen werden. Da die Verschlüsselung nur vom Besitzer des privaten Schlüssels durchgeführt werden kann, ist hier eine Nichtabstreitbarkeit gewährleistet.&lt;br /&gt;
&lt;br /&gt;
=== Zugriffssteuerungsmodelle ===&lt;br /&gt;
&lt;br /&gt;
Zugriffssteuerungsmodelle (Access Control Models) regeln die Art und Weise von Zugriffen. Sie definieren dabei die möglichen Regeln und Ziele der Zugriffe und stellen diese den jeweiligen Zugriffssteuerungstechnologien zur Verfügung. Die Modelle sind ein wesentlicher Bestandteil des jeweiligen Betriebssystems, da sie grundlegende Entscheidungen der internen Zugriffe beeinflussen. Sie sind daher direkt im Kern des Betriebssystems integriert. [Ha13, 219]&lt;br /&gt;
&lt;br /&gt;
Es wird zwischen drei verschiedenen Kategorien von Zugriffssteuerungsmodellen unterschieden:&lt;br /&gt;
&lt;br /&gt;
* Eigner-definierte Zugriffssteuerung (DAC: Discretionary Access Control),&lt;br /&gt;
* Obligatorische Zugriffssteuerung (MAC: Mandatory Access Control) und&lt;br /&gt;
* Rollenbasierte Zugriffssteuerung (RBAC: Role Based Access Control).&lt;br /&gt;
Da eine gleichzeitige Unterstützung mehrerer Modelle meist nicht sinnvoll realisierbar ist, ist die Modellauswahl eine grundlegende Entscheidung für das IT-System. Das am häufigsten anzutreffende Modell ist das der Eigner-definierten Zugriffssteuerung.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Eigner-definierte Zugriffssteuerung&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Bei der Eigner-definierten Zugriffssteuerung haben alle Daten einen definierten Eigner (oft auch als Besitzer bezeichnet). Dieser ist fest mit den Daten oder der Datei verbunden. Der Eigner definiert, welche Personen oder Systeme Zugriff auf die Daten erhalten und in welcher Form (z.B.: lesen, schreiben, ändern, ausführen oder verweigern).&lt;br /&gt;
&lt;br /&gt;
Die Zugriffsberechtigungen sind dabei meist über Access Control Lists (ACL‘s) definiert. Dabei handelt es sich um eine Auflistung aller Berechtigten und der jeweils zugeordneten Rechte.&lt;br /&gt;
&lt;br /&gt;
Dieses Modell ist in aktuellen Windows-, Linux- und Mac-Systemen anzutreffen. In diesen Systemen hat jede Datei einen Besitzer und eine entsprechende ACL zugeordnet.&lt;br /&gt;
&lt;br /&gt;
Einzelne User und Systeme können hier meist in Berechtigungsgruppen zusammengefasst werden. In diesem Fall können die ACL’s sowohl Zuordnungen einzelner User und Systeme, als auch Berechtigungsgruppen enthalten.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Obligatorische Zugriffssteuerung&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Die obligatorische Zugriffssteuerung findet ihre Anwendung in Bereichen mit sehr hohem Sicherheitsbedarf. Sie kommt daher meist in behördlichen und militärischen Systemen zum Einsatz.&lt;br /&gt;
&lt;br /&gt;
In diesem Modell ist keine individuelle Behandlung einzelner User und Dateien vorgesehen. Der Zugriff ist abhängig von unterschiedlichen Sicherheitsstufen, auf denen sich Daten und User befinden. Meist ist dabei eine Änderung von Dateiberechtigungen durch die User nicht möglich.&lt;br /&gt;
&lt;br /&gt;
Die Umsetzung der Sicherheitsstufen erfolgt durch Vertrauens-Levels (Clearance) für User und Sensitivitäts-Labels für Dateien. Mögliche Sicherheitsstufen wären z.B.: nicht vertraulich, vertraulich, geheim und streng geheim.&lt;br /&gt;
&lt;br /&gt;
Der Zugriff auf Daten erfolgt gemäß den jeweiligen Sicherheitsstufen. Sind die Stufe der Datei und die Stufe des Users ident, darf er auf die Daten zugreifen. Ob er auf Daten von darunterliegenden Stufen zugreifen darf, kann unterschiedlich implementiert sein. Meist dürfen Informationen nur von niedrigeren Levels zu höheren Levels übertragen werden und nicht umgekehrt. Zugriffe zwischen unterschiedlichen Levels werden dabei meist auch von eigenen Überwachungsdienstprogrammen gesteuert und genehmigt.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich werden meist hierarchische Zuordnungen vergeben, in denen sich sowohl Daten, als auch User befinden können. Die hierarchische Zuordnung steht dann nochmals über der Zuordnung des Sicherheitslevels. Damit ist sichergestellt, dass die Zugriffe nicht nur gemäß des Vertrauens-Levels, sondern auch gemäß der Zugriffs-Notwendigkeit erfolgen. Befindet sich ein User nicht in derselben hierarchischen Zuordnung, wie die jeweiligen Daten, wird davon ausgegangen, dass er keinen Zugriff benötigt und der Zugriff daher verweigert.&lt;br /&gt;
&lt;br /&gt;
Ein frei verfügbares Betriebssystem, welches das Modell der obligatorischen Zugriffssteuerung einsetzt, ist beispielsweise SE Linux [Na09].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rollenbasierte Zugriffssteuerung&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Bei der rollenbasierten Zugriffssteuerung werden Organisationsrichtlinien und -abläufe in ein Zugriffsmodell übersetzt. Dabei werden einzelnen Usern oder Systemen bestimmte (Organisations-)Rollen zugeordnet. Der Zugriff auf Daten hängt dabei von der jeweiligen Rolle des Zugreifenden ab. Die Berechtigung wird bei jedem Zugriffsversuch überprüft und dann genehmigt oder abgewiesen.&lt;br /&gt;
&lt;br /&gt;
Bei den hier eingesetzten Rollen handelt es sich nicht um Gruppen im Sinne der Eigner-definierten Zugriffssteuerung, sondern um Rollen innerhalb des jeweiligen Geschäftsprozesses bzw. einer Organisationseinheit. So kann ein User eine Rolle haben, die ihm aus einer Anwendung heraus Zugriff auf einen Datensatz gestattet und aus einer anderen Anwendung nicht mehr, obwohl es sich um denselben Datensatz handelt. Wichtig ist dabei immer die Betrachtung des aktuellen Zwecks des Zugriffes.&lt;br /&gt;
&lt;br /&gt;
Die Implementierung rollenbasierter Zugriffssteuerungen ist daher auch komplexer als die der Eigner-definierten Zugriffssteuerung.&lt;br /&gt;
&lt;br /&gt;
== Passwortsicherheit ==&lt;br /&gt;
&lt;br /&gt;
Wie bereits in der Lektion zu [[Computer- und_Netzwerksicherheit_-_Kryptograhpie|Kyptographie]] beschrieben, hat die sichere Speicherung von Passwörtern eine hohe Priorität und sollte in einer entsprechend sicheren Architektur erfolgen. Zusätzlich zur technischen Sicherheit ist eine entsprechende &amp;#039;&amp;#039;&amp;#039;Passwortkomplexität von besonderer Relevanz&amp;#039;&amp;#039;&amp;#039;. Ein noch so effizient abgesicherter Passwortspeicher verliert an Bedeutung, wenn das darin gespeicherte Passwort selbst unsicher ist.&lt;br /&gt;
&lt;br /&gt;
Ein unsicheres Passwort hat entweder:&lt;br /&gt;
&lt;br /&gt;
* eine zu geringe &amp;#039;&amp;#039;&amp;#039;Komplexität&amp;#039;&amp;#039;&amp;#039; und kann daher durch [[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Brute-Force_Angriffe|Bruteforce]]- oder [[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Angriffe_gegen_Hashwerte|Hash-Kollisions-Angriffe]] gefunden werden, oder&lt;br /&gt;
* kann durch &amp;#039;&amp;#039;&amp;#039;[[Computer- und_Netzwerksicherheit_-_Bewusstseinsbildung#Angriffsvektor_Social_Engineering|Social Engineering]]&amp;#039;&amp;#039;&amp;#039; herausgefunden werden (z.B.: Name des Kindes mit Jahreszahl, Anfangsbuchstaben des Titels des Lieblingsliedes, usw.).&lt;br /&gt;
Die Komplexität eines Passwortes ergibt sich aus der &amp;#039;&amp;#039;&amp;#039;Entropie&amp;#039;&amp;#039;&amp;#039; – also den möglichen unterschiedlichen Kombinationen bzw. dem [[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Schl%C3%BCssel_(Key)_und_Keyspace|Keyspace]]. Daraus und an der Anzahl an Passwörtern, welche pro Sekunde geprüft werden können, ergibt sich dann wiederum die Dauer, in welcher das Passwort durch Ausprobieren (Bruteforce-Angriff) gefunden werden kann.&lt;br /&gt;
&lt;br /&gt;
Für die Komplexität von Passwörter galt lange eine bestimmte Mindestlänge (meist 8 Zeichen) und eine Kombination aus den Merkmalen:&lt;br /&gt;
&lt;br /&gt;
* Kleinbuchstaben,&lt;br /&gt;
* Großbuchstaben,&lt;br /&gt;
* Ziffern und&lt;br /&gt;
* Sonderzeichen&lt;br /&gt;
als ausreichender Schutz.&lt;br /&gt;
&lt;br /&gt;
Beispielsweise ein Passwort &amp;#039;&amp;#039;&amp;#039;„&amp;#039;&amp;#039;f9D22+P#&amp;#039;&amp;#039;“&amp;#039;&amp;#039;&amp;#039; mit 8 Zeichen und Erfüllung aller oben genannten Kriterien hat somit folgende Komplexität:&lt;br /&gt;
&lt;br /&gt;
* 26 Kleinbuchstaben +&lt;br /&gt;
* 26 Großbuchstaben +&lt;br /&gt;
* 10 Ziffern +&lt;br /&gt;
* 36 Sonderzeichen (alle Sonderzeichen der deutschen Tastatur)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;= 98 Mögliche Zeichen pro Stelle&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Bei 8 Zeichen sind das 98^8 Mögliche Passortkombinationen.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Ein Hochleistungs-PC, welcher 2.148.000.000 Passwörter in der Sekunde ausprobieren kann, benötigt somit durchschnittlich ca. &amp;#039;&amp;#039;&amp;#039;23 Tage&amp;#039;&amp;#039;&amp;#039; um das Passwort herauszufinden.&lt;br /&gt;
&lt;br /&gt;
Ein Problem solcher komplexen Passwörter ist, dass es für die meisten User schwierig ist, sie sich zu einzuprägen. Dadurch besteht ein erhöhtes Risiko, dass die Passwörter:&lt;br /&gt;
&lt;br /&gt;
* vergessen werden,&lt;br /&gt;
* auf einem Zettel notiert werden,&lt;br /&gt;
* nicht ausreichend oft geändert werden oder&lt;br /&gt;
* nur minimal geändert werden – beispielsweise durch simple Variation einzelner Teile des Passwortes, wie einer Ziffer am Ende.&lt;br /&gt;
Aufgrund der oben genannten Schwächen und der dennoch geringen Entropie noch gut merkbarer Passwortlängen, können diese Passwortrichtlinien &amp;#039;&amp;#039;&amp;#039;nicht mehr als Stand der Technik&amp;#039;&amp;#039;&amp;#039; betrachtet werden. Eine wesentlich bessere Möglichkeit ist die Nutzung von zufälligen Wörtern aus dem Wörterbuch. [Ga17]&lt;br /&gt;
&lt;br /&gt;
Bei der Nutzung von &amp;#039;&amp;#039;&amp;#039;vier zufälligen Wörtern aus dem Wörterbuch&amp;#039;&amp;#039;&amp;#039; (kein Satz, sondern tatsächlich zufällig gewählte Wörter), ergibt sich bei Nutzung der 100.000 unterschiedlichen Wörter des Österreichischen Wörterbuchs [AF20] folgende Komplexität:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;100.000 mögliche Wörter pro „Stelle“ (ein Wort ist somit eine Stelle).&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Bei 4 Wörtern sind das 100.000^4 Mögliche Passwortkombinationen.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Ein Hochleistungs-PC (der selbe PC wie im ersten Beispiel), welcher 2.148.000.000 Passwörter in der Sekunde ausprobieren kann, benötigt somit durchschnittlich ca. &amp;#039;&amp;#039;&amp;#039;738 &amp;lt;u&amp;gt;Jahre&amp;lt;/u&amp;gt;&amp;#039;&amp;#039;&amp;#039; um das Passwort herauszufinden.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für ein Passwort aus 4 unzusammenhängenden Wörtern aus dem deutschen Duden ist: &amp;#039;&amp;#039;&amp;#039;„&amp;#039;&amp;#039;Dachs faul logisch Gerät&amp;#039;&amp;#039;“&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Das Passwort weißt somit eine &amp;#039;&amp;#039;&amp;#039;wesentlich höhere Entropie&amp;#039;&amp;#039;&amp;#039; auf und ist für einen Menschen gleichzeitig &amp;#039;&amp;#039;&amp;#039;leichter merkbar&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Leider ist diese Form der Passwörter in &amp;#039;&amp;#039;&amp;#039;vielen Systemen noch nicht implementiert&amp;#039;&amp;#039;&amp;#039; und es werden noch die veralteten Komplexitätsmerkmale des ersten Beispiels abgerufen. Diese Hürde kann ganz einfach überwunden werden, indem am Ende des Passworts eine Ziffer und ein Sonderzeichen gestellt werden. Da diese keine wirkliche Relevanz für die genannte Passwortsicherheit haben, können hier auch Zeichen genutzt werden, die schnell zu tippen sind. Das oben genannte Passwort könnte damit dann einfach &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;„Dachs faul logisch Gerät 9+“&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; lauten.&lt;br /&gt;
&lt;br /&gt;
== Zertifikate ==&lt;br /&gt;
&lt;br /&gt;
Zertifikate dienen der Feststellung der Identitäten von Personen und Systemen auf digitalem Wege. Ein Zertifikat ist ein digitales Dokument, indem bestimmte Daten angegeben sind, welche eine Person oder ein System und optional auch zugehörige Eigenschaften identifizieren. Zertifikate sind wesentliche Bestandteile von Public-Key-Systemen und enthalten zusätzlich den jeweiligen Public-Key des Zertifikatsinhabers (siehe auch Kapitel &amp;quot;[[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Asymmetrische_Verfahren|Asymmetrische Verfahren]]&amp;quot; Lektion &amp;quot;Kryptographie&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Um die Echtheit eines Zertifikats zu bestätigen, kann dieses von anderen Stellen signiert werden. Diese Stellen werden als &amp;#039;&amp;#039;&amp;#039;Zertifizierungsstellen (CA: Certification Authority)&amp;#039;&amp;#039;&amp;#039; bezeichnet. Die Signatur erfolgt dabei, wie in Kapitel &amp;quot;[[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Asymmetrische_Verfahren|Asymmetrische Verfahren]]&amp;quot; beschrieben, durch hashen des Zertifikates und Verschlüsselung des Hashwertes durch den privaten Schlüssel der Zertifizierungsstelle. Da der öffentliche Schlüssel – wiederum durch das Zertifikat der Zertifizierungsstelle – bekannt ist, kann der Hashwert korrekt entschlüsselt, und die Signatur damit als gültig erkannt, werden.&lt;br /&gt;
&lt;br /&gt;
Ob diese Echtheitsbestätigungen nun &amp;#039;&amp;#039;&amp;#039;hierarchisch&amp;#039;&amp;#039;&amp;#039; erfolgen ([[Computer- und_Netzwerksicherheit_-_Zugriffssteuerung#Public-Key-Infrastruktur_(PKI)|Public-Key-Infrastruktur]]), oder über ein dezentral &amp;#039;&amp;#039;&amp;#039;verteiltes Vertrauensmodell&amp;#039;&amp;#039;&amp;#039; ([[Computer- und Netzwerksicherheit_-_Zugriffssteuerung#Web_of_Trust_(WOT)|Web of Trust]]) ist von der jeweiligen Implementierung abhängig. Derzeit sind beide Modellvarianten im Einsatz und finden ihre Anwendung in einer Vielzahl von Systemen. Die Zertifikate der behördlich akzeptierten digitalen Signaturen basieren derzeit auf dem hierarchischen Modell der Public-Key-Infrastruktur.&lt;br /&gt;
&lt;br /&gt;
Ein Zertifikat ist mit einem Ausweisdokument vergleichbar. Auf dem Ausweis befinden sich die Daten der Person und ein Verweis auf den Aussteller. Durch Sicherheitsmerkmale am Dokument (Wasserzeichen, Silberstreifen,…) wird dabei die Echtheitsprüfung ermöglicht. Der Aussteller (z.B. eine Behörde) bestätigt damit die Identität des Inhabers (z.B. Personalausweis) und gegebenenfalls auch bestimmte durch das Dokument erlaubte Tätigkeiten (z.B. Führerschein).&lt;br /&gt;
&lt;br /&gt;
Die Echtheit eines Zertifikates kann von der jeweiligen Zertifizierungsstelle auch wieder zurückgezogen werden. Zu diesem Zweck werden &amp;#039;&amp;#039;&amp;#039;Zertifikats-Sperrlisten (CRL: Certificate Revocation Lists)&amp;#039;&amp;#039;&amp;#039; eingesetzt, welche Einträge der Seriennummern aller Zertifikate mit zurückgenommenen Echtheitsbestätigungen enthält. Die Sperrliste ist selbst wiederum von der jeweiligen Zertifizierungsstelle signiert, um ihre Echtheit zu bestätigen.&lt;br /&gt;
&lt;br /&gt;
Der Aufbau und der mögliche Inhalt eines Zertifikates ist im &amp;#039;&amp;#039;&amp;#039;X.509 Standard&amp;#039;&amp;#039;&amp;#039; [Ne99] definiert. Ein entsprechendes Beispiel (das aktuelle Zertifikat des Online-Campus) ist in Abbildung &amp;quot;Zertifikat&amp;quot; dargestellt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 16.png|300px|none|thumb|Zertifikat]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref415127603&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Public-Key-Infrastruktur (PKI) ===&lt;br /&gt;
&lt;br /&gt;
Bei der Public-Key-Infrastruktur (PKI) handelt es sich um ein hierarchisch aufgebautes System von Zertifizierungsstellen. Das bedeutet, dass jede Zertifizierungsstelle das in sie gesetzte Vertrauen an nachfolgende Stellen weiterverteilen kann, indem sie die zugehörigen Zertifikate signiert.&lt;br /&gt;
&lt;br /&gt;
Daraus ergibt sich dann eine Hierarchie aus mehreren Zertifikaten, die bis zu einem Stammzertifikat rückverfolgt werden können sind. Durch das Vertrauen in das jeweilige Stammzertifikat wird auch den nachfolgenden Zertifikaten vertraut.&lt;br /&gt;
&lt;br /&gt;
In den meisten Anwendungen, die PKI Zertifikate einsetzen (z.B. Internetbrowser für HTTPS Verbindungen), sind bereits einige gängige Stammzertifikate der großen Zertifizierungsstellen vorinstalliert. Es ist jedoch meist auch möglich weitere Stammzertifikate hinzuzufügen, denen dann ebenfalls vertraut wird. In Abbildung &amp;quot;Zertifizierungspfad&amp;quot; ist die Hierarchie des Zertifikates des Online-Campus dargestellt. Die Stammzertifizierungsstelle ist in diesem Fall das Unternehmen Go Daddy.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 17.png|300px|none|thumb|Zertifizierungspfad]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref415147744&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den Zertifizierungsstellen gibt es in der PKI noch weitere Instanzen, welche hautsächlich für den Zertifizierungsprozess verantwortlich sind. Die Hauptakteure der PKI sind:&lt;br /&gt;
&lt;br /&gt;
* Zertifizierungsstelle (CA: Certification Authority),&lt;br /&gt;
* Registrierungsstelle (RA: Registration Authority) und&lt;br /&gt;
* Validierungsdienst (VA: Validation Authority)&lt;br /&gt;
Die &amp;#039;&amp;#039;&amp;#039;Registrierungsstelle&amp;#039;&amp;#039;&amp;#039; ist in der PKI dafür verantwortlich die Identität des Antragsstellers zu überprüfen und dies wiederum der Zertifizierungsstelle mitzuteilen. Die &amp;#039;&amp;#039;&amp;#039;Validierungsstelle&amp;#039;&amp;#039;&amp;#039; ist für die Gültigkeitsprüfung von bereits ausgestellten Zertifikaten verantwortlich. Sie verwaltet auch die Zertifikats-Sperrlisten und ihre Erreichbarkeit ist meist in einem Datenfeld in den Zertifikaten selbst angegeben.&lt;br /&gt;
&lt;br /&gt;
Soll nun ein neues Zertifikat ausgestellt werden, muss folgender &amp;#039;&amp;#039;&amp;#039;Zertifizierungsprozess&amp;#039;&amp;#039;&amp;#039; durchlaufen werden:&lt;br /&gt;
&lt;br /&gt;
# Der Antrag für das neue Zertifikat wird an die Registrierungsstelle (RA) geschickt&lt;br /&gt;
# Die Registrierungsstelle (RA) überprüft den Antrag und stellt sicher, dass es sich bei der Identität tatsächlich um die der antragstellenden Person oder des zugehörigen IT-Systems (z.B. bei einem Webserver-Zertifikat) handelt.&lt;br /&gt;
# Wenn die Registrierungsstelle die Identität bestätigen kann, sendet sie den Antrag weiter an die Zertifizierungsstelle (CA).&lt;br /&gt;
# Die Zertifizierungsstelle (CA) stellt nun das beantragte Zertifikat aus, generiert dafür einen privaten und einen öffentlichen Schlüssel und sendet diese an die antragsstellende Person.&lt;br /&gt;
Oft ist es auch möglich das Schlüsselpaar selbst zu generieren und dem Antrag nur den öffentlichen Schlüssel beizufügen. Dies ist für die Ausstellung des Zertifikates ausreichend, da der private Schlüssel für seine Signierung nicht benötigt wird (diese wird durch den privaten Schlüssel der CA durchgeführt). In diesem Fall ist zusätzlich sichergestellt, dass der private Schlüssel nur der antragsstellenden Person bekannt ist.&lt;br /&gt;
&lt;br /&gt;
Gerade bei der Überprüfung durch die Registrierungsstelle gibt es unterschiedliche Qualitäten. Wird hier ungenau vorgegangen, kann dies zu Zertifikaten falscher Identitäten führen.&lt;br /&gt;
&lt;br /&gt;
=== Web of Trust (WOT) ===&lt;br /&gt;
&lt;br /&gt;
Das Modell des Web of Trust ist im Gegensatz zur PKI nicht hierarchisch, sondern dezentral aufgebaut. Es basiert auf einer dezentralen Vertrauensverteilung zwischen den Teilnehmern, ähnlich dem Freundes- und Bekanntenkreis einer Person. Die Schlüssel sind dabei nicht in einer hierarchischen Struktur zentral abrufbar und überprüfbar, sondern werden direkt von den Benutzern verwaltet. Jeder User hat seinen eigenen Schlüsselbund, wobei hier zwischen dem privaten und dem öffentlichen Schlüsselbund unterschieden wird.&lt;br /&gt;
&lt;br /&gt;
Am &amp;#039;&amp;#039;&amp;#039;privaten Schlüsselbund&amp;#039;&amp;#039;&amp;#039; befinden sich die privaten Schlüssel des Users, mit denen Daten signiert und entschlüsselt werden können. Am &amp;#039;&amp;#039;&amp;#039;öffentlichen Schlüsselbund&amp;#039;&amp;#039;&amp;#039; befinden sich die eigenen öffentlichen Schlüssel, sowie die öffentlichen Schlüssel anderer User. Mit den öffentlichen Schlüsseln können Nachrichten verschlüsselt und Signaturen geprüft werden.&lt;br /&gt;
&lt;br /&gt;
Die Vertrauensstufen werden über die öffentlichen Schlüssel der Teilnehmer ermittelt. Dazu gibt es im öffentlichen Schlüsselbund für jeden Schlüssel ein &amp;#039;&amp;#039;&amp;#039;Key Legimitation Field&amp;#039;&amp;#039;&amp;#039;, in dem der jeweilige &amp;#039;&amp;#039;&amp;#039;Vertrauensgrad (Owner Trust)&amp;#039;&amp;#039;&amp;#039; des Schlüssels angegeben wird.&lt;br /&gt;
&lt;br /&gt;
Im WOT gibt es folgende Vertrauensgrade:&lt;br /&gt;
&lt;br /&gt;
* unknown: Personen über die keine Informationen bekannt sind,&lt;br /&gt;
* not trusted: Personen denen nicht vertraut wird,&lt;br /&gt;
* marginal: Personen denen nicht voll vertraut wird,&lt;br /&gt;
* complete: Personen denen voll vertraut wird und&lt;br /&gt;
* ultimate: eigener öffentlicher Schlüssel.&lt;br /&gt;
Wer als vertrauenswürdig eingestuft wird, liegt somit beim jeweiligen Schlüsselbund Inhaber.&lt;br /&gt;
&lt;br /&gt;
Die Vertrauensgrade können an andere User (z.B. über einen Schlüsselserver) weitergegeben werden, indem die jeweiligen Schlüssel durch den eigenen privaten Schlüssel signiert werden. Dies wird auch als &amp;#039;&amp;#039;&amp;#039;indirekte Zertifizierung&amp;#039;&amp;#039;&amp;#039; bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Ist dem User, der einen dritten Schlüssel signiert hat, im eigenen Schlüsselbund einem Vertrauensgrad zugewiesen, so erhält der von ihm signierte Schlüssel je nach eigener Einstellung denselben Vertrauensgrad oder niedriger. Zusätzlich kann definiert werden, wie viele signierte Schlüssel eines niedrigeren Vertrauensgrades notwendig sind, um die Vertrauensstufe um eine Stufe aufzuwerten. Die Standartwerte hierfür sind 3 signierte Schlüssel anderer User für die Aufwertung und ein signierter Schlüssel eines anderen Users für dieselbe Stufe.&lt;br /&gt;
&lt;br /&gt;
Diese Abhängigkeiten sind in Abbildung &amp;quot;Web of Trust - Vertrauensnetzwerk&amp;quot; ersichtlich: Peter kennt sowohl Anna, als auch Christoph persönlich und hat daher ihre öffentlichen Schlüssel in seinem öffentlichen Schlüsselbund abgelegt. Christoph hat nur eine direkte Beziehung zu Anna, nicht aber zu Peter. Da sich Christophs öffentlicher Schlüssel im öffentlichen Schlüsselbund von Anna befindet, erkennt Peter sein Zertifikat als gültig an.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref415150535&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;[[file:img1643193688517.png|300px|alt=Web of Trust - Vertrauensnetzwerk|none|thumb|Web of Trust - Vertrauensnetzwerk]]&lt;br /&gt;
&lt;br /&gt;
Die erste Implementierung des WOT war &amp;#039;&amp;#039;&amp;#039;Pretty Good Privacy (PGP)&amp;#039;&amp;#039;&amp;#039; [Sy15]. Es ist ein Softwarepaket, welches die Sicherstellung der Authentizität, Integrität und Vertraulichkeit von E-Mails sowie beliebiger Dateien ermöglicht. &amp;#039;&amp;#039;&amp;#039;GnuPG&amp;#039;&amp;#039;&amp;#039; [Gn15] ist die frei verfügbare Version, die unter der GNU General Public License [Fr07] steht. Ein möglicher Windows Client für GnuPG ist beispielsweise Gpg4win [In15b].&lt;br /&gt;
&lt;br /&gt;
=== Neue Zertifikatsmodelle und Erweiterungen ===&lt;br /&gt;
&lt;br /&gt;
Sowohl im Bereich des PKI, als auch im WOT Modell, gibt es mittlerweile einige bekannte Sicherheitslücken und Protokollfehler. Weiter ist gerade im PKI Modell die Rolle der CA enorm wichtig. Werden hier nur schlechte Identitätskontrollen bei der Ausstellung von Zertifikaten durchgeführt, kann es zu falschen validen Identitäten kommen. Im Bereich des WOT können beispielsweise die Schlüsselserver zum Generieren von SPAM-Versandlisten genutzt werden, da die zugehörigen E-Mailadressen der Zertifikate dort frei verfügbar sein müssen. Weiter sind über die WOT soziale Netzwerke der User analysierbar, da die Trustlevel und ihre Abhängigkeiten leicht analysiert werden können. [Br14]&lt;br /&gt;
&lt;br /&gt;
Um diese Schwachstellen zu beseitigen wird bereits an möglichen neuen Protokollen und Erweiterungen geforscht. Den meisten Ansätzen gemein ist, die Abhängigkeit von einzelnen CA’s zu verringern. Fehler einer CA sollen möglichst auf Seite der Endanwendung (wie z.B. im Browser oder Mail Client) frühzeitig erkannt und angezeigt werden. [Br14]&lt;br /&gt;
&lt;br /&gt;
Einer dieser neuen Ansätze ist die Software &amp;#039;&amp;#039;Perspectives&amp;#039;&amp;#039; [Ca15]. Dabei handelt es sich um eine Browsererweiterung, die jedes Zertifikat zusätzlich mit einem sogenannten Notary-Server abgleicht. Damit können beispielsweise Man-in-the-Middle Angriffe frühzeitig erkannt werden.&lt;br /&gt;
&lt;br /&gt;
Weitere aktuelle Erweiterungen sind [Br14]:&lt;br /&gt;
&lt;br /&gt;
* Pinning [EPS14],&lt;br /&gt;
* Certificate Transparency [LLK13],&lt;br /&gt;
* Microsoft SmartScreen [Mi15] und&lt;br /&gt;
* DANE [HVS12].&lt;br /&gt;
&lt;br /&gt;
== Angriffsvektoren der Access Control ==&lt;br /&gt;
&lt;br /&gt;
Die Angriffsmethoden der Access Control sind sehr vielfältig und haben oft [[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Angriffsvektoren_der_Kryptographie|Angriffsvektoren der Kryptographie]] und [[Computer- und_Netzwerksicherheit_-_Netzwerksicherheit#Angriffsvektoren_der_Daten%C3%BCbertragung|Datenübertragung]], sowie [[Computer- und_Netzwerksicherheit_-_Bewusstseinsbildung#Angriffsvektor_Social_Engineering|Social Engineering]]als Grundlage. Dies trifft insbesondere auf Angriffe gegen die Integrität und Authentizität zu.&lt;br /&gt;
&lt;br /&gt;
Dazu bereits behandelte Angriffsvektoren sind:&lt;br /&gt;
&lt;br /&gt;
* [[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Brute-Force_Angriffe|Brute-Force Angriffe]],&lt;br /&gt;
* [[Computer- und_Netzwerksicherheit_-_Bewusstseinsbildung#Phishing|Phishing]]&amp;amp;nbsp;und&lt;br /&gt;
* [[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Angriffe_gegen_Hashwerte|Angriffe gegen Hashwerte]].&lt;br /&gt;
Eine weitere wichtige Angriffsmethode ist die des &amp;#039;&amp;#039;&amp;#039;Pharming.&amp;#039;&amp;#039;&amp;#039; Dabei wird die Anfrage eines Users auf einen bösartigen Server umgeleitet. Er glaubt sich sicher und gibt dann dort seine geheimen Daten ( wie z.B.: Zugangsdaten und Transaktionsdaten) preis. Beim Pharming handelt es sich daher um einen [[Computer- und_Netzwerksicherheit_-_Netzwerksicherheit#Man-in-the-Middle_Angriff|Man-in-the-Middle Angriff]].&lt;br /&gt;
&lt;br /&gt;
== Wiederholungsaufgaben/Übungen ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1 Was ist der Unterschied zwischen Identifikation, Authentifikation und Autorisation?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2 Was ist eine Zwei-Faktor-Authentifikation?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3 Welche drei Zugriffssteuerungsmodelle gibt es?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;4 Erklären Sie das Modell der Eigner-definierten Zugriffssteuerung.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;5 Was sind Zertifikate und die damit verbundenen Vertrauensmodelle?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;6 Was bedeutet PKI und wer sind ihre Hauptakteure? Wie hängen diese Akteure zusammen?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;7 Eine Passwortrichtlinie fordert ein Passwort, bestehend aus Kleinbuchstaben, Großbuchstaben und Ziffern mit einer Länge von 10 Zeichen. Wie wird die Komplexität des Passworts berechnet (wie viele mögliche Passwörter gibt es)?&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Computer-_und_Netzwerksicherheit_-_Zugriffssteuerung&amp;diff=2709</id>
		<title>Computer- und Netzwerksicherheit - Zugriffssteuerung</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.fernfh.ac.at/mediawiki/index.php?title=Computer-_und_Netzwerksicherheit_-_Zugriffssteuerung&amp;diff=2709"/>
		<updated>2022-04-03T08:03:57Z</updated>

		<summary type="html">&lt;p&gt;VÖLKL Peter: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Zugriffssteuerung =&lt;br /&gt;
&lt;br /&gt;
Die Zugriffssteuerung (Access Control) regelt den Zugriff und die Kommunikation von IT-Systemen mit ihren Anwendern, Ressourcen und anderen IT-Systemen. Es handelt sich dabei um eine zentrales Element der meisten IT-Systeme, da davon alle Schutzziele (Vertraulichkeit, Integrität und Verfügbarkeit; siehe Lektion &amp;quot;[[Computer- und Netzwerksicherheit_-_Grundlagen#S%C3%A4ulen_der_Informationssicherheit_-_CIA_Triade|Säulen der Informationssicherheit - CIA Triade]]&amp;quot;) betroffen sein können.&lt;br /&gt;
&lt;br /&gt;
In dieser Lektion werden die grundlegenden Begriffe der Zugriffssteuerung erläutert und weiter die konkreten Techniken der Zertifikate und der Fernzugriffe sowie potentielle Angriffsvektoren näher behandelt.&lt;br /&gt;
&lt;br /&gt;
== Grundbegriffe der Zugriffssteuerung ==&lt;br /&gt;
&lt;br /&gt;
Um die Schutzziele der Vertraulichkeit, Integrität und Verfügbarkeit des Datenaustausches mit IT-Systemen gewährleisten zu können müssen die jeweiligen Anforderungen an die Kommunikation definiert werden. Dabei gibt es einige wesentliche Begriffe, welche oft auch von Technikern falsch verwendet werden. Beispielsweise werden &amp;#039;&amp;#039;Identifikation&amp;#039;&amp;#039;, &amp;#039;&amp;#039;Authentifikation&amp;#039;&amp;#039; und &amp;#039;&amp;#039;Autorisation&amp;#039;&amp;#039; manchmal fälschlicherweise als Akronyme verwendet, obwohl es sich dabei um grundlegend unterschiedliche Begriffe handelt. Auch ist es wichtig zu wissen, wie bestimmte Anforderungen an die Zugriffssteuerung implementiert werden können.&lt;br /&gt;
&lt;br /&gt;
=== Zugriff ===&lt;br /&gt;
&lt;br /&gt;
Beim Zugriff handelt es sich um die Kommunikation mit einem IT-System. Diese kann sowohl mit einem Anwender, als auch mit einem anderen IT-System oder seiner Ressourcen stattfinden. In den meisten Fällen gibt es dabei Anforderungen an Identifikation, Authentifikation und Autorisation, sowie an die Nachverfolgbarkeit und Nichtabstreitbarkeit (siehe weiter auch Lektion &amp;quot;[[Computer- und Netzwerksicherheit_-_Kryptograhpie#Kryptographie|Krypotgraphie]]&amp;quot; Unterkapitel 2 - 5).&lt;br /&gt;
&lt;br /&gt;
Ressourcen können dabei alle Komponenten sein, welche einen Zugriff auf Daten ermöglichen oder diese beinhalten, wie beispielsweise: Datenbanken, Tabellen und Dateien. Die Zugriffe können dabei sowohl über lokale Verbindungen, als auch über das Netzwerk/Internet oder unterschiedliche Datenträger erfolgen.&lt;br /&gt;
&lt;br /&gt;
=== Identifikation ===&lt;br /&gt;
&lt;br /&gt;
Die Identifikation bezeichnet die Benennung eines bestimmten Systems oder einer Person, welche auf ein System zugreifen möchte. Dabei ist weder sichergestellt durch wen diese Benennung erfolgt ist, noch ob es sich bei der Benennung tatsächlich um das benannte System oder die benannte Person handelt.&lt;br /&gt;
&lt;br /&gt;
Zur Identifikation dienen oft die eindeutige User-ID, die E-Mailadresse oder der Name.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel ist eine Anwesenheitsliste: Die Protokollführung schreibt die Namen der anwesenden Personen auf, welche diese wiederum identifizieren. Dabei ist jedoch noch nicht sichergestellt, ob die jeweiligen Personen tatsächlich die sind, die sie vorgeben zu sein. Im schlechtesten Fall sind sie der Protokollführung nicht bekannt und identifizieren sich durch Nennung ihres Namens.&lt;br /&gt;
&lt;br /&gt;
=== Authentifikation ===&lt;br /&gt;
&lt;br /&gt;
Die eindeutige Identifikation einer Person oder eines Systems wird als Authentifikation bezeichnet. Erst dadurch wird sichergestellt, dass es sich dabei tatsächlich um die Identifizierten handelt.&lt;br /&gt;
&lt;br /&gt;
Es gibt drei unterschiedliche Kategorien von Authentifikationsmethoden und -merkmale:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Wissen&amp;#039;&amp;#039;&amp;#039; (was jemand weiß),&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Besitz&amp;#039;&amp;#039;&amp;#039; (was jemand besitzt) und&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Biometrie&amp;#039;&amp;#039;&amp;#039; (was jemand ist).&lt;br /&gt;
Die drei Merkmale Wissen, Besitz und Biometrie werden oft auch als „Wissen, Haben und Sein“ bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Eine häufig eingesetzte Methode ist das Passwort. Dieses ist in der Kategorie des &amp;#039;&amp;#039;&amp;#039;Wissens&amp;#039;&amp;#039;&amp;#039; eingeordnet, da es von jedem eingesetzt werden kann, der es kennt. Es kann daher auch weitergegeben oder ausgespäht werden. Je komplexer es ist, desto leichter kann es auch vergessen werden. Je häufiger es verwendet wird, desto schneller kann es herausgefunden werden. Zu komplexe Passwörter sind daher keine gute Lösung zur sicheren Authentifikation, da sie von vielen Usern vergessen oder aufgeschrieben werden. Dasselbe gilt für zu einfache Passwörter, da sie leicht erraten werden können.&lt;br /&gt;
&lt;br /&gt;
Beim Merkmal des &amp;#039;&amp;#039;&amp;#039;Besitzes&amp;#039;&amp;#039;&amp;#039; wird die Authentifikation über etwas erreicht, dass nur der zu Authentifizierende besitzt. Beispiele dafür sind ein Personalausweis oder eine Chipkarte (z.B. eine Bankomatkarte). Damit die Weitergabe dieses Merkmals überhaupt nicht, oder nur sehr schwierig möglich ist, sollte es möglichst nicht vervielfältigt werden können.&lt;br /&gt;
&lt;br /&gt;
Unter &amp;#039;&amp;#039;&amp;#039;Biometrie&amp;#039;&amp;#039;&amp;#039; werden Merkmale verstanden, die an eine bestimmte Person (oder ein bestimmtes System) gebunden sind. Sie sind öffentlich sichtbar oder beobachtbar, jedoch nicht leicht duplizierbar. Häufig bekannte Beispiele für biometrische Merkmale sind Fingerabdrücke, Venenmuster, die Iris-Muster der Augen und Stimmmuster. Weitere, oft weniger bekannte, Merkmale sind jedoch auch die Art des Ganges einer Person, ihre Tastenanschläge, ihr Schreibstil und aber auch die Art und Weise wie sie sich innerhalb eines Programmes oder einer Webseite bewegen.&lt;br /&gt;
&lt;br /&gt;
Je nach Sicherheitsanforderungen können dabei auch mehrere Merkmale kombiniert werden um die Authentifizierungsqualität noch weiter zu verstärken. Ein bekanntes Beispiel dafür ist die zur Bargeldbehebung mittels Bankomatkarte notwendige Authentifizierung. Dabei wird ein Besitzmerkmal (Bankomatkarte) mit einem Wissensmerkmal (PIN-Code) kombiniert. Ist jemand im Besitz der Karte, benötigt er zusätzlich noch den PIN-Code und umgekehrt. Mit einem der beiden Merkmale allein kann keine gültige Authentifikation erfolgen und damit auch kein Geld behoben werden.&lt;br /&gt;
&lt;br /&gt;
Werden zwei Merkmale kombiniert, wird dies auch als &amp;#039;&amp;#039;&amp;#039;Zwei-Faktor-Authentifizierung&amp;#039;&amp;#039;&amp;#039; bezeichnet. Wichtig ist dabei immer, dass zwei Merkmale unterschiedlicher Kategorien (Wissen, Besitz und Biometrie) kombiniert werden. Die Kombination zweier Merkmale derselben Kategorie, erhöht zwar die Sicherheit, gilt dabei jedoch nicht als Zwei-Faktor-Authentifizierung. Die einzelnen Merkmalskategorien und die sich daraus ergebenen Authentifizierungslevel sind weiter in Abbildung &amp;quot;Authentifizierungsfaktoren: Wissen, Besitz und Biometrie&amp;quot; dargestellt.&lt;br /&gt;
&lt;br /&gt;
Ob die Authentifizierungsqualität durch den Einsatz von drei Faktoren weiter stark erhöht werden kann, ist umstritten. Dies ist stark von den jeweils eingesetzten Techniken, aber auch von deren Akzeptanz bei den Anwendern, abhängig.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 15.png|300px|none|thumb| Authentifizierungsfaktoren: Wissen, Besitz und Biometrie]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref414885673&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Autorisation ===&lt;br /&gt;
&lt;br /&gt;
Bei der Autorisation handelt es sich um die Berechtigung, die eine authentifizierte Person oder ein authentifiziertes System für einen bestimmten Zugriff hat. So können in einem System beispielsweise unterschiedliche Rollen existieren, welche wiederum unterschiedliche Zugriffe ermöglichen. Wie ein System unterschiedliche Autorisationen verwaltet und behandelt wird als [[Computer- und_Netzwerksicherheit_-_Zugriffssteuerung#Zugriffssteuerungsmodelle|Zugriffssteuerungsmodell]] bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Die Authentifikation stellt damit sicher, dass es sich um jemand bestimmten handelt und die Autorisation regelt wiederum welche bestimmten Rollen welche Zugriffe bekommen.&lt;br /&gt;
&lt;br /&gt;
=== Nachverfolgbarkeit und Nichtabstreitbarkeit ===&lt;br /&gt;
&lt;br /&gt;
Bei der Nachverfolgbarkeit und Nichtabstreitbarkeit handelt es sich um Zugriffsmerkmale, welche eine genaue Dokumentation der jeweiligen Systemkommunikation ermöglichen. Je nach Anforderung wird dabei dokumentiert, welche Zugriffe stattgefunden haben und unter welchen (Sicherheits-)Parametern diese aufgebaut wurden. Um eine lückenlose Nachverfolgbarkeit sicherzustellen, ist es erforderlich, den Erfolg der Authentifikation und die erteilte Autorisation zu dokumentieren.&lt;br /&gt;
&lt;br /&gt;
In manchen Fällen ist es weiter erforderlich eine Nichtabstreitbarkeit von Zugriffen zu ermöglichen. Als &amp;#039;&amp;#039;&amp;#039;Nichtabstreitbarkeit&amp;#039;&amp;#039;&amp;#039; wird bezeichnet, das eine Person die Erstellung einer gesendeten Nachricht nicht mehr abstreiten kann. Dies beinhaltet auch automatisch die Integrität der Nachricht. Es muss daher für eine Nichtabstreitbarkeit auch sichergestellt sein, dass die Nachricht nicht mehr verändert wurde, da anderenfalls der Absender behaupten könnte, ursprünglich eine andere Nachricht erstellt zu haben.&lt;br /&gt;
&lt;br /&gt;
Die Nichtabstreitbarkeit kann mit Hilfe asymmetrischer Kryptographie Methoden sichergestellt werden (siehe Kapitel &amp;quot;[[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Asymmetrische_Verfahren|Asymmetrische Verfahren]]&amp;quot; Lektion &amp;quot;Kryptographie&amp;quot;). Dabei wird der Hashwert einer Nachricht mit dem privaten Schlüssel des Absenders verschlüsselt. Zur Prüfung der Integrität (ob die Nachricht der abgesendeten Nachricht entspricht), muss nun nur noch der verschlüsselte Hashwert mit dem öffentlichen Schlüssel entschlüsselt und mit dem aktuellen Hashwert der Nachricht verglichen werden. Da die Verschlüsselung nur vom Besitzer des privaten Schlüssels durchgeführt werden kann, ist hier eine Nichtabstreitbarkeit gewährleistet.&lt;br /&gt;
&lt;br /&gt;
=== Zugriffssteuerungsmodelle ===&lt;br /&gt;
&lt;br /&gt;
Zugriffssteuerungsmodelle (Access Control Models) regeln die Art und Weise von Zugriffen. Sie definieren dabei die möglichen Regeln und Ziele der Zugriffe und stellen diese den jeweiligen Zugriffssteuerungstechnologien zur Verfügung. Die Modelle sind ein wesentlicher Bestandteil des jeweiligen Betriebssystems, da sie grundlegende Entscheidungen der internen Zugriffe beeinflussen. Sie sind daher direkt im Kern des Betriebssystems integriert. [Ha13, 219]&lt;br /&gt;
&lt;br /&gt;
Es wird zwischen drei verschiedenen Kategorien von Zugriffssteuerungsmodellen unterschieden:&lt;br /&gt;
&lt;br /&gt;
* Eigner-definierte Zugriffssteuerung (DAC: Discretionary Access Control),&lt;br /&gt;
* Obligatorische Zugriffssteuerung (MAC: Mandatory Access Control) und&lt;br /&gt;
* Rollenbasierte Zugriffssteuerung (RBAC: Role Based Access Control).&lt;br /&gt;
Da eine gleichzeitige Unterstützung mehrerer Modelle meist nicht sinnvoll realisierbar ist, ist die Modellauswahl eine grundlegende Entscheidung für das IT-System. Das am häufigsten anzutreffende Modell ist das der Eigner-definierten Zugriffssteuerung.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Eigner-definierte Zugriffssteuerung&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Bei der Eigner-definierten Zugriffssteuerung haben alle Daten einen definierten Eigner (oft auch als Besitzer bezeichnet). Dieser ist fest mit den Daten oder der Datei verbunden. Der Eigner definiert, welche Personen oder Systeme Zugriff auf die Daten erhalten und in welcher Form (z.B.: lesen, schreiben, ändern, ausführen oder verweigern).&lt;br /&gt;
&lt;br /&gt;
Die Zugriffsberechtigungen sind dabei meist über Access Control Lists (ACL‘s) definiert. Dabei handelt es sich um eine Auflistung aller Berechtigten und der jeweils zugeordneten Rechte.&lt;br /&gt;
&lt;br /&gt;
Dieses Modell ist in aktuellen Windows-, Linux- und Mac-Systemen anzutreffen. In diesen Systemen hat jede Datei einen Besitzer und eine entsprechende ACL zugeordnet.&lt;br /&gt;
&lt;br /&gt;
Einzelne User und Systeme können hier meist in Berechtigungsgruppen zusammengefasst werden. In diesem Fall können die ACL’s sowohl Zuordnungen einzelner User und Systeme, als auch Berechtigungsgruppen enthalten.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Obligatorische Zugriffssteuerung&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Die obligatorische Zugriffssteuerung findet ihre Anwendung in Bereichen mit sehr hohem Sicherheitsbedarf. Sie kommt daher meist in behördlichen und militärischen Systemen zum Einsatz.&lt;br /&gt;
&lt;br /&gt;
In diesem Modell ist keine individuelle Behandlung einzelner User und Dateien vorgesehen. Der Zugriff ist abhängig von unterschiedlichen Sicherheitsstufen, auf denen sich Daten und User befinden. Meist ist dabei eine Änderung von Dateiberechtigungen durch die User nicht möglich.&lt;br /&gt;
&lt;br /&gt;
Die Umsetzung der Sicherheitsstufen erfolgt durch Vertrauens-Levels (Clearance) für User und Sensitivitäts-Labels für Dateien. Mögliche Sicherheitsstufen wären z.B.: nicht vertraulich, vertraulich, geheim und streng geheim.&lt;br /&gt;
&lt;br /&gt;
Der Zugriff auf Daten erfolgt gemäß den jeweiligen Sicherheitsstufen. Sind die Stufe der Datei und die Stufe des Users ident, darf er auf die Daten zugreifen. Ob er auf Daten von darunterliegenden Stufen zugreifen darf, kann unterschiedlich implementiert sein. Meist dürfen Informationen nur von niedrigeren Levels zu höheren Levels übertragen werden und nicht umgekehrt. Zugriffe zwischen unterschiedlichen Levels werden dabei meist auch von eigenen Überwachungsdienstprogrammen gesteuert und genehmigt.&lt;br /&gt;
&lt;br /&gt;
Zusätzlich werden meist hierarchische Zuordnungen vergeben, in denen sich sowohl Daten, als auch User befinden können. Die hierarchische Zuordnung steht dann nochmals über der Zuordnung des Sicherheitslevels. Damit ist sichergestellt, dass die Zugriffe nicht nur gemäß des Vertrauens-Levels, sondern auch gemäß der Zugriffs-Notwendigkeit erfolgen. Befindet sich ein User nicht in derselben hierarchischen Zuordnung, wie die jeweiligen Daten, wird davon ausgegangen, dass er keinen Zugriff benötigt und der Zugriff daher verweigert.&lt;br /&gt;
&lt;br /&gt;
Ein frei verfügbares Betriebssystem, welches das Modell der obligatorischen Zugriffssteuerung einsetzt, ist beispielsweise SE Linux [Na09].&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Rollenbasierte Zugriffssteuerung&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Bei der rollenbasierten Zugriffssteuerung werden Organisationsrichtlinien und -abläufe in ein Zugriffsmodell übersetzt. Dabei werden einzelnen Usern oder Systemen bestimmte (Organisations-)Rollen zugeordnet. Der Zugriff auf Daten hängt dabei von der jeweiligen Rolle des Zugreifenden ab. Die Berechtigung wird bei jedem Zugriffsversuch überprüft und dann genehmigt oder abgewiesen.&lt;br /&gt;
&lt;br /&gt;
Bei den hier eingesetzten Rollen handelt es sich nicht um Gruppen im Sinne der Eigner-definierten Zugriffssteuerung, sondern um Rollen innerhalb des jeweiligen Geschäftsprozesses bzw. einer Organisationseinheit. So kann ein User eine Rolle haben, die ihm aus einer Anwendung heraus Zugriff auf einen Datensatz gestattet und aus einer anderen Anwendung nicht mehr, obwohl es sich um denselben Datensatz handelt. Wichtig ist dabei immer die Betrachtung des aktuellen Zwecks des Zugriffes.&lt;br /&gt;
&lt;br /&gt;
Die Implementierung rollenbasierter Zugriffssteuerungen ist daher auch komplexer als die der Eigner-definierten Zugriffssteuerung.&lt;br /&gt;
&lt;br /&gt;
== Passwortsicherheit ==&lt;br /&gt;
&lt;br /&gt;
Wie bereits in der Lektion zu [[Computer- und_Netzwerksicherheit_-_Kryptograhpie|Kyptographie]] beschrieben, hat die sichere Speicherung von Passwörtern eine hohe Priorität und sollte in einer entsprechend sicheren Architektur erfolgen. Zusätzlich zur technischen Sicherheit ist eine entsprechende &amp;#039;&amp;#039;&amp;#039;Passwortkomplexität von besonderer Relevanz&amp;#039;&amp;#039;&amp;#039;. Ein noch so effizient abgesicherter Passwortspeicher verliert an Bedeutung, wenn das darin gespeicherte Passwort selbst unsicher ist.&lt;br /&gt;
&lt;br /&gt;
Ein unsicheres Passwort hat entweder:&lt;br /&gt;
&lt;br /&gt;
* eine zu geringe &amp;#039;&amp;#039;&amp;#039;Komplexität&amp;#039;&amp;#039;&amp;#039; und kann daher durch [[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Brute-Force_Angriffe|Bruteforce]]- oder [[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Angriffe_gegen_Hashwerte|Hash-Kollisions-Angriffe]] gefunden werden, oder&lt;br /&gt;
* kann durch &amp;#039;&amp;#039;&amp;#039;[[Computer- und_Netzwerksicherheit_-_Bewusstseinsbildung#Angriffsvektor_Social_Engineering|Social Engineering]]&amp;#039;&amp;#039;&amp;#039; herausgefunden werden (z.B.: Name des Kindes mit Jahreszahl, Anfangsbuchstaben des Titels des Lieblingsliedes, usw.).&lt;br /&gt;
Die Komplexität eines Passwortes ergibt sich aus der &amp;#039;&amp;#039;&amp;#039;Entropie&amp;#039;&amp;#039;&amp;#039; – also den möglichen unterschiedlichen Kombinationen bzw. dem [[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Schl%C3%BCssel_(Key)_und_Keyspace|Keyspace]]. Daraus und an der Anzahl an Passwörtern, welche pro Sekunde geprüft werden können, ergibt sich dann wiederum die Dauer, in welcher das Passwort durch Ausprobieren (Bruteforce-Angriff) gefunden werden kann.&lt;br /&gt;
&lt;br /&gt;
Für die Komplexität von Passwörter galt lange eine bestimmte Mindestlänge (meist 8 Zeichen) und eine Kombination aus den Merkmalen:&lt;br /&gt;
&lt;br /&gt;
* Kleinbuchstaben,&lt;br /&gt;
* Großbuchstaben,&lt;br /&gt;
* Ziffern und&lt;br /&gt;
* Sonderzeichen&lt;br /&gt;
als ausreichender Schutz.&lt;br /&gt;
&lt;br /&gt;
Beispielsweise ein Passwort &amp;#039;&amp;#039;&amp;#039;„&amp;#039;&amp;#039;f9D22+P#&amp;#039;&amp;#039;“&amp;#039;&amp;#039;&amp;#039; mit 8 Zeichen und Erfüllung aller oben genannten Kriterien hat somit folgende Komplexität:&lt;br /&gt;
&lt;br /&gt;
* 26 Kleinbuchstaben +&lt;br /&gt;
* 26 Großbuchstaben +&lt;br /&gt;
* 10 Ziffern +&lt;br /&gt;
* 36 Sonderzeichen (alle Sonderzeichen der deutschen Tastatur)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;= 98 Mögliche Zeichen pro Stelle&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Bei 8 Zeichen sind das 98^8 Mögliche Passortkombinationen.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Ein Hochleistungs-PC, welcher 2.148.000.000 Passwörter in der Sekunde ausprobieren kann, benötigt somit durchschnittlich ca. &amp;#039;&amp;#039;&amp;#039;23 Tage&amp;#039;&amp;#039;&amp;#039; um das Passwort herauszufinden.&lt;br /&gt;
&lt;br /&gt;
Ein Problem solcher komplexen Passwörter ist, dass es für die meisten User schwierig ist, sie sich zu einzuprägen. Dadurch besteht ein erhöhtes Risiko, dass die Passwörter:&lt;br /&gt;
&lt;br /&gt;
* vergessen werden,&lt;br /&gt;
* auf einem Zettel notiert werden,&lt;br /&gt;
* nicht ausreichend oft geändert werden oder&lt;br /&gt;
* nur minimal geändert werden – beispielsweise durch simple Variation einzelner Teile des Passwortes, wie einer Ziffer am Ende.&lt;br /&gt;
Aufgrund der oben genannten Schwächen und der dennoch geringen Entropie noch gut merkbarer Passwortlängen, können diese Passwortrichtlinien &amp;#039;&amp;#039;&amp;#039;nicht mehr als Stand der Technik&amp;#039;&amp;#039;&amp;#039; betrachtet werden. Eine wesentlich bessere Möglichkeit ist die Nutzung von zufälligen Wörtern aus dem Wörterbuch. [Ga17]&lt;br /&gt;
&lt;br /&gt;
Bei der Nutzung von &amp;#039;&amp;#039;&amp;#039;vier zufälligen Wörtern aus dem Wörterbuch&amp;#039;&amp;#039;&amp;#039; (kein Satz, sondern tatsächlich zufällig gewählte Wörter), ergibt sich bei Nutzung der 100.000 unterschiedlichen Wörter des Österreichischen Wörterbuchs [AF20] folgende Komplexität:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;100.000 mögliche Wörter pro „Stelle“ (ein Wort ist somit eine Stelle).&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Bei 4 Wörtern sind das 100.000^4 Mögliche Passortkombinationen.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Ein Hochleistungs-PC (der selbe PC wie im ersten Beispiel), welcher 2.148.000.000 Passwörter in der Sekunde ausprobieren kann, benötigt somit durchschnittlich ca. &amp;#039;&amp;#039;&amp;#039;738 &amp;lt;u&amp;gt;Jahre&amp;lt;/u&amp;gt;&amp;#039;&amp;#039;&amp;#039; um das Passwort herauszufinden.&lt;br /&gt;
&lt;br /&gt;
Ein Beispiel für ein Passwort aus 4 unzusammenhängenden Wörtern aus dem deutschen Duden ist: &amp;#039;&amp;#039;&amp;#039;„&amp;#039;&amp;#039;Dachs faul logisch Gerät&amp;#039;&amp;#039;“&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Das Passwort weißt somit eine &amp;#039;&amp;#039;&amp;#039;wesentlich höhere Entropie&amp;#039;&amp;#039;&amp;#039; auf und ist für einen Menschen gleichzeitig &amp;#039;&amp;#039;&amp;#039;leichter merkbar&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Leider ist diese Form der Passwörter in &amp;#039;&amp;#039;&amp;#039;vielen Systemen noch nicht implementiert&amp;#039;&amp;#039;&amp;#039; und es werden noch die veralteten Komplexitätsmerkmale des ersten Beispiels abgerufen. Diese Hürde kann ganz einfach überwunden werden, indem am Ende des Passworts eine Ziffer und ein Sonderzeichen gestellt werden. Da diese keine wirkliche Relevanz für die genannte Passwortsicherheit haben, können hier auch Zeichen genutzt werden, die schnell zu tippen sind. Das oben genannte Passwort könnte damit dann einfach &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;„Dachs faul logisch Gerät 9+“&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; lauten.&lt;br /&gt;
&lt;br /&gt;
== Zertifikate ==&lt;br /&gt;
&lt;br /&gt;
Zertifikate dienen der Feststellung der Identitäten von Personen und Systemen auf digitalem Wege. Ein Zertifikat ist ein digitales Dokument, indem bestimmte Daten angegeben sind, welche eine Person oder ein System und optional auch zugehörige Eigenschaften identifizieren. Zertifikate sind wesentliche Bestandteile von Public-Key-Systemen und enthalten zusätzlich den jeweiligen Public-Key des Zertifikatsinhabers (siehe auch Kapitel &amp;quot;[[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Asymmetrische_Verfahren|Asymmetrische Verfahren]]&amp;quot; Lektion &amp;quot;Kryptographie&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Um die Echtheit eines Zertifikats zu bestätigen, kann dieses von anderen Stellen signiert werden. Diese Stellen werden als &amp;#039;&amp;#039;&amp;#039;Zertifizierungsstellen (CA: Certification Authority)&amp;#039;&amp;#039;&amp;#039; bezeichnet. Die Signatur erfolgt dabei, wie in Kapitel &amp;quot;[[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Asymmetrische_Verfahren|Asymmetrische Verfahren]]&amp;quot; beschrieben, durch hashen des Zertifikates und Verschlüsselung des Hashwertes durch den privaten Schlüssel der Zertifizierungsstelle. Da der öffentliche Schlüssel – wiederum durch das Zertifikat der Zertifizierungsstelle – bekannt ist, kann der Hashwert korrekt entschlüsselt, und die Signatur damit als gültig erkannt, werden.&lt;br /&gt;
&lt;br /&gt;
Ob diese Echtheitsbestätigungen nun &amp;#039;&amp;#039;&amp;#039;hierarchisch&amp;#039;&amp;#039;&amp;#039; erfolgen ([[Computer- und_Netzwerksicherheit_-_Zugriffssteuerung#Public-Key-Infrastruktur_(PKI)|Public-Key-Infrastruktur]]), oder über ein dezentral &amp;#039;&amp;#039;&amp;#039;verteiltes Vertrauensmodell&amp;#039;&amp;#039;&amp;#039; ([[Computer- und Netzwerksicherheit_-_Zugriffssteuerung#Web_of_Trust_(WOT)|Web of Trust]]) ist von der jeweiligen Implementierung abhängig. Derzeit sind beide Modellvarianten im Einsatz und finden ihre Anwendung in einer Vielzahl von Systemen. Die Zertifikate der behördlich akzeptierten digitalen Signaturen basieren derzeit auf dem hierarchischen Modell der Public-Key-Infrastruktur.&lt;br /&gt;
&lt;br /&gt;
Ein Zertifikat ist mit einem Ausweisdokument vergleichbar. Auf dem Ausweis befinden sich die Daten der Person und ein Verweis auf den Aussteller. Durch Sicherheitsmerkmale am Dokument (Wasserzeichen, Silberstreifen,…) wird dabei die Echtheitsprüfung ermöglicht. Der Aussteller (z.B. eine Behörde) bestätigt damit die Identität des Inhabers (z.B. Personalausweis) und gegebenenfalls auch bestimmte durch das Dokument erlaubte Tätigkeiten (z.B. Führerschein).&lt;br /&gt;
&lt;br /&gt;
Die Echtheit eines Zertifikates kann von der jeweiligen Zertifizierungsstelle auch wieder zurückgezogen werden. Zu diesem Zweck werden &amp;#039;&amp;#039;&amp;#039;Zertifikats-Sperrlisten (CRL: Certificate Revocation Lists)&amp;#039;&amp;#039;&amp;#039; eingesetzt, welche Einträge der Seriennummern aller Zertifikate mit zurückgenommenen Echtheitsbestätigungen enthält. Die Sperrliste ist selbst wiederum von der jeweiligen Zertifizierungsstelle signiert, um ihre Echtheit zu bestätigen.&lt;br /&gt;
&lt;br /&gt;
Der Aufbau und der mögliche Inhalt eines Zertifikates ist im &amp;#039;&amp;#039;&amp;#039;X.509 Standard&amp;#039;&amp;#039;&amp;#039; [Ne99] definiert. Ein entsprechendes Beispiel (das aktuelle Zertifikat des Online-Campus) ist in Abbildung &amp;quot;Zertifikat&amp;quot; dargestellt.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 16.png|300px|none|thumb|Zertifikat]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref415127603&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Public-Key-Infrastruktur (PKI) ===&lt;br /&gt;
&lt;br /&gt;
Bei der Public-Key-Infrastruktur (PKI) handelt es sich um ein hierarchisch aufgebautes System von Zertifizierungsstellen. Das bedeutet, dass jede Zertifizierungsstelle das in sie gesetzte Vertrauen an nachfolgende Stellen weiterverteilen kann, indem sie die zugehörigen Zertifikate signiert.&lt;br /&gt;
&lt;br /&gt;
Daraus ergibt sich dann eine Hierarchie aus mehreren Zertifikaten, die bis zu einem Stammzertifikat rückverfolgt werden können sind. Durch das Vertrauen in das jeweilige Stammzertifikat wird auch den nachfolgenden Zertifikaten vertraut.&lt;br /&gt;
&lt;br /&gt;
In den meisten Anwendungen, die PKI Zertifikate einsetzen (z.B. Internetbrowser für HTTPS Verbindungen), sind bereits einige gängige Stammzertifikate der großen Zertifizierungsstellen vorinstalliert. Es ist jedoch meist auch möglich weitere Stammzertifikate hinzuzufügen, denen dann ebenfalls vertraut wird. In Abbildung &amp;quot;Zertifizierungspfad&amp;quot; ist die Hierarchie des Zertifikates des Online-Campus dargestellt. Die Stammzertifizierungsstelle ist in diesem Fall das Unternehmen Go Daddy.&lt;br /&gt;
&lt;br /&gt;
[[Datei:IT244 17.png|300px|none|thumb|Zertifizierungspfad]]&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref415147744&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zu den Zertifizierungsstellen gibt es in der PKI noch weitere Instanzen, welche hautsächlich für den Zertifizierungsprozess verantwortlich sind. Die Hauptakteure der PKI sind:&lt;br /&gt;
&lt;br /&gt;
* Zertifizierungsstelle (CA: Certification Authority),&lt;br /&gt;
* Registrierungsstelle (RA: Registration Authority) und&lt;br /&gt;
* Validierungsdienst (VA: Validation Authority)&lt;br /&gt;
Die &amp;#039;&amp;#039;&amp;#039;Registrierungsstelle&amp;#039;&amp;#039;&amp;#039; ist in der PKI dafür verantwortlich die Identität des Antragsstellers zu überprüfen und dies wiederum der Zertifizierungsstelle mitzuteilen. Die &amp;#039;&amp;#039;&amp;#039;Validierungsstelle&amp;#039;&amp;#039;&amp;#039; ist für die Gültigkeitsprüfung von bereits ausgestellten Zertifikaten verantwortlich. Sie verwaltet auch die Zertifikats-Sperrlisten und ihre Erreichbarkeit ist meist in einem Datenfeld in den Zertifikaten selbst angegeben.&lt;br /&gt;
&lt;br /&gt;
Soll nun ein neues Zertifikat ausgestellt werden, muss folgender &amp;#039;&amp;#039;&amp;#039;Zertifizierungsprozess&amp;#039;&amp;#039;&amp;#039; durchlaufen werden:&lt;br /&gt;
&lt;br /&gt;
# Der Antrag für das neue Zertifikat wird an die Registrierungsstelle (RA) geschickt&lt;br /&gt;
# Die Registrierungsstelle (RA) überprüft den Antrag und stellt sicher, dass es sich bei der Identität tatsächlich um die der antragstellenden Person oder des zugehörigen IT-Systems (z.B. bei einem Webserver-Zertifikat) handelt.&lt;br /&gt;
# Wenn die Registrierungsstelle die Identität bestätigen kann, sendet sie den Antrag weiter an die Zertifizierungsstelle (CA).&lt;br /&gt;
# Die Zertifizierungsstelle (CA) stellt nun das beantragte Zertifikat aus, generiert dafür einen privaten und einen öffentlichen Schlüssel und sendet diese an die antragsstellende Person.&lt;br /&gt;
Oft ist es auch möglich das Schlüsselpaar selbst zu generieren und dem Antrag nur den öffentlichen Schlüssel beizufügen. Dies ist für die Ausstellung des Zertifikates ausreichend, da der private Schlüssel für seine Signierung nicht benötigt wird (diese wird durch den privaten Schlüssel der CA durchgeführt). In diesem Fall ist zusätzlich sichergestellt, dass der private Schlüssel nur der antragsstellenden Person bekannt ist.&lt;br /&gt;
&lt;br /&gt;
Gerade bei der Überprüfung durch die Registrierungsstelle gibt es unterschiedliche Qualitäten. Wird hier ungenau vorgegangen, kann dies zu Zertifikaten falscher Identitäten führen.&lt;br /&gt;
&lt;br /&gt;
=== Web of Trust (WOT) ===&lt;br /&gt;
&lt;br /&gt;
Das Modell des Web of Trust ist im Gegensatz zur PKI nicht hierarchisch, sondern dezentral aufgebaut. Es basiert auf einer dezentralen Vertrauensverteilung zwischen den Teilnehmern, ähnlich dem Freundes- und Bekanntenkreis einer Person. Die Schlüssel sind dabei nicht in einer hierarchischen Struktur zentral abrufbar und überprüfbar, sondern werden direkt von den Benutzern verwaltet. Jeder User hat seinen eigenen Schlüsselbund, wobei hier zwischen dem privaten und dem öffentlichen Schlüsselbund unterschieden wird.&lt;br /&gt;
&lt;br /&gt;
Am &amp;#039;&amp;#039;&amp;#039;privaten Schlüsselbund&amp;#039;&amp;#039;&amp;#039; befinden sich die privaten Schlüssel des Users, mit denen Daten signiert und entschlüsselt werden können. Am &amp;#039;&amp;#039;&amp;#039;öffentlichen Schlüsselbund&amp;#039;&amp;#039;&amp;#039; befinden sich die eigenen öffentlichen Schlüssel, sowie die öffentlichen Schlüssel anderer User. Mit den öffentlichen Schlüsseln können Nachrichten verschlüsselt und Signaturen geprüft werden.&lt;br /&gt;
&lt;br /&gt;
Die Vertrauensstufen werden über die öffentlichen Schlüssel der Teilnehmer ermittelt. Dazu gibt es im öffentlichen Schlüsselbund für jeden Schlüssel ein &amp;#039;&amp;#039;&amp;#039;Key Legimitation Field&amp;#039;&amp;#039;&amp;#039;, in dem der jeweilige &amp;#039;&amp;#039;&amp;#039;Vertrauensgrad (Owner Trust)&amp;#039;&amp;#039;&amp;#039; des Schlüssels angegeben wird.&lt;br /&gt;
&lt;br /&gt;
Im WOT gibt es folgende Vertrauensgrade:&lt;br /&gt;
&lt;br /&gt;
* unknown: Personen über die keine Informationen bekannt sind,&lt;br /&gt;
* not trusted: Personen denen nicht vertraut wird,&lt;br /&gt;
* marginal: Personen denen nicht voll vertraut wird,&lt;br /&gt;
* complete: Personen denen voll vertraut wird und&lt;br /&gt;
* ultimate: eigener öffentlicher Schlüssel.&lt;br /&gt;
Wer als vertrauenswürdig eingestuft wird, liegt somit beim jeweiligen Schlüsselbund Inhaber.&lt;br /&gt;
&lt;br /&gt;
Die Vertrauensgrade können an andere User (z.B. über einen Schlüsselserver) weitergegeben werden, indem die jeweiligen Schlüssel durch den eigenen privaten Schlüssel signiert werden. Dies wird auch als &amp;#039;&amp;#039;&amp;#039;indirekte Zertifizierung&amp;#039;&amp;#039;&amp;#039; bezeichnet.&lt;br /&gt;
&lt;br /&gt;
Ist dem User, der einen dritten Schlüssel signiert hat, im eigenen Schlüsselbund einem Vertrauensgrad zugewiesen, so erhält der von ihm signierte Schlüssel je nach eigener Einstellung denselben Vertrauensgrad oder niedriger. Zusätzlich kann definiert werden, wie viele signierte Schlüssel eines niedrigeren Vertrauensgrades notwendig sind, um die Vertrauensstufe um eine Stufe aufzuwerten. Die Standartwerte hierfür sind 3 signierte Schlüssel anderer User für die Aufwertung und ein signierter Schlüssel eines anderen Users für dieselbe Stufe.&lt;br /&gt;
&lt;br /&gt;
Diese Abhängigkeiten sind in Abbildung &amp;quot;Web of Trust - Vertrauensnetzwerk&amp;quot; ersichtlich: Peter kennt sowohl Anna, als auch Christoph persönlich und hat daher ihre öffentlichen Schlüssel in seinem öffentlichen Schlüsselbund abgelegt. Christoph hat nur eine direkte Beziehung zu Anna, nicht aber zu Peter. Da sich Christophs öffentlicher Schlüssel im öffentlichen Schlüsselbund von Anna befindet, erkennt Peter sein Zertifikat als gültig an.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;_Ref415150535&amp;quot; class=&amp;quot;anchor&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;[[file:img1643193688517.png|300px|alt=Web of Trust - Vertrauensnetzwerk|none|thumb|Web of Trust - Vertrauensnetzwerk]]&lt;br /&gt;
&lt;br /&gt;
Die erste Implementierung des WOT war &amp;#039;&amp;#039;&amp;#039;Pretty Good Privacy (PGP)&amp;#039;&amp;#039;&amp;#039; [Sy15]. Es ist ein Softwarepaket, welches die Sicherstellung der Authentizität, Integrität und Vertraulichkeit von E-Mails sowie beliebiger Dateien ermöglicht. &amp;#039;&amp;#039;&amp;#039;GnuPG&amp;#039;&amp;#039;&amp;#039; [Gn15] ist die frei verfügbare Version, die unter der GNU General Public License [Fr07] steht. Ein möglicher Windows Client für GnuPG ist beispielsweise Gpg4win [In15b].&lt;br /&gt;
&lt;br /&gt;
=== Neue Zertifikatsmodelle und Erweiterungen ===&lt;br /&gt;
&lt;br /&gt;
Sowohl im Bereich des PKI, als auch im WOT Modell, gibt es mittlerweile einige bekannte Sicherheitslücken und Protokollfehler. Weiter ist gerade im PKI Modell die Rolle der CA enorm wichtig. Werden hier nur schlechte Identitätskontrollen bei der Ausstellung von Zertifikaten durchgeführt, kann es zu falschen validen Identitäten kommen. Im Bereich des WOT können beispielsweise die Schlüsselserver zum Generieren von SPAM-Versandlisten genutzt werden, da die zugehörigen E-Mailadressen der Zertifikate dort frei verfügbar sein müssen. Weiter sind über die WOT soziale Netzwerke der User analysierbar, da die Trustlevel und ihre Abhängigkeiten leicht analysiert werden können. [Br14]&lt;br /&gt;
&lt;br /&gt;
Um diese Schwachstellen zu beseitigen wird bereits an möglichen neuen Protokollen und Erweiterungen geforscht. Den meisten Ansätzen gemein ist, die Abhängigkeit von einzelnen CA’s zu verringern. Fehler einer CA sollen möglichst auf Seite der Endanwendung (wie z.B. im Browser oder Mail Client) frühzeitig erkannt und angezeigt werden. [Br14]&lt;br /&gt;
&lt;br /&gt;
Einer dieser neuen Ansätze ist die Software &amp;#039;&amp;#039;Perspectives&amp;#039;&amp;#039; [Ca15]. Dabei handelt es sich um eine Browsererweiterung, die jedes Zertifikat zusätzlich mit einem sogenannten Notary-Server abgleicht. Damit können beispielsweise Man-in-the-Middle Angriffe frühzeitig erkannt werden.&lt;br /&gt;
&lt;br /&gt;
Weitere aktuelle Erweiterungen sind [Br14]:&lt;br /&gt;
&lt;br /&gt;
* Pinning [EPS14],&lt;br /&gt;
* Certificate Transparency [LLK13],&lt;br /&gt;
* Microsoft SmartScreen [Mi15] und&lt;br /&gt;
* DANE [HVS12].&lt;br /&gt;
&lt;br /&gt;
== Angriffsvektoren der Access Control ==&lt;br /&gt;
&lt;br /&gt;
Die Angriffsmethoden der Access Control sind sehr vielfältig und haben oft [[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Angriffsvektoren_der_Kryptographie|Angriffsvektoren der Kryptographie]] und [[Computer- und_Netzwerksicherheit_-_Netzwerksicherheit#Angriffsvektoren_der_Daten%C3%BCbertragung|Datenübertragung]], sowie [[Computer- und_Netzwerksicherheit_-_Bewusstseinsbildung#Angriffsvektor_Social_Engineering|Social Engineering]]als Grundlage. Dies trifft insbesondere auf Angriffe gegen die Integrität und Authentizität zu.&lt;br /&gt;
&lt;br /&gt;
Dazu bereits behandelte Angriffsvektoren sind:&lt;br /&gt;
&lt;br /&gt;
* [[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Brute-Force_Angriffe|Brute-Force Angriffe]],&lt;br /&gt;
* [[Computer- und_Netzwerksicherheit_-_Bewusstseinsbildung#Phishing|Phishing]]&amp;amp;nbsp;und&lt;br /&gt;
* [[Computer- und_Netzwerksicherheit_-_Kryptograhpie#Angriffe_gegen_Hashwerte|Angriffe gegen Hashwerte]].&lt;br /&gt;
Eine weitere wichtige Angriffsmethode ist die des &amp;#039;&amp;#039;&amp;#039;Pharming.&amp;#039;&amp;#039;&amp;#039; Dabei wird die Anfrage eines Users auf einen bösartigen Server umgeleitet. Er glaubt sich sicher und gibt dann dort seine geheimen Daten ( wie z.B.: Zugangsdaten und Transaktionsdaten) preis. Beim Pharming handelt es sich daher um einen [[Computer- und_Netzwerksicherheit_-_Netzwerksicherheit#Man-in-the-Middle_Angriff|Man-in-the-Middle Angriff]].&lt;br /&gt;
&lt;br /&gt;
== Wiederholungsaufgaben/Übungen ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1 Was ist der Unterschied zwischen Identifikation, Authentifikation und Autorisation?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2 Was ist eine Zwei-Faktor-Authentifikation?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3 Welche drei Zugriffssteuerungsmodelle gibt es?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;4 Erklären Sie das Modell der Eigner-definierten Zugriffssteuerung.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;5 Was sind Zertifikate und die damit verbundenen Vertrauensmodelle?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;6 Was bedeutet PKI und wer sind ihre Hauptakteure? Wie hängen diese Akteure zusammen?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;7 Eine Passwortrichtlinie fordert ein Passwort, bestehend aus Kleinbuchstaben, Großbuchstaben und Ziffern mit einer Länge von 10 Zeichen. Wie wird die Komplexität des Passworts berechnet (wie viele mögliche Passwörter gibt es)?&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;</summary>
		<author><name>VÖLKL Peter</name></author>
	</entry>
</feed>