System and method for sharing data

A system and method for sharing data is provided. A request is received from a mobile device to transfer a set of data to a recipient. The set of data is stored by a server and controlled by a user of the mobile device. The request is authenticated, and the data is encrypted. The set of data is transmitted to a recipient specified by the user via the mobile device.

FIELD OF THE INVENTION

The present invention relates generally to data management. More particularly, the present invention relates to a method and system for sharing data.

BACKGROUND OF THE INVENTION

Mobile devices are ubiquitous today. Many people have even cancelled traditional landline telephone services at their residences and/or businesses, and have adopted mobile phones as their primary means of communications. Accordingly, many people typically carry such mobile devices with them wherever they go. For purposes of the discussion hereinbelow, mobile devices include mobile telephones, personal digital assistants, and other portable computing devices that have a network communications interface, an input interface such as a keypad or keyboard, and an output interface such as a display. Mobile devices can include a subscriber identification module (“SIM”) card that can provide additional capabilities and/or capacity.

The capabilities of such mobile devices have increased with increases in their processing power, memory, screen size, etc. Even with such advances, it can still be disadvantageous to retrieve and store certain data on the mobile device. While the memory capacity of newer mobile devices is significantly larger in size than that of previous generation mobile devices, it is still limited or desired for use for other functionality, such as the storage of music, video, email, etc. Additionally, if the data is downloaded to the mobile device over a cellular network, the charges can be significant.

Once the data is on the mobile device, sharing of the data can be onerous. The user must select the particular files that he wishes to share, then transmit them to another party via email, file transfer protocol (“FTP”) or the like. Again, the charges for the data transfer over a cellular network can be significant. Further, if the user is sharing the data with multiple parties, the amount of data transmitted over the cellular network spirals.

It is an object of this invention to provide a novel method and system for sharing data.

SUMMARY OF THE INVENTION

In an aspect of the invention, there is provided a method for sharing data, comprising:

receiving a request from a mobile device to transfer a set of data to a recipient, said set of data being stored by a server and controlled by a user of said mobile device;

encrypting said set of data; and

transmitting said set of data to a recipient specified by said user via said mobile device.

The set of data can be transmitted to the recipient via email. The set of data can be compressed before transmission. The set of data can be encrypted using a pass phrase provided by the user via the mobile device.

The method can further comprise:

generating a pass phrase for encrypting said set of data; and

transmitting said pass phrase to said user via said mobile device,

wherein said set of data is encrypted using said pass phrase.

The set of data can be represented by metadata stored on the mobile device.

The request can include a one-time password, and the authenticating can include authenticating the one-time password.

In accordance with another aspect of the invention, there is provided a computer system for sharing data, comprising:

a database maintained in storage of a server for storing data and security credentials associated with users that can control said data;

an authentication module for retrieving said security credentials stored in said database and authenticating communications received from mobile devices using said security credentials;

an encryption module for encrypting said data; and

a network interface for receiving a request from one of said mobile devices for transmitting a set of said data to a recipient, said set of said data being controllable by the user of said one mobile device, and for transmitting said set of said data to said recipient after encryption by said encryption module.

The network interface can transmit the set of the data to the recipient via email. The set of the data can be compressed before transmission to the recipient.

The encryption module can encrypt the set of the data using a pass phrase provided by the user via the one mobile device.

The system can generate a pass phrase used by the encryption module to encrypt the set of the data. The system can communicate the pass phrase to the one mobile device so that the user can communicate said pass phrase to the recipient via another channel of communication.

The set of the data is represented by metadata stored on the mobile device.

The communications can include one-time passwords generated by the mobile device, and the authentication module can authenticate the communications by authenticating the one-time passwords.

In a further aspect of the invention, there is provided a method for sharing data, comprising:

receiving a request from a mobile device to transfer a set of data to a recipient, said set of data being stored by a server and controlled by a user of said mobile device;

authenticating said request; and

making said set of data available to a recipient specified by said user via said mobile device.

The making can include transmitting the set of data to the recipient via email. The set of data can be encrypted before the transmitting. The set of data can be compressed before the transmitting. The set of data can be access-controlled and can be accessible using a pass phrase provided by the user via the mobile device.

The method can further include:

generating a pass phrase for accessing said set of data; and

transmitting said pass phrase to said user via said mobile device.

The set of data can be represented by metadata stored in a data management application on the mobile device.

The making can include enabling the recipient to download the set of data. A link for downloading the set of data can be transmitted to the recipient.

A one-time password can be transmitted with the request, and the authenticating can include authenticating the one-time password.

DETAILED DESCRIPTION OF THE EMBODIMENTS

The invention provides a system and method for sharing data. Data is stored by a server computer in a database maintained in storage thereof. Users who have access-control over data stored by the system can manage the data via an application executing on a mobile device. The user can share selected data with a recipient via the application executing on the mobile device. In response, the application transmits a request to the server to share the selected data. The server authenticates the request upon receipt and makes the data available to the recipient if the request is authenticated.

FIG. 1is a high-level architectural diagram of a system for sharing data and its operating environment in accordance with an embodiment of the invention. The embodiment described herein relates to a system for sharing data via email. The data in this case is healthcare data, such as health insurance information, chart data from visits with healthcare professionals, medical images, etc. A user wishing to share data that is stored by the system selects, via an application executing on a mobile device, a set of data on the system to be shared and a recipient. For example, the user may be visiting a walk-in clinic and wish to share his historical medical data with the doctor at the clinic in order to assist the doctor's assessment. The user's historical medical data is uploaded by healthcare professionals that the user has visited via an application programming interface. The healthcare professional uploading the data is asked to categorize the healthcare data being uploaded. The user is granted sole access-control of the uploaded data so that he can view or forward the data.

The request to share data is sent by the application on the mobile device to the server. The server authenticates the request and, if authenticated, generates an encrypted, compressed archive from the set of data. The pass phrase used to encrypt the set of data is either selected by the user via the mobile device or by the server. As used herein, the term “pass phrase” means any string of characters that can be used to provide access to access-controlled data. It will be appreciated by those skilled in the art that some restrictions may apply to the type of pass phrase used based on the access-control method employed. The server emails the encrypted, compressed archive including the set of data to the recipient, and transmits the pass phrase to the user's mobile device for communication to the recipient out-of-channel.

As shown inFIG. 1, the system includes a server20that stores data that is access-controlled by users in a database. While only one server20is shown, it will be appreciated by those skilled in the art that the data management functionality/service provided by the server20in the described embodiment can be provided by two or more server computers. Where there is more than one server, the servers can be in communication with one another over a local area network, or can be distributed remotely and in communication with each other via one or more communication networks.

The server20is in communication with a large, public network, such as the Internet24. A mobile device28is also in communication with the Internet24via a cellular communications tower32. In particular, the mobile device28communicates via cellular communications with the cellular communications tower32that, in turn, is in communication with the Internet24via a number of intermediate servers operated by one or more cellular communications carriers (not shown). A personal computer36in communication with the Internet24is used by an intended recipient of the data to be shared.

FIG. 2shows a number of physical and logical components of the server20, including a central processing unit (“CPU”)40, random access memory (“RAM”)44, an input/output (“I/O”) interface48, a network interface52, non-volatile storage56, and a local bus60enabling the CPU40to communicate with the other components. The CPU40executes an operating system and programs that provide the desired functionality. RAM44provides relatively responsive volatile storage to the CPU40. The I/O interface48allows for input to be received from one or more devices, such as a keyboard, a mouse, etc., and outputs information such as to a display and/or speakers. The network interface52permits communication with other systems for sending and receiving communications to the mobile device28and email. Non-volatile storage56stores the operating system and programs. A database64is maintained by the server20and stores user account information (including security credentials) and data that is access-controlled by the user accounts.

Referring toFIG. 3, a number of components of the mobile device28are shown. As illustrated, in this embodiment, the mobile device28is a typical mobile phone having basic functions. The mobile device28has an input interface68for receiving input from a user, a display72is provided for presenting information visually to the user, and a speaker76for playing audio notifications or other audio output, including voice output, to the user. The mobile device28also includes memory80for storing an operating system that controls the main functionality of the mobile device28, along with a number of applications that are run on the mobile device28, and data. A processor84executes the operating system and applications. A SIM card88provides additional memory for storing applications and data, and has a microprocessor for executing them. Additionally, the SIM card88has a unique hardware identification code that permits identification of the mobile device28. When installed, the SIM card88forms part of the mobile device28. Other types of mobile devices can have encrypted device memory in place of the SIM card88that offers the equivalent functionality. A communications interface92permits communications with a cellular network for voice and data. The communications interface92also enables communications via other wireless and wired channels, such as Bluetooth and universal serial bus (“USB”).

FIG. 4shows the general method100of setting up the mobile device28for use with the server20. The application is a “wallet” application that contains metadata that represents sets of data on the server20in the form of one or more “cards”. For example, one card could represent the user's basic healthcare information, including his full name, address, contact information and healthcare insurance information. Another card could represent various medical images and reports relating to a particular issue experienced by the user, such as x-rays and assessments for a broken bone. Some or all of the data that the cards represent can be included in the card itself. Alternatively, the data represented by the card can be retained solely on the server20.

In order to enable the user of the mobile device28to share data using the system, the user registers with the data management service via a Web page, either on the mobile device28or elsewhere (step110). The Web page is part of a registration and administration interface for the data management service that is Web-based. During registration, the user provides his name and address, basic healthcare information, a login name and password, and the telephone number associated with the mobile device28that he wishes to access the service with. In addition, the user is asked to accept an end-user license agreement (“EULA”) and privacy policy for the data management service. Once registration is complete, the server20sends a short message service (“SMS”) message to the mobile device28that includes a link for downloading an application (step120). The SMS message is sent to the mobile device28via the telephone number provided by the user at step110. Upon receipt of the SMS message and activation of the link, the mobile device28downloads the application, after which it is installed on the mobile device28(step130).

Once the application is installed on the mobile device28and started up for the first time, the user is prompted for his login name and password (step140). The application transmits the user's login name and password securely to the server20and, once approved, the server20commences the process of provisioning the application executing on the mobile device28(step150). During provisioning, the server20generates and sends security elements to the mobile device28for storage in the memory thereof. In particular, the security elements are a shared secret and a shared counter that are used to generate one-time passwords (“OTPs”). In addition, a token ID is provided to identify the shared secret and the shared counter. The server20stores a copy of the user credentials and security credentials, together with the token ID, in the database64. Once provisioning of the mobile device28is complete, cards representing the user's data are downloaded from the server20to the application (step160). Upon completion of downloading of the cards, the application is ready to use on the mobile device28to enable sharing data via the system.

FIG. 5illustrates the method of sharing data using the system shown inFIG. 1generally at200. The method begins when the user activates the application on the mobile device28and logins in by entering his login name and password selected during registration (step210). The user selects data to share, and enters in the recipient's email address and a pass phrase for encrypting/decrypting the data (step220). In order to select the data to share, the user selects one or more cards that represent sets of data on the server20. The user types in the email address of the intended recipient or selects it from a list of contacts. The user then is prompted for and enters a pass phrase that will be used to encrypt and decrypt the selected data. The application on the mobile device28then transmits a request to share the selected data with the specified recipient to the server20(step230). The request identifies the user via, the cards selected which the server20is able to associate with the appropriate sets of the user's data in the database64, the intended recipient's email address and the pass phrase to be used to encrypt the selected sets of data. In addition, the application generates an OTP using the shared secret and counter, and includes the generated OTP and the associated token ID together with the request. The server20determines if the request is authentic based on the OTP (step240). The authentication is performed by an authentication module; in this case, a software module executing on the server20. The authentication module uses the token ID provided with the request to retrieve the associated shared secret and shared counter, and uses them to generate an OTP independently. If the generated OTP matches the OTP provided with the request, the request is authenticated. If not, OTPs are generated using the shared counter and other values for the counter within a window until all counter values within the window are exhausted, in which case the request is deemed unauthenticated, or until the OTP provided with the request is matched, in which case the request is deemed authenticated. If the authentication module determines that the request is not authentic, the server20reports the error to the mobile device28(step250). If, instead, the request is authenticated, the server20compresses and encrypts a copy of the selected sets of data corresponding to the cards selected by the user (step260). In particular, an encryption software module executing on the server20generates an encrypted, compressed .zip archive that includes all of the selected data. In generating the encrypted, compressed archive, the encryption software module uses the pass phrase provided by the user to encrypt the data. Once the encrypted, compressed archive is created, the server20sends it as an attachment to an email to the recipient email address specified by the user (step270). In order for the recipient to be able to access the sets of data sent to him via email, the user communicates the pass phrase for the data being shared to the recipient (step280). For example, the user can verbally communicate the pass phrase to the recipient. Once the recipient has the pass phrase, he is able to decrypt and decompress the sets of data transmitted to him.

FIG. 6shows a method of sharing data, generally at300, in accordance with an alternative embodiment. In this embodiment, data to be shared is not transmitted as an email attachment, but is, instead, made available for downloading by the recipient in an access-controlled manner. The method300is similar to the method200described above, except that, instead of creating an encrypted archive for transmission via email, the data to be shared is placed in an access-controlled FTP folder for downloading by the recipient. The method300begins when the user activates the application on the mobile device28and logins in by entering his login name and password selected during registration (step310). The user selects data to share, and enters in the recipient's email address and a pass phrase for encrypting/decrypting the data (step320). In order to select the data to share, the user selects one or more cards that represent sets of data on the server20. The user types in the email address of the intended recipient or selects it from a list of contacts. The user then is prompted for and enters a pass phrase that will be used to encrypt and decrypt the selected data. The application on the mobile device28then transmits a request to share the selected data with the specified recipient to the server20(step330). The request identifies the user via, the cards selected which the server20is able to associate with the appropriate sets of the user's data in the database64, the intended recipient's email address and the pass phrase to be used to encrypt the selected sets of data. In addition, the application generates an OTP using the shared secret and counter, and includes the generated OTP and the associated token ID together with the request. The server20determines if the request is authentic based the user credentials provided (step340). The authentication is performed by an authentication module; in this case, a software module executing on the server20. The authentication module uses the token ID provided with the request to retrieve the associated shared secret and shared counter, and uses them to generate an OTP independently. If the generated OTP matches the OTP provided with the request, the request is authenticated. If not, OTPs are generated using the shared counter and other values for the counter within a window until all counter values within the window are exhausted, in which case the request is deemed unauthenticated, or until the OTP provided with the request is matched, in which case the request is deemed authenticated. If the authentication module determines that the request is not authentic, the server20reports the error to the mobile device28(step350). If, instead, the request is authenticated, the server20copies the data selected for sharing to a temporary folder that is created on a file transfer protocol (“FTP”) server for the share (step360). The server20applies access-control on the FTP folder such that the specified pass phrase is required as part of a login before access to the folder is provided via FTP. Once the selected data is placed in the access-controlled folder, the server20sends a link in an email to the recipient email address specified by the user (step370). The link to the temporary FTP folder includes a login name. In order for the recipient to be able to access the sets of data sent to him via email, the user communicates the pass phrase for the data being shared to the recipient (step280). For example, the user can verbally communicate the pass phrase to the recipient. Once the recipient has the pass phrase, he is able to activate the FTP link to commence an FTP session. The server20prompts the user for the pass phrase and enables downloading of the shared data once the pass phrase is entered. After 48 hours of first FTP login, the temporary FTP folder is deleted by the server20.

In another alternative embodiment, the shared data can be made available to other users of a Web-based service for viewing or otherwise accessing data that is shared. A user can enabling others to access data on a server in a Web-based service by providing them a pass phrase that permits temporary or permanent access to the shared data, or can simply direct the server to enable access to another user by selecting metadata on their mobile device and identifying the other user.

While the invention has been described with specificity to enabling data sharing via email, those skilled in the art will appreciate that the invention can also be applied to making data to be shared accessible via other methods.

The metadata maintained by the application on the mobile device can merely represent data on the server, or can include some or all of the data on the server.

Instead of having the user select a pass phrase for accessing the shared data, the pass phrase for accessing the data to be shared can be generated by the server and transmitted to the mobile device.

While the embodiments above describe the implementation of the invention for sharing health care data, other types of data can be shared. For example, the shared data can relate to financial information, business information, identity credentials, media content, etc.

The above-described embodiments are intended to be examples of the present invention and alterations and modifications may be effected thereto, by those of skill in the art, without departing from the scope of the invention which is defined solely by the claims appended hereto.