Encryption key management program, data management system

An objective of the present invention is to ensure security of the file sharing function provided by cloud storages without significantly decreasing the convenience of cloud storages. The encryption key management program according to the present invention encrypts, using authentication information of a user, a group shared key shared in a user group and stores it as an encrypted group shared key. The encryption key management program, upon receiving a request from a user, sends the encrypted group shared key corresponding to the requesting user.

CLAIM OF PRIORITY

The present application claims priority from Japanese patent application JP 2012-280469 filed on Dec. 25, 2012, the content of which is hereby incorporated by reference into this application.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a technique for managing data files using cloud storages.

2. Background Art

In recent years, it has become discussed to utilize in business public cloud storage services which have been provided for consumers. The file sharing function provided by public cloud storage services is one of advantages in using cloud storages. However, a lot of users are anxious in terms of security when using public cloud storages in business. Thus public cloud storages are generally used for personal use only so far. Therefore, as one of security measures, a scheme has been developed in which files stored in cloud storages are encrypted before operation. In association with this scheme, software products that implement encrypting files stored in cloud storages are available in the market. However, only few products achieve both the file sharing function of public cloud storage services and the encryption.

JP Patent Publication (Kokai) No. 2007-11511 A describes, in a case where a plurality of users shares encrypted files without using cloud storages, a system in which the encrypted files are stored in a removable medium and the encrypted files can be decrypted only on computers that are used by user groups permitted in advance.

SUMMARY OF THE INVENTION

In the file exchange using removable media as described in JP Patent Publication (Kokai) No. 2007-11511 A, it is necessary to carry the removable medium storing the encrypted files when the stored information is to be carried to outside of the user group. Therefore, if the removable medium is lost, broken, or the like, the data itself cannot be restored. In addition, when sharing the encrypted files among a plurality of users simultaneously, it is necessary to prepare and distribute removable media for each of users and is also necessary to notify the users of information for decryption such as encrypting password in advance. Therefore, it has problems in terms of immediacy, convenience, or safety. Further, it is possible to decrypt the encrypted files as long as the encrypted files and information for decryption such as password are available. Thus it has problems in terms of security.

Next, it is assumed that cloud storages are used as alternative measures instead of file sharing using removable media. It is possible to share files between users inside and outside of users' own groups by utilizing the file sharing function provided by public cloud storage services. However, security risks such as information leakage due to operational mistakes by service operators managing the cloud storages or hackings to the cloud storages may arise. Thus more advanced security measures are required.

Encrypting files stored on cloud storages may be conceivable as security measures for cloud storages. However, encrypting files using password requires disclosing the password to a plurality of users in order to share the files, which has problems in terms of safety. Encrypting whole of the cloud storages may be conceivable as another measure. However, it may easily lead to information leakage if the user providing the shared file mistakes in setting access privileges.

The present invention is made in the light of above-described problems, and it is an objective of the present invention to ensure security of the file sharing function provided by cloud storages without significantly decreasing the convenience of cloud storages.

The encryption key management program according to the present invention encrypts, using authentication information of a user, a group shared key shared in a user group and stores it as an encrypted group shared key. The encryption key management program, upon receiving a request from a user, sends the encrypted group shared key corresponding to the requesting user.

With the encryption key management program according to the present invention, it is possible to enhance safety without significantly decreasing the convenience of cloud storages.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1is a configuration diagram of a data management system1000according to the present invention. The data management system1000includes a management server100, a client terminal200, and a cloud storage300, which are connected with each other through a network400such as the Internet.

The management server100works as an authentication server that manages user IDs of users who use the client terminal200and groups to which each of the users belongs. In addition, the management server200manages encryption keys that the client terminal200uses when encrypting data files as described inFIG. 2later.

The client terminal200encrypts data files using encryption keys acquired from the management server100, and stores the encrypted data files in the cloud storage300. In addition, the client terminal200decrypts the encrypted data files acquired from the cloud storage using the encryption keys acquired from the management server100. When the client terminal200acquires the encryption keys from the management server100, it is necessary to be authenticated by the management server100. For the sake of simplifying the description, it is assumed that authentication is not necessary when accessing the cloud storage300. However, an authentication may be performed at that time. The client terminal200is a computer such as a personal computer210or a mobile terminal220. Hereinafter, those computers are collectively referred to as the client terminal200.

The cloud storage300stores data files encrypted by the client terminal200. The cloud storage300comprises storage devices that are connected to the network400and is capable of reading and writing data through the network400. The service provider providing the cloud storage300is not necessarily the service providers to which the management server100(and its components) or the client terminal200belongs.

FIG. 2is a functional block diagram showing details of the management server100. The management server100encrypts, using authentication information of each of users, encryption keys that the client terminal200uses when encrypting data files, and manages the encrypted encryption keys. The management server100sends the encrypted encryption keys in response to requests from the client terminal200.

The management server100includes a private key encryption unit110, a group shared key encryption unit120, a system shared key encryption unit130, a PW key encryption unit140, an encryption key send unit150, and a database160. The encryption key send unit further includes an authentication unit151and a send unit152. The functional units other than the database160will be further described afterFIG. 3mentioned below.

The database160is a database managing encryption keys that the client terminal200uses when encrypting data files. There are three types of the encryption keys. A private key1612is an encryption key that is unique to each of users who uses the client terminal200. A group shared key1614is an encryption key that is shared in a user group to which the user who uses the client terminal200belongs. A system shared key1616is an encryption key that is shared in the data management system1000.

The database160stores, as each of records in a user table161provided for each of users, the above-mentioned three types of keys that are encrypted using authentication information of each of users. For the sake of simplifying the description, it is assumed that the management server100authenticates each of users by passwords, and that the management server100encrypts the three types of keys using the passwords as encryption keys (hereinafter, referred to as a PW key1618). The records1611,1613, and1615are pieces of data corresponding to the private key1612, the group shared key1614, and the system shared key1616encrypted by the PW key1618, respectively.

The user table161further stores, as a record1617, the PW key1618for each of users that are encrypted by a management key162managed by the system administrator. The management key162is stored in a storage area other than that of storing the user table161. For example, the management key162can be stored in a session management area. Even in a case where users forget the password, it is possible for the administrator to decrypt the PW key1618using the management key162, to decrypt the private key1612, the group shared key1614, and the system shared key1616respectively, to issue a new password, and to re-encrypt each of the encryption keys using the new password. Namely, even in a case where the encryption key is doubly encrypted as shown inFIG. 2, it is possible to reissue authentication information.

The database160can be configured using storage devices such as hard disk devices. Other functional units can be configured using hardware such as circuit devices implementing these functions or can be configured by arithmetic devices such as CPUs (Central Processing Unit) that executes programs implementing these functions. If these functional units are implemented by programs, these functional units correspond to “encryption key management program” and can be stored in computer readable storage media (e.g. recording devices such as memory, hard disk, or SSD (Solid State Drive), recording media such as IC card, SD card, or DVD). The management server100corresponds to “encryption key management apparatus”.

FIG. 3is a diagram explaining a user authentication process performed by the management server100.FIG. 3(a) shows a process to register a new user.FIG. 3(b) shows a process to authenticate the registered user. Hereinafter, each of processes will be described with an example of processes regarding user_A.

User_A is a user of the client terminal200. User_A accesses the management server100and requests to register user_A as a new user. It is possible to specify Group_A as a user group to which user_A is to be belonged along with the request. It is also possible to delegate to the management server100about the user group to which user_A belongs. In addition, a password for authenticating user_A may be specified at the same time. Hereinafter, it is assumed that the management server100designates a password automatically.

If the authentication unit151receives, from the client terminal200, a request to register user_A as a new user, the authentication unit151issues a password user_A_PW that corresponds to user_A. The authentication unit151saves the relation between user_A and user_A_PW. After that, user_A can login to the management server100using the password user_A_PW. The process for registering new users may be automated. Alternatively, the administrator may register new users after determining whether the user is allowed to be registered as a new user.

The authentication unit151generates a private key1612that is unique to user_A by using, for example, random numbers. If Group_A is a new group, the authentication unit151generates a group shared key1614that is unique to Group_A by using for example random numbers similarly. The system shared key1616and the management key162are generated using appropriate processes in advance.

The private key encryption unit110encrypts the private key1612using the password user_A_PW or a value that is uniquely derived from user_A_PW as the PW key1618. The private key encryption unit110stores the encrypted private key1612as the record1611in the user table161. The correspondence between user_A and the record1611may be defined by associating the user ID of user_A with the record1611, or may be defined by creating the user table161for each of users.

The group shared key encryption unit120and the system shared key encryption unit130similarly encrypt the group shared key1614and the system shared key1616respectively using the PW key1618, and store the encrypted keys as a record1613and a record1615respectively. The PW key encryption unit140copies the PW key1618, encrypts the copied key using the management key162, and stores it as a record1617.

When the user of the client terminal200encrypts or decrypts data files, it is necessary to login to the management server100and to acquire each of encryption keys. The user sends, to the management server100, the user ID user_A and the password user_A_PW using the client terminal200. The authentication unit151performs an authentication using the user ID and the password. If the user is authenticated, the send unit152reads out the private key1612, the group shared key1614, and the system shared key1616that are corresponding to the user and sends the keys to the client terminal200. Note that these three keys are still encrypted by the PW key1618.

FIG. 4is a diagram explaining a process in which the client terminal200encrypts a data file212and stores (uploads) it in the cloud storage300. It is assumed here that only user_A uses the data file212.

The user logins to the management server100and acquires each of encryption keys before storing the data file212in the cloud storage, as described inFIG. 3. The client terminal200decrypts, using the password user_A_PW, each of records acquired from the management server100to acquire the three encryption keys. Since the data file212is dedicated to user_A, the user selects the private key1612as an encryption key for encrypting the data file212. The client terminal200encrypts the data file212using the private key1612to generate an encrypted data file211. The client terminal200stores (sends) the encrypted data file211in the cloud storage300.

Similarly, in a case where the data file212is shared among users belonging to Group_A, the user selects the group shared key1614as an encryption key to encrypt the data file212. In a case where the data file212is shared among users not belonging to Group_A, the user selects the system shared key1616as an encryption key to encrypt the data file212. The client terminal200encrypts the data file212using the selected encryption key, and stores the encrypted data file212in the cloud storage300.

When encrypting the data file212, the client terminal200embeds, in the encrypted data file212, information indicating which type among the above-mentioned three types of encryption keys was used. However, since it is sufficient as long as the type of encryption key is clear, it is not necessary to embed information indicating each of encryption keys itself individually.

FIG. 5is a diagram explaining a process in which the client terminal200acquires (downloads) the data file212from the cloud storage300to decrypt it. It is assumed inFIG. 5that only user_A uses the data file212as in the case ofFIG. 4.

The user acquires each of encryption keys from the management server100before acquiring the data file212from the cloud storage300as in the case ofFIG. 4. The client terminal200decrypts each of the encryption keys.

The user accesses the cloud storage300through the client terminal200and acquires the encrypted data file211. A piece of information indicating that the encrypted data file211is encrypted using an encryption key that is unique to each of users is embedded in the encrypted data file211. The client terminal200attempts to decrypt the encrypted data file211using a private key1612of user_A. If the encrypted data file211is encrypted using the private key1612of user_A, the encrypted data file211is decrypted to obtain the data file212.

Similarly, if the data file212is shared among users belonging to Group_A, the client terminal200performs decryption to obtain the data file212using the group shared key1614. If the data file212is shared among users not belonging to Group_A, the client terminal200performs decryption to obtain the data file212using the system shared key1616.

The encrypted data file211stored by user_A in the cloud storage300may be acquired by other user (e.g. user_B). In this case, since the client terminal200acquires the private key1612, the group shared key1614, and the system shared key1616that are corresponding to user_B, the client terminal200attempts to decrypt the encrypted data file211using those keys. The processing pattern in this case will be described below.

If the data file212is encrypted using a private key1612that is unique to user_A, the client terminal200cannot decrypt the data file212.

If user_A and user_B belong to the same group (e.g. Group_A) and the data file212is encrypted using a group shared key1614that is shared among users belonging to Group_A, it is possible to decrypt the data file212using a group shared key1614corresponding to user_B.

If the data file212is encrypted using the system shared key1616, it is possible to decrypt the data file212using the system shared key1616corresponding to user_B.

FIG. 6is a configuration diagram of a file system on an OS (Operating System) of the client terminal200. As described with reference toFIGS. 4 and 5, the client terminal200can encrypt or decrypt each of the data file212. However, users may be subjected to working loads because users have to select encryption keys for each of the encryptions or decryptions. Thus the client terminal200may collectively encrypt or decrypt data files stored in predetermined folders on the file system and may synchronize those files between the cloud storage300.FIG. 6explains a folder configuration example for that operation. The file system of the client terminal200includes a synchronization folder220and an encryption folder230.

The synchronization folder220is a folder that stores data files which the client terminal200sends to the cloud storage300or data files which the client terminal200acquires from the cloud storage300. The client terminal200continuously monitors the synchronization folder220. If a new data file is stored in the synchronization folder220, the client terminal200sends the data file to the cloud storage300. In addition, the client terminal200periodically connects to the cloud storage300as long as necessary. If new encrypted data files exist on the cloud storage300, the client terminal200downloads those files to store in the synchronization folder220.

Sub folders may be provided in the synchronization folder220. It is desirable if the folder/file structure in the synchronization folder220and the folder/file structure on the cloud storage300are synchronized with each other.

If the client terminal200uses a plurality of cloud storages300, it is possible to provide, in the synchronization folder220, sub folders corresponding to each of the cloud storages300and to perform synchronizations for each of the cloud storages300. The sub folders221and222shown inFIG. 6correspond to two cloud storages300(Cloud Storage A, Cloud Storage B).

The encryption folder230is a folder that stores data files which the client terminal200encrypts before sending to the cloud storage and data files decrypted from encrypted data files acquired from the cloud storage300. The client terminal200continuously monitors the encryption folder230. If a new data file is stored in the encryption folder230, the client terminal230encrypts the data file and stores it in the synchronization folder220. The data file stored in the synchronization folder220is sent to the cloud storage300as mentioned above. In addition, if a new encrypted data file is stored in the synchronization folder220, the client terminal200decrypts the encrypted data file and stores it in the encryption folder230.

The client terminal200synchronizes the folder/file structure in the encryption folder230with the folder/file structure in the synchronization folder220. Therefore, if sub folders for each of cloud storages300exist in the synchronization folder220, the same folder structure is created in the encryption folder230. The sub folders231and232correspond to the sub folders221and222respectively. Extensions of files may be appropriately changed so as to identify whether those files are encrypted. InFIG. 6, encrypted data files have an extension of “.crypto” in addition to the original “filename+extension”.

Next, a method for identifying the encryption key to be used will be described. The cloud storage300generally has a function for designating users who share data files for each of folders. Thus the client terminal200inquires to the cloud storage300about the users who are assumed to share data files stored in each of folders on the cloud storage300, and specifies encryption keys to be used according to the inquiry. For example, a data file in a folder storing data files that are shared in Group_A is encrypted using a group shared key1614that is unique to Group_A. InFIG. 6, the folder “ShareA” in the sub folder232corresponds to it. Data files that are shared between groups are encrypted using the system shared key1616. Although not shown inFIG. 6, a folder corresponding to the system shared key1616may be provided. Data files that do not fall under categories mentioned above are encrypted using a private key1612.

When the client terminal200acquires a new encrypted data file from the cloud storage300, a piece of information indicating which type of encryption keys is to be used is embedded in the encrypted data file, as described inFIG. 5. Thus it is possible to decrypt the encrypted data file using an encryption key corresponding to the information. Alternatively, as in a case of encrypting data files, a data file in a folder storing data files that are shared in Group_A may be decrypted using a group shared key1614that is unique to Group_A.

If the relation between the information embedded in the encrypted data file and the folder is contradicted, the encrypted data file may be processed according to a configuration file defining how to process it. For example, if an encrypted data file in which a piece of information indicating that the encrypted data file is encrypted using a private key1612is embedded is stored in a folder storing data files shared in Group_A, it is possible to attempt decrypting the encrypted data file using both a private key1612and a group shared key1614and to employ either one of the keys which was successful in the decryption. Alternatively, the encrypted data file may be stored in the encryption folder230without decrypting it. These processes may be applied to steps S805to S810described later.

FIG. 7is a flowchart explaining a process in which the client terminal200sends, to the cloud storage300, a new data file stored in the encryption folder230. Hereinafter, each of steps inFIG. 7will be described.

The user inputs authentication information (a user ID and a password) through the client terminal200and specifies group information (a group ID to which the user belongs) if necessary, and sends them to the management server100.

The authentication unit151of the management server100performs a user authentication using the authentication information received from the client terminal200(S702). If not approving the authentication, the authentication unit151sends a response indicating it to the client terminal200and the client terminal200displays a dialog indicating that the user authentication failed, then this flowchart terminates. If approving the authentication, the flowchart proceeds to step S704.

The send unit152acquires, from the database160, a private key1612, a group shared key1614, and a system shared key1616that are corresponding to the user, and sends those keys to the client terminal200. As described with reference toFIG. 3, those three keys are encrypted using the PW key1618. Thus the client terminal200decrypts those encryption keys using the authentication information of the user.

The client terminal200compares the file structure stored in the synchronization folder220with the file structure stored in the encryption folder230to determine whether the file structure stored in the synchronization folder230includes additions or updates. If additions or updates are included, the flowchart proceeds to step S706. If not, the flowchart skips to step S707.

The client terminal200decrypts the encrypted data file using a corresponding encryption key according to the information embedded in the encrypted data file, and copies the decrypted file to the encryption folder230. If the encrypted data file in the synchronization folder230is deleted, the data file corresponding to the deleted file in the encryption folder230is deleted.

The client terminal200periodically checks whether the file structure in the encryption folder230includes additions or updates. If additions or updates are included, the flowchart proceeds to step S708. If not, the flowchart skips to step S709.

The client terminal200encrypts the added or updated data file in the encryption folder230using a corresponding encryption key, and copies it to the synchronization folder220. The client terminal200uploads, to the cloud storage300, the encrypted data file copied to the synchronization folder220.

The client terminal200determines whether the user logged out (S709). If the user logged out, the client terminal200stops monitoring the encryption folder230. If not, the flowchart returns to step S705and same processes are repeated (S710).

FIG. 8is a flowchart in which the client terminal200downloads an encrypted data file from the cloud storage300. Steps S801to S804are analogous to steps S701to S704inFIG. 7. Thus step S805and steps thereafter will be described below.

The client terminal200stores, in the synchronization folder220, an encrypted data file downloaded from the cloud storage300. The client terminal200checks the identification information embedded in the encrypted data file downloaded from the cloud storage300, thereby specifying the encryption key to be used in the decryption process.

The client terminal200decrypts the encrypted data file using a corresponding encryption key according to the determination in step S805. The data file acquired by the decryption is stored in a corresponding folder in the encryption folder230.

SUMMARY OF THE PRESENT INVENTION

As discussed above, the management server100in the present invention has the record1613including a group shared key1614that is shared among users belonging to the same user group, the group shared key1614being encrypted using PW keys1618of each users. The management server100sends the record1613corresponding to each users in response to requests from the client terminal200. Since the group shared key1614is common in the group, users belonging to the same group can acquire the same group shared key1614even if the group shared key1614is encrypted using different PW keys1618respectively. As a result, even if the encrypted data file211is shared between other users in the group, it is not necessary to notify passwords to each other. Thus it is possible to keep the convenience of the cloud storage300as well as to encrypt data files on the cloud storage300to improve the security.

In addition, with the management server100in the present invention, even if two of three components, namely the encrypted data file211on the cloud storage, each of encrypted encryption keys managed on the management server100, and authentication information such as passwords which only users know are leaked, it is impossible to decrypt the encrypted data file211unless all of the three components are acquired. Therefore, it is possible to improve the security of whole of the data management system1000. This feature is common for any of the encryption keys.

In addition, the client terminal200in the present invention provides, both in the synchronization folder220and in the encryption folder230, sub folders corresponding to each of cloud storages300and synchronizes data files in each folders for each of the cloud storages300. As a result, it is possible to use, without being affected by the difference of specifications of the cloud storages300, a plurality of different cloud storages300with a unified operational feeling and an interface.

In addition, the client terminal200in the present invention inquires to the cloud storage300the rule about users who share data files on the cloud storage300, and encrypts or decrypts data files using encryption keys configured for each of folders corresponding to the rule. As a result, the user only has to be aware of the folders in which data files to be shared with other users are stored, and it is not necessary to be aware of encryption keys that are used for encrypting data files. Therefore, it is more convenient than in a case where each of data files is encrypted using passwords. It is also preferable in terms of security because it is not necessary to notify passwords to other users.

In addition, the client terminal200in the present invention embeds a piece of information indicating the encryption key that was used when encrypting the data file212, and uses a corresponding encryption key with reference to the information when decrypting the encrypted data file211. As a result, it is not necessary for users to select types of the encryption key or encryption schemes for each of encryptions. Thus it is possible to improve convenience for users.

<Modified Example of the Present Invention>

The present invention is not limited to the aforementioned embodiments, and various modifications are possible. The above-described embodiments are directed to detailed explanation for clear understanding of the present invention, and the present invention is not limited to the configuration having all described components. In addition, a part of a configuration of an embodiment may be replaced with a configuration in another embodiment. Further, a configuration is an embodiment may be added to a configuration in another embodiment. Yet further, a part of a configuration in an embodiment may be appended, deleted, or replaced by another configuration.

For example, in the aforementioned embodiments, it is assumed that encryption key and decryption key are the same. However, the present invention may be applied to a case where encryption key is different from decryption key (e.g. public key encryption scheme). In this case, the management server100may manage the pair of encryption key and decryption key, and the client terminal200may notify which one of the encryption key and the decryption key is required.

In addition, in the aforementioned embodiments, passwords are used as authentication information for authenticating users. However, other authentication information may be used as long as the client terminal200can decrypt each of the encryption keys.

In addition, in the aforementioned embodiments, folder structures under Windows (registered trademark) are assumed. However, the same scheme may be provided on other OSs.

DESCRIPTION OF SYMBOLS

100: management server,110: private key encryption unit,120: group shared key encryption unit,130: system shared key encryption unit,140: PW key encryption unit,150: encryption key send unit,160: database,1612: private key,1614: group shared key,1616: system shared key,1618: PW key,162: management key,200: client terminal,300: cloud storage,400: network