Frage:
Authentifizierung vs Autorisierung
Sachin Yadav
2019-10-23 20:54:35 UTC
view on stackexchange narkive permalink

Ich habe auf diesen Link verwiesen und weiß, dass

Authentifizierung = Login + Passwort (wer Sie sind)

Autorisierung = Berechtigungen ( Was Sie tun dürfen)

Meine Frage lautet: Angenommen, A erhält die Anmelde-ID und das Kennwort von B mit höherer Berechtigung als A würde dies die Autorisierung gefährden, da A, sobald A fälschlicherweise als B authentifiziert wurde, alle Zugriffsrechte von B erhält.

Worum geht es also bei der Autorisierung?

Ist es das? abhängig oder unabhängig von der Authentifizierung?

Lassen Sie uns das Skript ein wenig umdrehen - es gibt Benutzer ** C **.Dieser Benutzer wird befördert und darf mehr im System tun.Wenn Sie keine separaten Berechtigungen haben, müssen Sie auf dem System einen völlig anderen Benutzer für diese erstellen.Dann haben Sie Benutzer ** D **, der herabgestuft wird.Sie schreien, einige ihrer Rechte am System wegzunehmen.Ohne Autorisierung können Sie dies nicht tun * und * lassen Sie sie weiterhin dieselbe Anmeldung für das System verwenden.
Ein theoretisches System, das nur ein Authentifizierungssystem, aber kein Autorisierungssystem hatte, wäre ein System, mit dem jeder auf alles zugreifen kann.Jeder ist ein Superuser des Systems und kann alles ändern, was im System geändert werden kann, einschließlich des Vorgebens, ein anderer Benutzer zu sein, und des Änderns der Daten eines anderen Benutzers.
Zwölf antworten:
ThoriumBR
2019-10-23 21:43:47 UTC
view on stackexchange narkive permalink

Sobald A fälschlicherweise als B authentifiziert wurde ...

Auf einem minimal sicheren System ist dies nicht der Fall. Aus Sicht des Systems authentifiziert sich Benutzer B selbst und nicht Benutzer A . Es wurde nicht falsch authentifiziert, es wurde das echte Login und Passwort verwendet. Es ist ein einfacher Fall von Diebstahl von Anmeldeinformationen. Sie können das System mit jeder Form von 2FA härten, aber das System funktioniert wie vorgesehen.

Es würde fälschlicherweise authentifiziert, wie Sie sagten, wenn Benutzer A seine eigenen Anmeldeinformationen verwendet und irgendwie endet mit dem Profil von Benutzer B . In diesem Fall kann es sich bei dem Angriff um eine Authentifizierungsumgehung oder eine Eskalation von Berechtigungen handeln, und das System muss gepatcht werden.

Worum geht es also bei der Autorisierung?

Berechtigungen trennen, je nachdem, wer Sie sind. Wenn jemand Ihre Anmeldeinformationen verwenden kann, sind es im Wesentlichen Sie. Die Autorisierung bleibt also bestehen.

Ist sie abhängig oder unabhängig von der Authentifizierung?

Sie ist unabhängig ( Viele Autorisierungssysteme sind jedoch auf Authentifizierungsinformationen angewiesen. Bei Authentifizierungen geht es darum, wer Sie sind. Autorisierung ist, welche Privilegien Sie haben. Single Sign-On-Systeme werden beispielsweise zum Erzwingen der Identität verwendet, und ein anderes System muss zum Erzwingen von Berechtigungen verwendet werden.

Ich wollte dasselbe kommentieren.Wenn Sie sich tatsächlich als ein anderer Benutzer authentifizieren können, ohne eine andere Sicherheitsanfälligkeit auszunutzen, die dies tatsächlich ermöglicht hat, gibt es in der Anwendung kein Authentifizierungs- oder Autorisierungsproblem. Wenn es Ihnen mit Ihrem Benutzer A gelingt, Benutzer B und Benutzerpasswort zu erwerben und DANN diese Anmeldeinformationen zur Authentifizierung zu verwenden, haben Sie ein Autorisierungsproblem festgestellt, da Sie beim Zugriff von A zu B eskalieren konnten (höhere Autorisierung).
Tangentialer Hinweis: Dies erinnert mich immer an den Fehlercode "401 Unauthorized" und ärgert mich, dass es sich nicht um "401 Unauthenticated" handelt.
@Drew Unauthorized ist technisch korrekt.Bei den meisten HTTP-Anforderungen wird davon ausgegangen, dass anonyme Benutzer zugelassen werden.Daher sind anonyme Benutzer nicht berechtigt, auf diese Ressource zuzugreifen.Wie Sie autorisiert werden können, ist tangential und liegt außerhalb des Bereichs der Antwort.
@Vality Sollte das nicht verboten sein?(Was dann auch als 403 unautorisiert bezeichnet werden sollte.)
@Drew Forbidden ist noch vager.Dies könnte bedeuten, dass die Ressource in Ihrem Land blockiert ist. Dies kann bedeuten, dass sie blockiert wurde, weil sie Ihren Browser nicht mögen.Oder sogar, weil sie IP-Adressen, die mit einer 6 enden, nicht erlauben, darauf zuzugreifen.Nicht autorisiert bedeutet ausdrücklich, dass es um Ihre Identität geht. Verboten bedeutet nur aus irgendeinem Grund, dass Sie es nicht sehen dürfen, aber der Grund könnte nichts über Sie sein
@Vality Das macht Sinn.Ich weiß nicht, es ist immer noch ein bisschen unbefriedigend für mich, da der Fall, in dem Sie authentifiziert, aber nicht autorisiert sind, sich von der Nichtauthentifizierung unterscheidet und daher separate Statuscodes verdienen.
amit thakur
2019-10-23 21:49:59 UTC
view on stackexchange narkive permalink

Autorisierung und Authentifizierung sind zwei Seiten derselben Medaille, bei denen die Autorisierung manchmal von der Authentifizierung abhängt, jedoch nicht immer. Wie?

  1. Auch ohne Login kann ein Besucher von Stack Exchange Fragen und Antworten anzeigen. Hier hat der Besucher die Berechtigung, Antworten anzuzeigen, benötigt dafür jedoch sicherlich keine Authentifizierung. Daher ist die Berechtigung hier unabhängig von der Authentifizierung.

  2. Ein angemeldeter Benutzer hat die Berechtigung, Antworten zu veröffentlichen Fragen stellen oder eine Frage beantworten, aber dafür müssen sie eine ordnungsgemäße Anmeldung bereitstellen. Daher hängt die Autorisierung hier von der Authentifizierung ab.

  3. ol>

    Kurz gesagt, wenn die Authentifizierung beeinträchtigt ist, wird dies natürlich der Fall sein behindern auch die Autorisierung.

Medievalist
2019-10-24 22:54:30 UTC
view on stackexchange narkive permalink

Im Allgemeinen ist es eine gute Idee, alle vier As (Authentifizierung, Autorisierung / Zugriffskontrolle, Buchhaltung, Prüfung) und nicht nur zwei zu berücksichtigen.

Es gibt keine Authentifizierungsmethode, die zuverlässig entgegenwirken kann Bei der 5-Dollar-Schraubenschlüssel-Methode (wie von der Webcomic-XKCD beschrieben, schlagen Sie jemanden mit einem 5-Dollar-Schraubenschlüssel, bis er sich für Sie anmeldet), obwohl es Methoden (wie Passcode + 1) gibt, die das System darauf hinweisen können, dass der 5-Dollar-Schraubenschlüssel vorhanden ist benutzt. Es ist eine böse Welt.

Authentifizierung ist der einzige Schritt, der nicht von den anderen abhängig ist. Das heißt, es muss zuerst kommen. Die Authentifizierung kann explizit (sagen Sie mir, wer Sie sind) oder implizit (ich sehe anhand Ihrer Hardware-Zertifikate, dass Sie sich im Bunker angemeldet haben) sein. Sie können sich als Einzelperson (Berater Rin) oder als "Rolle" (beliebiger Mordbot) authentifizieren. Gesetzlich regulierte Unternehmen müssen fast immer eine explizite individuelle Authentifizierung verwenden, damit die Prüfung eine Chance hat, zu funktionieren. Wenn ein Gruppen- oder Rollenkonto erforderlich erscheint, stimmt wahrscheinlich etwas mit Ihrem Verständnis des Problems nicht, da es eine andere Lösung gibt, die Sie einfach nicht sehen.

Autorisierung (wird häufig als Zugriffskontrolle bezeichnet, weil dies der Fall ist Authentifizierung und Autorisierung beim Sprechen zu verwechseln ist die Gewährung von Rechten an einem Prozess (angemeldete Benutzer sind aus Sicht des Prozessors nur ein weiterer Prozess) basierend auf ihrer Authentifizierung. Wenn Sie beispielsweise J. Random Lusr sind, haben Sie möglicherweise nur das Recht, Dateien in Ihrem Home-Ordner zu erstellen. Wenn Sie jedoch Biff Snidely, ein Unternehmensaristokrat, sind, haben Sie möglicherweise auch das Recht, Dateien in einem freigegebenen Abteilungsordner zu erstellen. Möglicherweise unterliegen Sie Einschränkungen hinsichtlich des Speicherplatzes oder anderer Ressourcen oder nicht.

Buchhaltung ist im Grunde die Aufzeichnung der Ressourcen, die ein angemeldeter Prozess verwendet hat - es kann sehr einfach (Joe hat heute 1000 Prozessorzyklen verwendet und 1 GB Speicher verwendet) oder sehr aufwendig (Biff hat diese Befehle in dieser Reihenfolge unter ausgegeben) sein genau diese Zeiten). Es ist die Grundlage der Prüfung. Eine extrem gute Buchhaltung sendet Daten vom System, so dass sie nicht aus dem lokalen System gelöscht werden können, wenn sie gehackt werden.

Die Überwachung ist lockerer definiert. Dies kann ein automatischer Prozess sein, der nach Versuchen Ausschau hält, Aktionen auszuführen, die der Benutzer nicht ausführen darf, oder es kann sich um ein Team von Gnomen handeln, die im Keller angekettet sind und über die Befehlsprotokolle des Tages blättern, oder was auch immer Sie sich sonst vorstellen können. Der Punkt der Prüfung ist, dass die Authentifizierung mit einem 5-Dollar-Schlüssel besiegt werden kann. Sie können also nicht einfach davon ausgehen, dass niemand Ihre Sicherheit verletzt hat, weil Ihre Benutzer über harte Passwörter verfügen. Sie können nicht einmal davon ausgehen, dass Ihre Benutzer nicht versehentlich einen Weg finden, die Zugriffskontrolle zu unterbrechen. Das passiert wirklich die ganze Zeit.

Neben der 5-Dollar-Schraubenschlüssel-Methode gibt es auch die diskrete Umschlagmethode, die zwar etwas teurer ist (oder nicht; Träger von 5-Dollar-Schraubenschlüsseln kosten zwar ziemlich viel), die Warnungen jedoch vermeidet, da der Benutzer ihre Berechtigungen bereitwillig missbrauchtin diesem Fall (und vielen anderen).
Guter Punkt, @JanHudec!Es gibt auch Schulter-Surfen und viele andere Mittel ... Ich habe versucht, einen umfassenden Überblick zu erhalten, damit der Fragesteller den Nirvana-Irrtum (https://en.wikipedia.org/wiki/Nirvana_fallacy) in der Frage impliziert sieht, und ich mussteein Detail verlieren!: D.
Amit
2019-10-24 00:45:46 UTC
view on stackexchange narkive permalink

Eine andere zu berücksichtigende Sache ist auch die Annahme, die das OP macht: "Sobald A fälschlicherweise als B authentifiziert wird, erhält A alle Zugriffsrechte von B." Dies ist nicht unbedingt in allen Systemen und Anwendungsfällen korrekt.

In einem System mit einem Workflow mit doppelter Steuerung muss ich mich beispielsweise zuerst authentifizieren, dann aber auch eine Berechtigung für eine bestimmte Ressource von ihrem Eigentümer erhalten. Der Eigentümer kann mir diese Autorisierung nach vielen anderen Faktoren gewähren oder nicht, außer dass ich authentifiziert bin. Beispielsweise sollte auf einige Ressourcen nur zu bestimmten Tageszeiten zugegriffen werden.

Eine gute Analogie, die ich gewohnt bin Denken Sie über das Thema nach:

    Authentifizierung ist wie eine Schlüsselkarte für ein Gebäude.

  1. Autorisierung ist, in welchen Räumen Das Gebäude, auf das ich zugreifen kann, wenn ich drin bin, insbesondere wenn meine Gebäudekarte gestohlen wurde und ich mich einem Raum nähere, der von jemandem bewacht wird, der mich nicht erkennt, darf ich möglicherweise nicht hinein :)

  2. ol>
Sean E. M.
2019-10-23 21:05:06 UTC
view on stackexchange narkive permalink

Ihre Frage unterstreicht die Notwendigkeit robuster Authentifizierungsmechanismen und den Grund, warum viele das Passwort seit einiger Zeit als "tot" betrachten. Dies ist auch der Grund, warum die Multi-Faktor-Authentifizierung zunehmend akzeptiert wird.

Lassen Sie uns Ihre Frage jedoch umdrehen: Angenommen, eine Organisation verfügt über ein System, das finanzielle HR-, Verwaltungs- und andere Informationen hostet. Jetzt ist Person A authentifiziert (korrekt) und berechtigt, nur Verwaltungsinformationen anzuzeigen. Wenn wir Ihr Argument aufgreifen und sagen würden: "Nun, wir können unserer Authentifizierung nicht vertrauen, also kümmern wir uns nicht um die Autorisierung." Sie würden der Person A Zugriff auf finanzielle HR-Daten gewähren, auch wenn sie nicht berechtigt sein sollte, diese zu sehen.

Rob F
2019-10-24 22:07:47 UTC
view on stackexchange narkive permalink

Die Authentifizierung beantwortet diese Frage: Sind Sie der, von dem Sie sagen, dass Sie er sind? Zahlreiche Möglichkeiten dazu, aber wie ist irrelevant. Einige Wege sind offensichtlich effektiver oder zuverlässiger als andere. Sie können es auch als zwei Fragen betrachten: Wer sind Sie? Wie kann ich sicher sein?

Die Autorisierung beantwortet eine der folgenden Fragen: Was dürfen Sie tun? Dürfen Sie X machen? Sie können dies ohne Authentifizierung tun, aber warum sollten Sie? Was ist der Sinn?

Bahrom
2019-10-24 23:21:31 UTC
view on stackexchange narkive permalink

Für mich lautet die einfachste Erklärung wie folgt:

Die Authentifizierung teilt dem System mit, wer Sie sind. Die Autorisierung teilt dem System mit, was Sie tun können.

Wenn Client A die Anmeldung und das Kennwort von B erhalten hat und es geschafft hat, sich zu authentifizieren Als B ist A in jeder Hinsicht B und autorisiert um zu tun, was B kann.

Obwohl die Autorisierung unabhängig von der Authentifizierung funktioniert, würde ich argumentieren, dass die Authentifizierung eine Voraussetzung für die Autorisierung ist - wie kann das System wissen, was Sie tun können, wenn es weiß nicht, wer du bist?

s h a a n
2019-10-23 21:26:34 UTC
view on stackexchange narkive permalink

Autorisierung / Autorisierung hängt von der Authentifizierung ab, es handelt sich jedoch immer noch um völlig unterschiedliche Konzepte, da die Authentifizierungsmethoden je nach Autorisierungsstufe variieren.

Möglicherweise können Sie die Authentifizierung umgehen und sich wie gewohnt autorisieren Benutzer, aber um den Root-Zugriff zu erreichen, müssen Sie möglicherweise eine Multi-Faktor-Authentifizierung durchführen.

YLearn
2019-10-24 04:19:50 UTC
view on stackexchange narkive permalink

Meine Frage lautet: Angenommen, A erhält die Anmelde-ID und das Kennwort von B, das eine höhere Berechtigung als A hat. Dies würde die Autorisierung gefährden, da A nach der falschen Authentifizierung als B alle Zugriffsrechte von B erhält.

Nicht unbedingt. Die Autorisierung kann an eine beliebige Anzahl von Dingen gebunden werden. Beispielsweise kann Benutzer B je nach Gerätetyp (Computer vs. Mobilgerät) unterschiedliche Berechtigungsprofile erhalten. Oder sie haben unterschiedliche Profile, je nachdem, wie sie mit dem Netzwerk verbunden sind (verkabelt vs. drahtlos vs. VPN, Unternehmenszentrale vs. Zweigstelle usw.). Als letztes Beispiel kann das Datum / die Uhrzeit bestimmen, welches Berechtigungsprofil auf den Benutzer angewendet wird.

Nur weil Benutzer A Benutzer B verwenden kann Die Anmeldeinformationen von em> bedeuten nicht unbedingt, dass sie dieselben Berechtigungen erhalten.

Worum geht es also bei der Autorisierung?

Dies ist zulässig Sie müssen zentral verwalten, was ein Benutzer / Gerät in Abhängigkeit von einer Vielzahl von Faktoren tun kann. Sie können damit Berechtigungen konsistent und zuverlässiger auf Benutzer anwenden.

Angenommen, die Aufgaben eines Mitarbeiters ändern sich (sie werden befördert, die Position wird geändert usw.), und Sie müssen die Berechtigungen anpassen. Sie können dies tun, indem Sie jede Ressource "berühren", deren Berechtigungen geändert werden müssen. Wenn alle diese Ressourcen einen zentralen AAA-Server verwenden, erhalten sie durch einfaches zentrales Ändern der Berechtigungen diese Berechtigungen schnell und einfach (und sind weniger anfällig für fehlende Ressourcen oder menschliches Versagen bei sich wiederholenden Änderungen). Oft ist dies so einfach wie das Ändern / Hinzufügen einer Gruppenmitgliedschaft zu ihrem Benutzerkonto.

Oder sagen Sie, Sie haben mehrere Mitarbeiter, die dieselben Berechtigungen haben sollten. Sie können alle dasselbe Berechtigungsprofil verwenden. Wiederum einfacher zu verwalten und sicherzustellen, dass alle ihre Erfahrungen konsistent sind.

Ist es abhängig oder unabhängig von der Authentifizierung?

In gewisser Hinsicht beides. Die Autorisierung erfolgt nach der Authentifizierung, sodass sie einerseits erst stattfindet, wenn die Authentifizierung erfolgt (auch wenn es sich um eine "offene Authentifizierung" handelt).

Andererseits ist die Autorisierung eine völlig separate Prozess als Authentifizierung. Die Authentifizierung kann bestimmen, welches Berechtigungsprofil angewendet wird oder nicht.

Anscheinend beantworten Sie eine andere Frage, nämlich "Was ist der Vorteil einer zentralisierten Autorisierung?".Die Autorisierung ist nicht unbedingt zentralisiert (obwohl dies oft eine gute Idee ist).
@sleske,, ob zentral oder lokal, die meisten Antworten gelten immer noch.Sie können lokalisierte Richtlinien bereitstellen, die für Benutzergruppen gelten.Diese sind beim Skalieren weitaus anfälliger für menschliche Fehler und Probleme als zentralisierte Lösungen, wenn Sie über eine zunehmende Anzahl von Ressourcen replizieren.Darüber hinaus bieten zentralisierte Lösungen in der Regel mehr Möglichkeiten zur Erstellung sehr spezifischer Richtlinien, die auf einer größeren Anzahl von Kriterien basieren als lokale Lösungen.Ehrlich gesagt kenne ich nur sehr wenige Skalenorganisationen, die keine zentralisierte AAA verwenden (selbst wenn es sich nur um MS AD handelt).
Captain Man
2019-10-25 20:34:51 UTC
view on stackexchange narkive permalink

Ihre Hypothese macht nicht wirklich Sinn. Sie sagen, dass etwas kompromittiert ist, weil jemand die Anmeldeinformationen eines anderen hat, die mehr Autorität haben als seine eigenen. Es ist nur deshalb kompromittiert, weil jemand allein die Anmeldeinformationen eines anderen hat. Es sollte keine Rolle spielen, ob sie über eine höhere, dieselbe oder eine geringere Berechtigung verfügen.

Stellen Sie sich eine Situation vor, in der ein Administrator die Anmeldeinformationen eines regulären Benutzers erhält. Jetzt können sie sich als dieser Benutzer ausgeben. Früher konnten sie vielleicht Dinge "als" dieser Benutzer tun, aber vermutlich gibt es irgendwo Protokolle, die jemand prüfen konnte, um festzustellen, dass es sich um den Administrator handelte, der als Benutzer fungierte. Wenn jedoch jemand über die Anmeldeinformationen dieses Benutzers verfügt, wird in den Protokollen angezeigt, dass es sich um den Benutzer handelt.

Der Autorisierungspunkt bleibt weiterhin bestehen. Verschiedene Benutzer müssen in der Lage sein, verschiedene Dinge und ohne Berechtigung auszuführen, die nicht ausgeführt werden können.

Wie amit thakur in ihrer Antwort sagt, haben selbst nicht authentifizierte Benutzer die Berechtigung, einige Aufgaben wie auszuführen Anzeigen von Fragen und Antworten auf dieser Website, wenn Sie nicht angemeldet sind. Autorisierung und Authentifizierung sind also getrennte Konzepte, aber eng miteinander verbunden.

codein
2019-10-25 22:44:42 UTC
view on stackexchange narkive permalink

Stellen Sie sich vor, Sie wohnen in einem Gebäude mit vielen Wohnungen. Der Sicherheitsmann am Gate weiß, dass Sie tatsächlich dort wohnen, weiß aber nicht genau, in welcher Wohnung Sie wohnen. Die Authentifizierung erfolgt an dem Punkt, an dem der Sicherheitsmann Sie als lebenden Personen identifiziert im Gebäude und erlauben Ihnen, hineinzugehen.

Wenn Sie jedoch Zutritt zum Gebäude erhalten, bedeutet dies nicht, dass Sie eine Wohnung betreten können, die Sie sehen. Daher erfolgt die Autorisierung, wenn Sie auf Ihre eigene Wohnung zugreifen, da Sie für diesen Zugriff zugelassen wurden.

Josefictuous
2019-10-23 22:38:13 UTC
view on stackexchange narkive permalink

(möglicherweise unpopuläre Meinung voraus!)
In einem bestimmten Aspekt kann die Autorisierung als erhöhte Authentifizierung angesehen werden. Eine Authentifizierung ist eine Validierung der Identität, und eine Autorisierung ist eine Validierung ihrer Attribute.

In der PKI arbeiten Attributzertifikate Hand in Hand mit Identitätszertifikaten, um die Authentifizierung und dann die Autorisierung bereitzustellen. Ein Identitätszertifikat ist wie der Reisepass und ein Attributzertifikat ist wie das Visum.

"Autorisierung ist eine Validierung ihrer Attribute" Ihre Antwort hängt von dieser Zeile ab, ist aber ungeklärt.Das PKI-Beispiel ist eine Logikschleife, da "Attributzertifikate" bei Verwendung für die Autorisierung als "Autorisierungszertifikate" bezeichnet werden.Dies macht dies nicht zu einer Meinung und damit auch nicht zu einer unpopulären Meinung, da Sie den RFC zitieren, aber es macht diese Antwort ohne weitere Erklärung ziemlich nebulös.


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 4.0-Lizenz, unter der er vertrieben wird.
Loading...