US20120143937A1 - Method of Communication Between an Embedded Server and a Remote Server - Google Patents
Method of Communication Between an Embedded Server and a Remote Server Download PDFInfo
- Publication number
- US20120143937A1 US20120143937A1 US13/157,117 US201113157117A US2012143937A1 US 20120143937 A1 US20120143937 A1 US 20120143937A1 US 201113157117 A US201113157117 A US 201113157117A US 2012143937 A1 US2012143937 A1 US 2012143937A1
- Authority
- US
- United States
- Prior art keywords
- message
- server
- instructions
- file
- sending
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/04—Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Definitions
- the invention relates to the field of computing.
- the present invention relates more particularly to exchanging data between a first server housed in an electronic entity connected to a programmable appliance and a remote second server via a browser executed by the programmable appliance.
- Document FR 2 923 337 describes a method of exchanging data in which a server embedded in a subscriber identity module (SIM) card inserted in a mobile telephone communicates with a remote server of a bank via a browser executed by the mobile telephone.
- SIM subscriber identity module
- the browser may obtain a hypertext mark-up language (HTML) page from the embedded server, which page contains, in an HTML tag, a redirection instruction to a universal resource locator (URL) that contains the address of the remote server and data for transmitting to the remote server.
- HTML hypertext mark-up language
- URL universal resource locator
- the browser may obtain from the remote server an HTML page that contains, in an HTML tag, a redirection instruction to a URL, which instruction contains the address of the embedded server and data for forwarding to the embedded server.
- a redirection instruction to a URL, which instruction contains the address of the embedded server and data for forwarding to the embedded server.
- Interpreting the HTML page by the browser involves executing said redirection instruction and thus causes an http request to be sent to the embedded server, which request includes data.
- the browser enables data to be exchanged between the embedded server and the remote server. Nevertheless, that data exchange method presents several drawbacks.
- each redirection instruction is contained in a respective HTML page
- each sending of data to the embedded server or to the remote server involves the browser displaying an HTML page, thereby slowing down the exchange of data.
- the data exchange may be viewed by the user of the mobile telephone.
- a URL address presents a standardized maximum size, thereby limiting the quantity of data that can be sent.
- command may be included in a JavaScript script. Nevertheless, no implementation detail is described. It is understood that the command is the redirection instruction to a URL address, which instruction may be included in a JavaScript script as a variant to including the redirection instruction in an HTML tag. That implementation does not make it possible to overcome the above-mentioned drawbacks.
- the invention provides a communications method implemented by a programmable appliance, the method being for exchanging data between a first server hosted in an electronic entity connected to said programmable appliance and a remote second server, via a host program executed by said programmable appliance, the communications method comprising:
- step of interpreting the instructions comprises:
- the invention also provides an electronic entity including a memory having stored therein a file including instructions interpretable by a host program and a program for implementing a first server housed in the electronic entity, and transmission means for transmitting said file to a programmable appliance that includes a host program, wherein said file comprises:
- a single file contains instructions for sending a first message to the remote server, for receiving a response, and for forwarding the data contained in the response to the first server.
- the host program may include a browser and the file may include a JavaScript script that is interpretable by the browser.
- the JavaScript script may include instructions for sending the first message and the second message, making use of the asynchronous JavaScript and XML (AJAX) technique.
- AJAX asynchronous JavaScript and XML
- the host program may include a module suitable for interpreting a Flash program or a Java program, the file then including a Flash program or a Java program.
- the file may include instructions for sending the first message and the second message, said send instructions including GET type or POST type http request send instructions.
- the step of interpreting instructions includes a step of verifying that a response has been received to a message sent to the second server.
- the step of interpreting instructions may also include, in the absence of a response being received to the first message, a step of sending the first message to a third server.
- the step of interpreting instructions may include, in the absence of a response being received to the first message, a step of resending the first message to the second server.
- said step of interpreting instructions includes a test step relating to said data.
- the electronic entity is releasably connected to said programmable appliance, said step of obtaining a file and said step of interpreting instructions of the file being performed in response to detecting connection of the electronic entity to the programmable appliance.
- FIG. 1 shows an electronic entity in an embodiment of the invention, in its environment
- FIG. 2 shows the main steps of a communications method in an implementation of the invention
- FIG. 3 shows a first variant of the FIG. 2 step of interpreting instructions
- FIG. 4 shows a second variant of the FIG. 2 step of interpreting instructions.
- FIG. 1 shows an electronic entity 10 releasably connected to a programmable appliance 20 and a remote server 40 .
- a programmable appliance 20 releasably connected to a programmable appliance 20 and a remote server 40 .
- FIG. 1 shows an exchange of data between a server hosted in the electronic entity 10 and the remote server 40 , via a browser executed by the programmable appliance 20 .
- the electronic entity 10 is a portable electronic device that presents the hardware architecture of a computer.
- the electronic entity 10 has a non-volatile memory 11 , a microprocessor 12 , a volatile memory 13 , and an interface 14 .
- the microprocessor 12 serves to execute computer programs stored in the non-volatile memory 11 , while making use of the volatile memory 13 .
- the interface 14 serves to communicate with the programmable appliance 20 .
- the electronic entity 10 is in the form of an independent portable device that may be releasably connected to the programmable appliance 20 , while remaining outside the programmable appliance 20 .
- the electronic entity 10 may be a portable multimedia reader or a storage device commonly referred to as a USB “stick” (where USB stands for universal serial bus).
- the non-volatile memory 11 may comprise a memory medium releasably housed in the electronic entity 10 , e.g. a SIM card or a microSD card (where SD stands for secure digital).
- the link 30 may include a USB connector.
- the link 30 may also be a wireless link, for example a short-range wireless link of the near-field communication (NFC) type or a medium-range link (range less than 100 meters (m), preferably less than 50 m, or even less than 30 m), e.g. a link complying with the Zigbee standard or the Bluetooth standard.
- NFC near-field communication
- the electronic entity 10 is in the form of a smart card (e.g. a SIM card) or a memory card (e.g. a microSD card) that is releasably housed in the programmable appliance 20 .
- the link 30 may comprise a standardized connector corresponding to the format of the electronic entity 10 .
- the electronic entity 10 includes in particular a computer program 15 that, on being executed by the microprocessor 12 , constitutes a web server hosted in the electronic entity 10 .
- a computer program 15 that, on being executed by the microprocessor 12 , constitutes a web server hosted in the electronic entity 10 .
- reference 15 is also used to designate the server corresponding to the computer program 15 .
- the non-volatile memory 11 also includes a web page 16 , e.g. in HTML format or in php (a scripting language), a file 17 containing interpretable instructions, a key 18 , and a program 19 including, in particular, an authentication function.
- a web page 16 e.g. in HTML format or in php (a scripting language)
- a file 17 containing interpretable instructions e.g. in HTML format or in php (a scripting language)
- a key 18 e.g. in a scripting language
- a program 19 including, in particular, an authentication function.
- the file 17 is a JavaScript script or a Java or Flash program.
- the program 19 When executed by the microprocessor 12 , the program 19 serves to authenticate the user of the electronic entity 10 . For example, during authentication, the user is invited to input a code by using a man/machine interface of the electronic entity 10 or the programmable appliance 20 . The program 19 then stores information in its volatile memory 13 , which information I specifies that the user of the electronic entity 10 has been identified.
- the programmable appliance 20 presents the hardware architecture of a computer.
- the programmable appliance 20 comprises a non-volatile memory 21 , a microprocessor 22 , a volatile memory 23 , a first interface 24 , and a second interface 25 .
- the microprocessor 22 serves to execute computer programs stored in the non-volatile memory 21 , while using the volatile memory 23 .
- the interface 24 makes it possible to communicate over the link 30 with the electronic entity 10 .
- the interface 25 makes it possible to communicate over the link 50 with the remote server 40 .
- the programmable appliance 20 may for example be in the form of a personal computer (PC) or a mobile telephone.
- the link 50 may be a link using the Internet or a mobile telephone network.
- the programmable appliance 20 includes in particular a computer program referred to as a host program 26 .
- the file 17 of the electronic entity 10 comprises a JavaScript script and the host program 26 is a browser suitable for interpreting the script, for example the Internet Explorer browser or the Firefox browser.
- the file 17 comprises a program, e.g. a Flash program or a Java program
- the host program 26 comprises a browser associated with an additional module suitable for interpreting the program of the file 17 , e.g. a Flash plugin or a Java virtual machine.
- the remote server 40 that is capable of communicating with the programmable appliance 20 over the link 50 is itself a server of a service provider.
- the server 40 is a bank server.
- FIG. 2 With reference to FIG. 2 , there follows a description of the main steps in a communications method implemented by the programmable appliance 20 to enable data to be exchanged between the server 15 and the server 40 .
- FIG. 2 applies to the variant in which the electronic entity 10 is in the form of an independent portable device that may be releasably connected to the programmable appliance 20 , while remaining situated outside the programmable appliance 20 .
- the programmable appliance 20 is programmed to detect the connection with the electronic entity 10 and to obtain and execute a predetermined file (e.g. an “autorun.inf” file, not shown) that is stored in the non-volatile memory 11 , and to do so in response to a connection being made with the electronic entity 10 .
- a predetermined file e.g. an “autorun.inf” file, not shown
- the communications method begins with a step 60 during which the programmable appliance 20 detects that a user has connected the electronic entity 10 via the link 30 , and it obtains the “autorun.inf” file from the electronic entity 10 .
- step 61 the programmable appliance 20 executes the “autorun.inf” file.
- This file includes a call to the browser of the host program 26 associated with the URL address of the web page 16 as a parameter.
- the browser starts and then processes the web page 16 .
- the web page 16 contains a command for calling the file 17 .
- the web page 16 includes a command of the type:
- step 62 the programmable appliance 20 obtains the file 17 .
- the host program 26 interprets the instructions contained in the file 17 .
- the instructions of the file 17 manage all of the data exchange between the server 15 and the server 40 via the host program 26 . More precisely, by interpreting these instructions, the host program 26 causes requests to be sent to the servers 15 and 40 and it obtains and processes the response received.
- FIG. 3 shows a first example of the running of the step 63 .
- Steps 70 to 76 of FIG. 3 are performed by the host program 26 while it interprets the instructions of the file 17 .
- the file 17 is a JavaScript script and the host program 26 is a browser
- steps 70 to 76 correspond to respective instructions of the script to be interpreted by the browser.
- step 70 the host program 26 sends to the server 15 a request to verify the authentication of the user.
- the server 15 verifies that the information I is present in the volatile memory 13 , and if so it gives a positive response.
- the host program 26 receives a positive response from the server 15 in step 70 , then it moves on to step 71 .
- step 71 the host program 26 sends a message M 1 to the remote server 40 .
- the message M 1 contains a request to obtain a challenge.
- the server 40 On receiving the message M 1 , the server 40 generates a random number, referred to as challenge A, and sends it to the host program 26 .
- step 72 the host program 26 receives a message M 2 from the server 40 .
- the message M 2 contains the challenge A as its data.
- step 73 the host program 26 sends a message M 3 to the server 15 .
- the message M 3 contains the challenge A as its data.
- the server 15 calculates the response R to the challenge A by using the key 18 and a cryptographic algorithm, and it sends the response R to the host program 26 .
- step 74 the host program 26 receives a message M 4 from the server 15 .
- the message M 4 contains the response R as its data.
- step 75 the host program 26 sends a message M 5 to the server 40 .
- the message M 5 contains the response R as its data.
- the server 40 In response to receiving the message M 5 , the server 40 verifies that the response R is correct. For example, the server 40 compares the response R with a response R′ that it has itself calculated as a function of the challenge A and of a key that is symmetrical to the key 18 . If the response R is correct, the server 40 responds positively to the host program 26 .
- step 76 the host program 26 receives a message M 6 from the server 40 indicating that the electronic entity 10 has been correctly authenticated with the server 40 . Under such circumstances, the host program 26 displays an authentication message over the man/machine interface of the programmable appliance 20 .
- the sending of the messages M 1 and M 3 corresponds to http requests of the GET type or of the POST type.
- the reception of the message M 2 corresponds to an http response received in response to a request of this type.
- the amount of data transmitted in particular the sizes of the challenge A and of the response R are therefore not limited by the maximum size of a URL address.
- the amount of data transmitted may be of the order of 1 megabyte.
- the data transmitted is not to be displayed and is therefore not visible to the user.
- JavaScript imposes security restrictions that prevent reaching web domains that are external to or different from the domain from which the JavaScript file was loaded, i.e. in this example the domain to which the server 15 belongs.
- the messages sent to the remote server 40 therefore need to be blocked by the browser of the host program 26 .
- the requests are formatted using the JavaScript Object Notation with Padding (JSONP) technique.
- FIG. 4 shows a second example of how the step 63 may be run.
- Steps 70 and 71 are identical to those described above with reference to FIG. 3 .
- the host program 26 moves on to step 82 where it verifies whether a message M 2 has been received from the server 40 . For example, the host program 26 verifies that the message M 2 has been received within a determined delay.
- step 73 identical to that described with reference to FIG. 3 , and communication continues as described above. Otherwise, if no message M 2 is received within the determined delay, then the host program 26 moves on to step 83 .
- step 83 the host program 26 resends the message M 1 , but to an alternative server referenced 40 ′. Then, in step 84 , the host program 26 receives a message M 2 from the alternative server 40 ′. The message M 2 contains the challenge A as its data. Thereafter, the host program 26 moves on to step 73 , and communication continues as described above.
- the instructions of the file 17 cause the host program 26 to act merely as an intermediary for sending requests and receiving responses.
- the instructions of the file 17 lead to the host program 26 taking on a higher-level role of managing the exchange of data.
- the host program 26 may decide, in step 82 in which the reception of a message is verified, to contact an alternative server.
- the host program 26 resends the message M 1 to the same server 40 for a new attempt.
- the host program 26 could also perform a test step on the transmitted data, e.g. relating to the challenge A and/or to the response R, and it could adapt the way the communications continues as a function of the result of this test.
- the instructions of the file 17 when interpreted by the host program 26 , serve to adapt the way data is exchanged between the server 15 and a remote server to actual circumstances, in particular when it is impossible to reach the remote server.
- the above description relates to an example in which the host program 26 obtains a web page 16 that calls a file 17 containing instructions.
- the instructions corresponding to above-described step 63 are contained directly in the web page 16 .
- the above description relates to an example in which the host program 26 obtains the file 17 (step 62 ) and interprets the instructions that it contains (step 63 ) in response to detecting the connection of the electronic entity 10 (step 60 ).
- the steps 62 and 63 are executed in response to an instruction from the user of the programmable appliance 20 , e.g. an instruction to access the web page 16 .
- the electronic entity 10 enables a user to transport personal data (multimedia data, documents, . . . ) and constitutes a kind of “virtual me” of the user.
Abstract
-
- a step of obtaining from the first server a file including instructions that are interpretable by said browser; and
- a step of the browser interpreting the instructions of said file;
- wherein the step of interpreting the instructions comprises:
- a step of sending a first message to the second server;
- a step of receiving a second message from the second server in response to sending the first message, the second message including data; and
- a step of sending a third message to the first server, the third message including said data.
Description
- The invention relates to the field of computing. The present invention relates more particularly to exchanging data between a first server housed in an electronic entity connected to a programmable appliance and a remote second server via a browser executed by the programmable appliance.
- Document FR 2 923 337 describes a method of exchanging data in which a server embedded in a subscriber identity module (SIM) card inserted in a mobile telephone communicates with a remote server of a bank via a browser executed by the mobile telephone.
- Specifically, the browser may obtain a hypertext mark-up language (HTML) page from the embedded server, which page contains, in an HTML tag, a redirection instruction to a universal resource locator (URL) that contains the address of the remote server and data for transmitting to the remote server. Interpretation of the HTML page by the browser involves executing that redirection instruction, and thus causes an http request to be sent to the remote server, the request including data.
- Conversely, the browser may obtain from the remote server an HTML page that contains, in an HTML tag, a redirection instruction to a URL, which instruction contains the address of the embedded server and data for forwarding to the embedded server. Interpreting the HTML page by the browser involves executing said redirection instruction and thus causes an http request to be sent to the embedded server, which request includes data.
- Thus, the browser enables data to be exchanged between the embedded server and the remote server. Nevertheless, that data exchange method presents several drawbacks.
- Since each redirection instruction is contained in a respective HTML page, each sending of data to the embedded server or to the remote server involves the browser displaying an HTML page, thereby slowing down the exchange of data. Furthermore, the data exchange may be viewed by the user of the mobile telephone.
- Secondly, if one of the servers does not respond, the only escape mechanism provided is the browser displaying an error message.
- Finally, a URL address presents a standardized maximum size, thereby limiting the quantity of data that can be sent.
- Above-mentioned document FR 2 923 337 also mentions that a command may be included in a JavaScript script. Nevertheless, no implementation detail is described. It is understood that the command is the redirection instruction to a URL address, which instruction may be included in a JavaScript script as a variant to including the redirection instruction in an HTML tag. That implementation does not make it possible to overcome the above-mentioned drawbacks.
- There therefore exists a need for a communications method enabling more effective data exchange to be achieved between two servers via a browser.
- The invention provides a communications method implemented by a programmable appliance, the method being for exchanging data between a first server hosted in an electronic entity connected to said programmable appliance and a remote second server, via a host program executed by said programmable appliance, the communications method comprising:
-
- a step of obtaining from the first server a file including instructions that are interpretable by said host program; and
- a step of the host program interpreting the instructions of said file;
- wherein the step of interpreting the instructions comprises:
-
-
- a step of sending a first message to the second server;
- a step of receiving a second message from the second server in response to sending the first message, the second message including data; and
- a step of sending a third message to the first server, the third message including said data.
-
- Correspondingly, the invention also provides an electronic entity including a memory having stored therein a file including instructions interpretable by a host program and a program for implementing a first server housed in the electronic entity, and transmission means for transmitting said file to a programmable appliance that includes a host program, wherein said file comprises:
-
- instructions for sending a first message to a remote second server;
- instructions for receiving a second message from the second server in response to sending the first message, the second message including data; and
- instructions for sending a third message to the first server, the third message including said data.
- In other words, in the invention, a single file contains instructions for sending a first message to the remote server, for receiving a response, and for forwarding the data contained in the response to the first server. There is no need to display various HTML pages and data exchange can therefore be faster. Furthermore, there is no need to display the received data.
- The host program may include a browser and the file may include a JavaScript script that is interpretable by the browser. Under such circumstances, the JavaScript script may include instructions for sending the first message and the second message, making use of the asynchronous JavaScript and XML (AJAX) technique.
- In a variant, the host program may include a module suitable for interpreting a Flash program or a Java program, the file then including a Flash program or a Java program.
- The file may include instructions for sending the first message and the second message, said send instructions including GET type or POST type http request send instructions.
- The use of this type of request makes it possible to send a large quantity of data.
- In an implementation, the step of interpreting instructions includes a step of verifying that a response has been received to a message sent to the second server.
- Under such circumstances, the step of interpreting instructions may also include, in the absence of a response being received to the first message, a step of sending the first message to a third server. In a variant, the step of interpreting instructions may include, in the absence of a response being received to the first message, a step of resending the first message to the second server.
- In an implementation, said step of interpreting instructions includes a test step relating to said data.
- The various characteristics mentioned above enable the host program to adapt the way in which data is exchanged to actual circumstances, e.g. in the event of it not being possible to communicate with the remote server.
- In an implementation, the electronic entity is releasably connected to said programmable appliance, said step of obtaining a file and said step of interpreting instructions of the file being performed in response to detecting connection of the electronic entity to the programmable appliance.
- Other characteristics and advantages of the present invention appear from the following description made with reference to the accompanying drawings that show an embodiment having no limiting character. In the figures:
-
FIG. 1 shows an electronic entity in an embodiment of the invention, in its environment; -
FIG. 2 shows the main steps of a communications method in an implementation of the invention; -
FIG. 3 shows a first variant of theFIG. 2 step of interpreting instructions; and -
FIG. 4 shows a second variant of theFIG. 2 step of interpreting instructions. -
FIG. 1 shows anelectronic entity 10 releasably connected to aprogrammable appliance 20 and aremote server 40. Below, there is a description of an exchange of data between a server hosted in theelectronic entity 10 and theremote server 40, via a browser executed by theprogrammable appliance 20. - The
electronic entity 10 is a portable electronic device that presents the hardware architecture of a computer. Thus, theelectronic entity 10 has anon-volatile memory 11, amicroprocessor 12, avolatile memory 13, and aninterface 14. Themicroprocessor 12 serves to execute computer programs stored in thenon-volatile memory 11, while making use of thevolatile memory 13. Via alink 30, theinterface 14 serves to communicate with theprogrammable appliance 20. - In a first variant, the
electronic entity 10 is in the form of an independent portable device that may be releasably connected to theprogrammable appliance 20, while remaining outside theprogrammable appliance 20. - For example, the
electronic entity 10 may be a portable multimedia reader or a storage device commonly referred to as a USB “stick” (where USB stands for universal serial bus). Under such circumstances, thenon-volatile memory 11 may comprise a memory medium releasably housed in theelectronic entity 10, e.g. a SIM card or a microSD card (where SD stands for secure digital). Under such circumstances, and likewise, thelink 30 may include a USB connector. Thelink 30 may also be a wireless link, for example a short-range wireless link of the near-field communication (NFC) type or a medium-range link (range less than 100 meters (m), preferably less than 50 m, or even less than 30 m), e.g. a link complying with the Zigbee standard or the Bluetooth standard. - In another variant, the
electronic entity 10 is in the form of a smart card (e.g. a SIM card) or a memory card (e.g. a microSD card) that is releasably housed in theprogrammable appliance 20. Under such circumstances, thelink 30 may comprise a standardized connector corresponding to the format of theelectronic entity 10. - In its
non-volatile memory 11, theelectronic entity 10 includes in particular acomputer program 15 that, on being executed by themicroprocessor 12, constitutes a web server hosted in theelectronic entity 10. Below,reference 15 is also used to designate the server corresponding to thecomputer program 15. - The
non-volatile memory 11 also includes aweb page 16, e.g. in HTML format or in php (a scripting language), afile 17 containing interpretable instructions, a key 18, and aprogram 19 including, in particular, an authentication function. By way of example thefile 17 is a JavaScript script or a Java or Flash program. - When executed by the
microprocessor 12, theprogram 19 serves to authenticate the user of theelectronic entity 10. For example, during authentication, the user is invited to input a code by using a man/machine interface of theelectronic entity 10 or theprogrammable appliance 20. Theprogram 19 then stores information in itsvolatile memory 13, which information I specifies that the user of theelectronic entity 10 has been identified. - The
programmable appliance 20 presents the hardware architecture of a computer. Thus, theprogrammable appliance 20 comprises anon-volatile memory 21, amicroprocessor 22, avolatile memory 23, afirst interface 24, and asecond interface 25. Themicroprocessor 22 serves to execute computer programs stored in thenon-volatile memory 21, while using thevolatile memory 23. Theinterface 24 makes it possible to communicate over thelink 30 with theelectronic entity 10. Theinterface 25 makes it possible to communicate over thelink 50 with theremote server 40. - The
programmable appliance 20 may for example be in the form of a personal computer (PC) or a mobile telephone. By way of example, thelink 50 may be a link using the Internet or a mobile telephone network. - In its
non-volatile memory 21, theprogrammable appliance 20 includes in particular a computer program referred to as ahost program 26. - In a variant, the
file 17 of theelectronic entity 10 comprises a JavaScript script and thehost program 26 is a browser suitable for interpreting the script, for example the Internet Explorer browser or the Firefox browser. In another variant, thefile 17 comprises a program, e.g. a Flash program or a Java program, and thehost program 26 comprises a browser associated with an additional module suitable for interpreting the program of thefile 17, e.g. a Flash plugin or a Java virtual machine. - Finally, the
remote server 40 that is capable of communicating with theprogrammable appliance 20 over thelink 50 is itself a server of a service provider. For example, theserver 40 is a bank server. - With reference to
FIG. 2 , there follows a description of the main steps in a communications method implemented by theprogrammable appliance 20 to enable data to be exchanged between theserver 15 and theserver 40.FIG. 2 applies to the variant in which theelectronic entity 10 is in the form of an independent portable device that may be releasably connected to theprogrammable appliance 20, while remaining situated outside theprogrammable appliance 20. - The
programmable appliance 20 is programmed to detect the connection with theelectronic entity 10 and to obtain and execute a predetermined file (e.g. an “autorun.inf” file, not shown) that is stored in thenon-volatile memory 11, and to do so in response to a connection being made with theelectronic entity 10. - Thus, the communications method begins with a
step 60 during which theprogrammable appliance 20 detects that a user has connected theelectronic entity 10 via thelink 30, and it obtains the “autorun.inf” file from theelectronic entity 10. - Thereafter, in step 61, the
programmable appliance 20 executes the “autorun.inf” file. This file includes a call to the browser of thehost program 26 associated with the URL address of theweb page 16 as a parameter. Thus, in step 61, the browser starts and then processes theweb page 16. - The
web page 16 contains a command for calling thefile 17. For example, when thefile 17 is a JavaScript script, theweb page 16 includes a command of the type: - <script src=“FileName17.js” type=“text/javascript”></script>
- Thus, in
step 62, theprogrammable appliance 20 obtains thefile 17. - Thereafter, in
step 63, thehost program 26 interprets the instructions contained in thefile 17. The instructions of thefile 17 manage all of the data exchange between theserver 15 and theserver 40 via thehost program 26. More precisely, by interpreting these instructions, thehost program 26 causes requests to be sent to theservers -
FIG. 3 shows a first example of the running of thestep 63.Steps 70 to 76 ofFIG. 3 are performed by thehost program 26 while it interprets the instructions of thefile 17. For example, when thefile 17 is a JavaScript script and thehost program 26 is a browser, then steps 70 to 76 correspond to respective instructions of the script to be interpreted by the browser. - In
step 70, thehost program 26 sends to the server 15 a request to verify the authentication of the user. Theserver 15 verifies that the information I is present in thevolatile memory 13, and if so it gives a positive response. Thus, if thehost program 26 receives a positive response from theserver 15 instep 70, then it moves on to step 71. - In
step 71, thehost program 26 sends a message M1 to theremote server 40. The message M1 contains a request to obtain a challenge. - On receiving the message M1, the
server 40 generates a random number, referred to as challenge A, and sends it to thehost program 26. - Thus, in
step 72, thehost program 26 receives a message M2 from theserver 40. The message M2 contains the challenge A as its data. - Thereafter, in
step 73, thehost program 26 sends a message M3 to theserver 15. The message M3 contains the challenge A as its data. - In response to receiving the message M3, the
server 15 calculates the response R to the challenge A by using the key 18 and a cryptographic algorithm, and it sends the response R to thehost program 26. - Thus, in
step 74, thehost program 26 receives a message M4 from theserver 15. The message M4 contains the response R as its data. - Thereafter, in
step 75, thehost program 26 sends a message M5 to theserver 40. The message M5 contains the response R as its data. - In response to receiving the message M5, the
server 40 verifies that the response R is correct. For example, theserver 40 compares the response R with a response R′ that it has itself calculated as a function of the challenge A and of a key that is symmetrical to the key 18. If the response R is correct, theserver 40 responds positively to thehost program 26. - Thus, in
step 76, thehost program 26 receives a message M6 from theserver 40 indicating that theelectronic entity 10 has been correctly authenticated with theserver 40. Under such circumstances, thehost program 26 displays an authentication message over the man/machine interface of theprogrammable appliance 20. - There follows an example of instructions that may be contained in the
file 17, applicable to a JavaScript script using the AJAX technique in the context of the JQuery application (http://www.jquery.com), and corresponding tosteps 71 to 73: -
/*Comments: Send a request to remote server and obtain a challenge in response */ function getChallenge( ){ jQuery.ajax({ type: ‘GET’ /*define http request of the GET type */ data Type: ‘jsonp’/* Add jsonp option on call to an external domain */ jsonpCallback: ‘callback’ /* name of the response function to the jsonp call */ url: ‘https://www.mybank.com/HomeBanking.cgi’ /* url of remote server */ success: answerChallenge(response) /* process the response in the function answerChallenge( ) */ }); } /* Comments: Send the challenge to the electronic entity for authentication calculation and obtain encrypted data in response */ function answerChallenge(response){ jQuery.ajax({ type: ‘POST’ /* define http request as type POST for sending data */ data: ({A: response.challenge}) /* Add the parameter A containing the previously-supplied challenge */ url: ‘authenticate’ /* url of the page for calculating the cryptogram in the electronic entity */ success: responseChallenge(data) /* process the response in the function responseChallenge( ) */ }); } - It can thus be seen that it suffices for the browser of the
host program 26 to obtain and process asingle web page 16 in order to enable the data A and R to be exchanged between theservers steps 70 to 76 performed while interpreting instructions of thefile 17 do not require additional web pages to be displayed. - Furthermore, in the example given, the sending of the messages M1 and M3 corresponds to http requests of the GET type or of the POST type. The reception of the message M2 corresponds to an http response received in response to a request of this type. The amount of data transmitted, in particular the sizes of the challenge A and of the response R are therefore not limited by the maximum size of a URL address. For example, the amount of data transmitted may be of the order of 1 megabyte. Furthermore, with a request of the POST type, the data transmitted is not to be displayed and is therefore not visible to the user.
- It is known that JavaScript imposes security restrictions that prevent reaching web domains that are external to or different from the domain from which the JavaScript file was loaded, i.e. in this example the domain to which the
server 15 belongs. In this example, the messages sent to theremote server 40 therefore need to be blocked by the browser of thehost program 26. In the example of instructions given above, in order to overcome this limitation, the requests are formatted using the JavaScript Object Notation with Padding (JSONP) technique. -
FIG. 4 shows a second example of how thestep 63 may be run. -
Steps FIG. 3 . Afterstep 71, thehost program 26 moves on to step 82 where it verifies whether a message M2 has been received from theserver 40. For example, thehost program 26 verifies that the message M2 has been received within a determined delay. - If the message M2 was received within the determined delay, then the
host program 26 passes on to step 73 identical to that described with reference toFIG. 3 , and communication continues as described above. Otherwise, if no message M2 is received within the determined delay, then thehost program 26 moves on to step 83. - In
step 83, thehost program 26 resends the message M1, but to an alternative server referenced 40′. Then, instep 84, thehost program 26 receives a message M2 from thealternative server 40′. The message M2 contains the challenge A as its data. Thereafter, thehost program 26 moves on to step 73, and communication continues as described above. - In the example of
FIG. 3 , the instructions of thefile 17 cause thehost program 26 to act merely as an intermediary for sending requests and receiving responses. By way of comparison, in the example ofFIG. 4 , the instructions of thefile 17 lead to thehost program 26 taking on a higher-level role of managing the exchange of data. - More precisely, in the example of
FIG. 4 , thehost program 26 may decide, instep 82 in which the reception of a message is verified, to contact an alternative server. In a variant that is not shown, thehost program 26 resends the message M1 to thesame server 40 for a new attempt. In a variant that is not shown, thehost program 26 could also perform a test step on the transmitted data, e.g. relating to the challenge A and/or to the response R, and it could adapt the way the communications continues as a function of the result of this test. Thus, the instructions of thefile 17, when interpreted by thehost program 26, serve to adapt the way data is exchanged between theserver 15 and a remote server to actual circumstances, in particular when it is impossible to reach the remote server. - The above description relates to an example in which the
host program 26 obtains aweb page 16 that calls afile 17 containing instructions. In a variant, the instructions corresponding to above-describedstep 63 are contained directly in theweb page 16. - The above description relates to an example in which the
host program 26 obtains the file 17 (step 62) and interprets the instructions that it contains (step 63) in response to detecting the connection of the electronic entity 10 (step 60). In a variant, in particular when theelectronic entity 10 is housed in theprogrammable appliance 20, thesteps programmable appliance 20, e.g. an instruction to access theweb page 16. - The
electronic entity 10 enables a user to transport personal data (multimedia data, documents, . . . ) and constitutes a kind of “virtual me” of the user.
Claims (11)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1060058A FR2968494B1 (en) | 2010-12-03 | 2010-12-03 | METHOD OF COMMUNICATING BETWEEN AN ONBOARD SERVER AND A REMOTE SERVER |
FR10/60058 | 2010-12-03 |
Publications (1)
Publication Number | Publication Date |
---|---|
US20120143937A1 true US20120143937A1 (en) | 2012-06-07 |
Family
ID=43614963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/157,117 Abandoned US20120143937A1 (en) | 2010-12-03 | 2011-06-09 | Method of Communication Between an Embedded Server and a Remote Server |
Country Status (2)
Country | Link |
---|---|
US (1) | US20120143937A1 (en) |
FR (1) | FR2968494B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140359360A1 (en) * | 2013-06-03 | 2014-12-04 | MiCOM Labs, Inc. | Method and apparatus for a remote modular test system |
US20150143464A1 (en) * | 2013-11-19 | 2015-05-21 | Oberthur Technologies | Method and device for the connection to a remote service |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010032254A1 (en) * | 1998-05-29 | 2001-10-18 | Jeffrey C. Hawkins | Method and apparatus for wireless internet access |
US20030018607A1 (en) * | 2000-08-04 | 2003-01-23 | Lennon Alison Joan | Method of enabling browse and search access to electronically-accessible multimedia databases |
US20050014531A1 (en) * | 2003-07-17 | 2005-01-20 | Sony Ericsson Mobile Communications Ab | System and Method of Software Transfer Between a Mobile Phone and a Mobile Phone Accessory |
US20050182826A1 (en) * | 2004-02-18 | 2005-08-18 | Knittel Steven F. | Method and apparatus for improving wireless data networks performance |
US20070245238A1 (en) * | 2006-03-22 | 2007-10-18 | Fugitt Jesse A | Timeline visualizations linked with other visualizations of data in a thin client |
US20080072060A1 (en) * | 2006-08-28 | 2008-03-20 | Susan Cannon | Memory device for cryptographic operations |
US20080114897A1 (en) * | 2006-11-09 | 2008-05-15 | Yahoo! Inc. | System and method for transmission of DNS beacons |
US20100161714A1 (en) * | 2008-12-19 | 2010-06-24 | Oracle International Corporation | Reliable processing of http requests |
US20100275266A1 (en) * | 2006-07-31 | 2010-10-28 | Gabriel Jakobson | Automatically enhancing computing privacy by affecting the screen of a computing device |
US20110026506A1 (en) * | 2008-04-07 | 2011-02-03 | Seeker Wireless Pty. Limited | Efficient collection of wireless transmitter characteristic |
US7925689B2 (en) * | 1997-05-02 | 2011-04-12 | Kwok, Chu & Shindler Llc | Method and system for providing on-line interactivity over a server-client network |
US20110185286A1 (en) * | 2007-10-24 | 2011-07-28 | Social Communications Company | Web browser interface for spatial communication environments |
US8185621B2 (en) * | 2007-09-17 | 2012-05-22 | Kasha John R | Systems and methods for monitoring webpages |
US8843616B2 (en) * | 2010-09-10 | 2014-09-23 | Intel Corporation | Personal cloud computing with session migration |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6892067B1 (en) * | 1999-12-30 | 2005-05-10 | Nokia Corporation | Script based interfaces for mobile phones |
EP1798943A1 (en) * | 2005-12-13 | 2007-06-20 | Axalto SA | SIM messaging client |
-
2010
- 2010-12-03 FR FR1060058A patent/FR2968494B1/en not_active Expired - Fee Related
-
2011
- 2011-06-09 US US13/157,117 patent/US20120143937A1/en not_active Abandoned
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7925689B2 (en) * | 1997-05-02 | 2011-04-12 | Kwok, Chu & Shindler Llc | Method and system for providing on-line interactivity over a server-client network |
US20010032254A1 (en) * | 1998-05-29 | 2001-10-18 | Jeffrey C. Hawkins | Method and apparatus for wireless internet access |
US20030018607A1 (en) * | 2000-08-04 | 2003-01-23 | Lennon Alison Joan | Method of enabling browse and search access to electronically-accessible multimedia databases |
US20050014531A1 (en) * | 2003-07-17 | 2005-01-20 | Sony Ericsson Mobile Communications Ab | System and Method of Software Transfer Between a Mobile Phone and a Mobile Phone Accessory |
US20050182826A1 (en) * | 2004-02-18 | 2005-08-18 | Knittel Steven F. | Method and apparatus for improving wireless data networks performance |
US20070245238A1 (en) * | 2006-03-22 | 2007-10-18 | Fugitt Jesse A | Timeline visualizations linked with other visualizations of data in a thin client |
US20100275266A1 (en) * | 2006-07-31 | 2010-10-28 | Gabriel Jakobson | Automatically enhancing computing privacy by affecting the screen of a computing device |
US20080072060A1 (en) * | 2006-08-28 | 2008-03-20 | Susan Cannon | Memory device for cryptographic operations |
US20080114897A1 (en) * | 2006-11-09 | 2008-05-15 | Yahoo! Inc. | System and method for transmission of DNS beacons |
US8185621B2 (en) * | 2007-09-17 | 2012-05-22 | Kasha John R | Systems and methods for monitoring webpages |
US20110185286A1 (en) * | 2007-10-24 | 2011-07-28 | Social Communications Company | Web browser interface for spatial communication environments |
US20110026506A1 (en) * | 2008-04-07 | 2011-02-03 | Seeker Wireless Pty. Limited | Efficient collection of wireless transmitter characteristic |
US20100161714A1 (en) * | 2008-12-19 | 2010-06-24 | Oracle International Corporation | Reliable processing of http requests |
US8843616B2 (en) * | 2010-09-10 | 2014-09-23 | Intel Corporation | Personal cloud computing with session migration |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140359360A1 (en) * | 2013-06-03 | 2014-12-04 | MiCOM Labs, Inc. | Method and apparatus for a remote modular test system |
US9379855B2 (en) * | 2013-06-03 | 2016-06-28 | MiCOM Labs, Inc. | Method and apparatus for a remote modular test system |
US20150143464A1 (en) * | 2013-11-19 | 2015-05-21 | Oberthur Technologies | Method and device for the connection to a remote service |
US9699190B2 (en) * | 2013-11-19 | 2017-07-04 | Oberthur Technologies | Method and device for the connection to a remote service |
Also Published As
Publication number | Publication date |
---|---|
FR2968494B1 (en) | 2012-12-28 |
FR2968494A1 (en) | 2012-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180267847A1 (en) | Application programming interface fingerprint data generation at a mobile device executing a native mobile application | |
EP2974219B1 (en) | Method, system, and device for generating, storing, using, and validating nfc tags and data | |
Mulliner | Vulnerability analysis and attacks on NFC-enabled mobile phones | |
US11683296B2 (en) | Headless browser system with virtual API | |
CN105474574A (en) | Systems and methods for authentication using a device identifier | |
CN104753892B (en) | Network resource transmission method, device and system | |
CN107203576B (en) | Information synchronization method and device | |
EP3293656A1 (en) | Method for controlling access to a trusted application in a terminal | |
US20150370899A1 (en) | Shortened url management method and management device, and storage medium storing computer program for management thereof | |
US20100005476A1 (en) | Mobile electronic device including a portable application and a secured module able to communicate with each other, and associated communication method | |
US9881317B2 (en) | Information processing apparatus, information processing method, information communication system, and computer program | |
CN112954717B (en) | Household appliance network distribution method and device based on H5 page | |
CN105991518B (en) | Network access verifying method and device | |
CN109510799B (en) | Page display method, browser client, equipment and storage medium | |
CN105786476B (en) | Data processing method and system between mobile client and server | |
EP2620897A1 (en) | Method, device and system for displaying radio frequency identification application information | |
CN112818270B (en) | Data cross-domain transfer method and device and computer equipment | |
US20120143937A1 (en) | Method of Communication Between an Embedded Server and a Remote Server | |
CN107979577B (en) | Terminal authentication method and device | |
CN109640277B (en) | Short message processing method and device applied to USIM card | |
CN109922122A (en) | Interaction, the method and device thereof for obtaining user information | |
CN106101127A (en) | A kind of weight discriminating methods, devices and systems | |
CN111064675B (en) | Access flow control method, device, network equipment and storage medium | |
US8777100B2 (en) | Method for inputting a password and a device therefor | |
CN111131369B (en) | APP use condition transmission method and device, electronic equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: OBERTHUR TECHNOLOGIES, FRANCE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BOISDE, MATTHIEU;OULIERES, FLORENT;REEL/FRAME:026868/0033 Effective date: 20110617 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
AS | Assignment |
Owner name: IDEMIA FRANCE, FRANCE Free format text: CHANGE OF NAME;ASSIGNOR:OBERTHUR TECHNOLOGIES;REEL/FRAME:048076/0958 Effective date: 20180212 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |