Traçage de cartes pirates dans le cadre de la diffusion vidéo par satellite

Comment fonctionne la diffusion vidéo par satellite ?

Typiquement, un opérateur de télévision par satellite diffuse un flux vidéo, chiffré avec une clef symétrique appelée control word ou CW dans la suite. Ce control word est lui-même chiffré avec une autre clef de chiffrement symétrique avant d'être joint au flux vidéo. Le texte chiffré contenant ce CW est appelé un ECM (pour Entitlement Control Message).

Un client (ou un pirate...) reçoit donc via son antenne satellite :

  1. Un flux vidéo chiffré,
  2. ainsi qu'un ECM contenant le CW permettant de déchiffrer la vidéo.
Dans ce modèle simple, tout le monde reçoit le même flux vidéo chiffré et le même ECM, y compris les individus qui ne sont pas clients de l'opérateur. Le client ayant souscrit un abonnement auprès de l'opérateur a accès à une carte à puce, capable de déchiffrer n'importe quel ECM. À réception d'un flux vidéo chiffré accompagné d'un ECM, le client transmet l'ECM à la carte à puce. Cette dernière déchiffre l'ECM et renvoie le CW au client. Ce CW lui permet de déchiffrer le flux vidéo.

En pratique, un flux vidéo est découpé en morceaux, chaque morceau étant chiffré avec son propre CW. L'opérateur envoie donc des ECMs régulièrement (typiquement, 1 par seconde). De plus, chaque carte possède un identifiant unique (considéré dans la suite comme un entier, compris entre 0 et N-1 ≈ 100 millions).

La problématique des cartes pirates

Les opérateurs de télévision à péage rencontrent aujourd'hui le problème suivant : un pirate acquiert de manière licite une carte à puce auprès de l'opérateur. Cette carte lui permet, comme à n'importe quel client légitime, de recouvrer le CW permettant de déchiffrer un flux vidéo. Le pirate diffuse ensuite ce CW à ses propres abonnés, leur permettant ainsi de ne pas souscrire d'abonnement auprès de l'opérateur : ils récupèrent les flux vidéos chiffrés via une antenne satellite et demandent simplement le CW de déchiffrement au pirate (qui facture le service, bien évidemment, mais à un prix bien plus attractif que celui pratiqué par l'opérateur).

La carte (valide) utilisée par le pirate pour déchiffrer les CWs est appelée une carte pirate. À noter qu'elle ne diffère pas d'une carte normale, utilisée par un client honnête. Seule l'utilisation qui en est faite lui vaut son qualificatif.

Votre objectif

Nous verrons qu'un opérateur dispose d'un certain nombre de moyens lui permettant d'éliminer des cartes pirates. Étant donnés ces moyens, votre objectif sera de déterminer une stratégie efficace afin de mettre le pirate hors d'état de nuire !

Dans le cadre de cette exercice, il vous sera fourni un ensemble de classes écrites en Python 3, simulant différents types de pirates. En utilisant l'API proposée, votre mission sera d'écrire un script implémentant votre stratégie opérateur. À l'issue de son exécution, vous pourrez afficher (grâce à l'API proposée) un certain nombre de métriques qui vous permettront d'évaluer la qualité de votre proposition. Saurez-vous vous montrer plus astucieux que le(s) pirate(s) ? Votre stratégie sera-t'elle meilleure que celles de vos collègues ?

Pour vous aider dans votre aventure, nous vous mettrons aussi à disposition un exemple de stratégie (triviale, bien évidemment).

Bonne chance !