Server Specification
Author: Sora Suegami
A remote server in Sommelier Drive stores file information in Sommelier DB. That is, it creates DB tables as below.
User table
User table stores the id of a user and the user's PKE and PKSE public keys. They are denoted by userId, dataPK, and keywordPK, respectively, in the following description.
| UserID | DataPK | KeywordPK |
|---|---|---|
| Int | Text | Text |
Path table
Path table stores information about the file path. Each record in this table corresponds to a pair of the userId and the file path, filePath. Its columns describe the property of the file or directory located in the filePath as below.
| PathID | UserID | PermissionHash | DataCT | KeywordCT |
|---|---|---|---|---|
| Int | Int | Text | Text | Text |
- UserID: A
userIdof the user who has read permission to the file or directory located in thefilePath. - PermissionHash: A
permissionHashderived from theuserIdandParent(filePath), which represents a parent directory path of thefilePath. - DataCT: A ciphertext of the
filePathencrypted with thedataPKcorresponding to theuserId. - KeywordCT: A ciphertext of the
filePathencrypted with thekeywordPKcorresponding to theuserId.
Shared key table
Shared Key table stores a pathId and a shared key encryption, sharedKeyCT. The sharedKeyCT is required to recover the file contents located in the filePath of the pathId.
| SharedKeyID | PathID | SharedKeyCT |
|---|---|---|
| Int | Int | Text |
Contents table
Contents table stores a file contents encryption, contentsCT. Each record corresponds to a sharedKeyHash, which is a hash value of the shared key. Therefore, users who hold the same shared key can access the same record.
| ContentsID | SharedKeyHash | ContentsCT |
|---|---|---|
| Int | Text | Text |