ΡΟΗ ΕΙΔΗΣΕΩΝ
Τι κρύβεται πίσω από την πειρατεία; Πόσο "αθώα" είναι; Μια ξενάγηση στη θεωρία των σύγχρονων συστημάτων πρόσβασης.
Από το Card Sharing στα Tweak keys

Featured | Πολλές φορές έχουμε αναρωτηθεί όλοι μας αν η πειρατεία είναι τόσο αθώα όσο φαίνεται. Μια ξενάγηση στη θεωρία των σύγχρονων συστημάτων πρόσβασης ίσως μας επιτρέψει να διαμορφώσουμε καλύτερα την άποψή μας, καθώς, όπως λένε, «η γνώση είναι δύναμη»
Συχνά υπάρχει η παρανόηση ότι το σήμα των συνδρομητικών πακέτων είναι κωδικοποιημένο βάσει συστημάτων κρυπτογράφησης, όπως Irdeto, Viaccess, Conax, Seca, κ.ά. Όμως, τα πράγματα δεν είναι έτσι. Όλα τα κλειδωμένα πράγματα στα οποία εμπλέκονται τα γράμματα DVB είναι κωδικοποιημένα με τον ίδιο ακριβώς αλγόριθμο! Αυτός λέγεται DVB-CSA (Digital Video Broadcasting – Common Scrambling Algorithm). Για να δουλέψει ο Κοινός Αλγόριθμος Κρυπτογράφησης χρειάζεται ένα κλειδί, το οποίο μεταδίδεται με κάποιο τρόπο μαζί με το κρυπτογραφημένο πακέτο. Έτσι, ο δέκτης χρησιμοποιεί το κλειδί αυτό για να ανοίξει το κρυπτογραφημένο πακέτο. Και εδώ εμπλέκονται τα συστήματα πρόσβασης. Δηλαδή, το κλειδί δεν είναι προσβάσιμο από όλους, ούτε είναι φανερό. Η συνδρομητική κάρτα με κάποιο τρόπο το ανακτά και το δίνει στον επεξεργαστή (CPU) του δέκτη, ώστε με την χρήση του CSA να κάνει την αποκωδικοποίηση. Αυτό το κλειδί λέγεται CW (Control Word).
Από τα παραπάνω είναι κατανοητό ότι για μια δεδομένη στιγμή, για κάποιο συγκεκριμένο πακέτο πληροφοριών, το κλειδί είναι το ίδιο για όλους. Δηλαδή, δεν γίνεται ξεχωριστό κλείδωμα για κάθε πελάτη, αφού θα ήταν ανούσιο και θα απαιτούσε τεράστιο όγκο δεδομένων κατά την μετάδοση. Αντί αυτού η συνδρομητική κάρτα ελέγχει κάθε συνδρομητή, τοπικά στο δέκτη του και αποφασίζει αν θα δοθεί το CW στον επεξεργαστή για περεταίρω χρήση (δηλ. το άνοιγμα του καναλιού). Σε αντίθετη περίπτωση θα αναγραφεί στην οθόνη το μήνυμα “Κωδικοποιημένο” ή κάτι ανάλογο. Όπως λοιπόν καταλαβαίνετε, τα συστήματα κρυπτογράφησης δεν είναι τίποτε περισσότερο από τον τρόπο που γίνεται η μεταφορά του κλειδιού.
Για να το κατανοήσουμε αυτό, ας πάρουμε ένα παράδειγμα. Φανταστείτε το κάθε πακέτο πληροφοριών (data) που έρχεται από τον δορυφόρο να είναι μέσα σε ένα χρηματοκιβώτιο. Το χρηματοκιβώτιο αυτό είναι το ίδιο με την ίδια κλειδαριά για όλους τους συνδρομητές. Μαζί με το χρηματοκιβώτιο, παραδίδεται και ένα μικρό κουτάκι που μέσα του έχει το κλειδί του. Για να ανοίξει όμως αυτό το κουτάκι, απαιτείται η συνδρομητική κάρτα, για να παράγει το κλειδί CW. Το CW αυτό ανοίγει το μικρό κουτί που βρίσκετε μέσα σε όλα τα χρηματοκιβώτια.
Σε αυτό το «παράδοξο» βασίζονται όλα τα συστήματα που μοιράζουν (νόμιμα ή παράνομα) κάποια συνδρομή. Ένας ανοίγει το κουτάκι και το μοιράζει (αντιγράφει) σε άλλους, οι οποίοι έτσι δεν χρειάζεται να ανοίξουν το δικό τους κουτί, αφού και να το ανοίξουν το ίδιο κλειδί θα βρουν μέσα.
Μέχρι τώρα λοιπόν όλη η πειρατεία δορυφορικών και άλλων μεταδόσεων βασιζόταν στο άνοιγμα του μικρού κουτιού και την ανάκτηση του CW, χωρίς κάποιος να επιτεθεί στην κλειδαριά του χρηματοκιβωτίου. Δηλαδή δεν χτυπούσαν τον στόχο άμεσα, αλλά τον εκάστοτε μεταφορέα του κλειδιού (Irdeto, Conax, κλπ).
Το CW δεν διαρκεί για πάντα. Συνήθως έχει κάποιο χρόνο ζωής που λέγεται CW validity time και κατά μέσο όρο κρατά περί τα 7 δευτερόλεπτα. Μέσα σε αυτό τον χρόνο πρέπει να έχει παραδοθεί το επόμενο CW, ώστε να μην υπάρχει διακοπή στην αποκωδικοποίηση κατά την αλλαγή του, που θα επιφέρει πάγωμα εικόνας. Ο χρόνος αυτός μπορεί να μεταβληθεί όπως επίσης υπάρχουν και περιπτώσεις που αυτός ο χρόνος είναι επ’ αόριστον και τότε μιλάμε για σταθερά κλειδιά, όπως είναι π.χ. στο σύστημα BISS.
Παρόλο που αυτή η αδυναμία είναι γνωστή από την εποχή των αναλογικών μεταδόσεων και συστημάτων κωδικοποίησης, δεν το θεωρούσαν πρόβλημα έως την εποχή που το Internet άνοιξε το δρόμο για το μοίρασμα των CW σε πραγματικό χρόνο. Τη δεκαετία του ’80 το μοίρασμα κλειδιών δούλευε ως εξής: Κάποιος έγγραφε τη ροή των κλειδιών σε κάποιο αρχείο και τα ανέβασε σε κάποιο BBS (Bulletin Board System), o πρόδρομος των σημερινών forum. Ο πελάτης έπρεπε να έχει μαγνητοσκοπήσει την εκπομπή που τον ενδιέφερε σε video (VCR) και μετά αφού κατέβαζε τα ανάλογα κλειδιά πέρναγε την εγγραφή μέσα από τον αποκωδικοποιητή, ενώ παράλληλα τον «τάιζε» με τα κλειδιά με τη χρήση ενός season interface. Αυτή η μανούβρα απαιτούσε ακριβό και σπάνιο, για την εποχή, εξοπλισμό. Τα PC και τα modem, καθώς και η συνδρομή στα BBS δεν ήταν, όπως τώρα, καθημερινά έξοδα. Αυτό σε συνδυασμό με την πειρατική γνώση που κατείχαν λίγοι και δεν την διέδιδαν (ή δεν μπορούσαν να διαδώσουν), το card sharing δεν θεωρήθηκε απειλή από τους κατασκευαστές του DVB –CSA, το οποίο μπήκε σε λειτουργία την επόμενη δεκαετία.
Τα πράγματα όμως άλλαξαν. Το Internet μπήκε πλέον σε κάθε σπίτι, ενώ το κόστος συνδρομής των πακέτων μεγάλωσε ιδιαίτερα, αδυναμία που εκμεταλλεύτηκαν οι πειρατές με το card sharing, ώστε να επιτρέψουν την θέαση συνδρομητικών καναλιών χωρίς συνδρομή, από έναν μεγάλο αριθμό, ακόμα και άσχετων με την τεχνολογία ατόμων. Βέβαια το μοίρασμα τον κλειδιών δεν είναι πάντα παράνομο και δεν είναι και λίγες οι περιπτώσεις που οι ίδιες οι εταιρίες των συνδρομητικών καναλιών «εκμεταλλεύτηκαν» την αδυναμία αυτή, για να προωθήσουν τα δικά τους συστήματα πολυθέασης από μία κάρτα (π.χ. Dual View – Τηλεθέαση σε δεύτερη TV).
Επειδή το μοίρασμα κλειδιών έχει ουσιαστικά μπει στην καθημερινότητα, είτε με την μορφή των νόμιμων οικιακών μοιρασμάτων (βλέπε card splitter, homenet, homeplus, κ.λπ.), αλλά κυρίως με την παράνομη διακίνησή τους από μεγάλους σερβερς με πληρωμή, άρχισε σιγά σιγά να ενοχλεί τους παρόχους συνδρομητικών καναλιών οι οποίοι ζήτησαν από τις εταιρίες των συστημάτων πρόσβασης να προστατέψουν καλύτερα τα κλειδιά τους.
Tweak what?
Το αποτέλεσμα της προσπάθειας να ξεπεραστεί το «κοινό κλειδί για όλους», ήρθε στους καταναλωτές με τη μορφή του παντρέματος του δέκτη-κάρτας και τη χρήση των tweak keys (σε ελεύθερη μετάφραση: πειραγμένα κλειδιά).
Ο όρος tweak keys έγινε γνωστός από μηνύματα των επίσημων δεκτών που εμφανίστηκαν για να ενημερώσουν τον συνδρομητή για κάποιο θέμα, όπως τα παρακάτω:
E80 – Not receive the de-tweak keys SoftCell cannot de-tweak the tweaked CW as it has not yet received the de-tweak key EMM (srvstatus = 12)
E81 – Not have the correct key to decrypt the received de-tweak keys SoftCell cannot de-tweak the tweaked CW as it does not have the correct key to decrypt the de-tweak key EMM (srvstatus = 13) |
Όπως αναφέραμε, σύμφωνα με τον αλγόριθμο DVB-CSA, για κάθε κωδικοποιημένο κανάλι η κάρτα πρόσβασης παραδίδει το κλειδί (CW). Αυτό το κλειδί υποκλέπτεται και μεταδίδεται σε πολλούς αποδέκτες. Η υποκλοπή γίνεται από τις επαφές τις κάρτας που συνδέετε με τον δέκτη, δηλαδή με κάποιο τρόπο (π.χ. Season interface, Dreambox, PC Server, κ.ά.) η επικοινωνία κάρτας επεξεργαστή παρακολουθείται και τα κλειδιά εξάγονται από αυτή για περεταίρω χρήση.
Έτσι έγινε μία αλλαγή. Η κάρτα έπαψε να μοιράζει τα κλειδιά με τρόπο κατανοητό από πολλούς, και απλά παραδίδει έναν αριθμό που ο επεξεργαστής του δέκτη μετατρέπει με κάποιον άλλο αλγόριθμο εσωτερικά σε αυτόν, σε CW. Με άλλα λόγια, τα πραγματικά κλειδιά «πειράζονται» (tweaked) πριν βγουν από την κάρτα και έτσι ακόμα και αν υποκλαπούν είναι άχρηστα.
Η παραπάνω ενέργεια απαιτεί αλλαγές στο υλικό (hardware) και εδώ μπαίνει ο όρος Secure Silicon. Ο επεξεργαστής έχει ένα πρόσθετο τμήμα το οποίο δημιουργεί μία μοναδική σχέση με την κάρτα πρόσβασης και η επικοινωνία μεταξύ τους γίνεται κρυπτογραφημένα. Κάτι ανάλογο έχουμε και με τις αγορές από ιντερνετομάγαζα με τη χρήση πιστωτικής κάρτας. Για να είναι ασφαλή τα στοιχεία της κάρτας μας, ο υπολογιστής ανοίγει ένα κρυπτογραφημένο κανάλι με το κατάστημα και μέσα από αυτό περνάει τα στοιχεία της χρέωσης. Ακόμα και αν κάποιος υποκλέψει τη μετάδοση δεν μπορεί να ανακτήσει από αυτή τα στοιχεία μας.
Η διαδικασία είναι σχετικά απλή. Ο δέκτης στέλνει στην κάρτα το κοινόχρηστο κλειδί του (στους δέκτες της Nova αυτό είναι ο αριθμός CSSN, που φαίνεται στις πληροφορίες του δέκτη) και η κάρτα με αυτό το νούμερο κρυπτογραφεί (tweaks) το κλειδί CW πριν το δώσει στον δέκτη. Ο δέκτης με την σειρά του, μόλις πάρει το tweaked CW, με τη χρήση ενός εσωτερικού κλειδιού (private key), αποκρυπτογραφεί το CW και το δίνει στον CSA. Επειδή κάθε δέκτης έχει το δικό του private key που είναι γραμμένο μέσα στον επεξεργαστή του, παρόλο που το CW εξακολουθεί να είναι το ίδιο για κάθε δέκτη, το tweaked CW είναι διαφορετικό για κάθε δέκτη. Για τον λόγο αυτό, μόλις η κάρτα δεχτεί το CSSN του δέκτη που ενεργοποιήθηκε μέσα, δουλεύει μόνο σε αυτόν και το ανάποδο. Δηλαδή ο δέκτης μετά από τη δημιουργία αυτής της σχέσης δεν δουλεύει με άλλη κάρτα. Δέκτης και κάρτα λοιπόν παντρεύονται. Έτσι μια απλή αλλαγή στην επικοινωνία δέκτη- κάρτας. ξεπέρασε το μειονέκτημα του DVB-CSA.
Τι είναι ο DVB-CSA
Μέχρι το 2002 ότι ήταν γνωστό από τα χαρτιά των κατατεθειμένων πατεντών. Αυτά τα χαρτιά έδιναν τις κατευθύνσεις για το CSA, αλλά δεν παρείχαν όλες τις λεπτομέρειες. Αυτές παρέχονταν μόνο σε συγκεκριμένους κατασκευαστές επεξεργαστών, που κατασκεύαζαν τα chip για χρήση σε εφαρμογές DVB. Επειδή ο αλγόριθμος ήταν κρυμμένος μέσα σε υλικό (hardware), ήταν αδύνατη η εξαγωγή και η μελέτη του. Αυτό άλλαξε με την κυκλοφορία του FreeDec, ενός προγράμματος που υλοποιούσε το CSA σε λογισμικό. Παρόλο που δεν κυκλοφόρησε ποτέ ο πηγαίος κώδικας του προγράμματος FreeDec, η ανάλυσή του έφερε στο φως όλα τα στοιχεία για το CSA. Το ποιος και γιατί το διένειμε αυτό το πρόγραμμα το αφήνουμε στην φαντασία σας. Αφού λοιπόν έγινε γνωστός ο πλήρης αλγόριθμος άρχισε και η ανάλυσή του για αδύναμα σημεία.
Μπορεί να σπάσει το DVB-CSA?
Το μέγεθος του κλειδιού (CW) είναι 64 bits (8 bytes) που επιτρέπει πάρα πολλές πιθανότητες κρυπτογράφησης. Αν ήταν να δοκιμάζαμε όλα τα κλειδιά, με 1μs το κάθε ένα, θα μας έπαιρνε περί τα 300.000 χρόνια μέσο όρο. Με δεδομένο ότι κάποια κομμάτια του κρυπτογραφημένου μηνύματος είναι ήδη γνωστά (όπως π.χ. οι επικεφαλίδες των πακέτων MPEG) μπορεί να μειωθεί αυτός ο χρόνος, αφαιρώντας τα μη πιθανά κλειδιά.
Από τα 64 bits μόνο τα 48 έχουν σημασία, αφού τα byte 3 και 7 αποτελούν checksum και μπορούν να υπολογιστούν από τα υπόλοιπα. Οι 2^48 συνδιασμοί είναι πάρα πολλοί προς το παρόν για να μπορούν να υπολογιστούν με συμβατικά συστήματα (θυμίζουμε την ανάλυση στον DVB-CSA αλγόριθμο και τη δυνατότητα brute force attack με GPU της nVidia) αλλά αν χρησιμοποιηθεί εξωτικός εξοπλισμός όπως ο υπερυπολογιστής με FPGA arrays του Copacobana (που έσπασε το DES 56bit σε λιγότερο από τρεις ημέρες) ίσως αν είναι εφικτή η σε πραγματικό χρόνο αποκωδικοποίηση του DVB-CSA με brute force.
Αν σπάσει με αυτό τον τρόπο το DVB-CSA καταρρέει όλο το οικοδόμημα του DVB και κατά συνέπεια της δορυφορικής συνδρομητικής τηλεόρασης, αφού τα συστήματα πρόσβασης, όσο ισχυρά και να είναι, απλά παρακάμπτονται.
Με το ξεπάντρεμα τι ακούγεται?
Όμως αυτό που έχει αρχίσει να γίνεται σε μεγάλη κλίμακα είναι το ξεπάντρεμα των παντρεμένων καρτών από τους δέκτες τους. Ήδη έχουν ξεκινήσει να διανέμονται διάφορες «πατέντες» που παραποιούν τις εντολές που λαμβάνει η κάρτα έτσι ώστε αυτή να μην πειράζει τα κλειδιά που παραδίδει. Οι πατέντες είναι είτε με τη μορφή λογισμικού, ενσωματωμένο σε κάποια αναβάθμιση δέκτη, είτε με τη μορφή κάποιου εξωτερικού εξαρτήματος π.χ. blocker.
Το «αστείο» τις υπόθεσης είναι ότι μερικοί δέκτες με UCAS έχουν (είχαν) ήδη το σχετικό blocker μέσα τους. Αυτό γιατί ο κώδικας UCAS ήταν κακογραμμένος με αποτέλεσμα οι εντολές που αφορούν το Secure Silicon να μη φτάνουν ποτέ στην κάρτα…
Η λύση αυτή του ξεπαντρέματος είναι σίγουρα προσωρινή αφού είναι απλή υπόθεση για τις εταιρίες να αλλάξουν κάτι πολύ απλό και να βγάλουν τα blocker εκτός λειτουργίας. Η παράκαμψη της τεχνολογίας Secure Silicon έχει ως αποτέλεσμα την χρήση μη παραποιημένων παντρεμένων καρτών από κοινές δέκτες που δεν την υποστηρίζουν. Δηλαδή, στον δέκτη της ελεύθερης αγοράς θα πληκτρολογούμε το CSSN και η κάρτα θα δουλεύει σαν να είναι σε επίσημο δέκτη. Και ίσως κάποια στιγμή στο μέλλον – όταν οι εταιρείες αποφασίσουν ότι θέλουν να πουλήσουν νέο εξοπλισμό, να δούμε και την κατάρρευση του DVB-CSA.
Από όλα αυτά κερδισμένες είναι οι εταιρίες κρυπτογράφησης, που «αναγκάζονται» να εφευρίσκουν πιο ασφαλή συστήματα προστασίας για την μεταφορά δεδομένων, καθώς και φυσικά οι εταιρίες παροχής συνδρομητικών καναλιών που χρησιμοποιούν τις τρύπες στο σύστημά τους σαν δωρεάν διαφημιστικούς τρόπους για να τραβήξουν νέους συνδρομητές. Εθίζεις κάποιον δωρεάν στο πακέτο σου, και μετά τραβάς την πρίζα στην πειρατεία και αυτός αρχίζει να πληρώνει συνδρομή…