WO2009138641A1 - Method of use of a host terminal by an external device connected to the terminal - Google Patents

Method of use of a host terminal by an external device connected to the terminal Download PDF

Info

Publication number
WO2009138641A1
WO2009138641A1 PCT/FR2009/050717 FR2009050717W WO2009138641A1 WO 2009138641 A1 WO2009138641 A1 WO 2009138641A1 FR 2009050717 W FR2009050717 W FR 2009050717W WO 2009138641 A1 WO2009138641 A1 WO 2009138641A1
Authority
WO
WIPO (PCT)
Prior art keywords
terminal
identifier
program
operating system
external device
Prior art date
Application number
PCT/FR2009/050717
Other languages
French (fr)
Inventor
Vincent Bel
Matthieu Maupetit
Olivier Charles
Original Assignee
France Telecom
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 France Telecom filed Critical France Telecom
Publication of WO2009138641A1 publication Critical patent/WO2009138641A1/en

Links

Classifications

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

Definitions

  • the present invention relates to a method of using a host terminal by an external device connected to the terminal.
  • the external device may be a removable storage device adapted to be connected to the host terminal. It allows the transport of a terminal execution computer environment. Such a device contains the programs and data necessary for the operation of this host terminal: operating system, network access data, user data, etc. It is at the time of startup of the host terminal that the latter loads the programs accessible via this external storage device and executes them.
  • WO 2007/096554 describes a solution for accessing from a host terminal to a predefined telecommunications network, from data relating to a computing environment stored in a removable external memory.
  • the user connects the removable external memory to the host terminal and then starts the host terminal.
  • the terminal loads the programs it needs (operating system, etc.) and is accessible via external memory.
  • the connection is established from programs stored in the removable external memory.
  • a case of use of the solution described in WO 2007/096554 may be remote access by a mobile user, working for a company, to the internal network of this company from a terminal external to the network of the company.
  • the user connects to the external terminal to the company network a removable memory containing programs and / or computer environment data provided by the company and therefore a priori reliable.
  • the software and data stored in the host terminal itself executed.
  • the user can access the internal network of his company from any terminal, under optimal security conditions since it is the programs and / or data of the computing environment stored in the removable external memory which are used for establish such a connection, not data stored in the terminal itself.
  • the user does not fear any malicious programs that may be in the host terminal, since such programs are not used.
  • One of the benefits of this solution is security.
  • the invention responds to this need by proposing a method of using a host terminal with the aid of an external device connected to the terminal and hosting at least one program, comprising:
  • a step of starting the execution of the program hosted by the external device, on the host terminal characterized in that, the external device storing a list, called "white list” , authorized terminal identifiers, it is planned:
  • the method of the invention thus makes it possible to limit the use of the user's environment, stored on a portable device, to a pool of identified potential host terminals.
  • a company that delivers to its Employees of such portable environments in a professional context is assured that these environments are used only with the aid of authorized terminals, excluding private terminals dedicated to a private use. This ensures control of the use of environments, and related programs. In particular, when such environments are subject to software licenses, this ensures compliance with licensing agreements with a software provider and therefore provides a legal framework for use.
  • any terminal has a hardware device for recording keys entered on the keyboard (the term commonly used to designate such a device is the English term "keylogger") to retrieve usernames and passwords from the user. An attacker who obtains credentials can then impersonate the user to access the corporate network.
  • the external device storing a boot program and an operating system, it is expected, during the terminal startup phase,
  • the method of the invention further comprises a step of verifying the integrity of the operating system hosted by the external device, performed by the boot program, the boot step of Execution of the operating system is executed only if the verification is positive.
  • the launch of the user's environment is highly secure.
  • the boot program which can not be modified by a user, verifies during its execution the integrity of the zone comprising the operating system, the operating system, when it is executed, thus checking the whitelist of the terminals. authorized hosts.
  • the use of a public key cryptographic scheme to verify the integrity of the terminal identifier blank list does not imply any security constraints on the storage format of the public key. This key, stored either in the same memory block as the one where the boot program is stored, or in the same block where the operating system is stored, is accessible by the operating system for performing the control of the operating system. 'integrity.
  • the method comprises:
  • a method of updating a white list of authorized terminals in connected mode has the advantage of facilitating an eventual updating of external devices since it is not necessary for a device carrier to bring his device back to a device. administrator when the whitelist of authorized terminals needs to be updated.
  • the white list of authorized identifiers further comprises, for at least one identifier, temporal information of validity.
  • the accuracy of a device expiration date on a terminal allows an administrator to control the period during which a device can be used, which can be useful when a software license is granted for a predefined period. This is the case, for example, of licenses granted on loan, for the purpose of testing.
  • the invention also relates to a device capable of connected to a host terminal, comprising storage means containing:
  • the storage means comprise a boot program and an operating system, said boot program verifying at the start of its execution the integrity of the operating system hosted by the device. external, starting the running of the operating system only running if the check is positive.
  • said program is capable, if the verification of the identifier is negative, to:
  • the invention also relates to a program intended to be installed in a memory of a storage device adapted to be connected to a host terminal, said device storing a list, called "white list", of authorized terminal identifiers, and comprising portions of code for: determining an identifier of the host terminal from data relating to intrinsic hardware means of the terminal,
  • FIG. 1a shows a first embodiment of the external storage device according to the invention and a host terminal
  • FIG. 1b shows a second embodiment of the external storage device according to the invention and a host terminal
  • FIG. 2 schematically shows a memory of the external storage device shown in Figure 1a;
  • FIG. 3 represents the steps of the method of using the host terminal with the external storage device of FIG. 1a, according to one particular embodiment of the invention
  • FIG. 4 presents steps for updating a white list of identifiers of the external storage device of FIG. 1a, according to one embodiment of the invention.
  • FIG. 1a illustrates a first exemplary embodiment of the external storage device 11a of the invention and a host terminal 10a that can be used via the device 11a.
  • the device 11a is a key, here a "USB” type key (of the “Universal Serial Bus”), comprising means for storing data.
  • the terminal 10a is here, in a conventional manner, a personal computer "PC" (Personal Computer) having at least one central unit of data processing, a keyboard, a screen and a communication bus for interconnecting peripheral devices to the central unit, for example a serial bus meeting the USB standard.
  • the terminal 10a furthermore comprises at least one USB connection port, to which the USB key 1 1 can be connected. It should be noted that the terminal 10a may not include a hard disk because it is not used for setting implementation of the invention.
  • the terminal 10a also comprises, in a conventional manner, a memory in which is stored a BIOS (Basic Input / Output System) program, or basic input / output system.
  • BIOS Basic Input / Output System
  • this BIOS program is capable of performing a detection, when the terminal 10a is started, of internal and external peripherals of the terminal 10a, as well as the start of an operating system.
  • FIG. 1b illustrates a second exemplary embodiment of the external storage device according to the invention. It is in this case a communication terminal 11b, in this case a mobile phone, comprising a smart card and data storage means.
  • the communication terminal 11b in this case a mobile phone, comprising a smart card and data storage means.
  • PDA personal assistant
  • a network access module of the mobile phone 1 1b in this case a mobile network access modem of the phone 1 1 b;
  • SIM Subscriber Identity Module
  • the telephone 11b may act as a network card or a modem capable of providing access to the mobile network of the telephone 11b, vis-à-vis the host terminal 10b.
  • the SIM card of the network access module preferably uses for the terminal 10b a virtual driver as described in the patent application published under the number WO2005 / 036822.
  • a driver is likely to be used with both a wired link and a non-wired link, for example bluetooth, between the terminal 10b and the communication terminal 11b.
  • the terminal 10b can access the SIM card of the communication terminal 11b as if it were a smart card inserted into a local reader of the terminal 10b, and thus by ignoring the USB link and access constraints related to the integration of the SIM card in the environment of the communication terminal 11 b.
  • a virtual driver can also be used for controlling the access module to the network, so that access programs to the network operate in the same way as if the access module to the network was a module installed locally on the terminal 10b.
  • the following description refers both to the first embodiment (USB key 11a) that the second embodiment (communication terminal 11 b) of the external storage device.
  • the external storage device 11a (11b) comprises data storage means, comprising a memory, conventionally shared in two zones:
  • boot program commonly called “boot” or “bootstrap”, located in first bytes of the system area, adapted to be triggered by the BIOS of a host terminal and to boot the operating system,
  • the invention uses a specific division of the memory of the external storage device 11a (11b), used to implement the method according to the invention.
  • the memory represented in this FIG. 2 is structured, divided into four blocks 20, 21, 22 and 23. All of these blocks constitute a partition of the memory.
  • the first memory block 20 corresponds to a secure boot area.
  • This first block 20 comprises a boot program B20, or boot program, whose role is to trigger the loading of a kernel of an operating system in a host terminal, the kernel itself being stored in the second memory block 21.
  • the first memory block 20 has secure write access.
  • this memory block is of the read-only memory (ROM) type, making it impossible to modify the data stored therein.
  • write access to this memory block is possible, provided that an access code is available. An update is then possible for an authorized administrator with this access code.
  • use is made for example of a memory coupled to a smart card, for example the memory of a USB key comprising a smart card. The update is then possible:
  • the smart card provides means of access to a mobile network, for example by sending a "SMS” (short message service) signed.
  • SMS short message service
  • the update of the memory is then performed according to an automatic configuration mechanism called "OTA" (of the English “Over The Air”).
  • OTA automatic configuration mechanism
  • the second memory block 21 is called the system area.
  • This second block 21 comprises a single compressed file S21, digitally signed by means of a private key specific to an authorized administrator. Conventionally, a public key for verifying said digital signature is associated with the private key signature.
  • the file S21 notably comprises data necessary for starting the operating system on the host terminal as well as for reading and operating data stored in the memory blocks 22 and 23.
  • the file S21 comprises:
  • a data management driver adapted to construct a file system for accessing data stored in blocks 22 and 23 of the memory
  • a device driver suitable for entering a password on the keyboard of the host terminal, or user authentication data
  • a digital signature of the file S21 is stored in the memory so as to allow verification of the integrity of the file S21.
  • This signature is stored in the system area, for example at the beginning of the memory block 21, so as to be easily accessible.
  • the public key of the authorized administrator who signed the file S21 is stored in the memory block 20 corresponding to the boot area. Thus, the public key of the administrator is available, during the execution of the boot program, to verify the signature of the file S21.
  • the third memory block 22 corresponds to a configuration zone according to the invention. It comprises a configuration file C22 containing a list of signed identifiers of authorized potential host terminals that can be used via the external storage device 11a (11b). This list is called a white list.
  • the white list comprises a set of records relating to respective potential host terminals and structured, for example, as follows: [Terminal ID
  • the first "terminal identifier" field is a reference that uniquely identifies the terminal. It is determined from data relating to intrinsic hardware means to the terminal, that is to say from characteristics or parameters relating to hardware means belonging to the terminal. For example, it can be determined from one or more parameters among which: a serial number of a hard disk, a serial number of a processor, a serial number of a motherboard, a base register, a memory size, a response time of the reference system (processor, network connection, etc.), etc. A method for homogenizing the parameters may optionally be used, for the sake of simplification, so that the parameters chosen to identify the terminal belong to the same representation space.
  • a second identifier field of the authorized administrator is for example an administration server name allocated by the company and uniquely identifying the administration server, or an administrator name, natural person, or an identifier thereof. administrator. In the latter case, the administrator has IT resources that allow him to perform administrative operations, such as signatures, updates, etc.
  • the concatenation of the fields associated with the identifier of the terminal and the identifier of the administrator is digitally signed by the administrator by means of a private key specific to the administrator.
  • the signature obtained is concatenated with the preceding fields to obtain the record relating to the terminal in the whitelist.
  • the public key associated with the private key of the signatory administrator is stored in the first memory block 20 corresponding to the boot area.
  • the public key of the signing administrator is stored in the second block 21 of the memory corresponding to the system area.
  • the public key of the signing administrator is accessible when launching the operating system, a module of which is adapted to verify the integrity of the data relating to a terminal of the white list of identifiers.
  • the whitelist can only be modified by an authorized administrator for whom a public key associated with a private signature key is already stored in the first block 20, or the second block 21.
  • a record of the white list relating to a particular host terminal comprises, in addition to the terminal identifier and the identifier of the administrator, a temporal information of validity, for example a date limit, which allows the signing administrator to specify that a device can be used on the particular terminal for a limited time and until the deadline.
  • the concatenation of these three fields is signed by the signatory administrator.
  • This variant is useful, on the one hand to take into account deadlines for use in software licenses and on the other hand, to overcome an update of the list on the device 11a, 11b when the deadline for using a software license has arrived.
  • the fourth block 23 corresponds to the user zone. Typically, this area of the memory includes personal files of the user. All the data and / or files of the user area is stored as a single F23 file, encrypted and preferably compressed. The user area is unlocked by a password known only to the user.
  • the third and fourth memory blocks 22, 23 are preferably rewritable, made for example by flash memories.
  • the method of using the host terminal 10b via the external storage device 11b is similar to the following description.
  • a user 30 carrying the external storage device 11a inserts this device 11a into the USB port of the terminal 10a.
  • a start step u31 the user 30 starts the terminal 10a, here by powering on.
  • the BIOS program of the terminal 10a runs and looks for a boot program.
  • the BIOS program executes a device detection procedure of the host terminal 10a, which can be devices internal to the terminal and permanent, or external and removable devices connected to this terminal. Then, it searches among the detected devices, in a sequence predefined by a start list, the first device containing a boot sector including an operating system boot program.
  • the start list requires interrogating the devices connected to the USB bus before the internal device constituted by the hard disk of the host terminal 10a. Therefore, in the invention, it is the starting zone the external storage device 11a which is detected first and used in priority with respect to one or more hard disks possibly present in the host terminal 10a.
  • the BIOS program is written in a read-only memory of the host terminal 10a; it is not modifiable.
  • the external device 11a responds to the detection procedure initiated by the host terminal 10a.
  • the BIOS program of the terminal 10a detects the presence of a storage memory on the external storage device 11a.
  • the BIOS program reads the storage memory and then triggers the execution of the boot program stored in the boot area of the memory of the device 11a.
  • step t31 execution the terminal 10a executes the boot program.
  • the boot program reads the system area of the memory of the device 11a.
  • a test step t32 the boot program verifies the signature of the file S21 which is stored in the memory block 21 of the device 11a, by means of a public key stored in the memory block 20 corresponding to the boot zone. . In the case where the signature is not valid, then the process ends. If the signature is valid, then, in a step t33, the system kernel is loaded into a RAM of the terminal 10a and executed. In particular, the file system for accessing data stored in the memory blocks 22 and 23 is constructed. The execution of the system core comprises the execution of a routine according to the invention which causes access to the configuration area stored in the memory block 22 of the device 11a, 11b.
  • a step d32 the routine reads access to the configuration file C22 stored in the memory block 22 of the device 11a.
  • the system core determines a unique identifier of the terminal 10a, based on characteristics and / or parameters relating to intrinsic hardware means of the terminal. These characteristics can for example be obtained using requests to the terminal.
  • a system kernel interface can be used, or a specific kernel routine for obtaining these parameters.
  • a search step t35 the system kernel searches for the unique identifier that it has just determined in the white list of terminal identifiers retrieved in the configuration area in step d32. If the identifier is not found in the whitelist, then an updating procedure described in connection with FIG. 4 is executed.
  • the system kernel verifies the signature of this record which includes the unique identifier of the terminal. If the verification of the signature is positive, then the system kernel triggers, in a step t37, the execution of an authentication module designed to ask the user 30 to enter a password on the keyboard of the terminal 10a. .
  • a step u32 the user 30 enters his password on the keyboard of the terminal 10a, which password is then analyzed by the authentication module to authenticate the user of the terminal 10a.
  • Steps t37 and u32 may optionally involve a smart card and a device driver necessary for the operation of this smart card. If authentication fails, the process stops unless the user is allowed to perform several authentication attempts. Preferably, in case of failure, the complete start of the operating system on the terminal 10a is interrupted so that an unauthenticated user is not able to use the terminal.
  • the data management driver obtains a decryption key of the data of the user zone corresponding to the memory block 23.
  • This decryption key is obtained either by interrogation of the smart card, conditional on the presentation of a valid password, or by decryption, using the password provided, a stored decryption key encrypted in the user area.
  • the password provided by the user can also be used as a key for the encryption / decryption of data in the user area.
  • the Data Management Driver Uses the Decryption Key to Decrypt the F23 File stored encrypted in the user area.
  • the driver then builds in a random access memory of the terminal 10a, a logical file structure, in the form of a tree of directories and files, from all or part of the data contained in the decrypted file F23.
  • the files of this tree are thus accessible by the user according to rights of reading, writing, execution specific files.
  • the user can launch software that is licensed on the terminal 10a since it has been verified during the steps previously described that the terminal 10a was an authorized terminal for the device 11a, in particular for launching applications of the user.
  • the device 1 1 reads and writes in the user area.
  • This procedure corresponds to an update of the white list of identifiers, called in connected mode (the term commonly used is the term "online"), because subject to conditions of access to the network as described later.
  • This procedure is executed each time a terminal identifier is not found in the whitelist in step t35 according to FIG. 3. It consists in interrogating an administrator to know whether he authorizes the use of the terminal. terminal 10a, by the device 11 a. If necessary, the identifier of the terminal 10a is added to the authorized terminals whitelist that appears in the file C22 of the third memory block 22.
  • An update in disconnected mode that is to say without any precondition of access to the network, exists and has already been presented previously. It consists in updating the whitelist directly in the memory of the device.
  • the identifier of the terminal is not found in the whitelist of authorized terminals, then, in a sending step t40, the identifier of the terminal determined in step t34 is sent to an administrator 40.
  • an update module of the operating system whitelist establishes a network connection with the administrator 40.
  • the whitelist update module uses an Ethernet connection from the terminal 10a to the network of the company.
  • the whitelist update module uses a radio-cellular connection.
  • an authorization checking step a40 the administrator 40 determines whether it allows the use of the terminal 10a as a host terminal to start the operating system contained in the device 11a. For example, the administrator 40 authorizes the use of the terminal 10a if it belongs to the terminal park of the company. In another embodiment, the launching of an operating system from the external device 11a is allowed on a predefined maximum number of terminals. If the predefined maximum number of host terminals is not reached, then the launching of the operating system of the device 11a on the terminal 10a is allowed. If the use of the terminal 10a is not allowed, then the administrator 40 returns to the update module of the whitelist running on the terminal 10a a refusal message not shown, which interrupts the launch of the operating system.
  • a step a41 of sending an update following a positive authorization check, the administrator 40 returns to the update module of the whitelist running on the terminal 10a a new record related to the terminal 10a signed by means of his private key signature.
  • the whitelist update module updates the white list loaded in the terminal's RAM 10a, 10b by adding to the whitelist the new record received from the administrator 40 .

Landscapes

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

Abstract

The invention relates to a method of using a host terminal with the aid of an external device connected to the terminal and hosting at least one program, comprising: - during a phase of starting the terminal, a step (t33) of starting the execution of the program hosted by the external device, on the host terminal, characterized in that, the external device storing a list, so-called "white list", of identifiers of authorized terminals, there is provided: - a step (t34) of determining, by the program of the external device, an identifier of the terminal on the basis of data relating to intrinsic hardware means of the terminal, - a step (t35) of verifying the determined identifier, in the course of which the program of the external device verifies that the determined identifier belongs to the white list, the execution of the program being continued if the verification of the identifier is positive.

Description

Procédé d'utilisation d'un terminal hôte par un dispositif externe connecté au terminal Method of using a host terminal by an external device connected to the terminal
La présente invention concerne un procédé d'utilisation d'un terminal hôte par un dispositif externe connecté au terminal.The present invention relates to a method of using a host terminal by an external device connected to the terminal.
Le dispositif externe peut être un dispositif de stockage amovible apte à être connecté au terminal hôte. Il permet le transport d'un environnement informatique d'exécution de terminal. Un tel dispositif contient les programmes et données nécessaires au fonctionnement de ce terminal hôte : système d'exploitation, données d'accès au réseau, données de l'utilisateur, etc. C'est au moment du démarrage du terminal hôte que ce dernier charge les programmes accessibles via ce dispositif de stockage externe et les exécute.The external device may be a removable storage device adapted to be connected to the host terminal. It allows the transport of a terminal execution computer environment. Such a device contains the programs and data necessary for the operation of this host terminal: operating system, network access data, user data, etc. It is at the time of startup of the host terminal that the latter loads the programs accessible via this external storage device and executes them.
Le document WO 2007/096554 décrit une solution pour accéder depuis un terminal hôte à un réseau de télécommunications prédéfini, à partir de données relatives à un environnement informatique stockées dans une mémoire externe amovible. Pour accéder au réseau à partir du terminal hôte, l'utilisateur connecte la mémoire externe amovible à ce terminal hôte puis démarre ce dernier. Au moment de son démarrage, le terminal charge les programmes dont il a besoin (système d'exploitation, etc.) et qui sont accessibles via la mémoire externe. Ainsi, la connexion est établie à partir de programmes stockés dans la mémoire externe amovible. Un cas d'usage de la solution décrite dans WO 2007/096554 peut être l'accès à distance par un utilisateur nomade, travaillant pour une entreprise, au réseau interne de cette entreprise depuis un terminal externe au réseau de l'entreprise. Dans ce cas, l'utilisateur connecte au terminal externe au réseau de l'entreprise une mémoire amovible contenant des programmes et/ou données d'environnement informatique fournis par l'entreprise et donc a priori fiables. A aucun moment, les logiciels et les données stockés dans le terminal hôte lui-même ne sont exécutés. Grâce à cela, l'utilisateur peut accéder au réseau interne de son entreprise à partir de n'importe quel terminal, dans des conditions de sécurité optimales puisque ce sont les programmes et/ou données de l'environnement informatique stockées dans la mémoire externe amovible qui sont utilisées pour établir une telle connexion, et non des données stockées dans le terminal lui- même. Ainsi, l'utilisateur ne craint pas les éventuels programmes malveillants qui pourraient se trouver dans le terminal hôte, puisque de tels programmes ne sont pas utilisés. Un des bénéfices procurés par cette solution est donc la sécurité.WO 2007/096554 describes a solution for accessing from a host terminal to a predefined telecommunications network, from data relating to a computing environment stored in a removable external memory. To access the network from the host terminal, the user connects the removable external memory to the host terminal and then starts the host terminal. At the time of startup, the terminal loads the programs it needs (operating system, etc.) and is accessible via external memory. Thus, the connection is established from programs stored in the removable external memory. A case of use of the solution described in WO 2007/096554 may be remote access by a mobile user, working for a company, to the internal network of this company from a terminal external to the network of the company. In this case, the user connects to the external terminal to the company network a removable memory containing programs and / or computer environment data provided by the company and therefore a priori reliable. At no time are the software and data stored in the host terminal itself executed. With this, the user can access the internal network of his company from any terminal, under optimal security conditions since it is the programs and / or data of the computing environment stored in the removable external memory which are used for establish such a connection, not data stored in the terminal itself. Thus, the user does not fear any malicious programs that may be in the host terminal, since such programs are not used. One of the benefits of this solution is security.
Cependant, une telle solution permet d'utiliser l'environnement informatique stocké dans le dispositif externe, et donc les programmes qui y sont stockés, au mépris des licences de programmes qui sont généralement délivrées pour un terminal spécifique, ou pour un parc de terminaux spécifiques.However, such a solution makes it possible to use the computer environment stored in the external device, and therefore the programs stored therein, regardless of the program licenses that are generally issued for a specific terminal, or for a specific terminal park. .
Il existe donc un besoin pour circonscrire la faculté d'utiliser un environnement informatique hébergé dans un périphérique externe, à un parc prédéfini de terminaux.There is therefore a need to circumscribe the ability to use a computer environment hosted in an external device, to a predefined set of terminals.
L'invention répond à ce besoin en proposant un procédé d'utilisation d'un terminal hôte à l'aide d'un dispositif externe connecté au terminal et hébergeant au moins un programme, comprenant :The invention responds to this need by proposing a method of using a host terminal with the aid of an external device connected to the terminal and hosting at least one program, comprising:
- lors d'une phase de démarrage du terminal, une étape de démarrage de l'exécution du programme hébergé par le dispositif externe, sur le terminal hôte, caractérisé par le fait que, le dispositif externe mémorisant une liste, dite "liste blanche", d'identifiants de terminaux autorisés, il est prévu :during a startup phase of the terminal, a step of starting the execution of the program hosted by the external device, on the host terminal, characterized in that, the external device storing a list, called "white list" , authorized terminal identifiers, it is planned:
- une étape de détermination, par le programme du dispositif externe, d'un identifiant du terminal à partir de données relatives à des moyens matériels intrinsèques du terminal, - une étape de vérification de l'identifiant déterminé, au cours de laquelle le programme du dispositif externe vérifie l'appartenance de l'identifiant déterminé à la liste blanche, l'exécution du programme étant poursuivie si la vérification de l'identifiant est positive. Le procédé de l'invention permet ainsi de limiter l'utilisation de l'environnement de l'utilisateur, stocké sur un dispositif portable, à un parc de terminaux hôtes potentiels identifiés. Ainsi, une entreprise qui délivre à ses employés de tels environnements portables dans un contexte professionnel est assurée que ces environnements ne sont utilisés qu'à l'aide de terminaux autorisés, à l'exclusion de terminaux hôtes dédiés à un usage privé. Cela garantit un contrôle de l'utilisation des environnements, et des programmes y afférents. En particulier, lorsque de tels environnements sous soumis à des licences logicielles, cela garantit un respect des accords de licences passés avec un fournisseur de logiciels et donc fournit un cadre légal d'utilisation.a step of determining, by the program of the external device, an identifier of the terminal from data relating to intrinsic hardware means of the terminal; a step of checking the determined identifier, during which the program of the external device verifies the membership of the determined identifier to the whitelist, the execution of the program being continued if the verification of the identifier is positive. The method of the invention thus makes it possible to limit the use of the user's environment, stored on a portable device, to a pool of identified potential host terminals. Thus, a company that delivers to its Employees of such portable environments in a professional context is assured that these environments are used only with the aid of authorized terminals, excluding private terminals dedicated to a private use. This ensures control of the use of environments, and related programs. In particular, when such environments are subject to software licenses, this ensures compliance with licensing agreements with a software provider and therefore provides a legal framework for use.
D'autre part, cela renforce la sécurité liée à l'utilisation de tels environnements. En effet, il existe un risque, lorsqu'on lance un tel environnement depuis un terminal quelconque, que ce terminal quelconque dispose d'un dispositif matériel d'enregistrement de touches saisies sur le clavier (le terme couramment utilisé pour désigner un tel dispositif est le terme anglais "keylogger") permettant de récupérer des identifiants et mots de passe de l'utilisateur. Un attaquant obtenant des informations d'identification peut ensuite usurper l'identité de l'utilisateur pour accéder au réseau de l'entreprise.On the other hand, it enhances the security of using such environments. Indeed, there is a risk, when launching such an environment from any terminal, that any terminal has a hardware device for recording keys entered on the keyboard (the term commonly used to designate such a device is the English term "keylogger") to retrieve usernames and passwords from the user. An attacker who obtains credentials can then impersonate the user to access the corporate network.
Dans une réalisation de l'invention, le dispositif externe stockant un programme d'amorçage et un système d'exploitation, il est prévu, lors de la phase de démarrage du terminal,In one embodiment of the invention, the external device storing a boot program and an operating system, it is expected, during the terminal startup phase,
- une étape d'exécution dudit programme d'amorçage accessible via le dispositif externe.a step of executing said boot program accessible via the external device.
- l'exécution dudit programme d'amorçage déclenchant l'étape de démarrage du système d'exploitation.the execution of said boot program that triggers the operating system startup step.
Dans une réalisation de l'invention, le procédé de l'invention comprend en outre une étape de vérification de l'intégrité du système d'exploitation hébergé par le dispositif externe, réalisée par le programme d'amorçage, l'étape de démarrage de l'exécution du système d'exploitation étant exécutée, seulement si la vérification est positive.In one embodiment of the invention, the method of the invention further comprises a step of verifying the integrity of the operating system hosted by the external device, performed by the boot program, the boot step of Execution of the operating system is executed only if the verification is positive.
Avec l'invention, le lancement de l'environnement de l'utilisateur est hautement sécurisé. En effet, le programme de boot, non modifiable par un utilisateur, vérifie lors de son exécution l'intégrité de la zone comprenant le système d'exploitation, le système d'exploitation, lors de son exécution, vérifiant alors la liste blanche des terminaux hôtes autorisés. Ainsi, il n'est pas possible pour un pirate, de modifier la zone système pour éventuellement insérer des routines erronées pour le traitement de la liste blanche des terminaux hôtes autorisés. En outre, l'utilisation d'un schéma cryptographique à clés publiques pour vérifier l'intégrité de la liste blanche des identifiants de terminaux n'implique aucune contrainte de sécurité sur le format de stockage de la clé publique. Cette clé, stockée soit dans le même bloc mémoire que celui où est stocké le programme d'amorçage, soit dans le même bloc que celui où est stocké le système d'exploitation, est accessible par le système d'exploitation pour effectuée le contrôle d'intégrité. Dans une réalisation de l'invention, le procédé comprend :With the invention, the launch of the user's environment is highly secure. In fact, the boot program, which can not be modified by a user, verifies during its execution the integrity of the zone comprising the operating system, the operating system, when it is executed, thus checking the whitelist of the terminals. authorized hosts. Thus, it is not possible for an attacker, to modify the system zone to possibly insert erroneous routines for the treatment of the whitelist of the authorized host terminals. In addition, the use of a public key cryptographic scheme to verify the integrity of the terminal identifier blank list does not imply any security constraints on the storage format of the public key. This key, stored either in the same memory block as the one where the boot program is stored, or in the same block where the operating system is stored, is accessible by the operating system for performing the control of the operating system. 'integrity. In one embodiment of the invention, the method comprises:
- si la vérification de l'identifiant est négative, une étape d'envoi dudit identifiant vers un administrateur,if the verification of the identifier is negative, a step of sending said identifier to an administrator,
- une étape de contrôle de l'identifiant par l'administrateur afin de déterminer s'il est autorisé, - si le contrôle est positif, une étape d'envoi par l'administrateur dudit identifiant vers le système d'exploitation, eta step of checking the identifier by the administrator to determine whether it is authorized, if the control is positive, a step of sending by the administrator of said identifier to the operating system, and
- une étape d'enregistrement dudit identifiant dans la liste blanche d'identifiants autorisés.a step of recording said identifier in the authorized identifiers whitelist.
Un procédé de mise à jour d'une liste blanche de terminaux autorisés en mode connecté présente l'avantage de faciliter une mise à jour éventuelle de dispositifs externes puisqu'il n'est pas nécessaire pour un porteur de dispositif de ramener son dispositif à un administrateur lorsque la liste blanche des terminaux autorisés doit être mise à jour.A method of updating a white list of authorized terminals in connected mode has the advantage of facilitating an eventual updating of external devices since it is not necessary for a device carrier to bring his device back to a device. administrator when the whitelist of authorized terminals needs to be updated.
Dans une réalisation de l'invention, la liste blanche d'identifiants autorisés comprend en outre, pour au moins un identifiant, une information temporelle de validité.In one embodiment of the invention, the white list of authorized identifiers further comprises, for at least one identifier, temporal information of validity.
La précision d'une date limite d'utilisation d'un dispositif sur un terminal permet à un administrateur de maîtriser la période pendant laquelle un dispositif peut être utilisé, ce qui peut être utile lorsqu'une licence logicielle est octroyée pendant une période prédéfinie. C'est le cas par exemple de licences accordées en prêt, dans un but de test. L'invention concerne aussi un dispositif apte à connecté à un terminal hôte, comprenant des moyens de stockage contenant :The accuracy of a device expiration date on a terminal allows an administrator to control the period during which a device can be used, which can be useful when a software license is granted for a predefined period. This is the case, for example, of licenses granted on loan, for the purpose of testing. The invention also relates to a device capable of connected to a host terminal, comprising storage means containing:
- au moins un programme,- at least one program,
- une liste dite "liste blanche" d'identifiants de terminaux hôtes autorisés, ledit programme étant apte, au démarrage de son exécution, àa list called "white list" of identifiers of authorized host terminals, said program being able, at the start of its execution, to
- déterminer un identifiant d'un terminal hôte auquel ledit dispositif est connecté, à partir de données relatives à des moyens matériels intrinsèques du terminaldetermining an identifier of a host terminal to which said device is connected, based on data relating to intrinsic hardware means of the terminal
- vérifier l'appartenance de l'identifiant déterminé à la liste blanche, poursuivre son exécution seulement si la vérification est positive.- check the membership of the determined identifier to the whitelist, continue its execution only if the verification is positive.
Dans une réalisation du dispositif selon l'invention, les moyens de stockage comprennent un programme d'amorçage et un système d'exploitation, ledit programme d'amorçage vérifiant au démarrage de son exécution l'intégrité du système d'exploitation hébergé par le dispositif externe, le démarrage de l'exécution du système d'exploitation ne s'exécutant que si la vérification est positive.In one embodiment of the device according to the invention, the storage means comprise a boot program and an operating system, said boot program verifying at the start of its execution the integrity of the operating system hosted by the device. external, starting the running of the operating system only running if the check is positive.
Avantageusement, ledit programme est apte, si la vérification de l'identifiant est négative, à :Advantageously, said program is capable, if the verification of the identifier is negative, to:
- envoyer ledit identifiant vers un administrateur apte à déterminer si ledit identifiant est autorisé, et le cas échéant, à renvoyer ledit identifiant,sending said identifier to an administrator able to determine if said identifier is authorized, and if necessary, to return said identifier,
- recevoir ledit identifiant,- receive said identifier,
- si le contrôle est positif, une étape d'envoi par l'administrateur dudit identifiant vers le système d'exploitation, etif the control is positive, a step of sending by the administrator of said identifier to the operating system, and
- enregistrer ledit identifiant dans la liste blanche des identifiants de terminaux hôtes autorisés.- register said identifier in the white list of authorized host terminal identifiers.
L'invention concerne aussi un programme destiné à être installé dans une mémoire d'un dispositif de stockage adapté pour être connecté à un terminal hôte, ledit dispositif mémorisant une liste, dite "liste blanche", d'identifiants de terminaux autorisés, et comprenant des portions de code pour : - déterminer un identifiant du terminal hôte à partir de données relatives à des moyens matériels intrinsèques du terminal,The invention also relates to a program intended to be installed in a memory of a storage device adapted to be connected to a host terminal, said device storing a list, called "white list", of authorized terminal identifiers, and comprising portions of code for: determining an identifier of the host terminal from data relating to intrinsic hardware means of the terminal,
- vérifier l'appartenance de l'identifiant déterminé à la liste blanche,- check the membership of the determined identifier to the whitelist,
- poursuivre son exécution si la vérification de l'identifiant est positive.- continue execution if the verification of the identifier is positive.
D'autres caractéristiques et avantages de la présente invention seront mieux compris à la lecture de la description de différents exemples de réalisation du périphérique externe de stockage de l'invention et un mode de réalisation particulier du procédé d'utilisation d'un terminal hôte à l'aide d'un tel dispositif, en référence aux schémas annexés donnés à titre non limitatif et dans lesquels :Other features and advantages of the present invention will be better understood on reading the description of different exemplary embodiments of the external storage device of the invention and a particular embodiment of the method of using a host terminal to using such a device, with reference to the accompanying drawings given in a non-limiting manner and in which:
- la figure 1 a représente un premier exemple de réalisation du dispositif externe de stockage selon l'invention et un terminal hôte ;- Figure 1a shows a first embodiment of the external storage device according to the invention and a host terminal;
- la figure 1 b représente un deuxième exemple de réalisation du dispositif externe de stockage selon l'invention et un terminal hôte ;- Figure 1b shows a second embodiment of the external storage device according to the invention and a host terminal;
- la figure 2 représente schématiquement une mémoire du périphérique externe de stockage représenté sur la figure 1 a ;- Figure 2 schematically shows a memory of the external storage device shown in Figure 1a;
- la figure 3 représente les étapes du procédé d'utilisation du terminal hôte avec le dispositif externe de stockage de la figure 1 a, selon un mode de réalisation particulier de l'invention ;FIG. 3 represents the steps of the method of using the host terminal with the external storage device of FIG. 1a, according to one particular embodiment of the invention;
- la figure 4 présente des étapes de mise à jour d'une liste blanche d'identifiants du dispositif externe de stockage de la figure 1 a, selon un mode de réalisation de l'invention.FIG. 4 presents steps for updating a white list of identifiers of the external storage device of FIG. 1a, according to one embodiment of the invention.
La figure 1 a illustre un premier exemple de réalisation du périphérique externe de stockage 1 1 a de l'invention et un terminal hôte 10a apte à être utilisé via le dispositif 1 1 a.FIG. 1a illustrates a first exemplary embodiment of the external storage device 11a of the invention and a host terminal 10a that can be used via the device 11a.
Dans cet exemple de réalisation, le dispositif 11a est une clé, ici une clé de type "USB" (de l'anglais "Universal Sériai Bus"), comprenant des moyens de stockage de données.In this exemplary embodiment, the device 11a is a key, here a "USB" type key (of the "Universal Serial Bus"), comprising means for storing data.
Le terminal 10a est ici, de manière classique, un ordinateur personnel "PC" (Personal Computer) disposant au moins d'une unité centrale de traitement de données, d'un clavier, d'un écran et d'un bus de communication pour interconnecter des périphériques à l'unité centrale, par exemple un bus série répondant à la norme USB. Le terminal 10a comprend en outre au moins un port de connexion USB, auquel la clé USB 1 1 a peut être connectée, On notera que le terminal 10a peut ne pas comprendre de disque dur car celui-ci n'est pas utilisé pour la mise en œuvre de l'invention.The terminal 10a is here, in a conventional manner, a personal computer "PC" (Personal Computer) having at least one central unit of data processing, a keyboard, a screen and a communication bus for interconnecting peripheral devices to the central unit, for example a serial bus meeting the USB standard. The terminal 10a furthermore comprises at least one USB connection port, to which the USB key 1 1 can be connected. It should be noted that the terminal 10a may not include a hard disk because it is not used for setting implementation of the invention.
Le terminal 10a comprend également de manière classique une mémoire dans laquelle est stocké un programme BIOS (Basic Input/Output System), ou système de base d'entrée/sortie. De façon bien connue de l'homme du métier, ce programme BIOS est apte à réaliser une détection, lors du démarrage du terminal 10a, de périphériques internes et externes du terminal 10a, ainsi que le démarrage d'un système d'exploitation.The terminal 10a also comprises, in a conventional manner, a memory in which is stored a BIOS (Basic Input / Output System) program, or basic input / output system. In a manner well known to those skilled in the art, this BIOS program is capable of performing a detection, when the terminal 10a is started, of internal and external peripherals of the terminal 10a, as well as the start of an operating system.
La figure 1 b illustre un deuxième exemple de réalisation du dispositif externe de stockage selon l'invention. Il s'agit dans ce cas d'un terminal de communication 11 b, en l'espèce un téléphone mobile, comprenant une carte à puce et des moyens de stockage de données. Le terminal de communicationFIG. 1b illustrates a second exemplary embodiment of the external storage device according to the invention. It is in this case a communication terminal 11b, in this case a mobile phone, comprising a smart card and data storage means. The communication terminal
11 b pourrait en variante être un assistant personnel ("PDA", pour "Personal11 b could alternatively be a personal assistant ("PDA", for "Personal"
Data Assistant"), ou autre. Sur la figure 1 b, le terminal hôte est référencé 10b et identique au terminal 10a de la figure 1 a.Data Assistant ") or other In Figure 1b, the host terminal is referenced 10b and identical to the terminal 10a of Figure 1a.
En connectant le téléphone mobile 1 1 b au terminal 10b par l'intermédiaire d'un câble USB, trois périphériques du téléphone mobile 11 b sont alors accessibles par le terminal 10b via le même port USB :By connecting the mobile phone 1 1b to the terminal 10b via a USB cable, three devices of the mobile phone 11b are then accessible by the terminal 10b via the same USB port:
- une mémoire du téléphone mobile 1 1 b ; - un module d'accès au réseau du téléphone mobile 1 1 b, en l'espèce un modem d'accès au réseau mobile du téléphone 1 1 b ; eta memory of the mobile phone 1 1 b; - A network access module of the mobile phone 1 1b, in this case a mobile network access modem of the phone 1 1 b; and
- une carte à puce, ici une carte "SIM" ("Subscriber Identity Module"), utilisée par le module d'accès au réseau pour des applications de téléphonie.- A smart card, here a SIM card ("Subscriber Identity Module"), used by the network access module for telephony applications.
Dans ce deuxième exemple de réalisation, le téléphone 1 1 b peut jouer le rôle d'une carte réseau ou d'un modem apte à fournir un accès au réseau mobile du téléphone 1 1 b, vis-à-vis du terminal hôte 10b. En ce qui concerne l'utilisation de la carte SIM du module d'accès réseau comme carte à puce, on utilise de préférence pour le terminal 10b un pilote virtuel tel que décrit dans la demande de brevet publiée sous le numéro WO2005/036822. Un tel pilote est susceptible d'être utilisé aussi bien avec une liaison filaire qu'avec une liaison non filaire, par exemple bluetooth, entre le terminal 10b et le terminal de communication 11 b. De la sorte, le terminal 10b peut accéder à la carte SIM du terminal de communication 11 b comme s'il s'agissait d'une carte à puce insérée dans un lecteur local du terminal 10b, et donc en faisant abstraction du lien USB et des contraintes d'accès liées à l'intégration de la carte SIM dans l'environnement du terminal de communication 11 b. Selon le même principe, un pilote virtuel est utilisable également pour le pilotage du module d'accès au réseau, de manière à ce que les programmes d'accès au réseau fonctionnent de la même manière que si le module d'accès au réseau était un module installé localement sur le terminal 10b.In this second exemplary embodiment, the telephone 11b may act as a network card or a modem capable of providing access to the mobile network of the telephone 11b, vis-à-vis the host terminal 10b. With regard to the use of the SIM card of the network access module as a smart card, preferably uses for the terminal 10b a virtual driver as described in the patent application published under the number WO2005 / 036822. Such a driver is likely to be used with both a wired link and a non-wired link, for example bluetooth, between the terminal 10b and the communication terminal 11b. In this way, the terminal 10b can access the SIM card of the communication terminal 11b as if it were a smart card inserted into a local reader of the terminal 10b, and thus by ignoring the USB link and access constraints related to the integration of the SIM card in the environment of the communication terminal 11 b. According to the same principle, a virtual driver can also be used for controlling the access module to the network, so that access programs to the network operate in the same way as if the access module to the network was a module installed locally on the terminal 10b.
La suite de la description se réfère aussi bien au premier exemple de réalisation (clé USB 11a) qu'au deuxième exemple de réalisation (terminal de communication 11 b) du dispositif externe de stockage.The following description refers both to the first embodiment (USB key 11a) that the second embodiment (communication terminal 11 b) of the external storage device.
Le dispositif externe de stockage 11a (11 b) comprend des moyens de stockage de données, comprenant une mémoire, partagée de manière classique en deux zones :The external storage device 11a (11b) comprises data storage means, comprising a memory, conventionally shared in two zones:
- une zone système qui contient :a system area that contains:
- un fichier contenant un système d'exploitation,a file containing an operating system,
- un programme d'amorçage, couramment appelé "boot" ou "bootstrap", situé dans des premiers octets de la zone système, adapté pour être déclenché par le BIOS d'un terminal hôte et pour démarrer le système d'exploitation,a boot program, commonly called "boot" or "bootstrap", located in first bytes of the system area, adapted to be triggered by the BIOS of a host terminal and to boot the operating system,
- une zone utilisateur destinée à héberger des données et des programmes de l'utilisateur : documents de travail, logiciels, fichiers de configurations, etc. L'invention utilise un découpage spécifique de la mémoire du dispositif de stockage externe 11a (11 b), servant à la mise en œuvre du procédé selon l'invention.- a user area for hosting user data and programs: working documents, software, configuration files, etc. The invention uses a specific division of the memory of the external storage device 11a (11b), used to implement the method according to the invention.
Une forme de réalisation particulière de la mémoire du dispositif externe de stockage 11a (11 b) selon l'invention va maintenant être décrit en relation avec la figure 2.A particular embodiment of the memory of the external storage device 11a (11b) according to the invention will now be described in relation to FIG. 2.
La mémoire représentée sur cette figure 2 est structurée, découpée en quatre blocs 20, 21 , 22 et 23. L'ensemble de ces blocs constituent une partition de la mémoire. Le premier bloc mémoire 20 correspond à une zone d'amorçage sécurisée. Ce premier bloc 20 comprend un programme d'amorçage B20, ou programme de boot, ayant pour rôle de déclencher le chargement d'un noyau d'un système d'exploitation dans un terminal hôte, ce noyau étant lui-même stocké dans le deuxième bloc mémoire 21. Le premier bloc mémoire 20 est à accès en écriture sécurisé. Selon un premier exemple de réalisation, ce bloc de mémoire est du type mémoire morte ROM (Read OnIy Memory), rendant impossible la modification des données qui y sont stockées. Selon un deuxième exemple de réalisation, l'accès en écriture à ce bloc mémoire est possible, sous réserve de disposer d'un code d'accès. Une mise à jour est alors possible pour un administrateur autorisé disposant de ce code d'accès. Dans ce deuxième exemple de réalisation, on utilise par exemple une mémoire couplée à une carte à puce, par exemple la mémoire d'une clé USB comprenant une carte à puce. La mise à jour est alors possible :The memory represented in this FIG. 2 is structured, divided into four blocks 20, 21, 22 and 23. All of these blocks constitute a partition of the memory. The first memory block 20 corresponds to a secure boot area. This first block 20 comprises a boot program B20, or boot program, whose role is to trigger the loading of a kernel of an operating system in a host terminal, the kernel itself being stored in the second memory block 21. The first memory block 20 has secure write access. According to a first exemplary embodiment, this memory block is of the read-only memory (ROM) type, making it impossible to modify the data stored therein. According to a second exemplary embodiment, write access to this memory block is possible, provided that an access code is available. An update is then possible for an authorized administrator with this access code. In this second exemplary embodiment, use is made for example of a memory coupled to a smart card, for example the memory of a USB key comprising a smart card. The update is then possible:
- via l'interface série de la carte à puce, débloquée par le code d'accès de l'administrateur autorisé,- via the serial interface of the smart card, unlocked by the access code of the authorized administrator,
- dans le cas où la carte à puce offre des moyens d'accès à un réseau mobile, par exemple par envoi d'un "SMS" (de l'anglais "Short Message Service") signé. La mise à jour de la mémoire est alors effectuée selon un mécanisme de configuration automatique dit "OTA" (de l'anglais "Over The Air"). L'avantage d'une telle mise à jour est qu'elle utilise une interface complètement maîtrisée par un opérateur de téléphonie mobile. L'administrateur autorisé effectue alors sa mise à jour par l'intermédiaire de l'opérateur.- In the case where the smart card provides means of access to a mobile network, for example by sending a "SMS" (short message service) signed. The update of the memory is then performed according to an automatic configuration mechanism called "OTA" (of the English "Over The Air"). The advantage of such an update is that it uses an interface completely controlled by a mobile operator. The authorized administrator then updates it via the operator.
Le deuxième bloc mémoire 21 est appelé zone système. Ce deuxième bloc 21 comprend un fichier S21 unique compressé, signé numériquement au moyen d'une clé privée propre à un administrateur autorisé. De manière classique, une clé publique permettant une vérification de ladite signature numérique est associée à la clé privée de signature. Le fichier S21 comprend notamment des données nécessaires au démarrage du système d'exploitation sur le terminal hôte ainsi qu'à la lecture et l'exploitation de données stockées dans les blocs mémoire 22 et 23. En particulier, le fichier S21 comprend :The second memory block 21 is called the system area. This second block 21 comprises a single compressed file S21, digitally signed by means of a private key specific to an authorized administrator. Conventionally, a public key for verifying said digital signature is associated with the private key signature. The file S21 notably comprises data necessary for starting the operating system on the host terminal as well as for reading and operating data stored in the memory blocks 22 and 23. In particular, the file S21 comprises:
- le noyau du système d'exploitation destiné à être lancé sur le terminal hôte,- the kernel of the operating system intended to be launched on the host terminal,
- un pilote de gestion de données adapté pour construire un système de fichiers pour l'accès à des données stockées dans les blocs 22 et 23 de la mémoire,a data management driver adapted to construct a file system for accessing data stored in blocks 22 and 23 of the memory,
- un pilote de périphérique adapté pour la saisie d'un mot de passe sur le clavier du terminal hôte, ou d'une donnée d'authentification de l'utilisateur,a device driver suitable for entering a password on the keyboard of the host terminal, or user authentication data,
Une signature numérique du fichier S21 est stockée dans la mémoire de manière à permettre la vérification de l'intégrité du fichier S21. Cette signature est stockée dans la zone système, par exemple en début du bloc mémoire 21 , de manière à être facilement accessible. La clé publique de l'administrateur autorisé qui a signé le fichier S21 est stockée dans le bloc mémoire 20 correspondant à la zone de boot. Ainsi, la clé publique de l'administrateur est disponible, lors de l'exécution du programme d'amorçage, pour effectuer la vérification de la signature du fichier S21.A digital signature of the file S21 is stored in the memory so as to allow verification of the integrity of the file S21. This signature is stored in the system area, for example at the beginning of the memory block 21, so as to be easily accessible. The public key of the authorized administrator who signed the file S21 is stored in the memory block 20 corresponding to the boot area. Thus, the public key of the administrator is available, during the execution of the boot program, to verify the signature of the file S21.
Le troisième bloc mémoire 22 correspond à une zone de configuration selon l'invention. Il comprend un fichier de configuration C22 contenant une liste d'identifiants signés de terminaux hôtes potentiels autorisés, pouvant être utilisés via le dispositif externe de stockage 11a (11 b). Cette liste est appelée liste blanche. Dans un exemple de réalisation de l'invention, la liste blanche comprend un ensemble d'enregistrements, relatifs à des terminaux hôtes potentiels respectifs et structurés par exemple de la façon suivante : [ identifiant du terminal | identifiant d'un administrateur | signature de l'administrateur ] ; le caractère 'l' représentant une concaténation.The third memory block 22 corresponds to a configuration zone according to the invention. It comprises a configuration file C22 containing a list of signed identifiers of authorized potential host terminals that can be used via the external storage device 11a (11b). This list is called a white list. In an exemplary embodiment of the invention, the white list comprises a set of records relating to respective potential host terminals and structured, for example, as follows: [Terminal ID | administrator ID | signature of the administrator]; the character 'l' represents a concatenation.
Le premier champ "identifiant du terminal" est une référence qui permet d'identifier le terminal de façon unique. Il est déterminé à partir de données relatives à des moyens matériels intrinsèques au terminal, c'est-à-dire à partir de caractéristiques ou paramètres concernant des moyens matériels appartenant au terminal. Par exemple, il peut être déterminé à partir d'un ou de plusieurs paramètres parmi lesquels : un numéro de série d'un disque dur, un numéro de série d'un processeur, un numéro de série d'une carte mère, une base de registre, une taille de mémoire, un temps de réponse du système de référence (processeur, connexion réseau, etc.), etc. Une méthode d'homogénéisation des paramètres peut éventuellement être utilisée, par souci de simplification, de sorte que les paramètres choisis pour identifier le terminal appartiennent au même espace de représentation. Cela permet d'avoir un format de codage uniforme pour chacun des paramètres ; une telle homogénéisation peut être obtenue par application de fonctions de hachage à certains des paramètres. Un autre exemple de détermination d'un identifiant unique de terminal est divulguée dans la demande publiée sous le numéro EP1667486. Un deuxième champ identifiant de l'administrateur autorisé est par exemple un nom de serveur d'administration alloué par l'entreprise et identifiant le serveur d'administration de façon unique, ou un nom d'administrateur, personne physique, ou un identifiant de cet administrateur. Dans ce dernier cas, l'administrateur dispose de moyens informatiques qui lui permettent de faire des opérations d'administration, telles que des signatures, des mises à jour, etc.The first "terminal identifier" field is a reference that uniquely identifies the terminal. It is determined from data relating to intrinsic hardware means to the terminal, that is to say from characteristics or parameters relating to hardware means belonging to the terminal. For example, it can be determined from one or more parameters among which: a serial number of a hard disk, a serial number of a processor, a serial number of a motherboard, a base register, a memory size, a response time of the reference system (processor, network connection, etc.), etc. A method for homogenizing the parameters may optionally be used, for the sake of simplification, so that the parameters chosen to identify the terminal belong to the same representation space. This makes it possible to have a uniform coding format for each of the parameters; such homogenization can be achieved by applying hash functions to some of the parameters. Another example of determining a unique terminal identifier is disclosed in the published application under the number EP1667486. A second identifier field of the authorized administrator is for example an administration server name allocated by the company and uniquely identifying the administration server, or an administrator name, natural person, or an identifier thereof. administrator. In the latter case, the administrator has IT resources that allow him to perform administrative operations, such as signatures, updates, etc.
La concaténation des champs associés à l'identifiant du terminal et à l'identifiant de l'administrateur est signée numériquement par l'administrateur au moyen d'une clé privée propre à l'administrateur. La signature obtenue est concaténée aux champs précédents pour obtenir l'enregistrement relatif au terminal dans la liste blanche. Dans une première réalisation de l'invention, la clé publique associée à la clé privée de l'administrateur signataire est stockée dans le premier bloc de mémoire 20 correspondant à la zone d'amorçage.The concatenation of the fields associated with the identifier of the terminal and the identifier of the administrator is digitally signed by the administrator by means of a private key specific to the administrator. The signature obtained is concatenated with the preceding fields to obtain the record relating to the terminal in the whitelist. In a first embodiment of the invention, the public key associated with the private key of the signatory administrator is stored in the first memory block 20 corresponding to the boot area.
Dans une deuxième réalisation de l'invention, la clé publique de l'administrateur signataire est stockée dans le deuxième bloc 21 de la mémoire correspondant à la zone système. Dans les deux cas, la clé publique de l'administrateur signataire est accessible lors du lancement du système d'exploitation dont un module est adapté pour vérifier l'intégrité des données relatives à un terminal de la liste blanche des identifiants. La liste blanche ne peut être modifiée que par un administrateur autorisé pour lequel une clé publique associée à une clé privée de signature est déjà stockée dans le premier bloc 20, ou le deuxième bloc 21.In a second embodiment of the invention, the public key of the signing administrator is stored in the second block 21 of the memory corresponding to the system area. In both cases, the public key of the signing administrator is accessible when launching the operating system, a module of which is adapted to verify the integrity of the data relating to a terminal of the white list of identifiers. The whitelist can only be modified by an authorized administrator for whom a public key associated with a private signature key is already stored in the first block 20, or the second block 21.
On remarquera qu'avec cette structure de liste, où chacun des administrateurs signataires est désigné et où chaque enregistrement relatif à un identifiant de terminal est signé par l'administrateur désigné, il est possible d'avoir différents administrateurs signataires d'un ou de plusieurs enregistrements de la liste blanche. Cela peut être intéressant dans une organisation d'entreprise où différents administrateurs sont en charge de différentes applications soumises à des licences logicielles, applications pour lesquelles il est donc nécessaire de vérifier que leur lancement sur un terminal est autorisé, selon les termes de la licence.It will be noted that with this list structure, where each of the signatory administrators is designated and where each record relating to a terminal identifier is signed by the designated administrator, it is possible to have different directors who are signatories of one or more whitelist records. This can be interesting in an enterprise organization where different administrators are in charge of different applications subject to software licenses, applications for which it is therefore necessary to verify that their launch on a terminal is authorized, according to the terms of the license.
Dans une variante de réalisation de l'invention, un enregistrement de la liste blanche relatif à un terminal hôte particulier, comprend, outre l'identifiant de terminal et l'identifiant de l'administrateur, une information temporelle de validité, par exemple une date limite, qui permet à l'administrateur signataire de préciser qu'un dispositif peut être utilisé sur le terminal particulier pendant une durée limitée et jusqu'à la date limite. La concaténation de ces trois champs est signée par l'administrateur signataire. Cette variante est utile, d'une part pour prendre en compte des dates limites d'utilisation dans des licences logicielles et d'autre part, pour s'affranchir d'une mise à jour de la liste sur le dispositif 11a, 11 b lorsque la date limite d'utilisation d'une licence logicielle est arrivée. Le quatrième bloc 23 correspond à la zone utilisateur. De manière, classique, cette zone de la mémoire comprend des fichiers personnels de l'utilisateur. L'ensemble des données et/ou fichiers de la zone utilisateur est stocké sous forme d'un fichier F23 unique, chiffré et de préférence compressé. La zone utilisateur est débloquée par un mot de passe connu uniquement de l'utilisateur.In an alternative embodiment of the invention, a record of the white list relating to a particular host terminal, comprises, in addition to the terminal identifier and the identifier of the administrator, a temporal information of validity, for example a date limit, which allows the signing administrator to specify that a device can be used on the particular terminal for a limited time and until the deadline. The concatenation of these three fields is signed by the signatory administrator. This variant is useful, on the one hand to take into account deadlines for use in software licenses and on the other hand, to overcome an update of the list on the device 11a, 11b when the deadline for using a software license has arrived. The fourth block 23 corresponds to the user zone. Typically, this area of the memory includes personal files of the user. All the data and / or files of the user area is stored as a single F23 file, encrypted and preferably compressed. The user area is unlocked by a password known only to the user.
Les troisième et quatrième blocs de mémoire 22, 23 sont de préférence réinscriptibles, réalisés par exemple par des mémoires de type flash.The third and fourth memory blocks 22, 23 are preferably rewritable, made for example by flash memories.
Les étapes d'un procédé d'utilisation du terminal hôte 10a par le dispositif externe de stockage 11a connecté audit terminal 10a, selon un mode particulier de réalisation de l'invention, vont maintenant être décrites en relation avec la figure 3.The steps of a method of using the host terminal 10a by the external storage device 11a connected to said terminal 10a, according to a particular embodiment of the invention, will now be described in relation to FIG.
Le procédé d'utilisation du terminal hôte 10b via le dispositif externe de stockage 11 b est analogue la description qui suit.The method of using the host terminal 10b via the external storage device 11b is similar to the following description.
Dans une étape initiale u30, un utilisateur 30, porteur du dispositif externe de stockage 11a insère ce dispositif 11a, dans le port USB du terminal 10a.In an initial step u30, a user 30 carrying the external storage device 11a inserts this device 11a into the USB port of the terminal 10a.
Dans une étape de démarrage u31 , l'utilisateur 30 démarre le terminal 10a, ici par mise sous tension.In a start step u31, the user 30 starts the terminal 10a, here by powering on.
Dans une étape t30 de lancement du système de base des entrées/sorties, le programme BIOS du terminal 10a s'exécute et recherche un programme d'amorçage. De manière connue, le programme BIOS exécute une procédure de détection des périphériques du terminal hôte 10a, pouvant être des périphériques internes au terminal et permanents, ou bien des périphériques externes et amovibles, connectés à ce terminal. Puis, il recherche parmi les périphériques détectés, en respectant un ordre prédéfini par une liste de démarrage, le premier périphérique contenant un secteur d'amorçage comprenant un programme d'amorçage de système d'exploitation. De façon standard, la liste de démarrage prescrit d'interroger les périphériques connectés au bus USB avant le périphérique interne constitué par le disque dur du terminal hôte 10a. Par conséquent, dans l'invention, c'est la zone de démarrage du dispositif externe de stockage 11a qui est détectée en premier et utilisée en priorité par rapport à un ou plusieurs disques durs éventuellement présents dans le terminal hôte 10a.In a step t30 I / O basic system startup, the BIOS program of the terminal 10a runs and looks for a boot program. In known manner, the BIOS program executes a device detection procedure of the host terminal 10a, which can be devices internal to the terminal and permanent, or external and removable devices connected to this terminal. Then, it searches among the detected devices, in a sequence predefined by a start list, the first device containing a boot sector including an operating system boot program. As a standard, the start list requires interrogating the devices connected to the USB bus before the internal device constituted by the hard disk of the host terminal 10a. Therefore, in the invention, it is the starting zone the external storage device 11a which is detected first and used in priority with respect to one or more hard disks possibly present in the host terminal 10a.
Le programme BIOS est inscrit dans une mémoire morte du terminal hôte 10a ; il n'est pas modifiable.The BIOS program is written in a read-only memory of the host terminal 10a; it is not modifiable.
Dans une étape d30, le dispositif externe 11a réagit à la procédure de détection lancée par le terminal hôte 10a. Le programme BIOS du terminal 10a détecte la présence d'une mémoire de stockage sur le dispositif de stockage externe 11a. Le programme BIOS accède en lecture à la mémoire de stockage puis déclenche l'exécution du programme d'amorçage stocké dans la zone d'amorçage de la mémoire du dispositif 11a.In a step d30, the external device 11a responds to the detection procedure initiated by the host terminal 10a. The BIOS program of the terminal 10a detects the presence of a storage memory on the external storage device 11a. The BIOS program reads the storage memory and then triggers the execution of the boot program stored in the boot area of the memory of the device 11a.
Dans une étape t31 d'exécution, le terminal 10a exécute le programme d'amorçage.In a step t31 execution, the terminal 10a executes the boot program.
Dans une étape d31 , le programme d'amorçage accède en lecture à la zone système de la mémoire du dispositif 11a.In a step d31, the boot program reads the system area of the memory of the device 11a.
Dans une étape de test t32, le programme d'amorçage vérifie la signature du fichier S21 qui est stocké dans le bloc mémoire 21 du dispositif 11a, au moyen d'une clé publique stockée dans le bloc mémoire 20 correspondant à la zone d'amorçage. Dans le cas où la signature n'est pas valide, alors le procédé se termine. Si la signature est valide, alors, dans une étape t33, le noyau système est chargé dans une mémoire vive du terminal 10a et exécuté. En particulier, le système de fichiers permettant d'accéder à des données stockées dans les blocs mémoire 22 et 23 est construit. L'exécution du noyau système comprend l'exécution d'une routine selon l'invention qui provoque l'accès à la zone de configuration stockée dans le bloc mémoire 22 du dispositif 11a, 11 b.In a test step t32, the boot program verifies the signature of the file S21 which is stored in the memory block 21 of the device 11a, by means of a public key stored in the memory block 20 corresponding to the boot zone. . In the case where the signature is not valid, then the process ends. If the signature is valid, then, in a step t33, the system kernel is loaded into a RAM of the terminal 10a and executed. In particular, the file system for accessing data stored in the memory blocks 22 and 23 is constructed. The execution of the system core comprises the execution of a routine according to the invention which causes access to the configuration area stored in the memory block 22 of the device 11a, 11b.
Dans une étape d32, la routine accède en lecture au fichier de configuration C22 stocké dans le bloc mémoire 22 du dispositif 11a.In a step d32, the routine reads access to the configuration file C22 stored in the memory block 22 of the device 11a.
Dans une étape t34, le noyau système détermine un identifiant unique du terminal 10a, à partir de caractéristiques et/ou paramètres relatifs à des moyens matériels intrinsèques du terminal. Ces caractéristiques peuvent par exemple être obtenues à l'aide de requêtes au terminal. Une interface du noyau système peut être utilisée, ou une routine spécifique du noyau aux fins de l'obtention de ces paramètres.In a step t34, the system core determines a unique identifier of the terminal 10a, based on characteristics and / or parameters relating to intrinsic hardware means of the terminal. These characteristics can for example be obtained using requests to the terminal. A system kernel interface can be used, or a specific kernel routine for obtaining these parameters.
Dans une étape de recherche t35, le noyau système recherche l'identifiant unique qu'il vient de déterminer dans la liste blanche des identifiants de terminaux récupérée dans la zone de configuration à l'étape d32. Si l'identifiant n'est pas trouvé dans la liste blanche, alors une procédure de mise à jour, décrite en relation avec la figure 4 est exécutée.In a search step t35, the system kernel searches for the unique identifier that it has just determined in the white list of terminal identifiers retrieved in the configuration area in step d32. If the identifier is not found in the whitelist, then an updating procedure described in connection with FIG. 4 is executed.
Si l'identifiant figure dans un enregistrement de la liste blanche, alors dans une étape t36 de vérification, le noyau système vérifie la signature de cet enregistrement qui comprend l'identifiant unique du terminal. Si la vérification de la signature est positive, alors le noyau système déclenche, dans une étape t37, l'exécution d'un module d'authentification conçu pour demander à l'utilisateur 30 de saisir un mot de passe sur le clavier du terminal 10a.If the identifier is in a record of the whitelist, then in a verification step t36, the system kernel verifies the signature of this record which includes the unique identifier of the terminal. If the verification of the signature is positive, then the system kernel triggers, in a step t37, the execution of an authentication module designed to ask the user 30 to enter a password on the keyboard of the terminal 10a. .
Dans une étape u32, l'utilisateur 30 saisit son mot de passe sur le clavier du terminal 10a, mot de passe qui est ensuite analysé par le module d'authentification afin d'authentifier l'utilisateur du terminal 10a. Les étapes t37 et u32 peuvent éventuellement faire intervenir une carte à puce et un pilote de périphérique nécessaire au fonctionnement de cette carte à puce. En cas d'échec de l'authentification, le procédé s'arrête, à moins que l'utilisateur 30 ne soit autorisé à effectuer plusieurs tentatives d'authentification. De préférence, en cas d'échec, le démarrage complet du système d'exploitation sur le terminal 10a est interrompu de manière à ce qu'un utilisateur non authentifié ne soit pas en mesure d'utiliser le terminal.In a step u32, the user 30 enters his password on the keyboard of the terminal 10a, which password is then analyzed by the authentication module to authenticate the user of the terminal 10a. Steps t37 and u32 may optionally involve a smart card and a device driver necessary for the operation of this smart card. If authentication fails, the process stops unless the user is allowed to perform several authentication attempts. Preferably, in case of failure, the complete start of the operating system on the terminal 10a is interrupted so that an unauthenticated user is not able to use the terminal.
Dans une étape t38, en cas d'authentification réussie, le pilote de gestion de données obtient une clé de déchiffrement des données de la zone utilisateur correspondant au bloc mémoire 23. Cette clé de déchiffrement est obtenue soit par interrogation de la carte à puce, conditionnellement à la présentation d'un mot de passe valide, soit par déchiffrement, au moyen du mot de passe fourni, d'une clé de déchiffrement stockée chiffrée dans la zone utilisateur. Le mot de passe fourni par l'utilisateur est également utilisable comme clé pour le chiffrement/déchiffrement des données de la zone utilisateur. Le pilote de gestion de données utilise la clé de déchiffrement pour déchiffrer le fichier F23 stocké chiffré dans la zone utilisateur. Le pilote construit ensuite dans une mémoire vive du terminal 10a, une structure logique de fichiers, sous forme d'arborescence des répertoires et fichiers, à partir de tout ou partie des données contenues dans le fichier F23 déchiffré. Les fichiers de cette arborescence sont ainsi accessibles par l'utilisateur selon des droits de lecture, écriture, exécution propres aux fichiers. Par exemple, l'utilisateur peut lancer un logiciel soumis à licence sur le terminal 10a puisqu'il a été vérifié lors d'étapes précédemment décrites que le terminal 10a était un terminal autorisé pour le dispositif 11a, notamment pour le lancement d'applications de l'utilisateur. Dans une étape d34, à la demande du système d'exploitation qui s'exécute sur le terminal 10a, et suite à des commandes de l'utilisateur 30, le dispositif 1 1 a lit et écrit dans la zone utilisateur.In a step t38, in the event of successful authentication, the data management driver obtains a decryption key of the data of the user zone corresponding to the memory block 23. This decryption key is obtained either by interrogation of the smart card, conditional on the presentation of a valid password, or by decryption, using the password provided, a stored decryption key encrypted in the user area. The password provided by the user can also be used as a key for the encryption / decryption of data in the user area. The Data Management Driver Uses the Decryption Key to Decrypt the F23 File stored encrypted in the user area. The driver then builds in a random access memory of the terminal 10a, a logical file structure, in the form of a tree of directories and files, from all or part of the data contained in the decrypted file F23. The files of this tree are thus accessible by the user according to rights of reading, writing, execution specific files. For example, the user can launch software that is licensed on the terminal 10a since it has been verified during the steps previously described that the terminal 10a was an authorized terminal for the device 11a, in particular for launching applications of the user. In a step d34, at the request of the operating system that runs on the terminal 10a, and following commands from the user 30, the device 1 1 reads and writes in the user area.
Une procédure de mise à jour de la liste blanche des identifiants de terminaux autorisés va maintenant être décrite en relation avec la figure 4.A procedure for updating the white list of authorized terminal identifiers will now be described in connection with FIG. 4.
Cette procédure correspond à une mise à jour de la liste blanche des identifiants, dite en mode connecté (le terme couramment utilisé est le terme anglais "online"), car soumise à des conditions d'accès au réseau comme décrit ultérieurement. Cette procédure est exécutée à chaque fois qu'un identifiant de terminal n'est pas trouvée dans la liste blanche au cours de l'étape t35 selon la figure 3. Elle consiste à interroger un administrateur pour savoir s'il autorise l'utilisation du terminal 10a, par le dispositif 11 a. Le cas échéant, l'identifiant du terminal 10a est ajouté à la liste blanche des terminaux autorisés qui figure dans le fichier C22 du troisième bloc mémoire 22. Une mise à jour en mode déconnecté, c'est-à-dire sans condition préalable d'accès au réseau, existe et a déjà été présentée précédemment. Elle consiste à mettre à jour la liste blanche directement dans la mémoire du dispositif.This procedure corresponds to an update of the white list of identifiers, called in connected mode (the term commonly used is the term "online"), because subject to conditions of access to the network as described later. This procedure is executed each time a terminal identifier is not found in the whitelist in step t35 according to FIG. 3. It consists in interrogating an administrator to know whether he authorizes the use of the terminal. terminal 10a, by the device 11 a. If necessary, the identifier of the terminal 10a is added to the authorized terminals whitelist that appears in the file C22 of the third memory block 22. An update in disconnected mode, that is to say without any precondition of access to the network, exists and has already been presented previously. It consists in updating the whitelist directly in the memory of the device.
Si, au cours de l'étape de recherche t35 selon la figure 3 qui apparaît en pointillés sur la figure 4, l'identifiant du terminal n'est pas trouvé dans la liste blanche des terminaux autorisés, alors, dans une étape d'envoi t40, l'identifiant du terminal déterminé à l'étape t34 est envoyé à un administrateur 40. On rappelle qu'un administrateur est assimilé à un serveur d'administration. A cette fin, un module de mise à jour de la liste blanche du système d'exploitation établit une connexion réseau avec l'administrateur 40. Par exemple, le module de mise à jour de la liste blanche utilise une connexion Ethernet du terminal 10a au réseau de l'entreprise. Dans un autre exemple de réalisation où le dispositif est couplé à une carte SIM, le module de mise à jour de la liste blanche utilise une connexion radio-cellulaire.If, during the search step t35 according to FIG. 3 which appears in dashed lines in FIG. 4, the identifier of the terminal is not found in the whitelist of authorized terminals, then, in a sending step t40, the identifier of the terminal determined in step t34 is sent to an administrator 40. recalls that an administrator is treated as an administration server. For this purpose, an update module of the operating system whitelist establishes a network connection with the administrator 40. For example, the whitelist update module uses an Ethernet connection from the terminal 10a to the network of the company. In another embodiment where the device is coupled to a SIM card, the whitelist update module uses a radio-cellular connection.
Dans une étape a40 de vérification d'autorisation, l'administrateur 40 détermine s'il autorise l'utilisation du terminal 10a comme terminal hôte pour démarrer le système d'exploitation contenu dans le dispositif 11a. Par exemple, l'administrateur 40 autorise l'utilisation du terminal 10a si celui-ci appartient au parc de terminaux de l'entreprise. Dans un autre exemple de réalisation, le lancement d'un système d'exploitation depuis le dispositif externe 11a est autorisé sur un nombre maximum prédéfini de terminaux. Si le nombre maximum prédéfini de terminaux hôtes n'est pas atteint, alors le lancement du système d'exploitation du dispositif 11a sur le terminal 10a est autorisé. Si l'utilisation du terminal 10a n'est pas autorisée, alors l'administrateur 40 renvoie au module de mise à jour de la liste blanche en cours d'exécution sur le terminal 10a un message de refus non représenté, ce qui interrompt le lancement du système d'exploitation.In an authorization checking step a40, the administrator 40 determines whether it allows the use of the terminal 10a as a host terminal to start the operating system contained in the device 11a. For example, the administrator 40 authorizes the use of the terminal 10a if it belongs to the terminal park of the company. In another embodiment, the launching of an operating system from the external device 11a is allowed on a predefined maximum number of terminals. If the predefined maximum number of host terminals is not reached, then the launching of the operating system of the device 11a on the terminal 10a is allowed. If the use of the terminal 10a is not allowed, then the administrator 40 returns to the update module of the whitelist running on the terminal 10a a refusal message not shown, which interrupts the launch of the operating system.
Dans une étape a41 d'envoi d'une mise à jour, consécutive à une vérification d'autorisation positive, l'administrateur 40 renvoie au module de mise à jour de la liste blanche en cours d'exécution sur le terminal 10a un nouvel enregistrement relatif au terminal 10a signé au moyen de sa clé privée de signature.In a step a41 of sending an update, following a positive authorization check, the administrator 40 returns to the update module of the whitelist running on the terminal 10a a new record related to the terminal 10a signed by means of his private key signature.
Dans une étape t41 de mise à jour, le module de mise à jour de la liste blanche met à jour la liste blanche chargée dans la mémoire vive du terminal 10a, 10b en ajoutant à la liste blanche le nouvel enregistrement reçu de l'administrateur 40. In an update step t41, the whitelist update module updates the white list loaded in the terminal's RAM 10a, 10b by adding to the whitelist the new record received from the administrator 40 .

Claims

REVENDICATIONS
1. Procédé d'utilisation d'un terminal hôte à l'aide d'un dispositif externe connecté au terminal et hébergeant au moins un programme, comprenant : - lors d'une phase de démarrage du terminal, une étape (t33) de démarrage de l'exécution du programme hébergé par le dispositif externe, sur le terminal hôte, caractérisé par le fait que, le dispositif externe mémorisant une liste, dite "liste blanche", d'identifiants de terminaux autorisés, il est prévu : - une étape (t34) de détermination, par le programme du dispositif externe, d'un identifiant du terminal à partir de données relatives à des moyens matériels intrinsèques du terminal,A method of using a host terminal with the aid of an external device connected to the terminal and hosting at least one program, comprising: during a startup phase of the terminal, a step (t33) of starting up of the execution of the program hosted by the external device, on the host terminal, characterized in that, the external device storing a list, called "white list", of authorized terminal identifiers, there is provided: - a step (t34) determining, by the program of the external device, an identifier of the terminal from data relating to intrinsic hardware means of the terminal,
- une étape (t35) de vérification de l'identifiant déterminé, au cours de laquelle le programme du dispositif externe vérifie l'appartenance de l'identifiant déterminé à la liste blanche, l'exécution du programme étant poursuivie si la vérification de l'identifiant est positive.a step (t35) for verifying the determined identifier, during which the program of the external device verifies the membership of the determined identifier in the whitelist, the execution of the program being continued if the verification of the identifier is positive.
2. Procédé selon la revendication 1 , dans lequel, le dispositif externe stockant un programme d'amorçage et un système d'exploitation, il est prévu, lors de la phase de démarrage du terminal,2. Method according to claim 1, wherein, the external device storing a boot program and an operating system, it is expected during the terminal startup phase,
- une étape (t31 ) d'exécution dudit programme d'amorçage accessible via le dispositif externe.a step (t31) for executing said boot program accessible via the external device.
- l'exécution dudit programme d'amorçage déclenchant l'étape (t33) de démarrage du système d'exploitation.- The execution of said boot program triggering the step (t33) of the boot of the operating system.
3. Procédé selon la revendication 2, comprenant en outre une étape (t32) de vérification de l'intégrité du système d'exploitation hébergé par le dispositif externe, réalisée par le programme d'amorçage, l'étape (t33) de démarrage de l'exécution du système d'exploitation étant exécutée, seulement si la vérification est positive. The method of claim 2 further comprising a step (t32) of verifying the integrity of the operating system hosted by the external device, performed by the boot program, the boot step (t33) of Execution of the operating system is executed only if the verification is positive.
4. Procédé selon la revendication 1 , comprenant :The method of claim 1 comprising:
- si la vérification de l'identifiant est négative, une étape (t40) d'envoi dudit identifiant vers un administrateur,if the verification of the identifier is negative, a step (t40) of sending said identifier to an administrator,
- une étape (a40) de contrôle de l'identifiant par l'administrateur afin de déterminer s'il est autorisé,a step (a40) of checking the identifier by the administrator to determine whether it is authorized,
- si le contrôle est positif, une étape (a41 ) d'envoi par l'administrateur dudit identifiant vers le système d'exploitation, etif the control is positive, a step (a41) of sending by the administrator of said identifier to the operating system, and
- une étape (t41 ) d'enregistrement dudit identifiant dans la liste blanche d'identifiants autorisés.a step (t41) of recording said identifier in the whitelist of authorized identifiers.
5. Procédé selon la revendication 1 , dans lequel la liste blanche d'identifiants autorisés comprend en outre, pour au moins un identifiant, une information temporelle de validité.5. The method of claim 1, wherein the white list of authorized identifiers further comprises, for at least one identifier, temporal information validity.
6. Dispositif (1 1a, 11 b) apte à connecté à un terminal hôte, comprenant des moyens de stockage contenant :6. Device (11a, 11b) capable of connected to a host terminal, comprising storage means containing:
- au moins un programme,- at least one program,
- une liste dite "liste blanche" d'identifiants de terminaux hôtes autorisés, ledit programme étant apte, au démarrage de son exécution, à - déterminer un identifiant d'un terminal hôte auquel ledit dispositif est connecté, à partir de données relatives à des moyens matériels intrinsèques du terminal - vérifier l'appartenance de l'identifiant déterminé à la liste blanche, - poursuivre son exécution seulement si la vérification est positive.a list called "white list" of identifiers of authorized host terminals, said program being able, at start of its execution, to determine an identifier of a host terminal to which said device is connected, from data relating to intrinsic hardware means of the terminal - check the identity of the determined identifier to the whitelist, - continue its execution only if the verification is positive.
7. Dispositif selon la revendication 6, dans lequel les moyens de stockage comprennent un programme d'amorçage et un système d'exploitation, ledit programme d'amorçage vérifiant au démarrage de son exécution l'intégrité du système d'exploitation hébergé par le dispositif externe, le démarrage de l'exécution du système d'exploitation ne s'exécutant que si la vérification est positive.7. Device according to claim 6, wherein the storage means comprise a boot program and an operating system, said boot program verifying at startup the integrity of the operating system hosted by the device. external, starting running the operating system only executes if the check is positive.
8. Dispositif selon la revendication 6, dans lequel ledit programme est apte, si la vérification de l'identifiant est négative, à :8. Device according to claim 6, wherein said program is adapted, if the verification of the identifier is negative, to:
- envoyer ledit identifiant vers un administrateur apte à déterminer si ledit identifiant est autorisé, et le cas échéant, à renvoyer ledit identifiant,sending said identifier to an administrator able to determine if said identifier is authorized, and if necessary, to return said identifier,
- recevoir ledit identifiant,- receive said identifier,
- si le contrôle est positif, une étape (a41 ) d'envoi par l'administrateur dudit identifiant vers le système d'exploitation, etif the control is positive, a step (a41) of sending by the administrator of said identifier to the operating system, and
- enregistrer ledit identifiant dans la liste blanche des identifiants de terminaux hôtes autorisés.- register said identifier in the white list of authorized host terminal identifiers.
9. Programme destiné à être installé dans une mémoire d'un dispositif de stockage adapté pour être connecté à un terminal hôte, ledit dispositif mémorisant une liste, dite "liste blanche", d'identifiants de terminaux autorisés, et comprenant des portions de code pour :9. Program intended to be installed in a memory of a storage device adapted to be connected to a host terminal, said device storing a list, called "white list", of authorized terminal identifiers, and comprising portions of code for :
- déterminer un identifiant du terminal hôte à partir de données relatives à des moyens matériels intrinsèques du terminal, - vérifier l'appartenance de l'identifiant déterminé à la liste blanche,determining an identifier of the host terminal from data relating to intrinsic hardware means of the terminal, checking the membership of the determined identifier to the whitelist,
- poursuivre son exécution si la vérification de l'identifiant est positive. - continue execution if the verification of the identifier is positive.
PCT/FR2009/050717 2008-04-21 2009-04-17 Method of use of a host terminal by an external device connected to the terminal WO2009138641A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0852682 2008-04-21
FR0852682 2008-04-21

Publications (1)

Publication Number Publication Date
WO2009138641A1 true WO2009138641A1 (en) 2009-11-19

Family

ID=39832304

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2009/050717 WO2009138641A1 (en) 2008-04-21 2009-04-17 Method of use of a host terminal by an external device connected to the terminal

Country Status (1)

Country Link
WO (1) WO2009138641A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014139158A1 (en) * 2013-03-15 2014-09-18 Intel Corporation Method and apparatus to authenticate a personal device to access an enterprise network
WO2019039851A1 (en) * 2017-08-23 2019-02-28 삼성전자 주식회사 Method for establishing connection to external device via usb interface, and electronic device therefor
CN110929259A (en) * 2019-11-14 2020-03-27 腾讯科技(深圳)有限公司 Process security verification white list generation method and device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001061591A1 (en) * 2000-02-15 2001-08-23 Sony Electronics, Inc. Method and apparatus for implementing revocation in broadcast networks
US20070288886A1 (en) * 2005-04-26 2007-12-13 Apple Inc. Run-time code injection to perform checks

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001061591A1 (en) * 2000-02-15 2001-08-23 Sony Electronics, Inc. Method and apparatus for implementing revocation in broadcast networks
US20070288886A1 (en) * 2005-04-26 2007-12-13 Apple Inc. Run-time code injection to perform checks

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
AMIT SINGH: "Trusted Computing for Mac OS X", INTERNET ARTICLE, 6 January 2007 (2007-01-06), Online, pages 1 - 12, XP002505118, Retrieved from the Internet <URL:http://web.archive.org/web/20070106150844/http://www.osxbook.com/book/bonus/chapter10/tpm/> [retrieved on 20081121] *
ARMIT SINGH: ""TPM DRM" In Mac OS X: A Myth That Won't Die", INTERNET ARTICLE, 6 February 2008 (2008-02-06), Online, pages 1 - 9, XP002505117, Retrieved from the Internet <URL:http://web.archive.org/web/20080206090115/http://www.osxbook.com/book/bonus/chapter7/tpmdrmmyth/> [retrieved on 20081121] *
BRAD BERGERON: "HOWTO: Install and Boot OS X On a Flash Drive", INTERNET ARTICLE, 29 November 2006 (2006-11-29), Online, pages 1 - 23, XP002505116, Retrieved from the Internet <URL:http://blog.bradbergeron.com/2006/11/howto-install-and-boot-os-x-on-a-flash-drive/> [retrieved on 20081120] *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014139158A1 (en) * 2013-03-15 2014-09-18 Intel Corporation Method and apparatus to authenticate a personal device to access an enterprise network
US9119072B2 (en) 2013-03-15 2015-08-25 Intel Corporation Method and apparatus to authenticate a personal device to access an enterprise network
WO2019039851A1 (en) * 2017-08-23 2019-02-28 삼성전자 주식회사 Method for establishing connection to external device via usb interface, and electronic device therefor
US11068427B2 (en) 2017-08-23 2021-07-20 Samsung Electronics Co., Ltd. Method for establishing connection to external device via USB interface, and electronic device therefor
CN110929259A (en) * 2019-11-14 2020-03-27 腾讯科技(深圳)有限公司 Process security verification white list generation method and device
CN110929259B (en) * 2019-11-14 2021-09-28 腾讯科技(深圳)有限公司 Process security verification white list generation method and device

Similar Documents

Publication Publication Date Title
EP1616242B1 (en) Method and device for controlling an access to peripherals
EP2178016B1 (en) Method of operating on-board equipment, associated equipment and aircraft containing such equipment
CN102624699B (en) Method and system for protecting data
EP1987653B1 (en) Method and device for securely configuring a terminal
FR2989799A1 (en) METHOD FOR TRANSFERRING A DEVICE TO ANOTHER RIGHTS OF ACCESS TO A SERVICE
EP3241137B1 (en) Method carried out in an identity document and corresponding identity document
EP2024798B1 (en) Secure terminal configuration method and device by means of a boot data storage device
FR3048530B1 (en) OPEN AND SECURE SYSTEM OF ELECTRONIC SIGNATURE AND ASSOCIATED METHOD
EP2077515B1 (en) Device, systems and method for securely starting up a computer system
WO2009138641A1 (en) Method of use of a host terminal by an external device connected to the terminal
WO2019175482A1 (en) Secure data processing
EP2048576B2 (en) Secure method for updating a program that runs automatically and portable electronic device implementing same
EP3166252B1 (en) Method for secure storing of data, corresponding device and program
FR2923041A1 (en) METHOD OF OPENING SECURED TO THIRDS OF A MICROCIRCUIT CARD.
EP2795526A1 (en) Electronic device for storing confidential data
EP3179400B1 (en) Method for loading a computing resource into an electronic device, electronic module and corresponding computer program
FR2913551A1 (en) User authenticating method for use in Internet network, involves authenticating authentication server by token and vice versa for each of web pages requested by user, by executing control script e.g. java script, in computer
WO2022269207A1 (en) Method and device for controlling access to a storage medium
Fowler An overview of small scale digital forensics
FR3124288A1 (en) Technique for accessing a storage medium.
EP2449495A1 (en) Method for remotely validating executable code
EP2131526A1 (en) Connection method and device for a portable electronic entity
FR2965381A1 (en) Method for starting e.g. unprocessed system of personal computer, involves verifying authenticity of file representing operating system, and initiating starting of operating system via starting module if authenticity of file is valid

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: 09745960

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: 09745960

Country of ref document: EP

Kind code of ref document: A1