background image

Σχεδιασμός και υλοποίηση συστήματος IoT ασύρματου ελέγχου και μέτρησης ενέργειας 

 

81 

 

Ασφάλεια λογισμικού 
 

Για την ασφάλεια του συστήματος από κακόβουλους χρήστες έγιναν οι παρακάτω 

ενέργειες: 

 

❖ 

Δημιουργήθηκαν  ενδιάμεσα  λογισμικά  (middleware),  για  τον  έλεγχο  των 
δικαιωμάτων του χρήστη σε κάθε του ενέργεια. Τα middleware αυτά είναι δύο 
και  αφορούν  την  διασφάλιση  ότι  ο  χρήστης  είναι  συνδεδεμένος  και  την 

διασφάλιση ότι ο χρήστης είναι διαχειριστής. 

❖ 

Γίνεται έλεγχος του δικαιώματος μιας συσκευής για αποστολή μετρήσεων σε ένα 
κανάλι.  Συγκεκριμένα,  ελέγχεται  αν  το  κανάλι  δημοσίευσης  ανήκει  στη 

συνδεδεμένη συσκευή. 

❖ 

Γίνεται έλεγχος του δικαιώματος ενός χρήστη για την αποστολή εντολών σε ένα 
κανάλι. Πρέπει δηλαδή, να υπάρχει συσχέτιση του χρήστη και της συσκευής στην 

βάση δεδομένων για την αποστολή εντολών στα κανάλια της. 

❖ 

Δημιουργήθηκε κώδικας προστασίας από επιθέσεις ωμής δύναμης (brute force), 
για τις ενέργειες της σύνδεσης του χρήστη και της συσκευής. Στην περίπτωση 
που  υπάρξουν  πολλαπλές  αποτυχημένες  προσπάθειες  σύνδεσης,  το  σύστημα 

αποτρέπει την συνέχιση των προσπαθειών με βάση την διεύθυνση IP. 

❖ 

Έγινε  χρήση  των  κατάλληλων  κεφαλίδων  (headers),  για  την  μετρίαση  του 
κινδύνου  από  διάφορες  κακόβουλες  επιθέσεις,  με  την  χρήση  της  βιβλιοθήκης 

λογισμικού  helmet

10

.  Το  helmet,  είναι  μια  συλλογή  ενδιάμεσων  λογισμικών 

(middleware),  τα  οποία  πραγματοποιούν  ρυθμίσεις  στις  κεφαλίδες  αυτόματα, 
χωρίς  να  είναι  απαραίτητη  η  παρέμβαση  από  τον  προγραμματιστή  του 

συστήματος. 

❖ 

Απενεργοποιήθηκε η κεφαλίδα ’x-powered-by’ για την μείωση του fingerprinting 
(αναγνωρισιμότητα  συστήματος).  Η  κεφαλίδα  αυτή,  παρέχει  στον  πιθανό 

κακόβουλο χρήστη πληροφορίες για το διακομιστή, γεγονός επικίνδυνο. 

❖ 

Γίνεται  καταγραφή  των  ενεργειών  των  χρηστών,  σε  θέματα  σύνδεσης  στο 
σύστημα  και  αποστολής  εντολών  στις  συσκευές,  με  σκοπό  την  αναγνώριση 
πιθανών κακόβουλων ενεργειών. 

❖ 

Η  επικοινωνία  των  πελατών  (clients)  με  τον  διακομιστή  (server),  γίνεται 
κρυπτογραφημένα  μέσω  TLS  (Transport  Layer  Security).  Έτσι,  η  υποκλοπή 
δεδομένων με τεχνικές packet sniffing και Man in the Middle είναι δύσκολη έως 

αδύνατη. 
 

4.8 Σύνοψη κεφαλαίου 

 
 

Στο κεφάλαιο αυτό, αναλύθηκαν και επεξηγήθηκαν σε βάθος τόσο οι πτυχές του 

λογισμικού,  όσο  και  του  υλικού  μέρους  της  εργασίας.  Έγινε  αναφορά  σε  σημαντικά 

τμήματα του κώδικα ο οποίος εκτελείται στο διακομιστή, την εφαρμογή του διαχειριστή, 
την κινητή εφαρμογή των χρηστών, αλλά και στην συσκευή. Επιπλέον, έγινε εμβάθυνση 
στις  λειτουργίες  των  εφαρμογών  μέσα  από  αναλυτικά  στιγμιότυπα,  όπως  και  στην 

συνδεσμολογία των υλικών για την υλοποίηση της συσκευής στην τελική της μορφή. 
 
 

 

 

10

 https://helmetjs.github.io/