FR2927209A1 - Computer entity i.e. server, communicating method for exchanging e.g. multimedia content, involves executing global program by executing routine to control identifier, and playing content in case of positive control of identifier of entity - Google Patents
Computer entity i.e. server, communicating method for exchanging e.g. multimedia content, involves executing global program by executing routine to control identifier, and playing content in case of positive control of identifier of entity Download PDFInfo
- Publication number
- FR2927209A1 FR2927209A1 FR0850727A FR0850727A FR2927209A1 FR 2927209 A1 FR2927209 A1 FR 2927209A1 FR 0850727 A FR0850727 A FR 0850727A FR 0850727 A FR0850727 A FR 0850727A FR 2927209 A1 FR2927209 A1 FR 2927209A1
- Authority
- FR
- France
- Prior art keywords
- entity
- program
- identifier
- content
- computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 239000013641 positive control Substances 0.000 title claims abstract description 7
- 238000012795 verification Methods 0.000 claims abstract description 15
- 238000004891 communication Methods 0.000 claims abstract description 14
- 238000004590 computer program Methods 0.000 claims abstract description 10
- 238000009877 rendering Methods 0.000 description 8
- 238000000354 decomposition reaction Methods 0.000 description 5
- 238000003780 insertion Methods 0.000 description 4
- 230000037431 insertion Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/101—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measures for digital rights management
Abstract
Description
Protection d'un contenu, notamment multimédia La présente invention vise la protection d'un contenu, notamment multimédia, contre une reproduction illégale. The present invention aims at the protection of a content, in particular multimedia content, against an illegal reproduction.
Il a été observé que les systèmes de protection contre la reproduction non autorisée d'un contenu ont connu tout d'abord un grand succès (au cours des années 1990), pour susciter actuellement moins d'effort en développement. Cette observation peut s'expliquer notamment : - par le fait que beaucoup de systèmes de protection ont été successivement "cassés", c'est-à-dire désactivés par des indélicats pour avoir accès au contenu, - par le fait que la plupart des utilisateurs veulent pouvoir faire une duplication "raisonnable"(dans le cadre familiale ou pour un simple prêt à un tiers ou encore pour une restitution audiovisuelle sur un dispositif de leur choix), - par le fait que la gestion des droits numériques ou DRM (pour "Digital Rights Management") nécessite un budget plus grand que prévu (certains diffuseurs indiquant par exemple que trois appels sur quatre à leur plate-forme (ou "hotline") sont liés à des problèmes de DRM). It has been observed that systems for protection against unauthorized reproduction of content have first been very successful (during the 1990s), to bring about less development effort. This observation can be explained in particular by: - the fact that many protection systems have been successively "broken", that is to say disabled by indelicates to gain access to the content, - by the fact that most users want to be able to make a "reasonable" duplication (in the family context or for a simple loan to a third party or for an audiovisual reproduction on a device of their choice), - by the fact that digital rights management or DRM (for "Digital Rights Management") requires a budget larger than expected (some broadcasters say for example that three out of four calls to their platform (or "hotline") are related to DRM problems).
Beaucoup de systèmes de protection ont été cassés vraisemblablement pour la raison suivante : l'approche classique de protection consiste à prévoir une clé secrète à insérer dans un média supportant le contenu multimédia, cette clé secrète permettant à un dispositif de lecture du média de vérifier si le contenu est copié légalement. Elle représente donc un droit qui est fourni par le diffuseur, lequel peut normalement vérifier le nombre d'exemplaires en circulation. Many protection systems have probably been broken for the following reason: the conventional approach of protection is to provide a secret key to be inserted in a media supporting the multimedia content, this secret key allowing a device for reading the media to check whether the content is copied legally. It therefore represents a right that is provided by the broadcaster, who can normally check the number of copies in circulation.
En effet, un dispositif standard est dans l'incapacité de copier cette clé si elle est placée dans un réceptacle inaccessible (par exemple recourant à un système de fichier non standard où seraient stockées des informations propres à cette clé). Ce système est sécurisé par un accord commercial entre un fabriquant de dispositifs de lecture adaptés et un fabricant de médias (ou leur représentants). Il s'est avéré toutefois possible de contourner une telle protection, notamment dans le cas de disques DVD cryptés et pouvant être lus par exécution d'un programme nommé DeCSS . Une variante d'utilisation d'une clé secrète consiste à vérifier le droit de l'utilisateur à partir d'un site en ligne (par exemple tel que iTunes ). Dans cette réalisation, un serveur distant dispose d'un contenu protégé par droits d'auteur. Le client est le logiciel et/ou le périphérique qui permet de lire ce contenu (par exemple un lecteur multimédia ou un baladeur numérique). Lorsqu'un utilisateur souhaite télécharger un fichier, le client fournit un identifiant unique au serveur. Le serveur chiffre le fichier demandé spécifiquement pour ce client. Ce fichier chiffré est ensuite transféré du serveur vers le client, via un réseau étendu tel que l'Internet. Lorsque l'utilisateur souhaite jouer le contenu qu'il a ainsi téléchargé, sur un lecteur équipé du logiciel et/ou relié au périphérique autorisé(s), le lecteur établit d'abord une connexion avec le serveur, qui s'assure que l'utilisateur au nom de qui les droits sont enregistrés dispose bien d'une licence valide à cet instant. Si tel est le cas, le serveur transmet au client le code de déchiffrement du fichier, ainsi que la liste des droits de l'utilisateur vis-à-vis de ce fichier. La vérification du droit peut imposer à l'utilisateur de posséder une clé supplémentaire (par exemple une clé matérielle telle qu'un "dongle" à brancher sur un port d'ordinateur de type PC), ce qui limite fortement les possibilités de duplication et de restitution sur tout support. Cette technique n'est pas très répandue notamment à cause des coûts induits et de son manque de souplesse : il est en effet difficile de prêter un contenu et/ou d'utiliser cette technique en dehors du monde de l'ordinateur personnel. Indeed, a standard device is unable to copy this key if it is placed in an inaccessible receptacle (for example using a non-standard file system where information specific to this key would be stored). This system is secured by a commercial agreement between a manufacturer of suitable reading devices and a media manufacturer (or their representatives). However, it has proved possible to circumvent such protection, especially in the case of encrypted DVD discs that can be read by running a program called DeCSS. An alternative to using a secret key is to check the user's right from an online site (for example, such as iTunes). In this embodiment, a remote server has content protected by copyright. The client is the software and / or the device that can read this content (for example a media player or a digital music player). When a user wants to download a file, the client provides a unique identifier to the server. The server encrypts the requested file specifically for this client. This encrypted file is then transferred from the server to the client over a wide area network such as the Internet. When the user wishes to play the content that he has thus downloaded, on a player equipped with the software and / or connected to the authorized device (s), the reader first establishes a connection with the server, which ensures that the user on whose behalf the rights are registered has a valid license at this time. If this is the case, the server transmits to the client the decryption code of the file, as well as the list of rights of the user vis-à-vis this file. The verification of the right may require the user to possess an additional key (for example a hardware key such as a "dongle" to be connected to a PC-type computer port), which greatly limits the possibilities of duplication and of restitution on any support. This technique is not very widespread especially because of the costs involved and its lack of flexibility: it is indeed difficult to lend content and / or use this technique outside the world of the personal computer.
Des diffuseurs de contenus ont tenté d'installer et mettre en oeuvre des logiciels de lecture ad-hoc sur des ordinateurs PC personnels de leurs clients, modifiant profondément leur fonctionnement ( rootkit de la marque Sony ). Cette approche a suscité beaucoup de méfiance, voire une méfiance vis-à-vis de ces diffuseurs.30 Une autre possibilité consiste à rendre l'outil d'accès au contenu sensible à une politique de DRM (ce que permet très récemment par exemple Microsoft Vista). Content broadcasters have tried to install and implement ad-hoc reading software on personal PCs of their customers, profoundly modifying their operation (Sony brand rootkit). This approach has created a lot of mistrust or distrust of these broadcasters.30 Another possibility is to make the content access tool sensitive to a DRM policy (which is very recent for example Microsoft Vista).
Une autre possibilité consiste à rendre accessible sans condition une partie du contenu et soumettre à certaines conditions l'accès à une partie complémentaire. Là encore, le recours à un accès en ligne est nécessaire. Another possibility is to make unconditional access to some of the content and subject to certain conditions access to a complementary part. Again, the use of online access is necessary.
Une solution prometteuse est le tatouage de contenus numériques ou watermarking . Le contenu ne semble pas protégé, mais, en réalité, comporte des "marques" indécelables par nos sens. La valeur légale de ces marques semble toutefois difficile à établir dans la mesure où il est toujours possible, techniquement : - d'ajouter un watermarking, ou - de supprimer ou camoufler un watermarking. A promising solution is tattooing digital content or watermarking. The content does not seem protected, but, in reality, has "marks" that are undetectable by our senses. The legal value of these marks, however, seems difficult to establish insofar as it is always possible, technically: - to add a watermarking, or - to remove or conceal a watermarking.
La présente invention vient améliorer la situation. The present invention improves the situation.
Elle propose à cet effet de faire en sorte que les utilisateurs puissent faire une duplication "raisonnable" des contenus dont ils ont acquis régulièrement les droits. Un utilisateur titulaire légal d'un contenu doit pouvoir : - "prêter" le contenu à un tiers, - l'utiliser sur le dispositif de leur choix, sans être limité à du matériel propriétaire, - utiliser les DRM facilement sans qu'ils ne soient source de coûts supplémentaires. To this end, it proposes to ensure that users can make a "reasonable" duplication of the content they have regularly acquired. A lawful user of a content must be able to: - "lend" the content to a third party, - use it on the device of their choice, without being limited to proprietary hardware, - use the DRM easily without them are sources of additional costs.
Préférentiellement, l'acte de copie est et doit rester réglementé. A cet effet, une entité B (fournisseur de contenu) doit pouvoir identifier au moins une autre entité A (recevant une copie du contenu) de façon à comptabiliser le nombre de copies effectuées. Preferably, the act of copying is and must remain regulated. For this purpose, an entity B (content provider) must be able to identify at least one other entity A (receiving a copy of the content) in order to count the number of copies made.
Ainsi, la présente invention vise tout d'abord un procédé de communication d'une première entité informatique à une deuxième entité informatique d'un fichier comportant un contenu destiné à être lu par un programme prédéterminé, lecteur de ce contenu. Dans le procédé au sens de l'invention, avant communication à la deuxième entité : - le contenu et le programme lecteur du contenu sont fusionnés dans un même programme global, que comporte ledit fichier, l'exécution dudit programme global menant à la lecture du contenu, - un identifiant de la deuxième entité est enregistré en tant que donnée dudit programme global, et - une routine de vérification dudit identifiant est ajoutée audit programme global, Ainsi, l'exécution du programme global par la deuxième entité précitée comporte : - une exécution de la routine de vérification d'identifiant pour contrôler l'identifiant de la deuxième entité, - et, en cas de contrôle positif de l'identifiant, une lecture dudit contenu. Thus, the present invention firstly relates to a method of communicating a first computer entity to a second computer entity of a file comprising a content intended to be read by a predetermined program, reader of this content. In the method according to the invention, before communication with the second entity: the content and the program reader of the content are merged into the same global program, that includes said file, the execution of said overall program leading to the reading of the content, - an identifier of the second entity is registered as data of said global program, and - a verification routine of said identifier is added to said global program, Thus, the execution of the global program by the second aforementioned entity comprises: - a execution of the identifier verification routine to control the identifier of the second entity, and, in case of positive control of the identifier, a reading of said content.
Préférentiellement, il doit être possible aussi à l'utilisateur de bien différencier un contenu piraté d'un contenu "non piraté". Le but n'est pas d'empêcher un pirate déterminé de faire une copie d'un contenu semblable à l'original, mais plutôt de rendre difficile cette copie. Preferably, it must also be possible for the user to differentiate between pirated content and "non-pirated" content. The goal is not to prevent a particular hacker from making a copy of content similar to the original, but rather to make this copy difficult.
Ainsi, dans une réalisation, une routine de complication de la structure du programme global est en outre appliquée, et la deuxième entité exécute alors le programme global sous sa forme compliquée. Thus, in one embodiment, a complication routine of the overall program structure is further applied, and the second entity then executes the overall program in its complicated form.
On entend par "forme compliquée" le fait que la routine de vérification de l'identifiant, d'une part, et la routine de lecture du contenu dans le programme global, d'autre part, sont imbriquées et mélangées, de sorte qu'il est difficile pour un pirate d'accéder en un temps raisonnable : - à la routine de vérification de l'identifiant, - et/ou à la donnée de l'identifiant insérée dans le programme global, - et/ou aux données du contenu. The term "complicated form" means that the verification routine of the identifier, on the one hand, and the reading routine of the content in the overall program, on the other hand, are nested and mixed, so that it is difficult for an attacker to gain access in a reasonable time: - to the verification routine of the identifier, - and / or to the data of the identifier inserted in the global program, - and / or to the data of the content .
Le contenu, lui-même, peut être un contenu multimédia, un texte, ou autre, ou simplement un identifiant pour un contrôle d'accès sécurisé. The content, itself, can be multimedia content, text, or other, or simply an identifier for secure access control.
A titre d'exemple, une telle complication (ou une simplification) de la structure du programme global peut être menée par une technique informatique dite d"'obfuscation" (ou respectivement par "désobfuscation"), laquelle technique sera décrite plus loin dans un exemple illustratif. L'obfuscation vise à rendre une information difficile à comprendre. By way of example, such a complication (or simplification) of the overall program structure can be carried out by a computer technique known as "obfuscation" (or "deobfuscation"), which technique will be described later in a illustrative example. Obfuscation aims to make information difficult to understand.
Le programme global, sous sa forme initiale non compliquée, comporte alors les données numériques du contenu, ainsi qu'un programme lecteur (ou "player") de ces données, de telle sorte que son exécution (moyennant un contrôle positif de l'identifiant) revient à lire le contenu et jouer par exemple un film ou une musique, si la deuxième entité est reliée à un dispositif de restitution. On comprendra alors que la deuxième entité peut être un dispositif de restitution audio ou vidéo, ou plus généralement un terminal, relié éventuellement à un réseau étendu, par exemple pour télécharger de la première entité le programme global sous forme obfusquée. The overall program, in its initial uncomplicated form, then comprises the digital data of the content, as well as a reader program (or "player") of these data, so that its execution (with a positive control of the identifier ) is to read the content and play for example a movie or a music, if the second entity is connected to a rendering device. It will be understood that the second entity may be an audio or video rendering device, or more generally a terminal, possibly connected to a wide area network, for example to download from the first entity the global program in obfuscated form.
Ainsi, la première entité peut être, quant à elle, un serveur diffusant initialement le contenu, sous la forme d'un programme global obfusqué, pour des "deuxièmes" entités qui peuvent être des dispositifs de restitution et/ou des terminaux. Thus, the first entity may be, for its part, a server initially broadcasting the content, in the form of an obfuscated global program, for "second" entities that may be rendering devices and / or terminals.
La présente invention vise alors une entité informatique, telle qu'un serveur de diffusion du type précité, et comportant des moyens pour être capable de mettre en oeuvre le procédé ci-avant, en tant que "première entité informatique" intervenant dans le procédé. On relèvera que cette "première" entité informatique peut mettre en oeuvre un programme d'ordinateur comportant des instructions pour générer le programme global, pour la mise en oeuvre du procédé au sens de l'invention, lorsque ce programme d'ordinateur, est exécuté par un processeur d'une telle "première" entité informatique. The present invention thus aims at a computer entity, such as a broadcast server of the aforementioned type, and comprising means for being able to implement the above method, as "first computing entity" involved in the process. It will be noted that this "first" computer entity can implement a computer program comprising instructions for generating the overall program, for the implementation of the method in the sense of the invention, when this computer program is executed. by a processor of such a "first" computing entity.
A ce titre, l'invention vise aussi ce programme d'ordinateur. As such, the invention also aims at this computer program.
Toutefois, la première entité informatique précitée peut aussi être un terminal et/ou un dispositif de restitution communiquant le programme global à un autre terminal et/ou dispositif de restitution. Ainsi, en reprenant l'énoncé du procédé ci-avant, la deuxième entité (un terminal par exemple) peut décider de communiquer le contenu sous forme de programme global à une troisième entité informatique (un autre terminal par exemple). Dans ce cas, la deuxième entité, préférentiellement : -simplifie le programme global, - insère, en tant que donnée, un identifiant de la troisième entité dans le programme global simplifié, et - complique le programme global comportant l'identifiant de la troisième entité. However, the aforementioned first computer entity may also be a terminal and / or a rendering device communicating the overall program to another terminal and / or rendering device. Thus, by repeating the statement of the above method, the second entity (a terminal for example) can decide to communicate the content as a global program to a third computer entity (another terminal for example). In this case, the second entity, preferably: -simplifies the global program, -inserts, as data, an identifier of the third entity in the simplified global program, and -complicates the global program comprising the identifier of the third entity .
La présente invention vise alors aussi une entité informatique, telle qu'un terminal et/ou dispositif de restitution du type précité, et comportant des moyens pour mettre en oeuvre le procédé ci-avant, en tant que "deuxième entité informatique" intervenant dans le procédé. The present invention thus also relates to a computer entity, such as a terminal and / or restitution device of the aforementioned type, and comprising means for implementing the above method, as "second computer entity" involved in the process.
On relèvera ici que l'insertion de l'identifiant de la troisième entité en tant que donnée dans le programme global peut consister en l'ajout de cet identifiant à l'identifiant de la deuxième entité, ou, en variante, à une insertion par remplacement de l'identifiant de la deuxième entité par l'identifiant de la troisième entité. It will be noted here that the insertion of the identifier of the third entity as data in the global program may consist of the addition of this identifier to the identifier of the second entity, or, alternatively, to an insertion by replacing the identifier of the second entity with the identifier of the third entity.
On comprendra alors que l'insertion d'identifiant permet de contrôler la circulation des copies du contenu et, en particulier, de savoir exactement si un terminal, comportant son propre identifiant a eu accès ou non au contenu protégé au sens de l'invention. On peut d'ailleurs prévoir une autorité de gestion de la diffusion du contenu, distante, pour : -recevoir de la deuxième entité l'identifiant de la deuxième entité et l'identifiant de la troisième entité, et stocker en mémoire ces identifiants, et - communiquer à la deuxième entité : o une première clé pour lancer, auprès de la deuxième entité, une routine de simplification du programme global et d'insertion de l'identifiant de la troisième entité dans le programme global, o et une deuxième clé pour lancer ensuite, auprès de la deuxième entité, une routine de complication du programme global, avant communication du programme global sous forme compliquée à la troisième entité. It will then be understood that the insertion of identifier makes it possible to control the circulation of the copies of the content and, in particular, to know exactly if a terminal, having its own identifier has had access or not to the protected content within the meaning of the invention. It is also possible to provide a remote content distribution management authority to: -receive the second entity's identifier from the second entity and the third entity's identifier, and store these identifiers in memory, and communicating to the second entity: a first key for launching, with the second entity, a routine simplifying the overall program and inserting the identifier of the third entity in the global program, and a second key for then launch, at the second entity, a complication routine of the overall program, before communication of the overall program in complicated form to the third entity.
La présente invention vise, à ce titre, une entité informatique comportant des moyens pour mettre en oeuvre cette réalisation, en tant qu'autorité de gestion. A titre d'exemple, il peut s'agir à nouveau d'un serveur distant, gérant une liste des terminaux qui ont eu accès au contenu. En particulier, ce serveur peut être identique et remplir les mêmes fonctions que le serveur de diffusion initiale du contenu (qui peut être la "première" entité précitée). The present invention aims, as such, a computer entity having means for implementing this embodiment, as a management authority. For example, it may be again a remote server, managing a list of terminals that had access to the content. In particular, this server may be identical and perform the same functions as the initial broadcast server content (which can be the "first" entity above).
Dans la réalisation où à chaque copie du contenu à destination d'une nouvelle entité, on prévoit l'ajout par insertion de l'identifiant de cette nouvelle entité dans le programme global, le contenu peut alors être transféré plusieurs fois entre plusieurs entités, et un identifiant de chaque entité de cette pluralité d'entités est enregistré en tant que donnée du programme global, lequel comporte alors une liste des identifiants des terminaux ayant eu accès au contenu. Dans le cas où l'on prévoit une autorité de gestion, cette dernière tient à jour une liste homologue. In the embodiment where, with each copy of the content intended for a new entity, provision is made for inserting the identifier of this new entity by insertion in the global program, the content can then be transferred several times between several entities, and an identifier of each entity of this plurality of entities is registered as data of the global program, which then comprises a list of the identifiers of the terminals having accessed the content. In the case where a managing authority is foreseen, the latter will maintain a peer list.
A titre d'exemple, un identifiant d'entité informatique peut être le numéro de série de l'entité informatique, ou encore simplement un code confidentiel choisi par le propriétaire de l'entité informatique ou encore des données personnelles relatives au propriétaire. For example, a computer entity identifier may be the serial number of the computer entity, or simply a confidential code chosen by the owner of the computer entity or personal data relating to the owner.
Ainsi, la lecture du contenu dont les données sont des données du programme global ne s'exécute que si l'identifiant lu en tant que donnée supplémentaire du programme global correspond au numéro de série lu dans une mémoire de l'entité informatique, ou à un code confidentiel entré par le propriétaire. Thus, the reading of the content whose data is data of the global program only executes if the identifier read as additional data of the global program corresponds to the serial number read in a memory of the computing entity, or to a PIN entered by the owner.
On relèvera que le programme global possède une structure avantageuse dès lors qu'il comporte les données du contenu (et les données d'identifiants éventuels) en tant que données du programme global, ces données étant obfusquées (donc difficilement retrouvables dans la structure globale du programme) avant une communication à un terminal ou un dispositif de restitution. A ce titre, la présente invention vise aussi un programme d'ordinateur, stocké en mémoire d'une entité informatique ou téléchargeable via un site distant pour être stocké au moins temporairement en mémoire de ladite entité informatique, formant un tel programme global pour la mise en oeuvre du procédé au sens de l'invention, lorsque ce programme est exécuté par un processeur de l'entité informatique. Le programme global comporte ainsi des instructions pour : -mener un contrôle de vérification de l'identifiant de l'entité informatique, - et, en cas de contrôle positif de l'identifiant, lire le contenu dont les données sont des données du programme global. It should be noted that the overall program has an advantageous structure since it includes the data of the content (and the data of possible identifiers) as data of the global program, these data being obfuscated (therefore difficult to find in the overall structure of the program). program) before a communication to a terminal or a rendering device. As such, the present invention also provides a computer program, stored in memory of a computer entity or downloadable via a remote site to be stored at least temporarily in memory of said computer entity, forming such a global program for the implementation implementation of the method in the sense of the invention, when this program is executed by a processor of the computer entity. The global program thus comprises instructions for: - conducting a verification check of the identifier of the computer entity, - and, in case of a positive control of the identifier, reading the content whose data are data of the global program .
Ainsi, dans les systèmes classiques de protection, une utilisation classique des principes de cryptographie est mise en oeuvre où une entité B ( Bob ) communique un secret à une entité A ( Alice , où Alice et Bob sont tous deux habilités). Il est alors souhaité d'empêcher totalement une entité C ( Eve , non habilitée) d'accéder à leur communication. Tel n'est pas le but de l'invention qui, au contraire, autorise la copie contrôlée. Thus, in conventional protection systems, a conventional use of cryptographic principles is implemented where an entity B (Bob) communicates a secret to an entity A (Alice, where Alice and Bob are both enabled). It is then desired to totally prevent an entity C (Eve, unauthorized) from accessing their communication. This is not the purpose of the invention which, on the contrary, allows controlled copying.
De même, l'invention se distingue d'une utilisation classique des droits DRM : - il n'est pas nécessaire de protéger les échanges entre Alice et Bob mais simplement un seul échange initial, - dans l'exemple ci-avant, Alice et Eve seraient complices dès lors qu'Alice dupliquerait sans autorisation son contenu pour Eve. Similarly, the invention differs from a conventional use of DRM rights: - it is not necessary to protect exchanges between Alice and Bob but simply a single initial exchange, - in the example above, Alice and Eve would be complicit since Alice would unauthorizedly duplicate her content for Eve.
D'autres caractéristiques et avantages de l'invention apparaîtront à l'examen de la description détaillée ci-après, et des dessins annexés sur lesquels : - la figure 1 illustre schématiquement une première diffusion de contenu protégé par la mise en oeuvre de l'invention, à partir d'un serveur S en tant que "première entité informatique", dans un exemple de réalisation de l'invention, - la figure 2 illustre les étapes mises en oeuvre par le serveur S pour générer le programme global comportant notamment les données de contenu et destiné à l'entité informatique Dl de la figure 1, - la figure 3 illustre les échanges entre l'entité informatique Dl et le serveur S pour pourvoir "copier le contenu" (c'est-à-dire adapter le programme global) pour une autre entité D2, - la figure 4 illustre schématiquement les opérations réalisées par l'entité Dl pour pouvoir adapter le programme global pour la deuxième entité D2, - la figure 5 illustre schématiquement les étapes d'exécution du programme global auprès d'une entité informatique Dl ou D2. Other features and advantages of the invention will appear on examining the detailed description below, and the accompanying drawings in which: - Figure 1 schematically illustrates a first diffusion of content protected by the implementation of the invention, from an S server as "first computing entity", in an exemplary embodiment of the invention, - Figure 2 illustrates the steps implemented by the server S to generate the overall program including the content data for the computing entity D1 of FIG. 1; FIG. 3 illustrates the exchanges between the computer entity D1 and the server S to provide "copy the content" (that is to say, adapt the overall program) for another entity D2, - Figure 4 schematically illustrates the operations performed by the entity D1 to be able to adapt the overall program for the second entity D2, - Figure 5 schematically illustrates the steps of execution of the overall program with a computer entity D1 or D2.
En référence à la figure 1, une entité informatique Dl (telle qu'un terminal ou un dispositif de restitution) envoie tout d'abord une requête à un serveur distant S, diffuseur de contenus, pour qu'il lui soit téléchargé un contenu prédéterminé. En particulier, la requête REQ (Id-l) comporte un identifiant (par exemple un numéro de série) de l'entité informatique Dl ou de son propriétaire (par exemple un code personnel). Le terminal Dl envoie aussi dans la requête un identifiant du contenu souhaité (non représenté). Dans la réalisation où l'identifiant est un numéro de série, il peut être prévu une routine automatique : - apte à lire dans une mémoire de l'entité Dl ce numéro de série - et à le communiquant au serveur S. With reference to FIG. 1, a computer entity D1 (such as a terminal or a rendering device) first sends a request to a remote server S, a content provider, for it to download a predetermined content. . In particular, the REQ request (Id-1) comprises an identifier (for example a serial number) of the IT entity D1 or of its owner (for example a personal code). The terminal D1 also sends in the request an identifier of the desired content (not shown). In the embodiment where the identifier is a serial number, it can be provided an automatic routine: - able to read in a memory of the entity D1 this serial number - and the communicating to the server S.
Le serveur S mémorise l'identifiant Id-1 de l'entité Dl (étape MEM Id-1 de la figure 1) dans une base de données. Ensuite, le serveur S constitue, en fonction de l'identifiant Id-1 de l'entité Dl, un programme global au sens de l'invention, en vue de la communication à l'entité Dl du contenu, sous la forme de ce programme global PG(Id-1). The server S stores the identifier Id-1 of the entity D1 (step MEM Id-1 of FIG. 1) in a database. Next, the server S constitutes, as a function of the identifier Id-1 of the entity D1, a global program in the sense of the invention, with a view to the communication to the entity D1 of the content, in the form of this PG global program (Id-1).
En référence à la figure 2, ce programme global est constitué comme suit. Les données de contenu 20 sont importées en tant que données d'un programme de lecture (un "player" portant la référence 21 dans la figure 2, avec éventuellement un programme additionnel de type "plugin" pour la vérification d'identifiant). Avantageusement, il est ajouté la routine de vérification de l'identifiant des entités informatiques à qui est destiné le contenu, portant la référence 23 dans le figure 2, et, en particulier, l'identifiant Id-1 de l'entité informatique Dl est ajouté en tant que donnée 22 du programme global, pour former à l'étape 24 le programme global contenant alors : - les données du contenu 20 ; - la routine de lecture de ces données 21 ; - l'identifiant Id-1 de l'entité Dl à qui est destiné le contenu, en tant que donnée 22 du programme ; et - une routine de vérification 23 de cette identifiant Id-l. With reference to FIG. 2, this overall program is constituted as follows. The content data 20 is imported as data of a reading program (a "player" with the reference 21 in FIG. 2, possibly with an additional "plugin" type program for the verification of identifier). Advantageously, the verification routine of the identifier of the computer entities to which the content is intended, bearing the reference 23 in FIG. 2, is added and, in particular, the identifier Id-1 of the computing entity D1 is added as data item 22 of the global program, to form in step 24 the global program then containing: the data of the content 20; the reading routine of these data 21; the identifier Id-1 of the entity D1 for which the content is intended as data item 22 of the program; and a verification routine 23 of this identifier Id-1.
Le programme global obtenu à l'étape 24 est de structure simple. Il est ensuite obfusqué à l'étape 25 pour former le programme global obfusqué PG(Id-1), à l'étape 26. The overall program obtained in step 24 is of simple structure. It is then obfuscated in step 25 to form the global obfuscated program PG (Id-1), at step 26.
Ce programme global obfusqué PG(Id-1) est ensuite communiqué alors directement du serveur à l'entité informatique Dl pour une restitution d'un contenu multimédia, par exemple, si cette entité informatique Dl est reliée à un dispositif de restitution. This global obfuscated program PG (Id-1) is then communicated directly from the server to the IT entity D1 for a reproduction of a multimedia content, for example, if this IT entity D1 is connected to a rendering device.
En référence maintenant à la figure 3, il est décrit une situation dans laquelle l'entité informatique Dl souhaite communiquer le contenu à une autre entité informatique D2 (un autre terminal ou un autre dispositif de restitution sonore ou vidéo). Les entités Dl, D2 sont, bien entendu, reliées au serveur S par un réseau étendu, par exemple via Internet, comme le sont l'entité Dl et le serveur S de la figure 1. Referring now to Figure 3, there is described a situation in which the computer entity D1 wishes to communicate the content to another computer entity D2 (another terminal or other sound or video playback device). The entities D1, D2 are, of course, connected to the server S by an extended network, for example via the Internet, as are the entity D1 and the server S of FIG.
Dans l'exemple décrit, le terminal Dl envoie une requête au serveur S comportant l'identifiant Id-1 du terminal Dl et l'identifiant Id-2 du terminal D2. Bien entendu, le terminal Dl envoie aussi un identifiant du contenu souhaité. Le serveur S, sur la base de cette requête, retrouve l'identifiant Id-1 du terminal Dl dans sa base de données et traite alors la requête du terminal Dl. Le serveur S mémorise ensuite dans sa base de données le nouvel identifiant Id-2 du terminal D2 et envoie au terminal Dl une clé de désobfuscation DES(Id-l) du programme global PG(Id-1) que possède actuellement le terminal Dl, ainsi qu'une clé d'obfuscation OBS(Id-2) du programme global de structure simplifiée pour ajouter l'identifiant Id-2 du deuxième terminal D2 et obfusquer le résultat pour constituer le programme global PG(Id-2). Le programme ainsi obfusqué PG(Id-2), que détient le terminal Dl, est finalement communiqué au deuxième terminal D2. In the example described, the terminal D1 sends a request to the server S having the identifier Id-1 of the terminal D1 and the identifier Id-2 of the terminal D2. Of course, the terminal D1 also sends an identifier of the desired content. The server S, on the basis of this request, finds the identifier Id-1 of the terminal D1 in its database and then processes the request of the terminal D1. The server S then stores in its database the new identifier Id-2 of the terminal D2 and sends the terminal D1 a deobfuscation key DES (Id-1) of the global program PG (Id-1) that currently has the terminal D1, and an obfuscation key OBS (Id-2) of the overall simplified structure program to add the identifier Id-2 of the second terminal D2 and obfuscate the result to form the global program PG (Id-2). The program thus obfuscated PG (Id-2), which holds the terminal D1, is finally communicated to the second terminal D2.
Plus précisément, en référence à la figure 4, le programme global initial PG(Id-1) que détient l'entité Dl est préférentiellement transformé comme suit. En partant de ce programme global PG(Id-1), à l'étape 40, que peut lire l'entité Dl puisque son numéro de série correspond à l'identifiant Id-1, subit d'abord une désobfuscation, à l'étape 41, grâce à la clé DES(Id-l) que transmet le serveur S. Le programme obtenu à l'étape 42 est alors de structure simplifiée : il correspond sensiblement au programme qui était obtenu à l'étape 24 de la figure 2. Il y est ajouté l'identifiant Id-2 (à l'étape 43) du terminal D2 et le programme global est obfusqué à l'étape 44 pour constituer ainsi le programme global PG(Id-2) qui est destiné au terminal D2, à l'étape 45. More specifically, with reference to FIG. 4, the initial global program PG (Id-1) held by the entity D1 is preferentially transformed as follows. Starting from this global program PG (Id-1), in step 40, which can read the entity D1 since its serial number corresponds to the identifier Id-1, first undergoes a deobfuscation, at the step 41, using the key DES (Id-1) that transmits the server S. The program obtained in step 42 is then simplified structure: it corresponds substantially to the program that was obtained in step 24 of Figure 2 There is added the identifier Id-2 (in step 43) of the terminal D2 and the global program is obfuscated in step 44 to thus constitute the global program PG (Id-2) which is intended for the terminal D2 at step 45.
On comprendra alors que, si le programme PG(Id-1) est de forme compliquée (par obfuscation), une routine qui se déclenche par vérification de l'identifiant Id-1 du terminal Dl vise à simplifier la structure de ce programme PG(Id-1) lors de l'étape de désobfuscation 41. A l'inverse, après insertion de l'identifiant Id-2 du deuxième terminal D2 (à l'étape 43), une routine d'obfuscation 44 est exécutée pour compliquer à nouveau la structure du programme PG(Id-2) qui est destinée au terminal D2. It will then be understood that, if the program PG (Id-1) is of complicated form (by obfuscation), a routine which is triggered by verification of the identifier Id-1 of the terminal D1 is intended to simplify the structure of this program PG ( Id-1) during the deobfuscation step 41. On the other hand, after inserting the identifier Id-2 of the second terminal D2 (in step 43), an obfuscation routine 44 is executed to make it more difficult to again the structure of the program PG (Id-2) which is intended for the terminal D2.
En référence à la figure 4, on comprendra en particulier que les opérations de désobfuscation 41 et d'obfuscation 44 sont préférentiellement menées sensiblement simultanément, à la volée. En tout état de cause, il sera évité d'offrir la possibilité à un utilisateur malveillant d'exécuter la routine de désobfuscation 41 et d'interrompre la routine d'obfuscation 44 à son début (par exemple par une mise hors tension), ce qui permettrait à cet utilisateur malveillant d'avoir accès aux données du contenu qui apparaîtraient sous forme simple. Il est donc préféré que les étapes 41 et 44 soient mises en oeuvre quasi-simultanément. With reference to FIG. 4, it will be understood in particular that the operations of deobfuscation 41 and obfuscation 44 are preferably conducted substantially simultaneously, on the fly. In any event, it will be avoided to provide the opportunity for a malicious user to perform the deobfuscation routine 41 and to interrupt the obfuscation routine 44 at its beginning (for example by powering off), which would allow this malicious user to have access to the content data that would appear in simple form. It is therefore preferred that steps 41 and 44 be implemented almost simultaneously.
Il convient d'indiquer que ces routines d'obfuscation et de désobfuscation sont connues en soi dans la technique des traitements informatiques. Une obfuscation n'empêche pas un programme d'être exécuté mais, en revanche, complique considérablement sa structure pour un intrus qui aurait accès au code et qui essaierait de le comprendre. Par exemple, les données du contenu et/ou de l'identifiant peuvent être obfusquées en premier lieu. Une routine d'obfuscation qu'il est possible de mettre en oeuvre dans le cadre de la présente invention sera décrite plus loin et elle consiste, dans l'exemple décrit, en une décomposition binaire des données et d'une complication de l'expression des exposants de la puissance 2, de cette décomposition binaire. It should be noted that these obfuscation and deobfuscation routines are known per se in the art of computer processing. An obfuscation does not prevent a program from being executed but, on the other hand, greatly complicates its structure for an intruder who would have access to the code and who would try to understand it. For example, the data of the content and / or the identifier can be obfuscated first. An obfuscation routine that can be implemented in the context of the present invention will be described later and it consists, in the example described, in a binary decomposition of the data and a complication of the expression. exponents of the power 2, of this binary decomposition.
Préférentiellement, l'obfuscation qu'effectue le serveur S à l'étape 25 de la figure 2 mène avantageusement à un programme global différent de celui obtenu par l'obfuscation qu'effectue le terminal Dl à l'étape 44 de la figure 4. Ainsi, on comprendra qu'un programme global est différent d'une copie PG(Id-1) à l'autre PG(Id-2). Preferably, the obfuscation effected by the server S in step 25 of FIG. 2 advantageously leads to a global program different from that obtained by the obfuscation performed by the terminal D1 in step 44 of FIG. 4. Thus, it will be understood that a global program is different from a copy PG (Id-1) to the other PG (Id-2).
On relèvera dans l'exemple des figures 1 et 3 que le serveur S qui diffuse le contenu, d'une part, et le serveur qui tient à jour la liste des identifiants des terminaux ayant eu accès au contenu, d'autre part, sont un même et unique serveur. Bien entendu, il peut être prévu deux serveurs distincts. It will be noted in the example of FIGS. 1 and 3 that the server S that broadcasts the content, on the one hand, and the server that keeps the list of identifiers of the terminals that have access to the content, on the other hand, are the same and only server. Of course, two separate servers can be provided.
On relèvera que le procédé illustré sur la figure 2 est mis en oeuvre par le serveur de diffusion des contenus S, tandis que le procédé illustré sur la figure 4 est mis en oeuvre par l'entité informatique Dl (telle qu'un terminal), laquelle est alors équipée d'un programme de copie approprié. A ce titre, la présente invention vise aussi un tel programme de copie. Comme vu précédemment en référence à la figure 4, chaque programme global PG(Id-2) qui est destiné à une entité D2, est généré spécifiquement pour cette entité D2 sous le contrôle du serveur S et au moyen du programme de copie précité. It will be noted that the method illustrated in FIG. 2 is implemented by the content distribution server S, while the method illustrated in FIG. 4 is implemented by the computer entity D1 (such as a terminal). which is then equipped with an appropriate copy program. As such, the present invention also aims at such a copy program. As seen previously with reference to FIG. 4, each global program PG (Id-2) which is intended for a entity D2, is generated specifically for this entity D2 under the control of the server S and by means of the aforementioned copy program.
Bien entendu, il peut être prévu de limiter le nombre de copies possibles, par exemple en imposant un nombre fini d'identifiants dans la liste tenue par le serveur S, ou encore dans la liste des identifiants ajoutés successivement en tant que données du programme global. On relèvera aussi que le serveur S, tenant une liste des identifiants des terminaux, peut refuser la communication d'un contenu si une requête fait apparaître un identifiant de terminal non autorisé. Of course, it may be provided to limit the number of possible copies, for example by imposing a finite number of identifiers in the list maintained by the server S, or in the list of identifiers successively added as data of the global program . It will also be noted that the server S, holding a list of the identifiers of the terminals, can refuse the communication of a content if a request reveals an unauthorized terminal identifier.
Il convient de noter que le terminal Dl, une fois que le programme global PG(Id-2) est transformé pour être destiné à l'entité D2, ne peut plus utiliser ce programme global PG(Id-2) puisque son exécution est conditionnée par la vérification de l'identifiant Id-2 (et non pas Id-l) auprès de l'entité Dl. Il peut alors être prévu plusieurs options. Selon une première option, le programme copieur de l'entité Dl peut librement copier autant de fois que souhaité le programme global PG(Id-1) et une version de ces copies peut être transformée pour une communication à l'entité D2, sous la forme du programme global PG(Id-2). Selon une autre option où il peut être préféré de "prêter" le contenu de l'entité Dl à l'entité D2, il peut être interdit la simple recopie du programme PG(Id-1) auprès de l'entité Dl, de sorte que la transformation de ce programme global en un programme adapté à l'entité D2 ne peut plus être utilisée par l'entité Dl. Dans ce cas, le propriétaire du terminal Dl réclamera au propriétaire du terminal D2 le contenu pour qu'il lui soit restitué. En tout état de cause, dans cette deuxième option, on comprendra qu'il n'est pas nécessaire de tenir à jour une liste d'identifiants, mais simplement de garder en mémoire l'identifiant du dernier terminal D2 à avoir eu accès au contenu (programme PG(Id-2)). It should be noted that the terminal D1, once the global program PG (Id-2) is transformed to be intended for the entity D2, can no longer use this global program PG (Id-2) since its execution is conditioned by checking the identifier Id-2 (and not Id-1) with the entity Dl. It can then be provided several options. According to a first option, the copying program of the entity D1 can freely copy the global program PG (Id-1) as many times as desired and a version of these copies can be transformed for a communication to the entity D2, under the form of the global program PG (Id-2). According to another option where it may be preferred to "lend" the content of the entity D1 to the entity D2, the simple copy of the program PG (Id-1) from the entity D1 may be prohibited, so that that the transformation of this global program into a program adapted to the entity D2 can no longer be used by the entity Dl. In this case, the owner of the terminal Dl will ask the owner of the terminal D2 the content for it to be returned. In any case, in this second option, it will be understood that it is not necessary to maintain a list of identifiers, but simply to keep in memory the identifier of the last terminal D2 to have access to the content (PG program (Id-2)).
Il convient aussi de noter que le programme global destiné à une entité informatique peut comporter d'autres routines, non décrites ci-avant. Par exemple, selon les informations que peut donner l'entité Dl au serveur S sur l'entité D2 (d'identifiant Id-2), le serveur S peut ajouter une donnée, dans la clé d'obfuscation OBF(Id-2), pour valider une routine de temporisation dans le programme global PG(Id-2), laquelle peut consister à autoriser l'exécution du programme global pendant une période choisie (par exemple de 7 jours). Au-delà de cette période, l'exécution du programme global PG(Id-2) peut être inhibée. It should also be noted that the overall program for an IT entity may include other routines, not described above. For example, according to the information that the entity D1 can give to the server S on the entity D2 (identifier Id-2), the server S can add a piece of data, in the obfuscation key OBF (Id-2) , to validate a timing routine in the global program PG (Id-2), which may consist of allowing the execution of the global program for a selected period (for example 7 days). Beyond this period, the execution of the global program PG (Id-2) can be inhibited.
On notera aussi que l'entité Dl, en référence à la figure 1, lorsqu'elle communique une requête pour obtenir un contenu, peut déclarer initialement plusieurs identifiants de terminaux, de manière à ce que le programme global PG(Id-1) soit lisible par un nombre restreint de terminaux dont le propriétaire de l'entité Dl est aussi propriétaire (par exemple plusieurs "lecteurs MP3"). It will also be noted that the entity D1, with reference to FIG. 1, when communicating a request to obtain a content, can initially declare several terminal identifiers, so that the global program PG (Id-1) is readable by a limited number of terminals whose owner of the Dl entity is also owner (for example several "MP3 players").
On comprendra alors que le programme global peut inclure en outre des routines définissant des règles de sa propre exécution (plusieurs identifiants autorisés en même temps, routine de temporisation, ou autre). It will be understood then that the global program may further include routines defining rules of its own execution (multiple identifiers allowed at the same time, timing routine, or other).
En référence à la figure 5, on a illustré, pour rappel, les opérations qui se déclenchent lorsqu'est exécuté le programme global auprès d'une entité informatique de type terminal ou dispositif de restitution. L'exécution du programme commence par la routine de vérification 50 de l'identifiant de l'entité informatique qui accueille le programme global. Si l'identifiant est conforme (par exemple au numéro de série de l'entité informatique), au test 51 (flèche O), alors, la lecture des données du contenu peut être lancée à l'étape 52. Sinon (flèche N en sortie du test 51), la lecture du contenu n'est pas exécutée et il peut être transmis au serveur S une information d'incident d'utilisation, par exemple, accompagnée du numéro de série effectivement lu par le programme global. On ajoute ici que l'identifiant d'une entité informatique peut être par exemple son adresse MAC, un identifiant de disque dur que comporte cette entité informatique, ou autre.30 Ainsi, la présente invention autorise la copie pour un prêt du contenu, alors que dans le cas classique d'une gestion DRM, il est impossible de copier un contenu quand bien même la copie de ce contenu resterait dans un cadre familial. Referring to Figure 5, there is illustrated, as a reminder, the operations that occur when the global program is executed from a terminal type computer entity or playback device. The execution of the program begins with the verification routine 50 of the identifier of the IT entity hosting the global program. If the identifier is in conformity (for example with the serial number of the IT entity), on the test 51 (arrow O), then the reading of the data of the content can be started in step 52. Otherwise (arrow N in test output 51), the reading of the content is not executed and it can be transmitted to the server S a user incident information, for example, accompanied by the serial number actually read by the global program. It is added here that the identifier of a computer entity may be for example its MAC address, a hard disk identifier that includes this computer entity, or other.30 Thus, the present invention authorizes the copy for a loan of the content, then that in the classic case of a DRM management, it is impossible to copy a content even if the copy of this content would remain in a family setting.
Par ailleurs, l'invention permet d'utiliser le contenu sur un dispositif au choix de son propriétaire. En effet, dès lors que le programme lecteur (ou "player") est fourni dans le programme global, ce programme global peut s'exécuter sur tout type de terminal ayant suffisamment de mémoire et un processeur suffisamment moderne, selon un autre avantage que procure la présente invention. Moreover, the invention makes it possible to use the content on a device at the choice of its owner. Indeed, since the reader program (or "player") is provided in the global program, this global program can run on any type of terminal having sufficient memory and a sufficiently modern processor, according to another advantage that provides the present invention.
On relèvera en outre qu'il n'est pas nécessaire pour une entité informatique Dl ou D2 de rester connectée au serveur S pour pouvoir lire le contenu. En effet, dès lors que le contenu a été transféré vers une entité informatique, celle-ci peut le lire autant de fois que souhaité, sans intervention nécessaire du serveur S. On décrit maintenant, ci-après, le mécanisme d'obfuscation qui peut être utilisé pour compliquer la structure du programme global au sens de l'invention. Note further that it is not necessary for a computer entity Dl or D2 to remain connected to the server S to read the content. Indeed, once the content has been transferred to a computer entity, it can read it as many times as desired, without the necessary intervention of the server S. We now describe, hereinafter, the obfuscation mechanism that can be used to complicate the structure of the overall program within the meaning of the invention.
Tout contenu numérique peut être représenté par un polynôme de la forme : 20 a*2^n + b*2^m+....+x*2^1+y*2^0 où a, b, x et y sont des constantes binaires et où n, m, ..., sont des nombres entiers positifs. Il s'agit d'une décomposition binaire. Any digital content can be represented by a polynomial of the form: 20 a * 2 ^ n + b * 2 ^ m + .... + x * 2 ^ 1 + y * 2 ^ 0 where a, b, x and y are binary constants and where n, m, ..., are positive integers. This is a binary decomposition.
Ce polynôme peut être implémenté sous une forme binaire habituelle en listant les coefficients a,b,x,y suivant un ordre arbitraire (exemple le bit de poids le plus fort à 25 gauche ou à droite). Ainsi, le chiffre 23 s'écrit par exemple 23 = 1 *2A4 + 0*2^3 + 1 *2^2 + 1 *2^1 + 1 *2^0 This polynomial can be implemented in a usual binary form by listing the coefficients a, b, x, y according to an arbitrary order (eg the most significant bit left or right). Thus, the number 23 is for example 23 = 1 * 2A4 + 0 * 2 ^ 3 + 1 * 2 ^ 2 + 1 * 2 ^ 1 + 1 * 2 ^ 0
Il est possible d'utiliser un programme qui va générer cette décomposition et lister ces coefficients précités. Un exemple de pseudo-code peut être celui illustré en annexe 1. 30 Dans ce pseudo-code, si la boucle "while" est réécrite plusieurs fois, sous la forme d'un grand nombre d'opérations séquentielles, alors le contenu numérique est totalement déstructuré de sorte que les tables "coeff' et "expos" de l'annexe 1 ne sont plus utilisées. On a représenté ce cas dans l'annexe 2 où l'opération "contenu" est reprise plusieurs fois dans le même exemple de la décomposition du chiffre 23. Le contenu, sans les coefficients apparents, est beaucoup plus difficile à retrouver que dans le cas d'un cryptage par une clé secrète. Il convient de rappeler que le programme global est différent pour chaque copie, alors qu'un contenu protégé par une clé secrète possède un format standardisé d'une copie à l'autre. Dans le cas d'un programme protégé par une clé secrète, le contenu de la clé doit être retrouvé. Or, comme le lecteur qui est autorisé à lire le contenu possède cette clé par définition, il "suffit" de retrouver cette clé et de l'utiliser pour décrypter le contenu et le distribuer sous forme non cryptée. It is possible to use a program that will generate this decomposition and list these aforementioned coefficients. An example of pseudo-code can be that illustrated in Appendix 1. In this pseudo-code, if the "while" loop is rewritten several times, in the form of a large number of sequential operations, then the digital content is completely unstructured so that the tables "coeff" and "expos" of appendix 1 are no longer used This case has been represented in appendix 2 where the operation "content" is repeated several times in the same example of the decomposition of the number 23. The content, without the apparent coefficients, is much more difficult to find than in the case of an encryption by a secret key.It should be remembered that the overall program is different for each copy, while content protected by a secret key has a standardized format from one copy to the other.In the case of a program protected by a secret key, the content of the key must be found.But as the reader who is authorized to read the content owns this By definition, it is "enough" to find this key and use it to decrypt the content and distribute it in unencrypted form.
On notera que la compréhension d'un programme est habituellement difficile à réaliser car : - non seulement il faut connaître les manipulations effectuées au niveau du langage binaire (désassemblage), ce qui peut toujours être faisable, - mais il faut aussi comprendre ce que ces manipulations signifient. En général, le lien entre le langage assembleur (ou "langage décompilé") et sa signification est très difficile à retrouver. It should be noted that the understanding of a program is usually difficult to achieve because: - not only do we need to know the manipulations performed at the level of the binary language (disassembly), which can always be feasible, - but we must also understand what these manipulations mean. In general, the link between assembly language (or "decompiled language") and its meaning is very difficult to find.
Ici, le programme en langage assembleur peut lui-même être "obfusqué", c'est-à-dire que la structure du programme est altérée pour rendre son désassemblage particulièrement difficile. Un exemple de complication est illustré en annexe 3 où il est posé initialement a =4 ; b=3 ; c=2 ; d = 1, toujours pour l'exemple de l'écriture de la donnée "contenu" = 23. Here, the program in assembly language can itself be "obfuscated", that is to say that the structure of the program is altered to make disassembly particularly difficult. An example of a complication is illustrated in Appendix 3 where it is initially set a = 4; b = 3; c = 2; d = 1, again for the example of writing the data "content" = 23.
Dans cet exemple, il est impossible pour un pirate (ou "hacker") de retrouver une donnée d'un contenu de grande taille dans un temps raisonnable. La tâche de désobfuscation quand elle est bien réalisée ne peut pas actuellement être automatisée pour tout programme, mais il faut avoir une clé de désobfuscation, en connaissance du programme initial. L'exemple de l'annexe 3 est trivialement compréhensible et simplement illustratif. Toutefois, il sera avantageux de compliquer ainsi tout ou partie des données du contenu et, en tout état de cause, les données d'identifiants des entités. In this example, it is impossible for a pirate (or "hacker") to retrieve data of a large content in a reasonable time. The task of deobfuscation when it is well done can not currently be automated for any program, but you must have a deobfuscation key, knowing the initial program. The example in Appendix 3 is trivially understandable and simply illustrative. However, it will be advantageous to complicate all or part of the content data and, in any case, the identifier data of the entities.
ANNEXE 1 int index = a lot - 1 ; Big Number contenu ; ANNEX 1 int index = a lot - 1; Big Number content;
large integer coeff[a lot], expos[a lot] ; while(index > -1) { contenu = contenu + (coeff [index] * (2^expos [index]) index ; Index-- ; } 15 ANNEXE 2 Big Number contenu ; large integer coeff [a lot], expos [a lot]; while (index> -1) {content = content + (coeff [index] * (2 ^ expos [index]) index; Index--;} 15 APPENDIX 2 Big Number Content;
contenu = (2^4) 4 ; contenu = contenu +(2^2) 2 ; 20 contenu = contenu +(2^1) 1 ; contenu = contenu +1 ; ANNEXE 3 25 Big Number contenu ; large integer a, b, c, d ; content = (2 ^ 4) 4; content = content + (2 ^ 2) 2; Content = content + (2 ^ 1) 1; content = content +1; APPENDIX 3 25 Big Number Content; broad integer a, b, c, d;
contenu = (2^ (b+d)) (2*c) ; contenu = contenu + ((a-4) ^a (b-d) ; 30 contenu = contenu -c * (d-d) ; contenu = contenu + (a-b) ; 10 content = (2 ^ (b + d)) (2 * c); content = content + ((a-4) ^ a (b-d); 30 content = content -c * (d-d); content = content + (a-b); 10
Claims (12)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0850727A FR2927209A1 (en) | 2008-02-05 | 2008-02-05 | Computer entity i.e. server, communicating method for exchanging e.g. multimedia content, involves executing global program by executing routine to control identifier, and playing content in case of positive control of identifier of entity |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0850727A FR2927209A1 (en) | 2008-02-05 | 2008-02-05 | Computer entity i.e. server, communicating method for exchanging e.g. multimedia content, involves executing global program by executing routine to control identifier, and playing content in case of positive control of identifier of entity |
Publications (1)
Publication Number | Publication Date |
---|---|
FR2927209A1 true FR2927209A1 (en) | 2009-08-07 |
Family
ID=39942928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0850727A Pending FR2927209A1 (en) | 2008-02-05 | 2008-02-05 | Computer entity i.e. server, communicating method for exchanging e.g. multimedia content, involves executing global program by executing routine to control identifier, and playing content in case of positive control of identifier of entity |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR2927209A1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050138400A1 (en) * | 2003-12-19 | 2005-06-23 | Institute For Information Industry | Digital content protection method |
WO2006000029A1 (en) * | 2004-06-23 | 2006-01-05 | Telstra Corporation Limited | Content delivery system and player |
-
2008
- 2008-02-05 FR FR0850727A patent/FR2927209A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050138400A1 (en) * | 2003-12-19 | 2005-06-23 | Institute For Information Industry | Digital content protection method |
WO2006000029A1 (en) * | 2004-06-23 | 2006-01-05 | Telstra Corporation Limited | Content delivery system and player |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2290767C2 (en) | Receiving device for protective preservation of a unit of content and reproduction device | |
EP1625479B1 (en) | Method and system for controlled media sharing in a network | |
TWI442750B (en) | Controlling interaction between protected media | |
US7499550B2 (en) | System and method for protecting a title key in a secure distribution system for recordable media content | |
US7802306B1 (en) | Multiple watermarks for digital rights management (DRM) and content tracking | |
US20070233601A1 (en) | Systems and methods for protecting digital content | |
US20130232583A1 (en) | Method and System for Providing Digital Media Rental | |
WO2003026207A2 (en) | Method and system for secure distribution of digital documents | |
TW200428846A (en) | Content encryption using programmable hardware | |
US9276935B2 (en) | Domain manager for extending digital-media longevity | |
US9064096B2 (en) | Methods and apparatus for secure distribution of protected content | |
WO2005119537A1 (en) | Method for downloading with an advertising insert and specific player | |
US7356511B2 (en) | Method and apparatus for marking content during distribution of the content to a client | |
FR2892222A1 (en) | METHOD FOR ETCHING, PROVIDING AND SECURE DISTRIBUTION OF DIGITAL DATA, ACCESS DEVICE AND RECORDER. | |
EP1537738B1 (en) | Method for verifying validity of domestic digital network key | |
US8719946B2 (en) | System and method for securely retrieving and playing digital media | |
US10078737B2 (en) | System and method for securely retrieving and playing digital media | |
EP2005703A1 (en) | Device for reproducing digital content, secure electronic entity, system comprising said elements and method for reproducing digital content | |
US11204980B2 (en) | System and method for securely retrieving and playing digital media using peer-to-peer distribution | |
WO2008084154A2 (en) | Processing of data associated with a digital service | |
FR2927209A1 (en) | Computer entity i.e. server, communicating method for exchanging e.g. multimedia content, involves executing global program by executing routine to control identifier, and playing content in case of positive control of identifier of entity | |
JP2005507195A (en) | Apparatus and method for accessing material using entity-locked secure registry | |
US8826445B2 (en) | Method and system of deterring unauthorized use of media content by degrading the contents waveform | |
FR2881254A1 (en) | Digital data e.g. music file, restitution method for managing music rights, involves executing file for restitution of data in case of positive comparison between machine of user and identifier of machine on which data is to be played | |
EP2875461B1 (en) | Transmission of digital content between a source terminal and a recipient terminal |