12
votes

Sécurité de l'étiquette audio en HTML5

Version longue:

J'utilise la balise audio HTML5 pour lire des fichiers MP3 sur mon site Web. Avec Flash, je peux diffuser des mp3 et la sécuriser pour 95%.

avec HTML5 Il est facile de trouver l'emplacement MP3 et de le télécharger à partir de là. Même si je la sécurise avec des hachages uniques, il n'est pas difficile d'inspecter l'onglet Réseau en Chrome et de voir l'URL MP3 avec des hatupes.

Je me demandais s'il y avait d'autres moyens de sécuriser le MP3 d'être déchiré et si cela vaut la peine. Par exemple, Bandcamp génère des hachages uniques, mais il est toujours très facile de télécharger le MP3. Pour YouTube, vous avez des sites Web de téléchargement qui peuvent procéder au flux Flv et déchirez l'audio et enregistrez-le pour l'utilisateur sous forme de format MP3.

La première couche de sécurité que je peux penser est de modifier l'extension des fichiers MP3 à .txt ou un autre format commun.

95% des utilisateurs ne requis pas l'extension car il est masqué par défaut sur Windows et Apple. Cela empêchera les 95% des utilisateurs de repérer et de lire le fichier MP3.

version courte

Toute suggestion pour empêcher les utilisateurs de voler des fichiers MP3 lors de l'utilisation de la balise audio HTML5.


6 commentaires

Est-ce votre musique? Pourquoi ne pas simplement diffuser une copie de mauvaise qualité et utiliser des hachages uniques à Semi Protect.


Ou murmurez votre nom de domaine au milieu du MP3 de temps en temps.


Les deux bonnes options à considérer. Différents artistes m'ont donné les droits de jouer de l'audio sur le site Web.


Dans ce cas, je pense que vous préférez mieux avec des flux de qualité et des liens pour acheter la version complète de la qualité.


Un moyen possible de masquer ce serait de servir uniquement les MP3 en tant que Datauri par exemple Song.mp3.txt, très facile à décoder en extrayant le datauri (contenu) et en le collant directement dans la fenêtre du navigateur, mais la plupart des utilisateurs ne seront pas au courant de Comment faire cela. En regardant dans l'onglet 'Network', vous ne verrez pas de transfert de fichiers MP3 uniquement une donnée / .... Un inconvénient de cette méthode cependant, est que vous devez convertir toutes vos mp3 en mode Datauri ou écrire un analyseur Datauri sur votre serveur.


Les choses ont des progrès - vérifiez ma réponse en bas là-bas


3 Réponses :


8
votes

réponse courte

NO.

Renommer le fichier audio à .txt ne fera rien pour aider la sécurité de votre fichier audio MP3. Si quelque chose, cela vous causera encore plus de problèmes, car votre fichier audio MP3 va être envoyé avec le type MIME incorrect, ce qui peut causer des problèmes avec le lecteur audio intégré du navigateur.

Les meilleures suggestions que je peux vous fournir sont les suivantes:

  1. Assurez-vous que votre vérification de l'en-tête HTTP de référateur, assurez-vous qu'il vient de la page qui a le lecteur MP3 dessus.
  2. Protégez le fichier MP3 avec un hachage unique.
  3. Ne laissez pas le même hachage d'être téléchargé deux fois *

    * Notez que, même cela pourrait causer des problèmes, par exemple, que se passe-t-il si l'utilisateur réopule un onglet de cache, lit le fichier à nouveau et le fichier MP3 n'est pas mis en cache?

    Et enfin, à la fin, même après que votre fichier MP3 est le fichier MP3 le plus protégé de l'historique de IIS et Apache - Qu'est-ce qui m'arrête de simplement ouvrir Adobe Audition et l'enregistrement du flux audio?

    Bien que vous soyez correct sur le flux audio MP3 de Bandcamp, le MP3 n'est pas aussi haute qualité qu'à un téléchargement normal après avoir acheté un album.

    Le fait que même Google n'a pas vraiment de protections décentes sur ses flux vidéo devrait dire quelque chose. Une entreprise qui génère des milliards de dollars à partir de vues vidéo sur YouTube ne peut même pas faire (ni mieux mettre - n'a pas pris la peine de mettre en place) toute méthode viable pour protéger leurs vidéos.


2 commentaires

Vrai, renommer à TXT est une mauvaise pratique et traversera probablement plus de problèmes qui résolvent.


Bonne réponse, mais les choses ont progressé un TAD heureusement - veuillez consulter ma réponse ci-dessous



7
votes

type de. strong>

grooveshark Envoyez une demande de message à un script de serveur pour le MP3 qui est en cours de diffusion, ce qui rend très difficile l'accès et la spoof sans créer de manière dynamique une demande de post. Vous-même - en particulier, vous devez alors essayer de stocker le fichier audio collecté. Mais vous pouvez utiliser le nouvel audiocontext pour aider à résoudre ce problème pour la plupart des plates-formes modernes ... p>

J'ai utilisé un excellent exemple de HTML5rocks.com pour modifier les en-têtes utilisés comme suit: P>

var dogBarkingBuffer = null;
// Fix up prefixing
window.AudioContext = window.AudioContext || window.webkitAudioContext;
var context = new AudioContext();

function loadDogSound(url) {
  var request = new XMLHttpRequest();
  request.open('POST', url, true);
  request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
  request.responseType = 'arraybuffer';

  // Decode asynchronously
  request.onload = function() {
    context.decodeAudioData(request.response, function(buffer) {
      dogBarkingBuffer = buffer;
    }, onError);
  }
  //this is the encryption key
  request.send("key=98753897358975387943");
}


7 commentaires

Bel extrait. Cela semble assez solide et empêchera certainement 99% des utilisateurs communs de voler des mp3


Merci - c'est dans mon intérêt d'utiliser cette jolie bientôt aussi que je suis juste content d'avoir rencontré ce fil car cela m'a aidé à travailler ce problème. Les accessoires vont à Grooveshark et au pointeur de Alex Reidy.


Désolé, mais ce qui m'empêche de voir la ressource dans ma console chrome et d'y avoir accès?


@Snick Vous pouvez envoyer un flux unique à chaque fois et l'ajouter à la diffusion audio périodique. En outre, avoir une clé de cryptage public signifie que vous ne pouvez le faire qu'une fois pour une poignée de main périodique et non partager le lien. Encore plus, vous pouvez faire une clé de cryptage par pièce. Il y a tellement de niveaux à l'imagination que vous pourriez faire avec cela, c'est donc plus un moyen de dissuasion de haut niveau.


Ahh, je vois, qui demanderait au serveur un processus actif de gérer le cryptage par pièce et la concaténation des flux, non? Je suppose que cela ne fonctionnerait pas avec le contenu de CDN'ed.


Correct - je dirais donc que ce serait inefficace, sauf si vous avez eu un comportement spécial sur le CDN. C'est tout la nourriture pour la pensée, vraiment ... Je ne peux pas penser à un scénario décent pour cela que d'avoir une clé publique / privée sur un seul dossier qui soit retraité à une base semi-régulière, c'est-à-dire quotidiennement. Faire cela avec un CDN sonne comme beaucoup d'utilisation de la bande passante.


Mais même si, vous pourriez le faire sur une base hebdomadaire et justifier que l'utilisation de la bande passante de téléchargement est utilisée, et si vous aviez que plusieurs fichiers contre cette utilisation, alors je suis sûr que tout est fonctionnel.



0
votes

Vous pouvez faire les mp3 eux-mêmes peu attrayant. Quelques idées:

  • n'incluez pas l'album Art, les informations d'album, etc. Dans vos fichiers (Tags ID3). Encore mieux, remplissez tous les champs d'étiquette ID3 avec quelque chose comme "Ce fichier est de myMUSICSITE.COM".

  • divisez vos fichiers en plusieurs pièces plus petites, puis jouez-les en séquence dans le navigateur. Avoir à télécharger toutes les pièces individuelles rendra vos fichiers beaucoup moins attrayants. Vous pouvez avoir des problèmes avec la lecture sans défaut, je ne sais pas dans quelle mesure c'est bien soutenu.

  • encode et jouez-leur comme une vidéo, peut-être avec votre logo ou quelque chose comme flux vidéo. Les fichiers résultants ne seront pas beaucoup plus importants, en particulier Si vous utilisez une image statique. Cela signifie que les utilisateurs ne peuvent pas lire vos fichiers sur les lecteurs MP3, les téléphones, etc. Facilement.

  • murmure votre nom de domaine ou votre nom de site dans les enregistrements à quelques reprises, comme mentionné dans les commentaires.


0 commentaires