throbber
US007232073B1
`
`a2) United States Patent
`US 7,232,073 Bl
`(10) Patent No.:
`
`(45) Date of Patent: Jun. 19, 2007
`de Jong
`
`(54) SMART CARD WITH MULTIPLE
`APPLICATIONS
`
`(75)
`
`(73)
`
`Inventor: Eduard de Jong, Dyfed (GB)
`
`Assignee: Sun Microsystems, Inc., Santa Clara,
`CA (US)
`
`(*)
`
`Notice:
`
`Subject to any disclaimer, the term ofthis
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 380 days.
`
`(21)
`
`Appl. No.:
`
`11/019,833
`
`(22)
`
`Filed:
`
`Dec. 21, 2004
`
`2003/0078866 Al
`2003/0212896 Al
`
`............. 705/35
`4/2003 Richards et al.
`11/2003 Kisliakov ......... 713/193
`
`2004/0024735 Al
`2004/0255081 Al
`2005/0038741 Al
`2005/0091544 Al
`2005/0097550 Al
`2005/0138354 Al
`2005/0149926 Al
`2005/0178833 Al*
`
`2005/0184163 Al
`2005/0184164 Al
`2005/0188360 Al
`
`2/2004 Yap et al. 0... ee 07/1
`12/2004 Arnouse..........
`. TLV/1IS
`2/2005 Bonalle et al.
`.....
`w+ 705/40
`4/2005 Lambert
`.............
`. 713/202
`5/2005 Schwabeetal. ............ TINT
`6/2005 Saltz oo... eee sees 713/153
`T2005 SaltZ .....eece cess eseeeees T18/1
`8/2005 Kisliakov «0.0.0... 235/441
`
`
`
`8/2005 de Jong ....... eee 235/492
`8/2005 de Jong ....... eee 235/492
`8/2005 de Jong ....... eee 717/136
`
`Int. Cl.
`G06K 19/00
`(2006.01)
`Sun Microsystems, Inc., “Java Card™ 2.2 Runtime Environment
`|OA©) 235/487; 235/494; 235/382;
`(52)
`(JCRE) Specification”, Palo Alto, CA, pp. 1-110,
`[Online] Jun.
`711/115; 717/163
`2002. (XP002325473).
`Field of Classification Search................ 235/382,
`Sun Microsystems, Inc., “Java Card™ 2.2 Application Program-
`235/487, 494; 711/115; 717/163
`ming Interface”, Palo Alto, CA, pp. 1-90,
`[Online] Sep. 2002.
`See application file for complete search history.
`(XP002325474).
`References Cited
`
`OTHER PUBLICATIONS
`
`(Continued)
`
`Primary Examiner—Karl D. Frech
`(74) Attorney, Agent, or Firm—Gunnison, McKay &
`Hodgson, L.L.P.; Forrest Gunnison
`
`(57)
`
`ABSTRACT
`
`One embodiment of the invention provides a smart card
`having multiple applications installed thereon. One of the
`multiple applications is designated as a default application
`which is activated whenever the card is reset. The default
`
`application is required to implementa first operation to
`provide a canonically ordered listing of the multiple appli-
`cations on the card. The default application may further
`implement a second operation to allow one of the multiple
`applications to be selected for activation via an index into
`the listing.
`
`(51)
`
`(58)
`
`(56)
`
`U.S. PATENT DOCUMENTS
`
`
`
`... 235/380
`Taylor .....
`w 395/241
`Pitroda ....
`Claus et al. wee 704/33
`Tushie et al. we 726/26
`Chan et al. wee 380/25
`Bradley et al.
`....
`... 235/492
`
`Brake, Jr. et al. ........... 705/41
`Hohle et al. we 705/1
`Hohle ...........
`... 235/492
`
`Wilkinson et al.
`............. T17/5
`
`Carperet al.
`......
`... 235/492
`Delo et al. wee TWA
`....
`.. 717/126
`Yellin et al.
`
`Wentker et al.
`.
`... 235/492
`
`Blossom ........::eeeeeeeeeee 235/492
`Kisliakov oo... eee 235/492
`Ashizawa et al.
`.
`... 235/492
`
`......0... 713/172
`Lagosanto et al.
`Ashizawa et al.
`.......... 235/492
`
`6/1996
`12/1996
`1/1999
`3/1999
`12/1999
`2/2000
`2/2000
`8/2000
`3/2001
`10/2001
`5/2002
`7/2002
`11/2002
`11/2002
`10/2003
`7/2005
`12/2005
`6/2002
`9/2002
`
`ok
`
`AAAAAAAAB
`
`l
`Bl
`Bl
`Bl
`Bl
`B2
`B2
`B2
`B2
`Al
`Al
`
`5,530,232
`5,590,038
`5,857,079
`5,889,941
`6,005,942
`6,024,286
`6,032,136
`6,101,477
`6,199,762
`6,308,317
`6,390,374
`6,418,554
`6,477,702
`6,481,632
`6,631,849
`6,915,957
`6,976,635
`2002/0083322
`2002/0134843
`
`69 Claims, 15 Drawing Sheets
`
`i
`
`
`
`
`Default Applet requests list
`from Card Executive Layer
`702
`
`Card Executive Layer
`accesses Application Listing
`704
`
`Card Executive Layer
`creates canonically ordered
`tist 706
`
`Card Executive Layer
`returns canonically ordered
`list to Default Applet 708
`
`{q
`
`i
`iit
`|
`
`:
`|
`'
`
`1
`
`SAMSUNG 1018
`
`SAMSUNG 1018
`
`1
`
`

`

`US 7,232,073 B1
`Page 2
`
`OTHER PUBLICATIONS
`
`Sun Microsystems, Inc., “User’s Guide, Wireless Toolkit, Version
`2.1, Java™ 2 Platform, Micro Edition”, Sana Clara, CA, pp. 7-17,
`73-75, [Online] Dec. 2003. (XP002325476).
`
`“OSS Through
`OSS-J Architecture Board,
`Through
`Java™,
`Design Guidelines”, OSS
`[Online] Oct. 31, 2001. CXP002325475).
`
`Java™ J2EE
`pp.
`1-116,
`
`* cited by examiner
`
`2
`
`

`

`U.S. Patent
`
`Jun. 19, 2007
`
`Sheet 1 of 15
`
`US 7,232,073 B1
`
`Create Java Card
`
`210
`
`
`
` Preload
`Applications
`
`
`
`215
`220
`
`
`issue Card
`
`(Personalisation)
`
`
`
`Add/Remove
`
`Use Card
`
`Applications
`
`
`230
`235
`
` Terminate Card
`
`
`240
` Figure 1
`
`3
`
`

`

`U.S. Patent
`
`Jun. 19, 2007
`
`Sheet 2 of 15
`
`US 7,232,073 B1
`
`aiy/uonesiddy
`
`
`
`Le}s0zeuadg
`
`
`
`NVAWNV192uUs9}U|
`
`OcL
`
`O€L
`
`
`
`a01IOyoegLL}40}e190d0
`
`JEUILWUIO|
`
`jeusua|
`
`ObL
`
`zaunbiy
`
`801Nddav
`
`LOL42pjoHpueg
`
`
`
`puegyeulg
`
`ZOL
`
`4
`
`
`
`
`
`

`

`U.S. Patent
`
`Jun. 19, 2007
`
`Sheet 3 of 15
`
`US 7,232,073 B1
`
`TERMINAL 140
`
`CARD 102
`
`
`
`
`Detect Card Insert
`162
`
`Activate Card
`‘4
`
`
`
`
`
`
`
`
`
`
`
`
`
`Card is Activated
`172
`
`
`
`Determine
`
`Application to
`launch 165
`
`
`
`
`
`Request
`Application by AID
`
`166
`
`
`
`
`Receive Request
`174
`
`
`
` Identify
`
`Yes
`
`
`Launch matching
`
`.°
`
`Matching
`Application 177
`
`
`
`Return indication
`
`Receive indication
`
`
`
`of success/failure
`180
`
`179
`
`
`
`Figure 2A
`
`5
`
`

`

`U.S. Patent
`
`Jun. 19, 2007
`
`Sheet 4 of 15
`
`US 7,232,073 B1
`
`TERMINAL110
`
`CARD 102
`
`Detect Card Insert
`162
`
`
`
`
`
`
` Activate Card
`
`
`Card is Activated
`164
`172
`
`
`
`
`
`Determine
`
`Application to
`launch 165
`
`
`
`
`
`Request
`
`
`
`Receive Request
`
`
`Application by
`
`
`partial AID 166
`
`
`
`Identify
`
`firstinext Matching
`
`
`176A ?
`
`
`
`
`
`
`Launch matching
`Application 177
`
`=z9°
`
`
`
`
`
`Return indication
`
`
`Receive indication
`of success+tAID or
`
`
`180
`
`failure 179A
`
`
`
`
` Desired
`
`
`
`Application
`183 ?
`
`
`
`Application
`Launched
`182?
`
`Figure 2B
`
`Yes

`
`Nlo

`
`Proceed with
`Session 185
`
`Terminate Session
`184
`
`6
`
`

`

`U.S. Patent
`
`Jun. 19, 2007
`
`Sheet 5 of 15
`
`US 7
`
`2
`
`232,073 B1
`
`ALOPCiv
`
`bzyalddy
`
`
`
`10}9a/9Sja\ddy
`
`CLP
`
`OfEIdVPAeDBAe
`
`alseayiddyGyajddy ¢ainbi4
`feoLLL:Wo9eWW[lemedty:
`pueWOU‘WV-Aioway
`aboraiv;|——s;-'||ovovaiv :|atoratvVLOdiv
`OZEJUSWUOAUZaUj-uNYpaegBAL
`
`ELEOla1ydes6o}dAig
`
`
`JoseTemaswoge©Hema
`oywiddy|2||aiiddyVvieiddy
`o1seaaisevise
`
`
`
`
`COLPADever
`
`vLéWOYd33
`
`zLesuojoun
`
`
`
`8be4aAe7]BAIWNDaXKypueg
`
`uojesi|ddy
`
`ceSUBST]
`
`7
`
`
`
`

`

`U.S. Patent
`
`Jun. 19, 2007
`
`Sheet 6 of 15
`
`US 7,232,073 B1
`
`
`
`VLS¢JIddy
`
`VLOPdiv
`
`asejaiddy
`
`agboraiv
`
`divAxolg
`
`49}01d19}u]
`
`VbLL8
`
`divAxolg
`
`49}01d49}U]
`
`aLLs
`
`G0LpAxoig
`
`
`
`Zbb10}99j9gJaIddy
`
`PLYBeqpseD
`
`ezpBuysiqddy
`
`ZOPPABDeAer
`
`yanbi4
`
`
`
`'GOEL291LYOyg
`
`
`
`
`
`VOELS9INO4OeG
`
`VOLPAxold
`
`8
`
`
`

`

`U.S. Patent
`
`Jun. 19, 2007
`
`Sheet 7 of 15
`
`US 7,232,073 B1
`
`Other 502C
`
`Firewall ID 502A
`
`Applet ID 502B
`
`Figure 5
`
`323
`
`AID 401A
`
`AID 401B
`
`AID 401E
`
`AiD 401C
`
`AID 401D
`
`Figure 6
`
`9
`
`

`

`U.S. Patent
`
`Jun. 19, 2007
`
`Sheet 8 of 15
`
`US 7,232,073 B1
`
`323A
`
`f
`
`AID 401A
`
`AID 401B
`
`AID 401C
`
`AID 401D
`
`AID 401E
`
`424
`
`JIN
`
`CD 602
`
`CM603
`
`Figure 6A
`
`10
`
`10
`
`

`

`U.S. Patent
`
`Jun. 19, 2007
`
`Sheet 9 of 15
`
`US 7,232,073 B1
`
`
`
`
`
`
`
`
`
`
`
`AID 401C
`(DF 601)
`
`AID 401A
`(CD 602)
`
`AID 401E
`(CM 603)
`
`AID 401B
`
`AID 401D
`
`Figure 6B
`
`TERMINAL 110
`
`CARD 102
`
`
`Detect Card Insert
`
`
`162
`
`
`772
`
`
`
`Card is Activated
`
`Activate Card
`164
`
`
`Request
`Application List
`
`766
`
`
`
`
`
`
`
`
`Receive Request
`774
`
`Obtain AID list 776
`
`Receive AID list
`
`780
`
`
`Return AID list 779
`
`Figure 7
`
`11
`
`11
`
`

`

`U.S. Patent
`
`Jun. 19, 2007
`
`Sheet 10 of 15
`
`US 7,232,073 B1
`
`
`
`Default Applet requests list
`from Card Executive Layer
`702
`
`
`
`
`
`
`Card Executive Layer
`accesses Application Listing
`704
`
`
`
`Card Executive Layer
`creates canonically ordered
`
`
`
`
`list 706
`
`
`
`Card Executive Layer
`returns canonically ordered
`
`list to Default Applet 708
`
`
`
`
`
`Identify Default
`
`Applet 712
`
`Figure 7B
`
`12
`
`12
`
`

`

`U.S. Patent
`
`Jun. 19, 2007
`
`Sheet 11 of 15
`
`US 7,232,073 B1
`
`AeedieeeEE ERREEEeyETEitd peEERTLLR
`
`Power Up 710
`
`
`
`neseerSLRAddeeeeeecaneeeeennnerenenenersemendsmemnieeynneneswererenenee
`
`
`
`
`
`Launch Default Applet 714
`
`772 d
`
`Figure 7C
`
`13
`
`
`
`Card Executive Layer
`accessesApplication Listing
`704C
`
`
`
`Card Executive Layer
`creates canonically ordered
`list 706C
`
`
`Identify Default Applet 712
`
`
`
`
`
`
`
`
`
`2 |
`
`:
`
`13
`
`

`

`U.S. Patent
`
`Jun. 19, 2007
`
`Sheet 12 of 15
`
`US 7,232,073 B1
`
`TERMINAL 110
`
`CARD 102
`
`Detect Card Insert
`162
`
`ActivateCard
`
`Card is Activated 772
`
`Receive AIDlist 780
`
`Select desired
`application 782
`
`Request application by
`Index 784
`
`Obtain AID list from
`card executive layer
`776D
`
`Supply AID list to
`Terminal
`779D
`
`Receive AID selection
`by Index 790
`
`
`
` Launch SelectedAID.
`
`792
`
`Figure 7D
`
`14
`
`14
`
`

`

`U.S. Patent
`
`Sheet 13 of 15
`
`US 7,232,073 B1
`
`eae aeiaea ei i eee ee ee 4
`
`ccceroooee+eeeeeeeeee Jun. 19, 2007
`pottt
`
`Access RID for each AID in
`received AID listing 820
`
`Derive a Network Resource
`Identifier from each RID 830
`
`Send Requestto Identified
`Network Resources 840
`
`Receive Material over
`network 850
`
`Use Material to Select AID
`from listing 860
`
`Figure 8
`
`15
`
`15
`
`

`

`U.S. Patent
`
`Jun. 19, 2007
`
`Sheet 14 of 15
`
`US 7,232,073 B1
`
`Install application
`900
`
`
`
`
`
`
`Receive requestto
`make default
`
`application 910
`
`
`
`
`
`
`
`Application
`
`has interface ?
`
`920
`
`
`
`
`
`
`
`Continue ?
`940
`
`
`Existing Default
`Applet ? 930
`
`
`
`
`Figure 9
`
`16
`
`

`

`U.S. Patent
`
`Jun. 19, 2007
`
`Sheet 15 of 15
`
`US 7,232,073 B1
`
`
`
`Default Applet Interface 1080
`
`
`
`
`
`1020
`
`List Handler
`1010
`
`Select by Index
`Handler
`
`Applet 351
`
`Command/ADPU
`forwarding API 1050
`
`List Wrapper
`1011
`
`Application
`Listing 323
`
`Selector 412
`
`
`
`
`Select by Index
`Wrapper
`
`1021
`
`
`
`
`Applet
`
`
`
`Card Executive Layer 318
`
`Figure 10
`
`17
`
`17
`
`

`

`US 7,232,073 B1
`
`1
`SMART CARD WITH MULTIPLE
`APPLICATIONS
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`
`The present application is related to the following appli-
`cations, all of which were filed on 24 Feb. 2004 and are by
`the same inventor and assigned to the same assignee as the
`present application:
`“METHOD AND APPARATUS FOR PROVIDING AN
`APPLICATION IDENTIFIER FOR AN APPLICATION
`
`ON A SMART CARD”(Sun P9176—U:S. application Ser.
`No. 10/786,506);
`“METHOD AND APPARATUS FOR INSTALLING AN
`
`APPLICATION ONTO A SMART CARD” (Sun 9177—
`USS. application Ser. No. 10/786,763);
`“METHOD AND APPARATUS FOR SELECTING A
`
`DESIRED APPLICATION ON A SMART CARD” (Sun
`P9178—U.S. application Ser. No. 10/786,895); and
`“METHOD AND APPARATUS FOR PROCESSING AN
`APPLICATION IDENTIFIER FROM A SMART CARD”
`
`(Sun P9179—USS. application Ser. No. 10/786,312).
`The above-identified applications are all hereby incorpo-
`rated by reference into the present application.
`
`20
`
`25
`
`FIELD OF THE INVENTION
`
`The invention relates to smart card technology, and in
`particular to smart cards that support multiple applications.
`
`30
`
`BACKGROUND OF THE INVENTION
`
`Mostpeople now havea collection of small plastic cards,
`representing various credit cards, store cards, identity cards,
`membership cards, and so on. Information about the card
`and its owner, such as account details and so on, is normally
`printed or embossed on the card, and mayalso be stored in
`some form of magnetic strip. Note that such cards are simply
`passive storage devices, and the information that they con-
`tain is fixed at card creation time.
`
`In recent years, smart cards have also proliferated. These
`are similarin scale to traditional credit cards, but incorporate
`within their plastic cases a microelectronic memory and also
`(optionally) an embedded processor. It will be appreciated
`that the computational resources available within a smart
`card are extremely limited compared to those of a desktop
`workstation, or even a laptop or handheld device. One
`especially popular form of smart card is known as a Java
`Card. This is based on the Java platform developed by Sun
`Microsystems (“Java” and “Java Card” are trademarks of
`Sun Microsystems Inc). In such devices, a Java virtual
`machine (VM)is provided within the smart card to allow the
`execution of Java applets or applications. Particular advan-
`tages of being able to use the Java environment for smart
`card applications are the inherent security features of the
`Java environment, plus the ready availability of software
`development packages for the Java programming language.
`It is estimated that by the end of 2002 over 200 million Java
`cards had been shipped. More information about the Java
`Card smart card platform is available from the page: /prod-
`ucts/javacard/ at the web site: http://java.sun.com and from
`the site: http://wwwyavacardforum.org/, and also from the
`book: “Java Card Technology for Smart Cards” by Zhiqun
`Chen, Addison-Wesley, 2000, ISBN 0-201-70329-7.
`An Application Programming Interface (API) is defined
`for the Java Card platform. Applications written in the Java
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`18
`
`2
`programming language invoke this API to access the Java
`Card run-time environment (JRE) and any native services.
`The Java Card API allows application portability, in that the
`same application can run on any smart card that supports the
`API. The Java Card API is compatible with international
`standards, in particular the ISO/IEC 7816 family of stan-
`dards.
`
`In the desktop environment, there is a clear distinction
`between a Java applet and a Java application, in particular
`the absence of a main class from the former. Although there
`is a similar distinction in the smart card environment, applets
`for use on a Java card platform are not the same as applets
`that run on a web browser. Programsthat run on smart cards
`maybereferred to as either an application or as an applet
`(the former term will be used generally herein).
`The Java Card platform supports multiple applications on
`a single card. These applications may be separated by
`firewalls, in order to ensure that they do not interfere with
`one another. This is particularly of concern if the various
`applications are operated by different organisations, whose
`business relationships with the card holder may be indepen-
`dent of one another.
`FIG. 1 is a schematic diagram representing the life cycle
`of a smart card, which in this particular implementation is a
`Java Card. The life cycle commences with the manufacture
`of the card, and the initial loading of the base operating
`system and the Java Card environment (210). Also at this
`stage, one or more applications may be preloaded (215).
`Generally, the base operating system and Java Card envi-
`ronment, and also potentially any preloaded applications,
`may be stored in ROM on the smart card as part of the
`manufacturing process.
`The card is now ready for issue to a card holder (220),
`which typically involves an appropriate personalisation pro-
`cess, as well as initialisation of the Java environment, and
`starting the Java virtual machine on the card. The card holder
`is thereafter able to use the card (230). Note that if the card
`was originally issued without any preloaded applications,
`then the card holder may haveto load an application prior to
`making substantive use of the card. In practice however, this
`situation is rather uncommon,since usually there is at least
`one preloaded application in order to motivate issuance of
`the card in the first place.
`During the operationallifetime of the card, further appli-
`cation programs maypotentially be installed onto the card
`(235), for example if the card holder signs up to new
`accounts or services. Conversely, applications may be
`removed from the card, perhaps because an account
`is
`closed.
`
`The last operation shown in FIG. 1 is where the card is
`terminated (240). This may occur, for example, because the
`card has a built-in expiry date or is surrendered by the user
`(perhaps if the user is moving to a new card issuer, or the
`card is physically damaged).
`FIG. 2 is a high-level schematic diagram illustrating the
`main architectural components in a typical smart card appli-
`cation. Thus smart card 102 belongsto card holder 101. Note
`that smart card 102 may be used as a standalone device, or
`may be incorporated into some larger system such as a
`mobile phone. Smart card 102 interacts with a terminal 110
`by exchanging an application protocol data unit (ADPU)
`108. The format for the ADPUis defined by the International
`Standard ISO/IEC 7816-3 and typically comprises a com-
`mand header portion and a payload portion.
`Terminal 110 may be a handheld device, an adjunct to a
`desktop workstation, a dedicated card reader (analogous to
`an ATM) or any other suitable system. Communications
`
`18
`
`

`

`US 7,232,073 B1
`
`3
`between the smart card 102 and the terminal 110 may be by
`wired connection or by wireless link (e.g. radio or some
`other electromagnetic signal), depending on the particular
`devices concerned. Terminal 110 may be under the direct
`control of an operator 111 (such as for a handheld terminal),
`or alternatively terminal 110 may be automated (such as for
`an ATM). In this latter situation, the card holder 101 may
`operate the terminal 110 himself/herself.
`Terminal 110 interacts with a back office 130 over any
`suitable form of network 120, such as the Internet, a local
`area network (LAN), a wide area network (WAN), and so
`on. Back office 130 may comprise multiple systems (not
`explicitly shown in FIG. 1), such as a webserveror portal
`attached to network 120, perhaps with an application server
`and/or a database system behind. Note that the terminal 110
`may beoff-line until activated by a smart card 102, a card
`holder 101 or a terminal operator 111 to access a back office
`130 over network 120.
`Tt will also be appreciated that in somesituations, terminal
`110 may interact with card 102 without reference to any
`other system (such as back office 130). For example, termi-
`nal 110 might be some form of machine, such as a car or a
`photocopier, and card 102 might be used to control access to
`the machine.
`
`In operation, the card holder 101 typically places the card
`102 into or adjacent the terminal 110, thereby allowing the
`two to interact, e.g. to perform a debit operation from the
`card to purchase some goods. This interaction will generally
`be referred to herein as a session, and normally involves the
`exchange of multiple messages between the smart card 102
`and the terminal 110.
`
`Associated with each applet on smart card 102 is an
`Application Identifier (AID). The AID is a byte string up to
`16 bytes long, whose format is defined by International
`Standard ISO/IEC 7816-4:2004. According to this standard,
`the first 5 bytes or octets of the AID represent the registered
`application provider identifier (RID) and have a valueallo-
`cated by ISO or one of its member bodies. The RID indicates
`the merchant or other entity involved with operating the
`application, hereinafter referred to as the RID operator. The
`RID operator is generally responsible for the back office
`system 130, and is depicted as application/RID operator 131
`in FIG. 2. The last 11 bytes of the AID constitute the
`proprietary application identifier extension (PIX). The PIX
`is determined by the RID operator 131, and can be used to
`store a reference number or other information associated
`with the application.
`International standard ISO/IEC 7816-4 defines a proce-
`dure, namely the Select command, to allow a terminal to
`specify and launch a desired application on a smart card;
`selecting an application determines the start of a session.
`The processing associated with the Select command is
`illustrated at a high level in the flowchart of FIG. 2A. The
`processing starts when the smart card 102is first inserted
`into the terminal 110. The terminal detects the insertion of
`the smart card (162), and in response to such detection
`activates the smart card (164, 172). This activation generally
`includes providing power to the smart card and launching a
`default application on the card. The default application is
`so-called becauseit is automatically started when the card is
`reset, such as on power up. In some implementations, the
`default application is identified as the applet that was most
`recently running on the card (prior to the reset). In other
`implementations,
`the default application may be a fixed
`applet.
`The terminal now determines an application on the card to
`launch (165), and sends a corresponding Select command
`
`4
`using an ADPU 108 to the smart card (166). The ADPU
`specifies the AID of the selected application for use in this
`session. The request from the terminal is received by the
`smart card (174). The request
`is handled by an applet
`selector program that is running on the smart card 102 as
`part of a card executive layer. The applet selector is respon-
`sible for locating the application that matches the AID
`requested from the terminal, 1.e. the application that has the
`same AID asthat specified in the request (176). Ifa matching
`application is found, then this application on the smart card
`is duly launched (177). The smart card now returns to the
`terminal 110 an indication of whether or not the requested
`application has been successfully launched (179 and 180).
`(N.B. This last action is optional within the context of
`ISO/IEC 7816-4, although it is commonly implemented).
`FIG. 2B describes a variation on the processing of FIG.
`2A (also in accordance with ISO/IEC 7816-4). The opera-
`tions in FIG. 2B are the same as described abovein relation
`
`to FIG. 2A until operation 166, in which the terminal 110
`supplies the card with an abbreviated or truncated AID
`(knownas a partial AID). For example, the partial AID may
`comprise the first ten bytes of an AID. In these circum-
`stances, there may be multiple matches against the partial
`AID. For example, if two applications have AIDs that have
`their first ten bytes in common and then differ only in the
`final six bytes of the AID, they will both match the same
`partial AID of length 10 bytes (orless). One reason for using
`a partial AID might be if the terminal 110 wants to identify
`all applications on the card having a particular RID.
`Consequently, at operation 176A (corresponding to opera-
`tion 176 in FIG. 2A), the smart card identifies one of the
`potentially multiple matching applications on the card. This
`application identified at operation 176A represents thefirst
`matching application. The (first) matching application af
`any) on the smart card is now launched (177), and a response
`is provided to the terminal (179A, 180) indicating whether
`or not the partial AID request (176) was successful. If this
`request was successful, then the response 179A also includes
`the AID of the application that was launched at operation
`177. If this AID correspondsto the application desired by the
`terminal (183),
`then session processing continues (185).
`However, if the launched application as indicated by the
`received AID is not the desired application, then processing
`at the terminal loops back to operation 166, whereby another
`request containing the partial AID is sent by the terminal to
`the smart card 102.
`
`The smart card now identifies at operation 176A the next
`application that matches the partial AID, launches this next
`matched application (177), and returns the full AID for this
`next matched application (179A). In addition, the previously
`launched application (i.e.
`the first application) may be
`terminated (not shown in FIG. 2B). The terminal again tests
`at operation 183 to determine whetheror not the matching
`application corresponds to the desired application, and if
`not, then we proceed once again around the above loop.
`The procedure of FIG. 2B therefore terminates either
`when the desired application on smart card 102 has been
`launched, thereby allowing the session to continue (185), or
`there are no more applications on smart card 102 that match
`the partial AID. In other words, the AIDsforall the matching
`applications (if any) have already been returned one-by-one
`at operation 179A,and then rejected at operation 183. In this
`latter case, the smart card fails to find any further matching
`applications(i.e. the test of operation 176Ais negative), and
`returns a failure indication to the terminal at operation 179A.
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`19
`
`19
`
`

`

`US 7,232,073 B1
`
`5
`The terminal then detects that no (further) application has
`been launched on the card (182), and so aborts the session
`(184).
`Note that to support the above processing, the card 102
`needs to ensure thatit selects a different matching AID each
`time it loops through operation 176A (otherwise it may
`return a matching AID that has already been rejected by the
`terminal). One mechanism to ensurethis is for the smart card
`to maintain a list of those matching AIDsthat have already
`been returned to the terminal at any previous loops through
`operation 179A.Alternatively, the smart card may recognise
`someordering of the AIDs (for example, based on the binary
`value of an AID). In this latter case, the smart card notes the
`matching AID sent last time at operation 179A, and for the
`next loop through operation 176Aselects the next matching
`AID in the imposedordering.
`Tt has been suggested that a smart card may include a
`facility to provide a complete list in a canonical orderofall
`the applications installed on the smart card. (This suggestion
`is described in a submission by the Netherlands to the
`standards committee JTC1/SC17 of the ISO/IEC). Each
`application on a smart card is represented in the list by its
`AID. The list could thento be usedin all presentations by the
`card of its applications, for example as a directory file. It is
`also contemplated that the canonically ordered AID list
`could be used in a variation on the Select command as
`
`20
`
`25
`
`6
`location on the card. The development of Java cards has
`introduced an application-oriented environment, in which
`the behaviourof a card is controlled by an application on the
`card. This has led to the role of a default application as
`mentioned above to take initial control of a card, pending
`user selection of a particular desired application. A further
`submission by the Netherlands to the standards committee
`JTC1/SC17 of the ISO/IEC has suggested that a default
`application shouldfirstly be able to provide a list of appli-
`cations on the smart card and secondly to support selecting
`an application on the card to run.
`Although the Java Card environment supports multiple
`applications from different RID operators,
`in practice, a
`large majority of issued cards originate from and are run by
`a single RID operator. In other words, applications from one
`RID operator are typically found on one card, and applica-
`tions from another RID operator are found on a different
`card. Moreover, many cards are provided with only a single
`application. Consequently, relatively little attention has been
`paid to the handling of smart cards having multiple appli-
`cations, potentially from a range of different vendors(i.e.
`from different RID operators).
`
`SUMMARY OF THE INVENTION
`
`In accordance with one embodimentof the invention there
`
`is provided a smart card having multiple applications
`depicted in FIGS. 2A and 2B. In particular, an index to the
`installed thereon. One of the multiple applications is desig-
`list could be encoded over one octet, for instance using
`nated as a default application which is activated whenever
`values 1 to 253, with the applications specified in the order
`the card is reset. The default application is required to
`in which they were originally loaded onto the smart card.
`implementa first operation to provide a canonically ordered
`This would then allow a desired application to be specified
`listing of the multiple applications on the card. In one
`for selection by index value (rather than by AID).
`particular embodiment, an application may be selected for
`Accordingto this proposal, which is especially relevantto
`activation by providing an index into the list in a command
`a Java Card implementation,three particular applications are
`header of an application protocol data unit received by the
`distinguished:
`card from a terminal. This therefore enables an application
`(1) a card management application—this performs func-
`to be selected by index fromalist, rather than by AID.
`tions related to the loading, initialization and removal
`In one particular embodiment, the default application is
`of other applications.
`further required to implement a second operation to allow
`(2) a card holder personal data application—this typically
`one of said multiple applications to be selected for activation
`contains data and functions related to the card holder,
`via an index into saidlist. In one particular embodimentthe
`such as a userprofile, a PIN, biometrics, and name and
`default application has a programming interface to imple-
`address. These functions and data may be accessible in
`mentthe first operation, and the second operation if relevant.
`the card by other applications as appropriate.
`The programming interface comprises a predetermined set
`(3) the default application—discussed above. (Note that a
`of one or more method calls. The programming interface
`card that supports multiple modes of communication
`may compriseat least a first methodcall for enablingthefirst
`with terminal 110 may havea different default appli-
`operation. The programming interface may further comprise
`cation associated with each particular mode of com-
`a second methodcall for enabling the second operation. The
`munication).
`programming interface may also comprise a method for
`notifying an application that it has been designated as the
`default application, and a method for notifying an applica-
`tion that it has ceased to be the default application.
`In one particular embodiment, the list is provided by the
`default application in response to a request from a terminal,
`while in another embodiment, the list is provided automati-
`cally to a terminal by the default application in response to
`activation of the default application. In yet another embodi-
`ment, the default application is configurable as to whether
`the list is provided by the default application in response to
`a request from the terminal or automatically in response to
`activation of the default application. The default application
`mayhave a handler installed to implementthe first operation
`to provide the list.
`In one particular embodiment, there is a card executive
`layer in the smart card, and the default application interacts
`with the card executive layer in order to implementthe first
`operation and the second operation (if relevant).
`
`The card management application and the card holder data
`application are generally preloaded onto a smart card (see
`operation 215 in FIG.1).
`In the proposal, the three special applicationslisted above
`are assigned predetermined index values. In particular, the
`index value 0 is reserved for the current default application;
`the index value -2 (254) is reserved for the card holder data
`application; and the index value -1 (255) is reserved for the
`card managementapplication. Note that the card holder data
`application and the card managementapplication will there-
`fore generally appear twice in the list, once at the position
`in the list that reflects when they were loaded, and once at
`their reserved location (i.e. -2 and -1 respectively). This
`submission has not yet been formally adopted by the ISO/
`TEC.
`
`Mostearly smart cards were viewed primarily as memory
`devices. The main purpose of a session involving the card
`wastherefore to read data to or write data from a selected
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`20
`
`20
`
`

`

`US 7,232,073 B1
`
`7
`the smart card further
`In one particular embodiment,
`comprises a card managementapplication, which is respon-
`sive to a request to make an application the default appli-
`cation. The request may be made whenthe application to be
`made default application is being installed onto the smart
`card. In one embodiment, the card managementapplication
`verifies that the application requested to becomethe default
`application implements a predetermined interface. In one
`embodiment, the predeterminedinterface is defined to sup-
`port at least the first operation.
`Another embodiment of the invention provides a method
`of operating a smart card having multiple applications
`installed thereon. The method comprises designating one of
`the multiple applications as a default application. The
`default application is required to implementa first operation
`to provide a canonically ordered list of said multiple appli-
`cations on the card. The default application is activated
`wheneverthe cardis reset.
`Another embodiment of the invention provides a method
`of designating an application on a smart card as a default
`application. The method comprises receiving a request to
`designate an application as a default application on the smart
`card; confirming that the default application implements a
`first operation to provide a canonically ordered listing of
`multiple applications on the card; and designating the
`requested application as the default application, subject to a
`positive outcome from the confirming.
`Other embodiments of the invention provide data struc-

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket