php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.09.2011, 17:20  
Neuer Benutzer
 
Registriert seit: 02.09.2011
Beiträge: 3
PHP-Kenntnisse:
Fortgeschritten
Skat0r befindet sich auf einem aufstrebenden Ast
Standard [Mcrypt ] Für mehrere Benutzer + Rechte

Hallo,

aktuell verwende ich schon das Mcrypt Modul von PHP um verschiedene Datensätze zu verschlüsseln und das funktioniert soweit auch. Nun wollte ich das ganze etwas Dynamischer gestalten um zum Beispiel verschiedenen Benutzern den Zugang zu einem verschlüsselten Container geben zu können. Leider fehlt mir aktuell der richtige Ansatz um das umzusetzen und daher die Frage ob jemand von euch dort schon erfahrungen gesammelt hat und mir einen ungefähren Ansatz nennen kann wie ich das ganze umsetzen könnte. Nachfolgend noch ein kleines Beispiel um mein vorhaben zu verdeutlichen.

Beispiel
Es existieren verschiedene Benutzer die sich alle mit einem seperaten Passwort anmelden können. In der Zukunft soll es dann zum Beispiel so sein das User 1 + 2 beide auf einen Container zugreifen können aber User 3 dies nicht darf. Dafür darf aber User 3 auf seinen eigenen Container zugreifen usw.

Danke!
Skat0r ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 02.09.2011, 20:38  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.268
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Warum genau verschlüsselst du?
__________________
"Nuschel ich?" - "Was?"
Chriz ist offline   Mit Zitat antworten
Alt 02.09.2011, 21:59  
Neuer Benutzer
 
Registriert seit: 02.09.2011
Beiträge: 3
PHP-Kenntnisse:
Fortgeschritten
Skat0r befindet sich auf einem aufstrebenden Ast
Standard

Da es sich um Hochsensible Daten handelt die bei der Eingabe des Users schon per SSL an den Server übertragen werden und dann verschlüsselt in der Datenbank abgelegt werden. Und um die funktionalität des System weiter zu verbessern bin ich ebend aktuell auf der suche nach einer möglichkeit mehreren Personen Zugriff auf bestimmte Daten geben zu können.
Skat0r ist offline   Mit Zitat antworten
Alt 03.09.2011, 10:28  
Erfahrener Benutzer
 
Benutzerbild von splasch
 
Registriert seit: 05.01.2009
Beiträge: 474
PHP-Kenntnisse:
Fortgeschritten
splasch kann nur auf Besserung hoffen
Standard

Zitat:
Zitat von Skat0r Beitrag anzeigen
Da es sich um Hochsensible Daten handelt die bei der Eingabe des Users schon per SSL an den Server übertragen werden und dann verschlüsselt in der Datenbank abgelegt werden. Und um die funktionalität des System weiter zu verbessern bin ich ebend aktuell auf der suche nach einer möglichkeit mehreren Personen Zugriff auf bestimmte Daten geben zu können.
Hochsensible Daten sollten generell nicht Online zu verfügung gestellt werden. Die ganze Verschlüsselung nutz dir nix wenn sich der Angreiffer zugang zum Acount verschafft.
splasch ist offline   Mit Zitat antworten
Alt 03.09.2011, 11:45  
Erfahrener Benutzer
 
Registriert seit: 04.07.2003
Beiträge: 359
PHP-Kenntnisse:
Fortgeschritten
Sirke befindet sich auf einem aufstrebenden Ast
Standard

Ich denke schon, dass es Szenarien gibt, bei denen "Hochsensible Daten" Online zur Verfügung gestellt werden können/müssen. In meinen Augen wären dies z.B. auch Datenschutz relevante Informationen, welche mit kaum Overhead verschlüsselt werden können. Außerdem kann der WebService selbst evlt ja bereits selbst nur von einer begrenzten Zahl an Benutzern genutzt werden oder liegt im Intranet.

Es gibt aber in meinen Augen kaum eine sinnvolle Lösung für das Problem, da es an sehr vielen Stellen Probleme gibt: Die Schlüssel zum Schutz der Container muss für alle berechtigten Personen zugänglich und für alle anderen unzugänglich sein. An dieser Stelle bieten sich viele Möglichkeiten die symm. oder asymm. Kryptographie zu nutzen, aber zu guter Letzt, muss es immer einen Benutzer-Schlüssel geben, welcher nur mit dem richtigen Passwort berechenbar ist.
An dieser Stelle tun sich bereits für die Benutzerfreundlichkeit die ersten schweren Probleme auf, da die Benutzer-Schlüssel irgendwo im Original gespeichert werden müssen, um das Zurücksetzen der Passwörter zu ermöglichen. Als Nächstes lassen sich nur schwer die Aufgaben "Lesen/Schreiben" und "Berechtigungsvergabe" trennen, weil für die Berechtigungsvergabe nicht bloß ein "Flag" gesetzt werden muss, sondern der Benutzer einen verschlüsselten Schlüssel erhalten muss. Folglich muss die Person, die die Berechtigung vergibt auch in der Lage sein die Schlüssel zu erhalten und kann somit selbst auf die Daten zugreifen.
Gerade letztes Problem lässt sich schnell mit Access Controll lösen, aber am Ende fällt mir keine Idee ein, bei der sich die Sicherheit nicht auf einen einzigen Schlüssel stützt ein. Dann kann man auch alle Daten global verschlüsseln und muss sich keine Gedanken zu einem so komplexen System machen...

Es würde durchaus noch ein paar andere komplexe Szenarien geben, wie Single-Sign-On zu dem WebServer, da an dieser Stelle wichtige zusätzliche Informationen übertragen werden können, oder einen Schlüssel-Server, welcher aber dann einen besonderen Schutz benötigt und eine hohe Ausfallsicherheit haben muss, oder eine PKI mit KeyCards, welche zum Login benutzt werden können, da man hier einen Gegenstand zur Authentifizierung nutzt und somit davon ausgehen kann, dass nur eine Person einen Account nutzen kann (vorausgesetzt die Person meldet den Verlust einer solchen Karten)!
Sirke ist offline   Mit Zitat antworten
Alt 03.09.2011, 12:09  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Mein Ansatz wäre:
  • Datensatz mit Schlüssel X verschlüsseln. (Individuelles X für jeden Datensatz.)
  • Benutzer A (der den Datensatz erstellt) gibt ein Passwort an, mit dem X zu Xa verschlüsselt wird. Xa wird gespeichert. (X wird anschließend verworfen.) Soll der Datensatz entschlüsselt werden, muss der Benutzer sein Passwort angeben, damit Xa zu X entschlüsselt werden kann, und damit dann der Datensatz.
  • Soll ein weiterer Benutzer Zugriff auf den Datensatz erhalten, muss er diesen unter Mithilfe eines Benutzers bekommen, der bereits Zugriff hat: A gibt sein Passwort an, damit Xa zu X entschlüsselt werden kann, damit daraus für Benutzer B mit dessen Passwort Xb berechnet werden kann. Das erfordert aber, dass Benutzer A und B ihr Passwort „gleichzeitig“ eingeben können, am gleichen Rechner. („Hochsicherheit“ geht nun mal ab und zu ein bisschen zu Lasten des „Komforts“. Alternativ könnte auch Xa oder X temporär irgendwo zwischengespeichert werden [Session o.ä.], um B anschließend sein Passwort zeitnah woanders setzen zu lassen - aber das verringert natürlich die Sicherheit, weil ein Schlüssel eine Zeit lang irgendwo im Klartext rumliegt.)
  • „Passwort zurücksetzen“ gibt es in diesem Szenario nicht. Die einzige Möglichkeit für einen Benutzer, einen neuen persönlichen Schlüssel zu erhalten ist die gleiche, wie im Schritt vorher bei der initialen Erzeugung eines Mitbenutzerschlüssels - ein Benutzer mit Zugang muss ihn bei der Erstellung unterstützen. Wenn man einen Datensatz also immer für mehrere Benutzer zugänglich macht, mindert das das Problem, dass es bei „vergessenem“ Passwort keinen Zugriff auf die Daten mehr gibt.

Richtlinien für ein „sicheres“ Passwort möchte man an so einer Stelle vielleicht forcieren - Stichwort gesamte Kette, schwächstes Glied …
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 03.09.2011, 16:19  
Neuer Benutzer
 
Registriert seit: 02.09.2011
Beiträge: 3
PHP-Kenntnisse:
Fortgeschritten
Skat0r befindet sich auf einem aufstrebenden Ast
Standard

@splasch: Das stimmt natürlich grundsätzlich. Aber wie Sirke schon sagte gibt es manchmal ebend leider Szenarien in denen man diese Daten auch Online zur verfügung stellen muss. Das schon das ein grundsätzliches Sicherheitsproblem darstellt steht außer Frage.

@Sirke + ChrisB: Ihr bestätigt im grunde schon meine Vermutung das es hierzu wohl keine vernüftige (In sinne von Sicher + Benutzerfreundlich) Lösung gibt. Da man wohl immer auf das Problem stoßen wird das man entweder die Passwörter der Benutzer irgendwo im Klartext speichern muss oder ein neuer Benutzer der auch Zugang zu Container X bekommen soll darauf angewiesen ist das der ursprüngliche Besitzer gerade da ist um sein Passwort zur verfügung zu stellen.

Aber schon mal danke für eure mühe!
Skat0r ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Rechte verwaltung Sancta PHP Einsteiger 3 12.03.2011 14:34
[Erledigt] Berechtigungen einzelner Notizen goodie PHP Einsteiger 4 12.12.2010 01:33
Benutzer laden unterschiedliche css Dateien keek PHP Tipps 2010 6 29.03.2010 16:52
Benutzer Rechte Feldjaeger PHP Tipps 2010 11 10.02.2010 19:50
Login Benutzer Verifikation und Session knuffiwuffi PHP Tipps 2009 3 06.11.2009 18:40
[Erledigt] Fehlende Rechte auf /tmp -> Probleme mit Sessions Gemouen PHP Tipps 2009 3 28.10.2009 21:59
Benutzer-Model boolean Software-Design 33 09.07.2009 21:53
[Erledigt] ordner rechte setzen sich automatisch zurück wiegia086 PHP-Fortgeschrittene 1 05.04.2008 13:55
Benutzer rechte puchtuner PHP Tipps 2006 3 18.09.2006 16:23
[Erledigt] Benutzer in phpbb löschen - per sql-Befehl Datenbanken 2 23.12.2005 09:52
Suspekter Fehler: Keine Rechte auf der Datenbank Datenbanken 5 20.04.2005 06:31
mehrere Benutzer arbeiten an einem Datensatz ajo_silent Datenbanken 6 20.11.2004 13:52
Gibt es "htacces" ohne Abfrage von Benutzer und Ke Server, Hosting und Workstations 2 19.06.2004 18:17

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php unterschiedliche benutzerrechte, verschlüsselter container für mehrere benutzer, sessions php mehere nutzer rechte, passwortschutz php mehrere benutzer, mcrypt für zwei benutzer, mcrypt bsp

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:06 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum