[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