Dieses Handbuch wird mit freundlicher Genehmigung von Sebastian Hetze auf den Servern der Linux Information Systems AG gehosted.

next up previous contents index
Next: Benutzer eintragen Up: Systemverwaltung Previous: Linux als Mehrbenutzersystem

Subsections


Genauere Betrachtung der Datensicherheit

 

Neben der Betriebssicherheit, die vor allem durch Qualitätsmängel der billig produzierten Hardware, durch Bedienfehler und durch fehlerhafte Software beeinträchtigt wird, steht besonders die Sicherheit der wertvollen und vertraulichen Daten vor Verlust und unberechtigtem Zugriff im Mittelpunkt der Aufmerksamkeit einer erfolgeichen Systemverwaltung.

Die beste Methode, Daten vor dem Verlust zu schützen, ist die Sicherung einer oder mehrerer Kopien auf Magnetbändern oder anderen geeigneten Medien. Dem Thema Backups ist ein eigenes Kapitel in diesem Buch gewidmet.

Im folgenden Abschitt soll das Problem der Sicherheit von Daten vor unberechtigtem Zugriff genauer betrachtet werden.

Authentifizierung

   

Um die Eigentumsrechte und das damit verbundene System der verschiedenen Zugriffsrechte für Eigentümer, Besitzergruppen und übrige Systembenutzer durchzusetzen, muß jede Person, die sich an den Rechner setzt und damit arbeiten will, vom System als User identifiziert und zugelassen werden. Das geschieht durch die Login-Prozedur: bevor das Betriebssystem bereit ist, ein Programm für einen Benutzer zu starten, muß dieser seinen Benutzernamen eingeben und seine Identität durch die verdeckte Eingabe eines geheimen Paßwortes bestätigen.

Die ersten acht Zeichen des Paßwortes    werden durch einen nicht umkehrbaren Algorithmus[*] codiert und mit einem gespeicherten Schlüsselwort verglichen. Dieses Schlüsselwort ist zu einem früheren Zeitpunkt durch die gleiche Funktion aus dem Paßwort erzeugt und in eine Datei geschrieben worden. Stimmen das gespeicherte und das soeben erzeugte Schlüsselwort überein, müssen auch die Paßwörter übereingestimmt haben. Das System geht davon aus, daß das geheime Paßwort nur dem berechtigten Benutzer bekannt ist und akzeptiert deshalb die Person an der Tastatur als User.

Die codierten Paßwörter werden zusammen mit den anderern Benutzerdaten in der Datei /etc/passwd gespeichert. Der Datensatz wird bei der Einrichtung eines neuen Accounts von der Systemverwalterin erzeugt. Die Paßwortdatei ist für alle Systembenutzer lesbar, kann aber nur mit Rootprivilegien verändert werden. Weil aus dem Schlüsselwort das ursprüngliche Paßwort nicht auf einfachem Wege erzeugt werden kann, ist diese Methode der Authentifizierung grundsätzlich sicher.

Gelegentlich auftauchende Erfolgsgeschichten von Hackern, die sich unberechtigten Zugang zu Rechnern verschafft haben, zeigen aber auch die Grenzen dieses einfachen Sicherheitssystems auf.

Wenn Sie meinen, Ihr Linux-System müsse höheren Sicherheitsstandards genügen, erhalten Sie auf den nächsten Seiten ein paar Anregungen für dessen Verbesserung. Sie sollten sich aber keine Illusionen machen: die Sicherheit einer Computeranlage hängt von mehr als der Software und deren Konfiguration ab.

Bevor Sie sich daran machen, Ihren Rechner ``dicht'' zu machen, sollten Sie sich über die Ziele klar werden und die Verhältnismäßigkeit der Mittel nicht außer Acht lassen. Um bestimmte Daten vor unberechtigtem Zugriff zu schützen ist es nicht unbedingt nötig, das gesamte System abzuschließen.

Beachten Sie auch, daß jeder ``Angreifer'' bei dem Veruch an Ihre Daten heranzukommen den Weg des geringsten Wiederstandes gehen wird. Sie können sich eine Menge Bemühungen um die optimierung der Authentifizierung sparen, wenn Sie nicht verhindern, daß jemand, dem Sie nicht trauen, Zugang zur Hardware bekommt und beispielsweise einen Neustart mit einer eigenen Bootdiskette durchführt.

Vor diesem Hintergrund wird die Verbesserung des Authentifizierungssystems erst Sinnvoll, wenn Sie Ihren Linux-Rechner in irgendeiner Weise vernetzen.

Es gibt einige Schwachstellen des einfachen Authentifizierungssystems, die es einer Person ermöglichen können, sich die Rechte eines anderen Users anzueignen.

Jeder User hat die Qual der Wahl bei der Festlegung eines neuen Paßwortes. Wer kennt nicht die Angst, das soeben kunstvoll ausgedachte Paßwort bis zum nächsten Einloggen zu vergessen? Diese Angst verursacht die beiden wichtigsten Schwachstellen des einfachen  Authentifizierungssystems: triviale Paßwörter und schriftliche Notizen in der Nähe des Rechners.

Namen, Autokennzeichen, Telefonnummern und Geburtsdaten sind nicht geheim und können deshalb schnell erraten werden.

Der Hang zu einfachen Paßwörtern ermöglicht es den Hackern, ein uncodiertes Paßwort aus dem Schlüsselwort zu gewinnen, wenn es sich um ein echtsprachliches Wort oder eine leichte Variation davon handelt. Dazu wird ein schneller Computer eingesetzt, um systematisch ganze Wörterbücher abzuarbeiten und sämtliche Wörter vorwärts und rückwärts, in Groß- und Kleinschreibung und mit einer ganzen Reihe weiterer Variationen auszuprobieren.

Theoretisch läßt sich durch ``rohe Gewalt'', also den Einsatz massiver Rechenleistung, jedes Paßwort durch Ausprobieren knacken. Die Methode mit den Wörterbüchern ist aber um die Größenordnung vieler Zehnerpotenzen schneller.

Zunächst ist das Problem der schwachen Paßwörter natürlich das desjenigen Users, der solch ein schwaches Paßwort verwendet. Das Problem läßt sich durch eine Veränderung im System deutlich entschärfen, indem die Schlüsselwörter nicht mehr für alle Systembenutzer lesbar in der Benutzerdatenbank /etc/passwd gespeichert werden. Die Benutzerdatenbank selbst muß lesbar bleiben, weil die meisten der darin enthaltenen Daten (Benutzername, User-ID, Realname, Heimatverzeichnis,...) im alltäglichen Arbeitsbetrieb häufig von den Systembenutzern abgefragt werden. Da bei diesen Zugriffen auf die Benutzerdatenbank das codierte Paßwort nie benötigt wird, ist es möglich, die codierten Paßwörter in einer separaten Datei abzulegen, die nur durch ein paar besonders privilegierte Programme gelesen werden kann.

  Das Shadow-Paßwort-System, das Sie als Ergänzung zu den meisten Linux-Distributionen bekommen können,[*] arbeitet genau nach dieser Methode.

Die codierten Paßwörter werden hier in der Datei /etc/shadow gespeichert, die nur mit Superuserrechten gelesen werden kann. Die Programme, die die Login-Prozedur durchführen, haben diese Rechte und können deshalb ohne Probleme damit arbeiten.

Das Shadow-Paßwort-Paket hat noch einige Features, die die Sicherheit des Authentifizierungssystems weiter verbessern sollen. So kann das Programm, das es den Usern erlaubt, ihr Paßwort zu ändern, bestimmte Schwächen feststellen und solche schwachen Paßwörter ablehnen. Durch einen ``Alterungsmechanismus'' können die User gezwungen werden, ihr Paßwort nach einer gewissen Zeit zu verändern, sie können aber auch gezwungen werden, ihr Paßwort eine gewisse Zeit zu behalten.

Ob eine solche Maßregelung sinnvoll oder inakzeptabel ist, müssen Sie selbst entscheiden. Eine absolute Sicherheit vor Paßwortknackern bietet auch die Verdoppelung des Schutzes nicht. 

  Ein Sicherheitsproblem, das von der Shadow-Paßwort-Suite nicht gelöst wird, taucht in allen vernetzten Systemen auf, in denen sich User über das Netz auf anderen Rechnern einloggen. Hierbei muß bei dem bisher beschriebenen Authentifizierungssystem das unverschlüsselte Paßwort zum Zielrechner übertragen werden. Auch wenn es nicht als Echo auf dem Bildschirm erscheint, wird es doch Zeichen für Zeichen auf dem Ethernetkabel oder auf der Telefonleitung transportiert. Solche Verbindungen können abgehört werden, und jemand kann sich auf diese Weise in den Besitz von unverschlüsselten Paßwörtern bringen.

Mit dem Programmpaket deslogin[*] können Sie diese Sicherheitslücke schließen. Das Programm deslogin kann ähnlich wie telnet oder rlogin benutzt werden. Wie die beiden letztgenannten Programme baut der deslogin-Client eine Netzwerkverbindung zu einem Serverdämon auf einem entfernten Rechner auf. Client und Server führen eine Authentifizierung durch, bei der das Paßwort ähnlich wie beim Kerberos-Protokoll in einem ``Challenge-Response'' Dialog nur in verschlüsselter Form ausgetauscht wird. Zusammen mit dem Paßwort wird auch ein zufällig erzeugter Schlüssel übertragen, mit dem der weitere Datenverkehr zwischen Client und Server verschlüsselt wird. Damit schützt deslogin nicht nur das geheime Paßwort, sondern sämtliche über das Netzwerk übertragenen Daten. Wie der Name schon andeutet, benutzt deslogin als Verschlüsselungsfunktion die im Data Encryption Standard definierten Methoden.

deslogin arbeitet mit einer eigenen Paßwortdatei, die ebenfalls mit DES verschlüsselt ist und vom Server nur gelesen werden kann, wenn dieser beim Start den korrekten Schlüssel erhalten hat. Die Paßwörter selbst sind nicht auf 8 signifikante Zeichen beschränkt, können also beliebig lang sein.

  Wenn aus irgendwelchen Gründen die Verwendung von deslogin nicht möglich ist, können Sie wenigstens Ihr geheimes Paßwort vor dem Ausspionieren schützen, indem Sie ein System mit Einwegpaßworten verwenden. Das S/Key-Paket[*] läßt sich leicht in das Shadow-Paßwort-System integrieren und bietet diese Funktionalität. S/Key liefert bei der Frage nach dem Paßwort zwei Parameter (eine Zahl und ein Wort). Diese beiden Parameter müssen vom Benutzer zusammen mit seinem geheimen Paßwort und mit Hilfe eines sicheren Computers zu einem Schlüssel verarbeitet werden, der dann über das Netz an das Login-Programm geschickt wird und den Zugang zu dem entfernten System öffnet.

Weil S/Key beim nächsten Loginversuch einen anderen Parameter liefert, und natürlich auch ein anderes Schlüsselwort erwartet, ist das ``Belauschen'' der Login-Prozedur völlig wertlos.     

Zusätzliche Sicherheit durch Datenverschlüsselung

 

Es gibt Fälle, in denen alle bisher beschriebenen Methoden der Datensicherung nicht ausreichend sind. Ein Sicherheitssystem ist immer nur so stark, wie sein schwächster Punkt. Wenn jemand durch Einbruch oder Diebstahl Zugang zur Hardware bekommt, ist jede Authenifizierung überflüssig: der Eindringling kann sich bequem Superuser-Rechte und damit den Zugriff zu allen Daten auf den Festplatten verschaffen.

Diese und ähnliche Überlegungen zeigen deutlich die Grenzen der Sicherung vertraulicher Daten vor unberechtigtem Zugriff durch Mechanismen des Betriebssystems. Diese Mechanismen sind primär dazu entworfen, die Integrität des Systems sicherzustellen und die Systembenutzer vor versehentlichen oder fahrlässigen Beschädigungen fremder und auch eigener Daten zu schützen.

Wenn Sie mit Papieren umgehen, die Sie in einem Stahlschrank oder gar in einem Safe aufbewahren, dann sollten Sie die elektronischen Versionen dieser Dokumente nicht den einfachen Schutzfunktionen des Betriebssystems überlassen. Wenn Sie die Festplatte mit den vertraulichen Daten nicht jeden Tag ausbauen und über Nacht in den Safe schließen möchten, können Sie Ihre elektronischen Dokumente verschlüsseln und damit einen Safe auf Ihrer Festplatte einrichten.

Sie haben unter Linux mehrere Verschlüsselungsfunktionen zur Verfügung, die den Vergleich mit dem Safe im Keller einer Bank nicht zu scheuen brauchen. Die Verschlüsselungssysteme sind in Deutschland kostenlos und ohne Probleme per FTP zu bekommen, sie sind leicht zu installieren und einfach zu bedienen. Wenn Sie diese Systeme sorgfältig benutzen, brauchen Sie sich um die Sicherheit Ihrer Daten keine Sorgen mehr zu machen.

Pretty Good Privacy (PGP)

    Das von Phil Zimmerman entwickelte Verschlüsselungsprogramm PGP gehört zu den sichersten Cryptographischen Systemen auf dem Markt. Es ist schwierig, die Qualität eines Verschlüsselungsprogramms zu beurteilen. Unter den zivilen Cryptoanalytikern genießen die beiden Algorithmen, die PGP benutzt, jedenfalls hohes Ansehen und es mag als Indiz für die Qualität des Systems gelten, daß die Sicherheitsbehörden und Geheimdienste der USA und anderer Länder die Verbreitung des Programms zu verhindern versuchten.

Die staatlichen Dienste mußten feststellen, daß ihre Aktivitäten zur Eindämmung wirksamer Verschlüsselungstechnologie mehr zu deren Publicity und damit zur weiteren Verbreitung beigetragen haben. Deshalb wurde das Strafverfahren gegen Phil Zimmerman eingestellt.

Dieser scheinbaren Liberalisierung stehen auf der anderen Seite neue Gesetze gegenüber, die den Geheimdiensten jederzeit den unbemerkten Zugang zu den unverschlüsselten Daten sichern soll. In diesem Sinne enthält der in vielen Hardwarelösungen verwendete Clipper-Chip eine Hintertür, die es den Geheimdiensten erlaubt, an die unverschlüsselten Daten heranzukommen. PGP steht nicht im Verdacht, so eine Hintertür zu haben.

Die Besonderheit, die PGP speziell für den Einsatz mit vernetzten Computern interessant macht, liegt im asymmetrischen Verschlüsselungsverfahren (RSA). Dieses Verfahren eignet sich für den Austausch von Nachrichten, beispielsweise per E-Mail, weil es das bei symmetrischen Verschlüsselungsverfahren auftretende Problem der Schlüsselübergabe löst. Bei PGP kann ein öffentlicher Schlüssel (Public Key) gefahrlos allgemein zugänglich gemacht werden, und ein zweiter, geheimer Schlüssel erlaubt nur dessen Besitzer die Entschlüsselung einer mit dem Public Key verschlüsselten Nachricht.

Umgekehrt kann der Absender eines Briefes seine Nachricht mit Hilfe seines geheimen Schlüssels signieren. Der Empfänger kann dann mit dem Public Key die Authentizität des Absenders und die Integrität der Nachricht prüfen.

Das Programm pgp selbst hat kein besonders ansprechendes User-Interface. Speziell für den Einsatz mit E-Mail gibt es aber eine ``aufgebohrte'' Version des Mailprogramms elm, die Ver- und Entschlüsselung sowie die Pflege des ``Schlüsselrings'' weitgehend automatisiert.

Für die Verschlüsselung von ``Massendaten'' benutzt PGP einen Algorithmus namens IDEA. Dieses Verfahren gilt als sehr stark. Es ist stärker und schneller als das RSA-Verfahren, arbeitet aber mit symmetrischen Schlüsseln. Deshalb wird bei der Verschlüsselung von Nachrichten der eigentliche Text mit IDEA und einem zufällig erzeugten Einwegschlüssel verschlüsselt, der Schlüssel wird dann mit RSA und dem Public- bzw. dem Secret-Key verschlüsselt und das ganze dann zu einem Paket verschnürt. Beim Empfänger wird dann zuerst der Schlüssel mit dem RSA-Verfahren entschlüsselt und damit dann der Text der Nachricht.

Wenn Sie Dateien auf dem lokalen System mit PGP verschlüsseln wollen, können Sie IDEA direkt mit einem von Ihnen selbst gewählten Schlüssel verwenden.

Sie finden die Sourcen zu PGP auf verschiedenen FTP-Servern im Internet, beispielsweise im Verzeichnis /pub/os/linux/sources/kernel/net-source/base auf ftp.informatik.hu-berlin.de unter dem Namen pgp-2.6.2i-5.tar.gz.  

DES-Verschlüsselung und Crypto-Filesystem

  Die Abkürzung DES steht für Data Encryption Standard, es handelt sich um ein in den 70er Jahren von IBM unter Mitwirkung der US National Security Agency entwickeltes Verschlüsselungsverfahren.

DES arbeitet mit einem 56-Bit kleinen Schlüssel, was 1977 als einigermaßen sicher gelten konnte. Heute muß davon ausgegangen werden, daß es Behörden und größeren Firmen mit vertretbarem Aufwand möglich ist, einen DES-Schlüssel durch rechnergestützte Suche herauszufinden. Trotzdem wird DES noch häufig zur Sicherung vertraulicher Daten eingesetzt.

Die weite Verbreitung von DES und dessen Unterstützung durch viele Anwendungen machen DES auch in Gegenwart besserer Verschlüsselungstechnologien interessant. Es nützt der beste Safe leider nichts, wenn seine Bedienung so unbequem ist, daß er von denjenigen, die ihn benutzen sollen, nicht akzeptiert wird.

Sie finden DES Implementationen per FTP beispielsweise auf ftp.gwdg.de im Verzeichnis /misc/crypt/cryptography/symmetric/des/ oder auf concert.cert.dfn.de im Verzeichnis /pub/tools/crypt/des. Beide Sites bieten aktuelle und gut gepflegte Archive zum Thema Verschlüsselung.

Außer dem bereits beschriebenen Programm deslogin ist besonders das Cryptographische Filesystem (CFS) für Linux interessant. Sie finden die offizielle Version von Olaf Kirch auf ftp.mathematik.th-darmstadt.de im Verzeichnis /pub/linux/okir/cfs-1.1.2.tar.gz

CFS arbeitet wie das Network File System (NFS). Durch den CFS-Server wird ein Verzeichnis im Arbeitsbereich eines Users exportiert und über die Netzwerkfunktionen des Betriebssystems mit dem normalen NFS-Protokoll an einer anderen Stelle in das Dateisystem eingebunden. Der CFS-Server filtert alle Datenströme zwischen dem per NFS eingebundenen Verzeichnis und dem realen Verzeichnis im Arbeitsbereich. Dabei werden die Daten in der einen Richtung verschlüsselt, in der anderen Richtung werden sie wieder entschlüsselt.

Die Daten und sogar die Datei- und Verzeichnisnamen in dem ``realen'' Verzeichnis auf der Festplatte sind nur durch den Filter zu sehen. Das mit dem NFS-Protokoll eingebundene virtuelle Verzeichnis ist nur für den Eigentümer lesbar. Selbst mit Rootrechten ist ein Zugriff auf die Daten im virtuellen Verzeichnis nicht möglich, weil das NFS die Privilegien des Superusers nicht respektiert.

Eine andere Variante eines Verschlüsselten Dateisystems wird vom Loop-Device angeboten. Wenn die Algorithmen zur DES-Verschlüsselung in den Kernel einkompiliert werden, kann das Loop-Device die Daten in der von ihm verwalteten Datei mit dieser Funktion verschlüsseln. Die notwendigen Kernelpatches und die Hilfsprogramme finden Sie auf verschiedenen FTP-Servern.      
next up previous contents index
Next: Benutzer eintragen Up: Systemverwaltung Previous: Linux als Mehrbenutzersystem

Das Linux Anwenderhandbuch
(C) 1997 LunetIX