Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)

Έχω έναν μικρόελεγκτή(raspberry pi) στο σπίτι ο οποίος παίρνει κάτι μετρισεις. Σε συγκεκριμένες περιπτώσεις θέλω να φτιάξω εφαρμογή στο κινητό που να με ενημερώνει πχ για θερμοκρασία οταν υπερβαίνει ένα βαθμό ή οτιδήποτε άλλο. Ποιος είναι ο ποιο σωστός τρόπος για να επικοινωνησει με μεγαλύτερη ασφάλεια ο μικρόελεγκτής με το κινητό μου? Στο σπίτι έχω δυναμική ip. Ένας τρόπος που είχα σκεφτεί είναι να στέλνω σε ένα site που έχω τα δεδομένα και με php να φτιάχνω μια σελίδα με όλα τα δεδομένα και από την εφαρμογή του κινητού να διαβάζω τη σελίδα αλλά το πρόβλημα είναι ότι
α. Θα μπορεί να τα δει ο οποιοσδήποτε και
β. Είναι πιθανόν αν βρει κάποιος πχ πως στην τάδε σελίδα στέλνω με post τα δεδομένα να το κάνει οποιοσδήποτε και να γελάει μαζί μου...

Επεξ/σία από BluEDr4g0n
Δημοσ.

δε διευκρινίζεις πως θες να μιλάνε

θες το κινητό να ζητάει δεδομένα από το raspberry, θες το raspberry να στέλνει στο κινητό όταν πρέπει

 

το πρώτο μπορείς να στήσεις στο raspberry έναν ελαφρύ web server με authentication πχ

 

το δεύτερο αν είναι για android μπορείς να το κάνεις εύκολα με το gcm https://developers.google.com/cloud-messaging/αν θες το rasp να στέλνει στο κινητό με push notifications κλπ

Δημοσ.

Και τα δύο με ενδιαφέρει να τα μάθω αλλά στην περίπτωση μου μάλλον το 2ο μου κάνει καλύτερο...

 

Στο πρώτο όμως αφού έχω dynamic ip δεν είναι πρόβλημα αυτό? Μήπως θα βοηθαγε η εύρεση της ip με ddns?

Δημοσ.

όχι και μικροελεκτής το rpi. Η ερώτησή σου δεν έχει να κάνει με μικροελεκτές ή με κινητό, αλλά γενικά με ασφάλεια. Βρες έναν ασφαλή τρόπο γενικά (καλό authentication) και χρησιμοποίησε το 

Δημοσ.

Για το πρόβλημα με την dynamic ip νομίζω χρειάζεσε DYNAMIC DNS (δες εδώ Link.png Site: link ), χρειάνονται και κάτι ρυθμίσεις στον router

 

ο μικροελεγκτής σου επικοινωνεί με τον router σου να υποθέσω με wifi ?

 Ένα τρόπος θα ήταν να υλοποιήσεις ένα tcp/ip πρωτόκολλο (client  στο κινητό, server στον microcontroller),

άλλος να φτιάξεις site με τον microcontroller, ότι είναι πιο εύκολο για τον microcontroller που έχεις

Δημοσ.

Έχω έναν μικρόελεγκτή(raspberry pi) στο σπίτι ο οποίος παίρνει κάτι μετρισεις. Σε συγκεκριμένες περιπτώσεις θέλω να φτιάξω εφαρμογή στο κινητό που να με ενημερώνει πχ για θερμοκρασία οταν υπερβαίνει ένα βαθμό ή οτιδήποτε άλλο. Ποιος είναι ο ποιο σωστός τρόπος για να επικοινωνησει με μεγαλύτερη ασφάλεια ο μικρόελεγκτής με το κινητό μου? Στο σπίτι έχω δυναμική ip. Ένας τρόπος που είχα σκεφτεί είναι να στέλνω σε ένα site που έχω τα δεδομένα και με php να φτιάχνω μια σελίδα με όλα τα δεδομένα και από την εφαρμογή του κινητού να διαβάζω τη σελίδα αλλά το πρόβλημα είναι ότι

α. Θα μπορεί να τα δει ο οποιοσδήποτε και

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

 

Δεν το λες και μικροελεγκτή το Raspi. Οι λύσεις τύπου DDNS, NoIp κτλ - τουλάχιστον στη δωρεάν version τους - έχω δοκιμάσει και έχω δει ότι δέχονται πολλές επιθέσεις από τρίτους.

 

Αυτό που κάνω εγώ είναι να χρησιμοποιώ καταρχάς κρυπτογραφημένο κανάλι επικοινωνίας. Του τεστινγ HTTPS. Επιπλέον υλοποιώ ακόμα μια κρυπτογράφηση δημοσίου κλειδιού στα μηνύματα που στέλνω(φωλιασμένη δηλαδή).(κρυπτογραφώ τα μηνύματα που στέλνω με ιδιωτικό μου κλειδί και ο server τα αποκρυπτογραφεί με το δημόσιο μου. Έτσι ξέρει ότι είμαι εγώ)

 

Αυτά γίνονται με μια ποστ στον σερβερ κάθε τόσο.(π.χ. μπορείς να το κάνεις μέσα από cron). Έτσι το RasPi που έχεις σπίτι, μαρτυράει και τη διεύθυνση που έχει και ξέρεις που θα το βρεις.

Δημοσ.

O Μικροελεγκτής (μC) και o Μικροεπεξεργαστής (μP) έχουν διαφορές μεταξύ τους!

Το RasPi δε διαθέτει Μικροελεγκτή αλλά Μικροεπεξεργαστή. 

Δημοσ.

"Υπολογιστής" είναι ένας γενικός χαρακτηρισμός. Ο υπολογιστής με "κάτι" υπολογίζει, όπου στη συγκεκριμένη πλατφόρμα αυτό που χρησιμοποιεί για τους υπολογισμούς είναι ένας μP.

 

Αν δε θέλουμε να είμαστε ακριβής, διαθέτει ένα System-on-a-chip (SoC) που περιέχει ένα μP, GPU και άλλα δευτερεύοντα chip και αυτό το SoC συν το περιφερειακό hardware ολοκληρώνουν το RasPi ως "υπολογιστή" μικρής κλίμακας.

Δημοσ.

Δεν το λες και μικροελεγκτή το Raspi. Οι λύσεις τύπου DDNS, NoIp κτλ - τουλάχιστον στη δωρεάν version τους - έχω δοκιμάσει και έχω δει ότι δέχονται πολλές επιθέσεις από τρίτους.

 

Αυτό που κάνω εγώ είναι να χρησιμοποιώ καταρχάς κρυπτογραφημένο κανάλι επικοινωνίας. Του τεστινγ HTTPS. Επιπλέον υλοποιώ ακόμα μια κρυπτογράφηση δημοσίου κλειδιού στα μηνύματα που στέλνω(φωλιασμένη δηλαδή).(κρυπτογραφώ τα μηνύματα που στέλνω με ιδιωτικό μου κλειδί και ο server τα αποκρυπτογραφεί με το δημόσιο μου. Έτσι ξέρει ότι είμαι εγώ)

 

Αυτά γίνονται με μια ποστ στον σερβερ κάθε τόσο.(π.χ. μπορείς να το κάνεις μέσα από cron). Έτσι το RasPi που έχεις σπίτι, μαρτυράει και τη διεύθυνση που έχει και ξέρεις που θα το βρεις.

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

Και κατι τελευταίο,

Εχω ενα website σε εναν σερβερ, μήπως θα ήταν ασφαλές το rasPi να μιλάει με τον σερβερ και ο σερβερ με τη σηρά του να στέλνει στο κινητό και το αντίστροφο? Η είναι τσάμπα ο κόπος?

Άλλαξα και τον τίτλο αφού απο οτι κατάλαβα με οσα είπατε ο το RasPi δεν ειναι μικροελεγκτής!

Δημοσ.

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

Και κατι τελευταίο,

Εχω ενα website σε εναν σερβερ, μήπως θα ήταν ασφαλές το rasPi να μιλάει με τον σερβερ και ο σερβερ με τη σηρά του να στέλνει στο κινητό και το αντίστροφο? Η είναι τσάμπα ο κόπος?

Άλλαξα και τον τίτλο αφού απο οτι κατάλαβα με οσα είπατε ο το RasPi δεν ειναι μικροελεγκτής!

 

 

To raspi τρεχει firmware ή os;

Δημοσ.

Κοίτα φίλε μου. Σκέψου το έτσι. Το μόνο σίγουρο είναι ότι ξέρεις που βρίσκεται ο server. Δεν ξέρεις ούτε που βρίσκεται το RasPi, ούτε το κινητό.

 

Άρα ο server είναι ο κεντρικός σου κόμβος. Όλοι μιλάνε με αυτόν και όχι μεταξύ τους.(αλλιώς προδίδεις τις θέσεις τους - είτε RasPi - είτε κινητά που δεν το θες - τουλάχιστον απ' όσο μπορώ να σκεφτώ --- προδίδεις τις θέσεις τους για ορισμένο χρόνο καθότι αλλάζουν IP χωρίς καμιά ειδοποίηση)

 

Μπορείς αρχικά να κάνεις το project σου σε ένα επίπεδο που να χρησιμοποιεί ασφάλεια που κανείς θα κάτσει να τη σπάσει.(υπάρχει και αγγλικός ορισμός αλλά δεν τον θυμάμαι τώρα)

 

(ένα διάγραμμα ροών θα βοηθούσε τώρα πολύ)

 

Το όλο θέμα είναι:

 

1) Δεδομένα φεύγουν από το RasPi με τη απλή μορφή Post Request.

2) Ο σερβερ λαμβάνει τα δεδομένα αυτά από ένα php script.

3) Ο mobile client επικοινωνεί με τον server και λαμβάνει ότι δεδομένα έχει ο σερβερ μέχρι εκείνο το σημείο να του δώσει

 

1α) Το Raspi πως θα το στίσεις να στέλνει δεδομένα; Python, Perl, Php, Curl;

 

2α) Το "script" θα πρέπει γενικά να το κρύψεις. Να δέχεται μόνο POST και τίποτα άλλο. Να δέχεται ακριβώς του τύπους τον δεδομένων που περιμένεις(αριθμό - string arrays κτλ). Αν δεν γίνει POST request να σου πετάει 404 not found. Το script να βρίσκεται σε υποφάκελο με περίεργο name και το ίδιο το script πάλι με περίεργο name.(π.χ. /FIb3di43fbdub243fv/i2b34i23b4io23n4.php). Να μην φαίνεται σε sitemaps.


Ξέχασα να αναφέρω ψευτασφάλεια.

 

Μπορείς, βάση μιας γεννήτριας τυχαίων αριθμών και γραμμάτων, να φτιάξεις ένα αρχείο με αρκετές(τάξης MB) γραμμές με τυχαία αλφαριθμητικά.(των 50 χαρακτήρων ανά γραμμή π.χ.)

 

Αυτή η λίστα θα υπάρχει και στο RasPi και στο server. Κάθε φορά που θα έχεις ένα έγκυρο request σβήνεις την πρώτη γραμμή του αρχείου από server+client. Στο επόμενο request περιμένεις τα δεδομένα + την επόμενη γραμμή του αρχείου κτλ κτλ Αν στην POST δίνεται λάθος request password γυρνάς ένα error-500 (παράδειγμα)

 

Το πας ακόμα παραπέρα άμα θες. Παράγεις αυτούς του ψευδοτυχαίους αριθμούς και βάση αυτών φτιάχνεις άλλους. Έτσι θα σου τελειώσουν πολύ ποιο αργά τα password αυτά.

 

 

Άλλο κόλπο είναι να παίρνεις π.χ. το lenght των δεδομένων σου και ανάλογα να το πολλαπλασιάζεις - διαιρείς και δεν ξέρω και εγώ τι και να το στέλνεις σαν παράμετρο ελέγχου. Αντίστοιχα ο server βγάζοντας αυτή τη παράμετρο να κάνει την ίδια επαλήθευση.

 

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

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...