ΑΝΑΛΥΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΣΥΣΤΗΜΑΤΟΣ
51
3.10 Η ασφάλεια του συστήματος
Η ασφάλεια των πληροφοριακών συστημάτων αποτελεί ένα πολύ καίριο παράγοντα για
την διασφάλιση των δεδομένων της βάσης. Με το πέρασμα χρόνων αυτή η ανάγκη για
διασφάλιση των προσωπικών δεδομένων που αποθηκεύονται στις βάσεις δεδομένων
μέσω των ιστοσελίδων που τις διαχειρίζονται γίνεται ακόμα πιο σημαντική αφού τα πλη-
ροφοριακά συστήματα έχουν μπει για τα καλά στην ζωή μας. Η ασφάλεια λοιπόν είναι
κάτι το οποίο πρέπει να εξετάζεται καθ’ όλη την διαδικασία της σχεδίασης και υλοποίη-
σης του πληροφοριακού συστήματος.
Για την επίτευξη της ασφάλειας σε μια διαδικτυακή εφαρμογή, θα πρέπει να εξε-
τάζονται τρεις βασικοί παράγοντες [12].
▪ Η εμπιστευτικότητα: Εγγυάται ότι τα δεδομένα δεν αποκαλύπτονται σε μη ε-
ξουσιοδοτημένες οντότητες.
▪ Η ακεραιότητα: Εξασφαλίζει τη μη τροποποίηση των δεδομένων από μη εξου-
σιοδοτημένους χρήστες. Δηλαδή η διαδικασία εισαγωγής, επεξεργασίας και δια-
γραφής δεδομένων γίνεται μόνο από εξουσιοδοτημένους χρήστες.
▪ Η διαθεσιμότητα: Τα δεδομένα του συστήματος θα πρέπει να είναι συνεχώς δια-
θέσιμα για τους εξουσιοδοτημένους χρήστες.
3.10.1 Ασφάλεια Κωδικών Πρόσβασης
Οι κωδικοί πρόσβασης που χρησιμοποιούνται από τους χρήστες για να εισέλθουν στο
σύστημα προστατεύονται με διάφορους τρόπους.
Αρχικά, ο κωδικός πρόσβασης δεν αποθηκεύεται σε καθαρή μορφή κειμένου, δη-
λαδή στη μορφή που τον έχει εισάγει ο χρήστης στη φόρμα επικοινωνίας. Αντίθετα, κατά
την εγγραφή ενός χρήστη, ο επιθυμητός κωδικός δίνεται ως όρισμα εισόδου στη συνάρ-
τηση password_hash() [13], η οποία παράγει ένα κρυπτογράφημα (hash) με τη χρήση του
αλγορίθμου CRYPT_BLOWFISH. Ο αλγόριθμος Blowfish αυτός χρησιμοποιεί ένα με-
ταβλητό αριθμό από bits που κυμαίνεται από 16 έως 448 και κρυπτογραφεί τα δεδομένα
16 φορές για να καταστήσει αδύνατη την αποκρυπτογράφησή του. Επιλέχθηκε ο συγκε-
κριμένος αλγόριθμος κρυπτογράφησης λόγω της υψηλής επίδοσης σε σύγκριση με άλλους
και επειδή μέχρι τώρα, καμία επίθεση δεν έχει καταφέρει να σπάσει την κρυπτογράφηση
Blowfish. Αντίστοιχα, η επιβεβαίωση του κωδικού πρόσβασης κατά τη σύνδεση στο σύ-
στημα, απαιτεί την εκτέλεση της συνάρτηση password_verify() [14], η οποία επαληθεύει