WO2015092307A1 - Method for testing and updating the system of a terminal by means of a subscriber identity module and associated devices - Google Patents

Method for testing and updating the system of a terminal by means of a subscriber identity module and associated devices Download PDF

Info

Publication number
WO2015092307A1
WO2015092307A1 PCT/FR2014/053438 FR2014053438W WO2015092307A1 WO 2015092307 A1 WO2015092307 A1 WO 2015092307A1 FR 2014053438 W FR2014053438 W FR 2014053438W WO 2015092307 A1 WO2015092307 A1 WO 2015092307A1
Authority
WO
WIPO (PCT)
Prior art keywords
terminal
subscriber identity
identity module
update
software
Prior art date
Application number
PCT/FR2014/053438
Other languages
French (fr)
Inventor
Jean-François Deprun
Omar Laazimani
Original Assignee
Oberthur Technologies
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 Oberthur Technologies filed Critical Oberthur Technologies
Publication of WO2015092307A1 publication Critical patent/WO2015092307A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/50Service provisioning or reconfiguring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/04Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/10Integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/30Security of mobile devices; Security of mobile applications
    • H04W12/35Protecting application or service provisioning, e.g. securing SIM application provisioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/60Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/02Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]

Definitions

  • the present invention relates to the field of telecommunications. It relates in particular to a method for updating the functionalities of the operating system of a terminal required for the proper functioning of embedded applications within a subscriber identity module after a network operator. telecommunications.
  • a subscriber identity module is an electronic component for securely storing the international identity of a subscriber to a mobile telephone network.
  • This subscriber identity module can take the form of a dedicated smart card called UlCC (Universal Integrated Circuit Card in English), integrating a SIM application and / or USIM (Universal Subscriber Identity Module in English) within the framework of the network.
  • UlCC Universal Integrated Circuit Card in English
  • USIM Universal Subscriber Identity Module in English
  • UMTS Universal Mobile Telecommunications System in English
  • This component can, for example, be soldered to the terminal's motherboard, independently of the main processor. It is then called eUICC (embedded Universal Integrated Circuit Card in English,).
  • a Subscriber Identity Module typically meets ISO / IEC 7816, Common Criteria, Global Platform Card Specification v 2.2.1, and / or ETSI TS 103 383 v12.0.0.
  • This subscriber identity module can host applications, sometimes called applets, which can execute within it and communicate with the terminal containing the subscriber identity module and / or through it with remote services.
  • the communication terminals in question are typically mobile telephone terminals.
  • the communication terminals integrating such a subscriber identity module are today very much more diverse. It can be a tablet or a computer integrating the capacity of connection to a mobile telephone network or any information processing device, for example in the context of a communication system of a machine. M2M machine (machine to machine in English). Indeed, such devices are provided with a mobile telephone unit enabling them to communicate with other devices, typically remote servers, or other M2M devices. For example, automobiles can now be equipped with such devices to automatically give the alert in case of detection of an accident.
  • Subscriber identity modules are typically managed by telecommunication network operators. Their computing abilities are steadily increasing. Operators host an ever-increasing number of applications within these subscriber identity modules. These applications can be subscriber management applications, banking applications or network monitoring applications that allow the operator to collect data coverage of his network for example. Some applications may operate autonomously within the subscriber identity module. Others require the cooperation of the terminal for their operation. This cooperation typically takes the form of APDU (Application Protocol Data Unit) message exchanges between the application implemented in the subscriber identity module and the software units executed on the terminal. The software units thus solicited on the terminal by the subscriber identity module are located on any of the software layers of the system implemented by the terminal.
  • APDU Application Protocol Data Unit
  • embedded software on the terminal can be a micro-software type unit (firmware in English), that is, a set of instructions and data structures embedded in an electronic component for operation or a software-type unit consisting of a set of at least one program and to make it operational.
  • the software embedded on the terminal designates the operating system of the terminal, its libraries, any applications that can be installed "above” this operating system, and / or computer drivers ⁇ drivers in English).
  • a subscriber identity module network monitoring application may collaborate with the terminal's radio interface management units to acquire the signal power information associated with the traversed cells. This information is transmitted by the subscriber identity module to the operator who analyzes it and can thus monitor the level of coverage of its telecommunications network.
  • the communication between the subscriber identity module and the terminal is covered by standards and standards, in particular the ISO / IEC 7816-4 standard in which messages or commands of the APDU type are defined.
  • the GSM 1 1 .14 standard defines a set of proactive STK commands (Sim TooIKit in English) which designate the actions controlled by the subscriber identity module and executed by the terminal.
  • This standard has been superseded by 3GPP 31 .1 1 1 ⁇ 3rd Generation Partnership Project in English) in third generation networks.
  • the applications developed to be executed on the subscriber identity module use these STK commands for their interactions with the terminal.
  • the present invention aims to solve the aforementioned drawbacks. It is proposed a method of testing and updating the terminal.
  • the subscriber identity module tests the commands, for example the STK commands used by the applications hosted within this subscriber identity module. It is a question of testing either all the commands implemented by the module, or only a list of commands previously determined and stored in a non-volatile memory of the subscriber identity module. If some commands are non-functional, for example because they are not implemented by the terminal, or if the terminal does not have the corresponding interface, or if there is an incompatibility between the version of the command generated by the the module and the version expected by the terminal, the subscriber identity module sends information on the software installed on the terminal and the non-functional commands to a remote server.
  • This update unit hereinafter called “update” is received by the subscriber identity module that triggers the update of the terminal.
  • This update brings for example the support of previously non-functional STK commands. Applications requiring these commands are thus made operational.
  • the invention relates to a method for updating the functionalities of the embedded software by a communication terminal containing a subscriber identity module hosting at least one application requiring for its execution at least one command implemented by said terminal, characterized in that understands by the subscriber identity module: a a step of testing the commands necessary to execute the at least one application hosted by said subscriber identity module; and in the case where at least one of these commands is missing in a version required by the hosted applications: a step of obtaining a unit for updating the software embedded by the terminal; and in response to the obtaining step, a step of triggering the update of the software embedded by the terminal, said update being made by the terminal by the installation (5.10) of said update unit .
  • said commands are proactive commands STK.
  • said test step is triggered by the start of the terminal.
  • said test step is triggered by the insertion in the terminal of a new subscriber identity module or by insertion into the terminal of a memory card or in response a request sent by a remote server or by the user to the subscriber identity module.
  • said step of triggering the updating of the software embedded by the terminal triggers the updating by the terminal of one of the layers of said software.
  • the step of obtaining an update unit comprises: a step of sending a request to a remote server, said request comprising at least test results the implementation by the terminal of the commands necessary to run the applications hosted by the subscriber identity module; and a step of receiving said update unit transmitted by said remote server.
  • said test results of the implementation of commands include a status obtained in response to the test.
  • the method further comprises: a step of obtaining terminal configuration information; and where the request to a remote server also includes this obtained information.
  • said update unit is contained in a non-volatile memory accessible by said subscriber identity module.
  • said non-volatile memory is contained in a memory card inserted in the terminal.
  • said non-volatile memory is contained in a local terminal accessible by a near-field radio communication.
  • the method further comprises: a step of verifying the integrity of the update unit obtained.
  • the invention also relates to a subscriber identity module comprising for updating the functionalities of the embedded software by a communication terminal containing said subscriber identity module: at least one application requiring for its execution at least one implemented command by said terminal, which comprises: means for testing the implementation by the terminal of the commands necessary for the execution of the applications hosted by the subscriber identity module; of the means for obtaining an on-board software update unit by the terminal; and means for triggering the update of the software embedded by the terminal, said update being made by the terminal by the installation of said update unit.
  • the invention also relates to a communication terminal characterized in that it comprises a subscriber identity module according to the invention.
  • the invention also relates to a computer program comprising instructions adapted to the implementation of each of the steps of the method according to the invention when said program is executed on a computer.
  • the invention also relates to an information storage means, removable or not, partially or completely readable by a computer or a microprocessor comprising code instructions of a computer program for executing each of the steps of the method according to the invention. the invention.
  • the various steps of the aforementioned method are determined by instructions of computer programs. Consequently, the invention also relates to a computer program on an information medium, this program being capable of being implemented by a microprocessor, this program comprising instructions adapted to the implementation of the steps of the method such as than mentioned above.
  • This program can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any other desirable form.
  • the invention is also directed to a microprocessor-readable information medium, and including instructions of a computer program as mentioned above.
  • the information carrier may be any entity or device capable of storing the program.
  • the medium may comprise storage means, such as a ROM, for example a microcircuit ROM, or a magnetic recording means, for example a hard disk, or a flash memory.
  • the information medium may be a transmissible medium such as an electrical or optical signal, which may be conveyed via an electrical or optical cable, by radio or by other means.
  • the program according to the invention may in particular be downloaded to a storage platform of an Internet type network.
  • the information carrier may be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the method in question.
  • - Figure 1 describes the architecture of a subscriber identity module according to an exemplary embodiment of the invention
  • - Figure 2 describes an example of UICC card
  • FIG. 4 describes the general interactions between the terminal and a subscriber identity module in an exemplary embodiment of the invention
  • the invention proposes a technical solution to identify the commands, or more generally the missing software units on a terminal to allow the proper execution of one or more embedded applications within a subscriber identity module on the terminal. It also aims to install on this terminal these commands or missing units. It therefore allows an update of the embedded software on the terminal terminal.
  • a telecommunications operator may wish to access the power measurements made by a terminal to obtain data relating to the coverage of its telecommunications network.
  • the network for example type 2G, 3G or LTE consists of a large number of cells that provide a power whose value may vary over time. Indeed, in urban areas, there are areas of cover in which it is not possible to call, and other areas in which the reception is excellent. The quality of this mesh may depend on the 2G, 3G or LTE technology used.
  • the operator could detect a large number of communications interrupted and loss of connectivity with mobile terminals. Since interrupted communications and loss of connectivity to mobile devices cause traffic to increase, this can lead to network congestion.
  • the operator can change the characteristics of the cells, for example to increase their power, but also to add new ones. To obtain such power measurements, it can either send technicians with measuring devices, or use the many phones of its subscribers to make measurements automatically.
  • the operator installs an application on each of the UICC cards he owns.
  • This application requests the power measurement values from the terminal, synthesizes and transmits this data to a server remote from the operator.
  • a base station has a problem or if there are disturbances, the operator can know about it in real time.
  • This example therefore requires the implementation of an application by a subscriber identity module that interacts with the terminal which has complementary functionalities, in this case means for evaluating the power of cells.
  • the terminals do not necessarily implement the functionalities necessary for the implementation of such an application.
  • BIP Body Independent Protocol
  • CAT Transport Protocol Card Application Tooikit Transport Protocol
  • ETSI TS 102 127 v6.12.0 Card Application Tooikit Transport Protocol
  • the subscriber identity module also obtains, in response to a request, information relating to the software embedded on the terminal.
  • This information typically contains the type of operating system, for example Android (registered trademark) or iOS as well as the system version. They can also contain a list of software units, such as a set of libraries, present with their version number. They may also contain other information depending on the case.
  • This information is transmitted by a unit of the terminal and received by an embedded application of the subscriber identity module.
  • the embedded application is an application dedicated to updating the terminal system.
  • the terminal unit may be a dedicated computer program belonging to the "system layer" of the terminal system, or a higher level software application.
  • the information sent typically includes at least the results of the test of the commands used by embedded applications on the subscriber identity module.
  • they also contain the information obtained concerning the software embedded on the terminal.
  • the remote server analyzes the received data to identify missing or updated features on the terminal so that applications embedded on the subscriber identity module can function properly.
  • the remote server may contain an association table containing for each embedded application the minimum configurations required for proper operation of the application for different operating systems. This knowledge can be voluminous and, moreover, it evolves over time. It is therefore particularly advantageous for it to be grouped on the remote server where it is centralized and can be easily updated to follow the evolution of the terminals.
  • the remote server then prepares the missing module (s), for example in the form of an update of the terminal system.
  • This update is sent to the subscriber identity module in response to its message containing the information on the software embedded on the terminal.
  • This update can take the form of an update software unit ⁇ patch in English), system libraries, or a software application that can be executed by the operating system of the terminal.
  • the update includes a core that implements the requested function or functions, and programming interfaces, called APIs (Application Programming Interface) that allow it to communicate. These interfaces can be intended for communication with so-called low layers of the operating system, for example the "micro-program” or "system” layers, particularly when the update implements an adaptation of the ISO and SWP protocol drivers. (Single Wire Protocol English).
  • a programming interface of the update unit may correspond to a feature that one wishes to add, delete or modify in the software embedded on the terminal. This feature is typically provided as a shared library, kernel module, or service.
  • the transmission of the update by the remote server to the subscriber identity module can be protected in various ways.
  • the transmission is protected against transmission errors by a checksum, such as a cyclic redundancy code (CRC) which is verified by the subscriber identity module after receiving the data and the expected value of the redundancy code.
  • CRC cyclic redundancy code
  • the update is signed electronically by the operator using a digital certificate. The authenticity of the signature is then verified by the subscriber identity module.
  • the update is encrypted using a digital certificate and decrypted by the subscriber identity module using a cryptographic key.
  • the update can be obtained locally.
  • the update may be available from a removable memory card inserted in the terminal or from a local terminal accessible by near field radio communication NFC (Near Field Communication in English).
  • NFC Near Field Communication in English
  • This scenario corresponds, for example, to a scenario in which a user brings his terminal in shop, at his operator, to perform the update.
  • the update may also be available on a local network accessible to the terminal, for example in the case of an update of a fleet of terminals within a company.
  • the subscriber identity module must then integrate an analysis unit allowing it to choose the update according to the technical characteristics of the terminal. However, this unit remains much simpler than that allowing the remote server to analyze the received information and generate an update for a given terminal.
  • the update available locally is generated beforehand and made available locally of the terminal that requires it.
  • FIG. 1 schematically shows an example of subscriber identity module 40 that can be used in the present invention.
  • the subscriber identity module 40 comprises a microprocessor 10, to which is associated on the one hand a random access memory 60 (for example of the RAM type), by means of a communication bus 70, and on the other hand a memory volatile 20 (for example of the ROM, EEPROM or Flash type), for example through a communication bus 50.
  • a microprocessor 10 to which is associated on the one hand a random access memory 60 (for example of the RAM type), by means of a communication bus 70, and on the other hand a memory volatile 20 (for example of the ROM, EEPROM or Flash type), for example through a communication bus 50.
  • the subscriber identity module 40 and precisely the microprocessor 10 that it incorporates, can exchange data with external devices by means of a communication interface 30.
  • FIG. input data X received from an external device (not shown) and transmitted from the communication interface 30 to the microprocessor 10.
  • an output data Y of the microprocessor 10 is derived from a data processing by the microprocessor 10, generally on the input data X using a secret datum 80 internal to the system, for example a private key.
  • the physical means which allow the communication between the microprocessor 10 and the interface 30 may be made by unique means, for example a serial communication port or a bus.
  • the microprocessor 10 is capable of executing a software (or computer program) that enables the subscriber identity module 40 to execute a method according to the invention, examples of which are given below.
  • the software is composed of a series of instructions for controlling the microprocessor 10 which are for example stored in the memory 20.
  • microprocessor assembly 10 - non-volatile memory 20 - RAM 60 may be replaced by a specific application circuit which then comprises means for implementing the various steps of the data processing method.
  • FIG. 2 represents a microcircuit card which constitutes an example of implementation of the subscriber identity module according to an exemplary embodiment of the invention as represented in FIG. 1.
  • This card is typically an UlCC card used in a telephone. mobile.
  • the communication interface 30 is in this case made by means of the contacts of the microcircuit card.
  • the microcircuit card incorporates a microprocessor 10, a random access memory 60 and a non-volatile memory 20 as shown in FIG.
  • This microcircuit card is for example in accordance with the ISO / IEC 7816 standard and provided with a secure microcontroller which includes the microprocessor (or CPU) 20 and the random access memory 60. It can also be an on-board circuit, called eUICC which is, for example welded to the mobile phone.
  • eUICC on-board circuit
  • FIG 3 illustrates the structure of the software embedded on the terminal 3.1 in an exemplary embodiment of the invention.
  • the updating process typically consists in updating one of the components of this software.
  • This software typically includes a UNIX-based system such as the Android (trademark) system developed by Google (trademark).
  • the software comprises an application layer 3.2 comprising a set of applications 3.3, 3.4 and 3.5.
  • applications can be found, for example, an application for call tracking (English caller) or a short message management application (SMS dispatch).
  • This application environment uses UNIX system libraries such as the 3.8 radio management daemon named RILD (Radio Interface Layer Daemon) in Android.
  • the layer RIL Radio Interface Layer in English
  • modem baseband in English
  • a daemon is a system process that runs in the background, unlike processes running under the control of a user. This daemon uses a 3.9 radio management unit provided by the terminal manufacturer.
  • This manufacturer-supplied radio management unit uses UNIX kernel services such as the 3.10 Internet Protocol (IP) communication stack and the Point-to-Point Protocol (PPP) 3.11 communication driver. It can also make direct calls to the modem's management layer 3.12.
  • Figure 4 illustrates the high-level architecture of an exemplary embodiment of the invention.
  • FIG. 4 illustrates a terminal 4.1 having a subscriber identity module 4.2 consisting of a UICC card.
  • the terminal has an operating system 4.3 and a client unit of the subscriber identity module 4.4.
  • the subscriber identity module has a subscriber identity management application, for example a "USIM 3.1" application referenced 4.5, and an update application 4.9.
  • the 4.4 client unit is the counterpart of the update application 4.9. It can be a computer program specific to the operating system of the terminal ("system process"), or a higher level application, for example an Android application or iOS (trademark).
  • the 4.4 client unit may also be available as a daemon or service that starts when the device boots and has the necessary rights to communicate with the subscriber identity module update application. .
  • the client unit 4.4 of the terminal also has the ability to initiate an update of the operating system of the terminal, in receipt of a notification of the availability of an update transmitted by the update application 4.9 of the subscriber identity module.
  • the update application typically gets an update from a remote server, or locally.
  • the update application transmits an update request 4.8 to the client unit 4.4.
  • the latter then sends an update request 4.7 to the operating system 4.3.
  • the client unit loads the update and starts the update process.
  • the new commands brought by the update can then be used during 4.6 exchanges between the USIM 4.5 application and the 4.3 operating system. of the terminal.
  • Figure 5 illustrates the different steps of the update process in an exemplary embodiment of the invention.
  • an update test is triggered. This test can be triggered for example when the terminal is started, when a new subscriber identity module is inserted in the terminal, when a memory card is inserted in the terminal, in response to a request sent by a remote server or in response to a request from the terminal user.
  • the update application tests all or part of the commands required by the embedded applications in the subscriber identity module.
  • the test of a command is typically done by the call of the command and the analysis of a return code indicating a status of execution.
  • the update application checks the result of the tests. If all the commands tested returned the expected values, it means that the terminal implements all the functionalities required by the applications of the subscriber identity module. If not, if some orders are missing or not expected behavior, for example because the unit implementing them is not present in the required version, an update is triggered.
  • the subscriber identity module update application sends an identification request to the operating system that responds to it with information about the type of terminal and the system. of the latter. Typically this information also contains the version of the operating system as well as information and version numbers of the libraries, modules and / or applications installed.
  • step 5.4 may be integrated in the test step or carried out prior to it in a systematic manner.
  • the update application sends a remote server a request for analysis of the update required.
  • this request contains information relating to the type of terminal, the type of operating system and its version as well as the list of units, libraries and applications installed.
  • the query also contains the statuses returned by commands that are not implemented or that are not present in a good version.
  • the remote server analyzes the request and determines, based on this information, the update necessary for the proper functioning of the applications embedded in the subscriber identity module.
  • the server selects or generates an update for installation by the terminal operating system.
  • step 5.7 the update is sent by the remote server to the subscriber identity module.
  • the latter advantageously checks the integrity thereof, for example by checking a checksum such as a CRC (Cyclic Redondancy Code in English) or by checking a electronic signature in step 5.8.
  • a checksum such as a CRC (Cyclic Redondancy Code in English) or by checking a electronic signature in step 5.8.
  • the update application 4.9 ( Figure 4) subscriber identity module triggers the update of the software on the terminal by sending an update request to the system.
  • This query contains the update.
  • this request contains a pointer to the address of the non-volatile memory in which the update is stored.
  • the update is triggered by the registration of the update in a known memory area of the operating system. The latter periodically checks the availability of an update in this memory area and then automatically performs the update.
  • the verification of the update can be the result of a user action of the terminal or be programmed.
  • the update may concern only one of the layers of the software embedded on the terminal.
  • the operating system updates the software on the terminal by installing the update. If necessary, a reboot of the system is performed.
  • step 5.11 the applications embedded in the subscriber identity module can communicate with the terminal using the updated commands.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

The present invention concerns a method for updating the functions of the operating system of a terminal required for the correct operation of applications installed on a subscriber identity module for identifying subscribers to a telecommunications network operator. The subscriber identity module tests the commands. If certain commands do not function, the subscriber identity module sends information on the software installed on the terminal and on the non-functioning commands to a remote server. The latter analyses this information and provides a unit for updating the software on the terminal as required. This updating unit is received by the subscriber identity module, which triggers the updating of the terminal. The applications requiring these commands are thus made operational.

Description

Procédé de test et de mise à jour du système d'un terminal par un module d'identité de souscripteur et dispositifs associés  Method for testing and updating the system of a terminal by a subscriber identity module and associated devices
La présente invention concerne le domaine des télécommunications. Elle est notamment relative à un procédé de mise à jour des fonctionnalités du système d'exploitation d'un terminal requises pour le bon fonctionnement d'applications embarquées au sein d'un module d'identité de souscripteur après d'un opérateur de réseau de télécommunications. The present invention relates to the field of telecommunications. It relates in particular to a method for updating the functionalities of the operating system of a terminal required for the proper functioning of embedded applications within a subscriber identity module after a network operator. telecommunications.
Un module d'identité de souscripteur est un composant électronique destiné à stocker de manière sécurisée l'identité internationale d'un abonné à un réseau de téléphonie mobile. Ce module d'identité de souscripteur peut prendre la forme d'une carte à puce dédiée appelée UlCC (Universal Integrated Circuit Card en anglais), intégrant une application SIM et/ou USIM (Universal Subscriber Identity Module en anglais) dans le cadre du réseau UMTS (Universal Mobile Télécommunications System en anglais). Il peut également s'agir d'un module d'identité de souscripteur embarqué, directement intégré au sein du terminal de communication. Ce composant peut, par exemple, être soudé sur la carte mère du terminal, indépendamment du processeur principal. Il est alors dénommé eUICC (embedded Universal Integrated Circuit Card en anglais,). Un module d'identité de souscripteur répond généralement à la norme ISO/IEC 7816, aux normes Critères Communs, au standard Global Platform Card Spécification v 2.2.1 , et/ou au standard ETSI TS 103 383 v12.0.0. Ce module d'identité de souscripteur peut héberger des applications, parfois dénommées applets, pouvant s'exécuter en son sein et communiquer avec le terminal contenant le module d'identité de souscripteur et/ou à travers celui-ci avec des services distants. Les terminaux de communication dont il est question sont typiquement des terminaux de téléphonie mobile. Toutefois, les terminaux de communication intégrant un tel module d'identité de souscripteur sont aujourd'hui beaucoup plus divers. Il peut s'agir d'une tablette ou d'un ordinateur intégrant la capacité de connexion à un réseau de téléphonie mobile ou encore tout dispositif de traitement de l'information, par exemple dans le cadre d'un système de communication de machine à machine M2M (Machine to Machine en anglais). En effet, de tels dispositifs sont dotés d'une unité de téléphonie mobile leur permettant de communiquer avec d'autres dispositifs, typiquement des serveurs distants, ou d'autres dispositifs M2M. Par exemple, les automobiles peuvent aujourd'hui être dotées de tels dispositifs permettant de donner automatiquement l'alerte en cas de détection d'un accident. A subscriber identity module is an electronic component for securely storing the international identity of a subscriber to a mobile telephone network. This subscriber identity module can take the form of a dedicated smart card called UlCC (Universal Integrated Circuit Card in English), integrating a SIM application and / or USIM (Universal Subscriber Identity Module in English) within the framework of the network. UMTS (Universal Mobile Telecommunications System in English). It can also be an embedded subscriber identity module, directly integrated within the communication terminal. This component can, for example, be soldered to the terminal's motherboard, independently of the main processor. It is then called eUICC (embedded Universal Integrated Circuit Card in English,). A Subscriber Identity Module typically meets ISO / IEC 7816, Common Criteria, Global Platform Card Specification v 2.2.1, and / or ETSI TS 103 383 v12.0.0. This subscriber identity module can host applications, sometimes called applets, which can execute within it and communicate with the terminal containing the subscriber identity module and / or through it with remote services. The communication terminals in question are typically mobile telephone terminals. However, the communication terminals integrating such a subscriber identity module are today very much more diverse. It can be a tablet or a computer integrating the capacity of connection to a mobile telephone network or any information processing device, for example in the context of a communication system of a machine. M2M machine (machine to machine in English). Indeed, such devices are provided with a mobile telephone unit enabling them to communicate with other devices, typically remote servers, or other M2M devices. For example, automobiles can now be equipped with such devices to automatically give the alert in case of detection of an accident.
Les modules d'identité de souscripteur sont typiquement gérés par les opérateurs de réseaux de télécommunication. Leurs capacités de calcul augmentent régulièrement. Les opérateurs hébergent au sein de ces modules d'identité de souscripteur un nombre toujours plus grand d'applications. Ces applications peuvent être des applications de gestion de l'abonné, des applications bancaires ou encore des applications de surveillance du réseau qui permettent à l'opérateur de recueillir des données de couverture de son réseau par exemple. Certaines applications peuvent fonctionner de manière autonome au sein du module d'identité de souscripteur. D'autres requièrent au contraire la coopération du terminal pour leur fonctionnement. Cette coopération prend typiquement la forme d'échanges de messages APDU (Application Protocol Data Unit en anglais) entre l'application mise en oeuvre dans le module d'identité de souscripteur et des unités logicielles exécutées sur le terminal. Les unités logicielles ainsi sollicitées sur le terminal par le module d'identité de souscripteur sont situées sur l'une quelconque des couches logicielles du système mis en œuvre par le terminal. Par la suite, nous utilisons le terme « logiciel embarqué sur le terminal » pour désigner l'ensemble des programmes informatiques mis en œuvre par le terminal. Il peut s'agir d'une unité de type micro-logiciel (firmware en anglais), c'est-à-dire d'un ensemble d'instructions et de structures de données intégrées dans un composant électronique pour qu'il puisse fonctionner ou d'une unité de type logiciel composée d'un ensemble d'au moins un programme et de données pour le rendre opérationnel. Ainsi, le logiciel embarqué sur le terminal désigne le système d'exploitation du terminal, ses librairies, les éventuelles applications pouvant être installées « au-dessus » de ce système d'exploitation, et/ou les pilotes informatiques {drivers en anglais). Subscriber identity modules are typically managed by telecommunication network operators. Their computing abilities are steadily increasing. Operators host an ever-increasing number of applications within these subscriber identity modules. These applications can be subscriber management applications, banking applications or network monitoring applications that allow the operator to collect data coverage of his network for example. Some applications may operate autonomously within the subscriber identity module. Others require the cooperation of the terminal for their operation. This cooperation typically takes the form of APDU (Application Protocol Data Unit) message exchanges between the application implemented in the subscriber identity module and the software units executed on the terminal. The software units thus solicited on the terminal by the subscriber identity module are located on any of the software layers of the system implemented by the terminal. Subsequently, we use the term "embedded software on the terminal" to designate all the computer programs implemented by the terminal. It can be a micro-software type unit (firmware in English), that is, a set of instructions and data structures embedded in an electronic component for operation or a software-type unit consisting of a set of at least one program and to make it operational. Thus, the software embedded on the terminal designates the operating system of the terminal, its libraries, any applications that can be installed "above" this operating system, and / or computer drivers {drivers in English).
Par exemple, une application de surveillance de réseau du module d'identité de souscripteur peut collaborer avec les unités de gestion de l'interface radio du terminal pour acquérir les informations de puissance de signal associées aux cellules traversées. Ces informations sont transmises par le module d'identité de souscripteur à l'opérateur qui les analyse et peut ainsi surveiller le niveau de couverture de son réseau de télécommunications. For example, a subscriber identity module network monitoring application may collaborate with the terminal's radio interface management units to acquire the signal power information associated with the traversed cells. This information is transmitted by the subscriber identity module to the operator who analyzes it and can thus monitor the level of coverage of its telecommunications network.
La communication entre le module d'identité de souscripteur et le terminal est couverte par des normes et des standards, en particulier la norme ISO/IEC 7816-4 dans laquelle sont définis les messages ou commandes de type APDU. Sur cette base, la norme GSM 1 1 .14 définit un ensemble de commandes proactives STK (Sim TooIKit en anglais) qui désignent les actions contrôlées par le module d'identité de souscripteur et exécutées par le terminal. Cette norme a été remplacée par la norme 3GPP 31 .1 1 1 {3rd Génération Partnership Project en anglais) dans les réseaux de troisième génération. Logiquement, les applications développées pour être exécutées sur le module d'identité de souscripteur utilisent ces commandes STK pour leurs interactions avec le terminal. The communication between the subscriber identity module and the terminal is covered by standards and standards, in particular the ISO / IEC 7816-4 standard in which messages or commands of the APDU type are defined. On this basis, the GSM 1 1 .14 standard defines a set of proactive STK commands (Sim TooIKit in English) which designate the actions controlled by the subscriber identity module and executed by the terminal. This standard has been superseded by 3GPP 31 .1 1 1 {3rd Generation Partnership Project in English) in third generation networks. Logically, the applications developed to be executed on the subscriber identity module use these STK commands for their interactions with the terminal.
La configuration des systèmes des terminaux varie selon les constructeurs. Or il se trouve que les constructeurs de terminaux n'implémentent pas systématiquement l'ensemble des commandes définies dans les standards. De ce fait, les applications utilisant de telles commandes non implémentées sont non fonctionnelles dans de tels terminaux. L'opérateur ne peut donc pas déployer une application impliquant une interaction avec le terminal en étant sûr qu'elle fonctionne sur un ensemble de terminaux dont les configurations peuvent varier. Il est également possible que des commandes soient implémentées par une unité logicielle du terminal, mais que la version mise en œuvre par le terminal soit incompatible avec celle attendue par le module d'identité de souscripteur. The configuration of terminal systems varies by manufacturer. However, it turns out that the terminal manufacturers do not systematically implement all the commands defined in the standards. As a result, applications using such unimplemented commands are non-functional in such terminals. The operator therefore can not deploy an application involving an interaction with the terminal by being sure that it operates on a set of terminals whose configurations may vary. It is also possible that commands are implemented by a software unit of the terminal, but that the version implemented by the terminal is incompatible with that expected by the subscriber identity module.
La présente invention a pour but de résoudre les inconvénients précités. Il est proposé un procédé de test et de mise à jour du terminal. Le module d'identité de souscripteur teste les commandes, par exemple les commandes STK utilisées par les applications hébergées au sein de ce module d'identité de souscripteur. Il s'agit de tester soit toutes les commandes mises en œuvre par le module, soit uniquement une liste de commandes préalablement déterminée et enregistrée dans une mémoire non volatile du module d'identité de souscripteur. Si certaines commandes sont non fonctionnelles, par exemple parce qu'elles ne sont pas implémentées par le terminal, ou que le terminal ne dispose pas de l'interface correspondante, ou qu'il y a une incompatibilité entre la version de la commande générée par le module et la version attendue par le terminal, le module d'identité de souscripteur envoie des informations sur le logiciel installé sur le terminal et sur les commandes non fonctionnelles à un serveur distant. Celui-ci analyse ces informations et fournit une unité de mise à jour du logiciel du terminal au besoin. Cette unité de mise à jour, par la suite dénommée « mise à jour » est reçue par le module d'identité de souscripteur qui déclenche la mise à jour du terminal. Cette mise à jour apporte par exemple le support des commandes STK préalablement non fonctionnelles. Les applications nécessitant ces commandes sont ainsi rendues opérationnelles. The present invention aims to solve the aforementioned drawbacks. It is proposed a method of testing and updating the terminal. The subscriber identity module tests the commands, for example the STK commands used by the applications hosted within this subscriber identity module. It is a question of testing either all the commands implemented by the module, or only a list of commands previously determined and stored in a non-volatile memory of the subscriber identity module. If some commands are non-functional, for example because they are not implemented by the terminal, or if the terminal does not have the corresponding interface, or if there is an incompatibility between the version of the command generated by the the module and the version expected by the terminal, the subscriber identity module sends information on the software installed on the terminal and the non-functional commands to a remote server. It analyzes this information and provides a unit for updating the terminal software as needed. This update unit, hereinafter called "update" is received by the subscriber identity module that triggers the update of the terminal. This update brings for example the support of previously non-functional STK commands. Applications requiring these commands are thus made operational.
L'invention concerne un procédé de mise à jour des fonctionnalités du logiciel embarqué par un terminal de communication contenant un module d'identité de souscripteur hébergeant au moins une application nécessitant pour son exécution au moins une commande implémentée par ledit terminal, caractérisé en ce qu'il comprend par le module d'identité de souscripteur : une étape de test des commandes nécessaires à l'exécution de la au moins une application hébergée par ledit module d'identité de souscripteur ; et dans le cas où au moins une de ces commandes est manquante dans une version requise par les applications hébergées : une étape d'obtention d'une unité de mise à jour du logiciel embarqué par le terminal ; et en réponse à l'étape d'obtention, une étape de déclenchement de la mise à jour du logiciel embarqué par le terminal, ladite mise à jour étant faite par le terminal par l'installation (5.10) de ladite unité de mise à jour. Selon un mode particulier de réalisation de l'invention, lesdites commandes sont des commandes proactives STK. The invention relates to a method for updating the functionalities of the embedded software by a communication terminal containing a subscriber identity module hosting at least one application requiring for its execution at least one command implemented by said terminal, characterized in that understands by the subscriber identity module: a a step of testing the commands necessary to execute the at least one application hosted by said subscriber identity module; and in the case where at least one of these commands is missing in a version required by the hosted applications: a step of obtaining a unit for updating the software embedded by the terminal; and in response to the obtaining step, a step of triggering the update of the software embedded by the terminal, said update being made by the terminal by the installation (5.10) of said update unit . According to a particular embodiment of the invention, said commands are proactive commands STK.
Selon un mode particulier de réalisation de l'invention, ladite étape de test est déclenchée par le démarrage du terminal. According to a particular embodiment of the invention, said test step is triggered by the start of the terminal.
Selon un mode particulier de réalisation de l'invention, ladite étape de test est déclenchée par l'insertion dans le terminal d'un nouveau module d'identité de souscripteur ou par l'insertion dans le terminal d'une carte mémoire ou en réponse à une requête émise par un serveur distant ou par l'utilisateur, à destination du module d'identité de souscripteur. According to a particular embodiment of the invention, said test step is triggered by the insertion in the terminal of a new subscriber identity module or by insertion into the terminal of a memory card or in response a request sent by a remote server or by the user to the subscriber identity module.
Selon un mode particulier de réalisation de l'invention, ladite étape de déclenchement de la mise à jour du logiciel embarqué par le terminal déclenche la mise à jour par le terminal de l'une des couches dudit logiciel. According to a particular embodiment of the invention, said step of triggering the updating of the software embedded by the terminal triggers the updating by the terminal of one of the layers of said software.
Selon un mode particulier de réalisation de l'invention, l'étape d'obtention d'une unité de mise à jour comprend : une étape d'envoi d'une requête à un serveur distant, ladite requête comprenant au moins des résultats du test de la mise en œuvre par le terminal des commandes nécessaires à l'exécution des applications hébergées par le module d'identité de souscripteur ; et une étape de réception de ladite unité de mise à jour transmise par ledit serveur distant. Selon un mode particulier de réalisation de l'invention, lesdits résultats du test de la mise en œuvre des commandes comprennent un statut obtenu en réponse au test. According to a particular embodiment of the invention, the step of obtaining an update unit comprises: a step of sending a request to a remote server, said request comprising at least test results the implementation by the terminal of the commands necessary to run the applications hosted by the subscriber identity module; and a step of receiving said update unit transmitted by said remote server. According to a particular embodiment of the invention, said test results of the implementation of commands include a status obtained in response to the test.
Selon un mode particulier de réalisation de l'invention, le procédé comporte en outre : une étape d'obtention d'informations de configuration du terminal ; et où la requête à un serveur distant comprend également ces informations obtenues. According to a particular embodiment of the invention, the method further comprises: a step of obtaining terminal configuration information; and where the request to a remote server also includes this obtained information.
Selon un mode particulier de réalisation de l'invention, ladite unité de mise à jour est contenue dans une mémoire non volatile accessible par ledit module d'identité de souscripteur. Selon un mode particulier de réalisation de l'invention, ladite mémoire non volatile est contenue dans une carte mémoire insérée dans le terminal. According to a particular embodiment of the invention, said update unit is contained in a non-volatile memory accessible by said subscriber identity module. According to a particular embodiment of the invention, said non-volatile memory is contained in a memory card inserted in the terminal.
Selon un mode particulier de réalisation de l'invention, ladite mémoire non volatile est contenue dans une borne locale accessible par une communication radio en champ proche. According to a particular embodiment of the invention, said non-volatile memory is contained in a local terminal accessible by a near-field radio communication.
Selon un mode particulier de réalisation de l'invention, le procédé comporte en outre : une étape de vérification de l'intégrité de l'unité de mise à jour obtenue. According to a particular embodiment of the invention, the method further comprises: a step of verifying the integrity of the update unit obtained.
L'invention concerne également un module d'identité de souscripteur comportant pour la mise à jour des fonctionnalités du logiciel embarqué par un terminal de communication contenant ledit module d'identité de souscripteur: au moins une application nécessitant pour son exécution au moins une commande implémentée par ledit terminal, qui comprend : des moyens de test de la mise en œuvre par le terminal des commandes nécessaires à l'exécution des applications hébergées par le module d'identité de souscripteur ; des moyens d'obtention d'une unité de mise à jour du logiciel embarqué par le terminal ; et des moyens de déclenchement de la mise à jour du logiciel embarqué par le terminal, ladite mise à jour étant faite par le terminal par l'installation de ladite unité de mise à jour. The invention also relates to a subscriber identity module comprising for updating the functionalities of the embedded software by a communication terminal containing said subscriber identity module: at least one application requiring for its execution at least one implemented command by said terminal, which comprises: means for testing the implementation by the terminal of the commands necessary for the execution of the applications hosted by the subscriber identity module; of the means for obtaining an on-board software update unit by the terminal; and means for triggering the update of the software embedded by the terminal, said update being made by the terminal by the installation of said update unit.
L'invention concerne également un terminal de communication caractérisé en ce qu'il comporte un module d'identité de souscripteur selon l'invention. L'invention concerne également un programme d'ordinateur comprenant des instructions adaptées à la mise en œuvre de chacune des étapes du procédé selon l'invention lorsque ledit programme est exécuté sur un ordinateur. L'invention concerne également un moyen de stockage d'informations, amovible ou non, partiellement ou totalement lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution de chacune des étapes du procédé selon l'invention. The invention also relates to a communication terminal characterized in that it comprises a subscriber identity module according to the invention. The invention also relates to a computer program comprising instructions adapted to the implementation of each of the steps of the method according to the invention when said program is executed on a computer. The invention also relates to an information storage means, removable or not, partially or completely readable by a computer or a microprocessor comprising code instructions of a computer program for executing each of the steps of the method according to the invention. the invention.
Dans un mode particulier de réalisation, les différentes étapes du procédé précité sont déterminées par des instructions de programmes d'ordinateurs. En conséquence, l'invention vise aussi un programme d'ordinateur sur un support d'informations, ce programme étant susceptible d'être mis en œuvre par un microprocesseur, ce programme comprenant des instructions adaptées à la mise en œuvre des étapes du procédé tel que mentionné ci-dessus. Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable. In a particular embodiment, the various steps of the aforementioned method are determined by instructions of computer programs. Consequently, the invention also relates to a computer program on an information medium, this program being capable of being implemented by a microprocessor, this program comprising instructions adapted to the implementation of the steps of the method such as than mentioned above. This program can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any other desirable form.
L'invention vise aussi un support d'informations lisible par un microprocesseur, et comprenant des instructions d'un programme d'ordinateur tel que mentionné ci-dessus. The invention is also directed to a microprocessor-readable information medium, and including instructions of a computer program as mentioned above.
Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comprendre un moyen de stockage, tel qu'une ROM, par exemple une ROM de microcircuit, ou encore un moyen d'enregistrement magnétique, par exemple un disque dur, ou encore une mémoire flash. The information carrier may be any entity or device capable of storing the program. For example, the medium may comprise storage means, such as a ROM, for example a microcircuit ROM, or a magnetic recording means, for example a hard disk, or a flash memory.
D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur une plateforme de stockage d'un réseau de type Internet. Alternativement, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question. On the other hand, the information medium may be a transmissible medium such as an electrical or optical signal, which may be conveyed via an electrical or optical cable, by radio or by other means. The program according to the invention may in particular be downloaded to a storage platform of an Internet type network. Alternatively, the information carrier may be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the method in question.
Le support d'informations et le programme d'ordinateur précités présentent des caractéristiques et avantages analogues au procédé qu'ils mettent en œuvre. The aforementioned information carrier and computer program have characteristics and advantages similar to the method they implement.
D'autres particularités et avantages de l'invention apparaîtront encore dans la description ci-après. Other features and advantages of the invention will become apparent in the description below.
Aux dessins annexés, donnés à titre d'exemples non limitatifs :  In the accompanying drawings, given as non-limiting examples:
- la Figure 1 décrit l'architecture d'un module d'identité de souscripteur selon un exemple de réalisation de l'invention ; - la Figure 2 décrit un exemple de carte UICC ; - Figure 1 describes the architecture of a subscriber identity module according to an exemplary embodiment of the invention; - Figure 2 describes an example of UICC card;
- la Figure 3 décrit un exemple d'architecture logicielle d'un terminal ;  - Figure 3 describes an example of software architecture of a terminal;
- la Figure 4 décrit les interactions générales entre le terminal et un module d'identité de souscripteur dans un exemple de réalisation de l'invention ;  FIG. 4 describes the general interactions between the terminal and a subscriber identity module in an exemplary embodiment of the invention;
- la Figure 5 décrit les différentes étapes du procédé de test et de mise à jour selon un exemple de réalisation de l'invention. L'invention propose une solution technique visant à identifier les commandes, ou plus généralement les unités logicielles manquantes sur un terminal pour permettre la bonne exécution d'une ou plusieurs applications embarquées au sein d'un module d'identité de souscripteur sur le terminal. Elle vise également à installer sur ce terminal ces commandes ou ces unités manquantes. Elle permet donc une mise à jour du logiciel embarqué sur le terminal du terminal.  - Figure 5 describes the different steps of the test method and update according to an exemplary embodiment of the invention. The invention proposes a technical solution to identify the commands, or more generally the missing software units on a terminal to allow the proper execution of one or more embedded applications within a subscriber identity module on the terminal. It also aims to install on this terminal these commands or missing units. It therefore allows an update of the embedded software on the terminal terminal.
Un exemple d'application embarquée au sein d'un module d'identité de souscripteur est proposé par la suite. Un opérateur de télécommunications peut vouloir accéder aux mesures de puissance faites par un terminal pour obtenir des données relatives à la couverture de son réseau de télécommunications. Pour cela, le réseau par exemple de type 2G, 3G ou LTE est constitué d'un grand nombre de cellules qui fournissent une puissance dont la valeur peut varier au cours du temps. En effet, en zone urbaine, il existe des zones de couvertures dans lesquelles il n'est pas possible de passer d'appel, et d'autres zones dans lesquelles la réception est excellente. La qualité de ce maillage peut dépendre la technologie 2G, 3G ou LTE utilisée. A proximité de certaines cellules, l'operateur pourrait détecter un nombre important de communications interrompues et de pertes de la connectivité avec des terminaux mobiles. Puisque les communications interrompues et de pertes de la connectivité avec des terminaux mobiles génèrent une augmentation du trafic, ceci risque d'engendrer un encombrement du réseau. Pour optimiser son réseau de télécommunication, l'opérateur peut changer les caractéristiques des cellules, par exemple augmenter leur puissance, mais aussi en ajouter de nouvelles. Pour obtenir de telles mesures de puissance, il peut soit envoyer des techniciens avec des appareils de mesures, soit utiliser les nombreux téléphones de ses abonnés pour faire automatiquement des mesures. An example of an embedded application within a subscriber identity module is proposed later. A telecommunications operator may wish to access the power measurements made by a terminal to obtain data relating to the coverage of its telecommunications network. For this, the network for example type 2G, 3G or LTE consists of a large number of cells that provide a power whose value may vary over time. Indeed, in urban areas, there are areas of cover in which it is not possible to call, and other areas in which the reception is excellent. The quality of this mesh may depend on the 2G, 3G or LTE technology used. Near certain cells, the operator could detect a large number of communications interrupted and loss of connectivity with mobile terminals. Since interrupted communications and loss of connectivity to mobile devices cause traffic to increase, this can lead to network congestion. To optimize its telecommunication network, the operator can change the characteristics of the cells, for example to increase their power, but also to add new ones. To obtain such power measurements, it can either send technicians with measuring devices, or use the many phones of its subscribers to make measurements automatically.
Pour mettre en œuvre cette dernière solution, l'opérateur installe une application sur chacune des cartes UICC dont il est le propriétaire. Cette application demande les valeurs des mesures de puissance au terminal, fait une synthèse et transmet ces données à un serveur distant de l'opérateur. Ainsi, si une station de base a un problème ou s'il y a des perturbations, l'operateur peut en avoir connaissance en temps réel. To implement this last solution, the operator installs an application on each of the UICC cards he owns. This application requests the power measurement values from the terminal, synthesizes and transmits this data to a server remote from the operator. Thus, if a base station has a problem or if there are disturbances, the operator can know about it in real time.
Cet exemple nécessite donc la mise en œuvre d'une application par un module d'identité de souscripteur qui interagit avec le terminal qui dispose de fonctionnalités complémentaires, en l'occurrence des moyens d'évaluation de la puissance de cellules. Or, les terminaux n'implémentent pas nécessairement les fonctionnalités nécessaires à la mise en œuvre d'une telle application. This example therefore requires the implementation of an application by a subscriber identity module that interacts with the terminal which has complementary functionalities, in this case means for evaluating the power of cells. However, the terminals do not necessarily implement the functionalities necessary for the implementation of such an application.
D'autres fonctionnalités qui ne sont pas systématiquement implémentées dans les terminaux sont par exemple les commandes BIP (Bearer Indépendant Protocol en anglais) permettant d'ouvrir des communications de données fondées sur le protocole de transport CAT TP (Card Application Tooikit Transport Protocol), par exemple défini par la norme ETSI TS 102 127 v6.12.0 ou l'amendement B développé par GlobalPIatform (GlobalPIatform Card Spécification v 2.2, Amendment B v1 .1 .1 ). D'une manière générale, l'invention fonctionne de la manière suivante.Other functionalities that are not systematically implemented in the terminals are for example the BIP (Bearer Independent Protocol) commands for opening data communications based on the CAT Transport Protocol (Card Application Tooikit Transport Protocol), for example, defined by ETSI TS 102 127 v6.12.0 or amendment B developed by GlobalPIatform (GlobalPIatform Card Specification v 2.2, Amendment B v1 .1 .1). In general, the invention operates in the following manner.
Des applications sont préinstallées au sein du module d'identité de souscripteur. Lors du démarrage du terminal, ces applications interagissent avec le terminal. Ces interactions utilisent typiquement le protocole de communication APDU défini par la norme ISO/SEC 7816-4. Cette interaction consiste typiquement en une phase de test de tout ou partie des commandes utilisées par les applications embarquées au sein du module d'identité de souscripteur. Les applications embarquées sont parfois dénommées « applets ». Cette phase de test permet d'obtenir un statut associé à chaque commande testée. La commande peut être opérationnelle, manquante, ou présente dans le terminal mais pas sous la forme requise par l'application du module d'identité de souscripteur. Ce dernier cas peut se produire, par exemple, lorsque le terminal possède bien l'unité logicielle requise mais pas dans la version attendue par l'application du module. En effet, la commande peut avoir été mise à jour dans une nouvelle version intégrant un comportement requis par l'application embarquée qui n'était pas implémenté dans les versions précédentes. Applications are preinstalled within the subscriber identity module. When starting the terminal, these applications interact with the terminal. These interactions typically use the APDU communication protocol defined by ISO / SEC 7816-4. This interaction typically consists of a test phase of all or some of the commands used by the embedded applications within the subscriber identity module. Embedded applications are sometimes called "applets". This test phase makes it possible to obtain a status associated with each command tested. The command may be operational, missing, or present in the terminal but not in the form required by the application of the subscriber identity module. This last case can occur, for example, when the terminal does have the required software unit but not in the version expected by the application of the module. Indeed, the command may have been updated in a new version incorporating a behavior required by the embedded application that was not implemented in previous versions.
Avantageusement, lors de ces tests initiaux, le module d'identité de souscripteur obtient également, en réponse à une requête, des informations relatives au logiciel embarqué sur le terminal. Ces informations contiennent typiquement le type de système d'exploitation, par exemple Android (marque déposée) ou iOS ainsi que la version du système. Elles peuvent également contenir une liste d'unités logicielles, tel qu'un ensemble de librairies, présentes avec leur numéro de version. Elles peuvent également contenir d'autres informations selon les cas. Ces informations sont transmises par une unité du terminal et reçues par une application embarquée du module d'identité de souscripteur. L'application embarquée est une application dédiée à la mise à jour du système du terminal. L'unité du terminal peut être un programme informatique dédié appartenant à la « couche système » du système du terminal, ou encore une application logicielle de plus haut niveau. Lorsque le module d'identité de souscripteur reçoit les informations demandées, celles-ci sont envoyées à un serveur distant. Les informations envoyées comportent typiquement au moins les résultats du test des commandes utilisées par les applications embarquées sur le module d'identité de souscripteur. Avantageusement, elles contiennent également les informations obtenues qui concernent le logiciel embarqué sur le terminal. Le serveur distant analyse les données reçues pour identifier les fonctionnalités manquantes ou devant être mises à jour sur le terminal afin que les applications embarquées sur le module d'identité de souscripteur puissent fonctionner correctement. Par exemple, le serveur distant peut contenir une table d'association contenant pour chaque application embarquée les configurations minimales requises pour un fonctionnement correct de l'application pour différents systèmes d'exploitation. Cette connaissance peut être volumineuse et, de plus, elle évolue dans le temps. Il est donc particulièrement avantageux qu'elle soit regroupée sur le serveur distant où elle est centralisée et peut être mise à jour facilement pour suivre l'évolution des terminaux. Advantageously, during these initial tests, the subscriber identity module also obtains, in response to a request, information relating to the software embedded on the terminal. This information typically contains the type of operating system, for example Android (registered trademark) or iOS as well as the system version. They can also contain a list of software units, such as a set of libraries, present with their version number. They may also contain other information depending on the case. This information is transmitted by a unit of the terminal and received by an embedded application of the subscriber identity module. The embedded application is an application dedicated to updating the terminal system. The terminal unit may be a dedicated computer program belonging to the "system layer" of the terminal system, or a higher level software application. When the subscriber identity module receives the requested information, it is sent to a remote server. The information sent typically includes at least the results of the test of the commands used by embedded applications on the subscriber identity module. Advantageously, they also contain the information obtained concerning the software embedded on the terminal. The remote server analyzes the received data to identify missing or updated features on the terminal so that applications embedded on the subscriber identity module can function properly. For example, the remote server may contain an association table containing for each embedded application the minimum configurations required for proper operation of the application for different operating systems. This knowledge can be voluminous and, moreover, it evolves over time. It is therefore particularly advantageous for it to be grouped on the remote server where it is centralized and can be easily updated to follow the evolution of the terminals.
Le serveur distant prépare alors le ou les modules manquants, par exemple sous la forme d'une mise à jour du système du terminal. Cette mise à jour est envoyée au module d'identité de souscripteur en réponse à son message contenant les informations sur le logiciel embarqué sur le terminal. Cette mise à jour peut prendre la forme d'une unité logicielle de mise à jour {patch en anglais), de librairies système, ou encore d'une application logicielle pouvant être exécutée par le système d'exploitation du terminal. Comme toute unité logicielle, la mise à jour comprend un cœur qui implémente la ou les fonctions demandées, et des interfaces de programmation, appelées API (Application Programmation Interface en anglais) qui lui permettent de communiquer. Ces interfaces peuvent être destinées à la communication avec des couches dites basses du système d'exploitation, par exemple les couches « micro-programme » ou « système », en particulier lorsque la mise à jour implémente une adaptation des pilotes des protocoles ISO et SWP (Single Wire Protocol an anglais). Elles peuvent également être destinées à la communication avec des couches supérieures, par exemple les couches caractérisant l'ergonomie ou le design fonctionnel (dénommé interface homme machine), et qui favorisent les interactions avec l'utilisateur. Les interfaces peuvent également être destinées à des couches intermédiaires (parfois dénommées couches « système ») permettant de modifier le cœur du système d'exploitation ou de lui rajouter des fonctionnalités. Par exemple, une interface de programmation de l'unité de mise à jour peut correspondre à une fonctionnalité que l'on souhaite ajouter, supprimer ou modifier dans le logiciel embarqué sur le terminal . Cette fonctionnalité est typiquement fournie sous la forme d'une librairie partagée, d'un module noyau ou d'un service. The remote server then prepares the missing module (s), for example in the form of an update of the terminal system. This update is sent to the subscriber identity module in response to its message containing the information on the software embedded on the terminal. This update can take the form of an update software unit {patch in English), system libraries, or a software application that can be executed by the operating system of the terminal. Like any software unit, the update includes a core that implements the requested function or functions, and programming interfaces, called APIs (Application Programming Interface) that allow it to communicate. These interfaces can be intended for communication with so-called low layers of the operating system, for example the "micro-program" or "system" layers, particularly when the update implements an adaptation of the ISO and SWP protocol drivers. (Single Wire Protocol English). They can also be intended for communication with upper layers, for example the layers characterizing ergonomics or functional design (called the human machine interface), and which promote interaction with the user. The interfaces can also be intended for intermediate layers (sometimes called "system" layers) for modifying the core of the operating system or adding functionalities to it. For example, a programming interface of the update unit may correspond to a feature that one wishes to add, delete or modify in the software embedded on the terminal. This feature is typically provided as a shared library, kernel module, or service.
La transmission de la mise à jour par le serveur distant au module d'identité de souscripteur peut être protégée de diverses façons. Selon un premier mode de réalisation, la transmission est protégée contre des erreurs de transmissions par une somme de contrôle, telle qu'un code de redondance cyclique (CRC) qui est vérifié par le module d'identité de souscripteur après réception de la donnée et de la valeur attendue du code de redondance. Selon un autre mode de réalisation, la mise à jour est signée électroniquement par l'opérateur à l'aide d'un certificat numérique. L'authenticité de la signature est alors vérifiée par le module d'identité de souscripteur. Dans encore un autre mode de réalisation, la mise à jour est chiffrée à l'aide d'un certificat numérique et déchiffrée par le module d'identité de souscripteur à l'aide d'une clef cryptographique. Selon un mode de réalisation alternatif de l'invention, la mise à jour peut être obtenue localement. Par exemple, elle peut être disponible depuis une carte mémoire amovible insérée dans le terminal ou encore depuis une borne locale accessible par une communication radio en champ proche du type NFC {Near field Communication en anglais). Ce cas de figure correspond, par exemple, à un scénario au cours duquel un utilisateur apporte son terminal en boutique, chez son opérateur, pour effectuer la mise à jour. La mise à jour peut également être disponible sur un réseau local accessible au terminal, par exemple dans le cas d'une mise à jour d'une flotte de terminaux au sein d'une entreprise. Le module d'identité de souscripteur doit alors intégrer une unité d'analyse lui permettant de choisir la mise à jour en fonction des caractéristiques techniques du terminal. Toutefois, cette unité reste nettement plus simple que celle permettant au serveur distant d'analyser les informations reçues et de générer une mise-à-jour pour un terminal donné. En effet, la mise à jour disponible localement est générée préalablement et mise à disposition localement du terminal qui le requiert. Par exemple, un technicien en boutique va choisir une carte mémoire amovible contenant la mise à jour correspondant au terminal présenté par le client. Cette unité d'analyse embarquée dans le module d'identité de souscripteur peut donc se contenter de vérifier éventuellement l'intégrité de la mise à jour et vérifier la correspondance avec les fonctionnalités techniques du terminal et de son logiciel embarqué. Un mode de réalisation particulier de l'invention va maintenant être décrit de façon détaillée en rapport avec les figures 1 à 5. The transmission of the update by the remote server to the subscriber identity module can be protected in various ways. According to a first embodiment, the transmission is protected against transmission errors by a checksum, such as a cyclic redundancy code (CRC) which is verified by the subscriber identity module after receiving the data and the expected value of the redundancy code. According to another embodiment, the update is signed electronically by the operator using a digital certificate. The authenticity of the signature is then verified by the subscriber identity module. In yet another embodiment, the update is encrypted using a digital certificate and decrypted by the subscriber identity module using a cryptographic key. According to an alternative embodiment of the invention, the update can be obtained locally. For example, it may be available from a removable memory card inserted in the terminal or from a local terminal accessible by near field radio communication NFC (Near Field Communication in English). This scenario corresponds, for example, to a scenario in which a user brings his terminal in shop, at his operator, to perform the update. The update may also be available on a local network accessible to the terminal, for example in the case of an update of a fleet of terminals within a company. The subscriber identity module must then integrate an analysis unit allowing it to choose the update according to the technical characteristics of the terminal. However, this unit remains much simpler than that allowing the remote server to analyze the received information and generate an update for a given terminal. In fact, the update available locally is generated beforehand and made available locally of the terminal that requires it. For example, a technician in the shop will choose a removable memory card containing the update corresponding to the terminal presented by the customer. This analysis unit embedded in the subscriber identity module can therefore simply check the integrity of the update and check the correspondence with the technical features of the terminal and its embedded software. A particular embodiment of the invention will now be described in detail with reference to FIGS. 1 to 5.
La Figure 1 représente schématiquement un exemple de module d'identité de souscripteur 40 pouvant être utilisé dans la présente invention. Le module d'identité de souscripteur 40 comprend un microprocesseur 10, auquel est associée d'une part une mémoire vive 60 (par exemple du type RAM), au moyen d'un bus de communication 70, et d'autre part une mémoire non volatile 20 (par exemple du type ROM, EEPROM ou Flash), par exemple à travers un bus de communication 50. Figure 1 schematically shows an example of subscriber identity module 40 that can be used in the present invention. The subscriber identity module 40 comprises a microprocessor 10, to which is associated on the one hand a random access memory 60 (for example of the RAM type), by means of a communication bus 70, and on the other hand a memory volatile 20 (for example of the ROM, EEPROM or Flash type), for example through a communication bus 50.
Le module d'identité de souscripteur 40, et précisément le microprocesseur 10 qu'il incorpore, peuvent échanger des données avec des dispositifs extérieurs au moyen d'une interface de communication 30. On a schématiquement représenté sur la Figure 1 la transmission d'une donnée d'entrée X reçue d'un dispositif extérieur (non représenté) et transmise de l'interface de communication 30 au microprocesseur 10. De manière similaire, on a représenté la transmission d'une donnée de sortie Y du microprocesseur 10 vers l'interface de communication 30 à destination d'un dispositif extérieur. Cette donnée de sortie Y est issue d'un traitement de données par le microprocesseur 10, généralement sur la donnée d'entrée X à l'aide d'une donnée secrète 80 interne au système, par exemple une clé privée. The subscriber identity module 40, and precisely the microprocessor 10 that it incorporates, can exchange data with external devices by means of a communication interface 30. FIG. input data X received from an external device (not shown) and transmitted from the communication interface 30 to the microprocessor 10. Similarly, there is shown the transmission of an output data Y of the microprocessor 10 to the communication interface 30 to an external device. This output data Y is derived from a data processing by the microprocessor 10, generally on the input data X using a secret datum 80 internal to the system, for example a private key.
Bien que, pour l'illustration, les données d'entrée et les données de sortie figurent sur deux flèches différentes, les moyens physiques qui permettent la communication entre le microprocesseur 10 et l'interface 30 pourront être réalisés par des moyens uniques, par exemple un port de communication série ou un bus. Although, for the illustration, the input data and the output data appear on two different arrows, the physical means which allow the communication between the microprocessor 10 and the interface 30 may be made by unique means, for example a serial communication port or a bus.
Le microprocesseur 10 est apte à exécuter un logiciel (ou programme d'ordinateur) qui permet au module d'identité de souscripteur 40 d'exécuter un procédé conforme à l'invention dont des exemples sont donnés dans la suite. Le logiciel est composé d'une série d'instructions de commande du microprocesseur 10 qui sont par exemple stockées dans la mémoire 20. The microprocessor 10 is capable of executing a software (or computer program) that enables the subscriber identity module 40 to execute a method according to the invention, examples of which are given below. The software is composed of a series of instructions for controlling the microprocessor 10 which are for example stored in the memory 20.
En variante, l'ensemble microprocesseur 10 - mémoire non-volatile 20 - mémoire vive 60 peut être remplacé par un circuit à application spécifique qui comprend alors des moyens de mise en œuvre des différentes étapes du procédé de traitement de données. Alternatively, the microprocessor assembly 10 - non-volatile memory 20 - RAM 60 may be replaced by a specific application circuit which then comprises means for implementing the various steps of the data processing method.
La Figure 2 représente une carte à microcircuit qui constitue un exemple d'implémentation du module d'identité de souscripteur selon un exemple de réalisation de l'invention tel que représenté à la Figure 1. Cette carte est typiquement une carte UlCC utilisée dans un téléphone mobile. L'interface de communication 30 est dans ce cas réalisée au moyen des contacts de la carte à microcircuit. La carte à microcircuit incorpore un microprocesseur 10, une mémoire vive 60 et une mémoire non volatile 20 comme cela est représenté sur la Figure 1. Cette carte à microcircuit est par exemple conforme à la norme ISO/IEC 7816 et munie d'un microcontrôleur sécurisé qui regroupe le microprocesseur (ou CPU) 20 et la mémoire vive 60. II peut également s'agir d'un circuit embarqué, dénommé eUICC qui est, par exemple soudé au téléphone mobile. FIG. 2 represents a microcircuit card which constitutes an example of implementation of the subscriber identity module according to an exemplary embodiment of the invention as represented in FIG. 1. This card is typically an UlCC card used in a telephone. mobile. The communication interface 30 is in this case made by means of the contacts of the microcircuit card. The microcircuit card incorporates a microprocessor 10, a random access memory 60 and a non-volatile memory 20 as shown in FIG. This microcircuit card is for example in accordance with the ISO / IEC 7816 standard and provided with a secure microcontroller which includes the microprocessor (or CPU) 20 and the random access memory 60. It can also be an on-board circuit, called eUICC which is, for example welded to the mobile phone.
La Figure 3 illustre la structure du logiciel embarqué sur le terminal 3.1 dans un exemple de réalisation de l'invention. Le procédé de mise à jour consiste typiquement à mettre à jour l'un des composants de ce logiciel. Ce logiciel comprend typiquement un système basé sur UNIX tel que le système Android (marque déposée) développé par la société Google (marque déposée). Figure 3 illustrates the structure of the software embedded on the terminal 3.1 in an exemplary embodiment of the invention. The updating process typically consists in updating one of the components of this software. This software typically includes a UNIX-based system such as the Android (trademark) system developed by Google (trademark).
Le logiciel comporte une couche applicative 3.2 comportant un ensemble d'applications 3.3, 3.4 et 3.5. Parmi ces applications on peut trouver, par exemple, une application pour le suivi d'appel (call tracker en anglais) ou une application de gestion des messages courts (SMS dispatch en anglais). The software comprises an application layer 3.2 comprising a set of applications 3.3, 3.4 and 3.5. Among these applications can be found, for example, an application for call tracking (English caller) or a short message management application (SMS dispatch).
Ces applications utilisent les services d'un environnement applicatif, comportant typiquement une unité de téléphonie 3.6, par exemple localisée dans un répertoire « /java/android/telephony » du système Android. Cette unité de téléphonie comporte elle-même une unité d'interface radio 3.7 RIL (Radio Interface layer en anglais) , par exemple localisée dans le répertoire « /java/android/telephony/gsm » du système Android. These applications use the services of an application environment, typically having a telephony unit 3.6, for example located in a directory "/ java / android / telephony" of the Android system. This telephony unit itself has a 3.7 Radio Interface Layer (RIL) radio interface unit, for example located in the "/ java / android / telephony / gsm" directory of the Android system.
Cet environnement applicatif utilise des librairies système UNIX telles que le démon de gestion radio 3.8 nommé RILD (Radio Interface Layer Daemon en anglais) dans Android. La couche RIL (Radio Interface Layer en anglais) fournit une couche abstraite entre les services de téléphonie et la couche matérielle radio caractérisée par une interface de communication dénommée modem (baseband en anglais). Un démon est un processus système qui s'exécute en arrière-plan, à la différence des processus s'exécutant sous le contrôle d'un utilisateur. Ce démon utilise une unité de gestion radio 3.9 fournie par le fabricant du terminal. This application environment uses UNIX system libraries such as the 3.8 radio management daemon named RILD (Radio Interface Layer Daemon) in Android. The layer RIL (Radio Interface Layer in English) provides an abstract layer between the telephony services and the radio hardware layer characterized by a communication interface called modem (baseband in English). A daemon is a system process that runs in the background, unlike processes running under the control of a user. This daemon uses a 3.9 radio management unit provided by the terminal manufacturer.
Cette unité de gestion radio fournie par le fabricant utilise des services du noyau UNIX tels que la pile de communication IP (Internet Protocol en anglais) 3.10 et le pilote de communication point à point PPP {Point to Point Protocol en anglais) 3.11. Il peut également faire des appels directs à la couche de gestion 3.12 du modem. La Figure 4 illustre l'architecture haut-niveau d'un exemple de réalisation de l'invention. This manufacturer-supplied radio management unit uses UNIX kernel services such as the 3.10 Internet Protocol (IP) communication stack and the Point-to-Point Protocol (PPP) 3.11 communication driver. It can also make direct calls to the modem's management layer 3.12. Figure 4 illustrates the high-level architecture of an exemplary embodiment of the invention.
La Figure 4 illustre un terminal 4.1 disposant d'un module d'identité de souscripteur 4.2 constitué d'une carte UICC. Le terminal dispose d'un système d'exploitation 4.3 et d'une unité cliente du module d'identité de souscripteur 4.4. Le module d'identité de souscripteur dispose d'une application de gestion de l'identité de l'abonné, par exemple une application « USIM 3.1 » référencée 4.5, et d'une une application de mise à jour 4.9. L'unité cliente 4.4 est le pendant de l'application de mise à jour 4.9. Ce peut être un programme informatique propre au système d'exploitation du terminal (« processus système »), ou une application de plus haut niveau, par exemple une application Android ou iOS (marque déposée). L'unité cliente 4.4 peut également être disponible sous la forme d'un démon ou d'un service qui se lance au démarrage du terminal et possède les droits nécessaires pour communiquer avec l'application de mise à jour du module d'identité de souscripteur. L'unité cliente 4.4 du terminal possède également les capacités de lancer une mise à jour du système d'exploitation du terminal, en réception à une notification de la disponibilité d'une mise à jour transmise par l'application de mise à jour 4.9 du module d'identité de souscripteur. Lors d'un fonctionnement de mise à jour, l'application de mise à jour obtient une mise à jour typiquement depuis un serveur distant, ou encore localement. L'application de mise à jour transmet une requête de mise à jour 4.8 à l'unité cliente 4.4. Cette dernière émet alors une requête de mise à jour 4.7 auprès du système d'exploitation 4.3. L'unité cliente charge la mise à jour et lance le processus de mise à jour.. Les nouvelles commandes apportées par la mise à jour peuvent ensuite être utilisées lors d'échanges 4.6 entre l'application USIM 4.5 et le système d'exploitation 4.3 du terminal. La Figure 5 illustre les différentes étapes du procédé de mise à jour dans un exemple de réalisation de l'invention. Figure 4 illustrates a terminal 4.1 having a subscriber identity module 4.2 consisting of a UICC card. The terminal has an operating system 4.3 and a client unit of the subscriber identity module 4.4. The subscriber identity module has a subscriber identity management application, for example a "USIM 3.1" application referenced 4.5, and an update application 4.9. The 4.4 client unit is the counterpart of the update application 4.9. It can be a computer program specific to the operating system of the terminal ("system process"), or a higher level application, for example an Android application or iOS (trademark). The 4.4 client unit may also be available as a daemon or service that starts when the device boots and has the necessary rights to communicate with the subscriber identity module update application. . The client unit 4.4 of the terminal also has the ability to initiate an update of the operating system of the terminal, in receipt of a notification of the availability of an update transmitted by the update application 4.9 of the subscriber identity module. During an update operation, the update application typically gets an update from a remote server, or locally. The update application transmits an update request 4.8 to the client unit 4.4. The latter then sends an update request 4.7 to the operating system 4.3. The client unit loads the update and starts the update process. The new commands brought by the update can then be used during 4.6 exchanges between the USIM 4.5 application and the 4.3 operating system. of the terminal. Figure 5 illustrates the different steps of the update process in an exemplary embodiment of the invention.
Lors d'une première étape 5.1 , un test de mise à jour est déclenché. Ce test peut être par exemple déclenché au démarrage du terminal, lorsqu'un nouveau module d'identité de souscripteur est inséré dans le terminal, lorsqu'une carte mémoire est insérée dans le terminal, en réponse à une requête émise par un serveur distant ou en réponse à une requête de l'utilisateur du terminal. In a first step 5.1, an update test is triggered. This test can be triggered for example when the terminal is started, when a new subscriber identity module is inserted in the terminal, when a memory card is inserted in the terminal, in response to a request sent by a remote server or in response to a request from the terminal user.
Lors d'une étape 5.2, l'application de mise à jour teste tout ou partie des commandes requises par les applications embarquées dans le module d'identité de souscripteur. Le test d'une commande s'effectue typiquement par l'appel de la commande et l'analyse d'un code de retour indiquant un statut d'exécution. In a step 5.2, the update application tests all or part of the commands required by the embedded applications in the subscriber identity module. The test of a command is typically done by the call of the command and the analysis of a return code indicating a status of execution.
Lors d'une étape 5.3, l'application de mise à jour vérifie le résultat des tests. Si toutes les commandes testées ont retournées les valeurs attendues, cela signifie que le terminal implémente l'ensemble des fonctionnalités requises par les applications du module d'identité de souscripteur. Dans le cas contraire, si certaines commandes sont manquantes ou qu'elles n'ont pas le comportement attendu, par exemple car l'unité les implémentant n'est pas présente dans la version requise, une mise à jour est déclenchée. In a step 5.3, the update application checks the result of the tests. If all the commands tested returned the expected values, it means that the terminal implements all the functionalities required by the applications of the subscriber identity module. If not, if some orders are missing or not expected behavior, for example because the unit implementing them is not present in the required version, an update is triggered.
Dans ce cas, lors d'une étape 5.4, l'application de mise à jour du module d'identité de souscripteur envoie une requête d'identification au système d'exploitation qui lui répond avec des informations relatives au type de terminal et au système d'exploitation de ce dernier. Typiquement ces informations contiennent également la version du système d'exploitation ainsi que des informations et numéros de versions des librairies, modules et/ou applications installées. In this case, in a step 5.4, the subscriber identity module update application sends an identification request to the operating system that responds to it with information about the type of terminal and the system. of the latter. Typically this information also contains the version of the operating system as well as information and version numbers of the libraries, modules and / or applications installed.
Alternativement, l'étape 5.4 peut être intégrée à l'étape de test ou effectuée préalablement à celle-ci de manière systématique. Lors d'une étape 5.5, l'application de mise à jour envoie à un serveur distant une requête d'analyse de la mise à jour nécessaire. Avantageusement cette requête contient les informations relatives au type de terminal, au type de système d'exploitation et à sa version ainsi que la liste des unités, librairies et applications installées. La requête contient également les statuts retournés par les commandes non implémentées ou qui ne sont pas présentes dans une bonne version. Alternatively, step 5.4 may be integrated in the test step or carried out prior to it in a systematic manner. In a step 5.5, the update application sends a remote server a request for analysis of the update required. Advantageously, this request contains information relating to the type of terminal, the type of operating system and its version as well as the list of units, libraries and applications installed. The query also contains the statuses returned by commands that are not implemented or that are not present in a good version.
Lors d'une étape 5.6, le serveur distant analyse la requête et détermine en fonction de ces informations la mise à jour nécessaire pour le bon fonctionnement des applications embarquées dans le module d'identité de souscripteur. Le serveur sélectionne ou génère une mise à jour destinée à être installée par le système d'exploitation du terminal. During a step 5.6, the remote server analyzes the request and determines, based on this information, the update necessary for the proper functioning of the applications embedded in the subscriber identity module. The server selects or generates an update for installation by the terminal operating system.
Lors de l'étape 5.7, la mise à jour est envoyée par le serveur distant au module d'identité de souscripteur. Ce dernier en vérifie avantageusement l'intégrité, par exemple par la vérification d'une somme de contrôle telle qu'un CRC (Cyclic Redondancy Code en anglais) ou par la vérification d'une signature électronique lors d'une étape 5.8. Le fait que la mise à jour soit reçue par le module d'identité de souscripteur permet à ce dernier, et donc à l'opérateur qui le contrôle, de maîtriser la configuration logicielle du terminal en ce qui concerne les fonctionnalités clés nécessaires au module. In step 5.7, the update is sent by the remote server to the subscriber identity module. The latter advantageously checks the integrity thereof, for example by checking a checksum such as a CRC (Cyclic Redondancy Code in English) or by checking a electronic signature in step 5.8. The fact that the update is received by the subscriber identity module enables the latter, and therefore the operator who controls it, to control the terminal's software configuration with respect to the key functionalities required by the module.
Lors d'une étape 5.9, l'application de mise à jour 4.9 (Figure 4) du module d'identité de souscripteur déclenche la mise à jour du logiciel embarqué sur le terminal par l'envoi d'une requête de mise à jour au système. Cette requête contient la mise à jour. Alternativement cette requête contient un pointeur vers l'adresse de la mémoire non volatile dans laquelle est enregistrée la mise à jour. Alternativement, la mise à jour est déclenchée par l'enregistrement de la mise à jour dans une zone mémoire connue du système d'exploitation. Ce dernier vérifiant périodiquement la disponibilité d'une mise à jour dans cette zone mémoire et effectuant alors automatiquement la mise à jour. Alternativement, la vérification de la mise à jour peut être le résultat d'une action de l'utilisateur du terminal ou être programmée. La mise à jour peut ne concerner qu'une des couches du logiciel embarqué sur le terminal. In a step 5.9, the update application 4.9 (Figure 4) subscriber identity module triggers the update of the software on the terminal by sending an update request to the system. This query contains the update. Alternatively, this request contains a pointer to the address of the non-volatile memory in which the update is stored. Alternatively, the update is triggered by the registration of the update in a known memory area of the operating system. The latter periodically checks the availability of an update in this memory area and then automatically performs the update. Alternatively, the verification of the update can be the result of a user action of the terminal or be programmed. The update may concern only one of the layers of the software embedded on the terminal.
Lors d'une étape 5.10, le système d'exploitation procède à la mise à jour du logiciel embarqué sur le terminal par l'installation de la mise à jour. Si nécessaire un redémarrage du système est opéré. In a step 5.10, the operating system updates the software on the terminal by installing the update. If necessary, a reboot of the system is performed.
Lors de l'étape 5.11 , les applications embarquées dans le module d'identité de souscripteur peuvent communiquer avec le terminal en utilisant les commandes mises à jour. In step 5.11, the applications embedded in the subscriber identity module can communicate with the terminal using the updated commands.
Naturellement, pour satisfaire des besoins spécifiques, une personne compétente dans le domaine de l'invention pourra appliquer des modifications dans la description précédente. Naturally, to meet specific needs, a person skilled in the field of the invention may apply modifications in the foregoing description.
Bien que la présente invention ait été décrite ci-dessus en référence à des modes de réalisation spécifiques, la présente invention n'est pas limitée aux modes de réalisation spécifiques, et les modifications qui se trouvent dans le champ d'application de la présente invention seront évidentes pour une personne versée dans l'art. Although the present invention has been described above with reference to specific embodiments, the present invention is not limited. to specific embodiments, and modifications that are within the scope of the present invention will be apparent to one skilled in the art.

Claims

REVENDICATIONS
Procédé de mise à jour des fonctionnalités du logiciel embarqué (3.1 ) par un terminal de communication (4.1 ) contenant un module d'identité de souscripteur (4.2) hébergeant au moins une application nécessitant pour son exécution au moins une commande implémentée par ledit terminal, caractérisé en ce qu'il comprend par le module d'identité de souscripteur (4.2): Method for updating the functionalities of the embedded software (3.1) by a communication terminal (4.1) containing a subscriber identity module (4.2) hosting at least one application requiring for its execution at least one command implemented by said terminal, characterized in that it comprises by the subscriber identity module (4.2):
- une étape (5.2) de test (4.1 ) des commandes nécessaires à l'exécution de la au moins une application hébergée par ledit module d'identité de souscripteur ;  a step (5.2) of testing (4.1) the commands necessary for the execution of the at least one application hosted by said subscriber identity module;
dans le cas où au moins une de ces commandes est manquante dans une version requise par les applications hébergées :  in the case where at least one of these commands is missing in a version required by hosted applications:
- une étape d'obtention (5.7) d'une unité de mise à jour du logiciel embarqué (3.1 ) par le terminal ; et  a step of obtaining (5.7) an on-board software update unit (3.1) by the terminal; and
- en réponse à l'étape d'obtention, une étape de déclenchement (5.9) de la mise à jour du logiciel embarqué par le terminal, ladite mise à jour étant faite par le terminal par l'installation (5.10) de ladite unité de mise à jour.  in response to the obtaining step, a triggering step (5.9) of the update of the onboard software by the terminal, said update being made by the terminal by the installation (5.10) of said unit of update.
Procédé selon la revendication 1 , caractérisé en ce que lesdites commandes sont des commandes proactives STK. Method according to claim 1, characterized in that said commands are proactive commands STK.
Procédé selon l'une des revendications 1 ou 2, caractérisé en ce que ladite étape de test est déclenchée par le démarrage du terminal. Method according to one of claims 1 or 2, characterized in that said test step is triggered by the startup of the terminal.
Procédé selon l'une des revendications 1 ou 2, caractérisé en ce que ladite étape de test est déclenchée par l'insertion dans le terminal d'un nouveau module d'identité de souscripteur ou par l'insertion dans le terminal d'une carte mémoire ou en réponse à une requête émise par un serveur distant ou par l'utilisateur, à destination du module d'identité de souscripteur. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que ladite étape de déclenchement de la mise à jour du logiciel embarqué par le terminal déclenche la mise à jour par le terminal de l'une des couches dudit logiciel. Method according to one of Claims 1 or 2, characterized in that the said test step is triggered by the insertion in the terminal of a new subscriber identity module or by the insertion in the terminal of a card memory or in response to a request sent by a remote server or by the user, to the subscriber identity module. Method according to any one of claims 1 to 4, characterized in that said step of triggering the updating of the software on board by the terminal triggers the updating by the terminal of one of the layers of said software.
Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce que l'étape d'obtention d'une unité de mise à jour comprend :Method according to any one of claims 1 to 5, characterized in that the step of obtaining an update unit comprises:
- une étape d'envoi d'une requête (5.5) à un serveur distant, ladite requête comprenant au moins des résultats du test de la mise en œuvre par le terminal des commandes nécessaires à l'exécution des applications hébergées par le module d'identité de souscripteur ; et a step of sending a request (5.5) to a remote server, said request comprising at least results of the test of the implementation by the terminal of the commands necessary for the execution of the applications hosted by the module of subscriber identity; and
- une étape (5.7) de réception de ladite unité de mise à jour transmise par ledit serveur distant.  a step (5.7) of receiving said update unit transmitted by said remote server.
Procédé selon l'une quelconque des revendications 1 à 6, caractérisé en ce que lesdits résultats du test de la mise en œuvre des commandes comprennent un statut obtenu en réponse au test. A method as claimed in any one of claims 1 to 6, characterized in that said test results of the implementation of the commands include a status obtained in response to the test.
Procédé selon l'une quelconque des revendications 6 ou 7, caractérisé en ce qu'il comporte en outre : Method according to any one of claims 6 or 7, characterized in that it further comprises:
- une étape (5.4) d'obtention d'informations de configuration du terminal ; et  a step (5.4) of obtaining terminal configuration information; and
- où la requête à un serveur distant comprend également ces informations obtenues.  where the request to a remote server also includes this information obtained.
Procédé selon la revendication 1 , caractérisé en ce que ladite unité de mise à jour est contenue dans une mémoire non volatile accessible par ledit module d'identité de souscripteur. Method according to claim 1, characterized in that said updating unit is contained in a non-volatile memory accessible by said subscriber identity module.
10. Procédé selon la revendication 9, caractérisé en ce que ladite mémoire non volatile est contenue dans une carte mémoire insérée dans le terminal. 10. The method of claim 9, characterized in that said non-volatile memory is contained in a memory card inserted in the terminal.
1 1 . Procédé selon la revendication 9, caractérisé en ce que ladite mémoire non volatile est contenue dans une borne locale accessible par une communication radio en champ proche. 1 1. Method according to claim 9, characterized in that said non-volatile memory is contained in a local terminal accessible by a near-field radio communication.
12. Procédé selon l'une quelconque des revendications 1 à 1 1 , caractérisé en ce qu'il comporte en outre : 12. Method according to any one of claims 1 to 1 1, characterized in that it further comprises:
- une étape de vérification de l'intégrité de l'unité de mise à jour obtenue.  a step of checking the integrity of the update unit obtained.
13. Module d'identité de souscripteur comportant pour la mise à jour des fonctionnalités du logiciel embarqué par un terminal de communication contenant ledit module d'identité de souscripteur: 13. Subscriber identity module comprising for updating the functionalities of the embedded software by a communication terminal containing said subscriber identity module:
- au moins une application nécessitant pour son exécution au moins une commande implémentée par ledit terminal,  at least one application requiring for its execution at least one command implemented by said terminal,
caractérisé en ce qu'il comprend :  characterized in that it comprises:
- des moyens de test de la mise en œuvre par le terminal des commandes nécessaires à l'exécution des applications hébergées par le module d'identité de souscripteur ;  means for testing the implementation by the terminal of the commands necessary to execute the applications hosted by the subscriber identity module;
- des moyens d'obtention d'une unité de mise à jour du logiciel embarqué par le terminal ; et  means for obtaining an on-board software update unit from the terminal; and
- des moyens de déclenchement de la mise à jour du logiciel embarqué par le terminal, ladite mise à jour étant faite par le terminal par l'installation de ladite unité de mise à jour.  means for triggering the updating of the software embedded by the terminal, said update being made by the terminal by the installation of said update unit.
14. Terminal de communication caractérisé en ce qu'il comporte module d'identité de souscripteur selon la revendication 1 3. 14. Communication terminal characterized in that it comprises subscriber identity module according to claim 1 3.
15. Programme d'ordinateur comprenant des instructions adaptées à la mise en œuvre de chacune des étapes du procédé selon l'une quelconque des revendications 1 à 12 lorsque ledit programme est exécuté sur un ordinateur. 15. Computer program comprising instructions adapted to the implementation of each of the steps of the method according to any one of claims 1 to 12 when said program is executed on a computer.
16. Moyen de stockage d'informations, amovible ou non, partiellement ou totalement lisible par un ordinateur ou un microprocesseur comportant des instructions de code d'un programme d'ordinateur pour l'exécution de chacune des étapes du procédé selon l'une quelconque des revendications 1 à 12. 16. An information storage medium, removable or not, partially or completely readable by a computer or a microprocessor comprising code instructions of a computer program for executing each of the steps of the method according to any one Claims 1 to 12.
PCT/FR2014/053438 2013-12-19 2014-12-18 Method for testing and updating the system of a terminal by means of a subscriber identity module and associated devices WO2015092307A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1363118A FR3015718B1 (en) 2013-12-19 2013-12-19 METHOD FOR TESTING AND UPDATING THE SYSTEM OF A TERMINAL WITH A SUBSCRIBER IDENTITY MODULE AND ASSOCIATED DEVICES
FR1363118 2013-12-19

Publications (1)

Publication Number Publication Date
WO2015092307A1 true WO2015092307A1 (en) 2015-06-25

Family

ID=51014324

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2014/053438 WO2015092307A1 (en) 2013-12-19 2014-12-18 Method for testing and updating the system of a terminal by means of a subscriber identity module and associated devices

Country Status (2)

Country Link
FR (1) FR3015718B1 (en)
WO (1) WO2015092307A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110489136A (en) * 2019-08-07 2019-11-22 厦门市思芯微科技有限公司 A kind of production test system and method for Unionpay's cashing machine
EP3130933B1 (en) * 2015-06-29 2021-05-26 IDEMIA France Secure element storing a test program, terminal comprising such a secure element, associated system and method
CN114244750A (en) * 2022-01-20 2022-03-25 深圳豪成通讯科技有限公司 RS485 communication circuit system based on mobile terminal TYPEC interface

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008028989A1 (en) * 2006-09-07 2008-03-13 Nokia Corporation Managing information relating to secure module applications
WO2008055302A1 (en) * 2006-11-07 2008-05-15 Seeker Wireless Pty Limited Enhanced mobile service provision
US20110297740A1 (en) * 2009-02-27 2011-12-08 France Telecom Automatic configuration of a terminal

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008028989A1 (en) * 2006-09-07 2008-03-13 Nokia Corporation Managing information relating to secure module applications
WO2008055302A1 (en) * 2006-11-07 2008-05-15 Seeker Wireless Pty Limited Enhanced mobile service provision
US20110297740A1 (en) * 2009-02-27 2011-12-08 France Telecom Automatic configuration of a terminal

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3130933B1 (en) * 2015-06-29 2021-05-26 IDEMIA France Secure element storing a test program, terminal comprising such a secure element, associated system and method
CN110489136A (en) * 2019-08-07 2019-11-22 厦门市思芯微科技有限公司 A kind of production test system and method for Unionpay's cashing machine
CN114244750A (en) * 2022-01-20 2022-03-25 深圳豪成通讯科技有限公司 RS485 communication circuit system based on mobile terminal TYPEC interface
CN114244750B (en) * 2022-01-20 2023-09-05 深圳豪成通讯科技有限公司 RS485 communication circuit system based on TYPE EC interface of mobile terminal

Also Published As

Publication number Publication date
FR3015718B1 (en) 2016-02-05
FR3015718A1 (en) 2015-06-26

Similar Documents

Publication Publication Date Title
EP3123387B1 (en) Securing of the loading of data into a nonvolatile memory of a secure element
WO2017109381A1 (en) Embedded subscriber identity module comprising communication profiles
EP3474583B1 (en) Methods of loading a profile in a secure element, manager and customisable secure element
WO2015121418A2 (en) Method of deploying a set of software application(s)
FR2983601A1 (en) SYSTEM FOR PROVIDING TELEMATIC SERVICES AND CORRESPONDING METHOD
EP3395090A1 (en) Method for controlling an embedded subscriber identity module
WO2015092307A1 (en) Method for testing and updating the system of a terminal by means of a subscriber identity module and associated devices
EP1649363A2 (en) Method of managing software components that are integrated into an embedded system
EP3607765B1 (en) Method for obtaining a command relating to a profile for accessing a network
EP3278542B1 (en) System and method for executing an application on a terminal provided with a chip card
EP4078922B1 (en) Method for obtaining a command relating to a network access profile of an euicc security module
FR3078469A1 (en) CONFIGURING AN INBOARD SUBSCRIBER IDENTITY MODULE
EP2793498B1 (en) Secure element for telecommunication terminal
EP3317800B1 (en) Method of managing profiles in a secure element
FR3046017A1 (en) METHOD FOR MANAGING CONNECTIONS BETWEEN A SET OF SECURE ELEMENTS AND A SERVER
WO2023227386A1 (en) Method for managing service profiles of a secure element
FR3046016A1 (en) METHOD FOR MANAGING CONNECTIONS BETWEEN A SECURE ELEMENT AND A SERVER
FR3037167A1 (en) METHOD FOR PROVIDING A INSTALLATION SCRIPT TO A SECURE MODULE, SECURE MODULE AND PROVISIONING SERVER
EP1632849A1 (en) Application development system for an application onboard a module
EP3912065A1 (en) Authorization for the loading of an application onto a security element
FR3018985A1 (en) METHOD FOR ACTIVATING A SIM CARD SUBSCRIBER CARD
EP2617215B1 (en) Electronic card test
FR3096479A1 (en) Method of verifying that a user of a website is a human being, and associated verification platform
EP3110109A1 (en) Method and device for updating the capabilities of an object connected to a communications network
FR3044856A1 (en) METHOD OF PROCESSING THE SELECTION OF A MOBILE CELLULAR RADIO COMMUNICATION NETWORK AND THE LOCALIZATION THEREOF BY A MOBILE TERMINAL

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14830832

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14830832

Country of ref document: EP

Kind code of ref document: A1