brauche eine gute idee ;-)
chrigu
- sonstiges
0 Marc Reichelt0 chrigu
0 Christian Seiler0 chrigu
0 Michael Schröpl0 chrigu0 Bio0 Michael Schröpl0 Bio
hallo zusammen,
ich muss ein projekt realisieren, bei dem sich user auf einer website einloggen können, einen fragebogen ausfüllen und abschicken können. das ganze werde ich mit php und access (ich weiss, es hat seine gründe!) verwirklichen. das knifflige ist, dass jeder user den fragebogen nur einmal ausfüllen darf und dabei anonym bleiben muss! man darf also nicht wissen, wer was geantwortet hat..
ich habe mir überlegt, jedem user den link per mail zu schicken im stil "www.blabla.com/index.php?id=a564sd5s4a". diese id's sind eindeutig, werden in einer db gespeichert und werden ungültig, sobald der user sich einloggt..!
was denkt ihr dazu?!
Hi,
vielleicht wäre es besser, dass die ID erst mit dem Absenden des Formulars (also auch wenn alles korrekt ist) gelöscht wird.
soory, die Zeit läuft mir mal wieder davon... cu
Marc Reichelt || http://www.marcreichelt.de/
hi,
ja, das hatte ich eigentlich auch so geplant. hab mich wohl zu wenig deutlich ausgedrückt ;-)
gruss chrigu
Hallo,
was denkt ihr dazu?!
Warum so kompliziert?
Zu jedem Benutzer ist die Information gespeichert, ob er den Fragebogen schon ausgefüllt hat. Wenn dies nicht der Fall ist, dann darf er den Fragebogen ausfüllgen. Wenn er ihn dann abschickt, dann werden die Daten _unabhängig_ von Informationen zu seinem Benutzer gespeichert und das einzige, was zu diesem Benutzer gespeichert wird, ist _dass_ er den Fragebogen ausgefüllt hat, mehr nicht.
Christian
hallo christian,
von der idee her interessant. nur weiss ich nicht, ob sich ein user anonym fühlt, wenn er beim login seinen namen angeben muss..! es ist vom prinzip her gleich, wie ich es mit der id machen will. die id wird ungültig, es gibt einen neuen datensatz mit antworten. keine verbindung zwischen antworten und id!
gruss chrigu
Hi chrigu,
was denkt ihr dazu?!
erst mal vorweg: Wenn das Ganze rechnergesteuert laufen soll, dann wird Deine Aufgabe kaum ohne einen Vertrauensvorschuß von irgend einer Seite lösbar sein.
das knifflige ist, dass jeder user den fragebogen nur einmal ausfüllen darf und dabei anonym bleiben muss! man darf also nicht wissen, wer was geantwortet hat.
Vergleiche Deine Aufgabenstellung mal mit einer Bundestagswahl.
Dort bekommst Du eine Wahlbenachrichtigung; diese ist nicht anonym.
Zum Wählen wird diese jedoch "übersetzt" in einen Wahlzettel; dieser ist anonym.
Der Trick dabei ist, daß diese Übersetzung "manuell" erfolgt, ebenso wie die Rücknahme der Ergebnisse - die Wahlzettel fallen "zufällig" in die Urne. Theoretisch könnte unter der Urne ein Loch sein und jemand alle Wahlzettel herausnehmen, und simultan dazu jemand anderes per Handy die Nummern der entgegen genommenen Wahlscheine durchgeben (bei etwa 3 oder 4 simultan ausgegebenen Wahlzetteln könnte man noch den Überblick behalten. Alternativ könnte im Wahllokal eine Überwachungskamera laufen usw.
Durch hinreichend viel kriminelle Energie ließe sich nachvollziehen, wer was gewählt hat; diese Energie muß jedoch gegen Metawissen der Teilnehmer ankämpfen (beispielsweise liegt ein Wahllokal in einer Kirche oder Schule und hinreichend viele Wähler kennen das Gebäude gut genug, um die Existenz eines Lochs im Boden oder eine installierten Kamera auszuschließen, Wähler dürfen bei der Auszählung ggf. zusehen usw.).
In Deinem Falle hast Du alle Abläufe allein in der Hand - niemand kontrolliert Dich. Wie willst Du Deinen "Wählern" irgend eine Art von Garantie geben, daß Du nicht über alles, was Du getan hast, Buch führst? Denn in Deinem Falle ist kein "nachweisliches Zufallselement" vorhanden - Du könntest alles mitschreiben.
ich habe mir überlegt, jedem user den link per mail zu schicken im stil "www.blabla.com/index.php?id=a564sd5s4a". diese id's sind eindeutig, werden in einer db gespeichert und werden ungültig, sobald der user sich einloggt..!
Und wer garantiert dem Empfänger, daß Du diese IDs nicht auf einem Zettel unter Deinem Kopfkissen liegen hast? IDs sind nun mal leicht kopierbar, anders als bestimmte Gegenstände der realen Welt.
Was Du vielleicht probieren solltest, das ist ein Entwurf in Richtung public-key-Systeme.
Ich habe gerade ein paar Minuten darüber nachgedacht, bin aber in der Vielzahl der Probleme förmlich ertrunken und kenne mich in diesem Bereich auch nur sehr oberflächlich aus ... die Idee muß aber sein, ein System zu verwenden, bei dem Du beweisen kannst, daß Du nicht alles wissen kannst.
Viele Grüße
Michael
hi michael,
danke für deine zahlreichen ideen & gedanken. auf grund deines postings habe ich mir die sache auch noch mal gründlicher überlegt. von mir aus gesehen liegt das problem beim medium. ich werde immer ermitteln können, wer den fragebogen ausgefüllt hat, da ich ja die ip in meinen log-files habe.
der sinn ist ja, dass jeder user nur einmal den bogen ausfüllen kann. dadurch muss ich ihm irgendwie den zugriff ermöglichen, ohne das fremde darauf zugreifen können! dadurch muss ich ihn irgendwie erkennen können, sei das durch die "anonyme" id oder sonst was.. nur was?!
ziemlich verzwickt..
gruss chrigu
Hi chrigu,
danke für deine zahlreichen ideen & gedanken. auf grund deines postings habe ich mir die sache auch noch mal gründlicher überlegt. von mir aus gesehen liegt das problem beim medium. ich werde immer ermitteln können, wer den fragebogen ausgefüllt hat, da ich ja die ip in meinen log-files habe.
laß die Requests über einen beliebigen Proxy im Ausland laufen, der nicht unter Deinem Einfluß steht ... die IP-Adresse kriegst Du für Deine Zwecke anonym genug.
der sinn ist ja, dass jeder user nur einmal den bogen ausfüllen kann. dadurch muss ich ihm irgendwie den zugriff ermöglichen, ohne das fremde darauf zugreifen können! dadurch muss ich ihn irgendwie erkennen können,
Nein. Du mußt ihn nur _wiedererkennen_ können (d. h. zwei abgegebene Bögen als von derselben Quelle stammend erkennen, quasi "Gleichheit von Fingerabdrücken") - das kann aber eine Eigenschaft des Public Key sein, die Du nicht auf _einen_ Key zurück übersetzten kannst. Und Du mußt ihn als _berechtigt_ erkennen können, um unbefugte Stimmabgaben als solche zu erkennen. Seine Identität (die "Fingerabdruckdatei") brauchst Du hingegen nicht.
Viele Grüße
Michael
hallo,
gut ich muss mir die sache noch ein bisschen überlegen..
danke & gruss
chrigu
Hi chrigu,
gut ich muss mir die sache noch ein bisschen überlegen..
tu das ... und bedenke, daß Dein Problem einen wirklich tollen Feature-Artikel hergeben würde, falls Du ein praktikables Lösungsverfahren findest ...
Viele Grüße
Michael
Sup!
Tjö, Vertrauensvorschuss ist IMHO immer notwendig, mir fällt auch nicht ein, wie Kryptographie da was dran ändern sollte.
Es muß einfach zwei Instanzen geben - eine, die die Stimmen auswertet, und eine, die die Berechtigung überprüft. Wenn diese beiden ihr Wissen kombinieren, können Sie immer die Stimmen zu den Personen zuordnen.
Auch wenn z.B. der Nutzer den Fragebogen und einen public key des Umfrageauswerters bekommt, und dann seinen ausgefüllten Fragebogen damit verschlüsselt und mit seiner ID an den Berechtigungsüberprüfer sendet, der dann bei gültiger ID den Fragebogen mit seinem private key signiert und dann an den Auswerter schickt, der dann mit dem Public key des Berechtigungsüberprüfers und seinem eigenen private key den Fragebogen auswerten kann, ohne die ID zu wissen - auch dann können die beiden Instanzen noch ganz einfach herausfinden, wer was geantwortet hat, wenn sie ihre Keys bzw. Daten austauschen. Zudem könnte dann der Berechtigungsüberprüfer dem Auswerter gefakte Fragebögen unterschieben und alles manipulieren.
Ich denke darum nicht, daß Verschlüsselung die Sache irgendwie "sicherer" macht. Der User muß den Umfrage-Instanzen einfach glauben.
Was ich mir vorstellen könnte, wäre, daß jeder User eine "geheime" URL und dafür Benutzernamen und Passwort (für alle User gleich) und eine Zeitangabe (12:05-12:25 | 12:35-12:55 | ... ) zugesandt bekommt.
Jeweils x User teilen sich so ein Zeitfenster. Die User greifen einfach in "ihrem" Zeitfenster auf den Server zu. Der Server generiert dann eine ID. Diese ID benutzt der User dann zur Authorisierung bei der Umfrage.
Wenn alles glatt geht, dann bekommt jeder User eine ID, aber keiner weiss, wem genau welche gehört.
Wenn irgendein Depp in so einer Gruppe zwei IDs anfordert, dann merkt das der Server, wenn er die x+1te ID generieren soll. Alle IDs dieser Gruppe werden ungültig, die User bekommen einen neuen Zeitraum und eine neue eMail, die darauf hinweist.
Schliesslich und endlich haben, nach hinreichend langer Laufzeit dieses Verfahrens, alle User eindeutige, aber anyonyme IDs für die Umfrage. Wenn eine Gruppe permanent Probleme macht, dann wird sie geteilt und mit einer andere Gruppe rekombiniert. Wie bei "Mastermind" findet man dann irgenwann heraus, wer der Querulant ist, der immer zuviele IDs anfordert...
Bio
Hi Bio,
Es muß einfach zwei Instanzen geben - eine, die die Stimmen auswertet, und eine, die die Berechtigung überprüft. Wenn diese beiden ihr Wissen kombinieren, können Sie immer die Stimmen zu den Personen zuordnen.
das ist klar.
Aber bisher ist chrigu einfach zu offensichtlich "beide Instanzen" - vielleicht kann man eine von beiden (den Prüfer) "outsourcen", d. h. durch eine neutrale Instanz (Dienstleister?) ersetzen.
Jeweils x User teilen sich so ein Zeitfenster. Die User greifen einfach in "ihrem" Zeitfenster auf den Server zu. Der Server generiert dann eine ID. Diese ID benutzt der User dann zur Authorisierung bei der Umfrage.
Wenn alles glatt geht, dann bekommt jeder User eine ID, aber keiner weiss, wem genau welche gehört.
Das ist der Vorgang des "Umtauschens der Wahlbenachrichtigung in den Wahlzettel", ja?
Viele Grüße
Michael
Sup!
Das ist der Vorgang des "Umtauschens der Wahlbenachrichtigung in den Wahlzettel", ja?
Genau. Es geht auch gar nicht anders, wenn man es wirklich anonym machen will, ohne garantiert unabhängige Instanzen usw..
Gruesse,
Bio