FR2845494A1 - Logiciel et procede d'authentification de celui-ci - Google Patents

Logiciel et procede d'authentification de celui-ci Download PDF

Info

Publication number
FR2845494A1
FR2845494A1 FR0212326A FR0212326A FR2845494A1 FR 2845494 A1 FR2845494 A1 FR 2845494A1 FR 0212326 A FR0212326 A FR 0212326A FR 0212326 A FR0212326 A FR 0212326A FR 2845494 A1 FR2845494 A1 FR 2845494A1
Authority
FR
France
Prior art keywords
software
functions
calculation
verification
execution
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.)
Granted
Application number
FR0212326A
Other languages
English (en)
Other versions
FR2845494B1 (fr
Inventor
Jean Claude Sarfati
Alain Lecaer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KCA Licensing SA
Original Assignee
Canal Plus Technologies SA
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canal Plus Technologies SA filed Critical Canal Plus Technologies SA
Priority to FR0212326A priority Critical patent/FR2845494B1/fr
Priority to PCT/FR2003/050074 priority patent/WO2004032329A2/fr
Priority to AU2003288371A priority patent/AU2003288371A1/en
Publication of FR2845494A1 publication Critical patent/FR2845494A1/fr
Application granted granted Critical
Publication of FR2845494B1 publication Critical patent/FR2845494B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

La présente invention concerne un procédé d'authentification d'un logiciel, qui comprend les étapes suivantes :- utilisation de plusieurs fonctions élémentaires de calcul et d'au moins une fonction de vérification disséminées dans l'ensemble dudit logiciel,- vérification au cours du déroulement du logiciel, à l'aide d'une fonction de vérification, de la concordance d'un résultat de calcul obtenu à l'aide desdites fonctions élémentaires de calcul et d'un résultat mémorisé au préalable,- lancement d'une procédure de défense s'il n'y a pas concordance,- exécution dudit logiciel entrecoupée par l'exécution desdites fonctions élémentaires de calcul disséminées, l'exécution d'une pluralité de fonctions élémentaires de calcul disséminées étant nécessaire à l'obtention d'un seul résultat de calcul.

Description

LOGICIEL ET PROCEDE D'AUTHENTIFICATION DE CELUI-CI
DESCRIPTION
DOMAINE TECHNIQUE
La présente invention concerne un logiciel et un procédé d'authentification de celui-ci, notamment dans le domaine des décodeurs en télévision numérique.
ETAT DE LA TECHNIQUE ANTERIEURE
Dans les dispositifs de l'art connu, un test d'intégrité d'un logiciel embarqué est généralement réalisé en calculant, à l'aide d'un outil externe, une signature de référence représentative de ce logiciel et en insérant celle-ci dans celui-ci. 15 Pendant la phase d'initialisation du logiciel, celui-ci calcule sa propre signature et compare cette signature avec la signature de référence. Si ces signatures sont différentes le logiciel exécute un logiciel spécifique à une procédure de défense, sinon il continue 20 normalement. Cette succession d'étapes est illustrée
sur la figure 1.
Dans le cas d'une authentification d'un tel logiciel, on souhaite s'assurer de la provenance de celui-ci. Une solution connue consiste à reprendre le 25 principe du test d'intégrité et à le combiner avec un algorithme cryptographique asymétrique: la signature de référence est chiffrée avec une clé privée et le résultat est intégré, sous forme d'un certificat, au logiciel. Pendant la phase de contrôle, la signature de 30 référence est déchiffrée avec une clé publique intégrée
SP 21976 DB
au logiciel avant d'être comparée à la signature de référence. Un tel logiciel embarqué peut donc faire l'objet d'attaques de la part de pirates ("hackers") 5 essayant de modifier les fonctionnalités dudit logiciel à leur profit. Une authentification permet de détecter une éventuelle modification non autorisée du logiciel,
c'est-à-dire sans certificat associé.
L'authentification repose entièrement sur 10 des parties de logiciel. Les pirates peuvent effectuer des attaques avec plus ou moins de facilité. Ils peuvent essayer de changer la clé publique, inverser le test d'égalité des signatures, court-circuiter
l'ensemble de la vérification...
Un premier document de l'art connu,
référencé [1] en fin de description, décrit un mécanisme d'autovérification de logiciel réalisé pour améliorer la résistance de ce logiciel à l'encontre des manipulations. Ce mécanisme consiste en un ensemble de 20 morceaux de logiciels, ou "testeurs", qui testent de
manière redondante l'existence éventuelle de changements dans un logiciel exécutable pendant son exécution, et qui mettent en évidence de telles modifications. Chaque "testeur" teste une petite partie 25 de logiciel contiguÙ, et compare une valeur calculée à une valeur correcte connue. Chaque "testeur" est testé par plusieurs autres. La mise hors service d'un ou plusieurs de ces "testeurs" en les modifiant, est ainsi
détectée par les "testeurs" non modifiés.
Un second document de l'art connu,
référencé [2] en fin de description, décriu la
SP 21976 DB
protection d'un logiciel contre des modifications illégitimes de la part de ses utilisateurs. La protection et la résistance aux manipulations du logiciel sont réalisées en utilisant un réseau d'unités 5 de sécurité, ou "guards", disséminées dans un programme, qui travaillent ensemble. Chacune de ces unités est un morceau de logiciel apte à réaliser certaines actions relatives à la sécurité, pendant l'exécution du programme. Les unités peuvent être 10 programmées pour effectuer n'importe quel calcul, par exemple le calcul d'une somme de contrôle (ou "checksum" en langue anglaise) d'un autre morceau de logiciel pendant son exécution, pour vérifier son intégrité. Ces unités de sécurité peuvent travailler 15 ensemble et mettre en oeuvre un schéma de protection sophistiqué qui permette de mieux résister aux attaques qu'une unité isolée. Ainsi, si un programme comporte plusieurs morceaux de logiciel dont on veut protéger l'intégrité, plusieurs unités réalisant de telles 20 vérifications peuvent être utilisées pour protéger ces
différents morceaux.
Mais il semble que les pirates effectuent, sur le logiciel en composant "flash" dont ils ont récupéré l'image, plutôt des analyses d'ingénierie 25 inverse (ou "reverse engineering") "statique", c'est-àdire par simple examen du logiciel, que des analyses "dynamiques", c'est-à-dire en s'intéressant directement
au logiciel en cours d'exécution.
Il existe, en effet, de nombreux outils 30 d'investigation, par exemple sur des terminaux informatiques de type PC ("Personal Computers"), qui
SP 21976 DB
permettent à de nombreux pirates amateurs d'effectuer des analyses statiques, alors que pour effectuer des analyses dynamiques il est nécessaire de détenir, maîtriser et mettre en oeuvre des outils spécifiques. De 5 telles analyses dynamiques sont donc nettement plus délicates à réaliser, et ne sont donc à la portée que
de quelques spécialistes.
Dans des analyses statiques, étant donné que, dans leurs mises en oeuvre habituelles, les 10 morceaux de logiciels liés à l'authentification sont très localisés dans le logiciel en matériau "flash", il est relativement facile de les retrouver et de les
modifier sans avoir à suivre leurs exécutions.
L'invention a pour objet de pallier de tels 15 inconvénients.
EXPOS DE L'INVENTION
La présente invention concerne un procédé d'authentification d'un logiciel, qui comprend les étapes suivantes: - utilisation de plusieurs fonctions élémentaires de calcul et d'au moins une fonction de vérification disséminées dans l'ensemble dudit logiciel, - vérification au cours du déroulement du logiciel, à l'aide d'une fonction de vérification, de la 25 concordance d'un résultat de calcul obtenu à l'aide desdites fonctions élémentaires de calcul et d'un résultat- mémorisé au préalable, - lancement d'une procédure de défense s'il n'y a pas concordance, caractérisé en ce que
SP 21976 DB
- l'exécution dudit logiciel est entrecoupée par l'exécution desdites fonctions élémentaires de calcul disséminées, l'exécution d'une pluralité de fonctions élémentaires de calcul disséminées étant nécessaire à l'obtention d'un seul résultat de calcul. Avantageusement, ces étapes sont mises en
oeuvre pendant la phase d'initialisation du logiciel.
Dans une variante de réalisation, ce procédé comprend des étapes préalables de: - calcul de la signature du logiciel par un algorithme principal, - comparaison de la concordance de cette signature à un certificat de référence,
- lancement d'une procédure de défense s'il n'y a pas 15 concordance.
Dans cette variante, les fonctions de vérification sont de deux types des premières fonctions de vérification qui vérifient de façon directe ou indirecte, la concordance entre 20 la signature calculée par l'algorithme principal et le certificat de référence; - des secondes fonctions de vérification qui vérifient,
de façon directe ou indirecte, que le résultat obtenu avec les fonctions de calcul disséminées dans le 25 logiciel correspond à la valeur attendue.
L'invention concerne également un logiciel qui comprend plusieurs fonctions de calcul, et au moins une fonction de vérification, disséminées dans
l'ensemble de celui-ci.
SP 21976 DB
Les fonctions de calcul élémentaires mises
à contribution dans le procédé de l'invention ne sont pas nécessairement les mêmes d'une exécution à l'autre.
L'exécution du logiciel peut, en effet, dépendre de 5 paramètres ou de stimuli externes. Les fonctions de
vérification peuvent être exécutées à tout moment au long de la vie du logiciel. Aussi, pour qu'un pirate puisse invalider le test d'authentification de l'invention, il faut supprimer toutes les fonctions de 10 vérification, qui sont disséminées dans le logiciel.
Certaines branches du logiciel normalement non explorées lors d'un fonctionnement standard peuvent être mises à contribution sur réception de stimuli particuliers, permettant l'exécution de fonctions de 15 vérification jamais appelées auparavant. Ceci rend encore plus difficile l'invalidation de
l'authentification par des pirates.
BREVE DESCRIPTION DES DESSINS
- La figure 1 illustre un test d'intégrité 20 de l'art connu.
- La figure 2 illustre le procédé de l'invention. - La figure 3 illustre une variante du
procédé de l'invention.
DESCRIPTION D TAILL E DE MODES DE R ALISATION
Le procédé de l'invention consiste à faire exécuter des algorithmes d'authentification par des fonctions de calcul et de vérification disséminées dans 30 l'ensemble du logiciel à authentifier. Contrairement
SP 21976 DB
-7 aux procédés de l'art connu, l'authentification n'est pas exécutée selon un processus itératif ou linéaire,
mais au cours de l'exécution dudit logiciel.
En sachant qu'un logiciel est constitué 5 d'un ensemble de fonctions appelées en séquence, dans l'invention on insère dans certaines fonctions de ce logiciel des fonctions élémentaires de calcul de signature et des fonctions élémentaires de vérification. On s'assure alors que ces insertions ne 10 perturbent pas le fonctionnement normal de ce logiciel,
ce qui est à la portée de l'homme de métier.
Dans une mise en oeuvre habituelle, les algorithmes de calcul de signature et de vérification sont localisés en un ou plusieurs endroits du logiciel, 15 et sont exécutés une fois au cours du déroulement du logiciel, généralement pendant la phase
d'initialisation de celui-ci.
Dans la mise en oeuvre de l'invention, le calcul de signature est réparti géographiquement dans 20 l'ensemble du logiciel, et est exécuté au fil de l'exécution normale des fonctions du logiciel, avantageusement pendant la phase d'initialisation qui
est une phase de passage obligé de ce logiciel.
Une telle phase d'initialisation est ainsi 25 illustrée sur la figure 2 avec: x: représentant une fonction de calcul, o: représentant une fonction de vérification, Sur cette figure sont illustrés différents chemins possibles (ici au nombre de trois: chemins 10, 30 11 et 12) entre le début (point O) et la fin (point F) de cette initialisation. Le passage par l'un ou l'autre
SP 21976 DB
de ces chemins dépend de l'état dans lequel se trouve le logiciel en début d'initialisation: première initialisation, choix effectués préalablement Comme cela apparaît sur la figure 2, 5 certaines fonctions de calcul et de vérification ne
sont appelées pendant aucun de ces chemins.
Pour ne pas pénaliser les performances du logiciel, en termes de vitesse d'exécution et de taille, il n'est pas possible d'intégrer une fonction 10 élémentaire de calcul ou de vérification dans chaque fonction du logiciel. On choisit donc un nombre de telles fonctions de calcul ou de vérification disséminées dans le logiciel pour pouvoir mener à bien le calcul nécessaire à l'obtention d'une signature dans 15 un temps raisonnable selon l'algorithme de calcul retenu. Dans le procédé de l'invention, on s'assure
que les fonctions de calcul ont bien terminé leur calcul avant que les fonctions de vérification 20 n'entrent en oeuvre.
On vérifie donc expérimentalement à partir de quel moment, en fonction des différentes possibilités de déroulement du logiciel, les fonctions de vérification peuvent être rendues actives. 25 Dans une variante de réalisation du procédé de l'invention, on combine le procédé d'authentification de l'art connu, et le procédé cidessus, c'est-à-dire que: - d'une part, on vérifie la totalité du logiciel avec le procédé de l'art connu,
SP 21976 DB
- d'autre part, on vérifie l'intégrité de ce logiciel avec le procédé de l'invention, en vérifiant la signature obtenue par des fonctions disséminées de vérification. Ainsi, comme illustré sur la figure 3, si
les zones A, B et D d'une mémoire en matériau flash, par exemple, contiennent le logiciel à authentifier.
Des fonctions de calcul F, et des fonctions de
vérification Fv sont disséminées dans ces zones.
La zone B contient l'algorithme principal de vérification d'intégrité du logiciel, conformément au procédé de l'art connu. La zone C contient un certificat qui sert de référence pour l'authentification. Selon le procédé de l'art connu,
l'algorithme principal contenu dans la zone B calcule la signature du logiciel sur les zones A, B et D, en excluant le certificat contenu dans la zone C. La signature calculée est mémorisée, en utilisant une 20 technique d'obfuscation de code.
On vérifie alors, en utilisant par exemple
des fonctions de vérification, la concordance de cette signature avec ledit certificat de référence. S'il n'y a pas concordance, une procédure de défense peut alors 25 être lancée.
Après ce calcul qui a porté sur l'ensemble du logiciel, les fonctions de calcul F, disséminées dans le logiciel sont exécutées au fil de l'exécution du logiciel, selon, le procédé de l'invention. Ce 30 calcul porte, à la fois, sur l'algorithme principal
SP 21976 DB
contenu dans la zone B et sur les éventuelles fonctions de défense qui se trouvent également dans cette zone B. Dans cette variante, les fonctions de vérification peuvent donc être de deux types: - des premières fonctions de vérification qui vérifient de façon directe ou indirecte la concordance entre la signature calculée par l'algorithme principal et la valeur attendue, - des secondes fonctions de vérification qui vérifient 10 de façon directe ou indirecte que le résultat obtenu avec les fonctions de calcul F0 disséminées dans le
logiciel correspond à la valeur attendue.
Dans les deux cas, s'il n'y a pas
concordance des signatures, une procédure de défense 15 peut alors être lancée.
Dans un mode de réalisation préféré de l'invention on utilise l'algorithme de calcul HASH nommé SHAl. Ce dernier opère de la manière suivante 20 l.Remplissage de fichier SHA.1 est utilisé pour calculer un condensé de fichier ("file digest")pour un fichier qui est fourni comme entrée. Le fichier devrait être considéré 25 comme une chaîne de bits. La longueur du fichier est constituée par le nombre de bits dans le fichier (un fichier vide a une longueur 0). Si le nombre de bits dans un fichier est un multiple de 8, pour compactage on peut représenter le fichier en hexadécimal. Le but 30 d'un remplissage de fichier est de rendre la longueur totale du fichier rempli multiple de 512. SHA.1 traite
SP 21976 DB
1l séquentiellement des blocs de 512 bits lorsqu'il réalise le condensé de fichier. Ce condensé peut-être réalisé de la façon suivante. Comme un résumé, un "1" suivi par m "0" suivis par un entier de 64 bits sont 5 joints à la fin du fichier pour produire un fichier rempli d'une longueur 512* n. L'entier de 64 bits est la longueur du fichier original. Le fichier rempli est
alors traité par SHA.1 comme n blocs de 512 bits.
Si un fichier a une longueur (notée 1) 10 telle que: 1 2 A 64, avant qu'il ne soit entré dans SHA.1, le fichier est rempli sur la droite de la
manière suivante.
a. "1" est joint.
Par exemple, si le fichier original est 15 '01010000', il est complété à '010100001',
b. les "0" sont complétés.
Le nombre de "0" dépend de la longueur originale de fichier. Les derniers 64 bits du dernier bloc de 512 bits sont réservés pour la longueur 1 du 20 fichier original, Par exemple, si on suppose que le fichier original est la chaîne de bits:
01100001 01100010 01100011 01100100
Après l'étape (a) cela donne
01100001 01100010 01100011 01100100
01100101 1
Puisque 1 = 40, le nombre de bits ci-dessus
est 41 et 417 "0" sont joints, ce qui fait que le total 30 est maintenant 448.
SP 21976 DB
Cela donne (en hexadécimal):
61626364 65800000 00000000 00000000 00000000 00000000 00000000 00000000 5 00000000 00000000 00000000 00000000
00000000 00000000
c. On obtient la représentation 2-mots de
1, le nombre de bits dans le fichier original. Si 1 < 2 A 32 alors le mot est composé de "0". On joint ces deux 10 mots au fichier complété.
Par exemple, on suppose que le fichier original est comme dans (b). Alors 1 = 40 (on note que 1 est calculé avant tout remplissage). La représentation deux mots de 40 est (en hexadécimal): 15 00000000 00000028. En conséquence le fichier complété (en hexadécimal):
61626364 65800000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 20 00000000 00000000 00000000 00000028
Le fichier complété contient 16 * n mots pour quelques n > 0. Le fichier complété est regardé comme une séquence de n blocs M(1), M(2), premiers caractères (ou bits) du fichier. 25
2. Fonctions et constantes utilisées.
Une séquence de fonctions logiques f (0), f(l)...... f(79) est utilisée dans SHA.1 Chaque f(t), avec 0s t s79 fonctionne sur trois mots de 32 bits B,C,D et 30 produit un mot de 32 bits comme sortie. f(t,B,C,D) est défini comme suit pour des mots B,C,D
SP 21976 DB
f(t; B,C,D)=(B AND (0 t - 19)
C) OR ((NOT B) AND D)
K(1),...K(79) sont donnés f(t; B,C,D)= B XOR C XOR D (20 t s =39) f(t; B,C,D)=(B AND C) OR (B AND D) OR (C AND D) (40 s t s 59) f(t,B,C,D) = B XOR C XOR D (60s t s79). Une séquence de mots constants K(0), est utilisée dans SHA.1. En hexadécimal ils par: K(t) = 5A827999 (0 s t s 19) K(t) = 6ED9EBA1 (20 s t s 39) K(t) = 8F1BBCDC (40 s t s 59)
K(t) = CA62C1D6) (60 s t s 79).
3. Calcul du condensé de fichier Le condensé de fichier est calculé en utilisant le fichier rempli comme décrit ci-dessus. Ce calcul est décrit en utilisant deux buffers, chacun comprenant cinq mots de 32 bits, et une séquence de 80 20 mots de 32 bits. Les mots des premier buffers de 5 mots
sont appelés A,B,C,D,E. Les mots des seconds buffers de 5 mots sont appelés H0, HI, H2, H3 et H4. les mots de la séquence de 80 mots sont appelés W(0), W(1)....W(79).
Un buffer de mot seul TEMP est aussi utilisé.
Pour générer le condensé de fichier, des blocs de 16 mots M(l),M(2)...M(n) sont traités dans l'ordre. Le traitement de chaque M(i) comprend 80 étapes.
Avant le traitement de tout bloc, les H 30 sont initialisés comme suit (en hexadécimal): -
SP 21976 DB
10 H0 = 67452301 Hi = EFCDAB89 H2 = 98BADCFE H3 = 10325476 H4 = C3D2ElF0 Maintenant M(1), M(2),, M(n) sont traités. Pour traiter M(i) on réalise:
a. Division de M (i) en 16 mots W(0), W(1),..W(15), o W(0) est le mot le plus à gauche.
b. Pour t = 16 à 79 W(t) = SAl(W(t-3) XOR W (t-8) XOR (t-14)
XOR W(t-16)).
c. A =HO,B = H1,C=H2,D=H3,E=H4.
d. Pour t= 0 à 79 TEMP = SA5(A)+f(t;B,C,D) + E + W(t) + K(t)
E = D; D = C; C = S A 30 (B): B =A; A =
TEMP e. H0 = H0 + A, Hi = HI +B,H2 = H2 + C?H3
=H3 + D, H4 = H4 + E.
Après traitement de M(n), le condensé de fichier est la chaîne de 160 bits représentée par les 5 mots:
H0 Hi H2 H3 H4.
Selon l'invention, l'algorithme décrit cidessus est décomposé en N fonctions de calculs qui sont disséminées par intermittence avec des portions du logiciel. N fonctions de calcul sont nécessaires pour obtenir un seul condensé de fichier, c'est à dire un 30 résultat de calcul selon l'invention.
SP 21976 DB
REFERENCES
[1] "Dynamic Self-Checking Techniques for Improved Tamper Resistance" de Bill Horne, Lesley Matheson, Casey 5 Sheehan et Robert E. Tarjan (présenté dans le cadre du séminaire ("Workshop") DRM ("Digital Rights Management") de l'ACM ("Association for Computing Machinery") en 2001)
[2]
"Protecting Software Code by Guards" de Hoi Chang et Mikhail D. Attallah "(présenté dans le cadre du séminaire ("Workshop") DRM ("Digital Rights Management") de l'ACM ("Association for Computing 15 Machinery") en 2001)
SP 21976 DB

Claims (4)

REVENDICATIONS
1. Procédé d'authentification d'un logiciel, qui comprend les étapes suivantes: - utilisation de plusieurs fonctions élémentaires de calcul et d'au moins une fonction de vérification disséminées dans l'ensemble dudit logiciel, - vérification au cours du déroulement du logiciel, à l'aide d'une fonction de vérification, de la 10 concordance d'un résultat de calcul obtenu à l'aide desdites fonctions élémentaires de calcul et d'un résultat mémorisé au préalable, - lancement d'une procédure de défense s'il n'y a pas concordance, caractérisé en ce que - l'exécution dudit logiciel est entrecoupée par
l'exécution desdites fonctions élémentaires de calcul disséminées, l'exécution d'une pluralité de fonctions élémentaires disséminées étant nécessaire 20 à l'obtention d'un seul résultat de calcul.
2. Procédé selon la revendication 1, dans lequel ces étapes sont mises en oeuvre pendant la phase d'initialisation du logiciel. 25
3. Procédé selon la revendication 1, comprenant des étapes préalables de - calcul de la signature du logiciel par un algorithme principal, - comparaison de la concordance de cette signature à un certificat de référence,
SP 21976 DB
- lancement d'une procédure de défense s'il n'y a pas concordance.
4. Procédé selon la revendication 3, dans 5 lequel les fonctions de vérification sont de deux types: - des premières fonctions de vérification qui vérifient de façon directe ou indirecte la concordance entre la signature calculée par 10 l'algorithme principal et le certificat de référence; - des secondes fonctions de vérification qui vérifient
de façon directe ou indirecte que le résultat obtenu avec les fonctions de calcul disséminées dans le 15 logiciel correspond à la valeur attendue.
SP 21976 DB
FR0212326A 2002-10-04 2002-10-04 Logiciel et procede d'authentification de celui-ci Expired - Fee Related FR2845494B1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
FR0212326A FR2845494B1 (fr) 2002-10-04 2002-10-04 Logiciel et procede d'authentification de celui-ci
PCT/FR2003/050074 WO2004032329A2 (fr) 2002-10-04 2003-10-02 Logiciel et procede d'authentification de celui-ci.
AU2003288371A AU2003288371A1 (en) 2002-10-04 2003-10-02 Software and method for authenticating same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0212326A FR2845494B1 (fr) 2002-10-04 2002-10-04 Logiciel et procede d'authentification de celui-ci

Publications (2)

Publication Number Publication Date
FR2845494A1 true FR2845494A1 (fr) 2004-04-09
FR2845494B1 FR2845494B1 (fr) 2005-08-19

Family

ID=32011394

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0212326A Expired - Fee Related FR2845494B1 (fr) 2002-10-04 2002-10-04 Logiciel et procede d'authentification de celui-ci

Country Status (3)

Country Link
AU (1) AU2003288371A1 (fr)
FR (1) FR2845494B1 (fr)
WO (1) WO2004032329A2 (fr)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10528705B2 (en) * 2006-05-09 2020-01-07 Apple Inc. Determining validity of subscription to use digital content
US8769675B2 (en) 2008-05-13 2014-07-01 Apple Inc. Clock roll forward detection

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999013613A1 (fr) * 1997-09-05 1999-03-18 Intel Corporation Procedes et appareil garantissant l'inviolabilite

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999013613A1 (fr) * 1997-09-05 1999-03-18 Intel Corporation Procedes et appareil garantissant l'inviolabilite

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
AUCSMITH D: "TAMPER RESISTANT SOFTWARE: AN IMPLEMENTATION", INFORMATION HIDING. INTERNATIONAL WORKSHOP PROCEEDINGS, XX, XX, 1996, pages 317 - 333, XP000955677 *
BILL HORNE, LESLEY MATHESON, CAEY SHEEHAN AND ROBERT E. TARJAN: "Dynamic Self-Checking Techniques for Improved Tamper Resistance", T.SANDER (ED.) DRM 2001, LNCS 2320, 10 June 2002 (2002-06-10), pages 141 - 159, XP002242929, ISBN: 3-540-43677-4 *
COHEN F B: "OPERATING SYSTEM PROTECTION THROUGH PROGRAM EVOLUTION", COMPUTERS & SECURITY. INTERNATIONAL JOURNAL DEVOTED TO THE STUDY OF TECHNICAL AND FINANCIAL ASPECTS OF COMPUTER SECURITY, ELSEVIER SCIENCE PUBLISHERS. AMSTERDAM, NL, vol. 12, no. 6, 1 October 1993 (1993-10-01), pages 565 - 584, XP000415701, ISSN: 0167-4048 *

Also Published As

Publication number Publication date
WO2004032329A2 (fr) 2004-04-15
WO2004032329A3 (fr) 2004-07-15
AU2003288371A1 (en) 2004-04-23
AU2003288371A8 (en) 2004-04-23
FR2845494B1 (fr) 2005-08-19

Similar Documents

Publication Publication Date Title
US8787566B2 (en) Strong encryption
JP5167348B2 (ja) ソフトウェア暗号化方法およびソフトウェア暗号解読方法およびソフトウェア暗号化装置およびソフトウェア暗号解読装置
CN104969508B (zh) 用于保护固定长度的数据结构的完整性的方法
FR2789829A1 (fr) Procede de verification de l&#39;usage de cles publiques engendrees par un systeme embarque
US20030196096A1 (en) Microcode patch authentication
EP0621569A1 (fr) Dispositif de protection des clés d&#39;une carte à puce
EP1627362A1 (fr) Methode de generation d&#39;une cle de securite
EP1570648A1 (fr) Méthode de sécurisation des mises jour de logiciels
US20130117863A1 (en) Method and Apparatus for Enabling Secure Distribution of Digital Content
EP2958040B1 (fr) Procédé et dispositif de codage de fichiers sources pour la livraison sécurisée de code source
EP1120662B1 (fr) Procédé pour tester un circuit intégré comportant des parties matérielles et/ou logicielles ayant un caractère de confidentialité
EP0720098B1 (fr) Dispositif de sécurisation de systèmes d&#39;information organisés autour de microprocesseurs
EP2166696A1 (fr) Protection de l&#39;intégrité de données chiffrées en utilisant un état intermédiare de chiffrement pour générer une signature
EP1494460A1 (fr) Procédé et dispositif d&#39;authentification de données numériques par module d&#39;extension d&#39;authentification
FR2892583A1 (fr) Procede de transmission securisee de donnees
KR20220014315A (ko) 데이터 프로세싱 시스템 및 방법
FR2742617A1 (fr) Procedes de reduction et de mise a disposition de cles de chiffrage, et structure et support de donnees pour leur mise en oeuvre
FR2845494A1 (fr) Logiciel et procede d&#39;authentification de celui-ci
CN110932853A (zh) 一种基于可信模块的密钥管理装置和密钥管理方法
WO2015197930A1 (fr) Procédé de partage de fichiers numériques entre plusieurs ordinateurs, et ordinateur, ensemble de stockage de données et système de partage de fichiers numériques associés
WO2024083849A1 (fr) Encodage en boite blanche
FR3050044B1 (fr) Procede de verification automatique d&#39;un fichier informatique cible par rapport a un fichier informatique de reference
FR3098613A1 (fr) Procede de gestion du fonctionnement d’au moins un logiciel applicatif chiffre et circuit integre correspondant
EP3547602A1 (fr) Procédé de mise en oeuvre d&#39;une fonction cryptographique pour une clé secrète
WO2024083855A1 (fr) Clés cryptographiques en boite blanche

Legal Events

Date Code Title Description
CJ Change in legal form
TP Transmission of property
PLFP Fee payment

Year of fee payment: 14

ST Notification of lapse

Effective date: 20170630