Implementation of a Biometric-Based Blockchain System for Preserving Privacy, Security, and Access Control in Healthcare Records
Abstract
:1. Introduction
- They maintain and synchronize patients’ medical history, diagnoses, medications, treatment plans, immunization dates, allergies, radiology images, and laboratory and test results.
- They allow access to evidence-based tools that providers can use to decide about patients’ care.
- They automate and streamline provider workflow.
- 1.
- System security, including authentication, integrity, access control, and non-repudiation for multiparity-integrated EHR systems.
- 2.
- Interoperability between different EHR standards implemented by various healthcare providers, research entities, insurance providers, and pharmacies.
- 3.
- Data sharing of health records.
- 4.
- Mobility of healthcare systems with the introduction of IoT and smart devices that allow patients to share and access their health records.
- 5.
- Availability of the healthcare system.
- 1.
- Security, assurance, and immutability are provided by using cryptography, namely, private and public keys combined with hash-chaining between blocks of data.
- 2.
- The smart contract capability provides an abstraction layer to enable communication among miners in distributed healthcare providers running different EHR standards.
- 3.
- The decentralized architecture allows multiple entities to share health records.
- 4.
- Shared data across distributed ledgers enable near-real-time updates across the network for all parties.
- 5.
- The technology provides high availability and resilience through its decentralized model of operation.
- Identity management in the current implementations of blockchain-based EHR systems is based on private/public key pairs. Patients that use their private keys as their identities to control access to and to sign their EHRs are subject to permanent loss of access to their records with lost private keys, as discussed by McGhin [6]. This is because, in asymmetric cryptography, a private key is not recoverable from the public key (computationally infeasible).
- The lack of standardization for various deployments of blockchain in healthcare systems generates a challenge regarding the interoperability and exchange of EHRs, which limits the success of deployments [6].
- There is the potential for privacy leakage due to the unencrypted nature of blocks that hold information related to patients’ health. Even with encrypted blocks, the ability to access the blocks publicly in public ledgers makes them subject to cryptanalysis attacks, which can exploit patients’ privacy if the encryption algorithms are compromised [6].
- Scalability and IoT overhead can occur due to the increased number of medical IoT devices and medical sensors joining the blockchain network. The more IoT devices join the blockchain network, the greater the computational complexity of the ledger will be, which leads to the need for more computational power on these IoT devices. However, these IoT devices have very limited computational capabilities and are not designed to support the complex operations required by blockchain hashing algorithms [6].
2. Blockchain in Healthcare: Background and Related Work
- The challenges in integrating existing legacy centralized EHR systems.
- The required capabilities in any blockchain-based EHR systems in order to be accepted.
- Proposals for blockchain-based EHR systems, including MedRec, BBDS, OmniPHR, and MedShare.
2.1. Centralized-Based EHR
- Lack of transparency and privacy.
- Mismanagement of patients’ data and identities.
- Delayed treatment due to malicious software infections, which caused delayed service recovery.
2.2. Required Capabilities of Blockchain-Based EHR
- 1.
- The entire workflow of the system is HIPAA-compliant: For a healthcare solution to be accepted and adopted, it must fulfill the regulatory requirements of a country’s national health authority (NHA). Considering the HIPAA Act as an example of a health regulation act in the US, Dagher, Mohler, Milojkovic, and Marella [18] analyzed its requirements and concluded that of the five HIPAA titles, Title II is relevant to blockchain-based EHR. This title comprised the standards for the privacy of individually identifiable health information (privacy rule) and the security standards for the protection of protected electronic health information (security rule). Magyar [15] further analyzed the HIPAA requirements and concluded that blockchain technology can fulfill the HIPAA requirements of secured access, privacy, lack of centralized government, and cost reduction. Zhang, Walker, White, Schmidt, and Lenz [17] highlighted precautions that should be considered when implementing HIPAA-complaint blockchain-based solutions. Peng et al. stated, “A core tenet of HIPAA compliance is that Personally Identifiable Information (PII) must be protected against a confidentiality breach. In particular, the end-to-end workflow of a healthcare app from entering to processing then delivering the data must be HIPAA compliant”. This can be achieved in centralized systems by using encryption techniques; however, in blockchain, encryption may not be useful because any data stored in the blockchain are replicated across all of the miners and are accessible by any party. Therefore, any breach of the currently used encryption algorithms makes EHR information vulnerable, especially data in the Blockchain that are immutable and cannot be deleted. Accordingly, the authors of [17] recommended storing the encrypted metadata of EHRs in the blockchain (with a minimum level of information), which would ensure that EHR data are securely stored.
- 2.
- The framework supports Turing-complete operations: Zhang, Walker, White, Schmidt, and Lenz [17] stated that any blockchain-based EHR system should be Turing-complete and have programming capabilities that enable simple integration and interoperability with legacy systems. In addition, it should have the capability for simple upgrades and feature enhancements. Blockchain networks built specifically for healthcare applications are not scalable and cannot fulfill these requirements.
- 3.
- Support for user identification and authentication: In EHR systems, users are classified as patients or healthcare professionals. The authors of [17] stated that any blockchain-based EHR system should be able to “uniquely” identify and distinguish each user while maintaining their anonymity on the blockchain, securely authenticate users, and be capable of recovering a user’s authentication information if it is lost or stolen.
- 4.
- Support for structural interoperability at a minimum: The system should enable the exchange of medical data and interpretation of the received data in its current standards [17], i.e., the system should be able to communicate with known industry standards, such as FHIR and HL7.
- 5.
- Scalability across large populations of healthcare participants: This was described in [17] as follows: “A successful health app should leverage the Blockchain to enhance interoperability, while maintaining its quality when users or components of the app scale up and out”.
- 6.
- Cost-effectiveness: Any blockchain-based EHR system should be cost-effective compared to the existing legacy systems without affecting its capabilities [17]. This factor has a significant impact on the selection of the blockchain’s parameters, including its type, consensus algorithm, and incentive model.
- 7.
- Support for a patient-centered care model: According to [17], any blockchain-based EHR system should provide patients with the ability to control or monitor their information without compromising other functionalities. These features may include self-reporting health information, access to personal medical records and prescription histories from different providers, auditing existing access to patient health records, and the ability to share or revoke access to patients’ own medical data.
2.3. MedRec
- Enable inter-provider access to patients’ EHRs by using API interfaces. The API information of the providers is stored in the blockchain.
- Provide patients with the capability for managing access control for their EHRs. Access control lists for patients and providers are stored in the blockchain.
- Detect and notify patients about new access requests for their EHRs. Access can be granted or rejected only by patients.
- Notify patients about changes to their EHRs and log the changes in the blockchain.
- Provide a copy of the EHRs on patients’ nodes and dominant providers’ nodes.
- A mandatory component of MedRec is the presence of patients’ nodes, which are used to communicate with patients for access control management. This limits the scope of MedRec solutions to blockchain-enabled patients (i.e., patients should have an Ethereum account). This is a major limitation of the solution from the patients’ perspective (but not the providers’ perspective). Any proposed solution should be capable of supporting all patients without restrictions.
- The Ethereum blockchain uses POW as its consensus algorithm, which is known to have significant computing power requirements. While healthcare providers can contribute powerful mining nodes to use MedRec, this cannot be (practically) achieved for patients, whose nodes are on PCs or mobile devices, making MedRec practically infeasible.
- If a patient loses the private key to their Ethereum account (which is possible when using a mobile device or PC), MedRec does not provide a mechanism for a patient to recover control of their EHRs.
- The use of current centralized EHR systems raises an interoperability problem regarding inter-provider access. The solution must assume that all providers utilize the same EHR format standard, such as HL7 or FHIR [19], which is not the case with the current centralized systems.
- MedRec does not provide a mechanism for emergency access to EHRs if a patient is admitted to a non-authorized hospital for emergency treatment.
2.4. BBDS
- A proof-of-verification (POV) algorithm between the issuer and users/organizations to enroll them in the BBDS system. The POV algorithm is based on a proposed lightweight Diffie–Helman key exchange to generate a session key for encryption and an electronic registration form to be validated by the issuer.
- Controlled access to EHRs, stored in the cloud, by a verifier node for members of the BBDS system. This verification process is based on a per-member private key that is generated during the registration phase by the issuer and communicated to members and the verifier. After successful verification of a member’s identity, the verifier validates the request against member rights and, if access is granted, the verifier retrieves data from the cloud and passes them to the member or reads data from the member and posts them in the cloud.
- Audit logging in the blockchain ledger by using consensus nodes, where each member’s request to read or post an EHR is stored in a separate block. The information recorded in the block includes the user identity, purpose of the request, processing consensus node, verification result, and timestamps, including request creation, request retrieval from an unprocessed request pool, verification time, block broadcast time, and data sending time.
- The use of a permissioned blockchain eliminates decentralized authority, which is a core advantage of blockchain technology. The model provides central authority to the issuer (not the patient) for verifying and accepting members in the system.
- Because of the use of a non-Turing-complete blockchain (i.e., there are no smart contracts), the BBDS system records each event in a single block to be able to uniquely identify the events by the block reference. This limits the scalability of the system because of numerous blocks are recorded in a very short time.
- The proposed model provides the data to the requester before recording the request details in the blockchain, which introduces vulnerability in the system, as data are provided without a recorded request.
- The proposed BBDS system does not have a mechanism for detecting modifications/ tampering in EHRs in the cloud caused by system-independent reasons, such as malicious activity in the cloud.
2.5. MedShare
- Each healthcare entity has a private cloud that converts EHRs from an entity’s specific format into a standard EHR format and stores them locally in a private cloud. In other words, each entity has two copies of an EHR—in a standard format and a non-standard format.
- Standard-format EHRs are indexed by using hash maps, and the index values are stored in a public cloud that is connected with private clouds. The public cloud has a synchronizer component that is used to replicate per-patient EHRs across all private clouds (scheduled replication).
- Doctors locally authenticate with the healthcare entity and query the EHRs of patients. If a healthcare entity cannot find a patient ID locally (assuming that replication has not yet been done), it queries the public cloud to locate the patient’s EHR and, after successful validation, obtains the EHR.
- Neither private nor public clouds guarantee immutable access control rules, privacy isolation between patients, or immutable integrity verification, which are provided by blockchain technology.
- The replication of EHRs among healthcare entities is not scalable when a large number of healthcare entities are involved in the system. This requires connections to achieve full replication of EHRs.
- Medshare uses patients’ ID cards as a mechanism for uniquely identifying patients and obtaining their consent to grant healthcare providers access rights for their EHRs, which is known to be an insecure technique compared to biometric identity verification.
2.6. OmniPHR
- Providing patients with a unified view of their healthcare records from anywhere at any time.
- Providing up-to-date information to healthcare providers about patients regardless of whether the data are local to the provider or are from an external provider.
- Providing a single standard for healthcare records.
- EHR handling: Accepting input medical records from IoT devices or healthcare organizations, converting them into an open EHR format (the standard EHR format used by OmniPHR), dividing the EHRs into chunks of blocks, and distributing the blocks across blockchain miners by using load-balancing algorithms.
- Security: Encrypting blocks, signing blocks, validating blocks, and providing access to authentication and access control to the blocks.
- Similarly to BBDS, the use of a non-Turing-complete blockchain adds significant complexity for additional features or enhancements in the system compared to a Turing-complete blockchain, which can have added features through software coding.
- Storing large amounts of data in the blockchain (e.g., X-rays and MRI scans) is not practical due to the size requirements on the nodes, which entail significant overhead aside from the encryption and decryption processing overhead.
- The proposed model does not uniquely identify the author of data because all of the blocks are signed by the leaf nodes or super nodes.
- Access to EHRs should be authorized by patients, which does not address the limitation of unplanned treatment, such as emergency admission by unauthorized healthcare providers.
- OmniPHR does not overcome the limitation of duplicate data, such as duplicate patient registration information, which occurs when a patient registers with two healthcare providers with different identities. Ideally, OmniPHR should have a mechanism to “uniquely” identify each patient without duplication, such as biometric identity.
2.7. MedBlock
- A dedicated certificate authority server is used to generate keypairs for patients, community hospitals, and national hospitals.
- Patients submit their records through community hospitals or national hospitals signed with their private key and encrypted by their public key.
- Health records are not stored in community hospitals. Instead, they are stored directly in national hospitals’ databases.
- The department that accepted records from a patient signs them using its local private key to ensure integrity and non-repudiation.
- Each geo-group of national hospitals has the same group of endorsers that will build the blocks and submit them to the consensus nodes (called orderers). The hospitals submit the hash values of the medical records to the endorsers, and the records are stored in the local database.
- Once the orderers reach a consensus, they post the block to the ledger.
- Access control is implemented by MedBlock through private key signatures. The client application scans the blocks until a valid signature that corresponds to the patient’s data is found.
- The use of private/public keys for patients to sign and encrypt records creates an issue in the case of unplanned treatment, such as emergency admission. In such a case, medical records will not be accessible, which can cause complications with treatment and even fatality.
- If a private key is lost, patients cannot recover their medical records.
- The access control mechanism used is inefficient, especially when the ledger grows to a very large number of blocks. In this case, examining all of the blocks until the records are found is not scalable.
- The lack of programmability is a major drawback of MedBlock if new features are required, as this would require the addition of new nodes.
- MedBlock does not provide a mechanism for exchanging medical records between hospitals, as the records are stored in the local databases of national hospitals.
3. System Architecture
- Immutable smart contracts (SCs) for performing programmed logic functions.
- Immutable tables in the form of chained blocks to store different types of data that need to be protected against unauthorized tampering.
4. System Implementation
4.1. Functional Requirements
- Simplicity of the component setup and configuration for implementing the required functions in BBEHR;
- Interoperability capabilities of the component with other technologies;
- Feature richness and built-in security capabilities of the component that are in line with the BBEHR requirements;
- Stability, reliability, and operational consistency of the component.
- Django Web Development Platform: This was used to build the required web interfaces for the Doctor UI, Admin UI, and Reception UI. Django is a Python-based platform that has built-in directory services. This feature allows Django to integrate seamlessly with customized Python modules to provide additional functions, such as integration of the API with Ethereum.
- Python: The Python interpreter is at the core of the BBEHR prototype and provides the following functions: the Django web development coding language; interaction with Django’s built-in directory services; API integration with the blockchain and cloud store; SQL interface with the healthcare provider database; integrity validation and hashing of EHRs.
- SQLite: SQLite was used to implement the database service module locally to the healthcare provider, which was mainly for storing information, including departments’ IDs, appointments, and the provider’s blockchain details. SQLite has a native database connector with Django through Python.
- Ethereum blockchain: This is a public blockchain technology that is used to provide immutable smart contracts and immutable databases. Ethereum was chosen to extend the accessibility to EHRs at a large scale, including cases in which patients relocated to different geographic areas. In such cases, a new geo-healthcare provider can connect to Ethereum and request access to a patient’s EHRs.
- Microsoft (MS) Azure Files: This service is hosted on the public cloud to store EHRs. The selection of MS Azure Files was due to its simple accessibility and usability, in addition to its independence from the format of EHRs. MS Azure Files uses an SMB protocol to provide secure communication between an on-premise infrastructure and the cloud [24].
4.2. Django Architecture
4.3. Implementation Steps
- Building the runtime environment.
- Initializing the web and database components of BBEHR.
- Building the BBEHR Django code.
- Building Ethereum smart contracts.
- Integrating Django with Ethereum.
4.3.1. Building the Runtime Environment
4.3.2. Initializing the BBEHR Web and Database Components
- 1.
- Initializing SQLite3 DB to be ready for storing the provider’s Ethereum information and clinics’ information. This was done by running the following commands from the PyCharm BBEHR project terminal: python manage makemigrations; python manage migrate.
- 2.
- Creating a Django admin user to administrate the Django management console, including account creation in the Django built-in directory service. These accounts represented doctors, nurses, officers, and receptionists. Additionally, the admin user populated the SQLite3 database with information about the healthcare provider’s clinics and Ethereum information. The command for creating an admin user was: python manage createsuperuser
- 3.
- Creating BBEHR user accounts and groups by navigating to http://localhost:8000/admin, accessed on 31 October 2022, signing in using the admin account, adding groups for different permissions, adding new users, and assigning users to their respective groups.
- 4.
- Creating local database tables for the BBEHR healthcare providers. These tables were stored in the SQLite3 database with the following structures: (i) Appointments Table: Name Column (patient name), NID, Date Column, Time Column, and Department Column (clinic to be visited). (ii) Departments Table: Code Column (clinic code) and Name Column (clinic name). (iii) Provider Table: OHP Column (Ethereum public key) and Secret Column (Ethereum private key). The Python code for creating these tables was written in models.py. Below is a sample of the code (see Figure 3).
- 5.
- From the Django admin console, populating departments and provider database tables with providers’ clinics’ details and Ethereum details, respectively (the appointment database is populated by the receptionist, as described later).
4.3.3. Building the BBEHR Django Code
4.3.4. Summary of View Functions
- 1.
- home: To render the home page template for users.
- 2.
- about: To render the about page template for users.
- 3.
- adminui: (i) Verifies that the session user is a member of the BBEHR Admin group. (ii) Renders the base and adminui templates for admins to select ‘Enter Hospital Information’ or ‘Get Hospital Information’.
- 4.
- adminui_get: (i) Verifies that a session user is a member of the BBEHR Admin group. (ii) Reads the admin OHP input and obtains the hospital information stored in Ethereum providersTable for that OHP; this information is returned to the admin.
- 5.
- adminui_submit: (i) Verifies that the session user is a member of the BBEHR Admin group. (ii) Reads admin input (hospital name and web address) and stores the information in Ethereum providersTable using OHP as the indexing key; OHP is obtained from the address of the transaction sender.
- 6.
- receptionui: (i) Verifies that the session user is a member of the BBEHR Reception group. (ii) Renders the base and receptionui templates for reception to select ‘New Patient’, ‘Get Patient Appointments’, or ‘Book New Appointment’.
- 7.
- receptionui_get: (i) Verifies that the session user is a member of the BBEHR Reception group. (ii) Accepts a patient’s fingerprint and uses it as an index key to obtain all active appointments associated with that patient.
- 8.
- appointment_confirm: Performs two-factor validation by verifying a patient’s fingerprint and reception group membership; if both are valid, the clinic is granted access to the patient’s EHRs; this access is stored in the Ethereum patientsTable and covers all doctors in that clinic.
- 9.
- receptionui_book: (i) Verifies that the session user is a member of the BBEHR Reception group. (ii) Books new appointments for patients and stores them in the appointment database, which is indexed using the patient’s NID.
- 10.
- new_patient: (i) Verifies that the session user is a member of the BBEHR Reception group. (ii) Creates a new patient record in the Ethereum patientsTable.
- 11.
- doctorui: (i) Verifies that the session user is a member of the BBEHR Doctor group. (ii) Renders the base and doctorui templates for the doctor to select ‘Get Patient EHRs’ or ‘Submit Patient EHRs’.
- 12.
- doctorui_get: (i) Verifies that the session user is a member of the BBEHR Doctor group. (ii) Verifies that the doctor’s clinic is granted access to the patient’s EHRs using the patient’s fingerprint. (iii) Displays a list of EHRs and hashes to the doctor, which are indexed using patients’ fingerprints (from the Ethereum ehrHashTable); these records are formatted in a table before being passed to doctors. (iv) Once the doctor selects an EHR, this verifies that the cloud EHR’s hash is the same as the hash in ehrHashTable. (v) Retrieves the EHR from Cloudstore.
- 13.
- doctorui_submit: (i) Verifies that the session user is a member of the BBEHR Doctor group. (ii) Verifies that the doctor’s clinic is granted access to a patient’s EHRs using the patient’s fingerprint. (iii) Creates an EHR based on information submitted by a doctor; the EHR is stored in the Ethereum ehrHashTable. A Merkle root hash is calculated for the EHR and uploaded with the record.
4.3.5. Summary of Forms’ Functions
- 1.
- getProviderInfo: Presents one input field to the provider’s admin: the provider’s Ethereum address (OHP).
- 2.
- submitProviderInfo: Presents two input fields to the provider’s admin: provider name and provider web address.
- 3.
- bookAppointment: Presents the following fields to the receptionist: name, fingerprint, date, time, and dropdown for the clinics.
- 4.
- getAppointments: Presents a single field to the receptionist: the patient’s fingerprint.
- 5.
- newPatient: Presents the following fields to the receptionist: name, date of birth, and fingerprint.
- 6.
- submitRecords: Presents the following fields to the doctor: patient name, patient fingerprint, record name, record date, and record description.
- 7.
- getRecords: Presents one field to the doctor: fingerprint.
4.3.6. Summary of Tables’ Functions
- 1.
- appointmentTable: Formats the appointments retrieved from the local database in a table before posting them to the receptionist.
- 2.
- ehrTable: Formats the EHR list retrieved from the Ethereum ehrHashTable in a table before posting them for the doctor.
4.3.7. Building Ethereum Smart Contracts
- createProvider: This function takes two string inputs for the healthcare provider’s name and web address. These values are stored in the immutable database of the providersTable, which is indexed by the provider’s Ethereum address (OHP). In the case of an existing provider, the function returns an exception error.
- getProvider: This function takes an address input (OHP) and returns two string variables that represent the provider’s name and web address, and these are stored in the providersTable.
- addClinic: This function takes two string inputs representing the patient’s fingerprint hash and the clinic ID. The clinic ID is polled from the SQLite3 department database. Both strings are stored in an array indexed by the patient’s fingerprint hash that represents all of the clinics that can access the patient’s EHRs. This array is part of the patientsTable.
- grantClinicAccess: This function takes two string inputs, namely, the patient’s fingerprint hash and the clinic ID. It performs a lookup in the patientsTable by using the patient’s fingerprint hash array to determine whether the clinicID is listed. If the clinicID is listed in the array, it returns ‘True’, which allows the doctor to access the patient’s EHR. Otherwise, it returns ‘False’, which denies the doctor’s access.
- createPatient: This function accepts string inputs for the patient’s fingerprint hash, name, date of birth, provider’s Ethereum address, and reception ID. It stores this information in the patientsTable indexed by the fingerprint hash.
- getPatient: This function accepts a string input of the patient’s fingerprint hash and returns the patient’s stored values in the patientsTable (i.e., name, date of birth, provider’s address, and reception ID).
- createEHR: This function accepts the patient’s fingerprint hash, EHR name, date, status, and Merkle root hash. It stores the values in the ehrHashTable indexed by the fingerprint hash.
- getEHR: This function accepts a fingerprint hash input string and returns the patient’s EHR list. For each EHR, the returned values are the name, date, Merkle root hash, and EHR status.
4.3.8. Integrating Django with Ethereum
5. Testing and Performance Evaluation
5.1. Functional Testing
- The system should provide a mechanism for exchanging and synchronizing EHRs between distributed providers by using the blockchain and the cloud store.
- The system should provide patients with a secure mechanism for recovering access to their EHRs.
- The system should ensure unique mapping between patients’ identities and their respective EHRs.
5.2. Security Testing
- The system should provide an access control mechanism to ensure authorized access to EHRs.
- The system should log all read/write activities on EHRs.
- The system should provide anonymity of EHRs in the cloud store.
- The system should validate the integrity of EHRs for read requests.
5.3. Performance Evaluation
6. Conclusions and Future Work
Author Contributions
Funding
Data Availability Statement
Conflicts of Interest
References
- Office of the National Coordinator for Health Information Technology (ONC). Available online: https://www.healthit.gov/faq/what-electronic-health-record-ehr (accessed on 13 November 2020).
- Nakamoto, S. Bitcoin: A Peer-to-Peer Electronic Cash System; Technical Report; Decentralized Business Review; Manubot: 2019. Available online: https://manubot.org/ (accessed on 13 November 2020).
- Buterin, V. A next-generation smart contract and decentralized application platform. White Pap. 2014, 3. [Google Scholar]
- Rathee, G.; Kerrache, C.A.; Ferrag, M.A. A Blockchain-Based Intrusion Detection System Using Viterbi Algorithm and Indirect Trust for IIoT Systems. J. Sens. Actuator Netw. 2022, 11, 71. [Google Scholar] [CrossRef]
- Rathee, G.; Ahmad, F.; Sandhu, R.; Kerrache, C.A.; Azad, M.A. On the design and implementation of a secure blockchain-based hybrid framework for Industrial Internet-of-Things. Inf. Process. Manag. 2021, 58, 102526. [Google Scholar] [CrossRef]
- McGhin, T.; Choo, K.K.R.; Liu, C.Z.; He, D. Blockchain in healthcare applications: Research challenges and opportunities. J. Netw. Comput. Appl. 2019, 135, 62–75. [Google Scholar] [CrossRef]
- Barka, E.; Dahmane, S.; Kerrache, C.A.; Khayat, M.; Sallabi, F. STHM: A Secured and Trusted Healthcare Monitoring Architecture Using SDN and Blockchain. Electronics 2021, 10, 1787. [Google Scholar] [CrossRef]
- Al Baqari, M.; Barka, E. Biometric-Based Blockchain EHR System (BBEHR). In Proceedings of the 2020 International Wireless Communications and Mobile Computing (IWCMC), Limassol, Cyprus, 15–19 June 2020; pp. 2228–2234. [Google Scholar]
- Ahmad, F.; Ahmad, Z.; Kerrache, C.A.; Kurugollu, F.; Adnane, A.; Barka, E. Blockchain in Internet-of-Things: Architecture, Applications and Research Directions. In Proceedings of the 2019 International Conference on Computer and Information Sciences (ICCIS), Sakaka, Saudi Arabia, 3–4 April 2019; pp. 1–6. [Google Scholar] [CrossRef]
- Antwi, M.; Adnane, A.; Ahmad, F.; Hussain, R.; Habib ur Rehman, M.; Kerrache, C.A. The case of HyperLedger Fabric as a blockchain solution for healthcare applications. Blockchain Res. Appl. 2021, 2, 100012. [Google Scholar] [CrossRef]
- Shi, S.; He, D.; Li, L.; Kumar, N.; Khan, M.K.; Choo, K.K.R. Applications of blockchain in ensuring the security and privacy of electronic health record systems: A survey. Comput. Secur. 2020, 97, 101966. [Google Scholar] [CrossRef] [PubMed]
- Shahnaz, A.; Qamar, U.; Khalid, A. Using blockchain for electronic health records. IEEE Access 2019, 7, 147782–147795. [Google Scholar] [CrossRef]
- Tanwar, S.; Parekh, K.; Evans, R. Blockchain-based electronic healthcare record system for healthcare 4.0 applications. J. Inf. Secur. Appl. 2020, 50, 102407. [Google Scholar] [CrossRef]
- Fatima, N.; Agarwal, P.; Sohail, S.S. Security and Privacy Issues of Blockchain Technology in Health Care—A Review. In ICT Analysis and Applications; Springer: Singapore, 2022; pp. 193–201. [Google Scholar]
- Magyar, G. Blockchain: Solving the privacy and research availability tradeoff for EHR data: A new disruptive technology in health data management. In Proceedings of the 2017 IEEE 30th Neumann Colloquium (NC), Budapest, Hungary, 24–25 November 2017; pp. 000135–000140. [Google Scholar]
- Pilkington, M. Can blockchain improve healthcare management? Consumer medical electronics and the IoMT. Consum. Med. Electron. IoMT J. 2017. [Google Scholar] [CrossRef]
- Zhang, P.; Walker, M.A.; White, J.; Schmidt, D.C.; Lenz, G. Metrics for assessing blockchain-based healthcare decentralized apps. In Proceedings of the 2017 IEEE 19th International Conference on e-Health Networking, Applications and Services (Healthcom), Dalian, China, 12–15 October 2017; pp. 1–4. [Google Scholar]
- Dagher, G.G.; Mohler, J.; Milojkovic, M.; Marella, P.B. Ancile: Privacy-preserving framework for access control and interoperability of electronic health records using blockchain technology. Sustain. Cities Soc. 2018, 39, 283–297. [Google Scholar] [CrossRef]
- Azaria, A.; Ekblaw, A.; Vieira, T.; Lippman, A. Medrec: Using blockchain for medical data access and permission management. In Proceedings of the 2016 2nd International Conference on Open and Big Data (OBD), Vienna, Austria, 22–24 August 2016; pp. 25–30. [Google Scholar]
- Xia, Q.; Sifah, E.B.; Smahi, A.; Amofa, S.; Zhang, X. BBDS: Blockchain-based data sharing for electronic medical records in cloud environments. Information 2017, 8, 44. [Google Scholar] [CrossRef]
- Yang, Y.; Li, X.; Qamar, N.; Liu, P.; Ke, W.; Shen, B.; Liu, Z. Medshare: A novel hybrid cloud for medical resource sharing among autonomous healthcare providers. IEEE Access 2018, 6, 46949–46961. [Google Scholar] [CrossRef]
- Roehrs, A.; da Costa, C.A.; da Rosa Righi, R. OmniPHR: A distributed architecture model to integrate personal health records. J. Biomed. Inform. 2017, 71, 70–81. [Google Scholar] [CrossRef] [PubMed]
- Fan, K.; Wang, S.; Ren, Y.; Li, H.; Yang, Y. Medblock: Efficient and secure medical data sharing via blockchain. J. Med. Syst. 2018, 42, 136. [Google Scholar] [CrossRef] [PubMed]
- Microsoft Azure. What is Azure Files? Available online: https://azure.microsoft.com/en-in/products/storage/files/ (accessed on 31 January 2020).
Reference | Blockchain Trype | Main Feature | Targeted Security Service | Adversary Model |
---|---|---|---|---|
Tanwar et al. [13] | Hyperledger Fabric | Fast data accessibility | Access control | Not specified |
Shahnaz et al. [12] | Ethereum | Off-chain data storage | Access control | Not specified |
Azaria et al. [19] | Ethereum | Easy system integration with collaborative mining | Access control and availability | Not specified |
Xia et al. [20] | Any permissioned blockchain | Secure data sharing the blockchain | Access control and availability | Not specified |
Yang et al. [21] | Hybrid cloud infrastructure | Real-time testbed in three hospitals | Privacy and access control | Not specified |
Roehrs et al. [22] | Not specified | Efficient datablock distribution | Authentication, privacy, and digital signature management | Not specified |
Fan et al. [23] | Not specified | Scalable and secure interactions using double signing | Confidentiality and access control | Not specified |
Proposed solution | Ethereum | Independent from private/public key standard approach | Privacy, access control, and confidentiality | Unauthorized access, read/write, and anonymity attacks |
Library Name | Purpose |
---|---|
django | Web development framework; this installation includes SQLite 3 |
django-Tables2 | For formatting and styling tables in Django |
crispy | For formatting and styling HTML templates in Django |
web3 | For API communication with Ethereum |
azure-storage-file | For API communication with MS Azure |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2022 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Barka, E.; Al Baqari, M.; Kerrache, C.A.; Herrera-Tapia, J. Implementation of a Biometric-Based Blockchain System for Preserving Privacy, Security, and Access Control in Healthcare Records. J. Sens. Actuator Netw. 2022, 11, 85. https://doi.org/10.3390/jsan11040085
Barka E, Al Baqari M, Kerrache CA, Herrera-Tapia J. Implementation of a Biometric-Based Blockchain System for Preserving Privacy, Security, and Access Control in Healthcare Records. Journal of Sensor and Actuator Networks. 2022; 11(4):85. https://doi.org/10.3390/jsan11040085
Chicago/Turabian StyleBarka, Ezedin, Mohammed Al Baqari, Chaker Abdelaziz Kerrache, and Jorge Herrera-Tapia. 2022. "Implementation of a Biometric-Based Blockchain System for Preserving Privacy, Security, and Access Control in Healthcare Records" Journal of Sensor and Actuator Networks 11, no. 4: 85. https://doi.org/10.3390/jsan11040085
APA StyleBarka, E., Al Baqari, M., Kerrache, C. A., & Herrera-Tapia, J. (2022). Implementation of a Biometric-Based Blockchain System for Preserving Privacy, Security, and Access Control in Healthcare Records. Journal of Sensor and Actuator Networks, 11(4), 85. https://doi.org/10.3390/jsan11040085