[wilhelmtux-discussion] Paper fuer EDSB
S.Aeschbacher
s.aeschbacher at bturtle.ch
Die Sep 3 14:44:21 CEST 2002
Hallo zusammen
im attachment nun die wirklich letzte version.
Gruss
Stefan
P.S. mir sind gestern private mails in die ML
gerutscht. Ich möchte mich bei allen dafür
entschuldigen.
-------------- 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 Endbenutzers
Schutz vor Spionage
Rechtliche Aspekte
Analyse der aktuellen Situation
Zusammenfassung
Referenzen
Begriffe
++++++++
Closed Source 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 dass 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 Computer eines Opfers installiert und
dem Angreifer die Kontrolle über diesen Computer gibt.
Freie Software Software bei der der Quelltext frei verfügbar ist,
beliebig verbreitet werden kann und Modifikationen erlaubt sind.
Freie Software wird je auch Open Source Software genannt.
Nähere Informationen zu Open Source 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 (Compiler) ausführbare
Programme erzeuge.
Einleitung
**********
Datenschutz betrifft verschiedene 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 in diesem Dokument selten vereinzelt betrachtet,
wenn von einem 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 Closed Source Software. Sie bietet aber
bessere Möglichkeiten die Sicherheit eines Programmes zu untersuchen und
zu verbessern.
Potenzial zur Sicherheit
Verschieden Aspekte von FS erhöhen das Potenzial 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 (um das Zeitfenster, das ein Angreifer
zur Verfügung hat zu minimieren). 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. Diese Gründe werden
im Folgenden erörtert.
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 zu den zuständigen Personen gelangt.
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 dem Entwickler zukommen
lassen. Der Entwickler muss sich in solch einem Fall nur noch darum kümmern,
ob die Lösung des Problems korrekt ist. So wird die Wahrscheinlichkeit erhöht,
dass die Korrektur in der "offiziellen" Version des Programmes eingefügt wird.
Diese Möglichkeit besteht in einem Closed Source-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. Bei den meisten
kommerziellen Lizenzen ist dies sogar ausdrücklich verboten.
Innerhalb von Firmen existieren Richtlinien, welche die Entwicklung
von Software betreffen. Diese Richtlinien können gute wie schlechte
Auswirkungen auf die Qualität und damit die Sicherheit von Programmen haben.
So kann man sich fragen, wie es kommt, dass noch am selben Tag als Microsoft
Windows XP herausgegeben hat, ein 18Megabytes grosses Update für genau dieses
Betriebsystem der Öffentlichkeit zur Verfügung gestellt wurde ([SWDesign]).
Solche Ereignisse lassen auf grobe Fehler in den Designrichtlinien schliessen,
sonst wäre es nie zu diesem peinlichen Vorfall gekommen.
Richtlinien dieser Art sind offensichtlicherweise kontraproduktiv für die
Qualität der Software.
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, dass das Fehlen von allfälligen "guten" Richtlinien die Qualität
der Software verschlechtern kann, besteht hingegen auch.
Ein häufiger Grund für Fehler in Software ist Termindruck, welcher auf den
Entwicklern lastet. Im FS-Umfeld programmiert jeder die Software, wozu er
Lust hat und stellt das Produkt zu dem Zeitpunkt fertig, 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. Somit entfällt hier eine sehr
grosse Fehlerquelle.
Zertifikate
Zertifikate von bekannten Instituten werden von vielen Firmen und Behörden als
Qualitätsgarantie gewertet. Dies ist auch im Sicherheitsbereich der Fall.
Das Fehlen eines oder mehrerer solcher Zertifikate wird oft als Mangel an
Qualität gewertet. Da FS-Produkte kaum zertifiziert sind, kann der Verdacht
aufkommen, dass sie eine 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.
Weil 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 häufig nicht vorhanden.
Etliche FS-Produkte würden aber die Kriterien für sehr hohe
Zertifizierungsgrade erfüllen ([OpenBSD], [TrustedBSD] (in Arbeit),
[Trustix]).
Viele Standard-FS-Produkte wären in niedrigeren Klassen problemlos
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, dass 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, müssen diese durch entsprechende
Massnahmen geschützt werden. Methoden, um dies zu tun, sind vor allem in der
Kryptographie oder der Steganographie zu finden.
Kryptographie in FS
Es gibt eine breite Palette von Software welche kryptographische Methoden
implementiert. Für die meisten Probleme, die mit Kryptographie lösbar sind,
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 machbar. Gewisse Sachverhalte
lassen sich formal beweisen, diese sind aber in der Minderheit.
Trotz dieser Einschränkungen sind gewisse absolute Aussagen zur Sicherheit
einer Methode möglich.
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 jerdermann den Quelltext einsehen kann.
Für eine sachkundige Person ist das abschätzen der Sicherheit eines FS
Produktes erheblich einfacher als bei einem Closed Source-Programm.
Es ist gängige Praxis in Closed Source-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 dass
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, dass es heute noch Firmen gibt, die mit
"Sicherheit durch Verdunkelung" Kunden ködern.
Ein Paper zu diesem Thema kann unter [Crypto] gefunden werden.
Beispiele:
Funknetzwerke
Die heute verfügbaren Funknetzwerke sind ein gutes Beispiel was man mit
Kryptographie alles falsch machen kann. Von zu kurzer Schlüssellänge bis zu
Programmierfehlern wurde bei der Sicherheit dieser Technologie sehr vieles
verpazt. Auch heute noch sind viele Produkte unsicher und gaukeln einem
einen falschen Sinn von Sicherheit vor ([WLAN]).
PPTP
PPTP ist ein Protokoll zum Verbinden von mehreren Netzwerken.
Microsoft benutzt in ihrem PPTP-Protokoll mehrere Techniken die zu kompliziert
und unsicher sind. Viele dieser Fehler wurden zwar im Verlauf der Zeit behoben,
das gravierendste Problem von allen haben sie aber nicht gelöst. Sie benutzen
für die Verschlüsselung immer noch Passwörter die von Benutzern generiert
werden. Da die meisten Benutzer nicht in der Lage sind ein "gutes" Passwort zu
erstellen, ist das eine sehr grosse Schwachstelle, die die Sicherheit von
allen miteinander verbundenen Netzwerken gefährdet ([PPTP]).
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 jerdermann 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 Closed Source Bereich ist es häufig der Fall, dass
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 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], [Tribug]. 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, ohne
Modifikation der Standardkonfiguration, 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
*******************************
In den Vorhergehenden Teilen wurde Freie Software als allgemeines Konzept
betrachtet. Im folgenden soll anhand von verschiedenen Beispielen einzelne
Produkte vorgestellt werden und zum Teil mit ihren kommerziellen Gegenstücken
verglichen werden.
Linux
Wohl der prominenteste Vertreter der Freien Software ist das Betriebsystem
Linux (auch GNU/Linux genannt). Es existieren eine grosse Anzahl von
verschiedenen sogenannten Distributionen. Diese bieten alle einen durchwegs
guten Schutz der Benutzer und der Dienste die darauf laufen. Viren sind auf
diesem Betriebsystem weitgehend inexistent.
Die Linuxgemeinde legt grossen Wert auf das Weiterentwikeln von Features
und neuen Programmen, die Sicherheit wird dabei aber nicht ausser acht
gelassen. [LinuxDistros]
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. Die Grundmaxime von OpenBSD ist robustes, d.h. fehlerfreies
Programmieren. Im Gegensatz zu vielen kommerziellen Betriebsystemen wird
OpenBSD kontinuierlich weiterentwickelt (und nicht für jede neue Version von
vorne begonnen). So wird verhindert, dass die selben Fehler mehrmals
passieren. 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 (ca 60% der eingesetzten Webserver basieren auf Apache).
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
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 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 macht)
ö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.
Jedes FS-Mailprogramm ist sicherer als Outlook. Die von vielen Firmen begehrten
Funktionalitäten von Outlook wie Terminverwaltung sind alle längst als
Freie Software erhältlich.
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, dass
Freie 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 für den Datenschutz sehr
förderlich sind.
Sobald es zum Thema Schutz vor Spionage kommt, kann Freie Software aufgrund
seiner natürlichen Transparenz jedes Closed Source-Produkt in den Schatten
stellen.
Referenzen
**********
[CodeRed] http://www.caida.org/analysis/security/code-red/
[Crypto] http://www.counterpane.com/whycrypto.html
[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
[PPTP] http://www.counterpane.com/pptpv2-paper.html
[Spyware] http://www.spyware.co.uk
[SUSE] http://www.suse.de
[SWDesign] http://msnbc.com/news/768401.asp
[Tribug] http://www.tribug.org/bsd.html
[TrustedBSD] http://www.trustedbsd.org
[Trustix] http://www.trustix.net/
[WLAN] http://www.oreillynet.com/pub/a/wireless/2002/04/19/security.html