Unix-Encrypt Password System, shadow, Pluggable Authentication Module

Ähnliche Dokumente
Geschichte und Überlick über Authentifizierungsmechanismen unter UNIX

Benutzer- und Rechte-Verwaltung Teil 2

Konzepte von Betriebssystem-Komponenten Schwerpunkt Authentifizierung. Benutzerverwaltung mit Kerberos

Benutzer- und Rechte-Verwaltung Teil 2

Benutzer- und Rechte-Verwaltung Teil 2

Benutzer und Rechte Teil 2

PAM. Plugable Authentication Modules

In diesem Anschnitt geht es um die SQL Anweisungen, mit denen ich den Zugriff auf das Datenbankschema steuern kann.

Reaktive Sicherheit. II. Passwörter. Dr. Michael Meier. technische universität dortmund

Das Kerberos-Protokoll

Grundlagen der entfernten Authentifizierung und Autorisierung: Kerberos

Lücke in der JavaScript-Engine von ios [ ]

Verschlüsselte Heimatverzeichnisse in Linux

Authentifizierung und Autorisierung unter Linux/Solaris: PAM und NSS

Benutzer und Rechte Teil 1, Paketverwaltung

Benutzer- und Rechte-Verwaltung Teil 2

IT - Sicherheit und Firewalls

Netzsicherheit I, WS 2008/2009 Übung 6. Prof. Dr. Jörg Schwenk

Mailserver Teil 2 Linux-Kurs der Unix-AG

Authentifizierung. Benutzerverwaltung mit Kerberos. Referent: Jochen Merhof

Key-basierte SSH Login mit PuTTY

Sicherheitsmechanismen des Betriebssystems

Mit PuTTY und WinSCP an der Pi

datenlink-schnittstelle Version 1.0

{tip4u://094} Passwort ändern

1. Praktikum zur IT-Sicherheit 1

Single-Sign-On mit Kerberos V

Benutzer und Rechte Teil 1, Paketverwaltung, SSH

Benutzer- und Rechte-Verwaltung Teil 1

FreeIPA. Eine Einführung. Robert M. Albrecht. Presented by. Fedora Ambassador CC-BY-SA. Freitag, 20. Juli 12

Wie sicher ist mein Passwort? Marc Nilius Barcamp Bonn 2016

Seminarvortrag Secure NFS

110.2 Einen Rechner absichern

Benutzer und Rechte Teil 3

Übungen zur Vorlesung Systemsicherheit

Betriebssysteme - Benutzerverwaltung

SICHERE DATENHALTUNG IN DER CLOUD VIA HANDY. Tuba Yapinti Abschlussvortrag der Bachelorarbeit Betreuer: Prof. Reinhardt, Dr.

HSR Subversion HowTo. Konfigurationsmanagement HSR MAS SE, September 2009 Seite 1 von 13

Hintergründe zur Kryptographie

Linux in NWZnet II ZIV Unix-Integration mit DCE/DFS

Benutzer und Rechte Teil 2, Paketverwaltung

Unix-Grundkurs 1. Thema heute: Shell-Skripten

Benutzer und Rechte Teil 1

Verschlüsselte Daten lesen: Möglichkeiten und Grenzen

Übung GSS Blatt 6. SVS Sicherheit in Verteilten Systemen

Netzwerksicherheit. Teil 10: Authentifikation und Autorisierung. Martin Mauve, Björn Scheuermann und Philipp Hagemeister

Dokumentation. iq.suite PDFCrypt. s mit manuell erstellten Benutzerpasswörtern verschlüsseln. Zugriff per Notes-Client.

How to Public key authentication with freesshd

Filetransfer via SecureCoPy

Projektarbeit Reitvereinmanagementsystem (RVMS) Dokumentation der Anmeldefunktionen

Mailserver Teil 2. Andreas Teuchert. 23. Februar 2015

Grundlagen der Programmierung

Mit Putty und SSH Key auf einen Linux Server zugreifen. Vorbereitungen auf dem Client Rechner

9.5 Blockverschlüsselung

VP WAP Kryptographie

Entwicklungstand der GUI

Sicherheit von PDF-Dateien

Sichere Programmierung. Klaus Kusche

Kurs 1866 Sicherheit im Internet

Allerdings gibt es eine Vielzahl an Möglichkeiten, wie man bestimmten Benutzern mehr erlauben kann:

Denn es geh t um ihr Geld: Kryptographie

Sicherheit von PDF-Dateien

DAS IDENTITY MANAGEMENT DER ZUKUNFT

Stack-basierte Festplattenverschlüsselung

Arithmetik in der tcsh

DOAG 2016 Oracle APEX Security

1. Access Sicherheitssystem ('Security')

ZIPSPLITMAIL. HowTo. Jürgen A.Lamers Version 0.3a

Zugriffsrechte. anzeigen lassen mit dem Befehl: ls -l

Whitepaper. Produkt: combit Relationship Manager. HowTo: Microsoft SQL Server Datenbank verschlüsseln. combit GmbH Untere Laube Konstanz

Ausgewählte Themen der IT-Sicherheit. Wintersemester 2010/2011

Einführung für Administratoren SS Einbindung von Linux-Rechnern in die Benutzerverwaltung und Nutzung von zentralen Ressourcen

Dateisystem 1, Suchen & Finden

Modul 11: Sicherer Remote-Zugriff über SSH

9. Einführung in die Kryptographie

Workshop: IPSec. 20. Chaos Communication Congress

Dateisystem 2, Suchen & Finden

Übungsblatt 1. (Stapel- bzw. Batchbetrieb)

Dateisystem 1, Suchpfad, Befehlstypen

Das CIP der Mathematik

Passwortsecurity Business4School, Sebastian Brabetz, Teamleiter Professional Security Solutions

CloseUp SIX SIS AG. Benutzerhandbuch Futurae. Juni Kundeninfo

Intrexx Hochverfügbarkeit

Netzwerktechnologien 3 VO

Den Websurfer absichern

Rechnerarchitekturen und Betriebssysteme (CS201): Sicherheit: ACM und Passworte, OS-Timeline

Installation von Zope, Plone, exam auf OSS

Schnellstart. Willkommen bei HiDrive. Erste Schritte in die Wolke! Dateien hochladen. Mailupload nutzen. Freigabelinks erzeugen. Gemeinsam zugreifen

Network-Attached Storage mit FreeNAS

Best Practices WatchGuard Accessportal - Grundlagen und Konfiguration

Kerberos und das Oracle Die Nutzung von Kerberos in einer Solaris-Oracle-Umgebung

Security Lektion 4 Zugriffskontrollen

Datenbanken und Netzanbindung

Das CIP der Mathematik

Dateisystem 2, RegEx, Manpages

Secure Socket Layer V.3.0

Transkript:

Unix-Encrypt Password System, shadow, Pluggable Authentication Module Thomas Glanzmann sithglan@stud.uni-erlangen.de 2. Mai 2002 Ausarbeitung zum Votrag über Unix-Passwörter, shadow und PAM Bei Mehrbenutzersystemen ist es üblich die verschiedenen Benutzerkonten durch Passworte zu sichern. Dies gewährleistet die Privatsphere der einzelnen Benutzer. Unter Unix Systemen werden die Passwörter in der Datei /etc/passwd aufbewahrt. Diese Passwörter werden dort nicht im Klartext gespeichert, da die Datei für alle Benutzer des Systems lesbar ist. In den folgenden Sektionen werde ich auf diverse Mechanismen eingehen, welche die Authentifizierung eines Benutzers am System ermöglichen. 1 UNIX Authentifizierungskonzepte 1.1 Historie und Grundlagen Das Passwort eines Unix Benutzers wird mit Hilfe einer Einweg - Funktion in eine Prüfsumme umgewandelt und ihn der Datei /etc/passwd neben anderen Benutzerdaten aufbewahrt. Möchte sich nun ein Benutzer authentifizieren wird das eingegebene Passwort wieder in eine Prüfsumme kodiert und mit der bereits gespeicherten verglichen. Stimmen die beiden überein ist der Benutzer erfolgreich authentifiziert. Die wohl verbreiteste Prüfsummenfunktion basiert auf dem DES Algorithmus 1 und wird crypt() Algorithmus genannt. Sie wurde in den 70er Jahren für die PDP 11 entwickelt [Garfinkel]. 1.2 Der DES Algorithmus als Grundlage für den crypt() Algorithmus Der crypt() Algorithmus basiert wie schon erwähnt auf dem DES Algorithmus, welcher vom NIST 2 entwickelt wurde [Garfinkel]. Der DES Algorithmus benutzt einen 56 bit Schlüssel, welcher acht 7 bit ASCII Zeichen entspricht, um 64 bit Blöcke Klartext in 64 bit Blöcke Chiffretext zu kodieren. Um den DES Algorithmus als Prüfsummenfunktion verwenden zu könnten wird ein 64 bit Block von Nullen mit dem Passwort verschlüsselt. Dieser Vorgang wird mit dem Chiffretext der vorangegangen Runde als Klartext 25 mal wiederholt [Feldmeier]. Diese Wiederholung dient um Angriffe 3 zu erschweren: Es können weniger Passwörter pro Sekunde verschlüsselt werden. Und somit brauch man auch mehr Zeit um eine Reihe von Passwörtern zu testen. Als der crypt() Algorithmus für die PDP 11 entwickelt wurde dauerte eine einzelne Prüfsummenbildung auf diesem Rechner eine Sekunde. 1 Data Encryption Standard 2 National Institute of Technology 3 vgl. Abschnitt 1.6 Attacken 1

1.3 Modifikationen am DES Algorithmus für den crypt() Algorithmus: Der Salt Um Bruteforce und Tabellenangriffe 4 zu erschweren wurde der DES Algorithmus modifiziert: Es wurde eine 12 bit Nummer (0-4096) eingeführt, welche den Chiffretext minimal variiert. Der Grund in dieser Modifikation liegt darin, dass man nun ein Klartextpasswort auf 4096 verschiedene Art und Weisen als Chiffretext darstellen kann. So wird es zum Beispiel möglich das gleiche Passwort auf verschiedenen System zu verwenden ohne das ein vermeintlicher Angreifer dies feststellen könnte. In der Praxis wird dieses System allerdings schlecht umgesetzt da der Salt nach der Tageszeit gewählt wird. Dadurch häufen sich einige Salts und andere werden überhaupt nicht verwendet. 1.4 Der crypt() Algorithmus in der Praxis Beim Setzten des Passwortes wird dieses mit Hilfe eines Salt und dem crypt() Algorithmus in eine Prüfsumme kodiert. Der Salt wird mit der Prüfsumme als 2 (Salt) + 11 (Prüfsumme) druckbare Zeichen 5 abgespeichert. Jedes dieser druckbaren Zeichen trägt 6 bits. Will sich der Benutzer nun authentifizieren wird das eingegebene Passwort mit Hilfe des aus der Passwort Datei entnommen Salt kodiert und mit der bereits vorhandnen Prüfsumme verglichen. Stimmen die beiden Zeichenketten überein ist der Benutzer erfolgreich authentifiziert. 1.5 Schwachstellen des crypt() Algorithmus Im Laufe der Jahre sind Rechen und Festplattenkapazität enorm gestiegen. Dadurch kann man mit einem handelsüblichen PC bis zu 350000 Passwörter in der Sekunde kodieren. Somit ist ein 7 Zeichen Passwort innerhalb einer Woche spätestens kompromittiert. Außerdem ist die Salt Länge auf 12 bit beschränkt [Garfinkel] und die maximale Passwortlänge beschränkt sich auf 8 Zeichen. 1.6 Angriffe Es bieten sich hier zwei Arten von Angriffe an: Bruteforce Angriffe, welchen den gestammten Schlüsselraum systematisch und gegebenenfalls auch verteilt durchtesten, und Wörterbuchangriffe die mit Hilfe von Wörterbüchern oft verwendete Passwörter durchtesten. Außerdem gibt es Spezialrechner, welche den gesamten Schlüsselraum in 4 Stunden bewältigen [Garfinkel]. 1.7 Der nächste Entwicklungsschritt: Die Shadow Passwort Datei /etc/shadow Die Idee hinter diesem Prinzip ist es die Passwörter aus der Passwortdatenbank /etc/passwd in die Shadow Passwort Datei zu verschieben. Auf diese zweite Datei kann nur noch ein privilegierter Benutzer zugreifen. Diese Entwicklung wurde dadurch motiviert, dass die Mehrzahl der Benutzer schwache Passwörter wählen [Morris]. 4 Unter einem Tabellenangriffe versteht man eine generierte Tabelle in der sich das verschlüsselte Passwort im Klartext ablesen lässt. 5., /, 0-9, a-z, A-Z 2

1.8 Eine Alternative zum crypt() Algorithmus: der md5 Algorithmus Der md5 Algorithmus beseitigt einige Schwachstellen des crypt() Algorithmus: Die Länge des Salts steigt von 12 auf 48 bits und die Passwortlängenbegrenzung wird aufgehoben. Außerdem ist der md5 Algorithmus wesentlich langsamer als der crypt() Algorithmus. Dadurch werden Angriffe 6 langsamer, da die Prüfsummenbildung eines einzelnen Passwortes länger dauert. 1.9 Weitere spezielle Alternativen Es sind noch weitere Alternativen zum crypt() Algorithmus im Einsatz. Allerdings sind diese zu anderen System inkompatibel. Dazu gehören der Blowfish Algorithmus (OpenBSD) und ein erweiterter crypt() Algorithmus, welcher unter BSDI bzw. HP UX zum Einsatz kommt [Garfinkel]. 2 Pluggable Authentication Module [Hernberg] 2.1 Motivation: Wofür benötigt man PAM? Mit Hilfe von PAM kann vermieden werden, dass ein Programm spezielle Privilegien braucht um auf die shadow Passwort Dateien zuzugreifen, welches wiederum die Sicherheit erhöht, da nicht alle passwortverifizierenden Programme privilegiert sein müssen. Möchte man zum Beispiel die Authentifizierungsstrategie ändern muss man, sofern man PAM nicht verwendet, alle involvierten Applikationen neu übersetzten. Weiterhin ist es durch PAM möglich den Zugang zum System und auch die Rechte der einzelnen Benutzer und Programme zu regulieren. Ein Passwort muss nicht mehr zwingend aus der Passwort Datei bezogen werden, es kann ebenso gut von einem Server auf der anderen Seite der Welt stammen. 2.2 Exkurs: Kereberos und Single Sign On PAM kann auch im Zusammenspiel mit Kereberos verwendet werden. Dadurch wird ein Single Sign On möglich. Der Benutzer kann sicht unter Verwendung eines einzelnen Passwortes an unterschiedlichen Systemen authentifizieren. Auf dieses Themengebiet wird im darauf folgenden Vortrag intensiv eingegangen. 2.3 Wie funktioniert PAM? Durch Bibliotheken wird eine weitere Abstraktionsschicht eingeführt. Programme, welche Benutzer authentifizieren, lassen sich mit diesen Bibliotheken übersetzen. Daraufhin kann man sie zentral über die Konfigurationsdateien administrieren. 2.4 Ein Anwendungsbeispiel für PAM Man möchte nur bestimmten Benutzern, welche der Gruppe root angehören, erlauben einen privilegierten Status einzunehmen. Dies ist mit PAM durch Einsetzen der folgenden Zeile auth required pam_wheel.so group=root in der Datei /etc/pam.d/su möglich. 6 vgl. Abschnitt 1.6 Attacken 3

2.5 PAM Konfigurationsdateien Die PAM Konfigurationsdateien liegen im Verzeichnis /etc/pam.d/. Für jedes Programm ist dort jeweils eine Konfigurationsdatei zu finden. Diese Konfigurationsdateien enthalten pro Zeile ein Anweisung bzw. einen Kommentar oder eine Leerzeile. Eine Anweisung besteht aus drei oder mehr Argumenten. Das erste Argument vom Typ type zeigt PAM welche Art von Authentifikation für ein Modul vollzogen werden soll. Es können mehrere Module der gleichen Art benutzt werden. Der Benutzer muss dann alle Anforderungen der verschiedenen Module erfüllen. PAM kennt vier verschiedene Typen vom Typ type: account Sepezifiziert ob sich ein Benutzer einloggen darf. auth Überprüft ob ein Benutzer auch der jenige ist für den er sich ausgibt. 7 password Ermöglicht dem Benutzer über diese Applikation sein Passwort zu ändern. session Setzt dem Benutzer nach der Authentifizierung seine Umgebung. 8 Das zweite Argument vom Typ control zeigt an welche Aktion unternommen werden soll, wenn die Authentifizierung fehlschlägt. Für dieses zweite Argument gibt es vier Möglichkeiten: requisite Ein Authentifizierungsfehler in diesem Modul führt zu einer direkten Abbruch der kompletten Authentifizierung. required Ein Authentifizierungsfehler in diesem Modul führt zu einer Abbruch der Authentifizierung aber Module mit dem gleichen Typ können noch abgearbeitet werden. sufficient Wenn die Authentifizierung mit diesem Modul erfolgreich ist, ist es die Authentifizierung auch, selbst wenn ein vorheriges Modul nicht erfolgreich war. optional Dieses Modul ist nur signifikant, wenn es das einzige Modul für diesen Dienst ist. Das dritte Argument zeigt PAM welches Modul es verwenden soll und optional wo dieses zu finden ist. Die meisten Konfigurationsansweisungen enthalten nur den Namen. In diesem Fall schaut PAM in dem vorgegebenen Konfigurationsverzeichnis 9 nach. Ansonsten wird im vollqualifizierten Pfad nach dem Modul gesucht. Das vierte und alle weiteren Argumente sind Optionen für das jeweiliege individuelle Modul. Wenn man beispielsweise pam unix.so die Option nulok übereicht, werden leere Passwörter akzeptiert. 3 Literaturverzeichnis Literatur [Garfinkel] Author Simson Garfinkel. Practical Unix & Internet Security. Spafford, Oreilly, Second Edition, April 1996, ISBN 1-56592-148-8 7 Überprüft das Passwort, die Retina oder eine Smartcard 8 Es wird also zum Beispiel das home Verzeichnis gemountet oder ein Dienst gestartet. 9 /usr/lib/security btw. nach Linux Filesystem Standard unter /lib/security 4

[Hernberg] Author Peter Hernberg. User Authentication HOWTO Explains how user and group information is stored and how users are authenticated on a Linux system (PAM), and how to secure you system s user authentication. 2000/05/02 [Feldmeier] Author David C. Feldmeier and Philip R. Karn. Unix Password Security - Ten Years Later. Bellcore, 1989 [Morris] Author Robert Morris and Ken Thompson, Password Security: A Case History, 1979 5