[wilhelmtux-discussion] Paper fuer EDSB

S.Aeschbacher s.aeschbacher at bturtle.ch
Mon Aug 26 12:48:13 CEST 2002


Hi
wie bereits hier besprochen, habe ich eine erste Version des Papers für den
Eidgenössischen Datenschutzbeauftragten geschrieben. Ich moechte euch bitte:

- Rechtschreibfehler korrigieren
- Unklarheiten aufzeigen (das Paper wird vor allem von Laien gelesen werden!)
- Vergessene Punkte melden damit ich noch was dazu schreiben kann
- Beispiele sammeln
- Refernzen checken/hinzufuegen
- Mit XXX gekennzeichnete Punkte speziell beachten
- andere Kommentare machen

Gruss

Ste
-------------- nächster Teil --------------
Datenschutz und Opensource-Software
===================================

Inhalt
******

Begriffe

Einleitung

Sicherheit der Software
	Potential zur Sicherheit
	Zertifikate

	
Schutz der Daten
	Kryptographie in OSS
	Qualität der Kryptographie

Schutz des Endusers

Schutz vor Überwachung

Rechtliche Aspekte

Analyse der aktuellen Situation

Zusammenfassung
	
Referenzen


Begriffe
++++++++
ClosedSource Software bei der nur das Programm, nicht aber der
	Source-Code zur Verfügung steht

Kryptographie Die Wissenschaft des Verschlüsselns von Informationen,
	so das sie von dritten nicht gelesen werden können.

Steganographie Die Wissenschaft vom Verstecken von Daten in anderen 
	Informationen, so das sie nicht entdeckt werden können. Beispiel:
	Daten können in einem Bild versteckt werden. Jeder der das Bild
	betrachtet, sieht nur das Bild, nur der Eingeweihte weiss von den
	im Bild versteckten Daten.
	

Open Source Software bei der der Quelltext frei verfügbar ist,
         beliebig verbreitet werden kann und Modifikationen erlaubt sind.
	 Nähere Informationen zu opensource gibt es unter: 
	 http://www.opensource.org
	
Quelltext Der Code aus dem die lauffähigen Programme generiert werden
        (die Baupläne der Programme), auch Source-Code genannt


Einleitung
**********
Datenschutz betrifft verschieden Aspekte von Software und Software-Design.
Ein wichtiger Aspekt ist die Sicherheit der eingesetzten Software, ein
anderer die Transparenz der Software und der Schutz vor Überwachung.
In diesen Punkten kann der Einsatz von Opensource Software (OSS) Vorteile
bringen. Im folgenden werden die verschiedenen Punkte einzeln betrachtet.

Betriebsysteme werden nicht vereinzelt betrachtet, wenn von Programm die
rede ist, kann es sich auch im ein Betriebsystem handeln.

Sicherheit der Software
***********************

Die Sicherheit eines Programms hängt von verschiedenen Dingen ab.
OSS ist nicht per-se sicherer als Closedsource Software. Sie bietet aber
bessere Möglichkeiten die Sicherheit eines Programmes zu evaluieren und
zu verbessern.
	
	Potential zur Sicherheit
Verschieden Aspekte von OSS erhöhen das Potential ein sicheres Produkt zu
erstellen.

Durch das Offenliegen des Quelltextes, ist es jedermann möglich, das
Programm zu analysieren und nach Sicherheitsproblemen zu durchsuchen. Diese
Möglichkeit alleine erhöht die Sicherheit eines Programmes nicht solange
niemand den Quelltext liest und nach Fehlern durchsucht.

Wenn ein Sicherheitsloch in einem Programm gefunden wird, sollte dieses so
schnell wie möglich korrigiert werden. Es ist zwar möglich gewisse 
Sicherheitsprobleme durch andere Massnahmen zu lösen, der einzig richtige
Ort für eine Sicherheitskorrektur ist aber in der Software selbst.
Aus verschiedenen Gründen ist die Korrektur eines solchen Loches im OSS
Bereich häufig schneller als im Kommerziellen Bereich.

Der Kommunikationsweg zwischen der Person die das Problem entdeckt und
der Person die für das betroffene Programm zuständig ist, vor allem beim
Vergleich mit Grossfirmen, extrem viel kürzer. Bei den meisten OS-Projekten
kann jedermann direkt Kontakt mit dem Entwickler aufnehmen der für den Fehler
zuständig ist und Ihm das Problem unterbreiten.
Bei (Gross)Firmen muss eine Fehlermeldung häufig viele Etappen durchlaufen bis
sie bei den zuständigen Personen ankommt.

Im Kommerziellen wie im OS-Umfeld kann es vorkommen, das der Hersteller des
Produktes nicht oder nur wenig daran interessiert ist, Sicherheitsprobleme
zu lösen.
Wenn ein Programmierer in einem OS-Programm ein Sicherheitsproblem entdeckt,
kann er den Fehler selber beheben. Sobald er den Fehler behoben hat, kann er
die Korrektur entweder selber publizieren, oder sie den Entwicklern zukommen
lassen. Der Entwickler muss sich in solch einem Fall nur noch darum kümmern,
ob die Lösung des Problems korrekt ist, was die Wahrscheinlichkeit erhöht, das
die Korrektur in der "offiziellen" Version des Programmes eingefügt wird.
Dies Möglichkeit besteht in einem Closedsource-Programm nicht. Es
besteht für Dritte keinerlei Weg, einen Fehler selber zu beheben oder den
Entwicklern mit einer Lösung unter die Arme zu greifen.

Innerhalb von Firmen existieren Richtlinien die die Entwicklung
von Software betreffen. Diese Richtlinien können gute wie schlechte
Auswirkungen auf die Qualität und somit die Sicherheit von Programmen haben.
Ein negatives Beispiel ist die Richtlinie eines grossen Sofwarekonzerns, die
besagt, dass jeder Entwickler so lange weiter Features implementieren muss
bis er eine gewisse Anzahl von (bekannten) Fehlern überschritten hat. Erst dann
darf er anfangen Fehler zu Korrigieren. Es sollte wohl offensichtlich sein,
das solche Richtlinien sehr kontraproduktiv für die Qualität der Software sind.
Da solche Richtlinien im OSS Bereich weitgehend nicht existieren (Ausnahmen
sind z.B. OSS die innerhalb einer Kommerziellen Firma geschrieben wird),
kann der Entwickler frei bestimmen wie er seine Software schreiben will. Das
Risiko besteht, das das Fehlen von allfälligen "guten" Richtlinien, die
Qualität der Software verschlechtern können.

Ein Häufiger Grund für Fehler in Software ist Termindruck der auf den 
Entwicklern lastet. Im OS-Umfeld Programmiert jeder das wozu er Lust hat und 
macht beendet
das Produkt zu dem Zeitpunkt den er wünscht. In grösseren Projekten existieren
gewisse Termine (wenn z.B. eine neue Version herausgegeben wird), wenn aber ein
Programmierer nicht zu dem Termin fertig ist, kann er sein Programm einfach 
zurückhalten. Termindruck ist in der OS-Entwicklung also weitgehend inexistent 
und somit entfällt eine sehr grosse Fehlerquelle.

	Zertifikate
Zertifikate von bekannten Instituten werden von vielen Firmen und Behörden als 
Qualitätsgarantie gewertet. Dies ist im Sicherheitsbereich nicht anders.
Das Fehlen eines oder mehrerer solcher Zertifikate wird als Mangel an
Qualität gewertet. Da kaum OS-Produkte zertifiziert sind, kann der Verdacht
aufkommen, dass sie ein solche Zertifizierung nicht bestehen würden.
Die Gründe warum Zertifikate im OS-Bereich so selten liegen aber vor allem in
anderen Bereichen.

Zertifizierungen sind generell sehr teuer. 
	Da solche Zertifikate meist von kommerziellen Organisationen vergeben
	werden, welche Fachpersonal für die Verifizierung bezahlen müssen,
	sind die Zertifikate.
	Da die meiste OS-Arbeit auf freiwilliger Basis erbracht wird, ist
	das Geld für ein solches Zertifikat nicht vorhanden.
	Etliche OS-Produkte würden aber die Kriterien für sehr hohe
	Zertifizierungsgrade erfüllen ([OpenBSD], [TrustedBSD] (in Arbeit),
	[XXX]
	und viele Standard-Produkte wären an sich auch Zertifizierbar.

Zertifizierungen gelten immer nur für eine Version
	Sobald etwas am zertifizierten Programm geändert wird, muss neu 
	Zertifiziert werden. Dies ist im Sinne eines Zertifikates eine sehr
	sinnvolle Einschränkung, da mit jeder Änderung neue Fehler eingeführt
	werden können.
	Viele OS-Projekte sind sehr bestrebt die Sicherheit ihrer Produkte
	hoch zu halten. Aus diesem Grund werden Sicherheitsfehler sehr
	schnell behoben und immer weitere Sicherheitserweiterungen eingebaut.
	Dies führt dazu, das eine Zertifizierung sehr schnell nicht mehr
	gültig wäre.

Schutz der Daten
****************

Sobald Daten von einem Ort zum anderen transportiert werden oder an
einem "unsicheren" Ort gelagert werden, muss man die Daten durch entsprechende
Massnahmen schützen. Methoden dies zu tun sind vor allem in der
Kryptographie oder der Steganographie zu finden.

	Kryptographie in OSS

Es gibt eine breite Palette von Software die Kryptographische Methoden
implementiert. Für die meisten XXX Probleme gibt es ein Produkt, das
die entsprechenden kryptographischen Methoden zur Verfügung stellt. [OpenSSL]
[OpenSSH].

	Qualität der Kryptographie
Kryptographie ist eine ungenaue Wissenschaft, Aussagen zur Sicherheit sind
immer nur relativ zum aktuellen Wissenstand. Gewisse Sachverhalte lassen
sich formal beweisen, diese sind aber in der Minderheit.
Trotz dieser Einschränkungen sind gewisse absolute Aussagen zur Sicherheit
einer Methode machbar. Man unterscheidet zwischen starker und schwacher
Kryptographie. Methoden die als stark bezeichnet werden, haben eine Vielzahl
von Tests und Analysen ohne nennenswerte Beeinträchtigung der Sicherheit
bestanden. Methoden die mit solchen Tests und Analysen "geknackt" worden
sind oder werden können bezeichnet man als schwach. Solche Methoden bieten
zwar Schutz vor zufälligem Entdecken, einem gezielten Angriff halten sie
aber nicht stand (selbst wenn die Methode nicht bekannt ist und nur der
verschlüsselte Text vorhanden ist).
Da OSS von jedermann geschrieben werden kann, werden auch verschiedenste
kryptographische Methoden eingesetzt. 
Die Möglichkeit die eingesetzten Methoden zu verschleiern besteht nicht,
da ja jederman den Quelltext einsehen kann. Für eine Sachkundige Person
ist das abschätzen der Sicherheit eines OSS Produktes erheblich einfacher
als bei einem Closedsource Programm.
Es ist gängige Praxis in Closedsource-Programmen schwache Methoden zu
verwenden und sich auf die "Unbekanntheit" der Methode zu verlassen.
XXX Beispiele

Schutz vor Überwachung
**********************
Mit der zunehmenden Vernetzung erhöht sich auch das Risiko der permanenten oder
sporadischen Überwachung. Im Closedsource Bereich ist es häufig der Fall, das
ein Programm oder ein Betriebsystem (vertrauliche) Informationen an den 
Hersteller sendet [Spyware].
Gewisse Firmen (ganz speziell Microsoft, siehe [Palladium]) planen eine 
extreme Ausweitung ihrer Datensammlungs- und Benutzerkontrollsysteme die sie
in ihre Produkte einbauen.
Natürlich sind auch OS-Programme nicht davor gefeit, als Spyware eingesetzt zu
werden. Dies fällt aber meistens sehr schnell auf und kann auch behoben werden.
Weiter stellt es kein Problem dar, bestehend auf der als Spyware konzipierten
Software (die vielleicht sehr nützliche Funktionen zur Verfügung stellt), eine
neue Version ohne die Überwachungsfunktionen zu erstellen und der Öffentlichkeit
zur Verfügung zu stellen.
Weiter kann man sich vor passiver Überwachung (abhören von Kommunikationen) mit
Hilfe von Kryptographischen Hilfsmitteln schützen, dies wurde in der 
vorhergehenden Sektion behandelt.

Schutz des Endbenutzers
***********************
Die meisten bereits erwähnten Punkte dienen natürlich auch dem Schutz des
Endbenutzers, es gibt aber gewisse Aspekte, die gesondert betrachtet werden
sollten.

	Schutz vor Fehlmanipulationen
Ein sehr häufiger Grund für Sicherheitsprobleme sind Fehlmanipulationen von
Seiten des Benutzers.
Im OS-Betriebsystembereich sind auf UNIX-Gedankengut basierende Betriebsysteme
die Regel [LinuxDistros], [DaemonNews]XXX besserer Link. In diesen ist eine
Trennung von Administration und Benutzung seit Jahrzehnten gang und gäbe. Der
User kann höchstens seine eigene Arbeitsumgebung gefährden.
Dieser Schutz gilt natürlich ganz speziell für Viren und Würmer die vor allem
auf Einzelbenutzer-Betriebsystemen sehr gefährlich sind.

	Defaulteinstellungen
Im Kommerziellen aber auch bei gewissen (kommerziellen) OS-Herstellern (z.B. [SUSE]), ist es Ziel, das Betriebsystem so zu konfigurieren, das der User 
möglichst alles machen kann was er zu tun wünscht, ohne von 
Sicherheitsmassnahmen behindert zu werden.
Diese Vorgehensweise öffnet vielen Angreifern Tür und Tor.
Es gibt aber einige OS-Projekte die auf diese "Verkaufbarkeit durch einfache 
Benutzung" verzichten ([Debian],[Gentoo],[OpenBSD]) und einem versierten 
Benutzer oder Administrator eine sehr gute Basis bieten, eine sehr sichere 
Installation zu erstellen.

Rechtliche Lage
***************
Viele Länder wie z.B. die USA, haben rechtliche Bestimmungen was den Export von 
kryptographischen Produkten betrifft. Produkte die aus solchen Ländern stammen 
stehen meist nur mit limitierter Kryptographie anderen Ländern zur Verfügung.
Da OpenSouce-Entwicklung nicht an ein konkretes Land gebunden ist, steht für die
meisten OpenSource-Produkte starke Kryptographie zur Verfügung.
Produktehaftung wird von OS- wie von Kommerziellen-Lizenzen grundsätzlich
abgelehnt, es empfiehlt sich in in denen Fällen wo es um viel Geld geht, falls
eine Datenschutzverletzung begangen wird, eine entsprechende Versicherung
abzuschliessen.
XXX NEED MORE INPUT

Analyse der aktuellen Situation XXX
*******************************
In den Vorhergehenden Teilen wurde Opensource als allgemeines Konzept 
betrachtet.
Im folgenden soll anhand von verschiedenen Beispielen einzelne Produkte 
betrachtet werden.

Linux
XXX

OpenBSD [OpenBSD]
OpenBSD ist ein auf, wie der Name schon sagt, BSD basierendes Betriebsystem, 
welches den Ruf hat, das sicherste erhältliche Betriebsystem zu sein.
OpenBSD hat in den letzten 6 Jahren ein bekanntes Sicherheitsloch gehabt.

Apache vs. IIS
Apache ist ein OS-Web-Server der laut [Netcraft] zur Zeit der meistbenutzteste
Server der Welt ist. Sein stärkster Konkurrent ist IIS von Microsoft. Die 
folgende Übersicht zeigt einen Vergleich der Sicherheitsprobleme der beiden 
Programme in den vergangenen Jahren. (Quelle: [SecurityFocus])

Sicherheitsprobleme von 1996 - August 2002 

		IIS		Apache
Probleme:	102		32
davon Kritisch: XXX		XXX wer zählt?

Als Beispiel für die Unsicherheit von IIS kann code-red aufgeführt werden,
welcher innert 3 Tagen mehrere hunderttausend Windows-Server infiziert hat
und der bis heute noch aktiv ist.


Outlook vs. Alle anderen Mailer
Es gibt wohl kaum eine Software die für soviele Sicherheitsprobleme zuständig
ist wie Microsoft Outlook. Die Integration von Makrosprachen und direktem
öffnen von Dokumenten in diesem Programm (die die Benutzung sehr einfach mache)
öffnet hunderte von Angrifsmethoden.
'I love you' und 'Meliassa' sind zwei der Prominentesten Angrife auf Outlook.
Systeme die andere Mail-Software benutzen waren nicht betroffen.


Zusammenfassung
***************
OpenSource ist in keiner Form eine Garantie für Sicherheit und Datenschutz. Es gibt aber viele Punkte die diese Aspekte fördern. Die Möglichkeiten solche 
Produkte zu analysieren und zu modifizieren bieten ein sehr weites Mass an 
Freiheiten die sehr förderlich für den Datenschutz sind.
Sobald es zum Thema Schutz vor Überwachung kommt, kann OpenSource aufgrund 
seiner natürlichen Transparenz jedes ClosedSource-Produkt in den Schatten 
stellen.


Referenzen
**********
[DaemonNews]	http://www.daemonnews.org/
[Debian]	http://www.debian.org
[Gentoo]	http://www.gentoo.org
[gnupg]		http://www.gnupg.org
[LinuxDistros]	http://www.distrowatch.com/
[Netcraft]	http://www.netcraft.com/survey/
[OpenBSD]	http://www.openbsd.org
[OpenSSH]	http://www.openssh.org
[OpenSSL]	http://www.openssl.org
[Palladium]	http://www.cl.cam.ac.uk/~rja14/tcpa-faq.html
[Spyware]	http://www.spyware.co.uk
[SUSE]		http://www.suse.de
[TrustedBSD]	http://www.trustedbsd.org