Downloadify : 42 lignes de code permettaient de télécharger depuis Spotify

Les ayants droit n'apprécieront surement pas la blague 57

Une extension Chrome fait les gorges chaudes de la presse et autres blogs depuis hier soir : Downloadify. En effet, celle-ci permettait de télécharger n'importe quelle musique depuis la version web de Spotify en un clic. Mais comment une pratique pareille peut-elle donc être possible avec seulement 42 lignes de code ? Voici notre analyse.

Depuis l'émergence de Napster, la musique en ligne a toujours été à l'avant-garde de la question des droits d'auteur, de l'exception de droit à la copie privée et autres folies des DRM imposés par les éditeurs pendant des années avant qu'ils ne comprennent que cela ne servait à rien. Les petits malins qui distribuent les albums vont en effet se fournir bien en amont de leur mise en vente via les plateformes légales et limiter l'interopérabilité des formats ne fait qu'attirer la colère des utilisateurs et réduire l'intérêt de l'offre.

La protection des contenus numériques continue d'être la règle

Pour autant, ces protections continuent d'exister. C'est notamment le cas avec les produits physiques et notamment dans le monde de la vidéo où il est encore admis que d'empêcher un utilisateur de regarder un film en Blu-Ray sous Linux via VLC est une pratique commerciale acceptable. Mais il est un autre secteur où les choses sont sous surveillance : le contenu à la demande. 

Ainsi, s'il est par exemple simple de se fournir du contenu VoD en 1080p sur des plateformes fermées, cela a toujours été limité sur PC pour éviter la fuite des fichiers. Est-ce que cela empêche le moindre film d'être trouvable illégalement ? Non. Mais cela rassure les ayants droit. Intel avait ainsi dû intégrer à ses CPU une extension de la protection HDCP connue commercialement sous le nom de code Insider pour que ceux-ci autorisent certaines machines à récupérer du contenu en 1080p sur certaines plateformes partenaires.

La VoD en 1080p sur PC : les ayants droit imposent une protection hardware spécifique

Le monde de la musique et ses offres de streaming illimitées fait aussi attention à éviter ce genre de problèmes. Deezer, qui se base sur un client web depuis des années, a connu des problèmes de ce genre et la raison est simple : du moment où la machine d'un utilisateur peut télécharger et lire de la musique, il est forcément possible d'une manière ou d'une autre de récupérer une copie du fichier original. Le travail des développeurs est alors de complexifier cette tâche pour éviter que n'importe quel petit malin puisse récupérer tout le catalogue du site et l'écouter plutôt que de payer 5 à 10 euros par mois.

42 lignes de codes démontrent qu'un service mondial peut faire dans le basique

Mais il semblerait que chez Spotify, les développeurs soient un peu comme les Français en ce mois de mai doté de nombreux jours fériés : un peu fainéants. Car Robin Aldenhoven a réussi à faire trembler le site avec une extension Chrome qui fait parler d'elle depuis hier soir, et qui n'a rien d'extraordinaire puisqu'elle ne se compose que de ... 42 lignes de code (sauts de lignes compris).

Publiée dans un premier temps sur le Web Store, elle a bien entendu été rapidement retirée par Google puis rendue inopérante par Spotify. Il faut dire que cela n'a pas dû être bien compliqué tant le procédé utilisé était basique, montrant que la sécurité des fichiers n'était pas franchement la priorité du service pour son client web, ce qui va sans doute plaire aux ayants droit.

Car si l'on analyse le peu de code qui compose ce programme, on note qu'il est principalement question de deux fichiers. Le premier (background.js) est celui qui est lancé en tâche de fond lorsque le navigateur fonctionne. Il a une fonction simple : repérer quand une requête est effectuée sur une URL qui correspond au signalement suivant : *://*.cloudfront.net/mp3/*.


Spotify Downloadify Github Spotify Downloadify Github

42 lignes de code, ça ne s'invente pas

En effet, les extensions Chrome peuvent disposer depuis un moment d'une autorisation spécifique permettant d'écouter les requêtes sur un domaine précis, ici Cloudfront.net qui est celui d'un service de diffusion de contenu d'Amazon utilisé par Spotify. Une fois la requête identifiée, l'extension sait que le téléchargement d'un fichier MP3 a été demandé et recherche l'URL de celui-ci. Si elle existe, le second script (inject.js) entre en jeu. 

Un fichier non chiffré dont l'URL est facilement trouvable : la sécurité selon Spotify

Celui-ci reçoit en effet un message qui lui permet de savoir qu'une URL a été identifiée. Il compose alors un lien qui permettra de lancer le téléchargement de la chanson directement depuis les serveurs d'Amazon. Mais tout cela n'est possible que pour une raison : l'URL de base du fichier n'est pas protégée, pas plus que le contenu de celui-ci qui pourrait par exemple être chiffré pour éviter que n'importe quel petit malin procède de la sorte. 

Tout comme Deezer, Spotify apprend donc dans la douleur qu'il faut un minimum protéger ses contenus pour ne pas se retrouver avec ce genre de faille béante exposée de la sorte. Des protections supplémentaires semblent désormais avoir été mises en place, jusqu'à la prochaine découverte d'un petit malin. Espérons néanmoins que les données des comptes utilisateur ont droit à un meilleur traitement.


chargement
Chargement des commentaires...