With the advancement of technology in modern era everything needs to be digitalized to make it more secure and reliable. Nowadays birth certificate is the only proof of age and basis of all the important document identities like Birth Certificate, Aadhar card, Pan Card, Passport etc. So identifying the correct birth certificate of any person is a major challenge. As a part of my M.Tech project work we have developed an efficient and more secure way of storing birth certificate by using Inter Planetary File System (IPFS) and most demanded “BLOCKCHAIN” technology.
Further the rising of Docker technology and Containerization as a Service (CaaS), we deployed application inside a container using Docker Compose which is used to create Multi Container Docker application.
I wish to record my deep sense of gratitude and profound thanks to my research supervisor Dr. Priyanka Kumar, Assistant Professor(SG) ,Department of Computer Science and Engineering, Amrita Vishva Vidyapeetham, Coimbatore, for her keen interest, inspiring guidance, constant encouragement with my work during all stages, to bring this thesis into fruition.
I am extremely indebted to Dr. Priyanka Kumar, Assistant Professor(SG) , Department of Computer Science and Engineering, Amrita Vishva Vidyapeetham, Coimbatore, for their valuable suggestions and support during the course of my research work.
I also thank the faculty and non-teaching staff members of the Department of Computer Science and Engineering, Amrita Vishva Vidyapeetham, Coimbatore, for their valuable support throughout the course of my research work.
In recent years digitalization is on extreme demand where vital documents such as Passports, birth records, Medical records, even transactions are being digitalized.
Digitalization has not just improved security but time and effort to maintain all records. Despite of being secure several fraud incidents occur such as fake birth certificate rackets which was identified in Delhi, India on August 2018. We require an efficient technology to store birth records which cannot be tampered as well as easy to maintain, well secured and easily shareable. Recently a new technology is emerging coined as “BLOCKCHAIN TECHNOLOGY” which has proved it worth in many of the top notch applications like Virtual Currencies such as Bitcoin, Ethereum, Ripple etc. Blockchain will completely rule over today’s conventional technology in near future. May it be Banking, Medical records, Government records, identity records all will be shortly using blockchain technology. In this work we mainly focus on enhancing birth certificate by using recent developments in blockchain technology. Another way of securing data is using Biometric techniques which are the most preferred techniques to establish identity of an individual.
These techniques are used mainly for authentication purposes. These techniques are mainly used to replace passwords, pins, smartcards, keys and tokens which are the means of authentication previously. Disadvantages of using the pins or passwords might be that, they are difficult to remember and also that there is a good chance that they might be hacked, corrupt our physical domains. Smart cards, keys. Tokens may be stolen by someone or we might misplace or forget them in an undesired place which can actually lead to many security issues. Magnetic cards have a good chance of getting corrupted and make them unreadable. Biometrics are nothing but using our biological traits for authentication purposes which we know that they cannot be replaced by anyone as they are unique. But using biometrics to secure birth certificate is not conventional nor feasible as fingerprints changes slightly over the time. So in this work we will show how to use blockchain technology to secure birth records and how can one easily verify and authenticate a birth record.
The recent rise in Docker technology which provides Container as a Service (CaaS), gave us initiative to deploy our application using Docker. Docker is a tool that allows developers, sys-admins etc. to easily deploy their applications in a sandbox (called containers)
Key benefit of Docker is that it allows users to package an application with all of its dependencies into a standardized unit for software development. Unlike virtual machines, containers do not have the high overhead and hence enable more efficient usage of the underlying system and resources.
Blockchain technology was first introduced by Satoshi Nakamoto in 2008 where world saw its first virtual currency “BITCOIN”. Blockchain technology is immutable as well as distributed technology where all the data is been replicated to all the participating clients in a blockchain. So if we want to tamper a record, we need to tamper data on each client to whom data has been distributed which is nearly impossible because of the availability of computing power. Hence the blockchain is seen as one of the most secure technology ever the world has witnessed. Integrating blockchain to secure birth records will not just only save paperwork but it will be more secure and all the fake birth certificate rackets would shut down, no more duplicate birth certificate would be valid. Also we can easily share certificate on blockchain which can be used for verification purpose such as Passport verification, Aadhar card verification, Pan card verification etc.
Docker is software that uses OS level virtualization to deliver software in packages called containers. The Docker engine hosts the container. It was founded in 2013.
Containers are isolated from each other and bundle their own software, configuration files, libraries and can communicate with each other. All containers are lightweight compared to virtual machine. We need to specify a dockerfile to create a docker image which in turn creates a container.
Docker is capable for creating single container application. To create multi container docker application we use docker compose. Compose is a tool for defining and running multi container Docker application. With compose, you use a YAML file to configure your applications services.
To store birth records using Inter Planetary File System (IPFS) protocol and blockchain technology and provide a service using Container as a Service (CaaS).
To stop fraud birth records and convert each individual birth record into digital format using Inter Planetary File System (IPFS) and Blockchain technology which is more secure and easily accessible from anywhere across the network.
If we want to deploy this application in another machine we require few configurations and software such as Linux OS, Python 3.6, several python libraries, IPFS server. This is very cumbersome, so there should be a way to directly run application without these requirements to be fulfilled. Here Docker comes in picture, which creates container with all tools, software, configuration prebuilt which is easy to run anywhere in any OS without installing all the requirements.
In India digitalization of birth records is available in few states such as Andhra Pradesh, Karnataka, Chhattisgarh, Delhi, Bihar, Himachal Pradesh, Kerala, Madhya Pradesh, Rajasthan, Uttrakhand and Uttar Pradesh . Still the system is not fully functional and secure. There is no mechanism of sharing birth records with other authorities such as passport office, government office etc. Each time we need to manually provide birth certificate for verification. This gave an initial motivation for this work.
Further Enhancing Breeder Document Long term Security using Blockchain Technology  proposed a model how to use blockchain technology with biometrics to secure birth records, but it was only proposed model they have not implemented it.
Evaluating Suitability of Applying blockchain  helped to understand what are the parameters, use cases, advantage and disadvantage of blockchain over conventional method.
Tamper proof Data Distribution in Electoral process  gave a direction for security perspective which gave an idea to include Cryptography to make it more secure and reliable.
An improved P2P file system scheme based on IPFS and blockchain  guided Blockchain and IPFS can be merged together to form a secure platform for implementing this project. Further studied show how IPFS is different from which helped to understand the strength of IPFS over
In this chapter, the design and the implementation of the work is being discussed. There is a brief discussion about the algorithms that are used in the implementation phase.
User will register on application using Name, Phone Number
While registration, RSA key pair as well as bigchainDB key pair will be generated and this will be stored in JSON format. For future perspective it can be embedded in RFID chip for quick access.
This module will help user to access his account. While login data would be taken from JSON file which was stored in Computer during login.
This module will help user to register with blockchain, all the information such as RSA public key, BigchainDB public key, Name, Phone Number would be registered on blockchain, so it will be easier to find any user on blockchain.
Fig.5: User registration on blockchain3.4 Adding file to blockchain Whenever a birth certificate governing body wants to add certificate, it will find users phone number from blockchain. When the client’s phone number is used, it will generate one AES key which will encrypt the content of file and on top of this, AES key will be encrypted using clients RSA public key, so that only dedicated user with RSA private key can decrypt.
In meantime transaction will sent to IPFS and one hash function will be generated, which will be stored inside block of blockchain.
When user wants to retrieve the file, the RSA private key will decrypt the AES key, only the user whose RSA public key was used for encryption can decrypt it using its RSA private key. After obtaining AES key, key will be applied on the file to decrypt data. On successful decryption user will able to see actual content of file.
During this process, the IPFS hash function stored inside block will be mapped to IPFS server and according to it file will be downloaded in the system. On successful download of file from IPFS, system will automatically apply RSA private key from the JSON file to decrypt the AES key. Once we obtain AES key, we need to apply this AES key on the file which was used to encrypt data. And on successful decryption we will get the content of file.
If user wants to share file with other user such as passport authority for birth certificate verification he can simply add file with permit flag and phone number of the user whom we can easily find on blockchain.
In this module all the above steps will be repeated but instead of users RSA key, the third party whom we want to give access will be used to encrypt AES key.
Docker compose uses a YAML file to configure our services. In this YAML file we define two service IPFS and Server. The ipfs service uses a public ipfs image pulled from Docker Hub Registry.
The Server service uses an image that is built from the dockerfile present in current working directory. Dockerfile is used to build a Docker image that contains all the dependencies of the python application required and the python itself.
We can start our application by running docker-compose up. Compose pulls a ipfs image, builds an image of our code, and starts the service we mentioned in YAML file. By running docker-compose run server service, it creates two container, one containing python code and other containing IPFS server. By running this service we enter inside a container which consist our python code.
We can view the list of active containers using docker-compose ps.
This is the detail background of how services are created using docker-compose, it also shows how IP address are assigned inside Docker container, and how multi containers are created.
There are many methods for securing birth records by using biometrics, cryptography, cryptography plus biometrics etc. But we are using Blockchain technology along with Cryptography and Inter Planetary File System (IPFS) protocol to secure birth records, as well as access records from anywhere in the network, also share records anywhere with user permission and to validate or authenticate records within a few moments.
This is just a prototype, we can embed JSON file in RFID chip to easily access birth records, also we can create JAVA version to integrate with Android applications.
The application is deployed using docker-compose, in future we can scale application using Kubernetes. Also we can containerize BigchainDB, thus creating a 3 container application in which one container will be hosting python application, another container would be running IPFS server in background, and last container would be storing BigchainDB.
👋 Hi! I’m your smart assistant Amy!
Don’t know where to start? Type your requirements and I’ll connect you to an academic expert within 3 minutes.get help with your assignment