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

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

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, κτλ

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

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

Εναλλατικά μπορεί κανείς να ορίσει ένα χρονικό όριο μεταξύ δύο ψήφων από
την ίδια IP, πχ. όταν κανείς πάει να υποβάλλει δεύτερο ψηφοδέλτιο να
εμφανίζεται μήνυμα του στυλ "λυπάμαι, δοκιμάστε σε χ ώρες" (αυτό κάναμε
στο noepatents.gr προκειμένου να "σταματήσουμε" σχετική επίθεση). Φυσικά
αυτό έχει το μειονέκτημα ότι legitimate χρήστες που χρησιμοποιούν το
ίδιο terminal (πχ. φέρνω φίλους να υπογράψουν από το PC μου) ή IP (λόγω
NAT) θα πρέπει να ξαναδοκιμάζουν αργότερα (σε ακραίες περιπτώσεις με
εκατοντάδες σταθμούς που βγαίνουν στον έξω κόσμο με μία IP αυτό μπορεί
να είναι σοβαρό πρόβλημα)

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


-- 
Serafeim Zanikolas
members.hellug.gr/serzan


απαντήσεις

αναφορές

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