FR3143244A1 - Authorization mechanism for the use of a software process with source code security - Google Patents

Authorization mechanism for the use of a software process with source code security Download PDF

Info

Publication number
FR3143244A1
FR3143244A1 FR2212896A FR2212896A FR3143244A1 FR 3143244 A1 FR3143244 A1 FR 3143244A1 FR 2212896 A FR2212896 A FR 2212896A FR 2212896 A FR2212896 A FR 2212896A FR 3143244 A1 FR3143244 A1 FR 3143244A1
Authority
FR
France
Prior art keywords
code
application
client certificate
certificate
server
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
Application number
FR2212896A
Other languages
French (fr)
Inventor
Richard NIAMKE
Eric JOSIEN
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.)
Electricite de France SA
Original Assignee
Electricite de France 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 Electricite de France SA filed Critical Electricite de France SA
Priority to FR2212896A priority Critical patent/FR3143244A1/en
Priority to PCT/EP2023/083649 priority patent/WO2024120945A1/en
Publication of FR3143244A1 publication Critical patent/FR3143244A1/en
Pending 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2139Recurrent verification

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)

Abstract

Il est proposé un procédé d’exécution d’un code logiciel protégé, le procédé étant mis en œuvre par une application contenant un régénérateur d’un certificat client préalablement signé par une autorité de certification et un code offusqué correspondant au code logiciel protégé, le procédé comprenant, sur exécution de l’application : - régénérer, à l’aide du régénérateur, le certificat client et émettre une requête comprenant le certificat client, et - lorsque, suite à l’émission de la requête, une connexion est établie avec un serveur et une réponse indicative de validité du certificat client est reçue via la connexion établie, exécuter le code offusqué dans le conteneur logiciel, sinon, arrêter l’exécution de l’application sans exécuter le code offusqué. Figure de l’abrégé : Figure 1A method of executing protected software code is proposed, the method being implemented by an application containing a regenerator of a client certificate previously signed by a certification authority and an offended code corresponding to the protected software code, the method comprising, upon execution of the application: - regenerating, using the regenerator, the client certificate and issuing a request including the client certificate, and - when, following transmission of the request, a connection is established with a server and a response indicative of the validity of the client certificate is received via the established connection, execute the offended code in the software container, otherwise, stop the execution of the application without executing the offended code. Abstract Figure: Figure 1

Description

Mécanisme d’autorisation pour l’utilisation d’un procédé logiciel avec sécurisation du code sourceAuthorization mechanism for the use of a software process with source code security

La présente divulgation relève du domaine de la sécurité des systèmes d’information.This disclosure falls within the field of information systems security.

Plus particulièrement, la présente divulgation porte sur un procédé d’exécution d’un code logiciel protégé, sur un programme informatique et sur un support d’enregistrement correspondants.More particularly, the present disclosure relates to a method for executing protected software code, to a corresponding computer program and to a recording medium.

En matière d’autorisation d’utilisation de logiciel propriétaire, l’état de l’art repose sur deux principes :
- le code logiciel protégé, c’est-à-dire sécurisé, peut être installé sur des serveurs sur site, autrement dit en local, et l’autorisation d’utilisation est alors soumise à licence, c’est-à-dire qu’une clé ou un fichier permet de débloquer le fonctionnement du code logiciel, ou
- le code logiciel protégé est accessible sous forme de service hébergé par exemple dans un réseau informatique en nuage, ou « cloud », et l’opérateur offre tous les mécanismes d’autorisation nécessaires pour permettre son exécution sans donner l’accès au code en lui-même.
In terms of authorization to use proprietary software, the state of the art is based on two principles:
- the protected software code, that is to say secure, can be installed on servers on site, in other words locally, and the authorization of use is then subject to licensing, that is to say that 'a key or file allows you to unlock the operation of the software code, or
- the protected software code is accessible in the form of a service hosted for example in a cloud computing network, or "cloud", and the operator offers all the authorization mechanisms necessary to allow its execution without giving access to the code in himself.

De nombreux travaux de recherche, en particulier dans le domaine de l’apprentissage automatique, conduisent à produire des codes informatiques à l’aide de langages de programmation qui ne se compilent pas, tels que Python ou R.Much research, particularly in the field of machine learning, involves producing computer codes using programming languages that do not compile, such as Python or R.

Pour sécuriser de tels codes, une solution possible est de ne pas les diffuser. Par exemple, il peut être prévu que le propriétaire d’un code logiciel protégé recueille des données qui lui sont transmises par un utilisateur, traite ces données à l’aide du code logiciel protégé qu’il détient, et transmette uniquement le résultat de ce traitement à l’utilisateur.To secure such codes, one possible solution is not to distribute them. For example, it may be provided that the owner of a protected software code collects data transmitted to him by a user, processes this data using the protected software code that he holds, and only transmits the result of this treatment to the user.

Cette façon de procéder sous forme de service présente l’inconvénient pour le propriétaire du code protégé de maintenir une infrastructure de stockage et une infrastructure de calcul pour pouvoir traiter les données de ses partenaires et clients. De plus, s’il s’agit de données sensibles, le partage peut s’avérer fastidieux au vu de la règlementation en vigueur.This way of proceeding in the form of a service has the disadvantage for the owner of the protected code of maintaining a storage infrastructure and a calculation infrastructure to be able to process the data of its partners and customers. In addition, if it is sensitive data, sharing can be tedious given the regulations in force.

Il existe donc un besoin pour un mécanisme permettant d’autoriser l’usage par un utilisateur d’un code logiciel protégé qui peut être écrit en un langage non compilable, sans pour autant divulguer à l’utilisateur le contenu des lignes de code et sans requérir le maintien d’infrastructures de stockage et de calcul.There is therefore a need for a mechanism making it possible to authorize the use by a user of protected software code which can be written in a non-compilable language, without disclosing to the user the content of the lines of code and without require the maintenance of storage and computing infrastructures.

RésuméSummary

La présente divulgation vient améliorer la situation.This disclosure improves the situation.

Il est proposé un procédé d’exécution d’un code logiciel protégé, le procédé étant mis en œuvre par une application contenant un régénérateur d’un certificat client préalablement signé par une autorité de certification et un code offusqué correspondant au code logiciel protégé, le procédé comprenant, sur exécution de l’application :
- régénérer, à l’aide du régénérateur, le certificat client et émettre une requête comprenant le certificat client, et
- lorsque, suite à l’émission de la requête, une connexion est établie avec un serveur et une réponse indicative de validité du certificat client est reçue via la connexion établie, exécuter le code offusqué dans le conteneur logiciel, sinon, arrêter l’exécution de l’application sans exécuter le code offusqué.
A method of executing protected software code is proposed, the method being implemented by an application containing a regenerator of a client certificate previously signed by a certification authority and an offended code corresponding to the protected software code, the process comprising, upon execution of the application:
- regenerate, using the regenerator, the client certificate and issue a request including the client certificate, and
- when, following the issuance of the request, a connection is established with a server and a response indicative of the validity of the client certificate is received via the established connection, execute the offended code in the software container, otherwise, stop the execution of the application without running the offended code.

Le certificat client est régénéré une seule fois par exécution de l’application, et peut être à nouveau régénéré et réutilisé lors d’une exécution ultérieure de l’application. Le certificat client permet d’accorder une autorisation d’utilisation du code protégé qui peut être limitée en particulier dans le temps et une communication sécurisée avec le serveur d’autorisation. L’accès au code logiciel protégé est empêché par son offuscation. L’application peut être, par exemple, un conteneur logiciel qui peut aussi bien être stocké dans une infrastructure locale que dans un « cloud » et qui ne nécessite pas d’être fourni en tant que service.The client certificate is regenerated only once per application run, and can be regenerated again and reused during a subsequent application run. The client certificate makes it possible to grant authorization to use the protected code which can be limited in particular in time and secure communication with the authorization server. Access to protected software code is prevented by obfuscation. The application can be, for example, a software container which can be stored in a local infrastructure as well as in a “cloud” and which does not need to be provided as a service.

Il a été constaté que le procédé proposé n’entraîne aucun impact de performance sur l’exécution du code offusqué.It was found that the proposed method does not cause any performance impact on the execution of the offended code.

La mise en place d’un mécanisme d’autorisation sécurisé et fiable, avec la possibilité de contrôler l’exécution du code protégé à distance, permet de mettre en place une gestion fine de l’autorisation d’exécution. Par exemple il est possible d’accorder une autorisation pour un nombre limité d’exécutions sur une période limitée, le premier arrivant à échéance. De plus un serveur dispose généralement d’un journal de connexions qui permet de recenser, au niveau du serveur, toutes les exécutions du code protégé ayant été mises en œuvre au niveau d’applications distribuées à un ensemble de clients.The establishment of a secure and reliable authorization mechanism, with the possibility of controlling the execution of protected code remotely, makes it possible to implement fine management of execution authorization. For example, it is possible to grant authorization for a limited number of executions over a limited period, the first one expiring. In addition, a server generally has a connection log which makes it possible to record, at the server level, all the executions of the protected code that have been implemented at the level of applications distributed to a set of clients.

Optionnellement, le procédé comprend en outre :
- effacer le certificat client régénéré immédiatement après l’émission de la requête.
Optionally, the method further comprises:
- delete the regenerated client certificate immediately after sending the request.

Ceci renforce la sécurité du mécanisme d’autorisation en empêchant que le client ou qu’une tierce partie puisse accéder au certificat client.This reinforces the security of the authorization mechanism by preventing the client or a third party from accessing the client certificate.

Optionnellement, le régénérateur de certificat est offusqué.Optionally, the certificate regenerator is offended.

Ceci renforce la sécurité du mécanisme d’autorisation en empêchant que le client ou qu’une tierce partie puisse, par l’analyse du régénérateur de certificat, se procurer une copie du certificat client.This reinforces the security of the authorization mechanism by preventing the client or a third party from being able, through analysis of the certificate regenerator, to obtain a copy of the client certificate.

Optionnellement, l’application est gérée par un conteneur logiciel dans un réseau informatique en nuage.Optionally, the application is managed by a software container in a cloud computing network.

Contrairement aux solutions connues, le mécanisme d’autorisation proposé ne dépend pas d’un composant matériel particulier et est donc applicable à une utilisation du code protégé dans un réseau décentralisé.Unlike known solutions, the proposed authorization mechanism does not depend on a particular hardware component and is therefore applicable to use of the protected code in a decentralized network.

Optionnellement, la requête est une requête HTTPS.Optionally, the request is an HTTPS request.

De manière générale, il est souhaitable que chaque liaison de données utile à la mise en œuvre du procédé soit une liaison sécurisée, de manière à empêcher toute interception de flux de données et, plus particulièrement, toute interception du certificat client. Ces liaisons sécurisées incluent évidemment la liaison de données entre l’application et le serveur, mais aussi, potentiellement, des liaisons de données au sein du système informatique du client ou au sein du système informatique auquel est rattaché le serveur.Generally speaking, it is desirable that each data link useful for implementing the method is a secure link, so as to prevent any interception of data flows and, more particularly, any interception of the client certificate. These secure connections obviously include the data connection between the application and the server, but also, potentially, data connections within the client's computer system or within the computer system to which the server is attached.

Optionnellement, l’exécution de l’application est déclenchée par un logiciel de planification de tâches.Optionally, the execution of the application is triggered by task scheduling software.

Ceci permet notamment de forcer un renouvellement périodique de l’autorisation d’exécution du code protégé, par exemple tous les jours, et éventuellement de manière transparente pour l’utilisateur final.This makes it possible in particular to force a periodic renewal of the authorization to execute the protected code, for example every day, and possibly in a transparent manner for the end user.

Il est également proposé un programme informatique comportant des instructions pour la mise en œuvre du procédé ci-avant lorsque ce programme est exécuté par un processeur.A computer program is also proposed comprising instructions for implementing the above method when this program is executed by a processor.

Il est également proposé un support d’enregistrement non transitoire lisible par un ordinateur sur lequel est enregistré un programme pour la mise en œuvre du procédé ci-avant lorsque ce programme est exécuté par un processeur.A non-transitory recording medium readable by a computer is also proposed on which a program is recorded for implementing the above method when this program is executed by a processor.

D’autres caractéristiques, détails et avantages apparaîtront à la lecture de la description détaillée ci-après, et à l’analyse des dessins annexés, sur lesquels :Other characteristics, details and advantages will appear on reading the detailed description below, and on analyzing the attached drawings, in which:

Fig. 1Fig. 1

représente une architecture réseau mettant en communication des systèmes informatiques pour une mise en œuvre d’un code protégé. represents a network architecture connecting computer systems for the implementation of protected code.

Fig. 2Fig. 2

illustre par un ordinogramme un procédé d’exécution d’un code logiciel protégé, selon un exemple de réalisation. illustrates with a flowchart a method of executing protected software code, according to an exemplary embodiment.

Fig. 3Fig. 3

illustre par un ordinogramme un procédé de validation et d’autorisation pouvant être implémenté côté serveur pour une autorisation d’exécution d’un code logiciel protégé par une application côté client, selon un exemple de réalisation. illustrates through a flowchart a validation and authorization method that can be implemented on the server side for authorization of execution of software code protected by a client-side application, according to an exemplary embodiment.

L’offuscation de code est une technique connue qui permet de rendre du code informatique illisible par l’humain tout en gardant son « exécutabilité » par la machine.Code obfuscation is a known technique that makes computer code unreadable by humans while retaining its “executability” by the machine.

Pour ce qui est de l’autorisation d’utilisation d’un code offusqué, plusieurs mécanismes de licence sont connus : par NTP (Network Time Protocol), ou par numéro de série de disque, ou encore par adresse MAC. Ces mécanismes de licence ne sont pas pleinement satisfaisants. Le protocole NTP n’est pas un protocole sécurisé. De plus, il est facile, avec peu de connaissance réseau, de détourner l’adresse d’un serveur NTP vers un autre serveur et de faire en sorte de pouvoir utiliser le procédé mis en œuvre par logiciel indéfiniment. Des autorisations liées à un numéro de série de disque particulier ou à une adresse MAC particulière ne sont pas non plus adaptées dans le « cloud ». En effet il n’est pas possible de connaitre le numéro de série du disque dur sous-jacent, ou l’adresse MAC de l’interface réseau mais surtout il n’y a pas la garantie que ces composants soient fixes.As for authorizing the use of an offended code, several licensing mechanisms are known: by NTP (Network Time Protocol), or by disk serial number, or even by MAC address. These licensing mechanisms are not fully satisfactory. NTP is not a secure protocol. In addition, it is easy, with little network knowledge, to divert the address of an NTP server to another server and ensure that you can use the software-implemented process indefinitely. Permissions linked to a particular disk serial number or a particular MAC address are also not suitable in the “cloud”. Indeed it is not possible to know the serial number of the underlying hard drive, or the MAC address of the network interface but above all there is no guarantee that these components are fixed.

L’invention se distingue de l’art antérieur et vise à permettre d’accorder une autorisation limitée dans le temps d’utilisation d’un procédé mis en œuvre par logiciel, aussi bien de manière locale que dans un « cloud », sans nécessiter d’implémentation du type d’une fourniture de service et sans permettre l’accès au code source.The invention differs from the prior art and aims to make it possible to grant authorization limited in time to use a process implemented by software, both locally and in a "cloud", without requiring implementation of the type of service provision and without allowing access to the source code.

Pour cela, il est proposé un procédé mis en œuvre par une application contenant un régénérateur d’un certificat client préalablement signé par une autorité de certification et un code offusqué correspondant au code logiciel protégé, le procédé comprenant, sur exécution de l’application :
- régénérer, à l’aide du régénérateur, le certificat client et émettre une requête comprenant le certificat client, et
- lorsque, suite à l’émission de la requête, une connexion est établie avec un serveur et une réponse indicative de validité du certificat client est reçue via la connexion établie, exécuter le code offusqué dans l’application, sinon, arrêter l’exécution de l’application sans exécuter le code offusqué.
For this, a method is proposed implemented by an application containing a regenerator of a client certificate previously signed by a certification authority and an offended code corresponding to the protected software code, the method comprising, upon execution of the application:
- regenerate, using the regenerator, the client certificate and issue a request including the client certificate, and
- when, following the issuance of the request, a connection is established with a server and a response indicative of the validity of the client certificate is received via the established connection, execute the offended code in the application, otherwise, stop the execution of the application without running the offended code.

La protection du code est assurée par une combinaison de son offuscation avec un mécanisme d’autorisation d’utilisation sécurisée dont l’exécution est compatible aussi bien avec une utilisation sur site que dans un « cloud ».Code protection is ensured by a combination of its obfuscation with a secure use authorization mechanism whose execution is compatible with both on-site use and in a “cloud”.

Un exemple particulier de réalisation est à présent décrit en référence à la qui représente une architecture réseau mettant en communication des systèmes informatiques pour une mise en œuvre d’un code protégé.A particular embodiment is now described with reference to the which represents a network architecture connecting computer systems for the implementation of protected code.

Un premier système informatique (104) d’un client permet à un terminal utilisateur (102) du client d’accéder à une application (100) destinée à commander l’exécution d’un code protégé. Le code protégé est offusqué pour le rendre inaccessible au client.A first computer system (104) of a client allows a user terminal (102) of the client to access an application (100) intended to control the execution of protected code. Protected code is obfuscated to make it inaccessible to the client.

Un deuxième système informatique (204) d’un fournisseur met en œuvre un serveur (200) de validation et d’autorisation. Les systèmes informatiques (104, 204) sont adaptés pour pouvoir mettre en œuvre, sous conditions, une communication entre l’application (100) et le serveur (200) de validation et d’autorisation avant que l’application (100) ne déclenche l’exécution du code protégé.A second computer system (204) of a supplier implements a validation and authorization server (200). The computer systems (104, 204) are adapted to be able to implement, under conditions, communication between the application (100) and the validation and authorization server (200) before the application (100) triggers execution of protected code.

A titre d’exemple, dans la , les systèmes informatiques (104, 204) sont représentés sous la forme de clouds et le serveur (200) de validation et d’autorisation est considéré comme ayant été préalablement configuré depuis un terminal utilisateur (202) du fournisseur.For example, in the , the computer systems (104, 204) are represented in the form of clouds and the validation and authorization server (200) is considered to have been previously configured from a user terminal (202) of the provider.

Afin de garantir une sécurisation des échanges entre l’application (100) et le serveur (200) de validation et d’autorisation, une possibilité est de mettre en œuvre une mini infrastructure à clé publique ou « mini-pki » reposant sur un mécanisme SSL.In order to guarantee secure exchanges between the application (100) and the validation and authorization server (200), one possibility is to implement a mini public key infrastructure or “mini-pki” based on a mechanism SSL.

Le mécanisme SSL se présente comme suit. A l’aide d’un outil de cryptographie, par exemple OpenSSL, il est possible de créer une autorité de certification et de générer un certificat de l’autorité de certification ainsi qu’un certificat serveur et des certificats clients signés par l’autorité de certification. Chaque certificat client ainsi généré peut être destiné à un client cible particulier.The SSL mechanism is as follows. Using a cryptography tool, for example OpenSSL, it is possible to create a certification authority and generate a certificate of the certification authority as well as a server certificate and client certificates signed by the authority certification. Each client certificate thus generated can be intended for a particular target client.

Le certificat serveur est fourni au serveur (200) de validation et d’autorisation pour mettre en œuvre une authentification bidirectionnelle de type « SSL two-way ».The server certificate is provided to the validation and authorization server (200) to implement bidirectional authentication of the “SSL two-way” type.

La mini infrastructure à clé publique comprend, au niveau de l’application (100), un générateur de code d’intégration. Un code d’intégration est un code technique de sécurisation. Dans l’exemple du mécanisme SSL évoqué, le code technique de sécurisation est configuré pour régénérer, lors de son exécution, un certificat client prévu pour un client cible. Ce certificat client est signé par l’autorité de certification et peut être reconnu par le serveur (200) de validation et d’autorisation qui dispose du certificat serveur.The mini public key infrastructure includes, at the application level (100), an integration code generator. An integration code is a technical security code. In the example of the SSL mechanism mentioned, the technical security code is configured to regenerate, during its execution, a client certificate intended for a target client. This client certificate is signed by the certification authority and can be recognized by the validation and authorization server (200) which has the server certificate.

Pour établir une connexion sécurisée avec le serveur d’autorisation, le mécanisme SSL a besoin d’écrire les certificats sur disque. Pour répondre à une problématique de ne pas laisser de trace de ces certificats après la connexion avec le serveur (200), il est possible de prévoir une écriture volatile sur disque des certificats juste au moment de la connexion, les fichiers temporaires générés disparaissant ensuite instantanément. En complément de cette précaution, le code technique de sécurisation peut être offusqué pour assurer que ni le client ni un tiers malveillant n’ait accès à son contenu.To establish a secure connection with the authorization server, the SSL mechanism needs to write the certificates to disk. To address the problem of not leaving a trace of these certificates after connection with the server (200), it is possible to provide volatile writing of the certificates to disk just at the time of connection, with the temporary files generated then disappearing instantly. . In addition to this precaution, the technical security code can be compromised to ensure that neither the client nor a malicious third party has access to its content.

Pour concevoir une version de l’application (100) pour un client cible, une possibilité est à présent détaillée. Un certificat client signé par l’autorité de certification est généré pour le client cible. Un module logiciel est ensuite créé de manière à incorporer le certificat client pour le client cible et le certificat de l’autorité de certification. Le module logiciel peut par exemple être rédigé en langage python. Le module logiciel et le code à protéger peuvent être combinés et être offusqués ensemble.To design a version of the application (100) for a target customer, a possibility is now detailed. A client certificate signed by the certificate authority is generated for the target client. A software module is then created to incorporate the client certificate for the target client and the certification authority certificate. The software module can for example be written in Python language. The software module and the code to be protected can be combined and protected together.

L’ensemble ainsi offusqué prend la forme d’une application qui peut être installée par exemple sur une machine virtuelle. Une option particulière concerne l’installation de l’application dans un conteneur logiciel, c’est-à-dire un environnement d’exécution léger qui regroupe tous les composants système nécessaires à l’exécution de son contenu. En l’espèce, le contenu de l’application comporte au moins le module logiciel et le code protégé. Un tel conteneur peut être indifféremment distribué en tant que logiciel sur site ou comme un service hébergé sur abonnement.The whole thus offended takes the form of an application which can be installed for example on a virtual machine. A particular option concerns the installation of the application in a software container, that is to say a lightweight execution environment which brings together all the system components necessary for the execution of its content. In this case, the content of the application includes at least the software module and the protected code. Such a container can be distributed either as on-premises software or as a subscription-based hosted service.

Un exemple particulier de réalisation est à présent décrit en référence à la qui représente un ordinogramme d’un programme informatique convenant pour la mise en œuvre d’un procédé d’exécution du code logiciel protégé par l’application (100) dans une version donnée pour un client cible.A particular embodiment is now described with reference to the which represents a flowchart of a computer program suitable for implementing a method of executing the software code protected by the application (100) in a given version for a target client.

L’exécution de l’application (100) peut être déclenchée de diverses manières, actives ou passives. Un exemple de déclenchement actif est une interaction homme-machine au niveau d’un terminal utilisateur (102) du client. Un exemple de déclenchement passif est le passage d’un repère temporel prédéfini dans un logiciel de planification de tâches.The execution of the application (100) can be triggered in various ways, active or passive. An example of active triggering is human-machine interaction at a user terminal (102) of the customer. An example of passive triggering is the passage of a predefined time marker in task scheduling software.

A l’exécution, l’application (100) crée, ou régénère (300), par le biais du module logiciel, le certificat de l’autorité de certification et le certificat client pour le client cible signé par l’autorité de certification. Ces certificats sont régénérés de manière temporaire sous la forme de fichiers de certificats. Il existe de nombreuses méthodes connues pour entraîner l’effacement de fichiers de manière active ou passive après leur utilisation prévue.At execution, the application (100) creates, or regenerates (300), through the software module, the certificate of the certification authority and the client certificate for the target client signed by the certification authority. These certificates are temporarily regenerated as certificate files. There are many known methods to cause files to be erased actively or passively after their intended use.

L’application émet (302) une requête à destination du serveur (200) de validation et d’autorisation. La requête présente le certificat client pour le client cible.The application sends (302) a request to the server (200) for validation and authorization. The query presents the client certificate for the target client.

L’application agit comme lanceur du code protégé offusqué et conditionne l’exécution (310) du code protégé offusqué à une double vérification :
- la première vérification (304) concerne l’établissement de la connexion sécurisée entre l’application (100) et le serveur (200), et
- la deuxième vérification (306) concerne l’acceptation par le serveur (200) du certificat client fourni par l’application (100) dans la requête.
The application acts as a launcher for the offended protected code and conditions the execution (310) of the offended protected code on a double check:
- the first verification (304) concerns the establishment of the secure connection between the application (100) and the server (200), and
- the second verification (306) concerns the acceptance by the server (200) of the client certificate provided by the application (100) in the request.

A l’inverse, n’importe quelle erreur SSL ou mauvaise réponse du serveur (200) a pour effet de quitter l’application (100).Conversely, any SSL error or bad response from the server (200) has the effect of quitting the application (100).

Dès lors que les certificats ne sont plus nécessaires, c’est-à-dire, dès l’émission (302) de la requête, ils ne sont plus nécessaires et sont automatiquement effacés (308). Cet effacement survient indépendamment du fait que la connexion sécurisée soit ensuite établie ou qu’une erreur SSL ou qu’une mauvaise réponse du serveur occasionne une sortie de l’application.Once the certificates are no longer necessary, that is to say, upon issuance (302) of the request, they are no longer necessary and are automatically deleted (308). This deletion occurs regardless of whether the secure connection is subsequently established or whether an SSL error or a bad response from the server causes the application to exit.

En procédant ainsi, la version de l’application (100) remise au client cible a la certitude de s’adresser au bon serveur. En fait, toute tentative de connexion à un autre serveur entraîne une erreur SSL car seule l’autorité de certification est considérée de confiance. De façon réciproque, le serveur (200) n’accepte que des certificats clients qui ont été signés par l’autorité de certification.By doing this, the version of the application (100) delivered to the target client is certain to address the correct server. In fact, any attempt to connect to another server results in an SSL error because only the certificate authority is considered trusted. Conversely, the server (200) only accepts client certificates that have been signed by the certification authority.

La validité du certificat client correspond à une limitation dans le temps de l’autorisation d’utilisation pouvant être accordée. Cette durée peut être modifiée, c’est-à-dire prolongée ou réduite, par des actions entreprises au niveau du serveur (200). En particulier, il est possible de mettre fin à une autorisation d’utilisation pour un client cible en révoquant le certificat client pour ce client cible.The validity of the client certificate corresponds to a time limitation on the authorization of use that can be granted. This duration can be modified, that is to say extended or reduced, by actions taken at the server level (200). In particular, it is possible to terminate a usage authorization for a target client by revoking the client certificate for this target client.

L’infrastructure serveur peut se mettre en œuvre de différentes manières avec des logiciels du marché ou avec des logiciels spécifiques.The server infrastructure can be implemented in different ways with market software or with specific software.

Un exemple particulier de réalisation est à présent décrit en référence à la qui représente un ordinogramme d’un programme informatique convenant pour la mise en œuvre d’un procédé de validation et d’autorisation par le serveur (200) de validation et d’autorisation.A particular embodiment is now described with reference to the which represents a flowchart of a computer program suitable for the implementation of a validation and authorization process by the validation and authorization server (200).

Le serveur (200) reçoit (400) une requête, émise par l’application (100) et présentant un certificat client. Le serveur obtient (402) ainsi le certificat client présenté et vérifie (404) si ce certificat a été signé par l’autorité de certification.The server (200) receives (400) a request, issued by the application (100) and presenting a client certificate. The server thus obtains (402) the client certificate presented and checks (404) whether this certificate has been signed by the certification authority.

Lorsque le résultat de cette vérification est positif, c’est-à-dire lorsque le serveur reconnaît le certificat client présenté, une communication sécurisée est établie (408) avec l’application (100).When the result of this verification is positive, that is to say when the server recognizes the client certificate presented, secure communication is established (408) with the application (100).

Le serveur, après avoir ensuite vérifié (410) la validité du certificat client présenté, émet (412) un signal indicatif d’une autorisation à exécuter le code protégé. L’exécution du code protégé peut de ce fait être déclenchée par l’application (100).The server, after having then verified (410) the validity of the client certificate presented, emits (412) a signal indicative of authorization to execute the protected code. The execution of the protected code can therefore be triggered by the application (100).

Si le certificat client présenté n’est pas valide, par exemple parce que sa date de validité a expiré, le client cible n’est pas autorisé à exécuter le code protégé. Le serveur émet (414) alors un signal indicatif d’une absence d’autorisation à exécuter le code protégé. L’exécution du code protégé par l’application (100) est de ce fait prohibée, ce qui, en combinaison avec le procédé décrit en référence à la , entraîne la fermeture de l’application (100).If the client certificate presented is not valid, for example because its validity date has expired, the target client is not authorized to execute the protected code. The server then emits (414) a signal indicative of a lack of authorization to execute the protected code. The execution of the code protected by the application (100) is therefore prohibited, which, in combination with the method described with reference to the , causes the application to close (100).

Si le serveur ne reconnaît pas le certificat client présenté, la connexion n’est pas établie (406), ce qui, en combinaison avec le procédé décrit en référence à la , entraîne la fermeture de l’application (100).If the server does not recognize the client certificate presented, the connection is not established (406), which, in combination with the method described with reference to the , causes the application to close (100).

Claims (8)

Procédé d’exécution d’un code logiciel protégé, le procédé étant mis en œuvre par une application contenant un régénérateur d’un certificat client préalablement signé par une autorité de certification et un code offusqué correspondant au code logiciel protégé, le procédé comprenant, sur exécution de l’application :
- régénérer, à l’aide du régénérateur de certificat, le certificat client et émettre une requête comprenant le certificat client, et
- lorsque, suite à l’émission de la requête, une connexion est établie avec un serveur et une réponse indicative de validité du certificat client est reçue via la connexion établie, exécuter le code offusqué dans l’application, sinon, arrêter l’exécution de l’application sans exécuter le code offusqué.
Method for executing protected software code, the method being implemented by an application containing a regenerator of a client certificate previously signed by a certification authority and an obfuscated code corresponding to the protected software code, the method comprising, on running the application:
- regenerate, using the certificate regenerator, the client certificate and issue a request including the client certificate, and
- when, following the issuance of the request, a connection is established with a server and a response indicative of the validity of the client certificate is received via the established connection, execute the offended code in the application, otherwise, stop the execution of the application without running the offended code.
Procédé selon la revendication 1, comprenant en outre :
- effacer le certificat client régénéré immédiatement après l’émission de la requête.
A method according to claim 1, further comprising:
- delete the regenerated client certificate immediately after sending the request.
Procédé selon la revendication 1 ou 2, dans lequel le régénérateur de certificat est offusqué.A method according to claim 1 or 2, wherein the certificate regenerator is offused. Procédé selon l’une des revendications 1 à 3, dans lequel l’application est gérée par un conteneur logiciel dans un réseau informatique en nuage.Method according to one of claims 1 to 3, in which the application is managed by a software container in a cloud computing network. Procédé selon l’une des revendications 1 à 4, dans lequel la requête est une requête HTTPS.Method according to one of claims 1 to 4, in which the request is an HTTPS request. Procédé selon l’une des revendications 1 à 5, dans lequel l’exécution de l’application est déclenchée par un logiciel de planification de tâches.Method according to one of claims 1 to 5, in which the execution of the application is triggered by task scheduling software. Programme informatique comportant des instructions pour la mise en œuvre du procédé selon l’une des revendications 1 à 6 lorsque ce programme est exécuté par un processeur.Computer program comprising instructions for implementing the method according to one of claims 1 to 6 when this program is executed by a processor. Support d’enregistrement non transitoire lisible par un ordinateur sur lequel est enregistré un programme pour la mise en œuvre du procédé selon l’une des revendications 1 à 6 lorsque ce programme est exécuté par un processeur.Non-transitory recording medium readable by a computer on which a program is recorded for implementing the method according to one of claims 1 to 6 when this program is executed by a processor.
FR2212896A 2022-12-07 2022-12-07 Authorization mechanism for the use of a software process with source code security Pending FR3143244A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR2212896A FR3143244A1 (en) 2022-12-07 2022-12-07 Authorization mechanism for the use of a software process with source code security
PCT/EP2023/083649 WO2024120945A1 (en) 2022-12-07 2023-11-30 Authorisation mechanism for the use of a software method with source code protection

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2212896A FR3143244A1 (en) 2022-12-07 2022-12-07 Authorization mechanism for the use of a software process with source code security
FR2212896 2022-12-07

Publications (1)

Publication Number Publication Date
FR3143244A1 true FR3143244A1 (en) 2024-06-14

Family

ID=86657656

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2212896A Pending FR3143244A1 (en) 2022-12-07 2022-12-07 Authorization mechanism for the use of a software process with source code security

Country Status (2)

Country Link
FR (1) FR3143244A1 (en)
WO (1) WO2024120945A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050044359A1 (en) * 2003-05-12 2005-02-24 Thomas Eriksson Anti-piracy software protection system and method
US20110145568A1 (en) * 2009-12-14 2011-06-16 International Business Machines Corporation Handling of the usage of software in a disconnected computing environment
WO2020098377A1 (en) * 2018-11-16 2020-05-22 阿里巴巴集团控股有限公司 Remote attestation method and apparatus for trusted application program, and electronic device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050044359A1 (en) * 2003-05-12 2005-02-24 Thomas Eriksson Anti-piracy software protection system and method
US20110145568A1 (en) * 2009-12-14 2011-06-16 International Business Machines Corporation Handling of the usage of software in a disconnected computing environment
WO2020098377A1 (en) * 2018-11-16 2020-05-22 阿里巴巴集团控股有限公司 Remote attestation method and apparatus for trusted application program, and electronic device

Also Published As

Publication number Publication date
WO2024120945A1 (en) 2024-06-13

Similar Documents

Publication Publication Date Title
EP3343425B1 (en) System and method for the creation and management of decentralized authorizations for connected objects
CN111316278B (en) Secure identity and profile management system
CN111353903B (en) Network identity protection method and device, electronic equipment and storage medium
US9910969B2 (en) System, method, and device for delivering communications and storing and delivering data
EP2494489B1 (en) Method and client agent for monitoring the use of protected content
FR3079322A1 (en) METHOD AND SYSTEM FOR MANAGING ACCESS TO PERSONAL DATA BY INTELLIGENT CONTRACT
US10581806B2 (en) Service providing method, service requesting method, information processing device, and client device
CN107483495B (en) Big data cluster host management method, management system and server
KR102089912B1 (en) Method and system for managing mobile devices based on private blockchain
KR101775517B1 (en) Client for checking security of bigdata system, apparatus and method for checking security of bigdata system
CN111859379A (en) Processing method and device for protecting data model
FR3143244A1 (en) Authorization mechanism for the use of a software process with source code security
CN111417122A (en) Attack prevention method and device
EP2537114B1 (en) Method for remotely locking and unlocking a machine
CN112579998A (en) Webpage access method, management system and electronic equipment in information interaction platform
CA3086863A1 (en) Checking the integrity of an electronic device
CA2747375C (en) Microkernel gateway server
FR2917868A1 (en) SECURITY SYSTEM AND METHOD USING SECURITY DEVICE
CN118174874B (en) Token generation method and device for unified authentication
CN111859378B (en) Processing method and device for protecting data model
EP2567531B1 (en) Method and management machine for opening a session of a machine belonging to a machine set
WO2023281223A1 (en) Secure transfer gateway
CN118174874A (en) Token generation method and device for unified authentication
WO2020193583A1 (en) Method for running secure code, corresponding devices, system and programs
CN115664794A (en) Method, system and device for detecting request information

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20240614