The Universal Smart Card A Project Proposed By James Brown Supervised By Joe Finney Abstract This project will involve the design and implementation of a universal smart card framework used to replace the growing number of cards each of us carry around. The smart card will have three main features; to allow for easier transportation of secure data, allow authorization to a number of different devices and finally to allow the positive identification of the owner. Applications will also be created during this project to demonstrate the functions of the smart card, such as the security system for a car or computer as well as applications to allow data to be transported. A number of issues will be focused upon; the main will be security of any personal information stored on the card, but another will be making the card flexible so it can adapt with its changing environment. 1. Introduction The aim of the proposed project will be to design the framework for a universal smart card and applications for its use. The smart card will have three primary uses; to allow and simplify the secure transportation of data from one location to another, secondly to allow one card to be used to gain access to a number of different devices such as computers, vehicles and buildings and lastly to allow positive identification for a number of different uses such as library cards, donor cards and store loyalty cards. The remainder of this report is divided into five sections as follows; section two illustrates background research into the problem domain, section three looks at the proposed project in detail, listing aims, methodology and finally any testing which will be carried out, section 4 sets out the program of work summarising the necessary tasks and there allocated timing constraints and finally section 5 outlines what recourses will be required. 2. Background The below section looks at any other relevant projects or systems within the problem domain, which could be useful. There are many different smart cards available from many different manufactures each come in different memory sizes and formats, some are just memory cards where others have EPROM’s which give them processing powers. [1] Microsoft have created there own smart card standard which can be used to program cards, which quite a few manufactures are adopting in there smart card programmers. Smart Cards are know quite an old well thought through technology but only just know are they hitting the consumer in different ways mostly for Transaction clearing via credit cards, however there are many different other uses which people are only just thinking about. [2] HP have a couple of projects which involves PC and file security where when a file on as computer requires encrypting or decrypting the user inserts the smart card which contains there private encryption key. PC authorisation projects have also been developed where a James Brown {j.l.brown@lancaster.ac.uk} Page 1 user inserts their card into the machine to logon to their PC or to remove the screen saver or even to allow secure email. The idea of a universal smart card has been thought off before but in a more specific way, i.e. for one card to replace many other similar cards, say to have one card which represents all store loyalty cards or one card which can be used as identification card for a number of different applications 3 The Proposed Project This sections shows the framework of the project in more detail, in particular it outlines the aims of the project, the main methodology used in designing and implementing the system, and finally any testing methods which will be utilised in debugging and evaluating the produced system. As described earlier the main aim of the project is to design a framework for a universal smart card that can be used to securely transport data, act as a positive identification card and finally allow authorisation to certain devices. Once a viable framework has been designed and implemented the later stages of the project will be to build various applications to demonstrate uses of the card. 3.1 Aims There are a number of aims for this project dealing with the design and use of the smart card; these have been divided into two categories, 3.1.1 Overall Aims The card should allow for the secure transportation of data in an efficient manner. The card should allow the positive identification of the user and store information for third parties, such as loyalty points in a supermarket setting. The card should allow for authorisation data to be stored and possibly executed on the card to gain access to a number of devices. Possible Applications of the card should be created to demonstrate its use. 3.1.2 Technical Aims Information on the card should be updateable, so that it adapts to the changing world, however only authorised parties should have access to change the data for authorisation or identification purposes on the card. Where code is executed on the card it must be executed in a protected form such that access to other parts of the card with exceptions is restricted, thus it would not be possible for a fraudulent person to add a segment of code which outputs information contained in other sections of the card. All Data on the card must be protected in such a fashion that data cannot be directly accessible with out going though certain security mechanisms contained within the card. With most smart cards only having a small limited amount of memory, the storage of information should be optimal. James Brown {j.l.brown@lancaster.ac.uk} Page 2 3.2 Methodology The software on the smart card will have to be designed by scratch. The design of the smart card would be modular, splitting it up into 4 object or sub-systems which include a card management system to deal with the overall management of the card and then a sub-system for each of the following, the identification feature, the authorization feature and the data storage feature. Figure 1 shows a graphical model of the smart card. Card Management System Authorization System Smart Card Data Storage System Identification System Figure 1, The decomposition of the smart card The main software engineering approach to be adopted in developing the smart card will primarily be evolutionary development [3], where an initial version of the smart card and applications will be implemented and then it will be improved upon 3.3 Testing and Demonstrating To test and demonstrate the card, applications will have to be created for each feature. Possible applications would be an application to mimic a car to test the authorisation features, an application to allow a user to add a file to the card and then remove one to test the data storage feature and lastly an application to test the positive identification features such as a library application to bring up a photography of the cards owner and to update the number of books removed from the library on the card. 4. Program of Work Below the tasks are outlined that need to be completed and shows there timing constraints using figure 2. The proposed project will be carried out over a 20-week period, during the Michaelmas and Lent terms of the academic year 2001/2002. James Brown {j.l.brown@lancaster.ac.uk} Page 3 4.1 List of Tasks Below lists the tasks in chronological order of there completion times which are required to be accomplished. Task 1 – Programming Language Decide upon which programming language will be used to implement the smart card and if a new programming language is needed, try to become familiar with the language and programming smart cards with available hardware. Task 2 – Research Research into how smart cards are programmed and what smart cards are available, also analyse their capabilities and look at similar projects in the problem domain. Encryption methods and other areas may also require a little research. Task 3 – Design of Smart Card Design the smart card system and show how secure communications will be achieved between the outside world and the smart card. Task 4 – Implementation of Smart Card Implement the design of the smart card and using evolutionary development expand the system improving and documenting each version. Task 5 – Testing and Debugging Test the smart card framework and debug any bugs that arise through testing. Task 6 – Application Development Design implement and test small applications for the smart card framework that can be used to demonstrate the features of the smart card. Task 7 – Final Report Write the final report for the project. Figure 2 below shows the allocated time for each task. As can been seen summer will be used to research into smart cards and learn any programming languages if necessary. The design and implementation and testing of the smart card overlap since each are related and the next task sometime helps the previous. The final Report will be written as the project progresses mainly in note form and two weeks have been put a side at the end of the project to make sure this is completed. James Brown {j.l.brown@lancaster.ac.uk} Page 4 W20 W19 W18 W17 W16 W15 W14 W13 W12 W11 W10 W9 W8 W7 W6 W5 W4 W3 W2 W1 Sum Task Description 1 Programming Language 2 Research 3 4 5 6 7 Design of Smart Card Implementation of Smart Card Testing and Debugging Application Development Write Final Report Figure 2. Time Allocation for Each Task. 5 Resources Required This sections looks at any necessary resources needed giving a justification of why they will be required. 5.1 Software Required The following software resources will be essential, 5.2 An advanced IDE for the programming language used, to allow easier and faster programming and debugging of the system. Any Library files associated with the smart card to be used to read or write the data to the card. Hardware Required The following hardware resources will be required, 6 A Personal Computer with spare Serial Port used to implement the system and the spare serial port will be required to connect to the programmer. An Embedded Machine with Serial Port used for the applications to demonstrate the smart card. Smart Card Programmer used to program the smart card with the system. References [1] Microsoft Smart Card Standard http://www.microsoft.com/smartcard/ [2] HP Smart card Security http://www.hp.com/notebooks/us/eng/solutions/security/smart_sup.htm [3] Sommerville, I Software Engineering 6th Ed. (Addison-Wesley Publishing Company) James Brown {j.l.brown@lancaster.ac.uk} Page 5