Wie wird bei einer Nutzer-Anmeldung verfahren?
<2015-01-26>
Für die Erledigung einiger Aufgaben bei der Nutzung und Steuerung eines openWIM-Systems ist eine Nutzeranmeldung notwendig. Hier soll erläutert werden, wie das technisch organisiert ist.
Vorbemerkungen:

Einige Aktionen im openWIM-System dürfen nur von dafür berechtigten Personen durchgeführt werden. So darf beispielsweise nicht jeder einfach das System herunterfahren oder konfigurieren oder dargestellte Inhalte ändern können.

Es muss dafür gesorgt werden, dass der Anmeldevorgang sicher genug ist und möglichst wenige Daten zu den Nutzeraktionen missbräuchlich genutzt werden können. Dafür wird vor allem versucht, Daten möglichst gar nicht erst anfallen bzw. übertragen zu lassen, und wenn das nicht vermeidbar ist, Daten zu verschlüsseln. Anfangs werden jedoch noch keine wirklich "sicheren" Verschlüsselungaverfahren eingesetzt - doch eine "schwache" Verschlüsselung ist schon mal besser wie gar keine!

1. Ablauf beim Login-Vorgang:

Anforderungen an das Verfahren:

  • Die Nutzerkennung soll vertraulich bleiben. Sowohl beim Mitlesen der Übertragung als auch auf dem Server soll sie möglichst schwer rückrechenbar sein. Die Verwendung einer identischen Nutzerkennung bei verschiedenen Projekten bzw. Internetpräsenzen soll bei der Datenübertragung und -speicherung möglichst schwierig erkennbar sein.
  • Außer der weit verbreiteten Nutzung von Passwort-Eingaben müssen auch andere Autorisierungsverfahren möglich sein. Die Nutzer sollten das zu verwendende Verfahren möglichst selber auswählen können.
  • Das Nutzer-Passwort (oder der Wert einer anderen Art von Sicherungs-Code) dürfen den Browser beim Login-Vorgang nur in schwer entschlüsselbarer Form verlassen. Der übertragene Autorisierungs-Wert soll bei jedem Login-Vorgang anders aussehen.
  • Auf Nutzerwunsch hin soll die Sicherung des Login auch geräteabhängig durchgeführt werden können, um bei Passwort-Diebstahl und Eingabe an einem "fremden" Gerät eine Anmeldung zu verhindern.
  • Der Login-Vorgang muss in angemessener Zeit abgeschlossen werden, damit ein teilfertiges Login nicht missbraucht werden kann.
  • Sobald ein Login-Vorgang abgschlossen ist oder abgebrochen wurde, sollen auf dem Server keine der speziellen übertragenen Daten mehr gespeichert sein.
  • ...
  • "Brute force"-Methoden zum Ausprobieren vieler Passworte etc. müssen ausreichend ausgebremst sein.
  • Es muss davon ausgegangen werden, dass ein Client-Script von böswilligen Hackern so modifiziert wird, dass es zum Knacken von Passworten etc. eingesetzt wird. Der Server muss das abfangen können.
  • Es ist zu berücksichtigen, dass alle im Server und Client verwendeten Verfahren einschließlich der dafür vorhandenen technischen Dokumentation "öffentlich zugänglich" und nicht "geheim" sind.
  • Das Login-Verfahren wird nicht von Anfang an mit den maximal möglichen Sicherheitsvorkehrungen implementiert. Es muss weiterhin auch offen für Verbesserungen und den unvorhergesehenen plötzlichen Ausfall eines Verfahrens gerüstet sein.

Ein Login-Vorgang läuft in mehreren Phasen ab und ist ein Wechselspiel zwischen Nutzer, Client (= Browser) und (Frontend-)Server:

  1. Der Anmeldevorgang wird initiert. Das geschieht entweder implizit durch den Aufruf einer Aktion, für die eine Nutzeranmeldung notwendig ist oder auch durch einen expliziten Login-Aufruf.
  2. Parallel zur initialen Anzeige des Login-Dialogs wird automatisch eine Anfrage nach einer Vorgangskennung an den Server geschickt. Dabei wird der aktuelle Zeitpunkt mitgeschickt und temporär für den weiteren Login-Vorgang im Server gemerkt.
    Beim Login-Dialog kann derweil vom Nutzer ausgewählt werden, ob zur Verifikation ein Passwort eingegeben oder (sofern möglich) ein anderes Verifizierungsverfahren verwendet werden soll. Auch Nutzerkennung und Passwort (bzw. äquivalente AKtionen) können bereits eingegeben werden.
  3. Vom Server wird als Antwort ein Zufallswert als Vorgangskennung gesendet und temporär gespeichert.
    Der vom Client gelieferte Zeitpunkt wird auf ausreichende Aktualität überprüft und zum Vorgang vermerkt. Ist der Zeitpunkt "unbrauchbar", wird die Vorgangsanfrage mitsamt Benstandungsgrund zurückgewiesen und die IP-Adresse des Client auf "Vorsicht" und "gegebenenfalls Ausbremsen" gesetzt.
  4. Vom Nutzer wird beim dargestellten Dialog die Angabe der Nutzerkennung erbeten. Das kann ein (nicht zu kurzer!) x-beliebiger Zeichenstring sein. Diese Eingabe sollte möglichst gegen Ausspähen geschützt werden.
    Weiterhin ist das Nutzer-Passwort einzugeben bzw. ein Autorisierungscode auf Basis eines anderen gewählten Verfahrens zu erzeugen. Dieses ist besonders gut gegen Ausspähen zu schützen!
  5. Ist die zuvor automatisch beim Server angeforderte Vorgangskennung eingetroffen, wird der Knopf zum Abschicken des Logins freigegeben.
    Mit Betätigen des "Login"-Knopfes wird die Nutzerkennung mit dem Projektnamen zusammengefügt und "gequirlt" (also systematisch verfremdet und auf ein "Einheitsformat" gebracht, dessen Wert auch so im Server abgelegt ist) und dann zusammen mit der Vorgangskennung zum Server geschickt.
    Weiterhin wird der eingegebene Autorisierungscode mit der Vorgangskennung möglichst schwer rückrechenbar kombiniert, in ein Standardformat gebracht und dann mit zum Server geschickt.
    Soll eine gerätespezifisches Login durchgeführt werden, wird die Gerätekennung (quasi als Passwort-Ergänzung) mit dem eingegebenen Authorisierungs-Code (incl. Projektname) kombiniert "in den Quirl gesteckt". Die Gerätekennung wird also NICHT separat verschickt, sondern ergänzt "nur" die eingegebene Nutzerkennung!
  6. Vom Server wird anhand der Nutzerkennung, der Vorgangskennung und des (gequirlten) Autotrisierungscodes die Identität überprüft.
    Dazu werden aus der Datenbasis die notwendigen Nutzerdaten besorgt. Aus der Vorgangskennung und einem gespeicherten Autorisierungs-Basiscode wird analog zum Client ein Autorisierungscode errechnet, der mit dem übertragenen übereinstimmen muss. Für die eventuell verschiedenen Gerätekennungen und andere Bedarfe müssen verschiedene Autorisierungs-Basiscodes bereitgehalten und durchgetestet werden.
    Das alles muss innerhalb eines Zeitfensters seit Beginn des Login-Vorgangs geschehen. Gegebenenfalls wird der Vorgang mit "timeout"-Fehlercode abgebrochen.
  7. War die Autorisierung erfolgreich, wird dieses im Server bei der Sitzungskontrolle vermerkt und die zugeteilten Berechtigungen gesetzt. Der Client bekommt eine Erfolgsmeldung - jedoch keine Liste der erteilten Berechtigungen. Im CLient werden keine Berechtigungen geprüft, weil das sehr einfach manipulierbar wäre. Ausschließlich der (Frontend-)Server prüft die Berechtigungen.
    Im Fall des Scheiterns bekommt der Client eine entsprechende Benachrichtigung, aus der jedoch NICHT hervorgeht, ob "nur" die Nutzerkennung ungültig war oder der Autorisierungscode (das Passwort).
    Wird die Sitzung aus irgendeinem Grunde unterbrochen, geht die Nutzeranmeldung verloren.
  8. ...
  9. WARNUNG: Das oben geschilderte Verfahren erscheint keineswegs als absolut sicher - es erschwert nur das "Abschnorcheln" von Daten. Bei Bedarf und Möglichkeit werden die Hürden für den Datenklau zukünftig höher gelegt.
2. Ablauf der Nutzer-Registrierung:

...

3. Änderungen an der Nutzer-Registrierung:

Die Nutzer können zu ihrer Registrierung im Laufe der Zeit Änderungswünsche haben. So kann eine andere (einzugebende) Nutzerkennung, ein gerätespezifisches Login, eine andere Benachrichtigungs-E-Mail-Adresse, etc. gewünscht sein. Solche Änderungen müssen jederzeit und direkt von den Nutzern vorgenommen werden können.

...

4. Ablauf der Nutzerprofil-Löschung:

...

Themen hierzuAssciated topics:

Tech­ni­sche WIM-Ver­fah­ren Angemeldete Nutzer Personenbezogene Daten

Das könnte Sie auch interessierenFurther readings:
Angemeldete Nutzer im WIM-System
Wofür sind Nutzer-Anmeldungen im WIM-System nützlich oder gar nötig ?
<2014-03-08>
In der Regel wird das WIM-System "anonym" genutzt. Um jedoch eigene Daten einbinden zu können oder system­kritische Aktionen durch­führen zu können werden Nutzer­anmel­dungen und ggf. zugeteilte Berech­tigungen benötigt.   Mehr »
Auswahl und Reihenfolge der Dokumente bei INFOS-Listen
<2015-11-07>
An diversen Stellen des WIM-Systems sind Listen von Infos zu finden. Hier werden die Verfahren zur Auswahl und Bestimmung der Reihenfolge der dargestellten Infos vorgestellt.   Mehr »
W🎯 Ziele für die openWIM-Version(en) 35 (und folgende)
<2019-05-07>
DasopenWIM-Version 35 ohne das alte Server-System betrieben.   Mehr »
Was sollten Nutzer bei der Nutzung von WIM-Systemen für den Datenschutz tun?
Von: @VB <2015-03-24>
Auch wenn der Schutz personenbezogener Daten eines der Grundziele bei der Entwicklung des openWIM -Systems ist, sollten die Nutzer noch zusätzliche Maßnahmen ergreifen!   Mehr »
Datenschutzerklärung zu openWIM(.org)
<2018-05-23>
Erläuterungen zum Datenschutz bei der Nutzung von openWIM.org sowie zu Internetpräsenzen, die mit dem openWIM-System realisiert wurden und über keine gesonderte Datenschutzerklärung verfügen.   Mehr »
Standard-Request-Parameter
<2013-06-13>
WIM-Requests haben einen Basis-Satz von Parameter. Diese werden hier beschrieben.   Mehr »
Allgemeine Objektparameter
Von: @VB <2015-03-20>
Objekte sind Kern des WIM-Systems. Und "Parameter" (also "Datenwerte") sind essentielle Bestandteile der WIM-Objekte. In dieser Info werden Standard-Parameter kurz vorgestellt.   Mehr »
Steuerung der Darstellung von Objekten
<2019-02-03>
Das openWIM-System bietet die Möglichkeit, die Darstellung von Themen, Dokumenten, usw. in weiten Teilen zu gestalten, ohne dass dazu Änderungen im Programmcode oder an (HTML-)Vorlagen nötig sind.   Mehr »
Ausfallsicherheit ("fail save") im Konzept des WIM-Systems
<2013-02-25>
Auch wenn sich die Systemdesigner und -entwickler noch so viele Mühe geben - es ist prinzipiell nicht vermeidbar, dass ein System "ausfällt". Ein wesentliches Konzept des WIM-Systems ist es, solche "Ausfälle" auf möglichst kleine Bereiche einzugrenzen und möglichst "sicher" abzufangen.   Mehr »
Daten-Layer und -Aktualisierung
<2013-01-06>
Im WIM-System spielen "Vorlagen" eine bedeutende Rolle. Oftmals wird beim Zugriff auf einen Objekt-Parameter der Wert von einem Vorlage-Objekt geholt.   Mehr »
Thematischer Kontext und "Themenwolke" einer Sitzung
<2013-04-28>
Zu einer Projektseite wird stets der jeweils augenblicklich aktuelle thematische Kontext bestimmt und meist in einer "Themenwolke" dargestellt. Dieser thematische Kontext wird anhand der letzten Nutzer-Aktionen und auf Basis der thematischen Verknüpfungen ermittelt.   Mehr »
Was ist die Rolle der "Dialoge" (einschließlich "Meldungen") im openWIM-System?
<2015-04-05>
Bei Darstellungen von Dokumenten, Themen usw. sowie zur Gesamtdarstellung können bei bestimmten Anlässen "Dialoge" (im einfachsten Fall "Meldungen") überlagernd dargestellt werden.   Mehr »
Wie bearbeiten Cloud-Server eintreffende Anforderungen der openWIM-Clients?
Wie sind die Schnittstellen und Funktionen gestaltet?
Von: @VB <2016-10-06>
Von den Internet-Browsern ("Clients") werden die URLs der Projekte aufgerufen. Die URLs führen zum (zuständigen) "Cloud"-Server, der - nach Möglichkeit - die von den Clients gewünschten Aktionen ausführt. Beispielsweise zu ladende Daten liefert.   Mehr »
Wie werden Zugriffe auf - ggf. nicht vorhandene - Dateien beim Frontend-Server bearbeitet?
<2015-06-01>
Das Starten /Hochfahren der WIM-App ist für die Akzeptanz bei den Nutzern von besonderer Bedeutung. Die angewendeten Verfahren und Randbedingungen werden hier näher betrachtet.   Mehr »
Wie kann man die WIM-App durch vorausschauende Anforderungen von Objektdaten beschleunigen ?
<2014-08-03>
Zwischen der Anforderung von darzustellenden Daten beim Internetserver und der Anlieferung der Daten entsteht eine Wartezeit, die nicht beliebig verkürzt werden kann. Daher können bei Modul-Spezifikationen bereits Daten angefordert werden, die erst etwas später wirklich benötigt werden.   Mehr »
Wie werden Dialogbereiche bei Modulen eingerichtet?
Von: @VB <2015-04-06>
Im Prinzip könnte zu jedem PANEL-Modul ein Dialogbereich eingerichtet werden. Wie das genau geht und was zu beachten ist, wird hier beschrieben.   Mehr »
openWIM beim Handy und Tablet
Von: @VB <2015-04-23>
Die Nutzung des Internets geschieht zunehmend über mittels Smartphones und Tablett-PCs. Neben der Touch-Bedienung stellt die Darstellung auf den eher kleinen Displays signifikant andere Anforderungen.   Mehr »
Wie geschieht die Koordination zwischen den Modulen im Client?
Von: @VB <2015-04-18>
Die Module zur Darstellung der Informationen sind zwar in einer hierarchischen Struktur miteinander verknüpft, doch die Aufgabenteilung ist sehr kooperativ geregelt. Jedes Modul agiert möglichst autonom in seinen eigenen Aufgabenbereich, stimmt jedoch alle Aktionen, die andere Module betreffen, mit denen ab.   Mehr »
Internet-Links für openWIM-Entwickler
<2020-03-10>
In den Weiten des Internets gibt es etliche hilfreiche Internetpräsenzen und Dokumente, die für die Entwickler des openWIM-Systems hilfreich sein können. Hier sind einige aufgelistet:   Mehr »
Objektdaten-Status
<2013-01-11>
Zu den in den Servern gespeicherten Objektdaten gibt es pro Objekt jeweils eine Gruppe von Statuswerten die den Zustand der Daten und laufende Aktionen mit ihnen beschreiben.   Mehr »
CSS3-Macken und Tipps
<2014-02-16>
CSS3 spielt eine wichtige Rolle bei der WIM-Darstellung - und fällt manchmal aus der Rolle. Hier werden Macken und Tipps zusammengestellt.   Mehr »
Anordnung von WIM-App-Modulen
<2013-03-28>
Innerhalb eines (BOX-)Moduls können Module in verschiedener Art und Weise angeordnet werden. Dieser Beitrag geht näher darauf ein.   Mehr »
Die Bildrechte werden in der Online-Version angegeben.For copyright notice look at the online version.

Bildrechte zu den in diese Datei eingebundenen Bild-Dateien:

Hinweise:
1. Die Bilder sind in der Reihenfolge ihres ersten Auftretens (im Quelltext dieser Seite) angeordnet.
2. Beim Anklicken eines der nachfolgenden Bezeichnungen, wird das zugehörige Bild angezeigt.
3, Die Bildrechte-Liste wird normalerweise nicht mitgedruckt,
4. Bildname und Rechteinhaber sind jeweils im Dateinamen des Bildes enthalten.