Authentifizierung
Die Authentifizierungstechnologie bietet eine Zugriffskontrolle für Systeme, in dem sie prüft, ob die Anmeldeinformationen eines Benutzers mit den Anmeldeinformationen in einer Datenbank mit autorisierten Benutzern oder in einem Datenauthentifizierungsserver übereinstimmen.
Benutzer werden in der Regel mit einer Benutzer-ID identifiziert und die Authentifizierung wird durchgeführt, wenn der Benutzer einen Berechtigungsnachweis, wie beispielsweise ein Kennwort, bereitstellt, der mit dieser Benutzer-ID übereinstimmt. Die meisten Anwender sind mit der Verwendung eines Passworts vertraut, eine Information, die nur dem Benutzer bekannt sein sollte. Dieser Authentifizierungsfaktor wird auch als Wissensfaktor bezeichnet. Andere Authentifizierungsfaktoren und wie sie im Kontext von Zwei- oder Multifaktor-Authentifizierung eingesetzt werden, wird nachfolgend beschrieben.
Die Bedeutung der Authentifizierung für die IT-Sicherheit
Authentifizierung ist von großer Bedeutung, da sie es Organisationen ermöglicht, ihre Netzwerke zu schützen, indem sie nur authentifizierten Benutzern (oder Prozessen) den Zugriff auf ihre geschützten Ressourcen erlaubt. Hierzu können Computersysteme, Netzwerke, Datenbanken, Websites und andere netzwerkbasierte Dienste oder Anwendungen gehören.
Nach der Authentifizierung wird ein Benutzer oder ein Dienst in der Regel dem Prozess der Autorisierung unterzogen. Dabei wird festgestellt, ob die authentifizierte Entität der Zugriff auf eine geschützte Ressource oder ein geschütztes System gestattet werden soll. Ein Benutzer kann authentifiziert werden, aber keinen Zugriff auf eine Ressource erhalten, wenn diesem Benutzer keine Berechtigung für den Zugriff erteilt wurde.
Die Begriffe Authentifizierung und Autorisierung werden oft synonym verwendet, obwohl sie oft zusammen implementiert werden und unterschiedliche Funktionen abbilden. Die Authentifizierung ist der Prozess der Überprüfung der Identität eines registrierten Benutzers, bevor der Zugriff auf die geschützte Ressource erlaubt wird. Bei der Autorisierung wird überprüft, ob dem authentifizierten Benutzer die Erlaubnis erteilt wurde, auf die angeforderten Ressourcen zuzugreifen. Der Prozess, durch den der Zugriff auf diese Ressourcen auf eine bestimmte Anzahl von Benutzern beschränkt wird, wird als Zugriffskontrolle bezeichnet. Der Authentifizierungsprozess findet immer vor dem Autorisierungsprozess statt.
Wie Authentifizierung eingesetzt wird
Üblicherweise erfolgt die Nutzer-Authentifizierung bei den meisten Interaktionen zwischen Mensch und Computer. Davon ausgenommen sind Gastkonten, automatische Anmeldungen oder Systeme im Kioskmodus. Üblicherweise muss ein Anwender einen Benutzernamen oder eine Benutzer-ID wählen und ein gültiges Kennwort eingeben, um ein System verwenden zu können. Die Nutzer-Authentifizierung autorisiert Mensch-zu-Maschine-Interaktionen in Betriebssystemen und Anwendungen, um den Zugriff auf Systeme, Anwendungen und Ressourcen zu ermöglichen.
Unternehmen verwenden ebenfalls Authentifizierung, wenn sich Nutzer auf den Websites der Unternehmen anmelden. Ohne die richtigen Sicherheitsmaßnahmen können sensible Daten der Anwender wie Kreditkartennummern leichter in die Hände von Cyberkriminellen gelangen.
Im Unternehmensalltag wird Authentifizierung eingesetzt, um zu kontrollieren, welche Benutzer Zugriff auf Unternehmensnetzwerke und -ressourcen haben. Ebenso kann so identifiziert und kontrolliert werden, welche Systeme, Server und Dienste Zugriff auf Ressourcen haben.
In Unternehmen und anderen Organisationen kann die Authentifizierung über ein Single-Sign-On-System (SSO) erfolgen, dass den Zugriff auf mehrere Systeme mit einem einzigen Satz von Anmeldedaten ermöglicht.
So funktioniert Authentifizierung
Während der Authentifizierung werden die vom Benutzer angegebenen Anmeldeinformationen mit denen verglichen, die in einer Datenbank mit Informationen über autorisierte Benutzer entweder im lokalen Betriebssystem oder über einen Authentifizierungsserver gespeichert sind. Wenn die Anmeldeinformationen übereinstimmen und die authentifizierte Entität berechtigt ist, die Ressource zu verwenden, wird der Vorgang abgeschlossen und der Benutzer erhält Zugriff. Die zurückgelieferten Berechtigungen und Ordner definieren sowohl die Umgebung, die der Benutzer sieht, als auch die Art und Weise, wie er mit ihr interagieren kann. Dies kann unter anderem die Dauer des erlaubten Zugriffs umfassen, wie auch beispielsweise die Menge des zur Verfügung stehenden Speicherplatzes.
Traditionell wurde die Authentifizierung durch die Systeme oder Ressourcen, auf die zugegriffen wird, durchgeführt. Beispielsweise würde ein Server Benutzer mit seinem eigenen, lokal implementierten Kennwortsystem authentifizieren, das Anmelde-IDs (Benutzernamen) und Kennwörter verwendet. Jeder Benutzer registriert sich zunächst (oder wird von einem Admin registriert) und verwendet ein zugewiesenes und selbst gewähltes Kennwort. Bei jeder weiteren Anmeldung muss der Benutzer das zuvor angegebene Kennwort kennen und verwenden.
Die gängigen Protokolle des Web, HTTP und HTTPS, sind jedoch zustandslos, das heißt eine strenge Authentifizierung würde bedeuten, dass Endanwender sich jedes Mal neu authentifizieren müssen, wenn sie über HTTPS auf eine Ressource zugreifen. Anstatt Anwender bei jeder Interaktion über das Web mit diesem Prozess zu belasten, verlassen sich geschützte Systeme oft auf eine Token-basierte Authentifizierung. Bei dieser wird die Authentifizierung einmal zu Beginn einer Sitzung durchgeführt. Das authentifizierende System gibt ein signiertes Authentifizierungs-Token an die Endbenutzeranwendung aus, und dieser Token wird an jede Anfrage des Clients angehängt.
Die Authentifizierung von Entitäten für Systeme und Prozesse kann mithilfe von Maschinenzugangsdaten erfolgen, die wie die ID und das Passwort eines Benutzers funktionieren, mit dem Unterschied, dass die Zugangsdaten (Credentials) automatisch vom jeweiligen Gerät übermittelt werden. Sie können auch digitale Zertifikate verwenden, die von einer Zertifizierungsstelle als Teil einer Public-Key-Infrastruktur ausgestellt und verifiziert wurden, um eine Identität beim Austausch von Informationen über das Internet zu authentifizieren.
Authentifizierungsfaktoren
Die Authentifizierung eines Benutzers mit einer Benutzer-ID und einem Kennwort wird in der Regel als einfachste Art der Authentifizierung angesehen. Diese hängt davon ab, dass der Anwender zwei Informationen kennt: Die Benutzer-ID oder den Benutzernamen und das Kennwort. Da sich diese Art der Authentifizierung auf nur einen Authentifizierungsfaktor stützt handelt es sich um eine Single-Faktor-Authentifizierung (SFA).
Starke Authentifizierung ist ein Begriff, der nicht formell definiert ist. Üblicherweise spricht man von starker Authentifizierung, wenn dies bedeutet, dass die Art der Authentifizierung, die verwendet wird, zuverlässiger und widerstandsfähiger gegen Angriffe ist. Um dies zu erreichen ist allgemeiner Konsens, dass mindestens zwei verschiedene Arten von Authentifizierungsfaktoren verwendet werden müssen.
Ein Authentifizierungsfaktor sind Daten oder ein Attribut, das verwendet werden kann, um einen Benutzer zu authentifizieren, der Zugriff auf ein System anfordert. In der IT-Sicherheit spricht man davon, dass Authentifizierungsfaktoren „etwas sein können, das man weiß, etwas, das man hat oder etwas, das man ist.“ Diese drei Faktoren entsprechen dem Wissensfaktor, dem Besitzfaktor und dem Inhärenzfaktor. In den letzten Jahren wurden zusätzliche Faktoren vorgeschlagen und eingesetzt, wobei der Standort in vielen Fällen als vierter Faktor und die Zeit als fünfter Faktor dient.
Die gängigen Authentifizierungsfaktoren sind:
Faktor Wissen: „Etwas, das man weiß“. Der Wissensfaktor kann jeder Authentifizierungsfaktor sein, der aus Informationen besteht, die der Benutzer kennt. Zum Beispiel eine persönliche Identifikationsnummer (PIN), ein Benutzername, ein Passwort oder eine Antwort auf eine geheime Frage.
Faktor Besitz: „Etwas, das man hat“. Der Besitzfaktor kann jeder Berechtigungsnachweis sein, der auf Gegenständen basiert, die der Benutzer besitzen und bei sich tragen kann. Dazu gehören Hardwaregeräte wie ein Sicherheits-Token, ein Mobiltelefon, das verwendet wird, um eine Textnachricht zu akzeptieren oder eine Authentifizierungs-App auszuführen, die ein Einmalpasswort (OTP) oder eine PIN erzeugen kann.
Faktor Inhärenz: „Etwas, das man ist.“ Der Inhärenzfaktor basiert in der Regle auf einer Form der biometrischen Identifikation, einschließlich Fingerabdrücken, Gesichtserkennung oder einer anderen Form von biometrischen Daten.
Faktor Standort: „Wo man ist“. Auch wenn er weniger spezifisch ist, wird der Standortfaktor manchmal als Ergänzung zu den anderen Faktoren verwendet. Der Standort kann mit angemessener Genauigkeit von Geräten bestimmt werden, die mit GPS ausgestattet sind oder mit geringerer Genauigkeit durch die Überprüfung von Netzwerkrouten. Der Standortfaktor kann in der Regel nicht allein zur Authentifizierung verwendet werden, aber er kann die anderen Faktoren ergänzen. Dies, indem er eine Möglichkeit bietet, einige Anfragen auszuschließen. So kann er beispielsweise verhindern, dass ein Angreifer, der sich in einem entfernten geografischen Gebiet befindet, sich als Benutzer ausgibt, der sich normalerweise nur von zu Hause oder vom Büro vor Ort in der Organisation aus anmeldet.
Faktor Zeit: „Wann man sich authentifiziert.“. Wie der Standortfaktor, so ist auch der Zeitfaktor allein nicht ausreichend, aber er kann ein zusätzlicher Mechanismus sein, um Angreifer auszusortieren. Dies etwa, wenn diese versuchen, auf eine Ressource zu einer Zeit zuzugreifen, zu der diese Ressource nicht für den autorisierten Benutzer verfügbar ist. Wenn der Benutzer sich beispielsweise zuletzt um 12 Uhr mittags in den USA authentifiziert, würde ein Authentifizierungsversuch aus Asien eine Stunde später aufgrund der Kombination von Zeit und Standort abgelehnt werden.
Obwohl sie als zusätzliche Authentifizierungsfaktoren verwendet werden, reichen der Standort und die aktuelle Uhrzeit nicht aus, um einen Benutzer ohne mindestens einen der ersten drei Faktoren zu authentifizieren. Die Allgegenwart von Smartphones macht es deutlich leichter, das Thema Multifaktor-Authentifizierung für den Benutzer umzusetzen. Viele Smartphones sind mit GPS ausgerüstet, was ein angemessenes Vertrauen in die Bestätigung des Anmeldeortes ermöglicht.
Zwei-Faktor- und Multifaktor-Authentifizierung
Wird ein Authentifizierungsfaktor zum Authentifizierungsprozess hinzugefügt, verbessert dies normalerweise die Sicherheit. Starke Authentifizierung bezieht sich normalerweise auf eine Authentifizierung, die mindestens zwei Faktoren verwendet, wobei diese Faktoren von unterschiedlichem Typ sind. Die Unterscheidung ist wichtig, da sowohl der Benutzername als auch das Kennwort als Arten von Wissensfaktoren betrachtet werden. Daher handelt es sich hierbei um eine Single-Faktor-Authentifizierung. Gleiches gilt auch für Authentifizierungssysteme, die sich auf „Sicherheitsfragen“ verlassen. Diese sind ebenfalls etwas, dass der Benutzer weiß und kein zusätzlicher Authentifizierungsfaktor.
Bei der Zwei-Faktor-Authentifizierung kommt in der Regel der Wissensfaktor in Kombination mit einem biometrischen Faktor oder einem Besitzfaktor zum Einsatz. Multifaktor-Authentifizierung kann jede Art von Authentifizierung umfassen, die von zwei oder mehr Faktoren abhängt. Aber ein Authentifizierungsprozess, der ein Passwort plus zwei verschiedene Arten von biometrischen Merkmalen verwendet, würde nicht als Drei-Faktor-Authentifizierung (3FA) gelten. Dies wäre der Fall, wenn der Prozess einen Wissensfaktor, einen Besitzfaktor und einen Inhärenzfaktor erfordern würde. Systeme, die diese drei Faktoren plus einen geografischen oder zeitlichen Faktor erfordern, gelten gemeinhin als Beispiele für die Vier-Faktor-Authentifizierung (4FA).
Authentifizierung und Autorisierung
Die Autorisierung umfasst den Prozess, durch den ein Administrator authentifizierten Benutzern Rechte gewährt, sowie den Prozess der Überprüfung der Kontoberechtigungen, um zu überprüfen, ob dem Benutzer der Zugriff auf diese Ressourcen gewährt wurde. Die für das autorisierte Konto gewährten Privilegien und Einstellungen hängen von den Berechtigungen des Benutzers ab, die entweder lokal oder auf dem Authentifizierungsserver gespeichert sind. Die für alle diese Umgebungsvariablen definierten Einstellungen werden von einem Administrator festgelegt.
Systeme und Prozesse müssen möglicherweise auch ihre automatisierten Aktionen innerhalb eines Netzwerks autorisieren. Online-Backup-Dienste, Patch-Mechanismen und Update-Systeme sowie Fernüberwachung müssen sich alle sicher authentifizieren. Es muss sichergestellt sein, dass es sich bei jeder Interaktion um das autorisierte System und nicht um einen Angreifer handelt.
Verfahren zur Authentifizierung
Die traditionelle Authentifizierung hängt von der Verwendung einer Kennwortdatei ab, in der die Benutzer-IDs zusammen mit Hashwerten der zu jedem Benutzer gehörenden Kennwörter gespeichert sind. Bei der Anmeldung wird das vom Benutzer eingegebene Kennwort gehasht und mit einem Wert in der Kennwortdatei verglichen. Wenn die beiden Hashes übereinstimmen, wird der Benutzer authentifiziert.
Dieser Ansatz zur Authentifizierung hat mehrere Nachteile, insbesondere bei Ressourcen, die auf verschiedenen Systemen eingesetzt werden. Zum einen können die Angreifer, die in der Lage sind, auf die Passwortdatei eines Systems zuzugreifen, Brute-Force-Angriffe gegen die gehashten Kennwörter verwenden, um die Passwörter zu extrahieren. Zum anderen würde dieser Ansatz bei modernen Anwendungen, die über mehrere Systeme hinweg auf Ressourcen zugreifen, mehrere Authentifizierungen erfordern.
Die Schwächen der passwortbasierten Authentifizierung können bis zu einem gewissen Grad mit intelligenteren Benutzernamen und Passwortregeln wie Mindestlänge oder Vorgaben für die Komplexität behoben werden. Allerdings sind die passwortbasierte Authentifizierung und die wissensbasierte Authentifizierung anfälliger als Systeme, die mehrere unabhängige Methoden erfordern.
Zwei-Faktor-Authentifizierung (2FA): Die Zwei-Faktor-Authentifizierung fügt dem Prozess der Authentifizierung einer zusätzlichen Schutzebene hinzu. 2FA erfordert, dass ein Benutzer zusätzlich zum Passwort einen zweiten Authentifizierungsfaktor eingibt. 2FA-Systeme verlangen oft, dass der Benutzer einen Verifizierungscode eingibt, der er per Textnachricht auf einem vorregistrierten Mobiltelefon erhält, oder einen Code, der von einer Authentifizierungs-App generiert wird.
Multifaktor-Authentifizierung (MFA): Bei der Multifaktor-Authentifizierung müssen sich Benutzer mit mehr als einem Authentifizierungsfaktor authentifizieren, darunter beispielsweise ein biometrischer Faktor wie Gesichtserkennung oder ein Besitzfaktor wie ein Token von einer Authentifizierungs-App.
Einmalpasswort (OTP, One-time password): Ein Einmalpasswort ist eine automatisch generierte numerische oder alphanumerische Zeichenfolge, die einen Benutzer authentifiziert. Dieses Kennwort ist nur für eine Anmeldesitzung oder Transaktion gültig und wird in der Regel für neue Benutzer. Benutzer, die ihr Kennwort vergessen haben, erhalten ebenfalls häufig ein Einmalkennwort, um sich damit anzumelden und ein neues Passwort zu bestimmen.
Drei-Faktor-Authentifizierung (3FA): Die Drei-Faktor-Authentifizierung ist eine Art von MFA, die drei Authentifizierungsfaktoren verwendet. In der Regel einen Wissensfaktor (Passwort) kombiniert mit einem Besitzfaktor (Security-Token) und einem Inhärenzfaktor (biometrische Erkennung).
Biometrie: Während einige Authentifizierungssysteme ausschließlich auf biometrischer Identifizierung beruhen können, werden biometrische Daten normalerweise als zweiter oder dritter Authentifizierungsfaktor verwendet. Zu den gängigeren Arten der biometrischen Authentifizierung gehören Fingerabdruck-Scans, Gesichtserkennung oder Netzhaut-Scans.
Mobile Authentifizierung: Bei der mobilen Authentifizierung werden Benutzer über ihre Geräte oder die Geräte selbst verifiziert. Dadurch können sich Benutzer von überall aus an sicheren Orten und Ressourcen anmelden. Der Prozess der mobilen Authentifizierung beinhaltet eine Multifaktor-Authentifizierung, die Einmalpasswörter, biometrische Authentifizierung oder QR-Code-Validierung umfassen kann.
Kontinuierliche Authentifizierung: Bei der kontinuierlichen Authentifizierung wird ein Benutzer nicht entweder an- oder abgemeldet, sondern die Unternehmensanwendung berechnet kontinuierlich einen „Authentifizierungswert“, der misst, wie sicher sie ist, dass der Kontoinhaber die Person ist, die das Gerät verwendet.
API-Authentifizierung: Die Standardmethoden zur Verwaltung der API-Authentifizierung sind: HTTP-Basisauthentifizierung, API-Schlüssel und OAuth.
Bei der HTTP-Basisauthentifizierung fordert der Server Authentifizierungsinformationen, das heißt einen Benutzernamen und ein Passwort, von einem Client an. Der Client übergibt dann die Authentifizierungsinformationen in einem Autorisierungs-Header an den Server.
Bei der API-Schlüssel-Authentifizierungsmethode wird einem Erstbenutzer ein eindeutiger generierter Wert zugewiesen, der anzeigt, dass der Benutzer bekannt ist. Dann wird jedes Mal, wenn der Benutzer erneut versucht, das System zu nutzen, sein eindeutiger Schlüssel verwendet, um zu überprüfen, ob er derselbe Benutzer ist, der das System zuvor benutzt hat.
Open Authorization (OAuth) ist ein offener Standard für Token-basierte Authentifizierung und Autorisierung im Internet. OAuth ermöglicht die Nutzung der Kontoinformationen eines Benutzers durch Dienste von Drittanbietern, wie zum Beispiel Facebook, ohne das Passwort des Benutzers preiszugeben. OAuth agiert als Vermittler im Namen des Benutzers und stellt dem Dienst ein Zugriffs-Token zur Verfügung, das die Freigabe bestimmter Kontoinformationen erlaubt.
Nutzer-Authentifizierung und Maschinen-Authentifizierung
Auch Maschinen müssen ihre automatisierten Aktionen innerhalb eines Netzwerks autorisieren. Lösungen wie Backup-Dienste oder Patch-Tools müssen sich alle sicher authentifizieren, um zu verifizieren, dass es sich um die autorisierten Lösungen und nicht um Angreifer handelt.
Dabei können die Systeme mit Zugangsdaten arbeiten, ganz ähnliche wie menschliche Anwender, die in diesem Fall nur von der Maschine übermittelt werden. Die Maschinen können auch digitale Zertifikate verwenden, die von einer Zertifizierungsstelle als Teil einer Public-Key-Infrastruktur (PKI) ausgestellt und verifiziert werden, um die Identifikation beim Austausch von Informationen über das Internet nachzuweisen, wie eine Art digitales Passwort.
Mit der zunehmenden Anzahl internetfähiger Geräte ist eine zuverlässige Maschinen-Authentifizierung von entscheidender Bedeutung, um eine sichere Kommunikation für die Heimautomatisierung und andere IoT-Anwendungen (Internet of Things) zu ermöglichen. Bei derlei Einsatzgebieten ist fast jede Entität und jedes Objekt adressierbar und kann Daten über ein Netzwerk austauschen. Man muss sich vergegenwärtigen, dass jeder Zugangspunkt ein potenzielle Einbruchsort ist. Jedes vernetzte Gerät benötigt eine starke Maschinen-Authentifizierung. Außerdem müssen diese Geräte trotz ihrer normalerweise begrenzten Aktivität auch für den Zugriff mit eingeschränkten Berechtigungen konfiguriert werden, um für den Falle eines Falles den Schaden, der angerichtet werden kann, zu begrenzen.