ΕΕΛ/ΛΑΚ - Λίστες Ταχυδρομείου

Re: New Project: Real-time Poll/Voting system

  • Subject: Re: New Project: Real-time Poll/Voting system
  • From: Konstantinos Margaritis <markos [ at ] debian [ dot ] gr>
  • Date: Mon, 26 Jul 2004 02:27:34 +0300
On Δευ 26 Ιουλ 2004 00:05, Serafeim Zanikolas wrote:
> On Wed, 21 Jul 2004 15:38:23 +0300
> Konstantinos Margaritis <markos [ at ] debian [ dot ] gr> wrote:
>
> Κώστα και υπόλοιποι,
>
> > εδώ θα έλεγα να υπάρχει δυνατότητα δύο επιπέδων χρηστών, ο
> > πιστοποιημένος χρήστης (του οποίου το public key βρίσκεται στο
> > keyring των επιτρεπόμενων ψηφοφόρων της συγκεκριμένης ψηφοφορίας)
> > και ο απλός χρήστης που θα του επιτρέπεται μόνο να ψηφίζει σε
> > ανοιχτά polls.
>
> Οσον αφορά τους μη πιστοποιημένους χρήστες υπάρχει το θέμα της
> έλλειψης address transparency, ότι δηλαδή δεν μπορείς να θεωρήσεις
> δεδομένη την αντιστοίχιση ψηφοφόρων-IPs για λόγους όπως dynamic
> IPs, NAT, κτλ

όταν λέω μή πιστοποιημένους χρήστες, εννοούσα απλώς μέλη τα οποία δεν 
έχουν αποστείλει κάποιο κλειδί υπογεγραμμένο από κάποιον admin. 
Ομολογώ δε μου πέρασε από το μυαλό να χρησιμοποιηθεί το σύστημα ως 
εντελώς ανοιχτό, δηλαδή όπως στα web sites. Θα μπορούσε όμως, οπότε 
θα πρέπει να ορίσουμε 4 πλέον είδη χρηστών, μη πιστοποιημένους 
(non-authenticated users), πιστοποιημένους 
(authenticated/registered/whatever), poll-creators (δηλαδή υποσύνολο 
των προηγούμενων που έχει στείλει κλειδί υπογεγραμμένο από κάποιον 
admin) και φυσικά τους ίδιους τους admin.

> Αυτό πρακτικά σημαίνει πως σε ανοιχτά συστήματα (βλ χωρίς
> authentication) οποιοσδήποτε αργόσχολος μπορεί να κάνει flood το
> σύστημα με αιτήσεις (εν προκειμένω ψήφους), πχ. να λάβει μία φορά
> το ψηφοδέλτιο και να υποβάλλει άπειρες ψήφους. (το blacklisting δεν
> είναι λύση γιατί μπορεί η ίδια IP μετά από ώρες (dhcp) ή την ίδια
> στιγμή (NAT) να χρησιμοποιείται από legitimate χρήστες)
>
> Ενας απλός τρόπος για να γίνει πιο δύσκολο το παραπάνω είναι το
> ψηφοδέλτιο να συνοδεύεται από ένα τυχαίο id το οποίο θα πρέπει να
> επισυνάπτεται στην υποβολή της ψήφου. Ετσι δεν εμποδίζεται το flood
> αλλά τουλάχιστον είναι λίγο πιο δύσκολο γιατί επιβάλει για κάθε
> ψήφο κανείς να λαμβάνει νέο ψηφοδελτιο. Ακόμη καλύτερα, το
> registration στο yahoo ζητάει από τον χρήστη να δακτυλογραφήσει το
> (καθορισμένο τυχαία) κείμενο που περιέχεται σε μία δυναμικά
> παραγόμενη εικόνα -- αυτό δεν εμποδίζει το flooding αλλά πλέον ο
> αργόσχολος πρέπει να το κάνει manually.

ή με sessions... μπορούμε να ορίζουμε για κάθε μη πιστοποιημένο χρήστη 
ένα session id το οποίο να είναι μοναδικό ή τουλάχιστον να γίνει 
προσπάθεια για κάτι τέτοιο. Υπάρχει τρόπος να ανιχνεύσεις αν κάποιος 
βρίσκεται πίσω από NAT, οπότε πράττεις ανάλογα (δηλ. δημιουργείς 
καινούριο session).

> Μία πιο πολύπλοκη αλλά αξιόποιστη λύση είναι κάθε ψήφος να
> επιβεβαιώνεται μέσω email, πχ ο ψηφορόρος να πρέπει να δίνει ένα
> email address, και να απαντάει μέσω email σε αίτηση επιβεβαίωσης
> της ψήφου. Ψήφοι με ήδη καταχωρημένο email address για ένα
> συγκεριμένο poll δεν θα γίνονται δεκτοί, και ψήφοι χωρίς
> επιβεβαίωση θα διαγράφονται μετά από χ ώρες όταν δεν
> επιβεβαιώνονται μέσω email ή όταν το δοθέν email address δεν είναι
> έγκυρο. Καταλαβαίνω ότι αυτό περiπλέκει αρκετά τα πράγματα ιδίως αν
> θέλει να λάβει κανείς υπόψη του temporarily down mail servers.

αυτό μου αρέσει! μάλιστα μπορεί να υλοποιηθεί σχετικά απλά (το να 
στείλεις mail από ένα application είναι πλέον πολύ απλό). Ακόμη και 
το expiration δεν είναι τόσο τραγικό όσο φαίνεται και ασφαλίζει την 
εγκυρότητα των ψήφων. good points. 

(Πρέπει να αρχίζω να τα μαζεύω όλα αυτά...).

Κώστας


αναφορές

πλοήγηση μηνυμάτων