Considering the complexity of the existing healthcare structure where patients’ health information is distributed to multiple entities such as hospitals, healthcare centers and cloud servers, a centralized architectural design of information systems for the healthcare domain would not be suitable, especially when interoperability remains a challenging obstacle among the vast majority of healthcare information systems. A non-centralized architectural design would be the most suitable option for the healthcare sector so that disparate entities can collaborate through sharing information related to patients and their health.
3.1. Architecture fundamental aspects
There are two fundamental aspects of the proposed architecture design that enable it to store and share patient health-related information in a privacy-preserving manner. The first fundamental aspect is structuring patient information into categories. This aims to eliminate the exposure of information that is not needed during instances of medical treatments.
Structuring patient information also contributes towards allowing patients to have means of control over who can access their information while it is stored on the cloud. The second fundamental aspect is the use of a searchable symmetric encryption scheme (SSE) [
57] which enables to search through encrypted information without decrypting it. The objective of the searchable encryption scheme is to store patient information on the cloud without the ability of the cloud provider to learn the content of the stored information.
3.1.1. Structuring Patients Information
A fundamental aspect of the proposed cloud architectural design is the accommodation of patients’ health information under four main categories which were identified in the case study findings [
56]. These categories are Information that is constantly required in every patient’s visit (All_V), Information that is required in patients’ emergency visits (Em_V), Information that is required in out-patients’ clinical visits (OutP_V), and information required for research purposes (R). This paper focuses on information categories that are used for medical treatment purposes; therefore, the (R) category is explained in other work.
The main goal of structuring patients’ health information is twofold; firstly, to limit the exposure of information in instances when it is not needed. Secondly, limiting the exposure of information leads to better means of privacy protection that patients desire to have for their health information. The proposed system design stores patients' information in three groups referred to as documents. Each document has identifying tags and contains files.
Each file has the name of the patient, name of document, and a sub-tag used by the application system to identify and locate it. The system's identifying tags are used to technically facilitate access to documents and do not indicate the content of documents.
For example, and for simplification purposes, the tags used for the documents are 1, 2, and 3. All patients registered in the proposed system have their information organized into doc-1, doc-2, and doc-3. In the practical implementation of the proposed system, information stored in each document is subject to change according to the medical treatment changing needs. The information categories comprise information contained in different documents, therefore, accessing a category of information is a result of accessing one document or more. For example, when a user has the right to access information about a patient in an emergency setting (Em_V), doc-1 and doc-2 are released to the user, while a combination of document doc-1, doc-2 and doc-3 are released for users who have access to all information related to patients’ health (OutP_V) category.
Table 1 illustrates the information categories and their comprising documents.
3.1.2. Searchable Symmetric Encryption (SSE)
Searchable symmetric encryption is a corner stone of the proposed system architecture. The main objective of the proposed system architecture is to store patients’ information on the cloud without the ability of the cloud provider to read it. Achieving this is considered easy but not practical without a mechanism that enables to search through encrypted information without decrypting it.
The proposed system employs a searchable symmetric encryption (SSE) approach. The SSE approach enables outsourcing data storage while preserving the ability to selectively search over it. There are three models for searching on encrypted data identified in the literature namely searching on public-key encrypted data [
58], single-database private information retrieval (PIR) [
59] and finally searching on private-key encrypted data [
57] which is the approach employed in the proposed cloud architecture. For consistency purposes, the private key is denoted by secret key (S
k) throughout the paper.
In the secret-key-encrypted data model, the data is encrypted by the user and is organized in an arbitrary way prior to encrypting it. The data is stored on a server in encrypted form and decrypting it can only happen by the Sk. In this model, the initial work for the user is large when data is large, while subsequent work such as accessing the data is small. The user work is large because data pre-processing requires performing a number of processes to facilitate searchability on it while it is encrypted. Structuring data as part of the pre-processing allows for efficient access to relevant data. In this proposed system, Information is partitioned into portions denoted by documents as explained earlier. For every patient, there is a root secret key (SkR) that is used to encrypt 3 secret keys (Sk). Secret keys are used to encrypt patients’ documents (doc-1, doc-2, and doc-3). Each document is encrypted with its corresponding Sk. Indexes and trapdoors -explained further in this section- are generated to identify and decrypt documents respectively. An important property of the secret-key-encryption approach is that anyone who can decrypt information for a document can also decrypt any file in that document. This means, anyone who has access to a document can have access to all files within that document.
The main goal of employing the SSE approach is to store patients’ health information on the cloud in a searchable manner and only authorized parties can access it. Moreover, the cloud provider can never learn anything about the information stored, it receives encrypted information to store and releases it without decrypting it.
The decryption of each document under the secret root key requires the secret key for it which is released upon authenticated and authorized user requests. The cloud provider is not informed about the content of any document; therefore, the challenge remains in identifying encrypted document/s without decrypting them. The searching capability of the SSE approach is achieved using a secure index mechanism [
60]. The secure index is a structure of data that stores document collections while supporting efficient keyword search, for example, given a keyword (w), the index returns a pointer to the documents that contain it. The secure index works by searching for a string exact match in encrypted documents. Every document contains a collection of encrypted strings, and a string is chosen to be the searching keyword for the document that contains it. The selected keyword is computed using the secret key by which the entire document is encrypted. The resulting ciphertext is then used to search for an exact match in documents. For example, a keyword in a document is “Basic-Information”. This keyword is computed using the secret key of the encrypted document and the resulting ciphertext is e.g. “JK^78Uo8361KL
$#VWL”. The combination of keyword and its corresponding ciphertext is then used to identify the document which contains the keyword “Basic-Information”. However, a keyword may appear in different documents, therefore, a number of keywords and their corresponding ciphertexts are put together in an encrypted index and corresponding trapdoor to assure the accuracy of document identification. Alternatively, a document’s unique name can be used to achieve the same outcome accurately such as doc 1.
Table 2 demonstrates an example of an encrypted index generated for a document listed under a secret root key and its corresponding trapdoor.
To achieve the properties of the SSE approach, authors in [
57] proposed the below five algorithms which are the Key Generation algorithm (
KeyGen), Key derivation algorithm (
KeyDer), Index Generation algorithm (
IndexGen), Trapdoor Generation algorithm (
Trap), and a Search algorithm (
Search). Below is the description of these algorithms:
KeyGen Algorithm: A probabilistic algorithm that sets up the searchable encryption scheme. It is responsible for generating a secret root key for patient’s documents as a collection. It takes a security parameter k and generates a secret root key (SkR) for the patient SkR. This key is used for wrapping and unwrapping the secret keys of all documents that belong to the patient.
KeyDer Algorithm: Employed for generating a secret key (S
k) for each document listed under the secret root key (S
kR). It takes the document name and secret root key (SkR) as input and generates a secret key (S
k) for the document. This secret key will be used to encrypt and decrypt the information contained in its corresponding document.
IndexGen Algorithm: Responsible for generating an encrypted index (
I) for every document. It takes a number of keywords in a document such as the name of the document or its title and encrypts them using the document secret key (S
k). The output of the IndexGen algorithm is an encrypted searchable index I for every document to be used for searching it.
Trap Algorithm: Responsible for generating trapdoors for documents. It takes the secret key of a document and keywords’ ciphertexts as input and outputs a corresponding trapdoor (
T) which is used for decrypting the document.
Search Algorithm: Uses the decrypted index and the trapdoor for one document to find it. It takes the decrypted index and the trapdoor as inputs and identifies the encrypted document as an output.
Similarly, in the proposed system, the process of preparing patients’ information for storage involves five steps:
Generating a secret root key (SKR) for the patient.
Generating a secret key (SK) for every document of patient information and choosing a keyword of each document.
Keywords are encrypted using their corresponding secret keys and the resulting ciphertexts are listed to form an encrypted index.
Trapdoors are then created which involves combining the secret keys with the ciphertexts. Trapdoors will be used to identify and decrypt documents.
Documents are encrypted using their corresponding secret keys.
By following the above five steps, it becomes feasible to search for patients' documents while they are encrypted without having to perform decryption operations on them. Further explanation of how information is obtained from the cloud and decrypted is provided in the following section.
3.2. Architectural Design and Components
The proposed architecture comprises five architectural components that are required for storing healthcare information on the cloud and collaboratively use it in a privacy-preserving manner. These components are Requesting Agent, User Application, Cloud Service Registry, Secret Key Server, and Cloud Service Provider. Each component is responsible to accomplish certain tasks as a contribution to achieving the main objectives of the proposed architecture.
Figure 1 illustrates the architectural design and the relationship of its comprising components.
Requesting Agent
The Requesting Agent (RA) is a server that is responsible for receiving requests from users and forwarding them to both the Cloud Service Provider and the Secret Key Agent after authenticating users. It is the point of contact through which users send requests to store or access information stored on the cloud. Users are authenticated and their access rights are identified before requests are forwarded by the RA. In other words, it plays the role of the gate person who does not allow unauthorized users to access the system. The RA has a limited communication channel with the users, one-way communication channel with both the Cloud Service Provider (CSP) and the Secret Key Agent (SKA), and a two-way communication channel with the Cloud Service Registry (CSR) for users’ authorization. The RA receives requests from users and only responds with information that is limited to confirmation of authentication.
The RA stores the required information for identifying patients who are registered in the system. Information stored on the RA is important for facilitating secure access to patients’ information that is stored on the cloud. Every patient has a unique code referred to as system ID which is generated by the RA and used for searching purposes.
When a user requests to access patient information, the patient system ID is used to identify the patient’s information that is stored on the cloud. The main role of the RA in the proposed design includes receiving requests from users, authenticating users, forwarding user requests to both the CSP and the SKA. The information stored on the RA for every patient is organized into 3 sections, every section contains information that is important to facilitate access to patients’ information in a secure and privacy-preserving manner.
Table 3 illustrates the information is stored in the RA.
Section 1 includes information that is required to identify patients on the system. Users request to access patients’ information by using patients’ basic identification information such as name, date of birth, and NHI number.
Section 2 includes the patient’s system ID, S
kR, and indexes. The system ID is required to identify patients’ information that is stored on both; the cloud and the Secret Key Agent (SKA). The S
kR is required to decrypt the trapdoors that are stored on the SKA, and the indexes are needed to identify the documents stored on the CSP.
Section 3 includes information that is required by the Cloud Service Registry (CSR) for authorizing users to access patients’ information. It includes a list of users who have permanent consent to access the patient’s information, as well as the patient’s contact details for requesting and obtaining patient consent. There are two types of consents that patients grant to users for accessing their information: permanent consents which are granted by patients to their local GPs or pre-determined medical institutions/practitioners, and temporary consents which patients grant to medical practitioners/institutions for casual incidents or clinical visits. Patients optionally grant permanent consent to users to access their information. Temporary consent is granted to a user who does not have permanent consent and requires access to a patient’s information. There are two methods of requesting and obtaining temporary consents in the proposed system: mobile phone in a form of text message, or via email confirmation. More information about patient consent is provided further in the paper.
StandardUser Application
The proposed system architecture requires having a standard application that is installed and run locally on users’ machines. Accessing patients’ information stored on the cloud can only happen through a standard user application (UA). Having a unified platform to access patients’ information was identified in the case study findings as a desired characteristic of healthcare information systems, therefore, the proposed architecture design employs a standard UA through which users can access information that is stored on the cloud.
The UA plays a key role in the proposed system architecture; it facilitates means of standardization to the process of storing, accessing, categorizing, and structuring information. There are three main functions that UA is responsible for which are storing, accessing, and updating patient information on the cloud. These functions are performed using buttons that are available on the UA interface, these buttons are ENROL, REQUEST, UPDATE, and RESEARCH. Further explanation about these functions is presented further in the paper.
There is a number of characteristics that UA has which enable it to store, access, and update patients’ information on the system. The following are the main characteristics of the UA employed in the proposed system design:
Categorizing information is part of the UA’s functionalities. The application organizes patient information files into three documents (doc-1, doc-2, and doc-3) before it is stored on the cloud. The UA has a standard user interface for all users. Information is accessible when it appears in predetermined fields on the user interface. Information is presented in their associated fields only when it is decrypted. Information fields remain blank when their corresponding files are not decrypted. For example, a field on the application interface is predetermined for information related to patient mental health, this field remains blank when the logged-in user is not authorized to access the document in which mental health file exists.
The properties of the searchable symmetric encryption (SSE) approach employed in the proposed architectural design are achieved by operations performed by the UA. The pre-processing operations together with encryption/decryption operations are all performed by the UA. The UA is responsible to pre-process the information by organizing them and encrypting them following the SSE approach before it is sent for storage. It is also responsible for requesting to access information and decrypt it when it is received.
The UA has important characteristics that are related to accessing patients’ information for research purposes in a privacy-preserving manner. Entering kiosk mode, disabling certain functionalities such as copy-paste functionality, allowing and prohibiting communication channels. are all important characteristics of the UA. These characteristics aim to ensure the privacy of patients’ information when used for research purposes. Further details about the characteristics related to using patients’ information for research purposes are provided further in this chapter.
Cloud ServiceRegistry
The proposed cloud architecture in this research employs the concept of the user identity management protocol for the cloud computing paradigm (U-IDM) proposed in [
61]. U-IDM was initially proposed for cloud computing customers and cloud service providers. The main objectives of U-IDM were to achieve a set of global security objectives in cloud computing environments which include user authentication, authorization and accounting. It aimed to protect customers and cloud provider’s infrastructures by preventing unauthorized users to gain access to services or facilities delivered by cloud providers.
The main component of the U-IDM paradigm is the Cloud Service Registry (CSR). The CSR plays a vital role in the proposed architecture. CSR provisions access information according to users’ privileges in a form of service level agreements (SLAs). Services in the context of the proposed architecture include the provision of access to patients’ information that is stored on the cloud. There are three information categories that require access rights from the CSR which are All_V, Em_V, and OutP_V. As discussed earlier, each information category contains one or more documents. The CSR grants access to information categories by providing access to the documents that form these categories. Repeating the example of the Em_V category, it is a combination of doc-1 and doc-2 Therefore, granting access to the Em_V category requires the CSR to include the name of documents or their identifying tags with the user authentication confirmation. The CSR stores the names of categories and their comprising documents’ tags. A list of registered users is stored on the CSR. Each user has a record of information related to the information that they can access. Users are listed under the name of their organizations. Searching for a user requires knowing the organization he/she belongs to.
Table 4shows an example of users’ lists who are affiliated to an organization.
Nevertheless, an important task of the CSR in the proposed architecture is to obtain patients’ consent for accessing their information. The CSR does not authorize users to access patients’ information without having patients’ consent. As mentioned earlier, when a user requests to access patient information, the RA authenticates the user and forwards the request to the CSR for authorization. Part of the information included in the RA’s forwarded request includes a list of permanently authorized users to access the patient’s information. This list enables the CSR to find out whether the user is granted permanent consent to access the patient’s information or not. If the user is not included in the list, the CSR promptly sends a request for temporary consent to the patient, and the patient can promptly grant consent or reject.
SecretKey Agent
The Secret Key Agent (SKA) resides in a server that stores the required information for decrypting information stored on the cloud. As explained earlier, for every patient, there are 3 secret keys (Sk) listed under a secret root key (SkR) which are used to decrypt 3 documents. All secret keys are stored together with trapdoors for all documents related to one patient (under one SkR). The main functionality of the SKA is to receive requests from the RA and send the required trapdoors directly to the user. SKA has a one-way communication channel with the RA which is to receive requests, and a one-way communication channel with users to send secret keys, encrypted indexes, and trapdoors.
CloudService Provider
The cloud service provider (CSP) holds information related to patients’ health. The main goal of the proposed architecture is to store all patients’ information in one place which is the cloud. The CSP serves by storing and releasing encrypted information related to patients upon users’ requests. The CSP has a one-way communication channel with the RA, and a one-way communication channel with users. It receives requests from authenticated and authorized users through the RA and releases the required information in its encrypted form to users. Information stored on the cloud is contained in encrypted documents. The CSP cannot learn anything about the content of the documents stored. The cloud receives encrypted documents to store and release them to users without performing any decryption process on the documents. The CSP employs a string match algorithm that aims to identify documents. Every patient has 3 encrypted documents that are labelled by the patient’s system ID. Further explanation about the role of the string match algorithm is provided in the following section.
3.3. System Instantiation
The proposed architecture design aims to store healthcare data on the cloud and access it for legitimate purposes while protecting privacy. This section uses a scenario to show how the suggested architecture accomplishes this goal. The instantiation is provided in two parts: the first shows a patient enrolling in the system and storing their information on the cloud, while the second section shows how this information can be accessed for medical treatment.
Storing patient information on the cloud - Scenario
Let’s assume that Bob visits a system authorized doctor and requests to enroll in the system. The doctor enters Bob's information through the user application (UA). The doctor clicks on the ENROL button. The process of storing Bob's information on the cloud involves 3 stages: information preparation, authentication and authorization, and storage.
Stage 1: Information Preparation (Searchable Symmetric Encryption): Prior to forwarding the information to the RA, Bob’s information undergoes a number of pre-processing algorithmic operations performed by the UA as preparation for storage. The operations aim to encrypt Bob’s information for storing it on the cloud in a searchable manner.
A random secret root key (SkR) is generated for Bob’s information using KeyGen algorithm.
A number of keywords from each document are selected, and a secret key (Sk) for encrypting them is generated using KeyDer algorithm.
The IndexGen algorithm encrypts selected keywords for every document using their corresponding Sk. The goal in this step is to create an encrypted index for each document to identify it while encrypted.
After encrypted indexes are generated for all documents, the ciphertexts of keywords with their corresponding Skfor each document is grouped to be the documents’ trapdoors.
The last step in the information preparation process involves encrypting the patient’s documents and their corresponding trapdoors. Each document is encrypted using the Sk that is included in its corresponding trapdoor, and trapdoors are encrypted using the SkR which was generated in the first step.
Stage 2: Authentication and Authorization: When Bob’s information is pre-processed, it is forwarded to the Requesting Agent (RA) in a form of Request of Enroll (ROE).
Table 5 presents information contained in the request of enroll (ROE).
The ROE includes three sections that include different information as the following:
Section 1 includes information that is required to identify a) the doctor (organization id and user id), b) Bob and practitioners who have permanent consent to access Bob’s information, and c) method of obtaining Bob’s consent to access his information.
Section 2 includes information required to identify and decrypt Bob’s information, and section 3 includes Bob’s encrypted Bob’s information (3 encrypted documents).
When the RA receives the request, it authenticates the doctor and forwards his information (contained in the first section of the ROE) and Bob’s phone number to the cloud service registry (CSR) for authorization. The CSR then sends a text message to Bob requesting consent to store his information on the cloud, the content of the message includes:
Please reply YES to authorize (doctor name) from (organization name) to enroll you and store your health information on the system. Upon receiving a YES reply from Bob, the CSR sends a confirmation of authorization to the RA.
Stage 3: Information Storage
When the RA receives confirmation of authorization from the CSR, it does the following actions:
- 1.
Generates a unique code for the patient referred to as (System ID).
- 2.
Sends Bob’s encrypted information labelled by Bob’s system ID to the cloud service provider (CSP).
- 3.
Sends the encrypted trapdoors to the secret key agent (SKA) for storage. Information sent to the SKA is also labelled by Bob’s system ID.
- 4.
The information sent to both CSP and SKA is deleted from the RA.
- 5.
The RA stores the following information:
Bob’s identification information
Bob’s system ID,
Bob’s SkR,
Document indexes
Names of users who have permanent consent to access Bob’s information (if Bob has provided any)
Information required for obtaining Bob’s temporary consent
Below is the state-of-the-art of Bob’s information while stored in the cloud:
Bob’s information is stored in encrypted form and labelled by Bob’s system-generated ID. The cloud provider is not able to learn the content of the information.
The trapdoors are encrypted using Bob’s SkR and stored on the SKA labelled by Bob’s system ID. The SKA is unable to learn the content of the trapdoors without having Bob’s SkR that is stored on the RA.
The RA is the only entity in the system that can identify Bob in the system and his SkR. The RA stores all the information that is required to access Bob’s information as presented in
Figure 2.
Therefore, accessing Bob’s information can only happen through collaborative interactions among CSP, SKA, and the RA. Compromising 1 or 2 of these architectural components will be fruitless to any disparate party in terms of accessing Bob’s information.
Having discussed the process of storing Bob’s information on the cloud, the following subsection presents the process of accessing Bob’s information for genuine reasons such as providing healthcare to a patient. For this, the scenario presented in the following subsection involves the same patient (Bob) requiring healthcare assistance by a different medical practitioner who also has access to the system.
Bob visits a hospital for urgent medical treatment. He walks into the emergency department and meets one of the nurses in charge. The nurse requires accessing Bob’s information and updating his records to include information about Bob’s visit, medical condition, and other information related to his visit.
3.3.1. Protocol to access information stored in the cloud
The process of accessing Bob’s information comprises 4 stages as the following:
Stage 1: Generating user request
The nurse enters Bob’s basic information into the user application and clicks on the REQUEST button to generate a user request that is forwarded to the RA. The user request includes information about both Bob and the nurse.
Stage 2: Authentication and Authorization
When the RA receives the request from the user (nurse), it authenticates the user and forwards the request to the CSR for authorization. For this, the RA does the following actions:
- 1.
It searches for Bob’s information using his basic information and finds his System ID.
- 2.
It sends a request of authorization to the CSR. The request includes the following information:
Information that is required to identify the nurse (user ID);
List of users who have permanent consent to access Bob’s information;
Bob’s mobile number for requesting his consent if required in this particular instance.
When the CSR receives the request from the RA, it does the following actions:
It searches for the nurse information to identify her access rights to patient information. This happens by searching through the list of users that is stored locally on the CSR.
It checks if the nurse is permanently consented to access Bob’s information using the list of users who have permanent consent to access Bob’s information.
The CSR finds out that the nurse is allowed access doc-1 and doc-2 (Em_V) of patients’ information, but she is not permanently consented to access Bob’s information, therefore, Bob’s consent is required.
The SCR sends a request of consent to Bob in the form of a text message. The content of the message includes:
Please reply YES to temporarily authorize (nurse name) at (organization name) to access your health information.
Upon receiving a YES from Bob, the nurse becomes temporarily authorized to access Bob’s information. The CSR sends a confirmation of authorization to the RA. The confirmation of authorization includes the information category that the nurse can access (doc-1 and doc-2), and confirmation of obtaining Bob’s consent to access his information. The nurse is then added temporarily to the list of authorized users (stored on the RA) as a temporarily authorized user. However, any authorization granted by the CSR remains valid for 1 hour, after that it is automatically deleted from the list of authorized users.
Stage 3: Releasing Information
Upon receiving confirmation of authorization from the CSR, the RA forwards requests to both, the CSP and the SKA to send Bob’s information to the nurse. As illustrated in
Figure 3, the request to the CSP includes:
While the information included in the request to the SKA includes:
Figure 3.
Figure 3. Requesting information from CSP and SKA
Figure 3.
Figure 3. Requesting information from CSP and SKA
As presented in
Figure 4, when the RA requests are received by the CSP and the SKA, they do the following actions:
The CSP:
Searches for Bob’s information using Bob’s system ID
Searches for the doc-1 and doc-2 using their indexes.
Sends the identified documents (doc-1 and doc-2) to the nurse using her application physical address.
The SKA:
Searches for the encrypted trapdoors using Bob’s system ID
Decrypts the trapdoors using Bob’s SkR
Sends trapdoors for doc-1 and doc-2 to the nurse application using her application physical address.
Re-encrypts the trapdoors using the same SkR and drops the SkR (deletes it).
Figure 4.
Releasing information to the nurse application
Figure 4.
Releasing information to the nurse application
Sage 4: Decrypting Information
When the information from CSP and SKA is received by the nurse’s application, doc-1 and doc-2 are identified and decrypted using their corresponding trapdoors. When information is decrypted, files in each document appears in their predetermined fields on the nurse’s UA. Fields that belong to the files contained in doc-3 remain blank. The nurse application stores the trapdoors temporarily to be used for re-encrypting the information which is further explained in the following subsection.
3.3.2. Updating patient information
Assuming that the nurse has made an update on Bob’s information such as information related to current medication. The nurse clicks on the
UPDATE button on her UA interface. As illustrated in
Figure 5:
Stage 1: The nurse’s UA encrypts doc-1 and doc-2 using their secret keys obtained from the trapdoors. The encrypted information (doc-1 and doc-2) is forwarded to the RA.
Stage 2: The RA receives the request from the nurse and does the following:
It searches for Bob’s information to identify him.
It searches through the list of authorized users to access Bob’s information and finds the nurse listed as temporarily authorized users to access doc-1 and doc-2 of patients’ information.
It forwards the encrypted information, indexes for doc-1 and doc-2, and Bob’s system ID to the CSP.
Stage 3: When the CSP receives the information from the RA, it does the following actions:
It searches for Bob’s encrypted documents using indexes and system ID.
It identifies the documents using the indexes and replaces them by the new ones
It deletes the indexes received from the RA.
Figure 5.
Updating patient information
Figure 5.
Updating patient information
3.4. Architecture Implementation
Having discussed the components and protocol of the proposed architecture, the architecture is further implemented and adapted to data sharing use. The proposed architecture was built using Amazon Web Services (AWS) which provides cost-effective cloud computing solutions [
62]. AWS Software Development Kit (SDK) was used with Java language to implement and test the proposed architecture design and validate its concept. The implementation of the proposed architecture aimed to elaborate on how the proposed architecture enables for collaborative use of patients’ information in a privacy-preserving manner. The main objective of the implementation was twofold: firstly, to elaborate on how patients’ information can be collaboratively shared and used in the proposed architecture with assurance to its privacy protection, and secondly to illustrate on how patients’ information is protected from a number of privacy-related threats including confidentiality and unauthorized access.
The elaboration is presented in two parts: the first part presents a scenario that involves a patient who walks into a hospital for urgent medical treatment and is seen by a nurse. The goal of this part is to show how a user (nurse) can access a patient’s information according to certain access rights without questioning the privacy of the information. The elaboration also aims to validate the concept of information separation in real cloud-based application contexts.
The second part of the elaboration presents the results of tests that have been performed on the implemented architecture. The architecture was tested in terms of its ability to preserve the privacy of information while it is stored on the cloud. Four tests were performed which covered the following aspects:
The following section presents information about the implementation of the cloud architecture in terms of its architectural components and the privacy-preserving techniques. The implementation aims to mirror the proposed architecture design in terms of the employed components and the privacy-preserving techniques for the goal of validating the concept of the proposed architectural design.
3.4.1. Implementation setup
For the implementation of the proposed architecture, a virtual private cloud (VPC) was created. The VPC represents the entire proposed system architecture, and it is completely isolated from the internet. The VPC has two subnets: the first subnet does not allow access from the internet; it is only accessed locally. The second subnet enables internet access to allow for communication with the user application.
The public subnet has limited access and could be communicated with through the internet; however, only registered IP addresses can communicate with it. The EC2 represents the RA in the proposed design. Access to it happens only through a particular port. Moreover, the database in the implemented design only accepts SQL traffic. Patients’ documents and their associated trapdoors are stored in two different places that are not accessible through the internet as seen in
Figure 6. Access to them can only happen locally.
Access to patients’ documents can only happen by requests from the CSR, while the trapdoors can only be accessed through the SKA. Documents stored on the cloud are all encrypted.
Accessing Patientinformation – Scenario
For the goal of testing the architecture, dummy information about 3 patients was used. Each patient had three documents in the system. Documents were all encrypted and stored in the cloud database. Encrypted documents were stored on one database (CSP) and their trapdoors were stored on a different database (SKA). The illustration involved a patient (Bob) who walked into the hospital for urgent medical treatment. The nurse wishes to access Bob’s information to update information regarding Bob’s visit and current medication.
The nurse needs to login to the system for authentication purposes. The user is required to have username and password which are entered through the standard user application. Access to the system only happens through the user application. When the RA receives the user credentials (username and password), it searches for the user information in the list of registered users. The RA in the implemented architecture had a database that contains names of registered users, this database was used for authenticating users. When the user is found, authentication is confirmed.
Userauthorization
When the user is authenticated by the RA, another window pops up on the user application for entering Bob’s basic information. Bob’s information is used by the RA to identify him in the system. When information is entered by the nurse and forwarded to the RA, the RA searches for the patient in the list of the registered patients in the system. The RA in the implemented system had another database that contains information about all patients enrolled in the system. When the patient is found, the CSR is called for authorization. The RA sends Bob’s information to the CSR along with the users’ information.
The CSR searches for the user in the list and finds out that the user is a nurse and is allowed to access Doc-1 and Doc-2 of patients’ information.
Table 6 is the table used by CSR to authorize users. The CSR confirms to the RA that the user is allowed to access Doc-1 and Doc-2 of Bob’s information. The assumption made here was that Bob’s has received a text message from the CSR and has granted consent for the nurse to access his information.
Releasing Information
When the RA receives confirmation of authorization from the CSR to access Doc-1 and Doc-2 of Bob’s information, it does the following:
Decrypting Information
In response to the requests received from the RA, the CSP searches for Doc-1 and Doc-2 using their indexes and send them to the user. And the SKA does the same for the trapdoors and sends them to the user. The user then has two encrypted documents and two trapdoors. The user application associates trapdoors to their corresponding documents using the string exact match mechanism. And the secret keys in the trapdoors are then used to decrypt the documents.
3.4.2. Testing the architecture
One of the main requirements of storing healthcare information on the cloud is the protection from unauthorized users. The cloud architecture was tested in terms of its ability to prevent unauthorized cloud users from accessing the information. Four tests were performed against the implemented system, summary of the tests and results is presented in
Table 7.
Table 7.
Summary of architecture test results
Table 7.
Summary of architecture test results
Test |
Description |
Result |
Pass/Fail |
Unauthorized System Access |
Un authorized user made request to download a trapdoor that is stored on the cloud |
Access Denied |
Pass |
Getting access to documents stored on the cloud |
A document downloaded without having the secret key. |
Document was viewed in its encrypted form |
Pass |
Unauthorized operations |
Attempt made to access the server or the database by sending queries |
Access Denied |
Pass |
Unknown users |
Unregistered user attempted to log in to the system |
Login failed |
Pass |