HDCP !! késako ??? High-bandwidth Digital Content Protection !!
Retenez bien ce nom, dans les prochaines années il sera partout dans votre maison ! C’est une technologie développée par Intel qui vise a protéger les contenus multimédia par le biais des DRM (Digital Rights Management) entre l’emetteur et le recepteur par un cable HDMI (High-Definition Multimedia Interface) !!
Avant d’aller plus loin, si vous achetez une nouvelle TV, vérifiez bien qu’elle soit compatible HDCP sinon vous serez bon pour la changer quelques années plus tard^^
Donc, le but du HDCP, c’est d’envoyer un flux video vers un diffuseur de ‘confiance’ (ex : ecran lcd) qui permettra de diffuser l’image. (et seulement de diffuser – pas de stocker)
Pour cela l’emetteur (ex: lecteur blu-ray, démodulateur satellite) va crypter le flux video en HDCP et le diffuseur le decryptera.
C’est l’emetteur qui va ‘tester’ si le diffuseur est un terminal ‘agrée’ HDCP. Si oui les flux sont envoyées ‘cryptée’ ! Chaque terminal ‘agréé HDCP’ recoit d’un organisme ‘ad-hoc’ un jeu de 2 clés : 1 publique et 1 secrete qui vont ‘participer’ au mecanismes d’authentification.
Mais comment ca marche dans le concret ?
Comme dis ci-dessus, chaque terminal renferme une clé publique (noté P) et une clé secrete (noté S).
Prennons un exemple pour bien comprendre :
Je dispose d’un lecteur DVD blu-ray (emetteur : noté 1) et d’un ecran LCD (diffuseur : noté 2) !
Chacun dispose d’une clé publique et secrete : P1/S1 et P2/S2.
Ce qui va se passer dans notre cable HDMI entre notre lecteur blu-ray et notre TV, c’est qu’ils vont se mettre d’accord sur une clé commune (un peu comme l’algo de Diffie-hellman utilisé pour le SSL) pour crypter/décrypter le flux.
Chacun vont s’echanger leur clé publique et la multiplier avec leur clé secrete pour obtenir une clé commune :
| S1.P2 = S2.P1 = clé commune |
Pour information, la clé secrete (S) est un vecteur de 40 contenant des clés de 56bits et la clé publique une clé de 40bits.
S1.P2 = S2.P1 : magie ?
Il faut savoir que les clés secretes ne sont pas générées au hasard, elles sont issue de la MasterKey, une matrice de 40×40 contenant des clés de 56bits qui est gardée très très secretement par un organisme (notons la M) ! C’est a partir de cela qu’ils générent des clés par la formule :
Exemple :
Prennons 2 vecteurs de 2 bits pour nos 2 clés publiques P1 (0 1) et P2 (1 0) et une MasterKey, matrice de 2×2 pour faire simple. On a :
| P1 x M = S1 ( 0 1 ) x ( 0 1 ) = ( 2 3 ) ( 2 3 ) |
Donc S1 ( 2 3 ) notre 1er clé secrete
| M x P2 = S2 ( 0 1 ) x ( 1 ) = ( 0 ) ( 2 3 ) ( 0 ) ( 2 ) |
Et S2 ( 0 2 ) notre 2eme clé secrete
Echange des clés publiques puis multiplication avec les clés secrètes, ce qui donne :
| S1 x P2 = clé commune ( 2 3 ) x ( 1 ) = 2 ( 0 ) |
| S2 x P1 = clé commune ( 0 ) x ( 0 1 ) = 2 ( 2 ) |
On trouve donc de chaque coté la meme clé commune (ici 2) pour crypter/décrypter grâce a un petit échange de clé publique.
Ce n’est donc pas de la magie, juste des proprietes mathematiques sur des calculs matricielles (associativité,commutativité,…)
Systeme de revoquation des clés
Autre point important de ce nouveau systeme c’est la révoquation des clés ! En effet, une liste contiendra les clés publique des terminaux a banir ! Celle ci sera diffusé par le satellite par exemple et/ou contenu dans les HD-DVD/Blu-ray ! En clair, si votre terminal HDCP est suspect (terminal capable de contourner le HDCP par exemple en renvoyant en clair le flux vers une sortie dvi), il se peut que ce dernier soit référencé dans la liste de révoquation des clés ! Votre terminal sera desactivé et vous pourrez plus rien faire avec !! Genial non ? 🙁
HDCP sûr à 100% ??
Mathématiquement parlant, le systeme est très bien pensé (enfin du moins d’après mon père ^^) ! A moins de découvrir la MasterKey (dans ce cas tout le systeme est foutu) c’est du solide !!
Mais apparament un cryptanaliste hollandais pretend pouvoir casser le systeme en disposant de 40 terminaux aggrée HDCP… Mais il n’ose pas publier ses recherches par peur de ne plus pouvoir aller aux USA !!!!
Affaire a suivre… 😀