Software Engineer à Silverpush
25 Nov 2010

Contenu connexe



  2. Contents  Identify Java Card Technology.  Java Card Architecture.  Identify Elements of Java Card Applications.  Communicating with a Java Card Applet.  Java Card Language Limitations . 2
  3. Introduction What is a Java Card? Simple Answer:  Adoption of Java Platform for usage on Smart Cards. 3
  4. Contd…. Dialect of Java for programming smartcards. Subset of Java (due to hardware constraints)  No threads, doubles, strings, garbage collection, and very restricted API. With some extras (due to hardware peculiarities)  Communication via APDUs or RMI.  Persistent & transient data in EEPROM &RAM.  Transaction mechanism. 4
  5. Smart Card ? A smart card is a plastic card that contains an embedded integrated circuit (IC). Examples:  Our very Own UID-CardUID-Card!  Credit Cards  Cell Phone SIM Cards  … 5
  6. Smart Cards are good! How?  They store and process Information.  Smart Cards Can be used to add authentication and secure access to information systems that require a high level of security. 6
  7. Properties of Smart Cards  Highly secure-Tempering with one, results in destruction of the information it contains.  Don’t contain battery- Become active when connected with a card reader.  Come in two forms Contact or Contact less. 7
  8. Contact or Contact Less? Contact smart cards work by communicating via physical contact between a card reader and the smart card. Contact less smart cards communicate by means of a radio frequency signal, with a typical range of less than 2 feet. 8
  9. Java Card Architecture Java Card platformJava Card platform smartcard hardwaresmartcard hardwareappletapplet appletapplet appletapplet Java Card Virtual Machine Java Card API (mini OS) 9
  10. Elements of Java Card Application:  A complete Java Card application consists of :  A back-end application  A host (off-card) application  An interface device (card reader )  The on-card applet  User credentials  And supporting software 10
  11. Elements of Java Card Application: 11
  12. Back-End Application and Systems Provide connectivity to security systems Example:  In an electronic payment system, the back- end application could provide access to credit card and other payment information 12
  13. The Reader-SideThe Reader-Side  Consists of two parts:  Host Application  Card Acceptance Device  Think of a bank machine:  Host Application as the Computer that provides interaction with the system  Card Acceptance Device being where you put your debit card in. 13
  14. The Card-Side  Elements:  One or more Java Applets  Card’s operating System  Java Card Runtime Environment(JCRE) • Java Card Virtual Machine • Java Card Framework and APIs 14
  15. Communicating with a Java Card Applet  Two methods for communicating with Java Card Applet: 1. Fundamental message-passing model , communication via APDUs, as defined in ISO7816 2. Java Card Remote Method Invocation (JCRMI) which is a subset of J2SE RMI 15
  16. ISO 7816 • Standard describing the protocol for communication between smartcard and terminal . • Messages are called APDUs (Application Protocol Data Units), which are sequences of bytes in a certain format • Terminal sends command APDU to card, card sends a response APDU back . 16
  17. Message passing model  All Java Card applets extend the Applet base class and must implement the install() and process() methods.  JCRE calls install() when installing the applet, and process() every time there is an incoming APDU for the applet .  APDU: a logical data packet that's exchanged between the CAD and the Java Card Framework (It is considered as the center piece for the Message-Passing Model) . 17
  18. Command APDU 18 CLA Class byte INS Instruction byte P1,P2 Parameters Lc Length of data block Data Lc bytes of data Le Length of expected response
  19. Response APDU 19 Data : Le bytes of data (optional) SW1, SW2 : Status word (obligatory)
  20. 20 APDU coding conventions Some conventions for CLA, INS etc. given in ISO 7816-4 & Values for SW1, SW2(set by ISO).
  21. Processing APDUs  Every time there is an incoming APDU for a selected applet:  The JCRE invokes the applet's process() method  The incoming APDU is passed as an argument  The applet must: • parse the command APDU • process the data • generate a response APDU • and return control to the JCRE 21
  22. 22 22 appletappletappletapplet Java Card I/O with APDUs Java Card platformJava Card platform appletapplet appletapplet terminalterminal smartcard hardwaresmartcard hardware command APDU incl. applet ID OS selects applet and invokes its process method Applet sends response APDU applet executes
  23. Java Card API packages  Java.lang Object, Exception, ...  Javacard.framework ISO7816, APDU, Applet, JCSystem  KeyBuilder, RSAPrivateKey, CryptoException  Javacardx.crypto Cipher 23
  24. Java Card RMI (JCRMI)  The second communication model relies on a subset of the J2SE RMI distributed-object model  a server application creates and makes accessible remote objects  a client application obtains remote references to remote objects, and then invokes remote methods on them.  In JCRMI, the Java Card applet is the server, and the host application the client 24
  25. Summary of Java Card Language Limitations 25
  26. Smart Card Hardware ROM  Program code of VM, API, and pre-installed applets. EEPROM  Persistent storage of the data, incl. objects with their fields, and program code of downloaded applets . RAM  Transient storage of data, eg stack. 26
  27. THANK YOU… 27