You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/el/2-farm/lessons/6-keep-your-plant-secure
co-op-translator[bot] 2f4dff5e89
🌐 Update translations via Co-op Translator (#546)
4 weeks ago
..
README.md 🌐 Update translations via Co-op Translator (#546) 4 weeks ago
assignment.md 🌐 Update translations via Co-op Translator (#546) 4 weeks ago
single-board-computer-x509.md 🌐 Update translations via Co-op Translator (#546) 4 weeks ago
wio-terminal-x509.md 🌐 Update translations via Co-op Translator (#546) 4 weeks ago

README.md

Κρατήστε το φυτό σας ασφαλές

Μια σκιαγραφική επισκόπηση αυτού του μαθήματος

Σκίτσο από τη Nitya Narasimhan. Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση.

Ερωτηματολόγιο πριν το μάθημα

Ερωτηματολόγιο πριν το μάθημα

Εισαγωγή

Στα τελευταία μαθήματα δημιουργήσατε μια συσκευή IoT για παρακολούθηση του εδάφους και τη συνδέσατε στο cloud. Αλλά τι θα γινόταν αν χάκερ που εργάζονται για έναν ανταγωνιστή αγρότη κατάφερναν να πάρουν τον έλεγχο των συσκευών σας IoT; Τι θα γινόταν αν έστελναν υψηλές μετρήσεις υγρασίας εδάφους ώστε τα φυτά σας να μην ποτίζονται ποτέ, ή αν ενεργοποιούσαν το σύστημα ποτίσματος συνεχώς, καταστρέφοντας τα φυτά σας από υπερβολικό πότισμα και σας κόστιζαν μια μικρή περιουσία σε νερό;

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

Σε αυτό το μάθημα θα καλύψουμε:

🗑 Αυτό είναι το τελευταίο μάθημα αυτού του έργου, οπότε μετά την ολοκλήρωση του μαθήματος και της εργασίας, μην ξεχάσετε να καθαρίσετε τις υπηρεσίες cloud σας. Θα χρειαστείτε τις υπηρεσίες για να ολοκληρώσετε την εργασία, οπότε βεβαιωθείτε ότι την ολοκληρώσατε πρώτα.

Ανατρέξτε στον οδηγό καθαρισμού του έργου σας εάν χρειάζεστε οδηγίες για το πώς να το κάνετε.

Γιατί χρειάζεται να ασφαλίσετε τις συσκευές IoT;

Η ασφάλεια IoT περιλαμβάνει τη διασφάλιση ότι μόνο οι αναμενόμενες συσκευές μπορούν να συνδεθούν στην υπηρεσία IoT του cloud σας και να στείλουν τηλεμετρία, και ότι μόνο η υπηρεσία cloud σας μπορεί να στείλει εντολές στις συσκευές σας. Τα δεδομένα IoT μπορεί επίσης να είναι προσωπικά, όπως ιατρικά ή ευαίσθητα δεδομένα, οπότε ολόκληρη η εφαρμογή σας πρέπει να λαμβάνει υπόψη την ασφάλεια για να αποτρέψει τη διαρροή αυτών των δεδομένων.

Αν η εφαρμογή IoT σας δεν είναι ασφαλής, υπάρχουν αρκετοί κίνδυνοι:

  • Μια ψεύτικη συσκευή θα μπορούσε να στείλει λανθασμένα δεδομένα, προκαλώντας την εφαρμογή σας να αντιδράσει λανθασμένα. Για παράδειγμα, θα μπορούσαν να στείλουν συνεχώς υψηλές μετρήσεις υγρασίας εδάφους, ώστε το σύστημα άρδευσης να μην ενεργοποιείται ποτέ και τα φυτά σας να πεθαίνουν από έλλειψη νερού.
  • Μη εξουσιοδοτημένοι χρήστες θα μπορούσαν να διαβάσουν δεδομένα από συσκευές IoT, συμπεριλαμβανομένων προσωπικών ή κρίσιμων για την επιχείρηση δεδομένων.
  • Χάκερ θα μπορούσαν να στείλουν εντολές για να ελέγξουν μια συσκευή με τρόπο που θα μπορούσε να προκαλέσει ζημιά στη συσκευή ή στο συνδεδεμένο υλικό.
  • Συνδεόμενοι σε μια συσκευή IoT, οι χάκερ θα μπορούσαν να χρησιμοποιήσουν αυτή τη σύνδεση για να αποκτήσουν πρόσβαση σε επιπλέον δίκτυα και να εισέλθουν σε ιδιωτικά συστήματα.
  • Κακόβουλοι χρήστες θα μπορούσαν να αποκτήσουν πρόσβαση σε προσωπικά δεδομένα και να τα χρησιμοποιήσουν για εκβιασμό.

Αυτά είναι σενάρια πραγματικού κόσμου και συμβαίνουν συνεχώς. Μερικά παραδείγματα δόθηκαν σε προηγούμενα μαθήματα, αλλά εδώ είναι μερικά ακόμα:

Κάντε μια έρευνα: Αναζητήστε περισσότερα παραδείγματα επιθέσεων και παραβιάσεων δεδομένων IoT, ειδικά με προσωπικά αντικείμενα όπως οδοντόβουρτσες ή ζυγαριές συνδεδεμένες στο Internet. Σκεφτείτε τον αντίκτυπο που θα μπορούσαν να έχουν αυτές οι επιθέσεις στα θύματα ή στους πελάτες.

💁 Η ασφάλεια είναι ένα τεράστιο θέμα, και αυτό το μάθημα θα αγγίξει μόνο μερικά από τα βασικά γύρω από τη σύνδεση της συσκευής σας στο cloud. Άλλα θέματα που δεν θα καλυφθούν περιλαμβάνουν την παρακολούθηση αλλαγών δεδομένων κατά τη μεταφορά, την άμεση παραβίαση συσκευών ή τις αλλαγές στις διαμορφώσεις συσκευών. Η παραβίαση συσκευών IoT είναι τόσο μεγάλη απειλή που έχουν αναπτυχθεί εργαλεία όπως το Azure Defender for IoT. Αυτά τα εργαλεία είναι παρόμοια με τα εργαλεία αντι-ιών και ασφάλειας που μπορεί να έχετε στον υπολογιστή σας, απλώς σχεδιασμένα για μικρές, χαμηλής ισχύος συσκευές IoT.

Κρυπτογραφία

Όταν μια συσκευή συνδέεται σε μια υπηρεσία IoT, χρησιμοποιεί ένα ID για να ταυτοποιηθεί. Το πρόβλημα είναι ότι αυτό το ID μπορεί να αντιγραφεί - ένας χάκερ θα μπορούσε να δημιουργήσει μια κακόβουλη συσκευή που χρησιμοποιεί το ίδιο ID με μια πραγματική συσκευή αλλά στέλνει ψευδή δεδομένα.

Τόσο οι έγκυρες όσο και οι κακόβουλες συσκευές θα μπορούσαν να χρησιμοποιούν το ίδιο ID για να στέλνουν τηλεμετρία

Η λύση σε αυτό είναι να μετατραπούν τα δεδομένα που αποστέλλονται σε μια κωδικοποιημένη μορφή, χρησιμοποιώντας μια τιμή γνωστή μόνο στη συσκευή και το cloud για την κωδικοποίηση των δεδομένων. Αυτή η διαδικασία ονομάζεται κρυπτογράφηση, και η τιμή που χρησιμοποιείται για την κρυπτογράφηση των δεδομένων ονομάζεται κλειδί κρυπτογράφησης.

Αν χρησιμοποιηθεί κρυπτογράφηση, τότε μόνο τα κρυπτογραφημένα μηνύματα θα γίνονται δεκτά, ενώ τα υπόλοιπα θα απορρίπτονται

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

Η τεχνική για την κρυπτογράφηση και την αποκρυπτογράφηση ονομάζεται κρυπτογραφία. 💁 Εξαιτίας του χρόνου λήξης, η συσκευή IoT σας πρέπει να γνωρίζει την ακριβή ώρα, η οποία συνήθως λαμβάνεται από έναν διακομιστή NTP. Εάν η ώρα δεν είναι ακριβής, η σύνδεση θα αποτύχει. Μετά τη σύνδεση, όλα τα δεδομένα που αποστέλλονται στο IoT Hub από τη συσκευή ή από το IoT Hub στη συσκευή θα κρυπτογραφούνται με το κοινόχρηστο κλειδί πρόσβασης.

Τι πιστεύετε ότι θα συμβεί αν πολλές συσκευές μοιράζονται το ίδιο connection string;

💁 Είναι κακή πρακτική ασφαλείας να αποθηκεύετε αυτό το κλειδί στον κώδικα. Αν ένας χάκερ αποκτήσει τον πηγαίο κώδικά σας, μπορεί να αποκτήσει το κλειδί σας. Επίσης, είναι πιο δύσκολο κατά την κυκλοφορία του κώδικα, καθώς θα πρέπει να κάνετε επανασυμπίεση με ένα ενημερωμένο κλειδί για κάθε συσκευή. Είναι καλύτερο να φορτώνετε αυτό το κλειδί από ένα hardware security module - ένα τσιπ στη συσκευή IoT που αποθηκεύει κρυπτογραφημένες τιμές που μπορούν να διαβαστούν από τον κώδικά σας.

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

Οι συσκευές έχουν 2 κλειδιά και 2 αντίστοιχα connection strings. Αυτό σας επιτρέπει να περιστρέφετε τα κλειδιά - δηλαδή να αλλάζετε από το ένα κλειδί στο άλλο αν το πρώτο παραβιαστεί, και να αναδημιουργείτε το πρώτο κλειδί.

Πιστοποιητικά X.509

Όταν χρησιμοποιείτε ασύμμετρη κρυπτογράφηση με ένα ζεύγος δημόσιου/ιδιωτικού κλειδιού, πρέπει να παρέχετε το δημόσιο κλειδί σας σε οποιονδήποτε θέλει να σας στείλει δεδομένα. Το πρόβλημα είναι, πώς μπορεί ο παραλήπτης του κλειδιού σας να είναι σίγουρος ότι είναι πραγματικά το δημόσιο κλειδί σας και όχι κάποιου άλλου που προσποιείται ότι είστε εσείς; Αντί να παρέχετε ένα κλειδί, μπορείτε να παρέχετε το δημόσιο κλειδί σας μέσα σε ένα πιστοποιητικό που έχει επαληθευτεί από έναν αξιόπιστο τρίτο, που ονομάζεται πιστοποιητικό X.509.

Τα πιστοποιητικά X.509 είναι ψηφιακά έγγραφα που περιέχουν το δημόσιο κλειδί του ζεύγους δημόσιου/ιδιωτικού κλειδιού. Συνήθως εκδίδονται από έναν αριθμό αξιόπιστων οργανισμών που ονομάζονται Αρχές Πιστοποίησης (CAs) και υπογράφονται ψηφιακά από την CA για να υποδειχθεί ότι το κλειδί είναι έγκυρο και προέρχεται από εσάς. Εμπιστεύεστε το πιστοποιητικό και ότι το δημόσιο κλειδί είναι από αυτόν που λέει το πιστοποιητικό, επειδή εμπιστεύεστε την CA, όπως θα εμπιστευόσασταν ένα διαβατήριο ή δίπλωμα οδήγησης επειδή εμπιστεύεστε τη χώρα που το εκδίδει. Τα πιστοποιητικά κοστίζουν χρήματα, οπότε μπορείτε επίσης να "υπογράψετε μόνοι σας", δηλαδή να δημιουργήσετε ένα πιστοποιητικό μόνοι σας που υπογράφεται από εσάς, για δοκιμαστικούς σκοπούς.

💁 Δεν πρέπει ποτέ να χρησιμοποιείτε ένα αυτο-υπογεγραμμένο πιστοποιητικό για παραγωγική κυκλοφορία.

Αυτά τα πιστοποιητικά περιέχουν διάφορα πεδία, όπως από ποιον είναι το δημόσιο κλειδί, τα στοιχεία της CA που το εξέδωσε, για πόσο καιρό είναι έγκυρο και το ίδιο το δημόσιο κλειδί. Πριν χρησιμοποιήσετε ένα πιστοποιητικό, είναι καλή πρακτική να το επαληθεύσετε ελέγχοντας ότι υπογράφηκε από την αρχική CA.

Μπορείτε να διαβάσετε μια πλήρη λίστα των πεδίων του πιστοποιητικού στο Microsoft Understanding X.509 Public Key Certificates tutorial

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

Αντί να μοιράζεστε ένα δημόσιο κλειδί, μπορείτε να μοιράζεστε ένα πιστοποιητικό. Ο χρήστης του πιστοποιητικού μπορεί να επαληθεύσει ότι προέρχεται από εσάς ελέγχοντας με την αρχή πιστοποίησης που το υπέγραψε.

Ένα μεγάλο πλεονέκτημα της χρήσης πιστοποιητικών X.509 είναι ότι μπορούν να μοιραστούν μεταξύ συσκευών. Μπορείτε να δημιουργήσετε ένα πιστοποιητικό, να το ανεβάσετε στο IoT Hub και να το χρησιμοποιήσετε για όλες τις συσκευές σας. Κάθε συσκευή χρειάζεται μόνο να γνωρίζει το ιδιωτικό κλειδί για να αποκρυπτογραφήσει τα μηνύματα που λαμβάνει από το IoT Hub.

Το πιστοποιητικό που χρησιμοποιείται από τη συσκευή σας για να κρυπτογραφήσει μηνύματα που στέλνει στο IoT Hub δημοσιεύεται από τη Microsoft. Είναι το ίδιο πιστοποιητικό που χρησιμοποιούν πολλές υπηρεσίες Azure και μερικές φορές είναι ενσωματωμένο στα SDKs.

💁 Θυμηθείτε, ένα δημόσιο κλειδί είναι ακριβώς αυτό - δημόσιο. Το δημόσιο κλειδί του Azure μπορεί να χρησιμοποιηθεί μόνο για να κρυπτογραφήσει δεδομένα που αποστέλλονται στο Azure, όχι για να τα αποκρυπτογραφήσει, οπότε μπορεί να κοινοποιηθεί παντού, συμπεριλαμβανομένου του πηγαίου κώδικα. Για παράδειγμα, μπορείτε να το δείτε στον πηγαίο κώδικα του Azure IoT C SDK.

Υπάρχει πολύ ορολογία με τα πιστοποιητικά X.509. Μπορείτε να διαβάσετε τους ορισμούς ορισμένων από τους όρους που μπορεί να συναντήσετε στον Οδηγό για την ορολογία των πιστοποιητικών X.509

Δημιουργία και χρήση πιστοποιητικού X.509

Τα βήματα για τη δημιουργία ενός πιστοποιητικού X.509 είναι:

  1. Δημιουργήστε ένα ζεύγος δημόσιου/ιδιωτικού κλειδιού. Ένας από τους πιο ευρέως χρησιμοποιούμενους αλγόριθμους για τη δημιουργία ενός ζεύγους δημόσιου/ιδιωτικού κλειδιού ονομάζεται RivestShamirAdleman(RSA).

  2. Υποβάλετε το δημόσιο κλειδί με τα σχετικά δεδομένα για υπογραφή, είτε από μια CA είτε με αυτο-υπογραφή.

Το Azure CLI έχει εντολές για τη δημιουργία μιας νέας ταυτότητας συσκευής στο IoT Hub και τη δημιουργία αυτόματα του ζεύγους δημόσιου/ιδιωτικού κλειδιού και ενός αυτο-υπογεγραμμένου πιστοποιητικού.

💁 Αν θέλετε να δείτε τα βήματα με λεπτομέρεια, αντί να χρησιμοποιήσετε το Azure CLI, μπορείτε να τα βρείτε στο Using OpenSSL to create self-signed certificates tutorial in the Microsoft IoT Hub documentation

Εργασία - δημιουργία ταυτότητας συσκευής χρησιμοποιώντας πιστοποιητικό X.509

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

    az iot hub device-identity create --device-id soil-moisture-sensor-x509 \
                                      --am x509_thumbprint \
                                      --output-dir . \
                                      --hub-name <hub_name>
    

    Αντικαταστήστε το <hub_name> με το όνομα που χρησιμοποιήσατε για το IoT Hub.

    Αυτό θα δημιουργήσει μια συσκευή με ID soil-moisture-sensor-x509 για να διακρίνεται από την ταυτότητα συσκευής που δημιουργήσατε στο προηγούμενο μάθημα. Αυτή η εντολή θα δημιουργήσει επίσης 2 αρχεία στον τρέχοντα κατάλογο:

    • soil-moisture-sensor-x509-key.pem - αυτό το αρχείο περιέχει το ιδιωτικό κλειδί για τη συσκευή.
    • soil-moisture-sensor-x509-cert.pem - αυτό είναι το αρχείο πιστοποιητικού X.509 για τη συσκευή.

    Κρατήστε αυτά τα αρχεία ασφαλή! Το αρχείο ιδιωτικού κλειδιού δεν πρέπει να ελεγχθεί σε δημόσιο έλεγχο πηγαίου κώδικα.

Εργασία - χρήση του πιστοποιητικού X.509 στον κώδικα της συσκευής σας

Ακολουθήστε τον σχετικό οδηγό για να συνδέσετε τη συσκευή IoT σας στο cloud χρησιμοποιώντας το πιστοποιητικό X.509:


🚀 Πρόκληση

Υπάρχουν πολλοί τρόποι για να δημιουργήσετε, να διαχειριστείτε και να διαγράψετε υπηρεσίες Azure, όπως Resource Groups και IoT Hubs. Ένας τρόπος είναι το Azure Portal - μια διεπαφή ιστού που σας παρέχει ένα GUI για τη διαχείριση των υπηρεσιών Azure.

Μεταβείτε στο portal.azure.com και εξερευνήστε το portal. Δείτε αν μπορείτε να δημιουργήσετε ένα IoT Hub χρησιμοποιώντας το portal και στη συνέχεια να το διαγράψετε.

Υπόδειξη - όταν δημιουργείτε υπηρεσίες μέσω του portal, δεν χρειάζεται να δημιουργήσετε ένα Resource Group εκ των προτέρων, μπορεί να δημιουργηθεί κατά τη δημιουργία της υπηρεσίας. Βεβαιωθείτε ότι το διαγράφετε όταν τελειώσετε!

Μπορείτε να βρείτε άφθονη τεκμηρίωση, tutorials και οδηγούς για το Azure Portal στη τεκμηρίωση του Azure Portal.

Κουίζ μετά το μάθημα

Κουίζ μετά το μάθημα

Ανασκόπηση & Αυτομελέτη

Εργασία

Δημιουργήστε μια νέα συσκευή IoT


Αποποίηση ευθύνης:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης Co-op Translator. Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.