EP2764463A1 - Procédé de création dynamique d'un environnement d'exécution d'une application pour sécuriser ladite application, produit programme d'ordinateur et appareil informatique associés - Google Patents

Procédé de création dynamique d'un environnement d'exécution d'une application pour sécuriser ladite application, produit programme d'ordinateur et appareil informatique associés

Info

Publication number
EP2764463A1
EP2764463A1 EP12770480.7A EP12770480A EP2764463A1 EP 2764463 A1 EP2764463 A1 EP 2764463A1 EP 12770480 A EP12770480 A EP 12770480A EP 2764463 A1 EP2764463 A1 EP 2764463A1
Authority
EP
European Patent Office
Prior art keywords
application
function
secured
call
library
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.)
Withdrawn
Application number
EP12770480.7A
Other languages
German (de)
English (en)
Inventor
Laurent Frerebeau
Adrien Bioteau
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.)
Thales SA
Original Assignee
Thales 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 Thales SA filed Critical Thales SA
Publication of EP2764463A1 publication Critical patent/EP2764463A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs

Definitions

  • a method for dynamically creating an application execution environment for securing said application, computer program product and associated computer apparatus The present invention relates to a method of dynamically creating an execution environment of an application to an application. to secure, for the security of said application, the method being implemented by a computer apparatus comprising an information processing unit and a memory, the memory being associated with the information processing unit and comprising a data processing system; operation, the application to be secured and a security library having at least one security function, the operating system comprising a set of function libraries (s) including an unsecured function library (s), application to secure (34) being, when executed, for calling a function of the function library (s) unsecure (s).
  • a computer apparatus comprising an information processing unit and a memory, the memory being associated with the information processing unit and comprising a data processing system; operation, the application to be secured and a security library having at least one security function, the operating system comprising a set of function libraries (s) including an unsecured function library (s), application to secure (34) being, when executed, for calling
  • the invention also relates to a computer program product comprising software instructions which, when implemented by an information processing unit integrated with a computing device, implements such a method.
  • the invention also relates to a computer apparatus comprising:
  • a memory comprising an operating system, at least one application to be secured and a security library comprising at least one security function, the memory being associated with the information processing unit,
  • the operating system comprising a set of function libraries comprising a non-secure function library (s), the application to be secured being intended to call a function of the unsecured function library (s) .
  • the mobile terminal is managed by an Android platform hosting applications.
  • the Android platform includes a Linux kernel (Linux kernel), a set of function libraries in C or C ++, and a Dalvik Virtual Machine (Dalvik Virtual Machiné) to run applications hosted by the Linux kernel.
  • Linux kernel Linux kernel
  • set of function libraries in C or C ++ a set of function libraries in C or C ++
  • Dalvik Virtual Machiné a Dalvik Virtual Machine
  • a data security solution is then to modify the code source or binary of each of the applications to be secured in order to call them specialized libraries with adequate security functions.
  • An object of the invention is therefore to propose a method for dynamically creating an execution environment of an application to be secured and an associated computing device making it possible to secure an application while limiting the modifications of the operating system code. , the application environment or the application to secure.
  • the subject of the invention is a method for dynamically creating an execution environment of the aforementioned type, characterized in that the method comprises the following steps, implemented by a dynamic environment creation application. runtime stored in memory:
  • the method comprises one or more of the following characteristics, taken separately or in any technically possible combination:
  • the substitution step comprises the deletion of a dynamic link between the said application to be secured and the unsecured function, and the creation of a dynamic substitution link between the said application to be secured and the corresponding function of the security library;
  • the method further comprises, before the launching step of the application, a step of locking the security library loaded during the loading step and the substitution (s) of function call carried out (s) during the substitution stage;
  • the method further comprises, before the launching step of the application, a step of authenticating the user of the computing device and recovering an unlocking key from the security library;
  • the method further comprises, before the step of launching the application, a step of intercepting a message exchanged between the operating system and the application to be secured, and processing said message by a corresponding function the security library;
  • the application for creating the execution environment is an application dedicated to the application (s) to be secured, and is distinct from the operating system;
  • the operating system comprises a virtual machine capable of executing the application
  • the operating system is Android
  • the virtual machine is the Dalvik virtual machine.
  • the invention also relates to a computer program product comprising software instructions which, when implemented by an information processing unit integrated with a computer device, implements a method as defined above.
  • the invention also relates to a computer apparatus of the aforementioned type, characterized in that the memory further comprises an application for dynamic creation of an execution environment of the application to be secured, the application for creating the execution environment comprising means for loading the security library, means for replacing, among the call (s) of function associated with said application to be secured, at least one call to a non-functional function secured by a call to a corresponding function of the security library, and means for launching the application to be secured following the substitution of the call to the unsecured function by the call to the security function.
  • FIG. 1 is a schematic view of a computing device according to the invention
  • FIG. 2 is a schematic representation of a memory of the computer apparatus of FIG. 1,
  • FIG. 3 is a flowchart of a method for dynamically creating an execution environment of an application to be secured, according to the invention.
  • FIG. 4 is a representation of the dynamic creation of the execution environment of the application to be secured and the execution of said application.
  • a computing device 10 such as a mobile terminal, comprises an information processing unit 12, a memory 14 associated with the information processing unit and a screen 15.
  • the computer apparatus 10 is a mobile telephone and further comprises a radio antenna 16 and a radio transceiver 18 connected to the information processing unit.
  • the information processing unit 12 comprises, for example, a data processor.
  • the memory 14 includes an operating system 20 and a plurality of first package files 21 and second package files 22.
  • the memory 14 includes a third package file 23.
  • the memory 14 also includes a security library 24 for securing for example the storage of data and / or the exchange of data with another computer device.
  • the radio transceiver 18 comprises means for transmitting and receiving radio signals via the radio antenna 16.
  • the radio transceiver 18 complies with the General Packet Radio Service (GPRS) communication standard. ), or UMTS (Universal Mobile Telecommunications System).
  • GPRS General Packet Radio Service
  • UMTS Universal Mobile Telecommunications System
  • the radio antenna 16 and the radio transceiver 18 are adapted to allow the establishment of a radio link between the computer apparatus 10 and another computer apparatus comprising an antenna and a radio transceiver conforming to the same standard Communication.
  • the operating system 20 comprises a core 25, a set 26 of function libraries, a virtual machine 28 and an application framework 30 (of the English Application framework).
  • Each first package file 21 includes a non-sensitive application 31 in the form of a first binary file and a first configuration file 33, the non-sensitive application 31 does not need to be secured.
  • Each second package file 22 includes an application to secure 34 as a second binary file, a second configuration file 35 and an application 36 for dynamically creating an execution environment of the application to be secured. application for creating the runtime environment 36 being in the form of a third binary file.
  • the third package file 23 includes an application, not shown, of authentication of the user and recovery of an unlock key of the security library.
  • the third package file 23 includes a third configuration file, not shown, associated with the application for authentication of the user and recovery of the unlock key.
  • the authentication of the user is performed using, for example, a smart card included in the device 10, or a near field communication card outside the device, also called card NFC (Near Field Communication).
  • Said application is also able to check permissions associated with a third-party application for controlling access to said third-party application by the user.
  • the security library 24 includes a data storage security function 37A, a data exchange security function 37B with another computer device and a debug event (s) deletion function 37C, as shown in FIG. figure 2.
  • the security library 24 is a specific library distinct from the native libraries included in the operating system 20.
  • the security library 24 is a native library included in the library set 26 of the operating system delivered by the operating system provider.
  • the core 25 forms an abstraction layer between, on the one hand, a hardware part comprising in particular the information processing unit 12, the memory 14 and the radio transceiver 18, and the other part of the operating system 20, in particular the set of libraries 26.
  • the core 25 is adapted to manage essential services such as the security of the operating system, memory management, or the process management.
  • the set of libraries 26 includes a library 39 of unsecured functions.
  • the virtual machine 28 is known per se, and is able to execute each binary file contained in the respective package files 21, 22, 23.
  • the application home structure 30 includes services 38A, 38B available to the applications 31, 34, 36, such as an activity management service 38A, a package file management service 38B associated with the applications.
  • Each application 31, 34, 36 is in the form of a binary file comprising a binary code, also called intermediate code (of bytecoded English) intended to be executed by the virtual machine 28.
  • the execution of the application 31, 34, 36 by the virtual machine 28 is an interpretation of the intermediate code of the application.
  • Each application 31, 34, 36 comprises one or more components A, B, #A, #B, as shown in FIG. 4, the components having different types, such as an activity, a service, a content provider, or still a broadcast receiver.
  • Each component A, B, #A, #B plays a different role in the behavior of the application, and can be activated individually, even by other applications.
  • the operating system 20 is the Google Android® application system.
  • the kernel 25 is then based on a Linux kernel, more precisely on the version 2.6 of the Linux kernel.
  • Library set 26 is written in C / C ++ computer language.
  • the virtual machine 28 is the Dalvik virtual machine.
  • the applications 31, 34, 36 are written in Java language and are in the form of a binary code executable by the Dalvik virtual machine 28.
  • the invention applies to any operating system of the same type as the Android® operating system.
  • the invention applies to an operating system comprising a kernel, a virtual machine intended to execute the applications and a set of function libraries accessible by the kernel and by the virtual machine.
  • the first configuration file 33 is known per se and includes application version naming and indication information, application component information, and message filters for the application to identify. predefined some of the messages received from the operating system 20 or other applications. In the case of Android®, the first configuration file 33 is also called Manifest file (Manifest file).
  • the application to be secured 34 is intended to call at least one function of the non-secure function library 39 during its execution.
  • the second configuration file 35 has the same type of information as the first configuration file 33, and is further modified so that the application for creating the runtime environment 36 is launched in place of the application to secure 34 when executing the second package file 22 by the virtual machine 28.
  • the secure application 34 and the creation application of the runtime environment 36 are encapsulated in two separate package files, each application 34, 36 being encapsulated with a clean configuration file in a package file respective.
  • the configuration file associated with the application to be secured 34 is modified so that the dynamic creation application of the execution environment 36 is initially executed instead of the application to be secured, and also to allow the application to be secured. execution of the application to secure 34 in an existing process prepared by the application for creating the execution environment 36.
  • the dynamic creation application of the environment 36 comprises means
  • the application for creating the execution environment 36 comprises means 44 for authenticating the user of the computing device and for retrieving an unlocking key from the security library, and means 46 interception and processing of a message related to the standby or wakeup of the application to secure 34.
  • the application for creating the environment of the execution 36 comprises means 48 for launching the application to be secured following the substitution of the call for the unsecured function by the call to the security function.
  • the application for creating the runtime environment 36 is an application dedicated to the application or applications to be secured 34, and is distinct from the operating system
  • the security function of the data storage 37A is able to protect sensitive data stored in a memory area of the memory 14, for example via an encryption of the stored data.
  • the protection is confidential protection to prevent access to this data to an unauthorized person, and also integrity protection to prevent a change in the content of this data.
  • the data exchange security function 37B is able to protect data exchanges between the application to be secured 34 and the other computer device, not shown.
  • the debug event deletion function 37C is adapted to delete the debug events before they are stored in the memory 14, the debug events being generated when running markers contained in the code of the debugger. application to secure 34. These debug events, used to debug the application code before the code is finalized, are sometimes kept in the application code, and are then likely to cause a security breach.
  • the unsecured function library (s) 39 is known per se. In the case of the Android® operating system, the unsecured function library (s) 39 is a function library (s) written in C / C ++ computer language.
  • the authentication and recovery means 44 are means for calling the user authentication application and retrieving the unlocking key encapsulated in the third file. 23.
  • the authentication and recovery means 44 comprise only one entry point to said application for authentication of the user and recovery of the key.
  • the memory 14 does not include the third package file, and the means 44 for authentication and recovery of each application for creating the runtime environment include the features of the authentication application of the user and recovery of the unlock key, and are adapted to authenticate the user of the device 10, then in case of successful authentication, to retrieve the unlock key of the security library 24.
  • the package file creation application is a third party application external to the computing device, and is able to create the package file 22 of the application to be secured from an initial package file of the application to secure 34 comprising the application to secure 34 and an initial configuration file similar to the first configuration file 33.
  • the third application of creation of the package file creates the second configuration file 35 by modifying the initial configuration file, so that the application for creating the runtime environment 36 is launched instead of the application to secure 34 when executing the second package file 22.
  • the third-party creation application then constructs the second package file 22 by adding, to the second configuration file 35 previously created, the second binary file corresponding to the application to be secured and the third binary file corresponding to the application for creating the the execution environment 36.
  • the third-party creation application also adds the security library 24 in the second package file 22.
  • the third-party creation application finally signs the second package file 22 previously built.
  • FIG. 3 illustrates a method for dynamically creating an execution environment of the application to be secured 34 implemented by the application for creating the execution environment 36.
  • the security library 24 is loaded so that the security functions 37A, 37B, 37C contained in said security library 24 are available for the virtual machine 28 during the subsequent launch of the application to be secured. 34.
  • the application for creating the execution environment 36 substitutes, during step 1, at least one call for an unsecured function, among the function call or calls associated with said application to be secured 34, by a call to a corresponding function 37A, 37B, 37C of the previously loaded security library 24.
  • the substitution step 1 10 comprises, for example, the deletion of a dynamic link between said application to secure 34 and the unsecured function, and the creation of a dynamic substitution link between said application to secure 34 and the function corresponding 37A, 37B, 37C of the security library 24.
  • all calls to a data storage function among the function calls associated with said application to be secured 34 are substituted by calls to the data storage security function 37A.
  • the creation application of the execution environment 36 then performs, during step 1 15, the locking of the security library 24 loaded in step 100 and the function call substitution (s) performed (s) in the previous step 1.
  • substitution step 1 When the substitution step 1 is performed via the introduction of a substitution function in the application to be secured itself or in the virtual machine 28 by means of a dynamic link, the substitution function comes from the execution environment creation application 36, the locking step consists, for example, in replacing the reference of the substitution function with a reference to a new substitution function.
  • This new substitution function filters the substitution requests. by refusing to substitute the function calls processed in step 1 10, and allowing the substitution of other function calls.
  • the application for creating the execution environment 36 then requires, during step 120, the authentication of the user of the computing device 10, then, in the event of successful authentication, recovers a unlock key of the security library 24.
  • the application for creating the execution environment 36 intercepts and processes messages exchanged between the operating system and the application to be secured, said messages being processed by the library of security 24. Intercepted messages include the standby, waking of the application to secure 34, the storage of data in the memory 14 and the exchange of data with another computer device.
  • the application for creating the environment of the execution 36 finally launches during the step 140 the application to secure 34.
  • the corresponding calls or generated by the application to secure 34 or to the application to be secured are transmitted first to the security library 24, and if the latter authorizes it, if necessary to the non-secure library 39.
  • FIG. 4 is a representation of the dynamic creation of the execution environment of the application to be secured 34 and the execution of said application.
  • the operating system After the receipt by the operating system 20 of an execution order of the second package file 22, the operating system starts by launching the component #A of the application for creating the runtime environment 36 using the activity management service 38A (arrow F1), according to the information in the second modified configuration file 35, so that the application for creating the runtime environment 36 is launched at the same time. place of the application to secure 34.
  • the creation application of the execution environment 36 then loads the security library 24 (arrow F2), in accordance with the initial step 100 of the creation process of the execution environment.
  • the security functions 37A, 37B, 37C contained in said security library are thus available for the subsequent actions of the virtual machine 28.
  • the dynamic links between the application to be secured 34 and certain unsecured functions are deleted, and the dynamic links Corresponding substitutes are created between said application to be secured 34 and the corresponding functions 37A, 37B, 37C of the security library 24, in accordance with step 1 described above (arrow F3).
  • the component #A then requires the operating system to launch the corresponding component A of the application to be secured 34, (arrow F4).
  • This request is intercepted by the security library 24 in order to require the authentication of the user, then in case of successful authentication, to retrieve the unlock key of the security library 24.
  • the request is transmitted to the operating system 38A management service of the operating system (arrow F5).
  • the operating system 20 then launches the component A of the application to be secured 34 using the activity management service 38A, in accordance with the step 140 previously described (arrow F6).
  • the launch is performed in the same process as that of the application for creating the runtime environment 36 according to the information contained in the second configuration file 35.
  • the component A requires, from the operating system 20, the launch of the component B, and this request is then directed by the virtual machine 28 to the security library 24 (arrow F7) by the previous step of dynamic link substitution.
  • the request is then modified by the security library 24 so that the operating system 20 launches the component #B instead of the component B of the application to be secured 34, and then transmitted to the activity management service 38A (arrow F8).
  • the operating system 20 therefore launches the component #B (arrow F9).
  • the component #B then requires, from the operating system, the launching of the corresponding component B of the application to be secured 34, (arrow F10).
  • This request is intercepted by the security library 24 in order to carry out corresponding security processing and then transmitted to the activity management service 38A of the operating system (arrow F1 1).
  • the operating system 20 launches the component B of the application to be secured 34 using the activity management service 38A (arrow F12).
  • Component B wishing then to store a data file, calls for this purpose a storage function (arrow F13).
  • the security storage function 37A of the security library is then automatically called, and the data file is encrypted by said security function 37A before being stored in the security library. memory 14 (arrow F14).
  • debug event deletion function 37C would have been, so analogue, automatically called by the previous step of dynamic link substitution.
  • the computer apparatus 10 by implementing the dynamic creation method of the execution environment of the application to be secured 34 by means of the application for creating the execution environment 36, allows thus to secure the operation of the application 34, in particular as regards the launching of components, the storage of data or the exchange of data with another computing device, these being automatically encrypted via the appropriate functions of the library security 24.
  • This security of the application 34 only requires the rewrite of the application configuration file (called Manifest file in the case of Android®), the addition of the application for creating the runtime environment 36, it being encapsulated in the package file of the application to be secured 34, or alternatively in a separate package file, and the addition of the security library 24, if the library set 26 does not already include such a library.

Abstract

Procédé de création dynamique d'un environnement d'exécution pour sécuriser une application à sécuriser (34) dans un système d'exploitation (20) comportant un ensemble (26) de bibliothèques de fonction(s) non sécurisée(s) (39), l'application à sécuriser (34) étant, lors de son exécution, destinée à appeler une fonction de la bibliothèque de fonction(s) non sécurisée(s) (39). Ledit procédé est mis en oeuvre par un appareil informatique (10) comprenant une une bibliothèque de sécurisation (24) comportant au moins une fonction de sécurisation, et comprend les étapes suivantes: - le chargement de la bibliothèque de sécurisation (24), - la substitution, parmi le ou les appel(s) de fonction associé(s) à ladite application à sécuriser (34), d'au moins un appel à une fonction non sécurisée par un appel à une fonction correspondante de la bibliothèque de sécurisation (24), - le lancement de l'application à sécuriser (34) après l'étape de substitution.

Description

Procédé de création dynamique d'un environnement d'exécution d'une application pour sécuriser ladite application, produit programme d'ordinateur et appareil informatique associés La présente invention concerne un procédé de création dynamique d'un environnement d'exécution d'une application à sécuriser, pour la sécurisation de ladite application, le procédé étant mis en œuvre par un appareil informatique comprenant une unité de traitement d'informations et une mémoire, la mémoire étant associée à l'unité de traitement d'informations et comportant un système d'exploitation, l'application à sécuriser et une bibliothèque de sécurisation comportant au moins une fonction de sécurisation, le système d'exploitation comportant un ensemble de bibliothèques de fonction(s) comprenant une bibliothèque de fonction(s) non sécurisée(s), l'application à sécuriser (34) étant, lors de son exécution, destinée à appeler une fonction de la bibliothèque de fonction(s) non sécurisée(s).
L'invention concerne également un produit programme d'ordinateur comportant des instructions logicielles qui, lorsque mis en œuvre par une unité de traitement d'informations intégrée à un appareil informatique, met en œuvre un tel procédé.
L'invention concerne également un appareil informatique comprenant :
- une unité de traitement d'informations,
- une mémoire, comportant un système d'exploitation, au moins une application à sécuriser et une bibliothèque de sécurisation comportant au moins une fonction de sécurisation, la mémoire étant associée à l'unité de traitement d'informations,
le système d'exploitation comportant un ensemble de bibliothèques de fonctions comprenant une bibliothèque de fonction(s) non sécurisée(s), l'application à sécuriser étant destinée à appeler une fonction de la bibliothèque de fonction(s) non sécurisée(s).
On connaît un appareil informatique, tel qu'un terminal mobile, du type précité. Le terminal mobile est géré par une plateforme Android hébergeant des applications. La plateforme Android comporte un noyau Linux (de l'anglais Linux Kernel), un ensemble de bibliothèques de fonctions en langage C ou C++, et une machine virtuelle Dalvik (de l'anglais Dalvik Virtual Machiné) propre à exécuter les applications hébergées par la plateforme Android.
Le fonctionnement d'applications sensibles nécessite d'être sécurisé afin de protéger les données traitées par ces applications et de faire face aux menaces de récupération d'informations résultant de la perte ou du vol du terminal mobile, ou encore de l'interception de communications entre le terminal mobile et un autre équipement informatique. Une solution de sécurisation des données consiste alors à modifier le code source ou binaire de chacune des applications à sécuriser afin de leur faire appeler des bibliothèques spécialisées comportant des fonctions de sécurisation adéquates.
Toutefois, une telle sécurisation des applications nécessite de modifier le code source ou binaire de chacune des applications, ce qui est particulièrement contraignant, et n'est en outre pas toujours autorisé par le fournisseur de l'application lorsque la modification du code est effectuée par un tiers.
Un but de l'invention est donc de proposer un procédé de création dynamique d'un environnement d'exécution d'une application à sécuriser et un appareil informatique associé permettant de sécuriser une application tout en limitant les modifications du code du système d'exploitation, de l'environnement applicatif ou encore de l'application à sécuriser.
A cet effet, l'invention a pour objet un procédé de création dynamique d'un environnement d'exécution du type précité, caractérisé en ce que le procédé comprend les étapes suivantes, mises en œuvre par une application de création dynamique de l'environnement d'exécution stockée dans la mémoire :
- le chargement de la bibliothèque de sécurisation,
- la substitution, parmi le ou les appel(s) de fonction associé(s) à ladite application à sécuriser, d'au moins un appel à une fonction non sécurisée par un appel à une fonction correspondante de la bibliothèque de sécurisation,
- le lancement de l'application à sécuriser après l'étape de substitution.
Suivant d'autres aspects avantageux de l'invention, le procédé comprend une ou plusieurs des caractéristiques suivantes, prises isolément ou suivant toutes les combinaisons techniquement possibles :
- l'étape de substitution comporte la suppression d'un lien dynamique entre ladite application à sécuriser et la fonction non sécurisée, et la création d'un lien dynamique de substitution entre ladite application à sécuriser et la fonction correspondante de la bibliothèque de sécurisation ;
- parmi le ou les appel(s) de fonction associé(s) à ladite application à sécuriser, tous les appels à une fonction de stockage de données sont substitués par des appels à une fonction de sécurisation du stockage de données ;
- parmi le ou les appel(s) de fonction associé(s) à ladite application à sécuriser, tous les appels à une fonction d'échange de données avec un autre appareil informatique sont substitués par des appels à une fonction de sécurisation d'échange de données avec l'autre appareil informatique ; - parmi le ou les appel(s) de fonction associé(s) à ladite application à sécuriser, tous les appels à une fonction d'ajout d'événements de débogage sont substitués par des appels à une fonction de suppression d'événements de débogage ;
- le procédé comprend en outre, avant l'étape de lancement de l'application, une étape de verrouillage de la bibliothèque de sécurisation chargée lors de l'étape de chargement et de la ou des substitution(s) d'appel de fonction effectuée(s) lors de l'étape de substitution ;
- le procédé comprend en outre, avant l'étape de lancement de l'application, une étape d'authentification de l'utilisateur de l'appareil informatique et de récupération d'une clé de déverrouillage de la bibliothèque de sécurisation ;
- le procédé comprend en outre, avant l'étape de lancement de l'application, une étape d'interception d'un message échangé entre le système d'exploitation et l'application à sécuriser, et de traitement dudit message par une fonction correspondante de la bibliothèque de sécurisation ;
- l'application de création de l'environnement d'exécution est une application dédiée à la ou aux application(s) à sécuriser, et est distincte du système d'exploitation ;
- le système d'exploitation comporte une machine virtuelle propre à exécuter l'application ;
- le système d'exploitation est Android, et la machine virtuelle est la machine virtuelle Dalvik.
L'invention a également pour objet un produit programme d'ordinateur comportant des instructions logicielles qui, lorsque mis en œuvre par une unité de traitement d'informations intégrée à un appareil informatique, met en œuvre un procédé tel que défini ci-dessus.
L'invention a également pour objet un appareil informatique du type précité, caractérisé en ce que la mémoire comporte en outre une application de création dynamique d'un environnement d'exécution de l'application à sécuriser, l'application de création de l'environnement d'exécution comportant des moyens de chargement de la bibliothèque de sécurisation, des moyens de substitution, parmi le ou les appel(s) de fonction associé(s) à ladite application à sécuriser, d'au moins un appel à une fonction non sécurisée par un appel à une fonction correspondante de la bibliothèque de sécurisation, et des moyens de lancement de l'application à sécuriser suite à la substitution de l'appel à la fonction non sécurisée par l'appel à la fonction de sécurisation.
Ces caractéristiques et avantages de l'invention apparaîtront à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple, et faite en référence aux dessins annexés, sur lesquels : - la figure 1 est une vue schématique d'un appareil informatique selon l'invention,
- la figure 2 est une représentation schématique d'une mémoire de l'appareil informatique de la figure 1 ,
- la figure 3 est un organigramme d'un procédé de création dynamique d'un environnement d'exécution d'une application à sécuriser, selon l'invention, et
- la figure 4 est une représentation de la création dynamique de l'environnement d'exécution de l'application à sécuriser et de l'exécution de ladite application.
Sur la figure 1 , un appareil informatique 10, tel qu'un terminal mobile, comprend une unité de traitement d'informations 12, une mémoire 14 associée à l'unité de traitement d'informations et un écran 15.
Dans l'exemple de réalisation de la figure 1 , l'appareil informatique 10 est un téléphone mobile et comprend en outre une antenne radioélectrique 16 et un émetteur- récepteur radioélectrique 18 connectés à l'unité de traitement d'informations.
L'unité de traitement d'informations 12 comporte, par exemple, un processeur de données.
La mémoire 14 comporte un système d'exploitation 20 et une pluralité de premiers fichiers de paquetage 21 et de deuxièmes fichiers de paquetage 22.
En complément, la mémoire 14 comporte un troisième fichier de paquetage 23.
La mémoire 14 comporte également une bibliothèque de sécurisation 24 propre à sécuriser par exemple le stockage de données et/ou l'échange de données avec un autre appareil informatique.
L'émetteur-récepteur radioélectrique 18 comporte des moyens d'émission et de réception de signaux radioélectriques via l'antenne radioélectrique 16. L'émetteur- récepteur radioélectrique 18 est conforme à la norme de communication GPRS (de l'anglais General Packet Radio Service), ou encore à la norme UMTS (de l'anglais Universal Mobile Télécommunication System).
L'antenne radioélectrique 16 et l'émetteur-récepteur radioélectrique 18 sont propres à permettre l'établissement d'une liaison radioélectrique entre l'appareil informatique 10 et un autre appareil informatique comportant une antenne et un émetteur- récepteur radioélectrique conformes à la même norme de communication.
Le système d'exploitation 20 comporte un noyau 25, un ensemble 26 de bibliothèques de fonctions, une machine virtuelle 28 et une structure d'accueil applicative 30 (de l'anglais Application framework).
Chaque premier fichier de paquetage 21 comporte une application non sensible 31 sous forme d'un premier fichier binaire et un premier fichier de configuration 33, l'application non sensible 31 ne nécessitant pas d'être sécurisée. Chaque deuxième fichier de paquetage 22 comporte une application à sécuriser 34 sous forme d'un deuxième fichier binaire, un deuxième fichier de configuration 35 et une application 36 de création dynamique d'un environnement d'exécution de l'application à sécuriser, l'application de création de l'environnement d'exécution 36 étant sous forme d'un troisième fichier binaire.
En complément, le troisième fichier de paquetage 23 comporte une application, non représentée, d'authentification de l'utilisateur et de récupération d'une clé de déverrouillage de la bibliothèque de sécurisation. Le troisième fichier de paquetage 23 comporte un troisième fichier de configuration, non représenté, associé à l'application d'authentification de l'utilisateur et de récupération de la clé de déverrouillage. L'authentification de l'utilisateur est effectuée à l'aide, par exemple, d'une carte à puce incluse dans l'appareil 10, ou encore d'une carte de communication en champ proche extérieure à l'appareil, également appelée carte NFC (de l'anglais Near Field Communication). Ladite application est également propre à vérifier des permissions associées à une application tierce pour le contrôle de l'accès à ladite application tierce par l'utilisateur.
La bibliothèque de sécurisation 24 comporte une fonction 37A de sécurisation du stockage de données, une fonction 37B de sécurisation d'échange de données avec un autre appareil informatique et une fonction 37C de suppression d'évènement(s) de débogage, comme représenté sur la figure 2.
Dans l'exemple de réalisation des figures 1 et 2, la bibliothèque de sécurisation 24 est une bibliothèque spécifique distincte des bibliothèques natives incluses dans le système d'exploitation 20.
En variante, tel qu'illustré par les traits pointillés sur la figure 2, la bibliothèque de sécurisation 24 est une bibliothèque native incluse dans l'ensemble de bibliothèques 26 du système d'exploitation livré par le fournisseur du système d'exploitation.
Comme connu en soi, le noyau 25 forme une couche d'abstraction entre, d'une part, une partie matérielle comportant notamment l'unité de traitement d'informations 12, la mémoire 14 et l'émetteur-récepteur radioélectrique 18, et d'autre part, le reste du système d'exploitation 20, notamment l'ensemble de bibliothèques 26. Le noyau 25 est adapté pour gérer des services essentiels tels que la sécurité du système d'exploitation, la gestion de la mémoire, ou encore la gestion des processus.
L'ensemble de bibliothèques 26 comprend une bibliothèque 39 de fonctions non sécurisées.
La machine virtuelle 28 est connue en soi, et est propre à exécuter chaque fichier binaire contenu dans les fichiers de paquetage 21 , 22, 23 respectifs. La structure d'accueil applicative 30 comporte des services 38A, 38B à la disposition des applications 31 , 34, 36, tels qu'un service 38A de gestion d'activité, un service 38B de gestion des fichiers de paquetage associés aux applications.
Chaque application 31 , 34, 36 est en forme d'un fichier binaire comportant un code binaire, également appelé code intermédiaire (de l'anglais bytecodé) destiné à être exécuté par la machine virtuelle 28. L'exécution de l'application 31 , 34, 36 par la machine virtuelle 28 est une interprétation du code intermédiaire de l'application.
Chaque application 31 , 34, 36 comprend un ou plusieurs composants A, B, #A, #B, comme représenté sur la figure 4, les composants présentant différents types, tels qu'une activité, un service, un fournisseur de contenu, ou encore un récepteur de diffusion. Chaque composant A, B, #A, #B joue un rôle différent dans le comportement de l'application, et est activable individuellement, même par d'autres applications.
Dans le mode de réalisation décrit, le système d'exploitation 20 est le système d'application Android® de la société Google. Le noyau 25 est alors basé sur un noyau Linux, plus précisément sur la version 2.6 du noyau Linux. L'ensemble de bibliothèque 26 est écrite en langage informatique C/C++. La machine virtuelle 28 est la machine virtuelle Dalvik. Les applications 31 , 34, 36 sont écrites en langage Java et sont en forme d'un code binaire exécutable par la machine virtuelle Dalvik 28.
En variante, l'invention s'applique à n'importe quel système d'exploitation de même type que le système d'exploitation Android®. En particulier, l'invention s'applique à un système d'exploitation comportant un noyau, une machine virtuelle destinée à exécuter les applications et un ensemble de bibliothèques de fonctions accessibles par le noyau et par la machine virtuelle.
Le premier fichier de configuration 33 est connu en soi et comporte des informations de nommage et d'indication de la version de l'application, des informations concernant les composants de l'application et des filtres de message permettant à l'application d'identifier de manière prédéfinie certains messages parmi ceux reçus du système d'exploitation 20 ou d'autres applications. Dans le cas d'Android®, le premier fichier de configuration 33 est également appelé fichier Manifest (de l'anglais Manifest file).
L'application à sécuriser 34 est destinée à appeler au moins une fonction de la bibliothèque de fonction non sécurisée 39 lors de son exécution.
Le deuxième fichier de configuration 35 comporte le même type d'informations que le premier fichier de configuration 33, et est en outre modifié, afin que l'application de création de l'environnement d'exécution 36 soit lancée à la place de l'application à sécuriser 34 lors de l'exécution du deuxième fichier de paquetage 22 par la machine virtuelle 28.
En variante, l'application à sécuriser 34 et l'application de création de l'environnement d'exécution 36 sont encapsulées dans deux fichiers de paquetage distincts, chaque application 34, 36 étant encapsulée avec un fichier de configuration propre dans un fichier de paquetage respectif. Le fichier de configuration associé à l'application à sécuriser 34 est modifié afin que l'application de création dynamique de l'environnement d'exécution 36 soit initialement exécutée en lieu et place de l'application à sécuriser, et afin de permettre également l'exécution de l'application à sécuriser 34 dans un processus existant préparé par l'application de création de l'environnement de l'exécution 36.
L'application de création dynamique de l'environnement 36 comporte des moyens
40 de chargement de la bibliothèque de sécurisation, des moyens 42 de substitution, parmi le ou les appels de fonction associés à l'application à sécuriser 34, d'au moins un appel à une fonction non sécurisée par un appel à une fonction correspondante de la bibliothèque de sécurisation 24.
En complément, l'application de création de l'environnement d'exécution 36 comporte des moyens 44 d'authentification de l'utilisateur de l'appareil informatique et de récupération d'une clé de déverrouillage de la bibliothèque de sécurisation, et des moyens 46 d'interception et de traitement d'un message lié à la mise en veille ou au réveil de l'application à sécuriser 34.
L'application de création de l'environnement de l'exécution 36 comporte des moyens 48 de lancement de l'application à sécuriser suite à la substitution de l'appel à la fonction non sécurisée par l'appel à la fonction de sécurisation.
L'application de création de l'environnement d'exécution 36 est une application dédiée à la ou aux applications à sécuriser 34, et est distincte du système d'exploitation
20.
La fonction de sécurisation du stockage de données 37A est propre à protéger des données sensibles stockées dans une zone mémoire de la mémoire 14, par exemple via un chiffrement des données stockées. La protection est une protection en confidentialité afin d'interdire l'accès de ces données à une personne non autorisée, et également une protection en intégrité afin d'empêcher une modification du contenu de ces données.
La fonction de sécurisation d'échange de données 37B est propre à protéger des échanges de données entre l'application à sécuriser 34 et l'autre appareil informatique, non représenté. La fonction de suppression d'événements de débogage 37C est propre à supprimer les événements de débogage avant qu'ils ne soient enregistrés dans la mémoire 14, les événements de débogage étant générés lors de l'exécution de marqueurs contenus dans le code de l'application à sécuriser 34. Ces événements de débogage, servant à déverminer le code de l'application avant que le code ne soit finalisé, sont parfois conservés dans le code de l'application, et sont alors susceptibles d'engendrer une faille de sécurité.
La bibliothèque de fonction(s) non sécurisée(s) 39 est connue en soi. Dans le cas du système d'exploitation Android®, la bibliothèque de fonction(s) non sécurisée(s) 39 est une bibliothèque de fonction(s) écrite(s) en langage informatique C/C++.
Dans l'exemple de réalisation de la figure 1 , les moyens d'authentification et de récupération 44 sont des moyens d'appel de l'application d'authentification de l'utilisateur et de récupération de la clé de déverrouillage encapsulée dans le troisième fichier de paquetage 23. Autrement dit, les moyens d'authentification et de récupération 44 comportent seulement un point d'entrée vers ladite application d'authentification de l'utilisateur et de récupération de la clé.
En variante, la mémoire 14 ne comporte pas le troisième fichier de paquetage, et les moyens d'authentification et de récupération 44 de chaque application de création de l'environnement d'exécution comprennent les fonctionnalités de l'application d'authentification de l'utilisateur et de récupération de la clé de déverrouillage, et sont propres à authentifier l'utilisateur de l'appareil 10, puis en cas d'authentification réussie, à récupérer la clé de déverrouillage de la bibliothèque de sécurisation 24.
Le fonctionnement de l'appareil informatique 10 selon l'invention va désormais être expliqué à l'aide des figures 3 et 4.
Avant d'être stocké dans la mémoire 14, chaque deuxième fichier de paquetage
22 est créé à l'aide d'une application de création du fichier de paquetage. L'application de création du fichier de paquetage est une application tierce extérieure à l'appareil informatique, et est propre à créer le fichier de paquetage 22 de l'application à sécuriser à partir d'un fichier de paquetage initial de l'application à sécuriser 34 comportant l'application à sécuriser 34 et un fichier initial de configuration analogue au premier fichier de configuration 33.
L'application tierce de création du fichier de paquetage crée le deuxième fichier de configuration 35 en modifiant le fichier initial de configuration, afin que l'application de création de l'environnement d'exécution 36 soit lancée à la place de l'application à sécuriser 34 lors de l'exécution du deuxième fichier de paquetage 22. L'application tierce de création construit alors le deuxième fichier de paquetage 22 en ajoutant, au deuxième fichier de configuration 35 préalablement créé, le deuxième fichier binaire correspondant à l'application à sécuriser et le troisième fichier binaire correspondant à l'application de création de l'environnement d'exécution 36. En complément, l'application tierce de création ajoute également la bibliothèque de sécurisation 24 dans le deuxième fichier de paquetage 22.
L'application tierce de création signe enfin le deuxième fichier de paquetage 22 préalablement construit.
La figure 3 illustre un procédé de création dynamique d'un environnement d'exécution de l'application à sécuriser 34 mis en œuvre par l'application de création de l'environnement d'exécution 36.
Lors de l'étape initiale 100, la bibliothèque de sécurisation 24 est chargée afin que les fonctions de sécurisation 37A, 37B, 37C contenues dans ladite bibliothèque de sécurisation 24 soient disponibles pour la machine virtuelle 28 lors du lancement ultérieur de l'application à sécuriser 34.
L'application de création de l'environnement d'exécution 36 substitue ensuite lors de l'étape 1 10 au moins un appel à une fonction non sécurisée, parmi le ou les appels de fonction associée à ladite application à sécuriser 34, par un appel à une fonction correspondante 37A, 37B, 37C de la bibliothèque de sécurisation 24 précédemment chargée.
L'étape de substitution 1 10 comporte, par exemple, la suppression d'un lien dynamique entre ladite application à sécuriser 34 et la fonction non sécurisée, et la création d'un lien dynamique de substitution entre ladite application à sécuriser 34 et la fonction correspondante 37A, 37B, 37C de la bibliothèque de sécurisation 24.
Dans le mode de réalisation décrit, tous les appels à une fonction de stockage de données parmi les appels de fonction associée à ladite application à sécuriser 34 sont substitués par des appels à la fonction de sécurisation du stockage de données 37A.
Tous les appels à une fonction d'échange de données avec un autre appareil informatique parmi les appels de fonction associée à ladite application à sécuriser 34 sont substitués par des appels à la fonction de sécurisation d'échange de données 37B.
Tous les appels à une fonction d'ajout d'événement de débogage parmi les appels de fonction associée à ladite application à sécuriser 34 sont substitués par des appels à la fonction de suppression d'événements de débogage 37C.
En complément, l'application de création de l'environnement d'exécution 36 effectue ensuite, lors de l'étape 1 15, le verrouillage de la bibliothèque de sécurisation 24 chargée lors de l'étape 100 et de la ou des substitution(s) d'appel de fonction effectuée(s) lors de l'étape 1 10 précédente.
Lorsque l'étape 1 10 de substitution est effectuée via l'introduction d'une fonction de substitution dans l'application à sécuriser elle-même ou dans la machine virtuelle 28 au moyen d'un lien dynamique, la fonction de substitution étant issue de l'application de création de l'environnement d'exécution 36, l'étape de verrouillage consiste, par exemple, à remplacer la référence de la fonction de substitution par une référence à une nouvelle fonction de substitution.
Le code correspondant au code des étapes 1 10 et 1 15, ainsi qu'à la nouvelle fonction de substitution et aux fonctions de sécurisation, est positionné dans la bibliothèque de sécurisation 24. Cette nouvelle fonction de substitution opère un filtrage sur les demandes de substitution en refusant de substituer les appels de fonction traités à l'étape 1 10, et en autorisant la substitution des autres appels de fonction.
En complément, l'application de création de l'environnement d'exécution 36 requiert ensuite, lors de l'étape 120, l'authentification de l'utilisateur de l'appareil informatique 10, puis en cas d'authentification réussie, récupère une clé de déverrouillage de la bibliothèque de sécurisation 24.
En complément, lors de l'étape 130, l'application de création de l'environnement d'exécution 36 intercepte et traite des messages échangés entre le système d'exploitation et l'application à sécuriser, lesdits messages étant traités par la bibliothèque de sécurisation 24. Les messages interceptés concernent notamment la mise en veille, le réveil de l'application à sécuriser 34, le stockage de données dans la mémoire 14 et l'échange de données avec un autre appareil informatique.
L'application de création de l'environnement de l'exécution 36 lance enfin lors de l'étape 140 l'application à sécuriser 34.
Après le lancement de l'application à sécuriser 34 et de par la ou les substitution(s) précédemment effectuée(s) d'appel de fonction, le ou les appels correspondants générés par l'application à sécuriser 34 ou à destination de l'application à sécuriser, éventuellement via le système d'exploitation 20, sont transmis en premier lieu à la bibliothèque de sécurisation 24, et si cette dernière l'autorise, au besoin à la bibliothèque non sécurisée 39.
La création de l'environnement d'exécution de l'application à sécuriser 34 est dynamique étant donné qu'elle est effectuée à chaque exécution de ladite application et suite à la réception par le système d'exploitation 20 d'un ordre d'exécution de ladite application. La figure 4 est une représentation de la création dynamique de l'environnement d'exécution de l'application à sécuriser 34 et de l'exécution de ladite application.
Suite à la réception par le système d'exploitation 20 d'un ordre d'exécution du deuxième fichier de paquetage 22, le système d'exploitation commence par lancer le composant #A de l'application de création de l'environnement d'exécution 36 à l'aide du service de gestion d'activité 38A (flèche F1 ), suivant les informations contenues dans le deuxième fichier de configuration 35 modifié, afin que l'application de création de l'environnement d'exécution 36 soit lancée à la place de l'application à sécuriser 34.
L'application de création de l'environnement d'exécution 36 charge alors la bibliothèque de sécurisation 24 (flèche F2), conformément à l'étape initiale 100 du procédé de création de l'environnement d'exécution. Les fonctions de sécurisation 37A, 37B, 37C contenues dans ladite bibliothèque de sécurisation sont ainsi disponibles pour les actions ultérieures de la machine virtuelle 28. Les liens dynamiques entre l'application à sécuriser 34 et certaines fonctions non sécurisées sont supprimés, et les liens dynamiques de substitution correspondants sont crées entre ladite application à sécuriser 34 et les fonctions correspondantes 37A, 37B, 37C de la bibliothèque de sécurisation 24, conformément à l'étape 1 10 décrite précédemment (flèche F3).
Le composant #A requiert ensuite, auprès du système d'exploitation, le lancement du composant A correspondant de l'application à sécuriser 34, (flèche F4). Cette requête est interceptée par la bibliothèque de sécurisation 24 afin de requérir l'authentification de l'utilisateur, puis en cas d'authentification réussie, de récupérer la clé de déverrouillage de la bibliothèque de sécurisation 24. En cas d'authentification réussie de l'utilisateur, la requête est transmise au service de gestion d'activité 38A du système d'exploitation (flèche F5).
Le système d'exploitation 20 lance alors le composant A de l'application à sécuriser 34 à l'aide du service de gestion d'activité 38A, conformément à l'étape 140 décrite précédemment (flèche F6). Le lancement est effectué dans le même processus que celui de l'application de création de l'environnement d'exécution 36 suivant les informations contenues dans le deuxième fichier de configuration 35.
Au cours de l'exécution de l'application à sécuriser 34, le composant A requiert, auprès du système d'exploitation 20, le lancement du composant B, et cette requête est alors dirigée par la machine virtuelle 28 vers la bibliothèque de sécurisation 24 (flèche F7) de par l'étape précédente de substitution de liens dynamiques. La requête est alors modifiée par la bibliothèque de sécurisation 24 afin que le système d'exploitation 20 lance le composant #B au lieu du composant B de l'application à sécuriser 34, puis transmise au service de gestion d'activité 38A (flèche F8). Le système d'exploitation 20 lance donc le composant #B (flèche F9).
Le composant #B requiert ensuite, auprès du système d'exploitation, le lancement du composant B correspondant de l'application à sécuriser 34, (flèche F10). Cette requête est interceptée par la bibliothèque de sécurisation 24 afin d'effectuer des traitements de sécurisation correspondants, puis transmise au service de gestion d'activité 38A du système d'exploitation (flèche F1 1 ).
Le système d'exploitation 20 lance alors le composant B de l'application à sécuriser 34 à l'aide du service de gestion d'activité 38A (flèche F12). Le composant B, souhaitant ensuite stocker un fichier de données, appelle à cet effet une fonction de stockage (flèche F13). De par l'étape précédente de substitution de liens dynamiques, la fonction de sécurisation du stockage de données 37A de la bibliothèque de sécurisation est alors automatiquement appelée, et le fichier de données est chiffré par ladite fonction sécurisée 37A avant d'être stocké dans la mémoire 14 (flèche F14).
L'homme du métier comprendra que si le composant avait souhaité échanger des données avec un autre appareil informatique et avait appelé à cet effet une fonction d'échange de données, alors la fonction de sécurisation d'échange de données 37B aurait été, de manière analogue, appelée automatiquement de par l'étape précédente de substitution de liens dynamiques.
L'homme du métier comprendra que si le composant avait souhaité ajouter des événements de débogage et avait appelé à cet effet une fonction d'ajout d'événement de débogage, alors la fonction de suppression d'événements de débogage 37C aurait été, de manière analogue, appelée automatiquement de par l'étape précédente de substitution de liens dynamiques.
Dans l'exemple de réalisation de la figure 4, les différentes requêtes décrites sont effectuées en mode superviseur et passent alors par le noyau 25. L'homme du métier comprendra que certaines requêtes sont, en variante, susceptibles d'être effectuées en mode utilisateur sans passer par le noyau 25.
L'appareil informatique 10, via la mise en œuvre du procédé de création dynamique de l'environnement d'exécution de l'application à sécuriser 34 à l'aide de l'application de création de l'environnement d'exécution 36, permet donc de sécuriser le fonctionnement de l'application 34, notamment en ce qui concerne le lancement des composants, le stockage de données ou l'échange de données avec un autre appareil informatique, ceux-ci étant automatiquement chiffrés via les fonctions adéquates de la bibliothèque de sécurisation 24. Cette sécurisation de l'application 34 nécessite seulement la réécriture du fichier de configuration de l'application (appelé fichier Manifest dans le cas d'Android®), l'ajout de l'application de création de l'environnement d'exécution 36, celle-ci étant encapsulée dans le fichier de paquetage de l'application à sécuriser 34, ou en variante dans un fichier de paquetage séparé, et l'ajout de la bibliothèque de sécurisation 24, si l'ensemble de bibliothèques 26 ne comporte pas déjà une telle bibliothèque.
L'homme du métier remarquera que cette sécurisation ne nécessite aucune modification du code source ou binaire de l'application à sécuriser 34, ni aucune modification du système d'exploitation 20.
On conçoit ainsi que le procédé de création dynamique d'un environnement d'exécution d'une application à sécuriser et l'appareil informatique 10 permettent de sécuriser l'application 34 tout en limitant les modifications du code du système d'exploitation, de l'environnement applicatif ou encore de l'application à sécuriser.
Bien que le procédé de création dynamique de l'environnement d'exécution de l'application à sécuriser et l'appareil informatique selon l'invention aient été décrits en relation avec un système d'exploitation comportant une machine virtuelle propre à exécuter l'application, l'homme du métier comprendra que l'invention s'applique également à un système d'exploitation ne comportant pas de machine virtuelle, l'application étant alors exécutée directement par le processeur de l'unité de traitement d'informations.

Claims

REVENDICATIONS
1 . - Procédé de création dynamique d'un environnement d'exécution d'une application à sécuriser (34) pour la sécurisation de ladite application (34), le procédé étant mis en œuvre par un appareil informatique (10) comprenant une unité de traitement d'informations (12) et une mémoire (14), la mémoire (14) étant associée à l'unité de traitement d'informations (12) et comportant un système d'exploitation (20), l'application à sécuriser (34) et une bibliothèque de sécurisation (24) comportant au moins une fonction de sécurisation (37A, 37B, 37C), le système d'exploitation (20) comportant un ensemble (26) de bibliothèques de fonction(s) comprenant une bibliothèque de fonction(s) non sécurisée(s) (39), l'application à sécuriser (34) étant, lors de son exécution, destinée à appeler une fonction de la bibliothèque de fonction(s) non sécurisée(s) (39),
le procédé étant caractérisé en ce qu'il comprend les étapes suivantes mises, en œuvre par une application de création dynamique de l'environnement d'exécution (36) stockée dans la mémoire (14) :
- le chargement (100) de la bibliothèque de sécurisation (24),
- la substitution (1 10), parmi le ou les appel(s) de fonction associé(s) à ladite application à sécuriser (34), d'au moins un appel à une fonction non sécurisée par un appel à une fonction correspondante (37A, 37B, 37C) de la bibliothèque de sécurisation (24),
- le lancement (140) de l'application à sécuriser (34) après l'étape de substitution
(1 10).
2. - Procédé selon la revendication 1 , dans lequel l'étape de substitution (1 10) comporte la suppression d'un lien dynamique entre ladite application à sécuriser (34) et la fonction non sécurisée, et la création d'un lien dynamique de substitution entre ladite application à sécuriser (34) et la fonction correspondante (37A, 37B, 37C) de la bibliothèque de sécurisation (24).
3. - Procédé selon la revendication 1 ou 2, dans lequel, parmi le ou les appel(s) de fonction associé(s) à ladite application à sécuriser, tous les appels à une fonction de stockage de données sont substitués par des appels à une fonction (37A) de sécurisation du stockage de données.
4. - Procédé selon l'une quelconque des revendications précédentes, dans lequel, parmi le ou les appel(s) de fonction associé(s) à ladite application à sécuriser, tous les appels à une fonction d'échange de données avec un autre appareil informatique sont substitués par des appels à une fonction (37B) de sécurisation d'échange de données avec l'autre appareil informatique.
5.- Procédé selon l'une quelconque des revendications précédentes, dans lequel, parmi le ou les appel(s) de fonction associé(s) à ladite application à sécuriser, tous les appels à une fonction d'ajout d'événements de débogage sont substitués par des appels à une fonction (37C) de suppression d'événements de débogage.
6.- Procédé selon l'une quelconque des revendications précédentes, dans lequel le procédé comprend en outre, avant l'étape de lancement de l'application (140), une étape (1 15) de verrouillage de la bibliothèque de sécurisation (24) chargée lors de l'étape de chargement (100) et de la ou des substitution(s) d'appel de fonction effectuée(s) lors de l'étape de substitution (1 10).
7.- Procédé selon l'une quelconque des revendications précédentes, dans lequel le procédé comprend en outre, avant l'étape de lancement de l'application (140), une étape (120) d'authentification de l'utilisateur de l'appareil informatique (10) et de récupération d'une clé de déverrouillage de la bibliothèque de sécurisation (24).
8. - Procédé selon l'une quelconque des revendications précédentes, dans lequel le procédé comprend en outre, avant l'étape de lancement de l'application (140), une étape (130) d'interception d'un message échangé entre le système d'exploitation (20) et l'application à sécuriser (34), et de traitement dudit message par une fonction correspondante de la bibliothèque de sécurisation 24.
9. - Procédé selon l'une quelconque des revendications précédentes, dans lequel l'application de création de l'environnement d'exécution (36) est une application dédiée à la ou aux application(s) à sécuriser (34), et est distincte du système d'exploitation (20).
10. - Procédé selon l'une quelconque des revendications précédentes, dans lequel le système d'exploitation (20) comporte une machine virtuelle (28) propre à exécuter l'application (34, 36).
1 1 .- Procédé selon la revendication 10, dans lequel le système d'exploitation (20) est Android, et la machine virtuelle (28) est la machine virtuelle Dalvik.
12. - Produit programme d'ordinateur comportant des instructions logicielles qui, lorsque mises en œuvre par une unité de traitement d'informations (12) intégrée à un appareil informatique (10), met en œuvre le procédé selon l'une quelconque des revendications précédentes.
13. - Appareil informatique (10) comprenant :
- une unité de traitement d'informations (12),
- une mémoire (14) comportant un système d'exploitation (20), au moins une application à sécuriser (34) et une bibliothèque de sécurisation (24) comportant au moins une fonction de sécurisation (37A, 37B, 37C), la mémoire (14) étant associée à l'unité de traitement d'informations (12), le système d'exploitation (20) comportant un ensemble (26) de bibliothèques de fonctions comprenant une bibliothèque de fonction(s) non sécurisée(s) (39), l'application à sécuriser (34) étant destinée à appeler une fonction de la bibliothèque de fonction(s) non sécurisée(s) (39),
caractérisé en ce que la mémoire (14) comporte en outre une application (36) de création dynamique d'un environnement d'exécution de l'application à sécuriser, l'application de création de l'environnement d'exécution (36) comportant des moyens (40) de chargement de la bibliothèque de sécurisation (24), des moyens (42) de substitution, parmi le ou les appel(s) de fonction associé(s) à ladite application à sécuriser (34), d'au moins un appel à une fonction non sécurisée par un appel à une fonction correspondante (37A, 37B, 37C) de la bibliothèque de sécurisation (24), et des moyens (48) de lancement de l'application à sécuriser (34) suite à la substitution de l'appel à la fonction non sécurisée par l'appel à la fonction de sécurisation (37A, 37B, 37C).
EP12770480.7A 2011-10-06 2012-10-08 Procédé de création dynamique d'un environnement d'exécution d'une application pour sécuriser ladite application, produit programme d'ordinateur et appareil informatique associés Withdrawn EP2764463A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1103046A FR2981174B1 (fr) 2011-10-06 2011-10-06 Procede de creation dynamique d'un environnement d'execution d'une application pour securiser ladite application, produit programme d'ordinateur et appareil informatique associes
PCT/EP2012/069874 WO2013050600A1 (fr) 2011-10-06 2012-10-08 Procédé de création dynamique d'un environnement d'exécution d'une application pour sécuriser ladite application, produit programme d'ordinateur et appareil informatique associés

Publications (1)

Publication Number Publication Date
EP2764463A1 true EP2764463A1 (fr) 2014-08-13

Family

ID=46980981

Family Applications (2)

Application Number Title Priority Date Filing Date
EP12769121.0A Active EP2764462B1 (fr) 2011-10-06 2012-10-08 Procede de generation, a partir d'un fichier initial de paquetage comportant une application a securiser et un fichier initial de configuration, d'un fichier de paquetage pour la securisation de l'application, produit programme d'ordinateur et dispositif informatique associes
EP12770480.7A Withdrawn EP2764463A1 (fr) 2011-10-06 2012-10-08 Procédé de création dynamique d'un environnement d'exécution d'une application pour sécuriser ladite application, produit programme d'ordinateur et appareil informatique associés

Family Applications Before (1)

Application Number Title Priority Date Filing Date
EP12769121.0A Active EP2764462B1 (fr) 2011-10-06 2012-10-08 Procede de generation, a partir d'un fichier initial de paquetage comportant une application a securiser et un fichier initial de configuration, d'un fichier de paquetage pour la securisation de l'application, produit programme d'ordinateur et dispositif informatique associes

Country Status (6)

Country Link
US (2) US9405520B2 (fr)
EP (2) EP2764462B1 (fr)
KR (2) KR20140077188A (fr)
CN (2) CN103975338A (fr)
FR (1) FR2981174B1 (fr)
WO (2) WO2013050602A1 (fr)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2981174B1 (fr) 2011-10-06 2013-12-20 Thales Sa Procede de creation dynamique d'un environnement d'execution d'une application pour securiser ladite application, produit programme d'ordinateur et appareil informatique associes
US8695060B2 (en) 2011-10-10 2014-04-08 Openpeak Inc. System and method for creating secure applications
DE102013003204A1 (de) * 2013-02-26 2014-08-28 Giesecke & Devrient Gmbh Verfahren und Vorrichtung zum Betreiben einer Ausführungsumgebung für Applikationen
CN104134034B (zh) * 2013-06-13 2015-10-21 腾讯科技(深圳)有限公司 控制应用运行的方法和装置
US20150113502A1 (en) * 2013-10-18 2015-04-23 Openpeak Inc. Method and system for encapsulation of application
US20150113506A1 (en) * 2013-10-18 2015-04-23 Openpeak Inc. Method and system for adaptive loading of application
KR101695639B1 (ko) * 2014-08-13 2017-01-16 (주)잉카엔트웍스 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템
JP6462114B2 (ja) 2014-08-20 2019-01-30 クワーン チー インテリジェント フォトニック テクノロジー リミテッド オペレーティングシステムにおけるハードウェア・デバイス制御方法及びモジュール
US20160071040A1 (en) 2014-09-05 2016-03-10 Openpeak Inc. Method and system for enabling data usage accounting through a relay
US9350818B2 (en) 2014-09-05 2016-05-24 Openpeak Inc. Method and system for enabling data usage accounting for unreliable transport communication
US8938547B1 (en) 2014-09-05 2015-01-20 Openpeak Inc. Method and system for data usage accounting in a computing device
US9232013B1 (en) 2014-09-05 2016-01-05 Openpeak Inc. Method and system for enabling data usage accounting
CN104504324B (zh) * 2014-12-03 2017-09-29 深信服科技股份有限公司 移动应用认证加固方法和系统
US9232078B1 (en) 2015-03-16 2016-01-05 Openpeak Inc. Method and system for data usage accounting across multiple communication networks
CN104915266B (zh) * 2015-06-15 2019-05-28 上海海漾软件技术有限公司 一种应用程序保护方法及装置
FR3043474B1 (fr) * 2015-11-09 2017-12-22 Thales Sa Procede et systeme d'aide a la precision d'un pilote pour le pilotage d'un aeronef et produit programme d'ordinateur associe
CN106203085B (zh) * 2016-07-08 2019-03-01 东软集团股份有限公司 一种编译方法及装置
US10042620B1 (en) * 2016-11-03 2018-08-07 Palantir Technologies Inc. Approaches for amalgamating disparate software tools
DE102017204218A1 (de) * 2017-03-14 2018-09-20 Robert Bosch Gmbh Verfahren und Vorrichtung zum Absichern eines Gerätes
CN107480513B (zh) * 2017-08-17 2020-09-11 深信服科技股份有限公司 一种认证实现方法及装置、计算机装置、可读存储介质
DE102017214591A1 (de) * 2017-08-22 2019-02-28 Robert Bosch Gmbh Verfahren und Vorrichtung zum Schützen eines Gerätes
CN110147227B (zh) * 2018-07-06 2023-07-18 杭州涂鸦信息技术有限公司 一种用于技能配置的程序安装包生成方法及系统

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6658571B1 (en) * 1999-02-09 2003-12-02 Secure Computing Corporation Security framework for dynamically wrapping software applications executing in a computing system
US7398532B1 (en) * 2000-03-02 2008-07-08 Hewlett-Packard Development Company, L.P. System and method for establishing a secure execution environment for a software process
US6836888B1 (en) * 2000-03-17 2004-12-28 Lucent Technologies Inc. System for reverse sandboxing
US20020065776A1 (en) * 2000-11-29 2002-05-30 Brad Calder Method and process for virtualizing file system interfaces
US20020066021A1 (en) * 2000-11-29 2002-05-30 Chien Andrew A. Method and process for securing an application program to execute in a remote environment
US7260820B1 (en) * 2001-04-26 2007-08-21 Vm Ware, Inc. Undefeatable transformation for virtual machine I/O operations
US7475408B2 (en) * 2003-02-27 2009-01-06 Microsoft Corporation Hosting an application in one of a plurality of execution environments
US8266700B2 (en) * 2005-05-16 2012-09-11 Hewlett-Packard Development Company, L. P. Secure web application development environment
US7725737B2 (en) * 2005-10-14 2010-05-25 Check Point Software Technologies, Inc. System and methodology providing secure workspace environment
US7693838B2 (en) * 2005-11-12 2010-04-06 Intel Corporation Method and apparatus for securely accessing data
US7725922B2 (en) * 2006-03-21 2010-05-25 Novell, Inc. System and method for using sandboxes in a managed shell
CN101593257B (zh) * 2008-05-27 2011-02-16 北京飞天诚信科技有限公司 基于.Net虚拟机的软件保护系统和方法
US20110289294A1 (en) * 2009-12-14 2011-11-24 Manabu Maeda Information processing apparatus
US9684785B2 (en) * 2009-12-17 2017-06-20 Red Hat, Inc. Providing multiple isolated execution environments for securely accessing untrusted content
US20120159567A1 (en) * 2010-12-21 2012-06-21 Enterproid Hk Ltd Contextual role awareness
EP2469743B1 (fr) * 2010-12-23 2019-02-20 Nagravision S.A. Système pour identifier un utilisateur de services de télévision en utilisant la biométrie
US8549656B2 (en) 2011-02-11 2013-10-01 Mocana Corporation Securing and managing apps on a device
FR2981174B1 (fr) 2011-10-06 2013-12-20 Thales Sa Procede de creation dynamique d'un environnement d'execution d'une application pour securiser ladite application, produit programme d'ordinateur et appareil informatique associes

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
None *
See also references of WO2013050600A1 *

Also Published As

Publication number Publication date
EP2764462B1 (fr) 2019-03-13
US20140223545A1 (en) 2014-08-07
WO2013050602A1 (fr) 2013-04-11
CN103988206A (zh) 2014-08-13
CN103975338A (zh) 2014-08-06
FR2981174B1 (fr) 2013-12-20
KR20140077186A (ko) 2014-06-23
US9405520B2 (en) 2016-08-02
FR2981174A1 (fr) 2013-04-12
EP2764462A1 (fr) 2014-08-13
US20140223426A1 (en) 2014-08-07
WO2013050600A1 (fr) 2013-04-11
KR20140077188A (ko) 2014-06-23

Similar Documents

Publication Publication Date Title
EP2764462B1 (fr) Procede de generation, a partir d'un fichier initial de paquetage comportant une application a securiser et un fichier initial de configuration, d'un fichier de paquetage pour la securisation de l'application, produit programme d'ordinateur et dispositif informatique associes
US8769305B2 (en) Secure execution of unsecured apps on a device
US9396325B2 (en) Provisioning an app on a device and implementing a keystore
US9473485B2 (en) Secure single sign-on for a group of wrapped applications on a computing device and runtime credential sharing
US8955142B2 (en) Secure execution of unsecured apps on a device
CN105427096B (zh) 支付安全沙箱实现方法及系统与应用程序监控方法及系统
US8893298B2 (en) Network linker for secure execution of unsecured apps on a device
US8549656B2 (en) Securing and managing apps on a device
US9542552B2 (en) Extensible platform for securing apps on a mobile device using policies and customizable action points
US20140040622A1 (en) Secure unlocking and recovery of a locked wrapped app on a mobile device
CN107220083A (zh) 一种安卓系统中免安装运行应用程序的方法和系统
EP1688818A1 (fr) Procédé de gestion sécurisée de l'éxécution d'une application
US20160055344A1 (en) Data loss prevention during app execution using e-mail enforcement on a mobile device
CN115378735B (zh) 一种数据处理方法、装置、存储介质及电子设备
CN105554144A (zh) 应用数据的处理方法、装置及系统
EP2912598B1 (fr) Procédé de téléchargement d'au moins un composant logiciel dans un appareil informatique, produit programme d'ordinateur, appareil informatique et système informatique associés
EP3547602A1 (fr) Procédé de mise en oeuvre d'une fonction cryptographique pour une clé secrète
CN111562916B (zh) 共享算法的方法和装置
FR3094515A1 (fr) procédé d’exécution de code sécurisé, dispositifs, système et programmes correspondants
Παχύγιαννης Smartphone forensics & data acquisition
Panagiotis Smartphone Forensics & Data Acquisition
WO2008084155A2 (fr) Traitement de donnee relative a un reseau de donnees
EP2075733A1 (fr) Dispositif et un procédé de protection contre la rétro conception

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20140404

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

DAX Request for extension of the european patent (deleted)
17Q First examination report despatched

Effective date: 20171204

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20180417