Brevet FR2845493A1 — publié le 20040409

LOGICIEL EMBARQUE ET PROCEDE D'AUTHENTIFICATION DE CELUI-CI DESCRIPTION DOMAINE TECHNIQUE L'invention concerne un logiciel embarqué 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 de ce logiciel 15 représentative de celui-ci et en insérant celle-ci dans ce logiciel. 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 20 un logiciel spécifique à une procédure de défense sinon il continue normalement. 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 21975 DB au logiciel avant d'être comparée à la signature de référence. Un premier document de l'art connu, la norme ETSI TS 101 812 V1-1-1 intitulée "Digital Video 5 Broadcasting (DVB) Multimédia Home Platform (MHP) Spécifiation 1.0" (2000-07) notamment les sections 12.2 et 12.7, décrit la mise en oeuvre d'une authentification de logiciel téléchargé dans un terminal en réalisant une authentification par certificat dudit logiciel 10 téléchargé au moyen d'un logiciel embarqué dans ledit terminal. Un second document de l'art connu, US 6,167,521, décrit un procédé de téléchargement d'un nouveau logiciel dans un système, qui a pour objet 15 d'éviter que ce nouveau logiciel téléchargé ne s'attaque à un logiciel déjà installé dans ce système, ou réciproquement d'éviter que le logiciel déjà installé ne s'attaque au nouveau logiciel, notamment lorsque les propriétaires de ces deux logiciels n'ont 20 pas confiance l'un en l'autre. Plus précisément pour réaliser une authentification de logiciel, il est connu, comme illustré sur la figure 1, d'utiliser un logiciel contenu dans une mémoire dans une première partie 10 25 fixe, c'est-à-dire protégée en écriture, pour authentifier un logiciel applicatif d'une seconde partie 11, qui peut avoir été téléchargée, en utilisant un certificat 12 situé dans cette seconde partie 11. Ainsi, dans le domaine du décodeur, 30 lorsqu'un client vient trouver le fournisseur de service avec un nouveau logiciel applicatif, celui-ci SP 21975 DB lui fournit un logiciel de vérification de ce logiciel applicatif et un certificat A associer à ce dit logiciel applicatif. Mais dans une telle solution, rien ne 5 permet au fournisseur du premier logiciel de s'assurer que la procédure d'authentification a bien eu lieu. L'invention a pour objet de permettre au fournisseur de s'assurer que cette authentification a bien eu lieu et que ses droits ont donc bien été 10 respectés par le client. EXPOSE DE L'INVENTION La présente invention propose donc un 15 procédé d'authentification d'un logiciel téléchargé dans un terminal, ledit procédé comprenant une étape d'authentification par certificat dudit logiciel téléchargé au moyen d'un logiciel embarqué dans ledit terminal,caractérisé en ce qu'il comprend, en outre, 20 une étape d'authentification par certificat, lors de l'exécution dudit logiciel téléchargé, dudit premier logiciel embarqué au moyen d'un module logiciel d'authentification associé audit logiciel téléchargé. Avantageusement le premier logiciel embarqué authentifie le logiciel téléchargé au moyen d'une librairie d'authentification et d'un premier certificat; le premier logiciel embarqué et la librairie d'authentification forment une première 30 partie de mémoire protégée en écriture, le logiciel SP 21975 DB téléchargé et ce premier certificat forment une seconde partie de mémoire chargeable. Avantageusement, la première partie comporte également un second certificat, la seconde 5 partie comporte en outre un logiciel de vérification, et, une fois le logiciel téléchargé authentifié, le logiciel de vérification authentifie le premier logiciel au moyen de la librairie d'authentification et du second certificat. Avantageusement, ces deux authentifications successives ont lieu à l'initialisation. La seconde partie peut être téléchargée. L'invention concerne également un logiciel embarqué comprenant une première partie de mémoire 15 protégée en écriture formée d'un premier logiciel et d'une librairie d'authentification, et une seconde partie comportant un logiciel applicatif et un premier certificat, caractérisé en ce que la première partie comprend, en outre, un second certificat, et en ce que 20 la seconde partie comporte en outre un logiciel de vérification. Ce logiciel peut être utilisé par exemple dans un décodeur de télévision numérique, dans un terminal de type PC ("personal computer"), ou dans tout 25 autre appareil embarqué. BREVE DESCRIPTION DES DESSINS La figure 1 illustre un procédé d'authentification de l'art connu. La figure 2 illustre le procédé d'authentification de l'invention. SP 21975 DB La figure 3 illustre un exemple de certificat. La figure 4 illustre un exemple de signature. EXPOS D TAILL DE MODES DE REALISATION PARTICULIERS Dans le procédé de l'invention, comme dans le procédé de l'art connu illustré sur la figure 1, un premier logiciel contenu dans une première partie 10 de 10 mémoire protégée en écriture, authentifie, par exemple dans la phase d'initialisation, un second logiciel, qui est le logiciel applicatif, situé dans une seconde partie 11 chargeable en utilisant une librairie d'authentification située dans la première partie et un 15 certificat 12 situé dans cette seconde partie 11. Le terme "certificat" ayant un sens bien particulier (Une identité électronique qui est émise par une tierce partie de confiance pour une personne ou une entité réseau, Chaque certificat étant signé avec 20 la clé privée de signature d'une autorité de certification.) et trop limitatif dans les techniques d'authenfication, le terme "certificat" utilisé dans la présente description entend couvrir également, plus généralement, les termes signature, CRC ou autres 25 données nécessaires à vérifier l'authenticité/ intégrité d'un logiciel. Dans le procédé de l'invention, la première partie 10 comporte, en outre, un second certificat 13, comme illustré sur la figure 2. La seconde partie 11 30 comporte, en outre, un logiciel de vérification. Ce logiciel de vérification, une fois le logiciel SP 21975 DB applicatif authentifié, authentifie le premier logiciel au moyen de la librairie d'authentification et du second certificat. Un tel procédé permet au fournisseur du 5 premier logiciel de s'assurer que le client qui utilise le logiciel applicatif respecte bien ses droits. Dans un exemple de réalisation, le format du certificat, illustré sur la figure 3 est le suivant: En-tête: - CLP ("Certificate Location Pattern") motif donnant la situation du certificat pour trouver le certificat d'authentification dans la mémoire (par exemple 8 octets), - RFU ("Reserved for Future Use"): réservé 15 pour un usage ultérieur (par exemple 1 octet), - K: numéro de clé à utiliser (par exemple 1 octet), * Signature (par exemple 128 octets) qui est le résultat d'un chiffrement RSA, avec une clé privée, de 20 1024 bits du message illustré sur la figure 4. La signature de 1024 bits commence par un octet à 0 pour permettre son chiffrement RSA, le reste 20 est rempli aléatoirement d'une manière différente avant chaque chiffrement. A l'offset HCODEOFFSET par rapport au début du message, on trouve un Hash code SHAl sur 20 octets. Ce HCODE est précédé d'un motif CHECKPATTERN dont le rôle est de permettre la distinction entre un mauvais déchiffrement (rang ou valeur de clé publique, 30 algorithme, certificat incohérent) et un mauvais H CODE lors de la vérification d'intégrité. SP 21975 DB REVENDICATIONS 1. Procédé d'authentification d'un logiciel téléchargé dans un terminal, ledit procédé comprenant une étape d'authentification par certificat dudit logiciel téléchargé au moyen d'un logiciel embarqué dans ledit terminal, caractérisé en ce qu'il comprend, 10 en outre, une étape d'authentification par certificat, lors de l'exécution dudit logiciel téléchargé, dudit premier logiciel embarqué au moyen d'un module logiciel d'authentification associé audit logiciel téléchargé. 2. Procédé selon la revendication 1, dans lequel le premier logiciel embarqué authentifie le logiciel téléchargé au moyen d'une librairie d'authentification et d'un premier certificat, dans lequel le premier logiciel embarqué et la librairie 20 d'authentification forment une première partie de mémoire (10) protégée en écriture,et dans lequel le logiciel téléchargé et le premier certificat (12) forment une seconde partie de mémoire (11) chargeable. 3 Procédé selon la revendication 2, dans lequel la première partie (10) comporte également un second certificat (13), dans lequel la seconde partie (11) comporte en outre un logiciel de vérification, et dans lequel, une fois le logiciel téléchargé 30 authentifié, le logiciel de vérification authentifie le premier logiciel embarqué au moyen de la librairie d'authentification et du second certificat (13). 4. Procédé selon la revendication 1, dans 5 lequel ces deux authentifications successives ont lieu à l'initialisation. 5. Procédé selon la revendication 2, dans lequel la seconde partie (11) est téléchargée. 6. Logiciel embarqué comprenant une première partie de mémoire (10) protégée en écriture comportant un premier logiciel, une librairie d'authentification, et un second certificat (13), et 15 une seconde partie de mémoire (11) comportant un logiciel applicatif, un premier certificat (12), et un logiciel de vérification, pour l'exécution des étapes du procédé selon l'une quelconque des revendications 1 à 5, lorsque ledit logiciel est exécuté sur un 20 ordinateur.