CS 4500
Spring
Semester 2005
Self Sponsored
Project: eWallet
Title: eWallet,
an Electronic Wallet on a Smart Card
This project implements an electronic wallet. A smart card is used to electronically implement various functions of a normal wallet. It can contain driver's license information, credit card account information (so that credit card purchases may be made with it), an electronic cash purse that functions similar to the University of Utah ID card, medical insurance information, and more. In order to view information on the eWallet or use the eWallet to make a purchase, the cardholder will first need to authenticate via a biometric or PIN.
Along with consolidating all your cash, credit cards, drivers license, medical insurance cards, etc onto one card - all of the functionality is now protected with a fingerprint or PIN number. If the eWallet is lost or stolen, the theif will not be able to gain access to any of the stored information. This is a huge advantage to carrying a conventional wallet where cash, credit card numbers, and personal information (ssn, address) are easily aquired when the wallet is lost or stolen.
How the Smart Card works:
A smart card is a credit card sized piece of pvc plastic with a microprocessor chip embedded in it. There are also cards with RF antenna embedded to provide a contactless interface as well. The cards spec'd for this project can hold up to 32K of data. Communication via the card and a smart card reader occurs via secure messaging and the cards are designed to handle regular wear and tear as well as attempted compromises of their data. The chips are running a java-based os and applications are stored on the card in the form of easy to manage java applets. An Java API freely available from Sun is used to communicate with the card.
This project involves the following aspects:
- Designing and implementing multiple java applets to manage data for each of the wallet
functions
- Creating API's to talk to the specific applets and manage their data
- Developing Front-end applications to use the card - ie: applications for law enforcement to read a drivers license, for a retailer to accept eWallet purchases, enrollment in eWallet (adding a biometric fingerprint, photo, etc)
- Developing a back-end management system to handle lost/stolen cards
- Peforming biometric authentication between a scanned fingerprint and the fingerprint image stored on the card.
- Integrating various hardware pieces into the system (card readers, digital camera for capturing photos, fingerprint scanners to capture/read fingerprints, etc)
- A web interface for users to add money to their eWallets from their bank account or make secure purchases over the internet with their eWallet
Expected equipment and software environment
- Smart cards - 32K JCOP10 or JCOP30 cards
- Smart card readers - USB Contact Reader from Gemplus
- Digital camera - Canon
- Fingerprint scanner
- IBM BlueZ Card Applet IDE
Technologies to apply:
- JavaCard Techology
- Web Programming - JSP's, Servlets, Beans
- Java - including Java Swing
- C++ for necessary hardware components
- SQL - Backup database of card accounts
Previous Design Work
While none of the actual implementation of eWallet has occured (no source code at all) some initial design work was done last semester in the Complex Systems Design class. This design work included deciding what kind of functionality the card should have and the necessary systems to interface with the card's functions. NO SOURCE CODE EXISTS OF ANY KIND