Patent Publication Number: US-8533469-B2

Title: Method and apparatus for sharing documents

Description:
TECHNICAL FIELD 
     This disclosure relates in general to communication systems and more particularly to a method and apparatus for sharing electronic documents within a communication system. 
     BACKGROUND 
     When sharing electronic documents in a networked environment, whether the unsecured Internet or a private intranet, it may be desirable to allow a document creator to share the document with only a select group of other users or devices. Such security may be particularly desirable when the electronic document contains private or sensitive information. Several methods exist to verify the identity of a user attempting to gain access to a share electronic document, such as username and password combinations, and public/private key combinations. 
     With this variety of security methods, it is often cumbersome for the creator or manager of an electronic document to maintain security credentials and/or communicate the necessary credentials to those users that require access to the electronic document. Further, certain users, such as system administrators, may have access to all documents stored in a centralized document repository. Such depositories are often used in sharing electronic documents, and the access required by certain users to maintain the technical environment may also be used to inappropriately access the documents stored within that environment. 
     As more and more electronic documents are stored remotely and access to that data through various services becomes increasingly important, it will become correspondingly important to protect the content of those documents and allow access only to those that the author desires to grant access. 
     SUMMARY OF THE DISCLOSURE 
     The present disclosure provides a method and apparatus for securely sharing document that substantially eliminates or reduces at least some of the disadvantages and problems associated with previous methods and systems. 
     According to one embodiment, a method for securely sharing electronic documents on a document storage system may include receiving an electronic document from a creating user, generating an encryption key unique to the electronic document, encrypting the electronic document using the encryption key to create an encrypted electronic document, and communicating the encrypted electronic document to a document repository for storage. The method may also include identifying a resource locator, the resource locator configured to uniquely identify the storage location of the encrypted electronic document and communicating the encryption key and the resource locator to the creating user. The method may also include receiving the encryption key and the resource locator from a requesting user, retrieving the encrypted electronic document from the document repository using the resource locator, decrypting the encrypted electronic document using the encryption key, and communicating the decrypted electronic document to the requesting user. 
     Also provided is a document storage system for securely sharing electronic documents, comprising an accountability vault. The accountability vault may be configured to receive an electronic document from a creating user, generate an encryption key unique to the electronic document, encrypt the electronic document using the encryption key to create an encrypted electronic document, communicate the encrypted electronic document to a document repository for storage. The accountability vault may also be configured to identify a resource locator and communicate the encryption key and the resource locator to the creating user. The accountability vault may also be configured to receive the encryption key and the resource locator from a requesting user, retrieve the encrypted electronic document from the document repository using the resource locator, decrypt the encrypted electronic document using the encryption key, and communicate the decrypted electronic document to the requesting user. 
     Technical advantages of certain embodiments of the present disclosure include providing secure means of sharing document among multiple users in a network environment. More particularly, this approach allows the contents of documents shared within a document storage system to be protected from view by administrators and other users with high-level access to document storage system. Further, the creating user is given increased flexibility and control in determining which other users may be granted access to the contents of an electronic document. Other technical advantages will be readily apparent to one skilled in the art from the following figures, descriptions, and claims. Moreover, while specific advantages have been enumerated above, various embodiments may include all, some or none of the enumerated advantages. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       For a more complete understanding of the present invention and its advantages, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which: 
         FIG. 1  is a simplified block diagram of an electronic document sharing system, in accordance with certain embodiments of the present disclosure; 
         FIG. 2  is a simplified block diagram illustrating various functional components of a document storage system, in accordance with certain embodiments of the present disclosure; and 
         FIG. 3  illustrates a flow chart of an example method for sharing electronic documents in a networked environment, in accordance with certain embodiments of the present disclosure. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       FIG. 1  is a simplified block diagram of an electronic document sharing system  100 , in accordance with certain embodiments of the present disclosure. According to the illustrated embodiment, electronic document sharing system  100  includes a plurality of users  106  in communication with document storage system  108  and in communication with other users  106 . Document storage system  108  includes, in some embodiments, accountability vault  102  and document repository  104 . 
     For purposes of this disclosure, an “electronic document” or “document” may be any file, files, object code, executable code, data records, or any other electronically recorded data structure that user  106  of electronic document sharing system  100  may wish to store and/or share with other users  106  of electronic document sharing system  100 . Illustrative examples may include text files, spreadsheets, email, medical records, images, and other electronic data. Additionally, user  106  of electronic document sharing system  100  may refer to a person acting as an end user or to the device or devices used by such a person to access electronic document sharing system  100 , such as a personal computer, kiosk, or mobile computing device. 
     In general, the components of electronic document sharing system  100  may securely store an electronic document edited by a user  106  such that the user  106  and other authorized users  106  may later access that electronic document in a manner that provides the appropriate encryption key only to authorized users and does not store the encryption key within document storage system  108 . User  106  may create a document and communicate that document to document storage system  108  via any appropriate network, such as the internet or a private intranet. Accountability vault  102  of document storage system  108  may then encrypt the electronic document using an appropriate encryption scheme, as described in more detail below with reference to  FIG. 2 . Once encrypted, the electronic document may then be stored in document repository  104 . Document repository  104  may be any appropriate database and/or database management system suitable for use in a networked document sharing system, such as Oracle Database or IBM&#39;s DB2. 
     Accountability vault  102  may also communicate the encryption key for the electronic document to the user that created the document (“creating user”), as well as a resource locator. The creating user may be the user  106  that actually created the electronic document or a user  106  that has edited the document or otherwise gained access to the document and now desires to store the document on document storage system  108 . 
     The resource locator may be a reference associated with the electronic document that would allow user  106  to locate or request access to the electronic document. In some embodiments, document storage system  108  may be web-enabled, with each electronic document stored in document repository  104  assigned a unique uniform resource locator (“URL”). Entering this URL into a standard web browser may allow user  106  to request access to the specific electronic document. In some embodiments, the encryption key and the resource locator are communicated to user  106  in a text format. Communication in this manner may allow user  106  to share this information with other users  106  in a convenient manner. Communication of the key and the resource locator between document storage system  108  and user  106 , or between user  106  and another user  106  may be in any appropriate format, such as email or SMS. 
     In some configurations, it may be most efficient to combine the resource locator and encryption key into a single line of communication. In other configurations, it may be deemed to be more secure to separate the resource locator and encryption key into separate communications. In those configurations favoring utmost efficiency, a single communication such as a single URL may be preferable. For instance, the URL communicated to user  106  may take the form of location+resource locator+encryption key. In a web-enabled environment such as that described above, this may take the illustrative form of:
         http://web_host/retrieve_document? doc_id=1234&amp;key=19da301afe0231823       

     In this illustrative example, “web_host” may be the network location of database storage system  108 , “retrieve_document” may be the name of a process executable on database storage system  108  used to retrieve the desired electronic document, “doc_id” may be the resource locator unique to the desired electronic document, “1234” may be the value of the resource locator, “key” may be the identification of the encryption key used by the “retrieve_document” process, and “19da301afe0231823” may be the value of the encryption key unique to the desired electronic document. This example has been offered solely to facilitate understanding of  FIG. 1 , and in no way should be interpreted to limit the teaching of this disclosure. 
     In other embodiments, user  106  may be able to identify other users  106  who should receive the resource locator and encryption key when user  106  stores an electronic document on document storage system  108 . Once informed, accountability vault  102  may, in some embodiments, communicate the resource locator and encryption key directly to other users  106  whom user  106  has previously identified. This communication may take the same form as the communication to user  106  described above. 
     User  106  in possession of the resource locator and encryption key may, at an appropriate time, communicate with document storage system  108  in an attempt to retrieve the electronic document associated with that resource locator and encryption key. In some embodiments, accountability vault  102  may receive the resource locator and encryption key from user  106 , retrieve the identified document from document repository  104 , and decrypt the document using the encryption key. Once decrypted, accountability vault  102  may communicate the unencrypted document to the requesting user  106 . 
     Importantly, in the disclosed embodiments, the encryption key is never stored within document storage system  108  except to the extent required to execute the encryption and decryption of the stored electronic document. This allows improvements in the security of the contents of the electronic documents stored within document storage system  108 . For instance, administrators or other users with high-level privileges for document storage system  108  may not be able to read the encrypted electronic documents stored in document repository  104 . 
       FIG. 2  is a simplified block diagram illustrating various functional components of document storage system  108 , in accordance with certain embodiments of the present disclosure. The illustrated document storage system  108  may include accountability vault  102 , document repository  104 , policy engine  106 , and audit engine  110 . The various components of document storage system  108  may be, in some embodiments, a software program stored on computer-readable media and executable by a processor of document storage system  108 . For clarity of description,  FIG. 2  depicts the components as separate modules. In some embodiments, the components may be stand-alone software programs. However, the components may also be a component or subroutine of a larger software program, or hard-coded into computer-readable media, and/or any hardware or software modules configured to perform the desired functions. 
     Accountability vault  102  may be configured to encrypt and decrypt an electronic document in response to communication from a user  106 , as described in more detail above with reference to  FIG. 1 . In some embodiments, the encryption algorithm used by accountability vault  102  to create the encryption key may be any encryption algorithm configured to produce an encryption key unique to the electronic document and randomly generated. The Advanced Encryption Standard (AES) provides a well-known example of such an encryption algorithm. 
     In some embodiments, the encrypted documents are stored in document repository  104 . Document repository  104  may be any appropriate computer-readable memory such as a database and/or database management system suitable for use in a networked document sharing system, such as Oracle Database or IBM&#39;s DB2. In some embodiments user  106  may also predefine certain policies applicable to a particular electronic document. These policies may, for instance, define a set of users  106  that may have access to the document. The addition of such a policy may help to improve security of the contents of the electronic document by denying access to a user  106  who may have received the resource locator and encryption key by mistake or against the wishes of the document&#39;s creator. The predetermined policy may also define access to a particular document in terms of certain predefined attributes of user  106 , such as physical location (e.g., IP address), certain software installed on the requesting machine (e.g., rigorous antivirus software), biometric identifiers, or any other appropriate attributes of user  106 . 
     In some embodiments, document storage system  108  may also contain audit engine  110 . For some configurations of document storage system  108 , it may be necessary or desirable to store electronic documents in as secure a manner as possible. To prevent unintended tampering with accountability vault  102 , an administrator of document storage system  108  may wish to perform periodic audits of accountability vault  102 . In some embodiments, this audit may include comparing the state of accountability vault  102  at a particular point in time (a “snapshot” of accountability vault  102 ) with a similar snapshot taken at a later point in time. If unacceptable discrepancies arise in the comparison, then document storage system  108  may communicate an error message indicating that tampering may have occurred. Such a communication may be intended for the creating or requesting user, or for some other user  106  such as an administrator of document storage system  108 , or the communication may be logged in an electronic file or other recording mechanism. 
     In some embodiments, the snapshots taken of accountability vault  102  may be in the form of a hash value representative of the current state of accountability vault  102 . Such a hash value or values may be obtained by any number of well-known methods. The hash value(s) may be configured to represent a particular portion of concern of accountability vault  102  (e.g., the encryption key generator) or the entirely of accountability vault  102 . The hash value(s) taken at multiple points in time may then be compared to one another. In some configurations of document storage system  108 , it may be most appropriate to generate a first hash value prior to runtime of document storage system  108  as a control value. During runtime, a second hash value may be generated for comparison to this control value. The second hash value may be taken at regular intervals according to the particular configuration of document storage system  108 . 
       FIG. 3  illustrates a flow chart of an example method  300  for sharing electronic documents in a networked environment, in accordance with certain embodiments of the present disclosure. Method  300  includes communicating a document, encrypting that document, communicating the resource locator and encryption key, receiving the resource locator and encryption key, decrypting the document, and communicating the unencrypted document. 
     According to one embodiment, method  300  preferably begins at step  302 . Teachings of the present disclosure may be implemented in a variety of configurations of document storage system  108 . As such, the preferred initialization point for method  300  and the order of steps  302 - 316  comprising method  300  may depend on the implementation chosen. Additionally, the steps of method  300  may not be performed in any appropriate order other than the order illustrated. 
     At step  302 , document creating user  106  creates an electronic document for storage in document storage system  108 . Creating user  106  may, in some embodiments, create, edit, or otherwise modify an electronic document. Creating user  106  may then separately upload the electronic document to document storage system  108  or, in some embodiment, save the electronic document directly to document storage system  108 . After receiving the document, accountability vault  102  of document storage system  108  may assign an encryption key to the document at step  304 . After assigning the encryption key, method  300  may proceed to step  306 , where accountability vault  102  may encrypt the received electronic document. After encrypting, method  300  may then proceed to step  308 , where the encrypted document is stored in document repository  104  and assigned a resource locator, as described in more detail above with reference to  FIGS. 1-2 . Method  300  may then proceed to step  310 , where the resource locator and encryption key are communicated to user  106 . In some embodiments, the user  106  receiving the resource locator and encryption key from document storage system  108  may be the creating user  106  or other users  106  previously identified by creating user  106 . After communicating the resource locator and encryption key, method  300  may proceed to step  312 . 
     At step  312 , method  300  may receive a request for an electronic document stored in document storage system  108  from requesting user  106 . This request may include the resource locator of an electronic document and the encryption key necessary to decrypt that electronic document. After receiving this request, method  300  may proceed to step  314 , where accountability vault  102  may retrieve the request document from document repository  104  and decrypt the retrieved document using the communicated encryption key. If the encryption key is not the appropriate encryption key for the retrieved document, then the decryption process will be unsuccessful. If the decryption process is successful (that is, the encryption key was appropriate for the retrieved document), then method  300  may proceed to step  316 , where the decrypted document may be communicated to the requesting user  106 . After communicating the decrypted document to requesting user  106 , method  300  may terminate. 
     Although  FIG. 3  discloses a particular number of steps to be taken with respect to method  300 , method  300  may be executed with more or fewer steps than those depicted in  FIG. 3 . For instance, in some embodiments, method  300  may include the further steps of auditing accountability vault  102  in order to ensure its integrity, as described in more detail above with reference to  FIG. 2 . In other embodiments, method  300  may include a step or steps involving the verification of a document request against a predetermined policy associated with that document, as described in more detail above with reference to  FIGS. 1-2 . 
     In addition, although  FIG. 3  discloses a certain order of steps comprising method  300 , the steps comprising method  300  may be completed in any suitable order. For example, in the embodiment of method  300  shown, document storage system  108  retrieves an encrypted document from document repository  104  after receiving a request for that document from requesting user  106 . In some configurations in which document storage system  108  receives a large volume of document requests, it may be more efficient to aggregate document requests and retrieve all of them at the same time, while executing other steps of the method during the transaction. 
     Using the methods and systems disclosed herein, certain problems associated with maintaining the security of the contents of electronic documents stored in a shared document repository and sharing those documents among various users  106  may be improved, reduced, or eliminated. For example, the methods and system disclosed herein allow for an encryption key unique to each stored document that is not stored within document storage system  108  such that administrators and other high-level users of document storage system  108  cannot access the contents of the shared electronic documents.