Page 1 of 1

Cryptowave (SMS encryption)

Posted: Sat Jan 05, 2008 1:29 am
by ablaz3r
Καλησπέρα.

Μιας και πλέον είμαι κάτοχος windows mobile, (ναι ναι, μην κράζετε, τώρα κατάλαβα την @@ που έκανα - το έχω 2 μέρες και έχω κάνει 3 hard reset και περίπου 6-7 soft reset καθημερινά) πιστεύω ότι είναι καιρός να δημοσιεύσω ένα μικρό προγραμματάκι που άρχισα πριν λίγους μήνες για symbian s60v3 κινητά.

Το cryptowave είναι ένα απλό προγραμματάκι (μόλις 180 γραμμές κώδικα), γραμμένο σε python και αναλαμβάνει να κρυπτογραφήσει τα sms σας με τον AES, πριν αυτά σταλούν στον παραλήπτη τους. Έτσι τα sms μεταδίδονται κρυπτογραφημένα μέσω του δικτύου κινητής τηλεφωνίας. Ουσιαστικά πρόκειται για end-to-end encryption από κινητό σε κινητό. Φυσικά θα πρέπει και ο παραλήπτης να έχει symbian s60v3 κινητό και να έχει εγκατεστημένο το cryptowave, καθώς και να έχετε προσυμφωνήσει ένα μυστικό κλειδί.

Το πρόγραμμα διανέμεται με το Apache license, μπορείτε να το αλλάξετε όπως επιθυμητέ και μακάρι να βρεθεί κάποιος που θα το συνεχίσει, διότι δεν με βλέπω να γυρνάω σε symbian ξανά.

Ο λόγος που το έφτιαξα είναι καθαρά γιατί ήθελα να πειραματιστώ με την python... Το τι χρησιμότητα έχει να κρυπτογραφείτε τα sms σας, δεν ξέρω, ακόμα κ εγώ που είμαι παρανοϊκός δεν το χρησιμοποιώ και πολύ συχνά...

Ελπίζω όταν βρω χρόνο να το κάνω port για windows mobile (αν δεν έχω πετάξει το κινητό από το παράθυρο πρώτα) και έπειτα για iphone...
Δεν έχω για την ώρα to-do list αλλά σκεφτόμουν να το φτιάξω να υποστηρίζει ασύμμετρη κρυπτογράφηση, αν και σε symbian με python είναι μάλλον απίθανο, ίσως στο windows mobile...

Επισυνάπτω 2 zip. Το cryptowave-no-python έχει το sis αρχείο για όσους έχουν ήδη εγκατεστημένη την python στο κινητό τους, και το cryptowave-python είναι ένα sis που περιέχει το πρόγραμμα καθώς και την python, ενώ και τα δύο περιέχουν τον κώδικα του προγράμματος. Για τους άπιστους Θωμάδες :lol: μπορείτε να κάνετε extract το *.sis και να ελέγξετε τον κώδικα εκεί (interpreted είναι οπότε μπορείτε να τον διαβάσετε κανονικά) οι μόνες αλλαγές είναι στα σχόλια στα οποία έγραφα ότι να ναι :lol: και τα οποία άλλαξα λίγο αλλά βαρέθηκα να ξαναφτιάξω τα sis...

Λίγες τεχνικές λεπτομέρειες, αν και μπορείτε να τα δείτε από τον κώδικα:

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

Το κλειδί κρυπτογράφησης περνάει από μια μονόδρομη συνάρτηση 5000 φορές (sha256), και το τελικό hash χωρίζεται στην μέση και τα πρώτα 32 byte (256 bit) αποτελούν το κλειδί κρυπτογράφησης για τον AES-256.
Η ασφάλεια που προσφέρει είναι αμφισβητούμενη, διότι για την κρυπτογράφηση χρησιμοποιώ ένα port του pycrypto για symbian, το οποίο δεν είναι official, καθώς και το αντίστοιχο port του sha256, τα οποία αν και είναι open source, δεν νομίζω ότι έχει κανείς διάθεση να μελετήσει προσεκτικά τον κώδικα για να δει αν οι υλοποιήσεις είναι σωστές...

Αυτά. Για οτιδήποτε απορίες, επισημάνσεις και προτάσεις κάντε post, αν και δεν νομίζω ότι υπάρχουν αρκετοί καμένοι που θα το δοκιμάσουν :lol: . User manual δεν υπάρχει, αλλά δεν νομίζω να το χρειαστείτε...
Btw, το πρόγραμμα λογικά θα παίζει άριστα σε S60 v2 αλλά κάποιος πρέπει να κάνει compile το pys60crypto module για S60 v2 και εγώ βαριέμαι ;). Αν το κάνει κανείς, ας μου το στείλει κ θα φτιάξω sis και για v2.

Νύχταααα

Re: Cryptowave (SMS encryption)

Posted: Sun Jan 06, 2008 6:29 pm
by Sreak
Καλή δουλειά nick!
Χαρά στο κουράγιο σου :)