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