[wilhelmtux-discussion] Paper fuer EDSB

S.Aeschbacher s.aeschbacher at bturtle.ch
Mit Aug 28 14:19:21 CEST 2002


hier nun die 2te version.
neu eine kleine sektion ueber Dateiformate

mfg

Ste


On Mon, Aug 26, 2002 at 11:48:13AM +0000, S.Aeschbacher wrote:
> 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 Freie-Software
==============================

Copyright
*********
Copyright	(c) 2002 by S.Aeschbacher, bTurtle GmbH
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.1
or any later version published by the Free Software Foundation;
A copy of the license is included in the section entitled "GNU
Free Documentation License".

Inhalt
******

Begriffe

Einleitung

Sicherheit der Software
	Potential zur Sicherheit
	Zertifikate

	
Schutz der Daten
	Kryptographie in FS
	Qualität der Kryptographie

Haltbarkeit von Daten

Schutz des Endusers

Schutz vor Spionage

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.
	
Trojaner Ein Programm das sich auf dem Komputer eines Opfers installiert und
         dem Angreiffer die Kontrolle über diesen Komputer gibt.

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 Quelltext ist der Programmtext, der von Menschen (Programmierern)
	in einen Computer eingegeben wird. Der Computer kann aus dem 
	Quelltext mit Hilfe spezieller Programme (z.B. Kompiler) ausführbare 
	Programme erzeuge. 

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 Spionage.
In diesen Punkten kann der Einsatz von Freier Software (FS) 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 um ein Betriebsystem handeln.

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

Die Sicherheit eines Programms hängt von verschiedenen Dingen ab.
FS ist nicht per-se sicherer als Closedsource Software. Sie bietet aber
bessere Möglichkeiten die Sicherheit eines Programmes zu untersuchen und
zu verbessern.
	
	Potential zur Sicherheit
Verschieden Aspekte von FS 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 FS
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, ist, vor allem beim
Vergleich mit Grossfirmen, extrem viel kürzer. Bei den meisten FS-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 FS-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 FS-Programm ein Sicherheitsproblem entdeckt,
kann er den Fehler selbst 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.
Diese Möglichkeit besteht in einem Closedsource-Programm nicht. Es
besteht für Dritte keinerlei Weg, einen Fehler selbst 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.
XXX brauche ein anderes Beispiel
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.
XXX
Es sollte wohl offensichtlich sein,
das solche Richtlinien sehr kontraproduktiv für die Qualität der Software sind.
Da solche Richtlinien im FS Bereich weitgehend nicht existieren (Ausnahmen
sind z.B. FS 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 kann.

Ein Häufiger Grund für Fehler in Software ist Termindruck der auf den 
Entwicklern lastet. Im FS-Umfeld programmiert jeder das wozu er Lust hat und 
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 FS-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 FS-Produkte zertifiziert sind, kann der Verdacht
aufkommen, dass sie ein solche Zertifizierung nicht bestehen würden.
Die Gründe warum Zertifikate im FS-Bereich so selten sind 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 sehr kostspielig.
	Da die meiste FS-Arbeit auf freiwilliger Basis erbracht wird, ist
	das Geld für ein solches Zertifikat nicht vorhanden.
	Etliche FS-Produkte würden aber die Kriterien für sehr hohe
	Zertifizierungsgrade erfüllen ([OpenBSD], [TrustedBSD] (in Arbeit),
	[XXX]
	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 FS-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 FS

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 FS 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 FS 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.
Diese Methode wird in der Fachwelt als "security through obscurity" bezeichnet, 
also "Sicherheit durch Verdunkelung" [Obscurity]. Damit ist das Geheimhalten des
Verschlüsselungsverfahrens gemeint. Dies ist insofern problematisch, als das
die Kryptographie keine genau Wissenschaft ist und es deshalb besser ist wenn
viele Personen (Kryptographen) das Verfahren nach Fehlern durchsuchen.
Diese Kernaussage der Kryptographie wurde bereits 1883 von Kerckhoff publiziert
[Kerckhoff] um so tragischer ist es, das es heute noch Firmen gibt, die mit 
"Sicherheit durch Verdunkelung" Kunden ködern.

XXX Beispiele

Haltbarkeit von Daten
*********************
Ob Daten nach längerer Zeit noch gelesen werden können hängt von der Art ab wie
diese gespeichert werden.
Wenn Daten gespeichert werden geschieht das in einem sogenannt Dateiformat.
Um die Daten wieder lesen zu können muss man dieses Format kennen oder 
herausfinden (was sehr schwierig sein kann).
Viele kommerzielle Firmen behalten ihre Dateiformate für sich, es ist deshalb
nur möglich, Dateien in solch einem Format mit einem Programm dieser Firma
zu lesen. Sollte es die Firma oder das Programm nicht mehr geben, kann man
auf die Daten nicht mehr zugreifen. Eine Möglichkeit wäre, das man die mühsame 
Arbeit auf sich nimmt das Dateiformat herauszufinden. In vielen Fällen wird das
aber durch die Lizenz des Programmes explizit verboten.
Wenn das Dateiformat für jederman verwendbar publiziert wird, spricht man von
einem offenen Dateiformat. Ist dies mit einem Format der Fall, kann man
jederzeit ein neues Programm schreiben, das Daten die in diesem Format 
gespeichert wurden, lesen kann.
Bei FS-Programmen kann man mit dem entsprechenden Fachwissen die Programmteile
die für das Speichern und Lesen dieses Dateiformats aus dem Quelltext entnehmen
und in ein neues (aktuelles) Programm einbauen.

Schutz vor Spionage
*******************
Mit der zunehmenden Vernetzung erhöht sich auch das Risiko der permanenten oder
sporadischen Spionage. 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 FS-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 Spionagefunktionen zu erstellen und der Öffentlichkeit
zur Verfügung zu stellen.
Weiter kann man sich vor passiver Spionage (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. So werden zum Beispiel "lustige" Programme über Email
versandt und ohne darüber Nachzudenken ausgeführt. Das solch ein Programm einen
Trojaner installieren oder die Festplatte löschen könnte ist vielen
nicht bewusst.
Im FS-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
Nutzer kann höchstens seine eigene Arbeitsumgebung gefährden.
Dieser Schutz gilt natürlich ganz speziell für Viren die vor allem
auf Einzelbenutzer-Betriebsystemen sehr gefährlich sind.

	Standardkonfiguration
Kommerzielle Softwarehersteller aber auch gewisse FS-Hersteller (wie [SUSE])
haben das 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 kann vielen Angreifern Tür und Tor öffnen.
Es gibt aber einige FS-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. Unerfahrene Anwender laufen in einer solchen
Installation nicht Gefahr, ihr System durch Unkenntnis unnötigen Gefahren 
auszusetzen.

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 abgeschwächter Kryptographie anderen Ländern zur Verfügung.
Da FS-Entwicklung nicht an ein konkretes Land gebunden ist, steht für die
meisten FS-Produkte starke Kryptographie zur Verfügung.
Produkthaftung wird von FS- wie von Kommerziellen-Lizenzen grundsätzlich
abgelehnt. Rechtlich bieten kommerzielle Lizenzen generell keine höhere
Leistung verglichen mit den Lizenzen von freier Software.

Analyse der aktuellen Situation XXX
*******************************
In den Vorhergehenden Teilen wurde Freie Software 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 nur ein einziges bekanntes Sicherheitsloch gehabt.

Apache vs. IIS
Apache ist ein FS-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. [CodeRed]


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
***************
Freie Software ist an sich ist keine Garantie für Sicherheit und Datenschutz.
Es gibt aber viele Punkte die diese Aspekte fördern. Die Realität zeigt das
Freise Software im Schnitt sicherer als das ensprechende kommerzielle Produkt
ist. 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 Spionage kommt, kann Freie Software aufgrund 
seiner natürlichen Transparenz jedes ClosedSource-Produkt in den Schatten 
stellen.


Referenzen
**********
[CodeRed]	http://www.caida.org/analysis/security/code-red/
[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/
[Obscurity]	http://www.ietf.org/internet-drafts/draft-ymbk-obscurity-00.txt
[Kerckhoff]	http://www.cl.cam.ac.uk/~fapp2/kerckhoffs/
[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