In this developer code pattern, we demonstrate how we can use biometrics to enable a seamless check-in experience for travelers. Interested parties include airlines, airport authorities, and local and federal agencies. At the same time, we enable a means to track travelers by using biometrics, all while sharing data across different agencies at different levels: public, permissioned, and private. We will demonstrate a method to store passengers’ encrypted biometric data on a blockchain ledger and perform facial comparison as they check in.
Airlines and security agencies around the world are investigating ways to expedite the check-in process for flyers. Biometric technology appears to be gaining traction as a method for identity verification, and pilot programs are already being tested by the Transportation Security Administration (TSA), U.S. Customs and Border Protection (CBP), and other travel security agencies. Biometrics refers to metrics related to human characteristics — body measurements and calculations. Biometrics authentication is used as for identification and access control, and can identify from groups people that are under surveillance.
This pattern provides a potential implementation by utilizing facial recognition to confirm the passengers’ identity. We’ll leverage blockchain technology to store an immutable record of all check-in events related to each passenger. This allows travel and security agents to easily traverse the path of a given traveler as needed and be alerted in case of any exceptions. In addition to identity verification, we can also use blockchain smart contracts to ensure the passenger has a valid visa (if applicable) and confirm he isn’t listed on any no-fly lists.
Traveler checks in to airport kiosk, inputs ID number and takes photograph.
Angular posts photograph to python/dlib server, which runs a facial comparison to confirm that check-in photo matches user’s original ID photo. If face doesn’t match, user is directed to try again or request help.
Check-in photo is stored in Cloudant, using photo hash as identifier.
Check-in information is stored in blockchain ledger. Stored object includes user ID number (passport or DL), location, checkpoint stage (baggage, security, gate). Chaincode is also used to verify that the ID/visa has not expired and that the user is not on no-fly lists.
Monitoring view pulls list of latest events saved to ledger.
Travel/Security agencies are able to access the monitoring UI to view a log of events and travelers that have been registered on the ledger.
Ready to get started? Find the detailed steps for this pattern in the README. The steps will show you how to:
Clone the Git repository.
Package the smart contract.
Deploy the local blockchain ledger.
Start Node server.
Register passengers in the application.
Simulate the passenger check-in process.