The present invention relates to a method and system for exchanging a message, having encrypted data and a scheme identifier, between computing devices in a communication network.
Certain mobile operating systems (e.g. iOS™ from Apple Inc™) conventionally do not allow third-party developers' applications to intercept emails, SMS messages or the like as received. As a result, mobile applications developed by third-party developers, for use in those mobile operating systems, cannot be programmed to directly intercept those received emails or SMS messages. Consequently, for example, a third-party (developed) decryption application cannot be configured to automatically intercept and decrypt encrypted data received via an email or an SMS message. Instead, the received encrypted data is displayed as a body of static text in the user interface (UI) of the mobile operating system (i.e. see screenshot 100 of
On those aforementioned mobile operating systems, a process of decrypting encrypted data, received via (e.g.) an email or an SMS message, typically requires the user to select and manually effect (digital) copying of the encrypted data to a working memory buffer of the mobile operating system (i.e. see screenshot 150 of
One object of the present invention is therefore to address at least one of the problems of the prior art and/or to provide a choice that is useful in the art.
According to a 1st aspect of the invention, there is provided a method performed by a computing device for processing a message from another computing device in a communication network, the message including encrypted data and a scheme identifier. The method comprises detecting performance of a user action in relation to the message; in response to detecting performance of the user action, activating a decryption program code associated with the scheme identifier to provide the message to the program code; decoding the message using the program code to obtain the encrypted data; and decrypting the encrypted data via the program code to obtain decrypted data.
The method advantageously enables processing of the message (with encrypted data), received through a third-party digital messaging application, to be conveniently performed by automatically activating the decryption program code upon performance of the user action on the message, based on the scheme identifier, without requiring a user to manually copy-and-paste the message from the third-party digital messaging application to the decryption program code for processing to obtain the encrypted data. This proposed method thus reduces a number of user interactions required for processing such messages, and hence beneficially streamlines the overall user experience for performing such a task.
Preferably, the method may further comprise displaying the decrypted data to a user of the computing device. Specifically, the scheme identifier may include a header of the message. On the other hand, the message may further include at least a domain identifier, a session identifier and a data field, wherein the data field comprises the encrypted data.
Preferably, decoding the message to obtain the encrypted data may include performing the said decoding according to a predetermined decoding scheme, which includes a custom URL scheme. The decrypted data may include text, images, animation, video or audio. More preferably, the method may further comprise receiving the message via at least an SMS, an MMS, an email, instant messaging, or an electronic document delivery service. Also, the user action may include only a single action. The user action may include clicking a button, providing an audible instruction, or selecting the message. Yet preferably, the method may further comprise displaying an indication of a type of the user action to be performed.
According to a 2nd aspect of the invention, there is provided a method performed by a computing device for providing a message having encrypted data to another computing device in a communication network. The method comprises, in response to a user action being performed, executing an encryption program code for encrypting data, encoding the encrypted data into the message and transmitting the message to the another computing device. The message includes a scheme identifier to enable the another computing device to activate a decryption program code associated with the scheme identifier for processing the message.
Preferably, the scheme identifier may include a header of the message. The method may further comprise receiving or generating data to be encrypted. The message may further include at least a domain identifier, a session identifier and a data field, wherein the encrypted data is provided in the data field.
Further preferably, encoding the encrypted data into the message may include performing the said encoding according to a predetermined encoding scheme, which includes a custom URL scheme. In addition, the method may further comprise displaying an indication of a type of the user action to be performed. The data may include text, images, animation, video or audio. Preferably, transmitting the message may include transmitting via at least an SMS, an MMS, an email, instant messaging, or an electronic document delivery service. Specifically, the user action may include only a single action, and also the user action may include clicking a button, providing an audible instruction, or selecting the received data. The method may preferably further comprise displaying a user interface for enabling selection or provision of the data to be encrypted.
According to a 3rd aspect of the invention, there is provided a method performed by a mobile computing device for processing a message from another mobile computing device in a communication network, the message including encrypted data and a scheme identifier. The method comprises detecting performance of only a single action in relation to the message, in response to detecting performance of the single action, activating a decryption program code associated with the scheme identifier to provide the message to the program code, decoding the message using the program code to obtain the encrypted data, and decrypting the encrypted data via the program code to obtain decrypted data.
According to a 4th aspect of the invention, there is provided a method performed by a mobile computing device for providing a message having encrypted data to another mobile computing device in a communication network. The method comprises in response to only a single action being performed, executing an encryption program code for encrypting data, encoding the encrypted data into the message and transmitting the message to the another mobile computing device. The message includes a scheme identifier to enable the another mobile computing device to activate a decryption program code associated with the scheme identifier for processing the message.
According to a 5th aspect of the invention, there is provided a decryption device for processing a message from a computing device in a communication network, the message including encrypted data and a scheme identifier. The decryption device comprises a detector module for detecting performance of a user action in relation to the message, a processor module for receiving a detection signal from the detector module, and for activating a decryption program code associated with the scheme identifier to provide the message to the program code in response to the detection signal, a decoder module for decoding the message using the program code to obtain the encrypted data, and a decryption module for decrypting the encrypted data via the program code to obtain decrypted data.
Preferably, the device may yet also further comprise a display module for displaying the decrypted data to a user of the decryption device, or for displaying an indication of a type of the user action to be performed. Additionally, the scheme identifier may include a header of the message. The message may further include at least a domain identifier, a session identifier and a data field, wherein the data field comprises the encrypted data.
More preferably, the decoder module may be arranged to decode the message according to a predetermined decoding scheme, which includes a custom URL scheme. The decrypted data may include text, images, animation, video or audio. Also, the device may further comprise a receiver module for receiving the message via at least an SMS, an MMS, an email, instant messaging, or an electronic document delivery service. Moreover, the user action may include only a single action. And the user action may also include clicking a button, providing an audible instruction, or selecting the message.
According to a 6th aspect of the invention, there is provided an encryption device configured to execute an encryption program code for providing a message having encrypted data to a computing device in a communication network. The encryption device comprises a processor module configured to response to a user action for executing an encryption program code for encrypting data, encoding the encrypted data into the message and transmitting the message to the computing device. The message includes a scheme identifier to enable the computing device to activate a decryption program code associated with the scheme identifier for processing the message.
Preferably, the scheme identifier may include a header of the message. The device may further comprise a receiver module for receiving data to be encrypted. Furthermore, the message may further include at least a domain identifier, a session identifier and a data field, wherein the encrypted data is provided in the data field.
Preferably, the processor module may be arranged to encode the encrypted data according to a predetermined encoding scheme, which includes a custom URL scheme. The device may also further comprise a display module for displaying an indication of a type of the user action to be performed. The data may include text, images, animation, video or audio. Also, the processor module may be configured to transmit the message using a transmitter module via at least an SMS, an MMS, an email, instant messaging, or an electronic document delivery service. Preferably, the user action may include only a single action, or the user action may include clicking a button, providing an audible instruction, or selecting the received data. More preferably, the device may further comprise a user interface module for displaying a user interface for enabling selection or provision of the data to be encrypted.
According to a 7th aspect of the invention, there is provided a method for exchanging a message between computing devices in a communication network, the message having encrypted data and a scheme identifier. The method comprises in response to a first user action being performed on a first computing device, executing an encryption program code for encrypting data, encoding the encrypted data into the message and transmitting the message by the first computing device to a second computing device, detecting performance of a second user action on the second computing device in relation to the message, in response to detecting performance of the second user action, activating a decryption program code associated with the scheme identifier by the second computing device to provide the message to the decryption program code, decoding the message using the decryption program code by the second computing device to obtain the encrypted data, and decrypting the encrypted data by the second computing device via the decryption program code to obtain decrypted data.
According to an 8th aspect of the invention, there is provided a system for exchanging a message between computing devices in a communication network, the message having encrypted data and a scheme identifier. The system comprises a first computing device comprising a processor module configured to response to a first user action for executing an encryption program code for encrypting data, encoding the encrypted data into the message and transmitting the message to the second computing device, and a second computing device comprising a detector module for detecting performance of a second user action in relation to the message, a processor module for receiving a detection signal from the detector module, and for activating a decryption program code associated with the scheme identifier to provide the message to the decryption program code in response to the detection signal, a decoder module for decoding the message using the decryption program code to obtain the encrypted data, and a decryption module for decrypting the encrypted data via the decryption program code to obtain decrypted data.
It should be apparent that features relating to one aspect of the invention may also be applicable to the other aspects of the invention.
These and other aspects of the invention will be apparent from and elucidated with reference to the embodiments described hereinafter.
Embodiments of the invention are disclosed hereinafter with reference to the accompanying drawings, in which:
a is a screenshot showing encrypted data in an SMS message received by a mobile operating system, in which the encrypted data is displayed as static text on the mobile operating system, according to the prior art;
b is a screenshot, following from
a is a flow diagram of a process for encrypting and encoding data, as used in the method in
b is a flow diagram of a process for transmitting the message, as used in the method in
a is a screenshot showing receipt of the message by the second computing device of
b is a flow diagram of a process for decoding and decrypting the message, as used in the method in
A system 200 (i.e. see a schematic diagram in
The encryption device 204 is configured to execute an encryption program code for providing the message 202 to the decryption device 206, whereas the decryption device 206 is configured to execute a decryption program code for processing the message 202 from the encryption device 204. It will be appreciated that, in this embodiment, the encryption and decryption program codes are locally installed on the encryption device and decryption device 204, 206, and further, the encryption and decryption program codes are realised as native mobile applications. Specifically, the encryption device 204 includes the following modules: a processor module 2042, a receiver module 2044, a transmitter module 2046, a display module 2048, and a user interface module 20410. On the other hand, the decryption device 206 includes the following modules: a processor module 2062, a receiver module 2064, a display module 2066, a detector module 2068, a decoder module 20610, and a decryption module 20612. In this instance, it is to be understood that the respective said modules of the encryption device 204 and decryption device 206 are implemented in software.
Reference is now made to
Once the user has selected or provided the data to be encrypted, the user then performs the indicated user action, which consequently, at Step 304 causes the processor module 2042 to response to the user action by executing the encryption program code. More specifically, thereafter at Step 306, in response to the user action being performed, the processor module 2042, by using the encryption program code, encrypts the data, and encodes the encrypted data into the message 202 carrying the encrypted data. It is to be appreciated that the message 202 is of a specific encoded format. In connection,
Particularly, the decryption program code is configured to be registered to use an “inter-application communications via custom URL scheme” of the mobile operating system of the decryption device 206 to facilitate handling and processing of any messages 202, as transmitted by the encryption device 204, determined to have a same data definition of the scheme identifier. That is, the decryption program code is associated with the scheme identifier, as defined by the encryption device 204 in the message 202. A custom URL is an URL specially formatted to comprise different customised identifier fields. This “inter-application communications via custom URL scheme” will be elaborated in subsequent paragraphs. In addition, the encrypted data is provided in the data field, as will be appreciated. The custom URL format is defined with the following syntax:
[A]://[B]?id=[C]&[D] (1)
wherein “[A]” represents the header identifier, “[B]” represents the domain identifier, “[C]” represents the session identifier, and “[D]” represents the data field. To illustrate, an example of the message 202 as defined in accordance with syntax (1) as a custom URL, in which “ontalk” is defined in “[A]”, “com.treeboxsolutions.ontalk.sso” is defined in “[B]”, a random ID of “AAAA” is defined in “[C]”, and the encrypted data of “XXXX”, to be transmitted to the decryption device 206 via SMS, is defined in “[D]” as “sms=XXXX”, will be:
ontalk://com.treeboxsolutions.ontalk.sso?id=AAAA&sms=XXXX (2)
Thus, the encryption device 204 transmits the message 202, for example with the predetermined identifier of “ontalk”, which will also be recognised by the decryption device 206 (as above mentioned) for processing purposes. Of course, it will also be understood that if the encrypted data of “XXXX” is to be transmitted instead using other communication means, for example such as MMS or email, then “[D]” in syntax (1) will be defined as “mms=XXXX” or “email=XXXX” accordingly (or the like).
Then at Step 308, under the command of the processor module 2042, the transmitter module 2046 transmits the message 202 to the decryption device 206 as indicated by an arrow 208 (pointing in a direction from the encryption device 204 to the decryption device 206) shown in
Particularly, this process 450 of
Before discussing the “inter-application communications via custom URL scheme”, it would be appropriate to first explain custom URL schemes. It will be understood that a URL, also known as web address, is a specific character string that constitutes a reference to a resource. In web browsers, the URL of a web page is displayed in an address bar, typically located at the top section of the web page. An example of a typical URL would be “http://en.example.org/wiki/Main_Page”. Every URL is typically defined to be in the following format: a scheme name (or commonly called protocol), followed by a colon, two slashes, then, depending on the scheme, a server name (e.g. “exp.” “ftp.”, “www.”, “smtp.” etc) followed by a dot (“.”) then a domain name (or alternatively, an IP address), a port number, the path of the resource to be fetched or the program to be run, and then, for programs such as Common Gateway Interface (CGI) scripts, a query string, and an optional fragment identifier. In summary, the syntax is of a URL is generally defined as:
scheme://domain:port/path?query_string#fragment_id (3)
Now then, a custom URL scheme is a mechanism through which third-party mobile applications installed on a same mobile device are able to communicate with one another via corresponding specially formatted URLs. Mobile applications can use custom URL schemes to vend services to other mobile applications, as desired. Specifically, custom mobile applications can receive specially formatted URLs by registering corresponding custom URL schemes with the mobile operating system, which then binds those mobile applications to the said custom URL schemes. It is to be appreciated that in the case of the mobile operating system being, for example, iOS version 6.0 and lower, the mobile operating system recognizes the specially formatted URLs based on just the scheme identifier. In the case of the mobile operating system being, for example, Android™ OS, it can then additionally include the domain identifier such that the mobile operating system can associate the specially formatted URLs with a specific mobile application based on both the scheme and domain identifiers.
With regard to the “inter-application communications via custom URL scheme”, it will be appreciated that some mobile operating systems (e.g. e.g. iOS™ from Apple Inc™) specifically include support for the specific said scheme, in which native mobile applications (installed on a mobile computing device) configured to register with the mobile operating systems for binding with the said scheme can then advantageously utilise the scheme to exchange messages between other different mobile applications installed on the same device running the associated mobile operating system. The messages to be exchanged are specified in custom URLs that are passed between the different mobile applications, as required. Registered mobile applications can use the custom URL scheme to initiate specific requests. For example, if it is desired for a registered mobile application to display an address in a Maps application, the registered mobile application can create a custom URL, specifying the address to be displayed, and thereafter make use of the created custom URL to invoke launch of the Maps application (by the mobile operating system). Once launched, the created custom URL is automatically passed from the registered mobile application to the Maps application, which then reads and displays the specified address accordingly. It will be appreciated that different custom-developed mobile applications can implement different custom URL schemes that can create corresponding specially formatted custom URLs (as desired based on needs of associated areas of applications) to facilitate similar types of communications.
Reference is now made to
The message 202, for example if received via an SMS, is highlighted and underlined as blue-coloured text by the third-party messaging software component 452b, and digitally selectable by the user of the decryption device 206 through performing the indicated user action. It is to be understood that the underlining of the message 202 as blue-coloured text is given as a non-limiting example and other suitable forms of highlighting or indication are also possible as would be understood by skilled persons. For example, the highlighting can also be displayed in the form of an icon in the message 202. Subsequently, the user of the decryption device 206 can then select the message 202 by performing the indicated user action (e.g. tapping on the blue-coloured text). At Step 502 of the method 500 of
Subsequently, the decoder module 20610, at Step 508, decodes the message 202, using the decryption program code, to obtain the encrypted data, and thereafter the decryption module 20612 decrypts the encrypted data, also using the decryption program code, to obtain decrypted data. In connection,
Further embodiments of the invention will be described hereinafter. For the sake of brevity, description of like elements, functionalities and operations that are common between the embodiments are not repeated; reference will instead be made to similar parts of the relevant embodiment(s).
According to a second embodiment, the respective modules of the encryption device 204 and decryption device 206 are hardware-based, rather than software-based. Indeed, in this instance, the processor module 2042, the receiver module 2044, the transmitter module 2046, the display module 2048, and the user interface module 20410 of the encryption device 204 are implemented in hardware for faster response time and more efficient processing of the message 202. Likewise, the processor module 2062, the receiver module 2064, the display module 2066, the detector module 2068, the decoder module 20610, and the decryption module 20612 of the decryption device 206 are also implemented in hardware to achieve the same aforementioned advantages in respect of processing the message 202.
According to a third embodiment, with reference to
In summary, the proposed system 200 (and corresponding method) enables exchange of messages, having encrypted data, between the first and second computing devices 204, 206 in a communication network, and more specifically through utilisation of the “inter-application communications via custom URL scheme”. The encryption device 204 provides a user-interface for the input or selection of data to be encrypted and displays an indication of a type of a user action (e.g. tapping a button) that a user of the encryption device 204 is to perform for secure processing of the data into the message 202 carrying the encrypted data, and scheme identifier. Thereafter, in response to the indicated user action being performed, the data is encrypted and encoded into the message 202 by way of a custom URL format, and sent to the decryption device 206 via the third-party digital messaging system 454. The decryption program code on the decryption device 206 is registered with the mobile operating system installed thereon to handle processing of the message 202 via the custom URL scheme. That is, the decryption program code is associated with the scheme identifier. The third-party messaging software component 452b at the decryption device 206 receives and displays the message 202, and also displays an indication of a user action (e.g. selecting the highlighted display of the message 202) that a user of the decryption device 206 is to perform to decrypt the message 202. In response to the indicated user action being performed, the decryption program code is automatically activated by the mobile operating system (installed on the decryption device 206) and the message is then forwarded by the third-party messaging software component 452b to the decryption program code for processing to obtain the decrypted data. Subsequently, the decrypted data is displayed to the user of the decryption device 206.
Thus, by utilising the custom URL schemes in conjunction with inter-application communication support offered by the relevant mobile operating systems, the method 500 of
The described embodiments should not however be construed as limitative. For example, it is to be appreciated that the first and second computing devices 204, 206 may be any other types of devices besides mobile computing devices, and the operating systems on which the first and second computing devices 204, 206 run on are to also include support for the “inter-application communications via custom URL scheme” (as afore described), or alternatively an equivalent scheme with similar functionality. Additionally, in certain embodiments, the respective modules of the encryption device 204 and decryption device 206 (if implemented in software) may be programmatically integrated and provided as a single complete software application that is installable on and executable by similar computing devices that may be envisaged for processing the messages 202. Of course, in such an instance, the encryption device 204 may send or receive messages 202 to or from the decryption device 206, and vice versa. Optionally, the single complete software application may be implemented in its entirety in hardware, and a copy of such an implemented hardware is installable on each of the encryption device 204 and the decryption device 206 for processing the messages 202.
It will also be understood that the user action, as indicated to be effected, may not necessary need to be only a single action; the user action can instead be a series of user actions, such as double tapping or double clicking (using a mouse) of highlighted text or the like. Further, in certain embodiments, the encryption device 204 may also, optionally, include a data generator module (not shown) that allows the user of the encryption device 204 to generate the desired data to be encrypted, instead of selecting or providing the data via the interface presented by the user interface module 20410. Additionally, other variations may include using the custom URLs to communicate non-sensitive metadata about the encrypted data, i.e. in a manner similar to how the header of an encrypted file format holds metadata about the file such as version, etc.
While the invention has been illustrated and described in detail in the drawings and foregoing description, such illustration and description are to be considered illustrative or exemplary, and not restrictive; the invention is not limited to the disclosed embodiments. Other variations to the disclosed embodiments can be understood and effected by those skilled in the art in practising the claimed invention.
Number | Date | Country | Kind |
---|---|---|---|
201303261-0 | Apr 2013 | SG | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/SG2014/000180 | 4/23/2014 | WO | 00 |